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.

Číslo případu pojmenovává jeden případ

Číslo případu pojmenovává jeden případ

majordomus://rule/project.a-number-names-one-case@1aktivní testsidentifikátorykoordinace

odkazuje na něj

Nic ve vrstvě to nejmenuje. Zpětné odkazy se odvozují, takže prázdný seznam je odpověď, ne opomenutí.

Zdůvodnění

Tři věci předpokládají, že identita pojmenovává případ: bash test/run.sh 96_worktree_topology spustí jeden podle názvu, test/cases/96_* je způsob, jak kontrola nebo skript jeden vybere, a „case 96“ je způsob, jak na jeden odkazuje každé pravidlo, tvrzení, ADR a zpráva commitu v tomto repozitáři. Když identitu nesou dva soubory, první je nejednoznačné, druhé vybere víc, než bylo míněno, a třetí ukazuje na dvě věci a čtenář nepozná, na kterou.

Změřeno 2026-09-12 přes 812 refů: pod test/cases/ bylo kdy přidáno 265 různých souborů případů nesoucích 172 identit; 55 z těchto identit neslo víc než jeden soubor. Strom origin/master obsahoval 206 souborů pod 164 identitami a 25 z nich drželo najednou dva až sedm souborů — 97 sedm. Tři relace si ten den vzaly 278 během několika minut od sebe a relace, která svým peerům řekla „další je 284“, se mýlila dvakrát: 283 byl na rescue refu a 290 na otevřené branchi.

To není nedbalost. Relace alokuje z toho, co vidí, a vidí strom, z něhož se větvila — jediné místo, kde je další volné číslo nejméně pravděpodobně. Rozhodnutí měla stejnou vadu a majordomus adr next na ni odpovědělo: průzkum pracovního stromu, každého sourozeneckého worktree na disku, každého refu a nástěnky peerů, přičemž každý říká, co si nárokoval. Identity případů jsou druhý identifikátor, který se tu přiděluje ručně, a toto pravidlo jim dává stejný průzkum a kontrolu pro polovinu, kterou kontrola vidí.

Požadované chování

Přidělování. Nový případ dostane identitu, kterou hlásí scripts/case-numbers next: o jedna vyšší než nejvyšší identita, kterou si nárokuje kterýkoli zkoumaný zdroj. Přidělování je monotónní a nikdy nerecykluje díru, protože díra je číslo vzaté a staženo nebo vzaté a dosud nezapsané a žádný průzkum tato dvě nerozliší. Identita se oznamuje — číslo, nejen cesta — dříve, než se soubor zapíše (project.work-is-claimed-before-it-is-built).

Přehled je nejlepší čtení a říká to. Sken refů vidí jen to, co bylo pushnuto; nástěnka vidí oznámení jen po dobu, co žije její spojení, a je nedosažitelná častěji, než ne. Číslo, které si dvě relace vezmou ve stejné minutě, aniž by pushly nebo oznámily, je neviditelné pro obě a žádný mechanismus to neodstraní: obě mezery jsou komplementární. Proto next pojmenuje každý zdroj, který dosáhl, i každý, který nedosáhl, vypíše identity alokované a nepřistálé na základu s tím, kdo každou drží, a své číslo nikdy nepředstaví jako rezervaci (project.a-verdict-states-its-subject).

Platí. Žádné dva soubory pod test/cases/ nesdílejí text před prvním podtržítkem. Ten text se bere doslova, takže 87 a 87b jsou dvě identity, ne kolize: případ a jeho záměrná druhá polovina je konvence, kterou tento repozitář už používá.

Kolize ze dne, kdy byla kontrola napsána, jsou zaznamenány v .ai/repo/ci/case-numbers-baseline.txt a smějí zůstat, protože jsou rozptýleny po větvích jiných relací a rescue refech a jejich přečíslování by rozbilo každou z nich. Nic se do něj přidávat nesmí. Soubor, který se připojí ke kolizi, již baseline nese, se odmítne jako každý jiný, jinak by rohatka hnití zpomalila, ne zastavila. Zkrácení seznamu povolení nepotřebuje: check jmenuje každou položku, která už nekoliduje. Přepsat baseline, aby se odmítnutí zazelenalo, je jediné, k čemu neslouží.

Chování při selhání

scripts/case-numbers check, registrovaná jako kontrola case-numbers, skončí s kódem 10 a jmenuje každý nový soubor, identitu, kterou sdílí, a s čím ji sdílí, uvádí zkoumanou populaci a jmenuje scripts/case-numbers next. --strict odmítne každou kolizi, ať v baseline je, nebo ne, pro toho, kdo dluh splácí.

scripts/case-numbers next skončí kódem 0, kdykoli odpovědělo, včetně případu, kdy nebylo možné přečíst nástěnku nebo refs — každé z nich je pak hlášeno jako nezmapované, nikdy tiše vynecháno. scripts/case-numbers collisions zviditelní stav křížových refs: každou identitu, kterou kdy nesl více než jeden soubor, zda je každý soubor na základně a kdo ji nese nyní.

Ověření

test/cases/560_a_case_number_names_one_case.sh sestavuje repozitáře, které měří:

  • kontrola nad stromy, které jsou odlišné, které kolidují, jejichž kolize je v základní hodnotě, k jejichž kolizi v základní hodnotě se přidá třetí soubor, jejichž kolize byla přečíslována, a 87 vedle 87b;
  • alokátor nad repozitářem, jehož nejvyšší identita je jen v nescommitovaném souboru sousedního worktree, jehož druhá nejvyšší byla přidána a smazána na rescue refu a nic ji nenese, jehož nesloučená větev drží identitu, kterou základ nemá, jehož základ přejmenoval případ, který starší větve stále nesou, a jehož větev nese jiný soubor pod identitou, kterou základ drží — a každou z toho přehled z menšího počtu zdrojů zodpoví špatně;
  • dokument nástěnky oznamující identitu nad každým souborem a základ, který se nepodaří vyřešit; každé z toho se musí říct nahlas, ne pohltit.

Odkud to pochází

kanonický soubor
.ai/repo/rules/project/a-number-names-one-case.v1.md
identity
project.a-number-names-one-case@1
dostupné také jako
Zdroj MCP majordomus://rule/project.a-number-names-one-case@1 · majordomus entity show rule/project-a-number-names-one-case-1 · GET /api/v1/entity?uri=majordomus://rule/project.a-number-names-one-case@1
v Cockpitu
/cockpit/objects/rule/project-a-number-names-one-case-1

Tato stránka je generována z výše uvedeného souboru pomocí scripts/generate-site-data; úprava stránky nic nemění, úprava souboru změní všechna rozhraní. Výše uvedené vztahy jsou hrany docs/generated/graph.json, které spustitelný program zapisuje ze stejného indexu.

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