Merge branch 'release/1.2.0' into main
This commit is contained in:
commit
d5c155b82f
10 changed files with 36 additions and 27 deletions
6
.gitignore
vendored
6
.gitignore
vendored
|
|
@ -1,4 +1,10 @@
|
|||
# VS Code — only shared workspace settings
|
||||
.vscode/*
|
||||
!.vscode/
|
||||
!.vscode/settings.json
|
||||
!.vscode/extensions.json
|
||||
|
||||
# framework
|
||||
/master-knowledge-genome/
|
||||
/keys/
|
||||
*.key
|
||||
|
|
|
|||
23
Makefile
23
Makefile
|
|
@ -1,5 +1,5 @@
|
|||
# =============================================================================
|
||||
# Knowledge Genome - Makefile v. 1.1.6
|
||||
# Knowledge Genome - Makefile v. 1.2.0
|
||||
# Orchestrates the setup and management of the knowledge base.
|
||||
# =============================================================================
|
||||
|
||||
|
|
@ -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"
|
||||
|
|
@ -30,16 +30,17 @@ setup:
|
|||
add-genome:
|
||||
@if [ -z "$(NAME)" ] || [ -z "$(DESC)" ]; then \
|
||||
echo "Error: NAME and DESC are required."; \
|
||||
echo "Usage: make add-genome NAME=my-genome DESC='My description' [LINKED=owner/project-repo]"; \
|
||||
echo "Usage: make add-genome NAME=my-genome DESC='My description' [LINKED=owner/project-repo] [CROSS=yes|no]"; \
|
||||
exit 1; \
|
||||
fi
|
||||
@bash scripts/add-genome.sh "$(NAME)" "$(DESC)" "$(LINKED)"
|
||||
@bash scripts/add-genome.sh "$(NAME)" "$(DESC)" "$(LINKED)" "$(or $(CROSS),no)"
|
||||
|
||||
status:
|
||||
@[ -d "$(MASTER_REPO)" ] || { echo "Master non trovato. Esegui 'make setup'."; exit 1; }
|
||||
@echo "--- Master Status ---"
|
||||
@git submodule status
|
||||
@cd $(MASTER_REPO) && git submodule status
|
||||
@echo "--- Encryption Status (per genome) ---"
|
||||
@git submodule foreach 'git-crypt status 2>/dev/null | head -n 10 || true'
|
||||
@cd $(MASTER_REPO) && git submodule foreach 'git-crypt status 2>/dev/null | head -n 10 || true'
|
||||
|
||||
verify-structure:
|
||||
@bash scripts/verify-genomes.sh
|
||||
|
|
@ -62,14 +63,16 @@ doctor:
|
|||
@echo "System ready."
|
||||
|
||||
sync:
|
||||
@[ -d "$(MASTER_REPO)" ] || { echo "Master non trovato. Esegui 'make setup'."; exit 1; }
|
||||
@echo "Syncing submodules..."
|
||||
@git submodule update --init --recursive
|
||||
@cd $(MASTER_REPO) && git submodule update --init --recursive
|
||||
@echo "--- Unpushed commits per genome ---"
|
||||
@git submodule foreach 'git log --oneline @{u}.. 2>/dev/null | head -5 || true'
|
||||
@cd $(MASTER_REPO) && git submodule foreach 'git log --oneline @{u}.. 2>/dev/null | head -5 || true'
|
||||
|
||||
lock:
|
||||
@[ -d "$(MASTER_REPO)" ] || { echo "Master non trovato. Esegui 'make setup'."; exit 1; }
|
||||
@echo "Locking master repository..."
|
||||
@git-crypt lock 2>/dev/null || true
|
||||
@cd $(MASTER_REPO) && git-crypt lock 2>/dev/null || true
|
||||
@echo "Locking all submodules..."
|
||||
@git submodule foreach 'git-crypt lock 2>/dev/null || true'
|
||||
@cd $(MASTER_REPO) && git submodule foreach 'git-crypt lock 2>/dev/null || true'
|
||||
@echo "All genomes securely locked."
|
||||
|
|
|
|||
13
README.md
13
README.md
|
|
@ -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"
|
||||
)
|
||||
```
|
||||
|
||||
|
|
@ -692,7 +693,9 @@ If a key is lost or compromised:
|
|||
```bash
|
||||
# From the knowledge-genome-orchestrator/ directory
|
||||
source lib/git-crypt.sh
|
||||
cd ~/knowledge-genome-orchestrator/genome-dev
|
||||
# If gcrypt_rotate_key operates on the CWD: cd into .../master-knowledge-genome/genome-dev
|
||||
# If it navigates by name instead: cd into .../master-knowledge-genome
|
||||
cd ~/knowledge-genome-orchestrator/master-knowledge-genome
|
||||
gcrypt_rotate_key "genome-dev"
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ PROVIDER=forgejo
|
|||
|
||||
# --- FORGEJO ---
|
||||
FORGEJO_URL=https://git.keruhomelab.com
|
||||
FORGEJO_USER=keru
|
||||
FORGEJO_USER=Keru
|
||||
FORGEJO_SSH_PORT=222
|
||||
|
||||
# --- GITHUB (used when PROVIDER=github) ---
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ _REGISTRY_LOADED=1
|
|||
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
# Dynamic paths
|
||||
WORK_DIR="${HOME}/knowledge-genome-orchestrator"
|
||||
WORK_DIR="${PROJECT_ROOT}"
|
||||
KEYS_DIR="${WORK_DIR}/keys"
|
||||
TEMPLATES_DIR="${PROJECT_ROOT}/templates"
|
||||
LIB_DIR="${PROJECT_ROOT}/lib"
|
||||
|
|
@ -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"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -4,11 +4,6 @@
|
|||
# Insert an entry line into the correct section of wiki/index.md and keep that
|
||||
# section's entries alphabetically ordered. Bumps frontmatter last_updated.
|
||||
#
|
||||
# NOTE: agents-genome.md and wiki-index.md claim the pre-commit hook sorts the
|
||||
# index. The actual pre-commit.sh only runs the plaintext-leak check — it does
|
||||
# NOT sort. This script owns the ordering instead. (If you later move sorting
|
||||
# into the hook, reduce this to a plain append.)
|
||||
#
|
||||
# index-append.py --section Sources \
|
||||
# --entry '- [[sources/foo]] — One-line summary. `maturity: draft`'
|
||||
# =============================================================================
|
||||
|
|
|
|||
|
|
@ -166,7 +166,7 @@ private: true | false
|
|||
### Links
|
||||
|
||||
- Internal: `[[folder/file]]` — Obsidian wikilinks only. Never `[text](url)` for internal refs.
|
||||
- Cross-genome: `[[../genome-target/wiki/folder/file]]`.
|
||||
- Cross-genome: NOT via wikilink (submodule pointers make relative paths brittle). A concept owned by another genome is pulled in by the navigation skill as a raw under `raw/articles/crossgen-<topic>-<date>.md`, then ingested here normally. See master `AGENTS.md` §Cross-Genome Pull.
|
||||
- External: `[text](https://...)`.
|
||||
|
||||
### Index entries
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ grep "^## \[2026-05" wiki/log.md
|
|||
## [{{DATE}}] CONFIG | Genome scaffolded
|
||||
|
||||
- run_id: `system-init`
|
||||
- model: `setup-knowledge-genome.sh`
|
||||
- model: `scaffold.sh`
|
||||
- context_read: _(none — initial scaffold)_
|
||||
- output_written: `[[wiki/index.md]]`, `[[wiki/log.md]]`, `[[AGENTS.md]]`
|
||||
- reasoning: Initial directory structure and encryption layer initialized by setup script.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue