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.

Work moves through seats held as mesh claims, a worker lands its own green head, and every checkout is kept current

Work moves through seats held as mesh claims, a worker lands its own green head, and every checkout is kept current

majordomus://rule/project.the-cooperation-model-is-the-owners-word@2aktivní procesintegracemeshreleasegovernance

Zdůvodnění

Dne 2026-10-16 bylo otevřeno přes sto pull requestů, na jednom stroji pracovalo devět či více relací, každé přistání zase posunulo každou jinou hlavu za master, primární checkout servíroval odpovědi plánu ze stromu o 779 commitů za masterem a release čekaly na milníky, zatímco master je přešel. Odpověď vlastníka, citovaná s datem a anglickým čtením v ADR 0167, zněla: čistit milníky, úkoly a vlny velmi rychle; nasazovat, zvedat verze a ověřovat často, od nynějška vždy; používat mesh; dělit práci a spolupracovat; přistávat kombinované vrcholy; vždy aktualizovat, rebasovat či přenést vpřed cokoli, co pomůže, po jeho zachování; zdokumentovat to na webu a v UI; a vše učinit odvozeným, generovaným, dynamickým a vynuceným.

To, co to činí bezpečným, není nové. Rozhodnutí se stále dělají proti aktuálnímu masteru a pojmenovaným headům (project.integration-follows-the-current-master), ochrana se stále vynakládá jen na posouzený strom (project.an-expedited-landing-is-the-owners-word) a cesty se stále zabírají dřív, než se sestaví (project.work-is-claimed-before-it-is-built). Toto pravidlo přidává, kdo co dělá, jak velké smí být přistání a že nikdo nečeká na vyzvání, než zastaralý strom aktualizuje.

The relaxation of 2026-10-20 (version 2)

Version 1 made every landing the landing seat's: a worker handed its green head over and never merged, builds waited for the landing seat's slot order (at most three, a load stop, a 50 GiB floor, one queued derive), and a worker waited for a seat's word before acting. By the evening of 2026-10-20 those waits were the bottleneck. At about 23:13 UTC the owner wrote, to session d3 and to session 0c in the same words: "hlavne prosim tebe reflektuj zmekceni pravidel, vse updatuj, vsem dej vedet, updatni nataveni" — "above all, reflect the relaxation of the rules, update everything, let everyone know, update the settings". Asked by d3 which relaxations he meant, he chose all four offered: the build and disk limits, landing and merge, the sessions' permissions, and the coordination formalities. The seats read that on the board (claim owner-relaxation-10-21) as: at most five concurrent builders, a hard floor of 35 GiB free, ids and claims still bind, and a worker lands its own green pull request through the guarded lander's queue. That reading is what version 2 records. What did not relax: a landing is still pinned to a head whose ci succeeded and which contains the current master, nothing skips a check or a hook, and paths and identifiers are still claimed before they are built.

