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.

I2301 — Zda je práce hotová, se zodpovídá měřením: invariant hotovosti se ptá na dluh, na to, co zbylo za námi, a na backlog

Přidat do invariantu hotovo tři otázky, které si člověk klade na konci relace a které zatím neklade — vzrostl zaznamenaný dluh, existuje ještě větev nebo worktree vytvořený od startu úlohy, je pull request otevřený od té doby stále otevřený — každou čtenou ze záznamu, který fakt drží, a stanovit jako projektové pravidlo, že na závěrečnou otázku odpovídá toto čtení, nikdy vzpomínka workera.

HOTOVO vlna 0 · p1 · profil implementation · bezpečné souběžně

Součást development-runtime — The runtime has a development surface.

Cíl

Přidat do invariantu hotovo tři otázky, které si člověk klade na konci relace a které zatím neklade — vzrostl zaznamenaný dluh, existuje ještě větev nebo worktree vytvořený od startu úlohy, je pull request otevřený od té doby stále otevřený — každou čtenou ze záznamu, který fakt drží, a stanovit jako projektové pravidlo, že na závěrečnou otázku odpovídá toto čtení, nikdy vzpomínka workera.

Proč

Dne 2026-10-10 se vlastník ptal jedné relace sedmkrát, zda je vše hotovo, sloučeno a nasazeno, zda se přidal dluh a zda je méně pull requestů, větví a worktrees než na začátku. Každá ze sedmi odpovědí byla napsána z toho, co si relace pamatovala, že dělala, a popisovala jen její vlastní stopu. Změřeno u osmé: 52 otevřených pull requestů proti 49 na začátku relace, 42 v konfliktu s kmenem; 117 worktrees, kde předchozí relace nechala 96; 225 lokálních větví, 59 dosažených kmenem a 13 držících commity, které žádný remote neměl; 10 neauditovaných stashů; v0.20.0 netagováno. Invariant done (apps/majordomus-cli/src/gates/done.rs) kladl úloze devatenáct otázek a každou odpověď bral z jejího zdroje, ale žádná z devatenácti se netýkala repozitáře v čase, takže tato polovina otázky neměla odkud být čtena. Příkaz vlastníka z 2026-10-10 16:00Z: vynutit, pokrýt testy, v .ai, zdokumentovat na stránkách.

Aktuální stav

gates.completion obsahuje devatenáct otázek; `no-stale-topology` čte convergence.report (práce držená na jednom disku). Nic nečte, zda dluhový základ narostl, co vzniklo od zahájení úlohy ani co přibylo ve frontě úkolů forge. Žádné pravidlo neříká, jak se odpovídá na závěrečnou otázku.

Cílový stav

gates.completion nese dvaadvacet otázek. `no-new-debt` porovnává záznamy každého .ai/repo/*-baseline.txt v commitu, ve kterém úloha začala, s pracovním stromem a při nárůstu odmítne, přičemž jmenuje baseline a čísla; `nothing-accumulated` jmenuje lokální branche a linked worktrees, které reflogy gitu datují od začátku úlohy, a platí, dokud nějaká zůstává; `backlog-not-grown` počítá pull requesty, které zaznamenané pozorování forge datuje od začátku úlohy. Odečet, který nešlo provést, je neznámý a říká proč. `majordomus check` jmenuje každou jako id=status. project.a-closing-question-is-answered-by-measurement popisuje chování a jmenuje jeho případy; docs/CLI.md dokumentuje tři otázky a tvrzení the-closing-question-is-measured má svou stránku.

Rozsah

  • apps/majordomus-cli/src/gates/closing.rs
  • apps/majordomus-cli/src/gates/done.rs
  • apps/majordomus-cli/src/gates/mod.rs
  • apps/majordomus-cli/src/capability/builtin/gates.rs
  • .ai/repo/rules/project
  • .ai/repo/workflows/task-lifecycle.md
  • lib/gates.sh
  • docs/CLI.md
  • docs/CLAIMS.yaml
  • docs/claims/the-closing-question-is-measured.md
  • test/cases/1037_the_closing_question_is_measured.sh
  • test/cases/131_completion_gates.sh

Mimo rozsah

  • Počet větví, worktrees a pull requestů zaznamenaný na začátku a s ním přesné „méně než na začátku“: odstranění v gitu nezanechává záznam, takže to vyžaduje snímek zapsaný při otevření úlohy nebo epizody, což je změna záznamů, které shellový nástroj zapisuje, a jejich schémat.
  • Připisování větve nebo worktree relaci, která je vytvořila: git žádného tvůrce nezaznamenává.
  • Odmítat `finish` kvůli těmto otázkám: invariant hotovo hlásí `check` a o dokončení dál rozhodují kontroly a povinnosti.
  • Odstraňování čehokoli: redukce patří pravidlu project.accumulation-is-measured a pull requestu 882.

Závislosti

Žádné. Tento úkol je kořenem grafu.

Kritéria přijetí

  • Položka přidaná do baseline dluhu od prvního commitu úlohy způsobí selhání `no-new-debt` a jmenuje baseline s jejími položkami tehdy a nyní, ať je přidání commitnuto, nebo ne; její odstranění otázku zodpoví
  • Základní hodnota, která při prvním commitu úlohy neexistovala, je označena jako poprvé zaznamenaná a není růstem
  • Branch a propojený worktree vytvořené po zahájení úlohy způsobí, že `nothing-accumulated` je ve frontě, a jsou jmenovány; projde, jakmile obojí zmizí
  • Pull request, jehož zaznamenané pozorování je datováno po začátku úlohy, činí `backlog-not-grown` zařazeným do fronty a je očíslován; pozorování starší než úloha, nebo žádné, je neznámé s uvedením důvodu
  • Bez záznamu úlohy jsou tři otázky neznámé a říkají, že není od čeho měřit
  • `majordomus check` jmenuje každou ze tří, která není zodpovězena, jako id=status

Validace

  • bin/majordomus plan validate
  • MJ_TEST_JOBS=4 bash test/run.sh 1037_the_closing_question_is_measured
  • MJ_TEST_JOBS=4 bash test/run.sh 131_completion_gates
  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib gates::

Požadované důkazy

  • closing_readings_unit_tests
  • the_closing_question_is_measured_case

Důkazy

pokrývátypcommandvýsledeku commitu
closing_readings_unit_teststestcargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib gates::ok na ecb51b2772: 59 prošlo, 0 selhalo; závěrečná čtení nad skutečným repozitářem, nepřečtené čtení neznámé, růst v jedné základní linii není hrazen jinouecb51b2
the_closing_question_is_measured_casetestMJ_TEST_JOBS=4 bash test/run.sh 1037_the_closing_question_is_measured 131_completion_gatesok na ecb51b2772: případ 1037 (119 s) s jeho mutací, případ 131 (1390 s); majordomus check jmenuje no-new-debt, nothing-accumulated a backlog-not-grown jako id=statusecb51b2

Časová osa

zahájeno
2026-10-10T21:36:49Z
ověřeno
2026-10-10T21:36:58Z
dokončeno
2026-10-10T21:56:14Z

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/I2301.yaml. Přečtěte jej zpět pomocí majordomus plan show I2301.

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