I3252 — A draft plan is judged as if it were written, and only a checked draft is written, through one capability
Revive I2205 and I2207 from origin/chore/the-owner-packs-are-planned (ec37317fe7c, 2026-10-10, never landed): intents.draft_check runs the plan and intent validators over a draft (intent, criteria, milestones, issues) in memory; intents.draft_write writes it as records only when the check passes, as one execution with a declared repository_mutation effect.
BLOKOVÁNO vlna 2 · p1 · profil implementation · bezpečné paralelně
Blocked. This issue cannot start until I3251, I3247 are done. The status is derived from that, not declared.
Cíl
Revive I2205 and I2207 from origin/chore/the-owner-packs-are-planned (ec37317fe7c, 2026-10-10, never landed): intents.draft_check runs the plan and intent validators over a draft (intent, criteria, milestones, issues) in memory; intents.draft_write writes it as records only when the check passes, as one execution with a declared repository_mutation effect.
Proč
Owner orders of 2026-10-04, 2026-10-11 and 2026-10-13: an intent entered in the UI is planned and materialised into milestones and issues with the same result on every surface. A proposed plan must not be execution authority before it is checked. 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) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c185#4, chatgpt-majordomus:c226#3, chatgpt-majordomus:c245#2.
Aktuální stav
Only intents.propose writes (ADR 0144); milestones and issues are hand-written YAML; plan validate and intent validate read only written records.
Cílový stav
Check and write share one validator path, so a draft that passes the check is exactly what the written tree validates to.
Rozsah
- apps/majordomus-cli/src/capability/builtin/intents.rs
- docs/PLANNING.md
- apps/majordomus-cli/src/intent_plan.rs
- apps/majordomus-cli/src/plan.rs
- apps/majordomus-cli/src/intent.rs
- apps/majordomus-cli/src/commands/intent.rs
- apps/majordomus-cli/src/cli.rs
- apps/majordomus-cli/tests/intent_plan.rs
Závislosti
- I3251READY A desired outcome is briefed with what the repository already holds about it
- 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
Co na tom čeká
- I3253BLOCKED A proposal lists the values it left unresolved, and a draft that carries an invented threshold is refused
- I3260BLOCKED One intent is carried in a disposable repository from a sentence through a failing criterion to a satisfied verdict, across two providers and a handover
- I3273BLOCKED Each requirement of a campaign revision has a content-derived identity and is reconciled into the existing intents and issues
Kritéria přijetí
- A draft with a dangling dependency or an uncovered criterion is refused by check and by write, writing nothing
- A passing draft written then validated produces no finding
- CLI, HTTP and MCP return the same check result
Validace
- majordomus plan validate
- majordomus intent validate
Požadované důkazy
- test_a_checked_draft_is_written
- case_a_draft_is_written_only_when_checked
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/I3252.yaml. Read it back with majordomus plan show I3252.