I2749 — Commit, který úkol jen plánuje, není jeho dodávkou
plan.delivery přestane počítat jako merge úkolu commit nebo pull request, který ho jmenuje, ale mění jen vlastní záznamy plánu a to, co se z nich odvozuje, aby merged_not_recorded v plan.drift obsahovalo jen práci, která byla skutečně dodána.
PŘIPRAVENO vlna 2 · p0 · profil implementation · bezpečné paralelně
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I2749 bude přijato.
Cíl
plan.delivery přestane počítat jako merge úkolu commit nebo pull request, který ho jmenuje, ale mění jen vlastní záznamy plánu a to, co se z nich odvozuje, aby merged_not_recorded v plan.drift obsahovalo jen práci, která byla skutečně dodána.
Proč
I2748 přečetl drift plánu na trunku (origin/master d1162668036, čtení forge) dne 2026-10-16: z 16 nálezů merged_not_recorded jich šest pojmenovává úkol jen proto, že ho zmínil commit plánování nebo záznamu. I1302 (012fed644a0, docs(plan): I1301 is done, and I1302 may not land its schema alone), I1305 (d52f433348b, merge, jehož předmět říká, že I1305 byl obnoven do vlastního milníku), I1900 (#1128, fix(plan): I1900 is ready again until the intent it serves has a critique), I1962 (42a5715eec2, fix(project): issue I1962 no longer scopes the deleted script), I1980 (1aaf9f86d58, chore(plan): an adopter's upgrade is a planned outcome, I1980-I1991) a I2484 (#1031, docs(ui): the UI is the accepted primary surface, and its plan says what landed). Žádný z nich nedodává svůj úkol a žádné razítko je nemůže poctivě uzavřít: blokující kontrola by na nich zůstala červená navždy (ADR 0166, rozhodnutí 2).
Aktuální stav
delivery.rs bere nejnovější commit nebo merge v historii trunku, jehož předmět, titul nebo větev jmenuje úkol jako jeho merge, ať tento commit změnil cokoli.
Cílový stav
Commit nebo pull request, jehož změny leží jen pod .ai/repo/project/ a v projekcích z nich odvozených (docs/PLAN_STATUS.md, docs/PAGES_STATUS.md, docs/generated, site/data/generated, site/data/registry, site/content), je plánování, ne dodávka: úkol nečiní sloučeným a plan delivery to uvádí v důkazu, který hlásí pro merge, který přeskočil.
Rozsah
- apps/majordomus-cli/src/plan/delivery.rs
- apps/majordomus-cli/src/plan/drift.rs
- apps/majordomus-cli/tests/plan_delivery.rs
- test/cases/3100_an_issue_delivery_is_inferred.sh
- docs/PLANNING.md
Mimo rozsah
- Zapisovat razítko z inference: merge není přijetí (ADR 0166, alternativy).
- Čtení prózy v tělech commitů za účelem rozhodnutí, co commit znamenal.
Závislosti
Co na tom čeká
Kritéria přijetí
- Commit jmenující úkol, který mění jen jeho záznam a odvozené projekce, nechá úkol ve fázi, v jaké byl bez tohoto commitu
- Commit, který jmenuje úkol a mění jakoukoli jinou cestu, jej přesto označí jako sloučený
- plan drift na trunku už nehlásí I1302, I1305, I1900, I1962, I1980 ani I2484 jako merged_not_recorded
Validace
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test plan_delivery
- bash test/run.sh 3100_an_issue_delivery_is_inferred 3101_merged_work_unrecorded_is_drift
- bin/majordomus plan drift --json
Požadované důkazy
- planning_commit_is_not_delivery
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.
Kanonický záznam: .ai/repo/project/issues/I2749.yaml. Načtěte jej zpět pomocí majordomus plan show I2749.