Part of #1311. Priority: after the P0 and P1 work.
An option was selected on 2026-09-08. It is not the one this body proposes.
The decision, its measurements, and what is still unmeasured are recorded in
#1321 (comment). Read that
comment before acting on the text below.
The title and the proposal below describe the original option, which retires the carried skills
tree. The selection keeps that tree carried and retires four documents instead, so acting on
this body rather than on the comment implements a rejected option. The maintainer's own note on
this issue asks that the selection not be read as law, and it stays open to revisiting.
Why
The skills tree is carried as a verbatim tree and many GOVERNANCE.md and AGENTS.md sections are carried verbatim, so every wording change in the hub is a fleet-wide change. Every carrier's first review re-discovers the same defects in a repository that cannot fix them (#1138, #1139). The fidelity model cannot express a value that legitimately varies per repo nor detect one that is uniformly wrong (#1141, #1118). A carrier holds sentences that are false in the carrier (#1184). AGENTS.md "Fleet Bootstrap" already tells an agent to fetch the hub and read the rules there, and scripts/ is already reach-not-carry. The prose is the last thing still carried, and it is the thing that churns.
The decision
Reduce the carried baseline to: CLAUDE.md, AGENTS.md holding the Fleet Bootstrap section verbatim and a repo-specific remainder, the config files the tooling needs (.editorconfig, .gitattributes, lint configs, workflow stubs), and .github/copilot-instructions.md since the Copilot bot reads it directly. Everything else, GOVERNANCE.md, CODESTYLE.md, WORKFLOW.md, AUDIT.md, and the skills tree, is reached from a hub checkout the bootstrap already requires, and the skills reach Claude Code through the installer that already exists.
What this costs: a Codex or opencode session in a downstream repo loses the skills it read from .agents/skills/ by walking up, and gets them from the hub checkout instead, which the bootstrap already makes it fetch. A downstream repo's contributor without a hub checkout reads a pointer instead of the rule. A resync stops refreshing prose, so the resync becomes small and mechanical.
What it buys: a wording change in the hub is one pull request in one repository, the whole-unit pass runs once where the fix can land, the fidelity model stops having to express prose variance, and the "first review happens downstream" pump closes.
Scope, once decided
- Amend
spec/files.json and spec/section-model.md to the reduced baseline.
- Amend
RESYNC.md and STANDUP.md so a resync removes carried prose from a repo that holds it, with the audit reporting it as a retired file rather than drift.
- Amend the Fleet Bootstrap so the pointer names where each removed document is read.
- Run the resync across the fleet as its own campaign after the hub change promotes.
Rules that bind this task
- The Fleet Bootstrap stays byte-locked and is the one thing every repository reads identically.
- No prose rule is deleted. It moves from carried to reached.
- The decision is recorded in
TODO.md "Reducing the Carried Surface Further" or its successor before the first edit.
Acceptance
- The maintainer has decided, and the decision and its reasons are recorded.
- If accepted: a downstream repo after resync carries no
GOVERNANCE.md, CODESTYLE.md, WORKFLOW.md, AUDIT.md, or skills tree, and its audit reports clean.
Relates #1138, #1139, #1141, #1118, #1184, #1146, #1140, #1145.
Part of #1311. Priority: after the P0 and P1 work.
Why
The skills tree is carried as a verbatim tree and many
GOVERNANCE.mdandAGENTS.mdsections are carried verbatim, so every wording change in the hub is a fleet-wide change. Every carrier's first review re-discovers the same defects in a repository that cannot fix them (#1138, #1139). The fidelity model cannot express a value that legitimately varies per repo nor detect one that is uniformly wrong (#1141, #1118). A carrier holds sentences that are false in the carrier (#1184).AGENTS.md"Fleet Bootstrap" already tells an agent to fetch the hub and read the rules there, andscripts/is already reach-not-carry. The prose is the last thing still carried, and it is the thing that churns.The decision
Reduce the carried baseline to:
CLAUDE.md,AGENTS.mdholding the Fleet Bootstrap section verbatim and a repo-specific remainder, the config files the tooling needs (.editorconfig,.gitattributes, lint configs, workflow stubs), and.github/copilot-instructions.mdsince the Copilot bot reads it directly. Everything else,GOVERNANCE.md,CODESTYLE.md,WORKFLOW.md,AUDIT.md, and the skills tree, is reached from a hub checkout the bootstrap already requires, and the skills reach Claude Code through the installer that already exists.What this costs: a Codex or opencode session in a downstream repo loses the skills it read from
.agents/skills/by walking up, and gets them from the hub checkout instead, which the bootstrap already makes it fetch. A downstream repo's contributor without a hub checkout reads a pointer instead of the rule. A resync stops refreshing prose, so the resync becomes small and mechanical.What it buys: a wording change in the hub is one pull request in one repository, the whole-unit pass runs once where the fix can land, the fidelity model stops having to express prose variance, and the "first review happens downstream" pump closes.
Scope, once decided
spec/files.jsonandspec/section-model.mdto the reduced baseline.RESYNC.mdandSTANDUP.mdso a resync removes carried prose from a repo that holds it, with the audit reporting it as a retired file rather than drift.Rules that bind this task
TODO.md"Reducing the Carried Surface Further" or its successor before the first edit.Acceptance
GOVERNANCE.md,CODESTYLE.md,WORKFLOW.md,AUDIT.md, or skills tree, and its audit reports clean.Relates #1138, #1139, #1141, #1118, #1184, #1146, #1140, #1145.