I3166 — A curated note whose cited file changed since its last review is reported for review, not served as current
Have knowledge validate and the context compiler compare each cited provenance.derived_from file with the blob recorded at the note's last review and mark the note needs-review when it differs.
PŘIPRAVENO vlna 0 · p2 · profil implementation · bezpečné souběžně
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3166 bude přijato.
Cíl
Have knowledge validate and the context compiler compare each cited provenance.derived_from file with the blob recorded at the note's last review and mark the note needs-review when it differs.
Proč
2026-09-15: a knowledge entry whose evidence stops holding is marked stale rather than silently remaining true; 2026-10-16: knowledge size alone does not give efficiency, stale knowledge needs selective revalidation. Using dates against git log flags three of master's four notes on day one (docs/CLI.md has changed 74 times since start-here.md). The criterion 'devcontext lowers its confidence' is met by a separate needs-review field, because confidence is the trust of the discovery path. Sources: chatgpt-majordomus:c144#3, chatgpt-majordomus:c278#6.
Aktuální stav
Curated notes carry derived_from; I1987 keeps provenance after deletion (case 3023); nothing compares the cited files with the note.
Cílový stav
needs-review is derived and shown where the note is served.
Rozsah
- lib/knowledge.sh
- apps/majordomus-cli/src/devcontext
- apps/majordomus-cli/src/capability/builtin/knowledge_base.rs
- docs/KNOWLEDGE.md
- apps/majordomus-cli/src/ui/knowledge.rs
- lib/context.sh
- share/schemas/majordomus/knowledge/knowledge.v1.schema.json
- share/schemas/majordomus/knowledge/knowledge.v1.proto
- .ai/repo/project/intents
Mimo rozsah
- Rewriting notes automatically
- Lowering devcontext selector confidence for a stale note
- Failing knowledge validate because a cited file moved
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- A note whose cited file changed since its last review is reported
- Each new case named here takes its number from `scripts/case-numbers next` and is announced on the board before the file is written (ADR 0053); a case number written in this record before that is provisional
- A curated note is anchored by the blob hash of each provenance.derived_from file recorded at its last review; needs-review is derived when the current blob differs, not from git log against the note's date, so a shallow clone gives the same verdict
- A note without recorded hashes reads unanchored, not needs-review; the first reading over the curated notes is recorded with how many are flagged
- A person clears needs-review with one ledger-recorded re-review act that re-stamps the hashes
- knowledge validate reports needs-review as a WARN and keeps its exit status; case 3075 stays green when a cited file moves
- devcontext reports needs-review in its own field with the reason; selector confidence keeps its meaning (devcontext/select.rs, model.rs)
- needs-review is shown on /ui/knowledge and in the briefing's knowledge pointers (mj_context_pointers)
- The criterion a-moved-source-is-flagged is rewritten to evidence: test with the allocated case path, and that case runs in this issue's validation
Validace
- bash test/run.sh 3075_knowledge_validate_judges_the_graph
Požadované důkazy
- case_note_source_moved
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Canonical record: .ai/repo/project/issues/I3166.yaml. Read it back with majordomus plan show I3166.