Merge branch 'release/1.0.0' into main

This commit is contained in:
Matteo Cherubini 2026-05-11 18:58:07 +02:00
commit 66346f5f4e
5 changed files with 987 additions and 161 deletions

View file

@ -1,5 +1,5 @@
# =============================================================================
# Knowledge Genome - Makefile v. 0.3.0
# Knowledge Genome - Makefile v. 1.0.0
# Orchestrates the setup and management of the knowledge base.
# =============================================================================

1040
README.md

File diff suppressed because it is too large Load diff

View file

@ -38,6 +38,7 @@ Session end or return to `disabled`: remind operator to run `git-crypt lock` on
5. Never commit to `main`. Branch per task; PR required; no self-merge.
6. Contradict, don't overwrite. New evidence contradicts existing claim → §Conflict.
7. Never commit plaintext to any path marked for encryption in `.gitattributes`.
8. Every PR must use `templates/pr-description.md`. Do not omit the tabular summary.
### NEVER
- Load `wiki/log.md` in full — read only the tail injected by the orchestrator.
@ -58,10 +59,11 @@ Session end or return to `disabled`: remind operator to run `git-crypt lock` on
Execute in this order before any file operation:
1. Read `wiki/index.md` — full catalog of all pages and their maturity.
2. Read the last 20 log entries injected by orchestrator — do not open `wiki/log.md` directly.
3. For any task involving related pages: `qmd search "<query>"` before opening files.
4. Operate on individual target files. Never scan entire directories.
1. **One source per session.** If multiple sources are queued in `raw/`, process only the first. Commit, close session. The orchestrator starts a new session for the next source.
2. Read `wiki/index.md` — full catalog of all pages and their maturity.
3. Read the last 20 log entries injected by orchestrator — do not open `wiki/log.md` directly.
4. For any task involving related pages: `qmd search "<query>"` before opening files.
5. Operate on individual target files. Never scan entire directories.
---
@ -77,7 +79,8 @@ Execute in this order before any file operation:
5. Check each touched page for contradictions → apply §Conflict if found.
6. Append entry to `wiki/index.md` (bottom of relevant section).
7. Append log entry: `INGEST | <slug>`.
8. Commit on `feat/ai-ingest-<slug>`. Open PR.
8. Run scoped lint on pages created or modified in this session. Report issues in PR description. Do not auto-fix.
9. Commit on `feat/ai-ingest-<slug>`. Open PR using `templates/pr-description.md`.
*Private source* (`PRIVATE_CONTEXT: enabled` required):
- All output → `wiki/private/<slug>.md` only.
@ -87,24 +90,28 @@ Execute in this order before any file operation:
*Triggered by operator question.*
1. `qmd search "<query>"` → identify candidate pages.
2. Read relevant pages via `wiki/index.md` catalog.
2. Read candidate pages directly.
3. Synthesize answer with `[[wikilink]]` citations.
4. If answer is non-trivial: save as `wiki/queries/<slug>.md`.
5. Append entry to `wiki/index.md` under Queries.
6. Append log entry: `QUERY | <subject>`.
*For general orientation without a specific query: read `wiki/index.md` directly.*
### Lint
*Triggered by operator or schedule.*
*Triggered by operator with bash pre-scan output.*
Find and report — do not auto-fix without operator approval:
Pre-requisite: operator runs `bash scripts/lint-genomes.sh` and provides output to this session.
The script handles deterministically: broken links, knowledge decay, page size, frontmatter validation.
1. Orphan pages — no inbound `[[wikilink]]`.
2. Duplicate concepts — two pages covering same topic → propose merge.
3. Implicit concepts — term in 3+ pages with no dedicated page.
4. `maturity: draft` with 2+ sources → propose promote to `stable`.
5. Broken internal links.
6. Knowledge decay violations (§Decay).
Agent tasks — apply semantic judgment to bash findings + independent semantic checks:
1. **Orphan pages** (list from bash): for each orphan, identify 1-3 existing pages that should link to it. Propose specific link additions.
2. **Implicit concepts** (term list from bash): for each candidate term, determine if a dedicated page is warranted. If yes, draft stub.
3. **Duplicate concepts**: `qmd search "<concept>"` for suspected duplicates → propose merge if confirmed.
4. **`maturity: draft`** pages with 2+ sources cited → propose promote to `stable`.
Report all findings as structured list. Do not modify files without operator approval.
Append log entry: `LINT | <summary of findings>`.
---

View file

@ -86,48 +86,3 @@ Genome-level operations are governed by the genome's `AGENTS.md`, not this file.
- Concepts in genome-X that should link to genome-Y but don't.
3. Report findings. Do not modify any files.
4. For each finding: create a conflict note in the genome where resolution belongs, following that genome's §Conflict procedure.
---
## Reference Operations
### Add a genome
```bash
make add-genome NAME=genome-newname DESC="Domain description"
```
Then update the architecture diagram in this file.
### Sync submodules
```bash
make sync
```
### Update core-karpathy reference
```bash
git submodule update --remote core-karpathy
git add core-karpathy
git commit -m "chore: update core-karpathy to latest gist"
git push
```
### Clone (full)
```bash
git clone --recurse-submodules \
{{FORGEJO_URL}}/{{FORGEJO_USER}}/{{MASTER_REPO}}.git
```
After cloning, unlock each genome on the host before starting an agent session.
### Key rotation (emergency)
If a key is compromised: `gcrypt_rotate_key "<genome>"` from project root.
Update the Vaultwarden Secure Note with the new base64-encoded key.
Revoke access from previous key holders.
### Key registry
| Genome | Vaultwarden Secure Note | Temp key file |
|--------|------------------------|---------------|
| genome-dev | `genome-dev key` | `keys/genome-dev.key` |
| genome-finance | `genome-finance key` | `keys/genome-finance.key` |
| genome-homelab | `genome-homelab key` | `keys/genome-homelab.key` |
Temp key files in `keys/` are post-export only. Delete after upload to Vaultwarden.

View file

@ -0,0 +1,26 @@
## Summary
<!-- One sentence: goal of this session and source processed. -->
## Pages Created
| Path | Type | Maturity |
|------|------|----------|
| `[[folder/slug]]` | entity / concept / source / query | draft |
## Pages Modified
| Path | Change |
|------|--------|
| `[[folder/slug]]` | Added cross-reference to `[[other/page]]` |
## Contradictions Found
- [ ] None
- [ ] `n` conflict file(s) created — listed below
## Private Data Accessed
- [ ] No — `PRIVATE_CONTEXT: disabled`
- [ ] Yes — `PRIVATE_CONTEXT: enabled` · outputs in `wiki/private/` only
## Scoped Lint (post-ingest)
- [ ] Frontmatter valid on all touched pages
- [ ] No broken wikilinks on touched pages
- [ ] No issues found
- [ ] Issues found (list):