I2750 — Kontrola driftu na trunku čte forge, než soudí
Job structure, který spouští scripts/ci/plan-drift-check na trunku, nejprve zaznamená forge (otevřené pull requesty a názvy sloučených pull requestů) a zjištění, které kontrola nemohla rozhodnout, protože forge zůstal nepřečten, se hlásí jako nerozsouzené, nikoli odmítnuté.
PŘIPRAVENO vlna 2 · p0 · profil implementation · bezpečné paralelně
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I2750 bude přijato.
Cíl
Job structure, který spouští scripts/ci/plan-drift-check na trunku, nejprve zaznamená forge (otevřené pull requesty a názvy sloučených pull requestů) a zjištění, které kontrola nemohla rozhodnout, protože forge zůstal nepřečten, se hlásí jako nerozsouzené, nikoli odmítnuté.
Proč
Dne 2026-10-16 I2748 dvakrát změřil drift plánu na origin/master d1162668036: s nepřečteným forge hlásil 23 merged_not_recorded, s předchozím spuštěním `majordomus prs refresh` a `majordomus served forge` hlásil 16. Sedm navíc (I2059, I2114, I2123, I2124, I2132, I2282, I2288) má každý otevřený pull request, který je jmenuje, což definice vylučuje. Checkout CI nemá zaznamenaný žádný forge, takže každé zjištění tam říká unread: forge; pod blokujícím vynucováním by trunk zčervenal kvůli práci, která stále probíhá.
Aktuální stav
scripts/ci/plan-drift-check se ptá `majordomus plan drift --gate trunk` v čerstvém checkoutu, jehož .ai/local nedrží žádné pozorování forge; spustitelný soubor hlásí forge nepřečtený a posuzuje každý nález bez něj.
Cílový stav
Na trunku job před kontrolou spouští `majordomus prs refresh` a `majordomus served forge` s GH_TOKEN jobu (pull-requests: read, deployments: read). Nález, který stále nese unread: forge, je PENDING s POZNÁMKOU jmenující forge, nikdy REFUSED, takže nečitelný forge nemůže trunk zbarvit červeně, a ustálený nález za oknem se odmítne jako dříve.
Rozsah
- scripts/ci/plan-drift-check
- .github/workflows/validate.yml
- .ai/repo/ci/gates.yaml
- apps/majordomus-cli/src/plan/drift.rs
- test/cases/3101_merged_work_unrecorded_is_drift.sh
Mimo rozsah
- Token s právem zápisu: kontrola čte forge a nic jiného.
Závislosti
Co na tom čeká
Kritéria přijetí
- Krok plan-drift na trunku čte forge dřív, než soudí, a jeho výstup jmenuje, kolik otevřených pull requestů přečetl
- Zjištění merged_not_recorded, jehož forge není přečten, se na trunku nikdy neodmítne
- Vyřešený nález po uplynutí okna je při blokujícím vynucování stále odmítnut
Validace
- bash test/run.sh 3101_merged_work_unrecorded_is_drift
Požadované důkazy
- unread_forge_never_refuses
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/I2750.yaml. Přečtěte jej zpět pomocí majordomus plan show I2750.