Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

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ě

Součást adopter-upgrades — Adoptující repozitář přežije upgrade Majordomu a to, co do něj nástroj vendoruje, je neutrální vůči adoptujícímu.

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átypcommandvýsledeku commitu
live_scenario_reads_knowledgetestMJ_TEST_JOBS=2 bash test/run.sh 359_live_scenariospass: knowledge edges a nodes --json se validují a běží naživo, knowledge derive je příkazem odmítnuto1393d9e
live_scenario_refuses_writing_flagtestMJ_TEST_JOBS=2 bash test/run.sh 359_live_scenariosproš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_knowledgetestMJ_TEST_JOBS=2 bash test/run.sh 359_live_scenariostesty: 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_flagtestMJ_TEST_JOBS=2 bash test/run.sh 359_live_scenariostesty: 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.

Prohledává názvy a popisy všech stránek, které tento web publikuje.