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.

Pravidlo pro adresář v README, které žádná relace nikdy nenačetla

Lokální pravidlo je buď ve vždy načítaném souboru, kde za ně platí každá relace, nebo vedle kódu, kde ho nic nespojuje s upravovanou cestou.

→ našel pravidlo pro daný adresář v README, které žádná relace nikdy nenačetla

cena, když k tomu dojde
vysoká
jak často
běžné

Okamžik

Adresář payments má README, které říká, že každá částka je celé číslo v nejmenších jednotkách, a proč. Relace přidá float. Recenzent ukáže na README. Relace načetla kořenový instrukční soubor, který o platbách neříká nic, a nic jí neřeklo, že na cestu, kterou upravuje, platí druhý dokument.

Proč k tomu dochází

Existují dvě špatná místa pro lokální pravidlo. V vždy načítaném souboru, kde stojí kontext každé relace, ať se relace dotýká plateb, nebo ne — tak jeden takový soubor ve zdrojovém materiálu vyrostl na jedenáct set řádků. Nebo v README vedle kódu, kde nestojí nic a nikdo je nečte, protože žádný mechanismus nespojuje cestu, které se pracovník dotýká, s dokumenty, které za ni mluví. Poskytovatelé, kteří načítají vnořené instrukční soubory, to dělají každý po svém, pro své vlastní názvy souborů, a žádný z nich neřekne, které dokumenty platily pro danou změnu.

Proč to lepší model nevyřeší

Worker nemůže přečíst soubor, který nedostal a o jehož existenci neví. Je to problém vyhledávání s deterministickou odpovědí — které dokumenty řídí tuto cestu — a deterministické odpovědi se nemají delegovat na inferenci.

Co to stojí

Vada, kterou musí revize zachytit pokaždé, dokud pravidlo zůstává neviditelné. A recenzent, který reaguje přesunutím pravidla do vždy načítaného souboru, což opraví tento adresář, ale zatíží každou relaci v repozitáři.

Co Majordomus dělá

Kontext je strom, ne soubor. Pod vrstvou .ai/ nese adresář kontextový dokument, pravdivý pro tento adresář a vše pod ním, a vrstva je jeden adresář, jehož manifest pojmenovává každou sekci a který lze číst bez nástroje. majordomus context resolve <path> vypíše řetěz od rootu k dané cestě, v jednom deterministickém pořadí, a context explain říká, proč je každý dokument zahrnut a proč je každý filtrovaný vyřazen. Dokument může také deklarovat, které zdrojové cesty sleduje, takže dokument o platbách se najde z lib/payments, ačkoli tam nežije. Nejbližší dokument se přidává k předkům a nikdy je nenahrazuje.

context validate shodí celý strom při rozbité referenci, cyklu, neznámém klíči nebo nepřípustném přepsání a neplatný strom neurčí nic. context affected čte množinu změn z gitu a hlásí, kterých dokumentů a rozsahů se dotýká. Pravidla mají stejný tvar: majordomus rules list vypíše efektivní sadu vyřešenou jako graf závislostí a u každého říká, zda ho nástroj vynucuje, nebo ho nevynucuje nikdo.

Před a po

before   CLAUDE.md (root)                     loaded, says nothing about payments
         lib/payments/README.md               governs the change, loaded by nobody

after    $ majordomus context resolve lib/payments
         .ai/README.md                        final,  order 10
         .ai/repo/README.md                   extend, order 20
         lib/payments/README.md               extend, tracked by id ai.payments

Jak to ověřit

Přidejte kontextový dokument pro adresář a spusťte context resolve na cestě pod ním: dokument se objeví v řetězci, v pořadí. Rozbijte v něm odkaz a context validate selže pro celý strom, místo aby vyřešilo jeho část.

Co nedělá

Skládá dokumenty pro danou cestu; nenutí pracovníka je číst. Generovaný instrukční soubor pracovníkovi říká, aby před prací pod cestou rozlišil kontext, a briefing dodržuje rozpočet řádků a jmenuje každou sekci, kterou vynechal. Neparsuje vlastní konvence poskytovatele pro vnořené soubory: platí zdejší rozlišení a načítání poskytovatele se bere jako optimalizace.

Jak to vypadá

Konkrétní situace, jedna pro každé publikum. Každá je deklarována v záhlaví okamžiku, takže stav před a po jsou data, ne próza, od které by se stránka mohla odchýlit.

  1. Částky jsou celá čísla v nejmenších jednotkách ai-native-team

    před
    README plateb to říká a vysvětluje proč; relace přidá float, protože načetla kořenový soubor, který o platbách neříká nic.
    po
    `context resolve lib/payments` složí řetězec od kořene po tento adresář a worker má za úkol jej rozlišit, než začne pracovat pod cestou.
  2. Konvence, kterou nikdo nemohl objevit open-source-maintainer

    před
    Asistent přispěvatele poruší konvenci adresáře, která je zdokumentována vedle kódu, jejž nikdy neotevřel.
    po
    Dokument deklaruje cesty, které sleduje, takže se z kódu najde, i když tam nežije.
  3. Vše v kořenovém souboru platform-team

    před
    Lokální pravidla se přesunou do vždy načítaného souboru, aby se zaručilo, že budou vidět; dosáhne jedenácti set řádků a každá relace platí za všechny.
    po
    Kořenový soubor zavádí a odkazuje; lokální pravidlo zůstává lokální a skládá se jen pro cesty, které řídí, v rámci rozpočtu řádků s kontrolou, která selže.

Jak to poznáte

Pozorovatelné příznaky, které tento okamžik deklaruje. Jsou dotazníkem na indexu a vstupem pro majordomus why diagnose; nic jiného je nedefinuje.

  • Pravidlo, které řídí adresář, sedí v README, které žádná relace nenačetla. readme-nobody-read
  • Komentář v review tento týden spočíval v ukázání na dokument, který autor nedostal. review-points-at-a-file
  • Vždy načítaný instrukční soubor vyrostl v korpus pravidel, který platí každá relace. root-file-is-a-corpus

Kde to v nástroji najdete

Vše níže je načteno z vlastního záhlaví tohoto okamžiku a ověřeno proti repozitáři. Neexistující název by neprošel validací.

příkazy, které na to odpovídají

schopnosti spustitelného souboru, které na to odpovídají

co dohlíží — odvozeno z tvrzení níže

tvrzení, která tuto stránku podpírají, a důkazy za každým z nich

pravidla, která jej řídí

  • majordomus.context-integrity
  • majordomus.context-budget
  • majordomus.rule-package-integrity
  • majordomus.minimum-sufficient-context

případy užití, které ukazují cestu ven

Pokud vám tohle zní povědomě, další také

Co tento okamžik pojmenovává, co pojmenovává jeho a co sdílí jeho oblast, publikum nebo štítky. Druhé a třetí je odvozeno; zapsáno je jen první.

Všech 38 a jak souvisejí s nástrojem →

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