feat: Add 'cross_source' property to genome registry

This commit is contained in:
Matteo Cherubini 2026-06-12 10:49:04 +02:00
parent b48c99b0ff
commit 6558ee486a
5 changed files with 11 additions and 8 deletions

View file

@ -11,7 +11,7 @@ export $(shell grep -v '^[#[:space:]]' globals.env | sed 's/=.*//')
help:
@echo "Available commands:"
@echo " make setup - Full system initialization"
@echo " make add-genome - Register and scaffold a new genome [LINKED=owner/repo]"
@echo " make add-genome - Register and scaffold a new genome [LINKED=owner/repo] [CROSS=yes|no]"
@echo " make status - Check submodule and encryption status"
@echo " make lint - Verify schema, privacy flags, and metadata"
@echo " make verify-structure - Report directory drift across all genomes"

View file

@ -330,13 +330,14 @@ WORK_DIR="${HOME}/knowledge-genome-orchestrator"
KEYS_DIR="${WORK_DIR}/keys"
# Genome registry — format: "name|description|linked_repo"
# The third field is OPTIONAL:
# The third and fourth fields are OPTIONAL:
# - leave it empty → knowledge-only genome (no linked project)
# - owner/repo → genome is linked to that project repository (rendered into AGENTS.md)
# - cross_source → yes|no (default no): whether the cross-genome collector may read this genome as a source
GENOMES=(
"genome-dev|Web development, TUI, Angular, software architecture|myorg/my-app"
"genome-finance|Personal finance, investments, market analysis|"
"genome-homelab|Infrastructure, network configs, architecture logs|"
"genome-dev|Web development, TUI, Angular, software architecture|myorg/my-app|no"
"genome-finance|Personal finance, investments, market analysis||no"
"genome-homelab|Infrastructure, network configs, architecture logs||no"
)
```

View file

@ -29,5 +29,7 @@ PROVIDERS_DIR="${PROJECT_ROOT}/providers"
# Example: "genome-work|Work notes and architecture logs||no"
# "genome-finance|Personal finance|user/repo-finance|no"
GENOMES=(
"genome-example|Template genome description for knowledge management||no"
# Disposable sandbox: exercise the full pipeline (ingest -> PR) end-to-end.
# Created by `make setup`. Replace with real domains once the circle is validated.
"genome-test|Disposable sandbox for pipeline testing||no"
)

View file

@ -19,7 +19,7 @@ source "providers/${PROVIDER}.sh"
step "Processing Genome Registry"
for entry in "${GENOMES[@]}"; do
# 3-field format: name|description|linked_repo (linked_repo optional → may be empty)
# 4-field format: name|description|linked_repo|cross_source linked_repo optional (may be empty); cross_source defaults to "no".
IFS='|' read -r GENOME_NAME GENOME_DESC GENOME_LINKED GENOME_CROSS_SOURCE <<< "$entry"
GENOME_CROSS_SOURCE="${GENOME_CROSS_SOURCE:-no}"
export GENOME_NAME GENOME_DESC GENOME_LINKED GENOME_CROSS_SOURCE

View file

@ -22,7 +22,7 @@ step "Genome structure: ${MODE}"
TOTAL_MISSING=0
for entry in "${GENOMES[@]}"; do
IFS='|' read -r GENOME_NAME _ _ <<< "$entry" # 3-field registry; ignore desc + linked
IFS='|' read -r GENOME_NAME _ <<< "$entry" # 4-field registry; only GENOME_NAME used here
genome_dir="${WORK_DIR}/${MASTER_REPO}/${GENOME_NAME}"
if [[ ! -d "$genome_dir" ]]; then