Skip to content

Merge-rung ladder reaches C3 but the guardrail matrix defines no C3 auto-merge path #1646

Description

@kyle-sexton

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

  1. Amend guardrails.md to give C3 an explicit auto-merge cell with an evidence
    predicate, making c3-autonomous conformant by construction.
  2. Amend the ladder so no rung reaches C3 autonomously, making
    c3-autonomous/full-autonomy either narrower or retired.
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions