| Field | Value |
|---|---|
| Decision ID | ADR-050 |
| Initiative | unsorry platform generalization / reusable project bootstrap |
| Proposed By | unsorry maintainers |
| Date | 2026-06-15 |
| Status | Proposed |
ADR-030 defines a domain-agnostic distributed-workload engine behind a plugin seam. That seam separates the reusable engine concerns from Lean-specific proof work: work-unit shape, candidate generation, verification, decomposition, and assimilation. It deliberately rejected extracting a separate package before a second domain proves the boundary.
Since then, the reusable part of unsorry has become clearer. The valuable pattern is not only “a Lean proof swarm”; it is a repo-native autonomous trunk flow:
That pattern is useful outside Lean. It can coordinate many agents around any workload with a bounded task record and a verifier: tests, contract checks, benchmarks, screenshots, fuzzers, security scanners, formal proofs, or risk-tiered human approvals. The Lean implementation remains the strongest example because the Lean kernel gives a deterministic truth oracle, but the coordination skeleton should be reusable without copying Lean-specific gate logic or theorem vocabulary into every new project.
In the context of unsorry operating as a successful autonomous swarm where agents and humans contribute through protected trunk, claims, short-lived PRs, objective gates, auto-merge, post-merge generated artifacts, ADR/spec discipline, and provenance,
facing the need to reuse that operating model for new projects and new domains without forking Lean-specific assumptions, and facing the risk that future users copy the current repository wholesale instead of understanding which parts are generic orchestration and which parts are Lean proof policy,
we decided for defining an Autonomous Trunk Skeleton: an in-repository template and reference contract that documents the reusable flow, required repository settings, state-machine vocabulary, workflow lanes, trust-bearing paths, compliance evidence hooks, and adapter boundaries; the skeleton is extracted first as documentation plus copyable templates/specs, not as a separate product package, and the existing Lean swarm becomes the flagship adapter that proves the skeleton can host a high-trust VERIFIED workload,
and neglected extracting a standalone framework repository now (premature until the skeleton is exercised by at least one non-Lean project), treating GitFlow as the reusable model (rejected because long-lived integration/release branches weaken the high-throughput agent loop), copying unsorry’s Lean gates verbatim into new projects (rejected because each domain needs its own verifier), and hiding GitHub branch protection / secret / CODEOWNER settings inside prose only (rejected because project bootstrap must name auditable settings and drift checks explicitly),
to achieve a reusable setup path for “many agents contributing to one cause” where a new project can adopt the trunk/claim/gate/post-merge pattern by choosing adapters and verifier policy rather than rediscovering the coordination model from unsorry’s Lean-specific implementation,
accepting that the skeleton is not yet a product, that its first version is documentation and templates rather than a polished CLI, that GitHub remains the initial coordination and audit substrate with known scaling limits, that weak or subjective verifiers must use SCORED, CONSENSUS, or human-approval policies instead of pretending to be Lean-style VERIFIED workloads, and that no refactoring may reduce the soundness guarantees of the current Lean path.
The skeleton owns the reusable orchestration contract:
open -> claimed -> in_progress -> pr_opened -> gated
-> merged plus failed -> released | demoted | decomposed,The skeleton does not own domain truth. Each adapter must define its own verifier and acceptance policy:
VERIFIED.VERIFIED only when tests
are comprehensive enough for the risk.SCORED.CONSENSUS.templates/autonomous-trunk/ or equivalent path.| Reference ID | Title | Type | Location |
|---|---|---|---|
| REF-1 | Autonomous trunk skeleton specification | Specification | specs/SPEC-050-A-Autonomous-Trunk-Skeleton.md |
| REF-2 | Domain-agnostic distributed-workload engine | Decision | ADR-030-Distributed-Workload-Engine.md |
| REF-3 | Claims on a dedicated branch | Decision | ADR-004-Claims-Branch-First-Push-Wins.md |
| REF-4 | Autonomous merge policy | Decision | ADR-005-Autonomous-Merge-Policy.md |
| REF-5 | PR convention enforcement | Decision | ADR-026-PR-Convention-Enforcement.md |
| REF-6 | Targets board post-merge refresh | Decision | ADR-036-Targets-Board-Post-Merge-Refresh.md |
| REF-7 | CI supply-chain and workflow protection | Decision | ADR-019-CI-Supply-Chain-Protection.md |
| REF-8 | Decentralised CI runner architecture | Decision | ADR-046-Decentralised-CI-Runner-Architecture.md |
| Status | Approver | Date |
|---|---|---|
| Proposed | unsorry maintainers | 2026-06-15 |