I3246 — The evidence half of a gap is drafted from the ledger, and a second draft at one commit is the same
Revive I2217 from origin/chore/the-owner-packs-are-planned (ec37317fe7c, 2026-10-10, never landed): a read-only intents.draft_gap (`intent draft gap <intent>`) prints a majordomus.gap/v1 record whose criterion states are derived from the evidence at the presented commit, each observation citing the ledger execution or claim it read. Port the record byte-identical first, then update its current_state to master.
PŘIPRAVENO vlna 0 · p1 · profil implementation · bezpečné souběžně
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3246 bude přijato.
Cíl
Revive I2217 from origin/chore/the-owner-packs-are-planned (ec37317fe7c, 2026-10-10, never landed): a read-only intents.draft_gap (`intent draft gap <intent>`) prints a majordomus.gap/v1 record whose criterion states are derived from the evidence at the presented commit, each observation citing the ledger execution or claim it read. Port the record byte-identical first, then update its current_state to master.
Proč
The owner asked from 2026-09-15 to 2026-10-16 that Majordomus find what is not true instead of a person writing it. On master a gap is hand-written and intent_review.rs only judges it; the draft was planned on 2026-10-10 on a branch that never reached master. Proposed in ADR 0191 (A plan drafted from an intent is a proposal, checked by the plan's own validators before any record is written); ADR 0192 (Replanning is bounded, idempotent and never weakens its intent) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c205#2.
Aktuální stav
apps/majordomus-cli/src/intent_review.rs judges gap records under .ai/repo/project/gaps/; capability/builtin/intents.rs declares list, record, validate, coverage, preflight, binding and propose; nothing drafts a gap.
Cílový stav
intents.draft_gap is pure over IntentView, the evidence index and the ledger; its output passes intent validate's gap checks unchanged; nothing is written.
Rozsah
- apps/majordomus-cli/src/capability/builtin/intents.rs
- docs/PLANNING.md
- apps/majordomus-cli/src/intent_review.rs
- apps/majordomus-cli/src/intent.rs
- apps/majordomus-cli/src/evidence/ledger.rs
- apps/majordomus-cli/src/commands/intent.rs
- apps/majordomus-cli/src/cli.rs
- apps/majordomus-cli/tests/intent.rs
- .ai/repo/project/issues
Závislosti
Žádné. Tento úkol je kořenem grafu.
Co na tom čeká
- I3247BLOCKED Work is drafted for each criterion nothing serves, under a key derived from the intent, the criterion and the gap, so a second draft drafts the same work
- I3250BLOCKED Before drafting work the planner says whether a criterion is met, met but unproven, or unmet, and drafts proof-only work where only proof is missing
Kritéria přijetí
- A drafted gap validates with no finding
- Every state that is not unknown cites an observation that resolves
- Two runs at one commit print byte-identical output and leave the tree clean
Validace
- majordomus plan validate
- majordomus intent validate
Požadované důkazy
- test_the_gap_is_drafted_from_the_ledger
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/I3246.yaml. Read it back with majordomus plan show I3246.