Skip to content

Adopt the corpus that audits its own canon and delivers each section whole - #589

Open
m2ux wants to merge 2 commits into
mainfrom
chore/adopt-588
Open

Adopt the corpus that audits its own canon and delivers each section whole#589
m2ux wants to merge 2 commits into
mainfrom
chore/adopt-588

Conversation

@m2ux

@m2ux m2ux commented Sep 3, 2026

Copy link
Copy Markdown
Owner

Summary

Definitions and code sit on separate branches, so a merged corpus reaches the code branch only when a commit here says so. This is that commit for 875a36dc, which is three merged pull requests on workflows:

  • #582 — a canon audit that took restated Protocol phases and schema-owned routing out of rule bodies, and stopped a Capability being read through a link.
  • #586 — checkpoints that asked for an acknowledgement and did nothing with the answer, plus a scope round that now advances before the gate carrying it.
  • #588 — section delivery: ten cross-section references become anchored links, one operative framing paragraph becomes a section, and three citations move to the section their step reads.

Three files: the submodule pointer, the corpus stamp, and the delivery-cost fixture.

The walk baseline does not move, and that is the result

tests/e2e/option-coverage.json is unchanged, which is worth stating rather than passing over. The corpus gained checkpoint and gate changes — a task cycle that now stops when a symbol's provenance is unaccounted for, an isolation gate whose abort actually aborts, a gate that no longer asks a question with one answer. Reachability was the thing those could move, so the full fourteen-workflow walk ran: nineteen minutes, and every declared option is still reached by some walk.

The walk reported one failure, and it is an artefact of the run rather than of the corpus: the stamp-freshness assertion read corpus-sha.json at the moment the walk started, a minute before npm run baseline:stamp rewrote it. That assertion compares two strings and walks nothing; the coverage assertion beside it passed on its own evidence.

Delivery cost falls

Reference This corpus
Delivery chars 1,394,470 1,392,659 −1,811 (−0.13%)
get_activity 562,073 560,462 −1,611
get_workflow 112,548 112,376 −172
get_technique 147,495 147,450 −45
get_resource 572,354 572,371 +17

The first recording to fall. Almost all of it is prose the canon audit removed, delivered again in each activity that binds the operation holding it.

The single increase has a single source. work-package/resources/findings-report.md is the only resource this walk reads that changed, and its finding-layout section now names the field order as a link instead of saying "above" — seventeen characters that a reader given only that section could not previously follow. The section-grain citation changes in the same corpus pull request are in workflow-design and plain-language, which this walk does not visit, so none of them appears here either way.

Gate re-run against the re-recorded fixture: PASS at 0%.

The triage stamp, and what re-affirming it cost

The binding-fidelity verdicts were made against 131e2942, seventeen corpus commits back. A clean guard run on that much drift says the verdicts are old rather than that they are right, so the question is which of the sixty-four entries could have gone stale — and that is a diff, not a re-read of all of them.

Sixty-five corpus files changed. Exactly one of them is a triaged site: meta/techniques/workflow-engine/finalize-activity.md. Its change is the removal of a parenthetical citing a Protocol phase by ordinal, which touches neither the declared output nor who consumes it, so shared-op-return-contract still reads correctly. The stamp moves to 875a36dc with it.

Verification

  • Guard suite: 34 pass, 0 fail, 0 unmeasured.

  • Binding fidelity: 64 triaged as accepted debt, 0 live, 0 untriaged, 0 stale.

  • Option-coverage walk: every declared option reached, no exemption-list change.

  • npm run typecheck: clean.

  • Delivery gate: PASS at 0% against the fixture this commit records.

  • Unit suite (npm run test:ci): 1,139 passed, 2 skipped, 0 failed — after one expectation moved with the corpus. The comment below has the detail.

Scope

The pointer, the stamp and the fixture. No source, schema or test-logic change.

m2ux and others added 2 commits September 3, 2026 10:15
…whole

Moves the definitions pointer to 875a36d, which carries three merged pull
requests: the canon audit that took restated Protocol phases and
schema-owned routing out of rule bodies, the decisionless-checkpoint fixes
that stop a gate asking for an acknowledgement it does nothing with, and the
section-delivery work that gives each delivered section what it depends on.

The walk baseline is unchanged and that is a result rather than an omission.
The corpus gained checkpoint and gate changes — a task cycle that stops on
unaccounted symbol provenance, an isolation gate whose abort now aborts — so
reachability was the thing to check, and a full fourteen-workflow walk still
takes every declared option some walk can reach.

Delivery falls 1,811 characters to 1,392,659, the first recording to fall.
get_activity accounts for 1,611 of it and get_workflow 172, both prose the
canon audit removed. get_resource rises 17, the one increase, from the single
resource this walk reads that changed: the findings-report guide's layout
section names the field order as a link rather than saying "above", which a
reader given only that section could not follow.

The binding-fidelity verdicts were made seventeen corpus commits ago, so the
entries at risk are the ones whose cited file moved since. There is one, and
its file gained a one-line removal of a phase citation by ordinal, which
leaves the shared-op-return-contract reading intact. The stamp moves with it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
submit-for-review's body-non-conformant gate now makes provide-input an
immediate exit, alongside the abort it already had. Answering that gate means
the run leaves the activity and re-enters it with a corrected body, so the
eleven steps after the gate do not run and the consequence the checkpoint
states before the user chooses says so.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@m2ux

m2ux commented Sep 3, 2026

Copy link
Copy Markdown
Owner Author

The Verify failure, and the fix

One test failed: tests/mcp-server.test.tsstates each option's consequence from the workflow graph before the user chooses. It expected the provide-input option at submit-for-review's body-non-conformant gate to carry { exit, next_activity }, and got those plus ends_activity: true.

That is the adopted corpus, and it is intended. The decisionless-checkpoint work added immediate: true to submit-for-review's provide-input exit, on the reasoning its commit gives: end the sequence where a gate's answer says to leave. Answering that gate means the run leaves and re-enters with a corrected body, so the eleven steps after the gate should not run — and the consequence the checkpoint states before the user chooses should say so.

The abort exit at the same gate was already immediate and its assertion was already right, which is why only one of the two moved.

Fixed by reading the expectation to match: provide-input now asserts ends_activity: true, and the comment above the shared step manifest says both of that gate's exits leave rather than implying only abort does.

npm run test:ci: 1,139 passed, 2 skipped, 0 failed.

Why this reached CI rather than being caught locally

The pull request body says the unit suite was still running when this opened. It was not going to finish. npm test is vitest in watch mode; npm run test:ci is vitest run. I started the first, watched it sit idle for hours, and read that as a long suite rather than as a suite that had finished and was waiting for a file to change.

So the claim in the body — that the result would follow in a comment — was reporting on a signal that could not arrive. The suite is run above, and it passes.

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.

1 participant