I2741 — Sloučená práce, kterou plán nezaznamenal, je drift, a na trunku po uplynutí okna je červená
Přidat plan.drift nad plan.delivery s třídami merged_not_recorded, active_without_work a done_without_trace (poradní) a kontrolu scripts/ci/plan-drift-check, která odmítne merged_not_recorded starší než okno deklarované v .ai/repo/ci/plan.yaml na kmeni a jmenuje majordomus plan verify|done <id>.
HOTOVO vlna 1 · p0 · profil implementation · bezpečné paralelně
Cíl
Přidat plan.drift nad plan.delivery s třídami merged_not_recorded, active_without_work a done_without_trace (poradní) a kontrolu scripts/ci/plan-drift-check, která odmítne merged_not_recorded starší než okno deklarované v .ai/repo/ci/plan.yaml na kmeni a jmenuje majordomus plan verify|done <id>.
Proč
ADR 0166 rozhodnutí 2. Nic neporovnává deklarovaný stav se sloučenou prací; drift je to, co z veřejného plánu rozvoje udělalo paralelní vesmír.
Aktuální stav
Mezi razítky úkolu a jeho dodávkou neexistuje žádná zpráva o driftu.
Cílový stav
majordomus plan drift [--json] vypíše každý rozpor s jeho důkazem; kontrola běží ve validate, na headu a uvnitř okna hlásí PENDING a za oknem odmítá; chybějící nebo nečitelné okno odmítá.
Rozsah
- apps/majordomus-cli/src/capability/builtin/plan.rs
- apps/majordomus-cli/src/plan
- apps/majordomus-cli/tests/plan_drift.rs
- scripts/ci/plan-drift-check
- .ai/repo/ci/plan.yaml
- .ai/repo/ci/README.md
- .github/workflows/validate.yml
- .ai/repo/automation/inventory.jsonl
- docs/PLANNING.md
- test/cases/3101_merged_work_unrecorded_is_drift.sh
Závislosti
Co na tom čeká
- I2748BLOKOVÁNO Drift, který už je na trunku, se vyřeší dříve, než se kontrola stane blokující
- I2749READY A commit that only plans an issue is not its delivery
- I2750READY The trunk's drift gate reads the forge before it judges
- I3271READY plan.drift reports a source it could not observe as unknown, never as a drift finding
Kritéria přijetí
- Úkol PŘIPRAVENO, jehož sloučený pull request jej jmenuje, se hlásí jako merged_not_recorded s pull requestem a merge commitem
- Kontrola trunku jej mimo okno odmítne a uvnitř okna propustí, přičemž jmenuje příkaz, který ho usadí
- done_without_trace nikdy neodmítá
Validace
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test plan_drift
- bash test/run.sh 3101_merged_work_unrecorded_is_drift
Požadované důkazy
- drift_case
- mutations_fail_the_case
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| drift_case | test | bash test/run.sh 3101_merged_work_unrecorded_is_drift | ok 3101: merged_not_recorded s PR a merge commitem, důkaz titulem forge, kontrola trunku exit 10 po oknu / 0 uvnitř / hlava čeká / poradní 0, chybějící nebo nečitelné okno exit 12, done_without_trace nikdy neodmítne | ee02079 |
| mutations_fail_the_case | test | 6 mutací kódu plan/drift.rs a plan/delivery.rs, jedna po druhé, pak bash test/run.sh 3101_merged_work_unrecorded_is_drift | 6 of 6 killed: never-merged, ignore-open-pr, no-forge-titles, trunk-never-refuses, done-refuses, no-window-judged | ee02079 |
| drift_case | ci | validate run 39438896504 at master 9a5a9b77520: suite-shard (1) jobs 118683336189 and 118758852434 run 3101_merged_work_unrecorded_is_drift; rust (3) jobs 118683336401 and 118758853049 run cargo test incl. tests/plan_drift.rs | success (the run's only red job is pages, which runs no test) | 573df96 |
Časová osa
- zahájeno
- 2026-10-20T22:13:26Z
- ověřeno
- 2026-10-20T22:14:08Z
- dokončeno
- 2026-10-20T22:15:11Z
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/I2741.yaml. Přečtěte ho zpět pomocí majordomus plan show I2741.