@erclx/canon 4.32.0 → 4.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "canon",
3
3
  "description": "Automated governance, versioning, and discovery tools for Claude Code.",
4
- "version": "4.32.0",
4
+ "version": "4.33.0",
5
5
  "author": {
6
6
  "name": "Eric Le",
7
7
  "url": "https://github.com/erclx"
@@ -27,7 +27,7 @@ Most of these name a folder rather than a file, because the number an entry anch
27
27
 
28
28
  The third rule reaches folders alone, which is what keeps it off `CLAUDE.md`. Breadth is the whole reason it exists, and a root file has none: it names one path the diff either carries or does not.
29
29
 
30
- What it does stop is a citation of `.claude/` matching every branch. `src/`, `scripts/`, and `.claude/` each name a tree a project organizes most of its work under, so a prefix match on one fires constantly and rebuilds the ignored warning this sweep exists to avoid. Measured against this repository's record at `erclx/canon@87b11e87`, the skip drops 13 of the 26 folder citations and keeps the ones carrying a signal, among them `src/tooling/`, `.claude/rules/`, and `governance/rules/`.
30
+ What it does stop is a citation of `.claude/` matching every branch. `src/`, `scripts/`, and `.claude/` each name a tree a project organizes most of its work under, so a prefix match on one fires constantly and rebuilds the ignored warning this sweep exists to avoid. Measured against this repository's record, the skip drops 13 of the 26 folder citations and keeps the ones carrying a signal, among them `src/tooling/`, `.claude/rules/`, and `governance/rules/`.
31
31
 
32
32
  A decision whose folder citations are all a single segment, and which cites no file, therefore never fires. That is the correct outcome rather than a gap: a count over a whole tree moves on nearly every branch, so flagging it every time tells a reader that time has passed and nothing else.
33
33
 
@@ -119,7 +119,7 @@ Write no shape for a correction. A correction is a sentence, and a format for ad
119
119
  - Resolve the target at the moment of sending with `canon sessions list --branch`, never from a mapping written down earlier, since names rotate as sessions end and one recorded earlier in a session has failed inside the hour. The runbook read at step 5 routes on the count and the confidence it answers with
120
120
  - Open the message with the worktree and branch the sender believes the reader holds, asking to be corrected, whenever that mapping is inferred rather than confirmed
121
121
  - Name the skill for the reader to run rather than writing an invocation, which arrives as text
122
- - Read the pull request's own draft flag rather than the state a worker reports, and report what the read returned and when rather than the state alone. `canon docs pr-reads` states why a reported field can lag and say nothing about it. The flag settles the question only once the worker's chain has run its undo, and nothing marks that moment, so a read taken between the pull request opening and that call sees a genuinely ready pull request about to become a draft. That is how a poll on `erclx/canon#1307` told an operator the opposite of what the worker had said.
122
+ - Read the pull request's own draft flag rather than the state a worker reports, and report what the read returned and when rather than the state alone. `canon docs pr-reads` states why a reported field can lag and say nothing about it. The flag settles the question only once the worker's chain has run its undo, and nothing marks that moment, so a read taken between the pull request opening and that call sees a genuinely ready pull request about to become a draft and has told an operator the opposite of what the worker had said.
123
123
 
124
124
  A session is reachable when it appears in a live listing, which reads what each session registered on disk rather than probing it, and a message carries plain text and no authority. When no live session holds the branch, report the invocation for the human, naming the branch, the pull request, and the skill to run, then stop. Retrying or waiting leaves the loop believing it is open while nothing acts on it. Every dispatch in the trial behind this step found a live session, so this branch stands on reasoning rather than on observation.
125
125
 
@@ -103,15 +103,14 @@ The client expands a slash command at position zero of a launch prompt as a
103
103
  user invocation, which is the route `disable-model-invocation: true` permits
104
104
  and gates. Everything that reaches the session as prose instead falls to the
105
105
  model, which invokes it through the `Skill` tool, and that route answers a
106
- flagged skill inconsistently. `claude-autoship` has carried the flag since
107
- `erclx/canon#365` and seven other shipped skills carry it too.
106
+ flagged skill inconsistently. `claude-autoship` has carried the flag since early in its life, and seven other
107
+ shipped skills carry it too.
108
108
 
109
109
  Three launches on 2026-08-31 and 2026-09-02 bound what makes a command take
110
110
  that route. Observation A is the first refused worker, launched as `Run
111
111
  /canon:claude-worktree ..., then /canon:claude-autoship ...`, which expanded
112
112
  nothing. Observation B is a re-dispatch launched as `/canon:claude-autoship
113
- <plan>` with a space before the path, which expanded and shipped
114
- `erclx/canon#1382`.
113
+ <plan>` with a space before the path, which expanded and shipped.
115
114
 
116
115
  Observation C is a planning dispatch launched as `/canon:claude-planner, then
117
116
  /canon:claude-feature <task>` with a comma glued to the command name at
@@ -178,7 +177,7 @@ Report the dispatch as loudly as the human-launch line it replaces: name the bra
178
177
 
179
178
  `claude-address-review` is a single pass, not a chain, so a launch naming it
180
179
  alone reaches no `claude-worker` and takes no role, which owes no message
181
- either. `erclx/canon#1251`'s replacement session was launched that way, onto the branch a
180
+ either. A replacement session was launched that way once, onto the branch a
182
181
  review had already posted findings against, and it answered by posting a
183
182
  thread reply and telling its controller nothing. Reach the role directly on
184
183
  this launch instead of wrapping a second chain around one skill that has none
@@ -70,7 +70,7 @@ The state reaches every stalled dispatch, since one threshold governs the headin
70
70
 
71
71
  The report is also where the count in `## Parallelism` is legible. That threshold trips on open pull requests awaiting a first pass, which is what `OPENED` and a pull request with no prior pass name here and what `SEEN` excludes, so read the count off these lines rather than off `gh pr list`, which counts a branch closed out and waiting on a merge the same as one nobody has read. It is a separate condition from the poll-start fallback above, which decides when this loop runs rather than where a review runs.
72
72
 
73
- The count reads low, and it errs in the direction that breaks the trigger. A review's `commit.oid` is stamped with the head at submission rather than with the commit the reviewer read, so an author pushing between the diff read and the post leaves the pass recorded against a commit it never saw, and `SEEN` then fires on a head still awaiting its first look at that delta. Measured on `erclx/canon#1299` on 2026-08-31, where a pass written against `erclx/canon@5653721` landed stamped `erclx/canon@a5ceb40` and the delta it skipped was a real fix. So a `SEEN` on a head you do not recognize is worth one `gh pr view --json reviews` before it is believed, and a wave past three is likelier to trip the fallback late than early.
73
+ The count reads low, and it errs in the direction that breaks the trigger. A review's `commit.oid` is stamped with the head at submission rather than with the commit the reviewer read, so an author pushing between the diff read and the post leaves the pass recorded against a commit it never saw, and `SEEN` then fires on a head still awaiting its first look at that delta. That has fired for real, and the delta it skipped once was a genuine fix. So a `SEEN` on a head you do not recognize is worth one `gh pr view --json reviews` before it is believed, and a wave past three is likelier to trip the fallback late than early.
74
74
 
75
75
  The other side of that comparison used to lag as well, which made the two errors compound rather than cancel. `gh pr view --json headRefOid` answers from the pull request object and that object trails the branch ref by up to a minute after a push, reporting nothing about the trail, so a pass stamped ahead of the commit it read was compared against a head stamped behind the commit that exists. Two sessions were wrong off that field on 2026-09-01: a reviewing session posted a finding calling a pushed commit unpushed, and a worker fired a green claim it retracted on its own thread minutes later. The head now comes from `canon pr head`, which resolves the tip through `git ls-remote` and reports which commit each source names, and the object's head stays behind it as the fallback for a target whose CLI predates the verb. The review stamp is unchanged, so the paragraph above still holds on its own half.
76
76
 
@@ -95,7 +95,7 @@ A non-empty result carries the comment id Step 4 needs for the third filename se
95
95
 
96
96
  A `## Post-review findings` reply carries no argued finding behind it, since it asserts a new defect rather than answering one, and this pass is its first independent reader. Restating it as a finding without opening anything is repeating the worker's claim rather than checking it. Read the file the comment names at `<headRefOid>`, the same `git show <headRefOid>:<path>` read Step 3 already runs to confirm a ticked box, and confirm the defect before it becomes a finding of this pass's own.
97
97
 
98
- A moved head has its own way to add nothing, which the ancestor test cannot see. When `<prior-heading>` reads `## Review closed`, the standing verdict already reports the branch clear, so a pass over the new commits that raises nothing posts a comment saying what the one above it said. Two close-outs landed on `erclx/canon#1201` that way on 2026-08-28, and the operator caught the pair rather than any check.
98
+ A moved head has its own way to add nothing, which the ancestor test cannot see. When `<prior-heading>` reads `## Review closed`, the standing verdict already reports the branch clear, so a pass over the new commits that raises nothing posts a comment saying what the one above it said. Two close-outs landed that way on 2026-08-28, and the operator caught the pair rather than any check.
99
99
 
100
100
  The producing shape is narrow. A prior pass tells the author a change is their own call, the author makes it, and the delta reaching the next pass has nothing left to say by construction.
101
101
 
@@ -80,7 +80,7 @@ Open with retrieval on what the last session got wrong, before anything new. A l
80
80
 
81
81
  Two outputs with two lifetimes, and the split decides the format.
82
82
 
83
- - A lesson is a self-contained page carrying its own quiz and the feedback for each answer. It links one shared stylesheet rather than restating styles, and it is disposable and never promoted.
83
+ - A lesson is a self-contained page carrying its own quiz and the feedback for each answer. It embeds one shared stylesheet rather than restating styles, and it is disposable and never promoted.
84
84
  - A reference page goes to `reference/<slug>.md`, written for a reader with no learner in it. This is the half that survives the workspace, so it is written in markdown to pass the authoring gates a promotion would put it through.
85
85
 
86
86
  Resolve the lesson before writing it, rather than composing its name or its quiz order by hand:
@@ -95,7 +95,7 @@ canon teach lesson <topic> --json \
95
95
  It writes nothing and reports four things:
96
96
 
97
97
  - `lesson`, the numbered path the lesson takes. Write it there.
98
- - `stylesheet` with `stylesheetExists` and `stylesheetHref`. Link it at `stylesheetHref` and seed it through the verb below when `stylesheetExists` is false, which is the first lesson in the workspace. Every lesson after that links the file already on disk and adds to it rather than replacing it, since overwriting discards what the last lesson put there.
98
+ - `stylesheet` with `stylesheetExists`. Read it and embed its content into a `<style>` block in `<head>`, seeding it through the verb below when `stylesheetExists` is false, which is the first lesson in the workspace. Every lesson after that embeds the file's current content and adds to it rather than replacing it, since overwriting discards what the last lesson put there.
99
99
  - `success`, the mission's success lines, carried here so Step 5 needs no second read.
100
100
  - `quiz`, one entry per question, carrying `order` and `answer`.
101
101
 
@@ -125,7 +125,7 @@ Follow `${CLAUDE_SKILL_DIR}/references/lesson-craft.md` for what makes a lesson
125
125
 
126
126
  ### Hand over a link, never a path
127
127
 
128
- A lesson is a page carrying a stylesheet and a script, and an editor preview opens it with neither, so a path alone delivers unstyled markup that reads as the lesson. Serve the teach root and give the learner a link they can click:
128
+ A lesson is a page carrying a script, and an editor preview cannot run it, so a path alone opens markup with no working quiz. Serve the teach root and give the learner a link they can click:
129
129
 
130
130
  ```bash
131
131
  canon serve .canon/teach --entry <nn>-<topic>/index.html --json
@@ -11,9 +11,9 @@ Judgment rather than shape. The workspace standard fixes where a lesson sits and
11
11
 
12
12
  A workspace accumulates lessons over weeks. The learner reads them as one body of material, so a lesson that invents its own look reads as someone else's work.
13
13
 
14
- - Write the shared stylesheet into the workspace assets on the first lesson, and link it from every lesson after
14
+ - Write the shared stylesheet into the workspace assets on the first lesson, and embed it in every lesson after
15
15
  - Promote anything used a second time into that stylesheet. A second use makes it a component of the course.
16
- - Add to that stylesheet rather than replacing it. The lesson writing it is rarely the lesson that needs it changed, and a rewrite drops what every earlier lesson links it for.
16
+ - Add to that stylesheet rather than replacing it. The lesson writing it is rarely the lesson that needs it changed, and a rewrite drops what every earlier lesson embeds it for.
17
17
  - Keep the structural furniture identical across lessons: where the title sits, where the quiz sits, what a correct answer looks like
18
18
  - Do not restate styles inside a lesson. A local override is a decision the next lesson has to either copy or contradict.
19
19
 
@@ -29,4 +29,4 @@ Read these files in parallel:
29
29
 
30
30
  Every skill carries a requirement. A skill created without one is a gap someone closes in a later sweep, and the sweep has to reconstruct what the skill was for from the body it already shipped.
31
31
 
32
- The two-question check has a shipped precedent. Pull request `erclx/canon#516` dropped `git-stash` for wrapping a single git command that needed no skill body, and `release-changelog` for being low-frequency and invoked by no other skill. The first is question one, and the second is question three read back after the fact, which is why it stays a review criterion rather than something this skill can gate on.
32
+ The two-question check has a shipped precedent. A pull request dropped `git-stash` for wrapping a single git command that needed no skill body, and `release-changelog` for being low-frequency and invoked by no other skill. The first is question one, and the second is question three read back after the fact, which is why it stays a review criterion rather than something this skill can gate on.
@@ -13,7 +13,7 @@ The output of that arrangement is specific rather than general. Paragraphs come
13
13
 
14
14
  A session also has no name for the patterns no closed word set can match. Rule-of-three, synonym cycling, false ranges, inline-header lists, and adverb propping each survive a clean scan, so a passage carrying all five reports zero findings and still reads wrong. Nothing tells the session those patterns exist, and a ban list cannot be extended to reach them, because each is a shape rather than a token.
15
15
 
16
- Importing that catalog wholesale fails on a different measurement. External material of this kind bans abstract metaphor nouns and names `surface` among them, which this corpus uses 593 times in tracked markdown at `erclx/canon@57ee7467`. A session handed the catalog with no stated position either rewrites established vocabulary or silently ignores the item, and neither outcome is recoverable by a later reader who cannot tell which happened.
16
+ Importing that catalog wholesale fails on a different measurement. External material of this kind bans abstract metaphor nouns and names `surface` among them, which this corpus uses 593 times in tracked markdown. A session handed the catalog with no stated position either rewrites established vocabulary or silently ignores the item, and neither outcome is recoverable by a later reader who cannot tell which happened.
17
17
 
18
18
  ## Must
19
19
 
@@ -24,7 +24,7 @@ The ambiguity rules travel with that layer for the same reason. Compression is w
24
24
  - **Any restatement of a banned word set.** The bans ship as package data that `canon markdown audit` reads, and a copy here would be a second source for one list with a machine reading the other.
25
25
  - **A voice register per surface.** One baseline covers every surface. A surface needing a warmer register states its own voice and claims the yield, which lifts voice alone and leaves the bans, the rhythm rules, and the tells in force.
26
26
 
27
- The first of those four rests on a count. The source names `surface` among the nouns it bans, and tracked markdown in the authoring repository used `surface` 593 times, `harness` 95, `scaffolding` 17, and `primitive` 4, measured at `erclx/canon@57ee7467` on 2026-08-19. Adopting the item either rewrites established vocabulary across the corpus or is ignored in silence, and a reader arriving later cannot tell which happened.
27
+ The first of those four rests on a count. The source names `surface` among the nouns it bans, and tracked markdown in the authoring repository used `surface` 593 times, `harness` 95, `scaffolding` 17, and `primitive` 4, measured on 2026-08-19. Adopting the item either rewrites established vocabulary across the corpus or is ignored in silence, and a reader arriving later cannot tell which happened.
28
28
 
29
29
  ## Where this diverges
30
30
 
@@ -85,7 +85,7 @@ Full help: `canon <command> --help`. Behavior notes for the install and sync ver
85
85
  | `canon serve [dir]` | Serve a directory on the loopback interface and print the link that opens it, running until interrupted (`--port`, `--entry`, `--json`) |
86
86
  | `canon upgrade` | Reinstall the CLI globally with the package manager the install path names (`--json`) |
87
87
 
88
- `canon serve` drives no browser, which is what separates it from the four that do. All four ship now that `capture` does, so the line between them is the engine rather than the package. A generated page loses its stylesheet and its script to an editor preview and to a `file://` open, so the link is the delivery rather than a convenience, and every generated surface here reaches a reader through one. It binds `127.0.0.1` and never a wildcard, because what it is pointed at is routinely a gitignored record tree. It sends `cache-control: no-store`, since a preview exists to be edited and reloaded and a cached stylesheet reads as a fix that did not work.
88
+ `canon serve` drives no browser, which is what separates it from the four that do. All four ship now that `capture` does, so the line between them is the engine rather than the package. A generated page loses its script to an editor preview and to a `file://` open, so the link is the delivery rather than a convenience, and every generated surface here reaches a reader through one. A teach lesson's stylesheet is embedded rather than linked, so only its script still needs a server. It binds `127.0.0.1` and never a wildcard, because what it is pointed at is routinely a gitignored record tree. It sends `cache-control: no-store`, since a preview exists to be edited and reloaded and a cached stylesheet reads as a fix that did not work.
89
89
 
90
90
  A port already in use is the ordinary case rather than a refusal, so it walks forward to the next free one and reports which it took. That is why a caller reads `url` off the `--json` record instead of composing one from the port it asked for. Only contention is walked past. Any other bind failure refuses as `bind-failed` carrying the error's code, rather than being retried twenty times and reported as a range being full, which names a cause nothing checked.
91
91
 
@@ -55,7 +55,7 @@ The table check reports a catalog that grows a row per shipped thing, not a tabl
55
55
 
56
56
  The provenance check reports the markers narrating how a domain reached its shape rather than describing what it is: a date, a change number, or a release label. The standard admits a rejected alternative and the reasoning that killed it while refusing the provenance attached to it, so a marker names a line to read rather than a line to delete. Findings group by entry and sort left to right within a line, since what a reader acts on is which file to open.
57
57
 
58
- A date stamping a measurement is excluded, because the standard cuts a date attached to a change and permits one dating a figure. The check reads the clause in front of the date, back to the nearest sentence boundary, for one of five verbs: measured, verified, driven, passed, and fired. The noun `run` counts only where it sits against the date, so `A run on 2026-08-14` is excluded and `Runs on erclx/canon#632 and erclx/canon#634 landed 2026-08-02` reports. The set is closed, and a date it cannot place reports as a change marker rather than as a state of its own, which names one date too many rather than clearing one the rule cuts.
58
+ A date stamping a measurement is excluded, because the standard cuts a date attached to a change and permits one dating a figure. The check reads the clause in front of the date, back to the nearest sentence boundary, for one of five verbs: measured, verified, driven, passed, and fired. The noun `run` counts only where it sits against the date, so `A run on 2026-08-14` is excluded and `Runs on erclx/canon#632 and erclx/canon#634 landed 2026-08-02` reports. The set is closed, and a date it cannot place reports as a change marker rather than as a state of its own, which names one date too many rather than clearing one the rule cuts. <!-- canon-allow-reference: illustrates the input shape the rule reads -->
59
59
 
60
60
  A release label reports with or without its leading `v` at three segments, since the rule cuts the label rather than a spelling of it. Two segments still need the `v`, which keeps a dollar cost and a duration out. Another tool's version reports too, and the check cannot tell one from a release, so treat a version beside a tool name as a line to read rather than one to cut.
61
61
 
@@ -28,7 +28,7 @@ The positional is the pull request to read, defaulting to the one open on this b
28
28
 
29
29
  Without `--body` the body, the file list, and the head commit come back from one `gh pr view` call, because the three have to describe the same commit and reading them apart leaves a window where a push between them compares a body against another head's files.
30
30
 
31
- That view caps its file list at 100 rows and says nothing about having done so, which was measured against `erclx/canon#1250`: the pull request carries 101 files and the view reports 100. A pull request at the cap therefore takes a second read through the paginated endpoint, and a failure there refuses with `gh-truncated` rather than comparing against a set known to be short. A set silently one file short is the worst input this takes, since the missing file is exactly what a correct bullet would then be accused of inventing.
31
+ That view caps its file list at 100 rows and says nothing about having done so, measured against a pull request carrying 101 files where the view reported 100. A pull request at the cap therefore takes a second read through the paginated endpoint, and a failure there refuses with `gh-truncated` rather than comparing against a set known to be short. A set silently one file short is the worst input this takes, since the missing file is exactly what a correct bullet would then be accused of inventing.
32
32
 
33
33
  ## The two directions
34
34
 
@@ -105,7 +105,7 @@ The bound is that the corpus is one repository writing to one house style. A pro
105
105
 
106
106
  What it cannot see is a bullet claiming a change to a file the branch did touch for another reason, and a path written without backticks. A claim in a second coordinated clause after the comma is read and credited, and it stays out of the graded direction, since nothing here separates it from a file the same clause cites for context.
107
107
 
108
- One class stays open and is named rather than closed. A bullet can cite where something is defined while claiming an edit somewhere else, as `erclx/canon#1274` does with "Name the slug transform in `standards/slug.md` inline in the same step". The path is a definition site, the edit target is the step, and separating the two needs the sentence parsed rather than cut. A finding on such a bullet is this class rather than a stale claim, and a reader weighing an `unmet` path checks whether the bullet's real target is a locative the path does not name.
108
+ One class stays open and is named rather than closed. A bullet can cite where something is defined while claiming an edit somewhere else, as `erclx/canon#1274` does with "Name the slug transform in `standards/slug.md` inline in the same step". The path is a definition site, the edit target is the step, and separating the two needs the sentence parsed rather than cut. A finding on such a bullet is this class rather than a stale claim, and a reader weighing an `unmet` path checks whether the bullet's real target is a locative the path does not name. <!-- canon-allow-reference: illustrates the input shape the rule reads -->
109
109
 
110
110
  ## Where it runs
111
111
 
@@ -120,7 +120,7 @@ The unit is the paragraph and each file names its worst on each measure, which f
120
120
 
121
121
  Neither number gates and neither names a file wrong. This is a weaker claim than the one the weight checkpoints make, because a healthy range differs by surface: a catalog entry is several short sentences carrying one fact each, and a page arguing a decision is not, so one range applied across the corpus would report the surfaces that are correct. The run therefore states where the numbers came from beside them, and the counts are what a reader compares against.
122
122
 
123
- Measured at `erclx/canon@6c273324` across the corpus, 2119 paragraphs reached the floor, 165 sat at or under the spread checkpoint and 50 past the opener checkpoint. Over the 60 files carrying at least ten measured paragraphs the flat rate runs from zero to 21 percent with a median near 6, which is the spread that makes the measure worth reading. Two wiki pages sit at either end of it: a server catalog reports 19 percent, its flattest paragraph five sentences within four words of each other and three of them verbless, while a page arguing where the prose rules came from reports none.
123
+ A reading of that spread across the whole corpus is what backs the range above, taken once against this repository's own tracked markdown rather than against a target project's.
124
124
 
125
125
  That reading travels with the command rather than staying here. `BASELINE` in `src/markdown/structure.ts` carries the overall share, the per-file range, and the ten-paragraph floor beneath which a file's own rate says nothing, and the run prints all four in the legend beside the rate it measured. A count with no range beside it reads as a finding, and naming that a healthy range differs by surface states that a range exists rather than what it looks like. This page is toolkit-internal, so a reader running the command in a project that installed no standards would otherwise have two counts and nothing to place them against.
126
126
 
@@ -138,7 +138,7 @@ Exit codes are `0` for a completed run with no gating finding, `1` for a refusal
138
138
 
139
139
  A banned character is a fact rather than a judgment, which is the test that admits it to a gate. What held it back was that gating on day one against a corpus never checked mechanically fails loudly on work nobody has had a chance to fix. The order was to land the verb reporting, measure the corpus once, fix what it finds, and turn the gate on as its own change, and the gate is the last of the four.
140
140
 
141
- Measured at `erclx/canon@4b7b13a2` across 444 files with the paragraph checkpoint at 600: 8 word hits, no character or spelling hits, 119 heavy bullets, 221 heavy paragraphs across 86 files, and 41 files carrying a run past the depth checkpoint. Of the paragraphs, 88 fire on weight alone. That is the baseline the corpus sweep started from, and the ban count is the only one of the five a gate should ever read.
141
+ Of the five measures a first full reading took, the ban count is the only one a gate should ever read.
142
142
 
143
143
  The ban half reached zero, which was the precondition the gate waited on, and it was re-measured against the same corpus at the moment the gate landed. Three sweep slices then took the structural half, and the corpus reports 1 heavy bullet and 22 heavy paragraphs across 6 files on 2026-08-06, every one on a ground the triage record holds as exempt.
144
144
 
@@ -42,6 +42,10 @@ A bare run reports every repository and carries a `repository` field on each row
42
42
 
43
43
  The match can return more than one session. Read the count rather than the first row, since nothing stops two sessions holding one branch, and a caller that treats the result as singular picks among candidates without knowing it.
44
44
 
45
+ Resolution reads a session's registered `cwd`, taken at whatever `locate()` finds there rather than wherever it has since worked. That registration updates whenever the harness enters a worktree: a worker dispatched onto `main` re-registers at its own branch once `claude-autoship` Step 0 runs. What stays fixed is a session moved by shell command, `cd` or `git -C` against another root, with no worktree entry behind it, so it answers only for the branch its last registered `cwd` sits in.
46
+
47
+ A session whose `cwd` reflects a harness worktree entry, at launch or mid-session, resolves fully, covering every dispatched worker once Step 0 runs. A zero for a different branch it is genuinely working on is not evidence the branch is unclaimed, only that a shell-moved registration cannot see it.
48
+
45
49
  ## Whether a branch is already claimed
46
50
 
47
51
  With `--branch`, the JSON record also carries `worktree` (the path of any worktree already checked out to it, or `null`), `refs` (the refs that already name the branch, the local head and the `origin` remote-tracking ref alike), and `claimed` (`true` when any of the three holds it).
@@ -38,7 +38,7 @@ Pass an empty replacement to retire a value outright, as in `canon gov supersede
38
38
 
39
39
  ## The templated citation
40
40
 
41
- A citation naming a family as a pattern carries neither value. `canon-*` and `internal-<X>` are the two forms this corpus writes, and a literal comparison matches neither, so a rename running the verb once per name reports clean while the family citations stay stale. Two of those on `erclx/canon#1250` had inverted, stating the old prefix as a guard, which left a rule instructing the next session to flag the correct naming as a mismatch.
41
+ A citation naming a family as a pattern carries neither value. `canon-*` and `internal-<X>` are the two forms this corpus writes, and a literal comparison matches neither, so a rename running the verb once per name reports clean while the family citations stay stale. Two such citations have inverted this way, stating the old prefix as a guard, which left a rule instructing the next session to flag the correct naming as a mismatch.
42
42
 
43
43
  Beside the literal comparison the run matches a family stem, derived from the segment the two values actually differ on, with everything they share carried ahead of it. `toolkit-operator` to `canon-operator` derives `toolkit`, and `canon-cli` to `canon-shell` derives `canon-cli` rather than `canon`, which is what keeps a rename of one folder off every sibling in its family.
44
44
 
@@ -121,7 +121,7 @@ canon teach lesson regular-expressions \
121
121
  | `--json` | Emit a machine-readable record on stdout |
122
122
  | `--root <path>` | Teach root, defaulting to the main worktree |
123
123
 
124
- It reports four things. `lesson` is the numbered path the lesson takes, derived from the highest ordinal already in `lessons/` the way an open derives a workspace ordinal. `stylesheet` names the one file every lesson in the workspace links, with `stylesheetExists` saying whether it is on disk yet and `stylesheetHref` carrying what the lesson's own link element holds. `success` carries the mission's success lines, so a session reports progress against the exit criteria without a second read of `MISSION.md`. `quiz` carries one entry per question.
124
+ It reports four things. `lesson` is the numbered path the lesson takes, derived from the highest ordinal already in `lessons/` the way an open derives a workspace ordinal. `stylesheet` names the one file every lesson in the workspace embeds, with `stylesheetExists` saying whether it is on disk yet. `success` carries the mission's success lines, so a session reports progress against the exit criteria without a second read of `MISSION.md`. `quiz` carries one entry per question.
125
125
 
126
126
  The stylesheet is reported rather than written. A verb that wrote it on every lesson would discard whatever the last lesson added, and the second lesson in a workspace is the one that needs the file the first one left.
127
127
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@erclx/canon",
3
3
  "type": "module",
4
- "version": "4.32.0",
4
+ "version": "4.33.0",
5
5
  "description": "Infrastructure and quality tooling for developer workflows",
6
6
  "license": "MIT",
7
7
  "bin": {
@@ -826,7 +826,6 @@ function reportLesson(
826
826
  path: outcome.path,
827
827
  lesson: outcome.lesson,
828
828
  stylesheet: outcome.stylesheet,
829
- stylesheetHref: outcome.stylesheetHref,
830
829
  stylesheetExists: outcome.stylesheetExists,
831
830
  success: outcome.success,
832
831
  quiz: outcome.quiz,
@@ -840,7 +839,7 @@ function reportLesson(
840
839
  logInfo(outcome.lesson)
841
840
 
842
841
  logStep(outcome.stylesheetExists ? 'Stylesheet' : 'Stylesheet (to write)')
843
- logInfo(`${outcome.stylesheet} linked as ${outcome.stylesheetHref}`)
842
+ logInfo(`${outcome.stylesheet} resolved for embedding`)
844
843
 
845
844
  logStep(outcome.success.length > 0 ? 'Exit criteria' : 'Exit criteria (none)')
846
845
  for (const line of outcome.success) logInfo(line)
package/src/design/css.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { COMPONENTS } from '@/design/components'
2
+ import { FONT_FACES } from '@/design/fonts'
2
3
  import type { DesignTokens } from '@/design/tokens'
3
4
  import { TOKENS } from '@/design/tokens'
4
5
 
@@ -120,11 +121,30 @@ ${component.rules}`,
120
121
  ).join('\n\n')
121
122
  }
122
123
 
124
+ /**
125
+ * `@font-face` rules carrying the mono stack's primary family as base64, so a
126
+ * stylesheet renders in the same typeface everywhere regardless of what the
127
+ * reader's machine has installed. Only the teach stylesheet opts in today.
128
+ */
129
+ function fontFaceBlock(): string {
130
+ return FONT_FACES.map(
131
+ (face) => `@font-face {
132
+ font-family: '${face.family}';
133
+ font-weight: ${face.weight};
134
+ font-style: normal;
135
+ font-display: swap;
136
+ src: url(data:font/woff2;base64,${face.base64}) format('woff2');
137
+ }`,
138
+ ).join('\n\n')
139
+ }
140
+
123
141
  export interface CssOptions {
124
142
  /** Prepended as a comment, naming what wrote the file and from where. */
125
143
  readonly banner?: string
126
144
  /** Component rules ride along by default; a token-only consumer opts out. */
127
145
  readonly components?: boolean
146
+ /** Off by default. Embeds the mono stack's faces as base64 `@font-face` rules. */
147
+ readonly embedFonts?: boolean
128
148
  }
129
149
 
130
150
  export function buildDesignCss(
@@ -134,7 +154,8 @@ export function buildDesignCss(
134
154
  const banner =
135
155
  options.banner === undefined ? '' : `/* ${options.banner} */\n\n`
136
156
  const root = [':root {', ...tokenProperties(tokens), '}'].join('\n')
137
- const parts = [root, lightBlock(tokens)]
157
+ const parts = options.embedFonts ? [fontFaceBlock(), root] : [root]
158
+ parts.push(lightBlock(tokens))
138
159
 
139
160
  if (options.components !== false) parts.push(componentBlock())
140
161
 
@@ -0,0 +1,31 @@
1
+ /**
2
+ * The two faces `src/design/tokens.ts` names for the mono stack's primary
3
+ * family, at the two weights the typography table actually uses, subset to
4
+ * Latin and basic punctuation and compressed to WOFF2. Embedding Noto Sans
5
+ * Mono makes it always resolve, which leaves the stack's `DejaVu Sans Mono`
6
+ * and `monospace` fallbacks reachable only for a glyph Noto lacks, a residual
7
+ * case cheap enough that `monospace` alone backstops it rather than earning
8
+ * a second embedded family at roughly 65 KB of base64 per lesson. Hand-
9
+ * generated once from this machine's installed `noto-fonts` package via
10
+ * `subset-font`, and committed as a plain data module rather than a build
11
+ * step, because these two faces never change on their own the way
12
+ * `DESIGN.md`'s tokens do.
13
+ */
14
+
15
+ export interface FontFace {
16
+ readonly family: string
17
+ readonly weight: string
18
+ readonly base64: string
19
+ }
20
+
21
+ const NOTO_SANS_MONO_400 =
22
+ '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'
23
+
24
+ const NOTO_SANS_MONO_700 =
25
+ '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'
26
+
27
+ /** Ordered as `src/design/tokens.ts`'s typography table declares the weights. */
28
+ export const FONT_FACES: readonly FontFace[] = [
29
+ { family: 'Noto Sans Mono', weight: '400', base64: NOTO_SANS_MONO_400 },
30
+ { family: 'Noto Sans Mono', weight: '700', base64: NOTO_SANS_MONO_700 },
31
+ ]
@@ -529,13 +529,15 @@ export const shippedReferences: Measure = async (ctx) => {
529
529
  return {
530
530
  emissions: found.map((reference) =>
531
531
  warn(
532
- `${reference.file}:${reference.line} carries ${reference.text}, a ${reference.kind === 'commit' ? 'commit sha that resolves nowhere' : 'pull request number that resolves elsewhere'} for a reader in a target`,
532
+ reference.selfCitation
533
+ ? `${reference.file}:${reference.line} carries ${reference.text}, a citation of this repository's own history that resolves for no reader outside it, qualified or not`
534
+ : `${reference.file}:${reference.line} carries ${reference.text}, a ${reference.kind === 'commit' ? 'commit sha that resolves nowhere' : 'pull request number that resolves elsewhere'} for a reader in a target`,
533
535
  ),
534
536
  ),
535
537
  failure:
536
538
  found.length === 1
537
- ? `One reference in the shipped corpora names this repository without saying so. Qualify it as owner/repo#123 or owner/repo@abc1234, or mark the line ${REFERENCE_MARKER}: <reason> where the bare form is the point.`
538
- : `${found.length} references in the shipped corpora name this repository without saying so. Qualify each as owner/repo#123 or owner/repo@abc1234, or mark the line ${REFERENCE_MARKER}: <reason> where the bare form is the point.`,
539
+ ? `One reference in the shipped corpora resolves wrong for a reader in a target. Qualify a cross-repository citation as owner/repo#123 or owner/repo@abc1234, state a same-repository citation as a fact instead and relocate the evidence to the owning .claude/context/ entry, or mark the line ${REFERENCE_MARKER}: <reason> where the bare form is the point.`
540
+ : `${found.length} references in the shipped corpora resolve wrong for a reader in a target. Qualify a cross-repository citation as owner/repo#123 or owner/repo@abc1234, state a same-repository citation as a fact instead and relocate the evidence to the owning .claude/context/ entry, or mark each line ${REFERENCE_MARKER}: <reason> where the bare form is the point.`,
539
541
  }
540
542
  }
541
543
 
@@ -105,6 +105,26 @@ const PULL_REQUEST = /(?<![0-9A-Za-z_])#([0-9]+)(?![0-9A-Za-z_])/g
105
105
  */
106
106
  const COMMIT_SHA = /(?<![0-9A-Za-z_@/#])([0-9a-f]{7,40})(?![0-9A-Za-z_])/g
107
107
 
108
+ /**
109
+ * A same-repository citation, qualified or not. Qualifying `#123` or a sha
110
+ * against `erclx/canon` is the repair `PULL_REQUEST` and `COMMIT_SHA` above
111
+ * read as the fix, and it fixes nothing here: a reader holding only the
112
+ * plugin cache or the published package still cannot open this repository's
113
+ * own history, so the qualified form resolves exactly as badly as the bare
114
+ * one.
115
+ *
116
+ * The literal is hardcoded rather than read from `package.json` or
117
+ * `git remote`, matching `src/github-format.ts` and `src/commands/repo.ts`,
118
+ * which already hardcode it.
119
+ *
120
+ * Same word-boundary discipline as the two patterns above: a word character
121
+ * ahead of `erclx` would mean this match is a suffix of some other token, and
122
+ * a word character behind the digits would mean the citation continues past
123
+ * what was captured.
124
+ */
125
+ const SAME_REPOSITORY =
126
+ /(?<![0-9A-Za-z_/])erclx\/canon(#[0-9]+|@[0-9a-f]{7,40})(?![0-9A-Za-z_])/g
127
+
108
128
  export interface ShippedReference {
109
129
  readonly file: string
110
130
  /** One-based, matching the `file:line` form a reader clicks. */
@@ -112,6 +132,12 @@ export interface ShippedReference {
112
132
  readonly kind: 'pull-request' | 'commit'
113
133
  /** The reference as written, so a report names the token to qualify. */
114
134
  readonly text: string
135
+ /**
136
+ * Set only for a citation of this repository's own history. Qualifying it
137
+ * is not the fix `kind` alone would suggest, so a caller reads this before
138
+ * choosing a remedy.
139
+ */
140
+ readonly selfCitation?: true
115
141
  }
116
142
 
117
143
  /**
@@ -154,6 +180,16 @@ export function referencesIn(file: string, text: string): ShippedReference[] {
154
180
  text: match[0],
155
181
  })
156
182
  }
183
+
184
+ for (const match of line.matchAll(SAME_REPOSITORY)) {
185
+ references.push({
186
+ file,
187
+ line: index + 1,
188
+ kind: match[1]?.startsWith('#') ? 'pull-request' : 'commit',
189
+ text: match[0],
190
+ selfCitation: true,
191
+ })
192
+ }
157
193
  }
158
194
 
159
195
  return references
@@ -39,9 +39,8 @@ export interface LessonPlanned {
39
39
  /** Relative to the root, so a caller prints a path a reader can open. */
40
40
  readonly path: string
41
41
  readonly lesson: string
42
+ /** Read this and embed its content in the lesson's `<style>` block. */
42
43
  readonly stylesheet: string
43
- /** What the lesson's own `link` element carries, resolved from `lessons/`. */
44
- readonly stylesheetHref: string
45
44
  /** False on the first lesson in a workspace, which writes the stylesheet. */
46
45
  readonly stylesheetExists: boolean
47
46
  /** The mission's success lines, reported as the exit criteria they are. */
@@ -123,7 +122,7 @@ function nextLesson(files: readonly string[]): string {
123
122
 
124
123
  /**
125
124
  * Everything a lesson needs resolved before it is written: where it goes, which
126
- * stylesheet it links and whether that file is already on disk, the mission's
125
+ * stylesheet it embeds and whether that file is already on disk, the mission's
127
126
  * exit criteria, and the order each quiz presents its options in.
128
127
  *
129
128
  * The stylesheet is reported rather than written. Every lesson after the first
@@ -172,7 +171,6 @@ export async function planLesson(
172
171
  path: workspace.path,
173
172
  lesson,
174
173
  stylesheet,
175
- stylesheetHref: `../${TEACH_ASSETS}/${TEACH_STYLESHEET}`,
176
174
  stylesheetExists: existsSync(join(root, stylesheet)),
177
175
  success: workspace.success,
178
176
  quiz: orderQuiz(request.questions, request.options, request.random),
@@ -893,7 +893,10 @@ export async function writeStylesheet(
893
893
  await mkdir(join(root, workspace.path, TEACH_ASSETS), { recursive: true })
894
894
  await writeFile(
895
895
  path,
896
- buildDesignCss(undefined, { banner: STYLESHEET_BANNER }),
896
+ buildDesignCss(undefined, {
897
+ banner: STYLESHEET_BANNER,
898
+ embedFonts: true,
899
+ }),
897
900
  )
898
901
 
899
902
  return { ok: true, slug: workspace.slug, path: rel, written: true }
@@ -62,9 +62,13 @@ A number referring to a pull request or an issue takes the form its destination
62
62
 
63
63
  Text published to a remote is the auto-linking half: a pull request body, an issue body, a comment on either, and a commit message. Write `#123` there, and `owner/repo#123` where the reference crosses repositories, which the same auto-linking reaches. A markdown file browsed from the repository tree is the other half, where neither spelling links and the backticked one marks the number as an identifier. <!-- canon-allow-reference: the two spellings this section defines, which a qualified form would destroy -->
64
64
 
65
- Content that installs into another repository is the third destination, and there the qualified form is required rather than chosen. A skill body loads from a plugin cache, a docs page is read through `canon docs`, and a standard through `canon standards`, so the reader holds their own repository rather than the one the number belongs to. A bare number resolves against theirs and reaches something else, and a bare sha resolves nowhere at all.
65
+ Content that installs into another repository is the third destination, and it splits on which repository the number names. A skill body loads from a plugin cache, a docs page is read through `canon docs`, and a standard through `canon standards`, so the reader holds their own repository rather than the one a bare number belongs to. Qualifying a number against a different, resolvable repository fixes that, since the reader can open that repository even without this one.
66
66
 
67
- Write `owner/repo#123` and `owner/repo@abc1234` across every such surface. `canon gate run` fails a push on a bare reference there, and a line whose bare form is the point carries `canon-allow-reference: <reason>` on itself or on the line above.
67
+ Qualifying it against `erclx/canon` fixes nothing, because a reader holding only the plugin cache or the published package still cannot open this repository's own history. A same-repository citation takes no number here at all, bare or qualified. State the fact the citation was standing in for instead, and where the identifier is the only trace of a one-off incident rather than a reproducible count, carry it into the `.claude/context/` entry that owns the surface.
68
+
69
+ Write `owner/repo#123` and `owner/repo@abc1234` for a citation of a different, resolvable repository, across every such surface. `canon gate run` fails a push on a bare reference there, and a line whose bare form is the point carries `canon-allow-reference: <reason>` on itself or on the line above.
70
+
71
+ Choose the number over the sha where the citation names a decided change, since a pull request number resolves to the diff and the review behind it. Take the sha only for a tree or measurement state, the `Measured at <sha>` shape `.claude/ARCHITECTURE.md` already uses. The choice holds for both spellings this section fixes, the bare form a remote auto-links and the qualified form a cross-repository citation carries.
68
72
 
69
73
  A commit message takes the bare form even though it is also read through the log, where nothing links. The remote is what the form is chosen for, since a reader in the log loses only a link that plain text never carried.
70
74
 
@@ -71,7 +71,7 @@ Date the workspace once rather than every file. A per-file date leaves every oth
71
71
 
72
72
  - Number a lesson and a learning record `0001` upward, as `<nnnn>-<slug>.html` and `<nnnn>-<slug>.md`. The number is read order and never changes.
73
73
  - Name a reference page for its subject alone, with no number. A reference page is looked up rather than worked through, so an ordinal on one implies an order no reader follows.
74
- - Keep one shared stylesheet under `assets/` and link it from every lesson. A lesson restating its own styles makes a workspace read as a pile of one-offs rather than as one course.
74
+ - Keep one shared stylesheet under `assets/` and embed it in every lesson. A lesson restating its own styles makes a workspace read as a pile of one-offs rather than as one course.
75
75
 
76
76
  ## MISSION.md
77
77
 
@@ -0,0 +1,82 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Claude Code sends a payload and closes stdin. A bare read with nothing feeding
4
+ # it blocks forever and holds the session open, so the read is bounded. `read`
5
+ # rather than `timeout cat`, which macOS does not ship.
6
+ IFS= read -r -d '' -t 2 input
7
+ [ -n "$input" ] || {
8
+ printf '%s reads a Claude Code hook payload on stdin and cannot be run by hand.\n' "${0##*/}" >&2
9
+ exit 1
10
+ }
11
+
12
+ event=$(printf '%s' "$input" | jq -r '.hook_event_name // empty')
13
+ [ "$event" = "Stop" ] || exit 0
14
+
15
+ # A forced continuation after a block fires this same hook again with a fresh
16
+ # prompt_id and stop_hook_active: true. Reading that field is what proves the
17
+ # guarantee, measured in a driven spike: the first Stop event blocked once and
18
+ # the continuation's Stop event carried this field true and passed clean, with
19
+ # no session-keyed marker needed to back it up.
20
+ stop_hook_active=$(printf '%s' "$input" | jq -r '.stop_hook_active // false')
21
+ [ "$stop_hook_active" = "true" ] && exit 0
22
+
23
+ # The closing text comes from the payload itself rather than transcript_path.
24
+ # A driven spike found the file missing that entry for roughly two seconds
25
+ # after Stop fires, while this field already carries the same text with no lag.
26
+ last_message=$(printf '%s' "$input" | jq -r '.last_assistant_message // empty')
27
+ transcript_path=$(printf '%s' "$input" | jq -r '.transcript_path // empty')
28
+ prompt_id=$(printf '%s' "$input" | jq -r '.prompt_id // empty')
29
+
30
+ [ -n "$transcript_path" ] && [ -f "$transcript_path" ] || exit 0
31
+ [ -n "$prompt_id" ] || exit 0
32
+
33
+ # transcript_path carries every prior turn too, so the scan starts at the line
34
+ # where the turn began. A spike matched prompt_id against a transcript entry's
35
+ # own promptId field and found it exact: the field is stamped on the turn's
36
+ # initiating entry and its tool-result echoes, and on nothing before it.
37
+ line_start=$(grep -Fn "\"promptId\":\"$prompt_id\"" "$transcript_path" | head -1 | cut -d: -f1)
38
+ [ -n "$line_start" ] || exit 0
39
+
40
+ # The turn's Write and Edit tool calls land in the file before Stop fires, the
41
+ # same spike found, so this read needs no retry the way the closing text would.
42
+ paths=$(tail -n +"$line_start" "$transcript_path" | jq -r '
43
+ select(.type == "assistant") |
44
+ .message.content[]? |
45
+ select(.type == "tool_use" and (.name == "Write" or .name == "Edit" or .name == "MultiEdit")) |
46
+ .input.file_path
47
+ ' 2>/dev/null | sort -u)
48
+ [ -n "$paths" ] || exit 0
49
+
50
+ # Two written paths can share a basename, and a bare basename match would then
51
+ # read one mention as covering both. Counting first is what lets a collision
52
+ # fall back to the full path, which the ordinary case never needs.
53
+ declare -A base_count
54
+ while IFS= read -r path; do
55
+ [ -n "$path" ] || continue
56
+ base=$(basename "$path")
57
+ base_count["$base"]=$((${base_count["$base"]:-0} + 1))
58
+ done <<<"$paths"
59
+
60
+ unmentioned=()
61
+ while IFS= read -r path; do
62
+ [ -n "$path" ] || continue
63
+ base=$(basename "$path")
64
+ if [ "${base_count[$base]}" -gt 1 ]; then
65
+ needle="$path"
66
+ else
67
+ needle="$base"
68
+ fi
69
+ case "$last_message" in
70
+ *"$needle"*) ;;
71
+ *) unmentioned+=("$path") ;;
72
+ esac
73
+ done <<<"$paths"
74
+ [ ${#unmentioned[@]} -eq 0 ] && exit 0
75
+
76
+ {
77
+ echo 'This turn wrote or edited a file the final reply did not name:'
78
+ printf -- '- %s\n' "${unmentioned[@]}"
79
+ echo
80
+ echo 'Name every touched path in the reply, then finish. This block fires once regardless of what the reply names.'
81
+ } >&2
82
+ exit 2
@@ -51,6 +51,16 @@
51
51
  }
52
52
  ]
53
53
  }
54
+ ],
55
+ "Stop": [
56
+ {
57
+ "hooks": [
58
+ {
59
+ "type": "command",
60
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/silent-turn.sh"
61
+ }
62
+ ]
63
+ }
54
64
  ]
55
65
  }
56
66
  }