A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live
project.the-cooperation-model-is-the-owners-word@1
Work moves through seats held as mesh claims, lands in combined tops, and every checkout is kept current
What it is
- URI
majordomus://rule/project.the-cooperation-model-is-the-owners-word@1- Kind
rule- Identity
project.the-cooperation-model-is-the-owners-word@1- Path
.ai/repo/rules/project/the-cooperation-model-is-the-owners-word.v1.md- Provenance
- declared
- Media type
text/markdown- As a capability
- rule.project.the-cooperation-model-is-the-owners-word@1
Front matter
{
"id": "project.the-cooperation-model-is-the-owners-word",
"version": 1,
"kind": "rule",
"title": "Work moves through seats held as mesh claims, lands in combined tops, and every checkout is kept current",
"description": "The owner's operating decision of 2026-10-16. A seat (landing, release, repair, worker) is an exclusive mesh claim and nothing else; the landing seat lands combined tops pinned to the head one validation run judged; a stale checkout or branch is preserved in a rescue ref and brought current without asking; the release seat releases whenever master holds landed work past the last tag. Every surface that describes the model reads this record or the live claims, never a copy.",
"statement": "Hold a seat only by holding its exclusive mesh claim; land a combined top only pinned to the head whose ci succeeded and which contains the current master; preserve a stale checkout's work in a rescue ref, then bring it current without asking, and bring a pushed branch current by merging master into it; release whenever master holds landed work past the last tag; and describe the model by pointing at this rule or reading the live claims, never by copying it.",
"status": "active",
"class": "blocking",
"depends_on": [
"project.integration-follows-the-current-master@3",
"project.an-expedited-landing-is-the-owners-word@1",
"project.work-is-claimed-before-it-is-built@1",
"project.mesh-cooperation-is-authenticated@1"
],
"tags": [
"process",
"integration",
"mesh",
"release",
"governance"
],
"x-majordomus": {
"tests": [
"test/cases/3150_the_cooperation_model_is_one_record.sh",
"test/cases/2999_delivery_is_expedited_only_where_the_rule_says.sh",
"test/cases/720_integration_follows_the_current_master.sh"
]
}
}Content
---
id: project.the-cooperation-model-is-the-owners-word
version: 1
kind: rule
title: Work moves through seats held as mesh claims, lands in combined tops, and every checkout is kept current
description: The owner's operating decision of 2026-10-16. A seat (landing, release, repair, worker) is an exclusive mesh claim and nothing else; the landing seat lands combined tops pinned to the head one validation run judged; a stale checkout or branch is preserved in a rescue ref and brought current without asking; the release seat releases whenever master holds landed work past the last tag. Every surface that describes the model reads this record or the live claims, never a copy.
statement: Hold a seat only by holding its exclusive mesh claim; land a combined top only pinned to the head whose ci succeeded and which contains the current master; preserve a stale checkout's work in a rescue ref, then bring it current without asking, and bring a pushed branch current by merging master into it; release whenever master holds landed work past the last tag; and describe the model by pointing at this rule or reading the live claims, never by copying it.
status: active
class: blocking
depends_on: [project.integration-follows-the-current-master@3, project.an-expedited-landing-is-the-owners-word@1, project.work-is-claimed-before-it-is-built@1, project.mesh-cooperation-is-authenticated@1]
tags: [process, integration, mesh, release, governance]
x-majordomus:
tests: [test/cases/3150_the_cooperation_model_is_one_record.sh, test/cases/2999_delivery_is_expedited_only_where_the_rule_says.sh, test/cases/720_integration_follows_the_current_master.sh]
---
# Rationale
On 2026-10-16 more than a hundred pull requests were open, nine or more sessions worked one
machine, every landing put every other head behind master again, the primary checkout served
plan answers from a tree 779 commits behind master, and releases waited for milestones while
master moved past them. The owner's answer, quoted with its date and an English reading in ADR 0167, was: clear
milestones, issues and waves very fast; deploy, bump and verify often, from now on always;
use the mesh; split the work and cooperate; land combined tops; always update, rebase or
bring forward whatever helps, after preserving it; document it on the site and in the UI; and
make all of it derived, generated, dynamic and enforced.
What makes that safe is not new. Decisions are still taken against the current master and
named heads (`project.integration-follows-the-current-master`), the protection is still spent
only on a judged tree (`project.an-expedited-landing-is-the-owners-word`), and paths are still
claimed before they are built (`project.work-is-claimed-before-it-is-built`). What this rule
adds is who does what, how large a landing may be, and that nobody waits to be asked before
bringing a stale tree current.
# Required behaviour
1. **A seat is an exclusive mesh claim.** A session holds a seat by holding its claim through
`mesh.claim`, releases it when it stops, and loses it when its heartbeat stops. Nothing else
makes a session a seat: not a name on the board, not a sentence in a handover. The seats and
the scope each one claims:
| seat | claims | does |
|---|---|---|
| landing seat | `campaign/*/landing` | lands every green head, alone, pinned to the head CI judged; builds combined tops |
| release seat | `release/seat` | bumps, tags, records and verifies the site after landings, whenever master holds landed work past the last tag |
| repair lane | `refs/heads/*` | merges master into a pull request that conflicts, on that pull request's own branch, one claim per branch |
| worker | the paths of its one issue | one issue, one pull request: announces on the board, claims on the mesh, asks for a mesh review, hands the green head to the landing seat, never merges |
The Mesh screen of the UI (`/ui/mesh`) reads these scopes from the live claims of
`mesh.state` and draws who holds each seat now; its seat table and this table name the same
scopes, and case 3150 and the screen's own test hold the two to each other.
2. **A combined top is the landing seat's unit of work.** Its members are pull requests whose
heads conflict with nothing in authored paths, decided by a chain of `git merge-tree` from
the current master. The derived files are regenerated once, after the merge commit. One
validation run judges every member. A red member is dropped from the top and fixed on its
own branch, never inside the top. The top lands by one merge,
`gh pr merge <n> --admin --merge --match-head-commit <sha>`, and only when that exact head's
`ci` concluded success and the head contains the current `origin/master`. A release's bump
may ride inside a top. The pull request of a top names its members and their heads.
3. **Always current, preserved first.** A checkout or branch found behind master is brought
current by whoever finds it, without asking. Before anything is moved, what it holds is
preserved: uncommitted work as `git stash create` recorded under `refs/rescue/<name>` by
`git update-ref`, anything else as a patch under `<repository>-rescue/`, the primary
checkout's sibling. A checkout, or a branch no other session or forge reads, may then be reset,
rebased or fast-forwarded. A pushed branch is brought current by merging master into it and
pushing a fast-forward; it is never force-pushed.
4. **Release often.** The release seat cuts a release whenever master holds landed work past
the last tag, not once per milestone. A tag is still pushed only on a commit whose `ci`
succeeded (`scripts/ci/release-verdict`), and the site is verified after it.
5. **One record, read everywhere.** The integration, mesh and release documents point at this
rule and ADR 0167 rather than restating the seats; the site renders both from these files;
the UI reads the seats from the mesh. A copy of the seat table anywhere else is a defect.
# What it amends, and what still holds
ADR 0101 left batches to a person, and this is the owner taking that decision: a combined top
is the landing seat's ordinary unit, not an exception. The integration executor is unchanged:
`majordomus prs drain` still lands one ready pull request at a time and never passes `--admin`,
as `project.integration-follows-the-current-master` requires of integration code. ADR 0155's
"one landing at a time" now reads "one landing seat at a time"; a landing may carry a whole
top. Every other clause of both rules holds: decisions name the master and heads they were
taken against, no check, hook or gate is skipped, `--no-verify` is never used, a release is
never expedited, and every decision leaves its evidence.
# Enforcement points
- `test/cases/3150_the_cooperation_model_is_one_record.sh`: the seat scopes this rule names
are the ones the Mesh screen classifies, the merge it documents is pinned to a judged head
that contains master, and the integration, mesh and release documents point at this rule
and ADR 0167 without copying the seat table.
- `apps/majordomus-cli/src/ui/mesh.rs`, its unit test `every_seat_is_named_by_the_rule`: the
converse, every seat the screen draws is a scope this rule names.
- `test/cases/2999_delivery_is_expedited_only_where_the_rule_says.sh` and
`test/cases/720_integration_follows_the_current_master.sh`: the executor still never names
`--admin`, and a release still waits for its verdict.
- Carried by other workers on 2026-10-16, each its own pull request, and named here so that
clause 3 has a starter: a new worktree starts from the remote trunk rather than a stale local
master (`majordomus worktree create`, pull request #1291, case 3131); `majordomus start`
makes sure the checkout's server runs before its task claims its scope on the mesh (pull
request #1288, case 3151); and a checkout reports how far it stands behind the remote trunk
wherever it is read (rule `project.a-checkout-serves-the-current-trunk`, branch
`feature/a-checkout-serves-the-current-trunk`, case 3176). When they land, their cases join
this rule's tests.
Clauses 2 and 3 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, and the rescue
refs left before a move.
# Verification
`bash test/run.sh 3150_the_cooperation_model_is_one_record`, the same for cases 2999 and 720,
and `cargo test --lib ui::mesh`.