I1404 — Kontrola driftu je kontrola, takže projekce, která se přestane aplikovat, nemůže mlčet
Spouštět `scripts/github-sync --check` z CI při každé změně, která může pohnout kanonickým modelem nebo adaptérem, a shodit build při driftu s uvedeným záznamem a nápravou.
HOTOVO vlna 2 · p0 · profil implementation · běží samostatně
Cíl
Spouštět `scripts/github-sync --check` z CI při každé změně, která může pohnout kanonickým modelem nebo adaptérem, a shodit build při driftu s uvedeným záznamem a nápravou.
Proč
Toto je kořenová příčina milníku. Adaptér končí kódem 11 při driftu od svého napsání a nic ho nikdy nevolalo, takže projekce zpustla z úplné na 10 procent bez jediného červeného buildu. `core-check` spouští --plan a --render, což dokazuje, že adaptér běží, ne že je projekce aktuální.
Aktuální stav
scripts/ci/core-check lines 67 and 69 run --plan and --render. .ai/repo/ci/gates.yaml line 178 already lists scripts/github-sync in the paths that trigger the core gate, so the trigger exists and the check does not.
Cílový stav
Nález driftu je selhání sestavení. Kontrola potřebuje token ke čtení vzdáleného repozitáře, takže deklaruje, co potřebuje, a řekne to, když chybí, místo aby tiše prošla.
Rozsah
- scripts/ci
- .ai/repo/ci/gates.yaml
- .github/workflows
- .ai/repo/rules/project
- test/cases
Mimo rozsah
- Aplikace projekce z CI, která zůstává záměrným lidským úkonem
Závislosti
Co na tom čeká
- I1403HOTOVO Doplnit projekci zpětně jednou, záměrně, a zaznamenat, co vytvořila
- I1407HOTOVO Jeden úkol projde celou cestu tam a zpět jako spustitelný případ
- I1408HOTOVO Dokumenty přestávají tvrdit projekci, kterou nikdo nespouští
Kritéria přijetí
- Kontrola spouští kontrolu driftu při každé změně modelu nebo adaptéru, odmítne behind, edited, conflict, unmanaged, state a milestone přímo a missing a adopt ratchetuje proti commitnuté základní hodnotě
- Chybějící nebo neoprávněný token je hlášen jako nepoužitelná kontrola, nikdy jako prošlá
- Pravidlo uvádí, že projekce je hlídána kontrolou, a doctor ověřuje, že je kontrola zapojena, ne jen přítomna
- Zavedení kanonického úkolu bez jeho promítnutí zčervená kontrolu, což dokazuje případ
- Přesun kanonického záznamu, který už byl promítnut, zčervená kontrolu, což dokládá případ
- Základna smí klesat a nikdy růst a kontrola odmítne běžet bez ní
Validace
- scripts/ci/core-check
- majordomus doctrine
- bash test/run.sh
Požadované důkazy
- drift_gated
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| drift_gated | test | bash test/run.sh 97_github_gate | kontrola odmítne záznam, jehož kanonický text se pohnul, poruší ratchet u záznamu přidaného do modelu a nikdy neprojektovaného, odmítne upravenou oblast a nespravovaný vzdálený úkol, projde na baseline a odmítne běžet bez baseline; vše dokázáno offline proti fixture remote | 21f7ad8 |
| drift_gated | ci | scripts/ci/github-check | zelené na tomto stromu u commitnuté základny (chybí 181, přijmout 19); zapojeno jako kontrola github-projection v .ai/repo/ci/gates.yaml, vybírané třídami cest vrstvy a shellu, s issues:read a GH_TOKEN přidanými do úlohy struktury | 21f7ad8 |
Riziko
Zapojení kontroly s nulovou tolerancí před doplněním historie by udělalo z masteru červenou kvůli nevyřízeným položkám, které dnes nikdo nezavedl. Mírněním jsou obě tolerance: stavy znamenající nový drift se odmítají od prvního běhu a nevyřízené položky se ratchetují proti zapsané základní hodnotě, která smí jen klesat. To obrací závislost — kontrola už nečeká na I1403 a I1403 se stane aktem, který základní hodnotu sníží na nulu.
Časová osa
- zahájeno
- 2026-09-09T17:37:02Z
- ověřeno
- 2026-09-09T17:37:27Z
- dokončeno
- 2026-09-09T17:37:41Z
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/I1404.yaml. Přečtěte ho zpět pomocí majordomus plan show I1404.