Canonicalize
Drive a repo, document, or tool toward book-shape: the canonical form a demanding user would not want to change after a hundred hours of use. A disciplined sequence of passes — read everything; precommit an explicit denominator of what "canonical" means; machine-enforce truth so staleness classes die; rebuild the stranger's entry path; scrape the prose to one voice; run fresh-eyes adversarial rounds until a round finds nothing; publish with committed receipts. The failure it prevents: polish theater — effort spent smoothing an artifact whose counts are stale, whose claims are unverified, whose gaps are hidden, and whose "done" was declared by fatigue. Triggers on "canonicalize this", "make this canonical / book-shaped / definitive", "square this away for publication", "get this repo ready to publish", and any pre-release quality drive.From its SKILL.md
npx -y skills add XyraSinclair/canonicalize --skill canonicalizeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.7 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
canonicalize
Book-shape is a conjunction of seven checkable properties (stated fully in BOOK.md at https://github.com/XyraSinclair/canonicalize; summarized here so this file executes alone): the artifact states its own denominator; its truth is enforced by tests, not care; it works for a stranger in a minute and rewards the hundredth hour; it speaks in one voice with every sentence load-bearing; it survives motivated refutation from diverse lenses; its gaps are named, residue committed, rejections reasoned; and it applies to itself. Underneath all seven: an artifact is understood to the degree it is compressed — regenerable from invariants, not merely enumerated. Canonicalization cuts to the actual shape; it never averages the shape away.
Procedure
-
Read everything. Every file, end to end; partial reads cannot see the defect classes that matter (stale counts, private-context leaks, register strata). Collect defects; fix nothing yet.
-
Precommit the denominator. Write
docs/canonicality.mdinto the target: the explicit property list that "canonical" means for THIS artifact, grouped (truth / first-contact / depth / craft / stewardship), every row labeled covered / named-gap / ruled-out. Write it in target state and treat it as the oracle the rest of the drive is scored against. -
Enforce truth. Fix each inconsistency, then make its class unrepresentable: counts derive from source; parallel forms of one catalog get a sync test; links get a resolution test; multi-file versions get an equality test. Offline, fast, no new dependencies. The suite must have caught everything step 1 found.
-
Rebuild the stranger's path. Cold-clone in a temp dir and follow the README literally — run it, don't simulate it. First screen says what/for-whom/why; one command produces a real result; install paths exercised; every private name removed or defined; notation legend-ed; orphans linked or deleted.
-
Scrape to one voice. Remove the internal-notes stratum, self-grading superlatives, honesty tics, and every sentence that changes nothing. Named specifics over vague impressives. One canonical statement per idea. The scrape removes the false and unearned — never the sharp.
-
Adversarial rounds until dry. Fan out fresh-context reviewers with distinct lenses: stranger-test (clone + README-literal + denominator audit row by row), prose audit, code review (concrete failure scenarios only), and a cross-model refutation pass. Triage every finding: accept and fix, or reject with a written reason — never silently drop. Repeat until a full round yields zero must-fix findings.
-
Publish with receipts. Packaging complete; tag + release notes that name what was reviewed AND what remains open; description/topics match reality; the denominator verified true at the tagged commit; surviving residue committed into the artifact. If it ships skills or tools, install them into your own environment as the final self-application.
The gate
The drive is complete only when ALL of:
- the latest full adversarial round produced zero must-fix findings (convergence is a measurement — a reviewer round finding nothing — never the author's sense of enough);
canonicality.mdis true at HEAD: every "covered" row verifiable, every gap named, no row unlabeled, no row deleted to hide;- review residue and rejected-findings-with-reasons are committed into the artifact, not left in the session;
- a final cold-clone smoke test passes at the tagged commit.
A drive that stops before this gate reports itself as partial, with the remaining passes named — "mostly canonicalized" is not a state.
Example
A skills repo looks finished: coherent docs, passing tests, two prior reviews. The drive still finds: the flagship doc claims 35 primitives while the code ships 37 (the demo prints both, disagreeing with itself); links point to sibling repos that were never published; a top skill references the author's private project by name twice; the review section is written in operator slang ("the real Oracle, browser-background"); and the repo's own self-assessment marks a release "covered" that was never tagged. Round 1 (stranger + prose) finds leaks and strata; round 2 (cross-model) refutes an engine invariant with a concrete two-item corpus and forces a real fix; round 3 finds one leftover sentence contradicting the fix — and the drive stopped on round 3's verdict that no further round was needed, which a later audit correctly flagged: a predicted empty round is not a measured one. Every defect class got a test; the gaps that remain are named in the release notes rather than papered over. That is the difference between polished and canonical: the second one stops moving — and you measure the stop.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.