I1947 — Každá funkce dosáhne testu a každý případ užití má funkci
Přiřadit každému aktivnímu případu užití vlastnící funkci a dát funkcím cockpit a deployments tvrzení pojmenovávající jejich vlastní testy, aby panel domovské stránky směrovaný na případ užití došel k funkci a každá funkce došla k testu přes index subjektů (ADR 0087, rozhodnutí 9).
HOTOVO vlna 0 · p1 · profil implementation · bezpečné souběžně
Cíl
Přiřadit každému aktivnímu případu užití vlastnící funkci a dát funkcím cockpit a deployments tvrzení pojmenovávající jejich vlastní testy, aby panel domovské stránky směrovaný na případ užití došel k funkci a každá funkce došla k testu přes index subjektů (ADR 0087, rozhodnutí 9).
Proč
Index subjektů odvozuje subjekty z existujících deklarací. Případ užití, který nejmenuje žádná funkce, je subjekt, který index nemůže zařadit pod funkci, a funkce bez tvrzení se k testům dostane jen přes svá pravidla. Dnes nic nekontroluje vlastnictví případů užití.
Aktuální stav
Některé aktivní případy užití nejmenuje seznam use_cases žádné funkce: `git grep <use-case-id> -- .ai/repo/features` je u každého z nich prázdný. .ai/repo/features/cockpit.md a .ai/repo/features/deployments.md nenesou řádek claims.
Cílový stav
Každý aktivní případ užití jmenuje alespoň jedna funkce; funkce cockpit a deployments nesou každá tvrzení, jehož test ji jmenuje zpět; a případ selže a jmenuje každý, když aktivní případ užití nemá vlastnící funkci.
Rozsah
- .ai/repo/features/finish-contract.md
- .ai/repo/features/commit.md
- .ai/repo/features/install.md
- .ai/repo/features/continuity.md
- .ai/repo/features/cockpit.md
- .ai/repo/features/deployments.md
- apps/majordomus-cli/tests/cockpit.rs
- test/cases/84_deployment_contract.sh
- test/cases/503_every_use_case_has_a_feature.sh
- docs/CLAIMS.yaml
- docs/claims
Mimo rozsah
- Úprava jakéhokoli souboru případu užití
- .ai/repo/features/finish-contract.md.tmp
- docs/CLAIMS.yaml nad rámec dvou řádků, které tato část přidává
Závislosti
Žádné. Tento úkol je kořenem grafu.
Co na tom čeká
Kritéria přijetí
- Každý případ užití se stavem aktivní je pojmenován alespoň jednou funkcí a případ selže, když jmenuje každý, který není
- Případ selže, když je jakýkoli seznam, který čte, prázdný nebo selže příkaz v jeho pipeline
- Funkce cockpit a nasazení nesou každá jedno tvrzení a test každého tvrzení jmenuje id tvrzení
- bin/majordomus-cli product validate a bin/majordomus usecase validate procházejí
Validace
- bash test/run.sh 503_every_use_case_has_a_feature
- bin/majordomus-cli product validate
- bin/majordomus usecase validate
- scripts/ci/claim-proof-check --strict
Požadované důkazy
- every_use_case_has_a_feature
- every_feature_reaches_a_test
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| every_use_case_has_a_feature | test | bash test/run.sh 503_every_use_case_has_a_feature | ok na 4090b2b8ae: žádný aktivní případ užití tohoto repozitáře není mimo use_cases funkcí a nevlastněný případ fixture je jmenován; product validate a usecase validate končí exit 0 | 4090b2b |
| every_feature_reaches_a_test | test | scripts/ci/claim-proof-check --strict | exit 0 na 4090b2b8ae: 0 z 217 zaručených tvrzení pojmenovává test, který tvrzení nepojmenovává zpět, mezi nimi tvrzení cockpitu a nasazení | 4090b2b |
Časová osa
- zahájeno
- 2026-10-08T10:49:57Z
- ověřeno
- 2026-10-08T10:50:33Z
- dokončeno
- 2026-10-08T10:50:38Z
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/I1947.yaml. Načtěte ho zpět pomocí majordomus plan show I1947.