I0823 — majordomus bench: cíle odvozené z registru příkazů
Přidat příkaz bench: každý veřejný příkaz v share/commands.yaml je cíl, spouštěný proti zahoditelnému nainstalovanému repozitáři, s warmupem a vzorky z politiky, hlásící min, p50, p90, p95, p99, max, průměr a směrodatnou odchylku na cíl a režim.
HOTOVO vlna 1 · p0 · profil implementation · běží samostatně
Součást M004 — Výkon je spustitelný důkaz a horká cesta nedělá žádnou kanonickou práci dvakrát.
Cíl
Přidat příkaz bench: každý veřejný příkaz v share/commands.yaml je cíl, spouštěný proti zahoditelnému nainstalovanému repozitáři, s warmupem a vzorky z politiky, hlásící min, p50, p90, p95, p99, max, průměr a směrodatnou odchylku na cíl a režim.
Proč
Ručně vedený seznam měření výkonu zastará v den, kdy se přidá příkaz; registr povrch už zná.
Aktuální stav
Neexistuje žádný příkaz benchmark; ad hoc měření času žije v shellech.
Cílový stav
bench, bench <command>, --mode cold|warm|both, --samples, --warmup, --format json, --list; JSON nese schéma majordomus/benchmark-result/v1, commit, příznak dirty, platformu, build bashe a profil měření výkonu.
Rozsah
- lib/bench.sh
- bin/majordomus
- share/commands.yaml
- share/allow/policy.txt
- share/skeleton/policy.yaml
- .ai/repo/policy.yaml
- docs/CLI.md
- test/cases/79_bench_command.sh
- test/fixtures/commands/bench.json
Mimo rozsah
- Měření výkonu Rust executable
- Měření příkazů, které mutují repozitář mimo jednorázovou fixturu
Závislosti
Co na tom čeká
- I0824HOTOVO Bench uchovává lokální běhy a udržuje projekci nejnovějšího
- I0827HOTOVO Blok politiky benchmarků
- I0830HOTOVO docs/PERFORMANCE.md, README, CONTRIBUTING a reference CLI
Kritéria přijetí
- bench --list vypíše přesně veřejné příkazy registru
- Běh zaznamenává oba režimy zvlášť s osmi statistikami
- Případ 79 dokazuje, že seznam cílů následuje mutaci registru
- Příkaz je registrován, pokryt a zdokumentován jako každý jiný příkaz
Validace
- bash test/run.sh 79_bench_command
- bin/majordomus bench --format json
Požadované důkazy
- bench_targets_derived
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| bench_targets_derived | test | bash test/run.sh 79_bench_command | lib/bench.sh odvozuje své cíle z mj_cmdreg_public minus sebe sama a svůj scénář pro každý cíl z prvního scénáře test/fixtures/commands/<command>.json; případ 79 ověřuje, že --list se rovná veřejné množině registru, že veřejný příkaz přidaný do kopie registru se objeví v --list kopie bez úpravy harnessu, že běh jen pro čtení zaznamená jeden studený a N teplých výsledků s count, min, p50, p90, p95, p99, max, mean a stddev v pořadí, a že cíl měnící stav zaznamená jen studené rozdělení nad čerstvými repozitáři; bench je registrován v share/commands.yaml, rozesílán bin/majordomus, demonstrován test/fixtures/commands/bench.json a zdokumentován v docs/CLI.md a docs/SCHEMAS.md; případy fixture a pokrytí 30, 31, 34 a 15 procházejí | next |
Riziko
Příkazy, které čtou stdin nebo potřebují aktivní úlohu, potřebují fixturu pro každý cíl; fixtury pod test/fixtures/commands už popisují jeden scénář na příkaz a znovu se používají.
Časová osa
- zahájeno
- 2026-09-05T03:33:10Z
- ověřeno
- 2026-09-05T03:33:10Z
- dokončeno
- 2026-09-05T03:33:10Z
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/I0823.yaml. Načtěte ho zpět pomocí majordomus plan show I0823.