| Field | Value |
|---|---|
| Decision ID | ADR-053 |
| Initiative | unsorry volunteer-scale orchestration |
| Proposed By | unsorry maintainers |
| Date | 2026-06-15 |
| Status | Proposed |
ADR-004 chose a dedicated claims branch with first-push-wins semantics. That
was the right primitive for a controlled swarm: it kept coordination inside the
repository, avoided a queue service, and made claims cheap enough for the
current agent population.
ADR-050 and ADR-051 move unsorry toward a reusable autonomous trunk skeleton
that may be adopted by larger volunteer fleets. At that scale the claims
branch becomes the wrong write path. Hundreds of independent nodes pushing
claim commits to one branch will spend too much time fetching, rebasing, and
retrying, even when they are claiming different work units. Git remains a good
audit and merge substrate; it is not a high-throughput lease database.
The system therefore needs a claim substrate contract that preserves the current semantics while allowing the backing implementation to evolve from a git branch to a sharded or service-backed lease layer.
Two dimensions, not one. This ADR addresses claim contention — too many
write-capable nodes on one hot branch. It does not, on its own, solve claim
access: a contributor running from a fork has no write access to
origin/claims at all, and every backend enumerated in SPEC-053-A (single
branch, sharded branches, lease API, signed log) is an upstream-write
substrate, so a contention fix does not make a fork able to claim. The fork
onramp is handled separately and earlier by ADR-068 (Fork-Native Contribution
Mode), which proves claimless (no pre-claim + merge-time dedup, the ADR-060
pattern) and submits via cross-repo PR — the degenerate “no-lease” point of this
contract, where the “one live owner” guarantee is satisfied by the kernel +
first-merge-wins rather than by a lease. A fork-writable lease (a GitHub-App
broker or an append-only claim log forks can append to) is a future backend under
this contract, justified only when measured duplicate-verifier waste warrants it
and paired with ADR-054 identity/quota.
In the context of unsorry’s repository-native autonomous trunk model and the goal of scaling from a controlled agent swarm to volunteer-scale fleets,
facing the fact that the current claims branch is elegant and auditable
but will become a write-contention bottleneck when many uncoordinated nodes
claim work concurrently,
we decided for defining a pluggable claim substrate: the repository continues to own canonical work units and accepted results, but claim leases move behind a contract with atomic acquire, renew, release, expire, inspect, and evidence-export operations; the current git branch remains the default small-swarm implementation, while volunteer-scale deployments may use sharded git branches, a lightweight lease API, or an append-only claim log so long as lease decisions are exported back into auditable repository evidence,
and neglected keeping the single git branch as the only future substrate (rejected because push contention is predictable at volunteer scale), moving canonical work state out of the repository (rejected because it breaks the repo-as-OS source-of-truth model), and letting workers self-assign without an atomic lease (rejected because duplicate work and hostile leases become unbounded),
to achieve high-throughput work assignment without giving up repository auditability,
accepting that a service-backed lease layer introduces operational dependencies that ADR-004 intentionally avoided, that different deployments may choose different backends, and that claim evidence must be carefully exported or the live substrate becomes an invisible source of truth.
Every implementation must provide:
claims branch as the reference implementation.The fork access dimension (ADR-068 ships the claimless onramp; this ADR owns the fork-writable lease) follows the same “measure before you build” discipline as step 4, sequenced cheapest-first so the operational dependency a lease service introduces is only paid if the data demands it. Detail lives in SPEC-053-A (§ “Fork-writable substrate”) and SPEC-054-A; the gate is the ADR-070 duplicate-verifier-waste metric:
fork-automerge-enabler chokepoint (ADR-054):
per-owner caps, denylist, tiers, emergency pause — most abuse control without a
lease, reusing the Phase-1 enabler.| Reference ID | Title | Type | Location |
|---|---|---|---|
| REF-1 | Volunteer-scale claim substrate spec | Specification | specs/SPEC-053-A-Volunteer-Scale-Claim-Substrate.md |
| REF-2 | Claims on a dedicated branch | Decision | ADR-004-Claims-Branch-First-Push-Wins.md |
| REF-3 | Autonomous Trunk Skeleton | Decision | ADR-050-Autonomous-Trunk-Skeleton.md |
| REF-4 | Autonomous Trunk Experience Layer | Decision | ADR-051-Autonomous-Trunk-Experience-Layer.md |
| REF-5 | Verification Tiers and Auditability | Decision | ADR-052-Verification-Tiers-And-Auditability.md |
| REF-6 | Fork-Native Contribution Mode (claimless fork onramp) | Decision | ADR-068-Fork-Native-Contribution-Mode.md |
| REF-7 | Duplicate-Verifier-Waste Metric (the Phase-2 gate) | Decision | ADR-070-Duplicate-Verifier-Waste-Metric.md |
| REF-8 | Agent Identity, Quotas, and Reputation (the lease’s enforcement layer) | Decision | ADR-054-Agent-Identity-Quotas-And-Reputation.md |
| Status | Approver | Date |
|---|---|---|
| Proposed | unsorry maintainers | 2026-06-15 |