Požadované chování

  1. Role je exkluzivní claim v meshi. Relace drží roli tím, že drží její claim přes mesh.claim, uvolní ji, když skončí, a ztratí ji, když přestane její heartbeat. Nic jiného z relace roli nedělá: ani jméno na nástěnce, ani věta v předávce. Role a rozsah, který každá nárokuje:

    roletvrzenídělá
    role přistánícampaign/*/landingcomposes and lands combined tops when heads must ship together, pinned to the head CI judged; runs the guarded lander's queue
    role pro releaserelease/seatbumps, tags on master's own green ci, records and verifies the site after landings, whenever master holds landed work past the last tag
    opravná dráharefs/heads/*slučuje master do pull requestu, který je v konfliktu, na vlastní větvi tohoto pull requestu, jeden claim na větev
    workercesty jeho jediného úkoluone issue, one pull request: announces on the board, claims on the mesh, asks for a mesh review, lands its own green head through the guarded lander's queue

    Obrazovka Mesh v UI (/ui/mesh) čte tyto rozsahy z živých nároků mesh.state a kreslí, kdo drží kterou roli právě teď; její tabulka rolí a tato tabulka pojmenovávají tytéž rozsahy a případ 3150 a vlastní test obrazovky je drží ve shodě.

  2. Kombinovaný top je pracovní jednotkou role přistání. Jeho členy jsou pull requesty, jejichž heady se v autorských cestách s ničím nekonfliktují, rozhodnuto řetězem git merge-tree od aktuálního masteru. Odvozené soubory se regenerují jednou, po merge commitu. Jeden validační běh posuzuje všechny členy. Červený člen se z topu vyřadí a opraví na vlastní větvi, nikdy uvnitř topu. Top přistává jedním mergem, gh pr merge <n> --admin --merge --match-head-commit <sha>, a jen když ci přesně toho headu skončil úspěchem a head obsahuje aktuální origin/master. Navýšení verze releasu může jet uvnitř topu. Pull request topu jmenuje své členy a jejich heady.

  3. Vždy aktuální, nejdřív zachováno. Checkout nebo větev, která zaostává za masterem, uvede do aktuálního stavu ten, kdo ji najde, bez ptaní. Než se cokoli přesune, zachová se to, co obsahuje: necommitnutá práce jako git stash create zaznamenaný pod refs/rescue/<name> nástrojem git update-ref, cokoli jiného jako patch pod <repository>-rescue/, sourozencem primárního checkoutu. Checkout, nebo větev, kterou nečte žádná jiná relace ani forge, lze poté resetovat, rebasovat či fast-forwardovat. Pushnutá větev se uvede do aktuálního stavu sloučením masteru do ní a pushem fast-forward; nikdy se nepushuje silou.

  4. Vydávejte často. Role release vydá release vždy, když master obsahuje přistanou práci za posledním tagem, ne jednou za milník. Tag se stále pushuje jen na commit, jehož ci uspělo (scripts/ci/release-verdict), a web se po něm ověřuje.

  5. Jeden záznam, čtený všude. Dokumenty o integraci, mesh a release odkazují na toto pravidlo a ADR 0167 místo opakování rolí; web obě vykresluje z těchto souborů; UI čte role z mesh. Kopie tabulky rolí kdekoli jinde je vada.

  6. A worker lands its own green head. A worker whose pull request is green enters its number in the guarded lander's queue (.e7-land-queue, beside the checkouts) and does not wait for a seat. The lander fast-forwards master only when the newest ci check run on the pull request's head concluded success, that head is still the pull request's head, and it contains origin/master; anything else stays queued and is named. A head that must ship with others still goes to the landing seat as a member of a combined top (clause 2).

  7. Builds are bounded by the machine, not by a slot order. At most five builders run at once on one machine, and none starts while less than 35 GiB is free. Within those limits a session builds when it needs to, and says so on the board; it does not ask for a slot. Identifiers, paths and seats are still claimed on the mesh before they are used, and after every completed step a session tells the peers it affects.

  8. Cleanup that loses nothing is done without asking, and announced. A worktree whose branch is merged, whose tree is clean and in which no process works is removed with git worktree remove, never --force; Docker's build cache, anonymous volumes and dangling images are pruned. Each removal is announced on the mesh. Anything that holds unlanded or uncommitted work is preserved first (clause 3) and is not cleanup.

Two things this rule does not grant. The Claude Code permission rules of the machine (autoMode.allow and the settings files) are the owner's to write: a session hands the owner the text to paste and never edits them, so no document claims more autonomy than the settings give. And the local pre-commit and pre-push gates are judged by their own issue in the CI critical path, not by this rule.

Co mění a co stále platí

Version 2 lifts two words of version 1's worker row, "never merges": a worker's own green head is landed through the guarded lander's queue, under exactly the pin the landing seat lands under, so nothing about what may reach master is looser. It replaces the landing seat's slot order with the two machine limits of clause 7. Everything below holds as in version 1.

ADR 0101 nechalo dávky člověku a toto je vlastník, který toto rozhodnutí přebírá: kombinovaný top je běžná jednotka role přistání, ne výjimka. Integrační executor je beze změny: majordomus prs drain stále přistane jeden připravený pull request najednou a nikdy nepředá --admin, jak project.integration-follows-the-current-master od integračního kódu vyžaduje. „Jedno přistání najednou“ z ADR 0155 se nyní čte „jedna role přistání najednou“; přistání může nést celý top. Každá jiná klauzule obou pravidel platí: rozhodnutí pojmenovávají master a heads, proti nimž byla učiněna, žádná kontrola, hook ani brána se nepřeskakuje, --no-verify se nikdy nepoužije, release se nikdy nezrychluje a každé rozhodnutí zanechává své důkazy.

Body vynucování

  • test/cases/3150_the_cooperation_model_is_one_record.sh: rozsahy rolí, které toto pravidlo jmenuje, jsou ty, které klasifikuje obrazovka Mesh, merge, který dokumentuje, je připnut k posouzenému headu obsahujícímu master a dokumenty o integraci, mesh a release odkazují na toto pravidlo a ADR 0167, aniž kopírují tabulku rolí.

  • apps/majordomus-cli/src/ui/mesh.rs, jeho unit test every_seat_is_named_by_the_rule: opak, každá role, kterou obrazovka kreslí, je rozsah, který toto pravidlo jmenuje.

  • test/cases/2999_delivery_is_expedited_only_where_the_rule_says.sh a test/cases/720_integration_follows_the_current_master.sh: executor stále nikdy nejmenuje --admin a release stále čeká na svůj verdikt.

  • Neseno jinými pracovníky 2026-10-16, každý jako vlastní pull request, a zde jmenováno, aby klauzule 3 měla začátek: nový worktree startuje ze vzdáleného trunku, ne ze zastaralého lokálního masteru (majordomus worktree create, pull request #1291, případ 3131); majordomus start zajistí, že server checkoutu běží dřív, než jeho úloha na meshi nárokuje svůj rozsah (pull request #1288, případ 3151); a checkout hlásí, jak daleko zaostává za vzdáleným trunkem všude, kde se čte (pravidlo project.a-checkout-serves-the-current-trunk, větev feature/a-checkout-serves-the-current-trunk, případ 3176). Až přistanou, jejich případy se připojí k testům tohoto pravidla.

  • test/cases/3824_the_bootstrap_says_what_the_cooperation_rule_says.sh: the bootstrap paragraph every provider's instruction file carries says what clauses 6 and 7 say (a worker lands its own green head through the guarded queue; five builders, 35 GiB) and no longer says "never merges", each provider template carries the same paragraph, and it names this rule.

Clauses 2, 3 and 6 are also acts of a session, and are decided by the record: the landing claim on the mesh, the members and the judged head named in the top's pull request, the queued pull request and the head the lander pinned, and the rescue refs left before a move. Clause 7's two limits are, today, the seats' operating numbers read from this record; the build guard in lib/rust_bin.sh still refuses only below its own 5 GiB default, and holding a build to 35 GiB and five builders in code is owed (I3825).

Ověření

bash test/run.sh 3150_the_cooperation_model_is_one_record, the same for cases 2999, 720 and 3824, and cargo test --lib ui::mesh.

Odkud to pochází

kanonický soubor
.ai/repo/rules/project/the-cooperation-model-is-the-owners-word.v2.md
identity
project.the-cooperation-model-is-the-owners-word@2
dostupné také jako
Zdroj MCP majordomus://rule/project.the-cooperation-model-is-the-owners-word@2 · majordomus entity show rule/project-the-cooperation-model-is-the-owners-word-2 · GET /api/v1/entity?uri=majordomus://rule/project.the-cooperation-model-is-the-owners-word@2
v Cockpitu
/cockpit/objects/rule/project-the-cooperation-model-is-the-owners-word-2

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.