Rozsah
start bere cesty, kterých se úloha smí dotknout; check a finish selžou na souborech mimo ně; překrývající se nároky jiných worktrees se hlásí
start bere cesty, kterých se úloha smí dotknout; check a finish selžou na souborech mimo ně; překrývající se nároky jiných worktree se hlásí
Kde to žije
Stav, který vlastní
.ai/local/state/current.yaml
Příkaz, který na to působí
majordomus check
Je aktuální úloha stále konzistentní se svou politikou, rozsahem a tímto checkoutem?
- jen pro čtení
- vyžadována aktivní úloha
- --json
majordomus check [--explain] [--overlap] [--checkpoint] [--rule <id>] [--json]
Podívat se, jak odmítá a jak přijímá
check je jen pro čtení a odpovídá na tři otázky najednou: popisuje záznam stále tento checkout, je práce uvnitř nárokovaného rozsahu a blokuje něco přijetí.
Pro tento repozitář platí
# ... and an active task scoped to lib, with work done inside that scope. . "$FIXTURE_SETUP/installed.sh" "$MJ" start "narrow the parser" --scope lib >/dev/null echo work >> lib/a
Spustit
$ majordomus check
Výstup obsahuje
- OK rozsah
- 0 selhávajících
ukončení
0
Vytiskne se každý nález, nejen selhání, takže report říká, co bylo zkontrolováno, a ne jen co se pokazilo.
Pro tento repozitář platí
# An active task scoped to lib, with a change under docs that the task never claimed. . "$FIXTURE_SETUP/active-task.sh" echo stray >> docs/d
Spustit
$ majordomus check
Výstup obsahuje
- SELHÁNÍ rozsahu
- docs/d
ukončení
10
check jmenuje jednotlivý soubor, protože užitečná otázka je, kterou změnu přesunout nebo nárokovat, ne pouze to, že je něco špatně.
Co to vynucuje
- majordomus.questions-store-integrity blokující vynucuje doctor, watch Každý záznam v open-questions.md se parsuje, protože kontrola, která záznam nepřečte, jde obejít překlepem v něm.
- majordomus.scope-integrity blokující vynucuje check, finish, watch Úloha se dotýká jen cest, které si nárokovala; práce nalezená jinde se nepřijímá jako hotová.
- majordomus.state-consistency blokující vynucuje check, finish, watch Záznam úlohy stále popisuje tento checkout — stejná větev a HEAD na zaznamenaném commitu nebo před ním.
Co je zaručeno
- zaručeno Záznam v úložišti otázek, který se neparsuje, blokuje přijetí přesně jako nevyřešená otázkadoloženo test/cases/21_decision_question.sh
- zaručeno Úloha se spouští s deklarovaným rozsahem souborů a profilem a na jeden checkout je aktivní jen jedna úlohadokázáno test/cases/04_start_check.sh
- zaručeno check hlásí, zda jsou stav, rozsah, blokátory a stáří checkpointu právě teď konzistentnídokázáno test/cases/04_start_check.sh
- zaručeno Dotčený soubor mimo nárokovaný rozsah je selhání, ne varovánídokázáno test/cases/04_start_check.sh
- zaručeno Překryv mezi paralelními pracovníky se počítá na nárokovaných cestách v obou směrech zahrnutídokázáno test/cases/04_start_check.sh
- plánováno Úloha bude vědět, které commity vytvořila, místo aby je odvozovala z rozsahu
- zaručeno Záznam úlohy jmenuje checkout, do kterého patří, a jiný checkout se k jeho rozsahu nikdy nepřipoutáprokázáno test/cases/27_foreign_task.sh
Pravidla, která tento příkaz spouští
Doktríny, jejichž enforced_by jmenuje check. Vynucovat pravidlo a být jím řízen jsou různé vztahy, proto se uvádějí zvlášť.
- majordomus.knowledge-integrity
- majordomus.checkpoint-freshness
- majordomus.ledger-integrity
- majordomus.blocker-resolution
- majordomus.decision-records
- majordomus.scope-integrity
- majordomus.state-consistency
- majordomus.task-on-the-mesh
- majordomus.use-case-coverage
- majordomus.obligation-closure
- majordomus.completion-gates
Okamžiky, na které to odpovídá
- našli dva agenty, kteří opravují stejnou chybu ve dvou větvích Dva pracovníci stráví každý den na jedné vadě, protože vlastnictví bylo implicitní a ani jeden neviděl druhého.
- sledoval, jak relace zrušila rozhodnutí z minulého týdne právě z toho důvodu, pro který vzniklo Rozhodnutí, jehož důvod žil v konverzaci, nelze posoudit, jen znovu rozebírat — workerem s méně informacemi, než měl ten první.
- našel úlohu "in progress", které se tři týdny nikdo nedotkl Stav, který byl napsán, a ne spočítán, platí v okamžiku zápisu a odtud tiše zastarává.
- sledoval, jak jeden worker záměrně vrátil změnu jiného workera Worker uvidí na své cestě nevysvětlenou změnu, usoudí, že je špatná, a odstraní ji — správně, podle důkazů, které měl.
- našel pět worktrees a nedokázal říct, na kterých ještě záleží Izolace se vytváří levně, ale špatně se o ní uvažuje: nic nezaznamenává, k čemu worktree sloužil ani zda jeho práce přistála.
- měl dvě relace zapisující do jednoho checkoutu, aniž o sobě jedna věděla Dva workeři v jednom pracovním stromu se vidí jen jako nevysvětlené změny souborů a každý z nich druhého považuje za šum.
- našel podstatnou změnu, kterou nikdy nepožadoval žádný úkol, ticket ani plán Práce přichází bez vymezeného kontraktu, takže její rozsah, kritéria přijetí i vlastnictví se rozhodují až zpětně.
- se zeptal, kdo změnu provedl a podle jaké politiky, a měl jen commit Atribuce končí u commitu, takže to, co změnu schválilo, co ji ověřilo a co ji řídilo, nelze obnovit.