The Sixth Move
On May 7, 2026, ten days after Three, Eight, Five published the claim that working invariants always shrink as the surface they govern expands, CANONIC shipped three closures totaling 43 files into the working tree and watched all three pass every gate in the build pipeline before noticing none of them had committed. Three closures, every gate green, files in production through Cloudflare Pages and the api.canonic.org Worker — and 43 files in git status. The deploy survived because deploy is a Cloudflare-version push; the audit trail collapsed because audit is a git-commit chain. The five-move pattern that Closing the Books formalized in April had a hole on its durability beat. The pattern claims to scale by row-edit not code-edit; but a row-edit that never commits is a row that nobody else sees. The five-move pattern is half right. A closure that ships to production and doesn't land in git is real for as long as Cloudflare keeps its current version and ephemeral after that. The sixth move is the one that turns a closure-shaped working-tree edit into a closure-shaped commit. It was always implicit in PROPAGATE. Today it is a peer.
What the audit found
The session opened with three new governed primitives: COAUTHOR (multi-author manuscript collaboration), EDITOR_MOUNTS_CANONICAL (manuscript body resolves via magic://), READER_STRIPS_LATEX_TYPESETTING (LaTeX preamble stripped from prose render). Each followed the five-move template. Each declared its rule in a CANON.md. Each emitted codegen mirrors. Each had consumers referencing the generated output. Each had a verifier that passed. Each had a row-edit propagation test that demonstrably worked — the editor surface lit up the moment a manuscript flipped its coauthor_surface to enabled, with no client release.
Then the operator typed git status and saw forty-three modified files across two repos.
The five-move pattern said the closures shipped. The build pipeline said the gates passed. The Worker version 4212a413-c24d-48ae-bdd2-842a99d70d54 said the changes were live in Cloudflare Pages production. The git working tree said none of it had been committed.
That gap is what the sixth move closes.
Where the gap was hiding
Reread the original five moves. Declare in governance is a file edit. Read by the compiler is a generated artifact. Consume by runtime is a code change. Gate by verifier is a script. Propagate by row-edit is a behavior — adding a row in CANON cascades to all consumers. Each of the first five moves produces files. Each of those files lives somewhere on disk. None of those moves says when the files become durable.
Durability of file changes is git's job. Git is downstream of the closure. The five moves all happened in the working tree; nothing in the closure pattern itself required the working tree to commit. The pattern was correct about every move it described. It was silent about the move it didn't.
That silence was load-bearing. Forty-three files is a single session's three closures. Five sessions a week, fifty weeks a year, and the silent beat compounds. By S60 the working tree would have held a year of half-shipped governance. The audit trail would point to Cloudflare Pages versions instead of CANON.md commits. The 255 invariant survives, because it scores the source-of-truth state in CANON, not the deployment state of any consumer. But the attestation that 255 has been earned at any specific date — the thing an auditor signs — depends on the commit chain. An attestation for a closure that never committed is signing a Cloudflare deploy ID, which is not the source of truth.
The sixth move binds the closure to the durability layer. It does not invent durability — git was always there. It pins the closure pattern to git in the same way the verifier pins the closure pattern to a script.
The sixth move
Commit. The closure files — governance, lib, bin, workers, generated mirrors, tests — land in git. Working-tree-only state is ephemeral. A closure that demonstrably runs in production but does not commit is not shipped; it is rented from whatever deploy artifact happens to currently serve it.
The mechanism: SERVICES/META/CANON.md axiom PROPAGATE_COMMITS_OR_FAILS + § Closure Commit Contract declares the governed-paths table — sixteen content roots × fourteen file shapes plus generated mirrors and worker source. bin/verify-closure-committed walks git status against that table on every build. WARN today; FAIL after the grace window expires on June 7th. ENFORCE_COMMIT_HYGIENE=1 opts in early; SKIP_COMMIT_HYGIENE=1 is the operator escape hatch for in-progress sessions where the auto-stager will close the loop at session-end.
The pipeline integration: PIPELINE.toml ships a [tools.verify-closure-committed] phase in the verify lane. Every build cycle checks every governed path. New leaks surface as warnings before they ship.
The pattern integration: every future closure inherits the sixth move by virtue of the META/CANON axiom. No new closure can leak commit hygiene without explicit operator override.
When the count grows
Three, Eight, Five argued the count goes up and then back down — three axioms, eight dimensions, five moves — that working invariants shrink as the surface they govern expands. The post was right about the trajectory and right about the reason. But it was wrong to assume the rule, having compressed once, would never need to grow again.
The rule grew because the rule was incomplete. The five moves were correct about the closure's architectural shape — what kinds of work are required to make a row-edit cascade. They were silent about the closure's durability invariant — what makes the cascade survive a session. Adding the sixth move is not the count moving in the wrong direction. It is the count finding its real value.
A working invariant can shrink because the surface it governs grew. A working invariant can also grow because the surface it governs revealed a beat the original count missed. Both moves are governance evolution. Both are captured as anchor updates and dated entries in the lineage. The pattern is older than CANONIC: Newton's three laws plus inverse-square stayed correct for two centuries until the Mercury-perihelion observation revealed they had been silent on a curvature term; Einstein added it; the count moved from three-plus-one to one tensor. The growth from a description's perspective is a contraction from the invariant's perspective. The sixth move is to PROPAGATE what a curvature term is to inverse-square: the implicit beat that earlier framings could survive without acknowledging until the surface forced acknowledgment.
The four-thirty-three-tonne file gap is the surface forcing acknowledgment.
Evolution is governance
What this session demonstrates — and what Three, Eight, Five foreshadowed without naming — is that governance evolution is itself a governance primitive. The pattern moved from five moves to six moves through the same five (now six) moves it itself describes. It declared the change in SERVICES/META/CANON.md. The compiler read the change via bin/verify-closure-committed's table. Consumers — every future closure proposal — reference the new shape. The gate enforces it. The propagation is automatic: the META axiom inheriting downward to every governed scope without per-scope code changes. And — closing the loop the loop opened — this commit is the sixth move.
The lineage is preserved as governed state. The two LONGFORM anchors metagov_closure_moves_count and metagov_closure_moves_list updated 5 → 6 with a dated entry citing S53 and PROPAGATE_COMMITS_OR_FAILS. The historical Three, Eight, Five post locks its dated literal to "5" via a HISTORICAL_LOCK marker — the prose of April 27 stays the prose of April 27, accurate at its date, with a forward-pointing erratum row in its references table linking here. The 5-move feedback memory in the operator's persistence layer was renamed to its 6-move successor with an explicit transition note in the body. The closure-pattern catalog grew by one row, the post-history grew by one entry, the verifier grew by one phase, and the operator's memory of what shape closures take grew by one beat — and every one of those growths is itself a closure-shaped artifact attesting in git.
That recursion is the dividend. The fact that we can describe a governance evolution as a governance closure — with every move from declare to commit auditable on the git timeline — is the property that makes governance scalable as the surface it governs evolves. A system whose pattern moves cannot be described in the system's own pattern is a system that exits its own audit trail at every paradigm shift. CANONIC's pattern moves are themselves CANONIC artifacts. The sixth move closes the loop on its own introduction.
What changes elsewhere
Nothing. Every existing closure that shipped under the five-move framing is still correct architecturally — the first five moves describe everything those closures did. The sixth move is universal-not-closure-specific durability that wraps any governance work, and historical closures committed at the time they shipped (the parallel-stream pre-commit hook absorbed working-tree edits into the closing session's [gov:S<N>] commit). The April posts that argued for five moves were correct on their dates. The pattern grew; the past stayed where it was.
What changes for future closures is small and load-bearing: the verifier won't stay silent on uncommitted closure files past the grace window. Every closure proposal carries the sixth beat as a peer move. Adding a row to the governed-paths table extends the verifier's coverage with no code change. The auto-stager keeps doing what it does at session-close, but its work is now attested rather than implicit.
The closures shipped this session — COAUTHOR, EDITOR_MOUNTS_CANONICAL, READER_STRIPS_LATEX_TYPESETTING — committed to git at the end of the session that surfaced the gap. Their first five moves walked the original pattern. Their sixth move was the sixth move's introduction. The audit trail records both moments at the same git timestamp.
Sources
| Claim | Source | Ref |
|---|---|---|
| Three axioms are formalized in canonic-canonic FOUNDATION (TRIAD, INHERITANCE, INTROSPECTION) | canonic-canonic FOUNDATION | canonic.org/FOUNDATION |
| Six theorems formalize the canonic-machine arc | Six Theorems, HadleyLab | hadleylab.org/blogs/six-theorems |
| MAGIC sells five compliance tiers; MAGIC 255 is the full close | The Compliance Ladder, HadleyLab | hadleylab.org/blogs/the-compliance-ladder |
| 255 is the maximum value of an 8-bit unsigned integer representing eight governance dimensions set simultaneously | Your First 255, HadleyLab | hadleylab.org/blogs/your-first-255 |
| Metagov closure was originally a five-move pattern: declare, read-not-hardcode, reference compiled output, gate at commit, propagate automatically | Closing the Books, HadleyLab | hadleylab.org/blogs/closing-the-books |
| Three, eight, five — the working invariant shrinks as the surface it governs expands | Three, Eight, Five, HadleyLab | hadleylab.org/blogs/three-eight-five |
| Metagov closure is now a 6-move pattern (5→6 formalized 2026-05-07): declare in governance, compiler reads not hardcodes, consumers reference compiled output, gates enforce at commit time, new governance propagates automatically, closure files commit to git | SERVICES/META/CANON.md § Closure Commit Contract | canonic.org/SERVICES/META |
| Session 2026-05-07 (S53): three closures shipped, 43 files leaked, sixth move formalized, all four committed under [gov:S53] | CANONIC session commits | github.com/canonic-canonic |
| verify-closure-committed ships as a build phase in the verify lane on every CANONIC build | CANONIC build tooling | github.com/canonic-canonic/.canonic |
| Cloudflare Pages versioned deploys persist independently of git history | Cloudflare Pages documentation | developers.cloudflare.com/pages |
| Git commit chain is the canonical audit trail for software governance | Git documentation | git-scm.com/docs/git-commit |
| Newton's inverse-square law and Einstein's general relativity — the curvature term that extended classical mechanics | Wikipedia: General relativity | en.wikipedia.org/wiki/General_relativity |
| Git working-tree state is ephemeral until committed; uncommitted changes are lost on reset or branch switch | Git documentation — git-status | git-scm.com/docs/git-status |
| Mercury perihelion precession — the anomaly that Newton's inverse-square law could not explain, requiring Einstein's curvature tensor | Wikipedia: Tests of general relativity | en.wikipedia.org/wiki/Tests_of_general_relativity |
The sixth move is not an addition to the pattern — it is the pattern acknowledging that durability was always part of the contract.
The Sixth Move | GOVERNANCE | BLOGS