Skip to content

Record the first consumer qualification: Cerberus on 0.3.0 - #8

Merged
Deep-Sixed merged 1 commit into
mainfrom
claude/relaxed-brown-dzjej0
Sep 25, 2026
Merged

Deep-Sixed merged 1 commit into
mainfrom
claude/relaxed-brown-dzjej0

Conversation

@Deep-Sixed

@Deep-Sixed Deep-Sixed commented Sep 23, 2026 •

Copy link
Copy Markdown
Owner

Work package: consumer qualification. Branched from main at 6ea587e, the merge of #7. This is the Ladder run end to end outside its own repository, against a real consumer instead of more self-tests. Documentation only: the qualification needed no verifier change.

Result

Cerberus at 3956a48 (companion PR: Deep-Sixed/Cerberus#20, policy and .gitignore only) reached READY FOR HUMAN GATE TRUE under authoritative evidence/3, and every targeted mutation was refused for the reason that names it.

acceptance item outcome
install from the canonical pinned checkout install-ladder.sh from main@6ea587e into a clean HOME → runtime c86bf47, evidence-v3.2 / 0.3.0
check-install.sh passes INSTALL CONFORMS, using the bootstrap copy
consumer has a committed verification.toml adopting evidence/3 Cerberus#20; seven required gates = every step of its validate job
policy-less refusal before the policy: BLOCKED, exit 2
real baseline governs all 7 gates
the consumer's actual local gates ./scripts/ci.sh PASS: 319 passed, managed Python 3.14.5, no drift
real GitHub Actions import via [ci] push run 35847808939: 7 gates bound step by step, provenance chain checked at import
attestations all six judgment rungs
compose before activation refused: migration window
qualify 12 QUALIFIED, 0 DISAGREEMENT, 0 UNCOVERED; artifact chain OUT OF SCOPE (no behavioural gate); ci provenance and 7 ci step qualified from the real run
activate AUTHORITY SWITCH TRUE
rerun under authoritative evidence/3, then compose EVIDENCE ADMISSIBLE TRUE, DEFINITION CHANGE NONE, CLEAN CLIMB TRUE, READY FOR HUMAN GATE TRUE
deliberate mutation refused 6 of 6; see below
# mutation refusal
M1 tracked source file edited STALE EVIDENCE 3, STATE MATCH FALSE
M2 CI record names another repository "run belongs to 'someone-else/Cerberus'…"
M3 CI job ran another commit "job ran 000000000000, the run names 3956a48c83a9"
M4 record under the pre-hardening contract "different verifier contracts (evidence-v3.1, evidence-v3.2)"
M5 main's green run imported for this head "run is for a0b39996bda0, expected 3956a48c83a9"; no record written
M6 activation record deleted "no activation record … cannot be reported under evidence/2"

After restoring, the untouched evidence composes to READY again with no tracked changes.

What's in this PR

  • docs/qualification/cerberus-0.3.0.md: the full record. Install, the consumer's policy, every step's output, the qualify table, the composite, the mutation matrix, what was not covered, and four observations.
  • README.md: the activation paragraph still described adoption as the activation record alone. It now names the committed evidence line and the migration window's refusal, and points to the record.

Observations, recorded rather than fixed

No verifier change was made to get a pass. Nothing observed let bad evidence through:

  1. compose finds the baseline beside its first argument. With the first record outside .verification/, it reports GOVERNING BASELINE MISSING even though the baseline exists beside the others. It fails closed, but the message is misleading. I hit this in my own first attempt at M4, which was refused for that reason rather than for the contract; the re-run placed the record correctly.
  2. The consumer's local gate needs the consumer's toolchain: uv 0.11.29 and a managed Python 3.14.5. The Ladder itself needs only git and Python 3.11+.
  3. The pinned checkout carries an older pair of scripts since Pin the installer to the 0.3.0 runtime #7. Run from there, the checker reports DOES NOT CONFORM rather than passing, and INSTALL.md says to run the bootstrap copy.
  4. The v0.3.0 tag could not be pushed from this session (HTTP 403, the same restriction that refuses branch deletion). The installer pins by commit, so nothing here depended on it.

Verification

Climb against 8efda0bbaac6 + sha256:fcc3d0d27665, over a baseline on main at
6ea587e: lint, tests-py311 and tests-py314 came from CI run
35848441550,
tests ran locally, and the six judgment rungs are attested.

  BLOCKED REQUIRED GATES   0
  STALE EVIDENCE           0
  STATE MATCH              TRUE
  CLEAN CLIMB              TRUE
  READY FOR HUMAN GATE     TRUE
  • Local suite: 400 passed, 1 skipped; drift: false; Ruff clean.
  • Both CI events are green: push
    35848441550
    and pull_request
    35848472183.

🤖 Generated with Claude Code

https://claude.ai/code/session_016m6di8xFVdwwq949mJx9U1


Generated by Claude Code


Generated by Claude Code

The Ladder had only ever verified itself. This records its first end-to-end
run outside this repository: installed the documented way into a clean HOME,
driven against Cerberus's real gates and a real GitHub Actions run, and
carried from policy-less BLOCKED through qualification and activation to
`READY FOR HUMAN GATE TRUE` under authoritative evidence/3.

docs/qualification/cerberus-0.3.0.md holds the install, the consumer's
policy (Deep-Sixed/Cerberus#20, which changes nothing but its policy and
.gitignore), the qualify table - 12 qualified, 0 disagreeing, 0 uncovered,
artifact chain correctly out of scope - the authoritative composite, and six
targeted mutations each refused for the reason that names them: a moved
worktree, a CI record from another repository, a job that ran another
commit, a record under the pre-hardening contract, main's green run imported
for this head, and a deleted activation record.

Nothing in the verifier was changed to make it pass. Four observations are
recorded rather than fixed, so qualification does not become tailoring:
compose locating the baseline beside its first argument, the consumer
toolchain its local gate needs, the older script pair inside the pinned
checkout, and the v0.3.0 tag this session could not push.

README's activation paragraph still described adoption as the activation
record alone; it now names the committed `evidence` line and the migration
window's refusal, and points to the record.

Documentation only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016m6di8xFVdwwq949mJx9U1
@Deep-Sixed
Deep-Sixed marked this pull request as ready for review September 25, 2026 03:17
@Deep-Sixed
Deep-Sixed merged commit 1865ef6 into main Sep 25, 2026
2 checks passed
@Deep-Sixed
Deep-Sixed deleted the claude/relaxed-brown-dzjej0 branch September 25, 2026 03:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants