What
babysit-loop's merge-rung ladder makes C3 pull requests autonomously
mergeable at two rungs, but plugins/autonomy/reference/guardrails.md's merge-
policy matrix defines no auto-merge path for C3 at all. The two contracts
disagree about the same class.
Evidence
plugins/autonomy/reference/guardrails.md merge-policy column:
- C2 —
auto-merge ELIGIBLE after per-class promotion trigger
- C3 —
human merge, with no promotion or eligibility language
- C4 / C5 —
human merge always
C2 is the only class the matrix gives any route to auto-merge.
plugins/source-control/skills/babysit-loop/SKILL.md (~:179-181) resolves the
ladder the other way: "at c3-autonomous, C2 and C3; at full-autonomy, every
class up to and including C3". So a repository recording either rung merges C3
PRs without a human, which the matrix never authorizes.
babysit-loop borrows its C1-C5 taxonomy from this same contract family — it
cites work-classes.md directly at ~:210-211 — so this is one taxonomy with two
incompatible merge policies, not two independent vocabularies that happen to
share letters.
Why it matters
The rung name a repository records in .claude/source-control.md is the
human-ratified adoption artifact. If c3-autonomous and full-autonomy are not
conformant to the org's own guardrail matrix, then recording either one is an
operator override of that matrix rather than a configuration choice within it —
and nothing in the seam surfaces that to the person recording it.
Not a regression
This predates and is unrelated to melodic-software/ci-workflows#268, which
lowered that repository from full-autonomy to c2-mechanical. That change
moves toward the one rung the matrix actually defines an auto-merge path for.
The gap was found while independently verifying #268, not caused by it.
Resolution shapes, unranked
- Amend
guardrails.md to give C3 an explicit auto-merge cell with an evidence
predicate, making c3-autonomous conformant by construction.
- Amend the ladder so no rung reaches C3 autonomously, making
c3-autonomous/full-autonomy either narrower or retired.
- Declare one document authoritative over the other and make the subordinate
one point at it rather than restate the policy.
Deciding between these is a contract decision, not a mechanical fix.
Related
- Independent cross-vendor verification of
melodic-software/ci-workflows#268
surfaced this.
plugins/autonomy/reference/guardrails.md
plugins/source-control/skills/babysit-loop/SKILL.md
plugins/autonomy/reference/work-classes.md
No linked issue.
What
babysit-loop's merge-rung ladder makes C3 pull requests autonomouslymergeable at two rungs, but
plugins/autonomy/reference/guardrails.md's merge-policy matrix defines no auto-merge path for C3 at all. The two contracts
disagree about the same class.
Evidence
plugins/autonomy/reference/guardrails.mdmerge-policy column:auto-merge ELIGIBLE after per-class promotion triggerhuman merge, with no promotion or eligibility languagehuman merge alwaysC2 is the only class the matrix gives any route to auto-merge.
plugins/source-control/skills/babysit-loop/SKILL.md(~:179-181) resolves theladder the other way: "at
c3-autonomous, C2 and C3; atfull-autonomy, everyclass up to and including C3". So a repository recording either rung merges C3
PRs without a human, which the matrix never authorizes.
babysit-loop borrows its C1-C5 taxonomy from this same contract family — it
cites
work-classes.mddirectly at ~:210-211 — so this is one taxonomy with twoincompatible merge policies, not two independent vocabularies that happen to
share letters.
Why it matters
The rung name a repository records in
.claude/source-control.mdis thehuman-ratified adoption artifact. If
c3-autonomousandfull-autonomyare notconformant to the org's own guardrail matrix, then recording either one is an
operator override of that matrix rather than a configuration choice within it —
and nothing in the seam surfaces that to the person recording it.
Not a regression
This predates and is unrelated to
melodic-software/ci-workflows#268, whichlowered that repository from
full-autonomytoc2-mechanical. That changemoves toward the one rung the matrix actually defines an auto-merge path for.
The gap was found while independently verifying #268, not caused by it.
Resolution shapes, unranked
guardrails.mdto give C3 an explicit auto-merge cell with an evidencepredicate, making
c3-autonomousconformant by construction.c3-autonomous/full-autonomyeither narrower or retired.one point at it rather than restate the policy.
Deciding between these is a contract decision, not a mechanical fix.
Related
melodic-software/ci-workflows#268surfaced this.
plugins/autonomy/reference/guardrails.mdplugins/source-control/skills/babysit-loop/SKILL.mdplugins/autonomy/reference/work-classes.mdNo linked issue.