I1981 — Třída účinku příkazu se deklaruje pro každý podpříkaz a přepínač a živé scénáře posuzují celé argv
Deklarovat v share/commands.yaml podle podpříkazu a podle přepínače, zda je read-only, nebo mění stav, kde příkaz má obojí, a přimět živou validaci případů užití a běhy, aby posuzovaly celý vektor argumentů proti této deklaraci.
HOTOVO vlna 0 · p0 · profil implementation · bezpečné souběžně
Cíl
Deklarovat v share/commands.yaml podle podpříkazu a podle přepínače, zda je read-only, nebo mění stav, kde příkaz má obojí, a přimět živou validaci případů užití a běhy, aby posuzovaly celý vektor argumentů proti této deklaraci.
Proč
share/commands.yaml řadí `knowledge` jako celek mezi příkazy měnící stav, takže živé scénáře odmítají jeho hrany, uzly a zdroje určené jen ke čtení. OSCILLA cb79d27 musela zkopírovat svůj sledovaný strom do testovacího vstupu, aby dokázala hranu znalostí. Řadí `check` jako pouze čtení se zápisy [], přesto `check --checkpoint` zapisuje .ai/local/state/current.yaml, takže živý krok může změnit stav, ačkoli je připuštěn jako pouze čtení.
Aktuální stav
lib/usecase.sh:383-386 připouští živý krok, když je třída příkazu nejvyšší úrovně jen pro čtení (commands.sh:27). Registr nemá efekt na podpříkaz ani na příznak.
Cílový stav
Registr nese efekt na podpříkaz a příznak tam, kde se liší. lib/usecase.sh validate a run odmítnou živý krok, jehož argv dosáhne na zapisující cestu, a připustí takový, který jen čte. doctor sesouhlasí deklaraci s dispatchem jako dnes.
Rozsah
- share/commands.yaml
- lib/usecase.sh
- lib/commands.sh
- docs/CLI.md
- test/cases/359_live_scenarios.sh
- test/fixtures/commands
Závislosti
Žádné. Tento úkol je kořenem grafu.
Co na tom čeká
Kritéria přijetí
- Krok živého scénáře `knowledge edges` projde validací a běží
- Krok živého scénáře `check --checkpoint` je odmítnut při validaci a jmenuje příznak
- Sladění registru příkazů v doctor pokrývá nové deklarace po podpříkazech
Validace
- bin/majordomus plan validate
- MJ_TEST_JOBS=4 bash test/run.sh <the case this issue adds>
Požadované důkazy
- live_scenario_reads_knowledge
- live_scenario_refuses_writing_flag
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| live_scenario_reads_knowledge | test | MJ_TEST_JOBS=2 bash test/run.sh 359_live_scenarios | pass: knowledge edges a nodes --json se validují a běží naživo, knowledge derive je příkazem odmítnuto | 1393d9e |
| live_scenario_refuses_writing_flag | test | MJ_TEST_JOBS=2 bash test/run.sh 359_live_scenarios | prošlo: check --checkpoint odmítnut při validate se jménem přepínače '--checkpoint'; doctor odmítne přepínač efektu, který syntaxe nemá, a přepínač jen pro čtení | 1393d9e |
| live_scenario_reads_knowledge | test | MJ_TEST_JOBS=2 bash test/run.sh 359_live_scenarios | testy: 1 prošel, 0 selhalo, 0 přeskočeno (běh 2026-10-14 před 07:36Z na master ce5959db59) | ce5959d |
| live_scenario_refuses_writing_flag | test | MJ_TEST_JOBS=2 bash test/run.sh 359_live_scenarios | testy: 1 prošel, 0 selhalo, 0 přeskočeno (běh 2026-10-14 před 07:36Z na master ce5959db59) | ce5959d |
Časová osa
- zahájeno
- 2026-10-11T05:05:14Z
- ověřeno
- 2026-10-11T05:05:29Z
- dokončeno
- 2026-10-14T07:39:39Z
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/I1981.yaml. Zpětně ho přečtete pomocí majordomus plan show I1981.