@erclx/canon 4.66.0 → 4.68.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.
Files changed (156) hide show
  1. package/claude/.claude-plugin/plugin.json +1 -1
  2. package/claude/skills/{claude-autoship → auto-ship}/REQUIREMENT.md +3 -3
  3. package/claude/skills/{claude-autoship → auto-ship}/SKILL.md +36 -36
  4. package/claude/skills/canon-cli/REQUIREMENT.md +2 -2
  5. package/claude/skills/canon-cli/SKILL.md +2 -2
  6. package/claude/skills/canon-feedback-triage/REQUIREMENT.md +1 -1
  7. package/claude/skills/canon-feedback-triage/SKILL.md +3 -3
  8. package/claude/skills/canon-operator/REQUIREMENT.md +1 -1
  9. package/claude/skills/canon-operator/SKILL.md +4 -4
  10. package/claude/skills/canon-rollout/REQUIREMENT.md +6 -6
  11. package/claude/skills/canon-rollout/SKILL.md +7 -7
  12. package/claude/skills/{claude-design-extract → design-extract}/REQUIREMENT.md +4 -4
  13. package/claude/skills/{claude-design-extract → design-extract}/SKILL.md +1 -1
  14. package/claude/skills/{claude-docs → docs-fold}/REQUIREMENT.md +3 -3
  15. package/claude/skills/{claude-docs → docs-fold}/SKILL.md +14 -14
  16. package/claude/skills/{claude-docs → docs-fold}/references/anchor-sweep.md +1 -1
  17. package/claude/skills/{claude-docs → docs-fold}/references/wireframe-sweep.md +1 -1
  18. package/claude/skills/docs-sync/REQUIREMENT.md +3 -3
  19. package/claude/skills/docs-sync/SKILL.md +1 -1
  20. package/claude/skills/draft-and-pick/REQUIREMENT.md +4 -4
  21. package/claude/skills/draft-and-pick/SKILL.md +6 -6
  22. package/claude/skills/draft-context/REQUIREMENT.md +2 -2
  23. package/claude/skills/draft-context/SKILL.md +3 -3
  24. package/claude/skills/{claude-diagram → draft-diagram}/REQUIREMENT.md +4 -4
  25. package/claude/skills/{claude-diagram → draft-diagram}/SKILL.md +3 -3
  26. package/claude/skills/draft-docs/REQUIREMENT.md +1 -1
  27. package/claude/skills/draft-wireframes/REQUIREMENT.md +1 -1
  28. package/claude/skills/draft-wireframes/SKILL.md +2 -2
  29. package/claude/skills/git-followup/REQUIREMENT.md +1 -1
  30. package/claude/skills/git-followup/SKILL.md +1 -1
  31. package/claude/skills/git-pr/SKILL.md +3 -3
  32. package/claude/skills/git-ship/REQUIREMENT.md +2 -2
  33. package/claude/skills/git-ship/SKILL.md +8 -8
  34. package/claude/skills/git-worktree/REQUIREMENT.md +2 -2
  35. package/claude/skills/git-worktree/SKILL.md +3 -3
  36. package/claude/skills/identity/REQUIREMENT.md +2 -2
  37. package/claude/skills/identity/SKILL.md +3 -3
  38. package/claude/skills/{claude-markdown-propose → markdown-propose}/REQUIREMENT.md +8 -8
  39. package/claude/skills/{claude-markdown-propose → markdown-propose}/SKILL.md +5 -5
  40. package/claude/skills/{claude-markdown-propose → markdown-propose}/references/format.md +1 -1
  41. package/claude/skills/{claude-memory-capture → memory-capture}/REQUIREMENT.md +5 -5
  42. package/claude/skills/{claude-memory-capture → memory-capture}/SKILL.md +13 -13
  43. package/claude/skills/{claude-memory-review → memory-review}/REQUIREMENT.md +4 -4
  44. package/claude/skills/{claude-memory-review → memory-review}/SKILL.md +10 -10
  45. package/claude/skills/migration-context/SKILL.md +1 -1
  46. package/claude/skills/migration-standards-drop/REQUIREMENT.md +1 -1
  47. package/claude/skills/migration-superseded/REQUIREMENT.md +1 -1
  48. package/claude/skills/{claude-feature → plan-feature}/REQUIREMENT.md +4 -4
  49. package/claude/skills/{claude-feature → plan-feature}/SKILL.md +4 -4
  50. package/claude/skills/{claude-groundwork → plan-groundwork}/REQUIREMENT.md +5 -5
  51. package/claude/skills/{claude-groundwork → plan-groundwork}/SKILL.md +8 -8
  52. package/claude/skills/{claude-intake → plan-intake}/REQUIREMENT.md +6 -6
  53. package/claude/skills/{claude-intake → plan-intake}/SKILL.md +10 -10
  54. package/claude/skills/{claude-intake-answer → plan-intake-answer}/REQUIREMENT.md +4 -4
  55. package/claude/skills/{claude-intake-answer → plan-intake-answer}/SKILL.md +5 -5
  56. package/claude/skills/{claude-address-review → review-address}/REQUIREMENT.md +5 -5
  57. package/claude/skills/{claude-address-review → review-address}/SKILL.md +6 -6
  58. package/claude/skills/{claude-address-review → review-address}/references/rebase-conflicts.md +1 -1
  59. package/claude/skills/{claude-review → review-branch}/REQUIREMENT.md +4 -4
  60. package/claude/skills/{claude-review → review-branch}/SKILL.md +4 -4
  61. package/claude/skills/{claude-pr-review → review-pr}/REQUIREMENT.md +5 -5
  62. package/claude/skills/{claude-pr-review → review-pr}/SKILL.md +11 -11
  63. package/claude/skills/{claude-orchestrate → role-orchestrator}/REQUIREMENT.md +5 -5
  64. package/claude/skills/{claude-orchestrate → role-orchestrator}/SKILL.md +20 -20
  65. package/claude/skills/{claude-orchestrate → role-orchestrator}/references/orchestrator-dispatch.md +30 -30
  66. package/claude/skills/{claude-orchestrate → role-orchestrator}/references/orchestrator-handoff.md +2 -2
  67. package/claude/skills/{claude-orchestrate → role-orchestrator}/references/orchestrator-parked.md +8 -8
  68. package/claude/skills/{claude-orchestrate → role-orchestrator}/references/orchestrator-poll.md +8 -8
  69. package/claude/skills/{claude-orchestrate → role-orchestrator}/references/orchestrator-resume.md +1 -1
  70. package/claude/skills/{claude-orchestrate → role-orchestrator}/references/orchestrator-sweep.md +1 -1
  71. package/claude/skills/{claude-orchestrate → role-orchestrator}/scripts/poll.sh +6 -6
  72. package/claude/skills/{claude-planner → role-planner}/REQUIREMENT.md +12 -12
  73. package/claude/skills/{claude-planner → role-planner}/SKILL.md +4 -4
  74. package/claude/skills/{claude-worker → role-worker}/REQUIREMENT.md +8 -8
  75. package/claude/skills/{claude-worker → role-worker}/SKILL.md +6 -6
  76. package/claude/skills/{claude-seed-sync → seed-sync}/REQUIREMENT.md +2 -2
  77. package/claude/skills/{claude-seed-sync → seed-sync}/SKILL.md +3 -3
  78. package/claude/skills/session-map/REQUIREMENT.md +2 -2
  79. package/claude/skills/session-map/SKILL.md +2 -2
  80. package/claude/skills/session-resume/REQUIREMENT.md +2 -2
  81. package/claude/skills/session-resume/SKILL.md +2 -2
  82. package/claude/skills/{claude-worktree → session-worktree}/REQUIREMENT.md +3 -3
  83. package/claude/skills/{claude-worktree → session-worktree}/SKILL.md +6 -6
  84. package/claude/skills/setup-plugins/references/plugin-catalog.md +1 -1
  85. package/claude/skills/{claude-standards-audit → standards-audit}/REQUIREMENT.md +2 -2
  86. package/claude/skills/{claude-standards-audit → standards-audit}/SKILL.md +2 -2
  87. package/claude/skills/systematic-debugging/REQUIREMENT.md +1 -1
  88. package/claude/skills/{claude-tasks → task-board}/REQUIREMENT.md +3 -3
  89. package/claude/skills/{claude-tasks → task-board}/SKILL.md +7 -7
  90. package/claude/skills/{claude-teach → teach-workspace}/REQUIREMENT.md +2 -2
  91. package/claude/skills/{claude-teach → teach-workspace}/SKILL.md +4 -4
  92. package/claude/skills/test-first/REQUIREMENT.md +2 -2
  93. package/claude/skills/{claude-ui-test → ui-test}/REQUIREMENT.md +3 -3
  94. package/claude/skills/{claude-ui-test → ui-test}/SKILL.md +3 -3
  95. package/claude/skills/{claude-ux-audit → ux-audit}/REQUIREMENT.md +6 -6
  96. package/claude/skills/{claude-ux-audit → ux-audit}/SKILL.md +5 -5
  97. package/claude/skills/{claude-ux-measure → ux-measure}/REQUIREMENT.md +5 -5
  98. package/claude/skills/{claude-ux-measure → ux-measure}/SKILL.md +5 -5
  99. package/docs/agents/commands.md +4 -1
  100. package/docs/agents/install-and-sync.md +1 -1
  101. package/docs/agents/key-changes.md +3 -3
  102. package/docs/agents/markdown-audit.md +1 -1
  103. package/docs/agents/restated.md +1 -1
  104. package/docs/agents/review-classification.md +1 -1
  105. package/docs/agents/sessions.md +1 -1
  106. package/docs/agents/state-scoped-risk.md +1 -1
  107. package/docs/agents/targets.md +1 -1
  108. package/docs/agents/tasks.md +4 -4
  109. package/docs/agents/teach.md +1 -1
  110. package/docs/target-projects.md +28 -9
  111. package/docs/workflow/ai-workflow.md +84 -84
  112. package/docs/workflow/operating-model.md +17 -17
  113. package/docs/workflow/visual-design-workflow.md +6 -6
  114. package/governance/rules/core/045-memory.md +1 -1
  115. package/governance/rules/core/085-worktrees.md +1 -1
  116. package/package.json +1 -1
  117. package/scripts/core/regen-agent-fixture.sh +1 -1
  118. package/scripts/core/regen-hero.sh +7 -7
  119. package/snippets/claude/decision-memo.md +1 -1
  120. package/src/autoship/paths.ts +1 -1
  121. package/src/claude/cases/all.ts +2 -2
  122. package/src/claude/cases/{claude-workflow.ts → workflow.ts} +33 -33
  123. package/src/commands/migrate.ts +90 -13
  124. package/src/commands/sync.ts +3 -3
  125. package/src/design/components.ts +1157 -4
  126. package/src/design/css.ts +44 -17
  127. package/src/design/tokens.ts +1 -1
  128. package/src/gov/restated.ts +2 -2
  129. package/src/markdown/structure.ts +1 -1
  130. package/src/migrate/plan.ts +13 -5
  131. package/src/migrate/rename.ts +210 -94
  132. package/src/migrate/skill-names.ts +89 -0
  133. package/src/pr/bijection.ts +1 -1
  134. package/src/pr/paths.ts +2 -2
  135. package/src/shipped/references.ts +1 -1
  136. package/src/sync/seeds-report.ts +1 -1
  137. package/src/targets/pulls.ts +2 -2
  138. package/src/tasks/answers.ts +1 -1
  139. package/src/tasks/archive.ts +4 -4
  140. package/src/tasks/record.ts +2 -2
  141. package/src/tasks/validate.ts +1 -1
  142. package/src/teach/fonts.ts +28 -0
  143. package/src/teach/nav.ts +11 -1
  144. package/src/teach/workspace.ts +4 -1
  145. package/standards/groundwork.md +1 -1
  146. package/standards/snippets.md +1 -1
  147. package/standards/tasks.md +3 -3
  148. package/standards/teach.md +2 -2
  149. package/tooling/base/configs/.husky/post-merge +3 -3
  150. package/tooling/claude/reference.md +5 -5
  151. package/tooling/claude/seeds/.claude/hooks/pr-create-log.sh +2 -2
  152. /package/claude/skills/{claude-memory-review → memory-review}/references/receipt-format.md +0 -0
  153. /package/claude/skills/{claude-orchestrate → role-orchestrator}/scripts/watch.sh +0 -0
  154. /package/claude/skills/{claude-teach → teach-workspace}/references/lesson-craft.md +0 -0
  155. /package/claude/skills/{claude-teach → teach-workspace}/references/pedagogy.md +0 -0
  156. /package/claude/skills/{claude-teach → teach-workspace}/references/promotion.md +0 -0
@@ -1,9 +1,9 @@
1
1
  ---
2
- name: claude-memory-review
2
+ name: memory-review
3
3
  description: What memory review is for, the gaps it closes, and why every action waits on approval
4
4
  ---
5
5
 
6
- # Claude memory review requirement
6
+ # Memory review requirement
7
7
 
8
8
  ## Gap
9
9
 
@@ -15,7 +15,7 @@ A pen the caller cannot face is the same gap wearing a different shape. Routing
15
15
 
16
16
  - Treat the folder as a holding pen, so every entry in scope leaves it as a promotion, a handoff, or an archive rather than surviving by default
17
17
  - Archive an entry out of the pen rather than deleting it, since nothing recovers a file from a gitignored folder
18
- - Hand a fact a context entry owns to `claude-docs` through the routing file, rather than editing the entry here
18
+ - Hand a fact a context entry owns to `docs-fold` through the routing file, rather than editing the entry here
19
19
  - Verify the rule is not already stated or implied in the target before proposing a promotion, by reading the target rather than trusting the memory's claim about it
20
20
  - Rewrite a rule into the destination's voice instead of moving it unchanged
21
21
  - Write the proposal to a receipt on disk and take no action until the user decides per item
@@ -45,6 +45,6 @@ A pen the caller cannot face is the same gap wearing a different shape. Routing
45
45
 
46
46
  ## Out of scope
47
47
 
48
- - Writing memories, which `claude-memory-capture` owns
48
+ - Writing memories, which `memory-capture` owns
49
49
  - Judging whether an entry should have been captured. That is a gate at capture time, and re-deciding it here would delete evidence the capture rule is wrong.
50
50
  - Editing the governance rules a handoff points at
@@ -1,9 +1,9 @@
1
1
  ---
2
- name: claude-memory-review
2
+ name: memory-review
3
3
  description: Reviews `.canon/memory/` and proposes per-entry actions (promote to `CLAUDE.md`, move into a skill body, route to a context entry, hand off to governance, or retire as stale). Also runs the discuss, challenge, apply, and cleanup phases on an existing review file. Use when asked to "review memory", "discuss memory questions", "challenge the promotes", "apply memory decisions", "cleanup memory review", "promote memory", or "consolidate memories". Do NOT auto-apply. Output a grouped proposal and wait for block-by-block approval.
4
4
  ---
5
5
 
6
- # Claude memory review
6
+ # Memory review
7
7
 
8
8
  This skill drives the full memory review lifecycle in five phases. Pick the phase from what the user said and whether a review receipt already exists at `<main-root>/.canon/review/memory/memory-review-*.md`.
9
9
 
@@ -21,7 +21,7 @@ If the user re-pings the skill with no new phrase and a receipt exists, default
21
21
 
22
22
  ## Guards
23
23
 
24
- - All `.canon/memory/` reads, edits, and archive moves resolve at the main worktree root, not the current worktree. Resolve that root the way `claude-worktree` does.
24
+ - All `.canon/memory/` reads, edits, and archive moves resolve at the main worktree root, not the current worktree. Resolve that root the way `session-worktree` does.
25
25
  - If no `.canon/memory/` directory exists at the main worktree root, stop: `❌ No .canon/memory/ directory found.`
26
26
  - If `.canon/memory/` contains no `*.md` entries other than `index.md`, stop: `✅ No memory entries to review.`
27
27
  - Cleanup is exempt from the two stops above. It works on receipts in `.canon/review/`, and a drained pen is the normal state once Apply has run, so a pen-shaped stop would strand the receipt it exists to delete.
@@ -34,7 +34,7 @@ Propose is the ship-time entry point. The ship skills run it right after capture
34
34
 
35
35
  ### Scope
36
36
 
37
- - **Ship-scoped:** when a ship caller (`git-ship`, `claude-autoship`) names the entries captured this session, classify only those entries. Read the full pen for merge and absorbed comparison, but do not propose actions on carried entries the captures do not touch. Each carried entry was already proposed on in its own ship cycle.
37
+ - **Ship-scoped:** when a ship caller (`git-ship`, `auto-ship`) names the entries captured this session, classify only those entries. Read the full pen for merge and absorbed comparison, but do not propose actions on carried entries the captures do not touch. Each carried entry was already proposed on in its own ship cycle.
38
38
  - **Full sweep:** when invoked standalone with no named set, classify every entry in the pen, including entries carried from earlier sessions, so cross-session duplicates merge into one rule.
39
39
 
40
40
  ### Step 1: read the memory folder
@@ -58,14 +58,14 @@ Read in parallel from the project root. Skip any file or folder that does not ex
58
58
 
59
59
  `.canon/memory/` is a holding pen. Default every entry to promote or retire on review. Skip is the rare exception, reserved for active task overlap or user-type memories with no in-repo target.
60
60
 
61
- `claude-memory-capture` routes a project fact naming a domain with a context entry to that entry, so a pen filled since routing shipped is mostly feedback: rules about how to work, which no context entry owns. Propose against what the pen holds rather than expecting the older mix. An entry carried from before routing may still name a domain that has a context entry, and that entry's action is **Promote to a context entry**, which hands it to `claude-docs` the same way capture does rather than editing the entry here.
61
+ `memory-capture` routes a project fact naming a domain with a context entry to that entry, so a pen filled since routing shipped is mostly feedback: rules about how to work, which no context entry owns. Propose against what the pen holds rather than expecting the older mix. An entry carried from before routing may still name a domain that has a context entry, and that entry's action is **Promote to a context entry**, which hands it to `docs-fold` the same way capture does rather than editing the entry here.
62
62
 
63
63
  For each in-scope entry (see Scope), pick one action:
64
64
 
65
65
  - **Promote to `CLAUDE.md`**: the rule is cross-domain behavior or a design principle applied across the whole project.
66
66
  - **Promote to a skill body**: the rule fires only when editing a specific path-scoped domain. Name the target skill.
67
67
  - **Promote to a standards file**: the rule is an authoring reference that belongs in the project's own standards folder as `<domain>.md`.
68
- - **Promote to a context entry**: the entry states a fact about a domain carrying an entry in `.claude/context/index.md`. Append it to `.canon/tmp/memory-routing/<slug>.md` at the main worktree root, in the format `claude-memory-capture` writes, and tell the user to run `/claude-docs` from a branch. Do not edit the context entry here.
68
+ - **Promote to a context entry**: the entry states a fact about a domain carrying an entry in `.claude/context/index.md`. Append it to `.canon/tmp/memory-routing/<slug>.md` at the main worktree root, in the format `memory-capture` writes, and tell the user to run `/docs-fold` from a branch. Do not edit the context entry here.
69
69
  - **Hand off to governance**: the rule is coding-standards class (typescript, testing, naming, error-handling, performance, logging, concurrency, planning). Do not author the rule file inline. Never edit the synced `.claude/rules/` copies of toolkit rules, because `canon gov sync` overwrites them. Stop at handoff.
70
70
  - In the toolkit repo, point the user at `internal-governance` and `${CLAUDE_SKILL_DIR}/../../standards/rule.md`, which own the source-of-truth rules under `governance/rules/`.
71
71
  - In a target project, point the user at the `create-rule` skill, which scaffolds a project-local rule under `.claude/rules/`.
@@ -132,7 +132,7 @@ Before applying any item, check the worktree state:
132
132
  [ "$(git rev-parse --git-dir 2>/dev/null)" = "$(git rev-parse --git-common-dir 2>/dev/null)" ] && echo "MAIN" || echo "LINKED"
133
133
  ```
134
134
 
135
- If the result is `MAIN`, stop and tell the user: `❌ Apply phase mutates tracked files. Run /claude-worktree first.` Discuss and Challenge phases only touch `.canon/review/` scratch and run from anywhere.
135
+ If the result is `MAIN`, stop and tell the user: `❌ Apply phase mutates tracked files. Run /session-worktree first.` Discuss and Challenge phases only touch `.canon/review/` scratch and run from anywhere.
136
136
 
137
137
  Before applying a promote to root `CLAUDE.md`, load `internal-claude` so its seed-mirror rule fires on the edit.
138
138
 
@@ -150,7 +150,7 @@ Free-form text after the verb is a reason. Capture it in the receipt but do not
150
150
  Action by action type:
151
151
 
152
152
  - **Promote**: use `Edit` to insert the rewritten rule into the target surface, then archive the memory file.
153
- - **Promote to a context entry**: append the fact to `.canon/tmp/memory-routing/<slug>.md` at the main worktree root, then archive the memory file. `claude-docs` folds it in on its next run from a branch, which is what keeps one skill writing context entries.
153
+ - **Promote to a context entry**: append the fact to `.canon/tmp/memory-routing/<slug>.md` at the main worktree root, then archive the memory file. `docs-fold` folds it in on its next run from a branch, which is what keeps one skill writing context entries.
154
154
  - **Hand off**: do not edit governance. Archive the memory file only if the user confirmed the handoff explicitly. Otherwise leave it in place.
155
155
  - **Retire**: archive the memory file.
156
156
 
@@ -178,7 +178,7 @@ Count the items still 📝 pending once the parse above has run. Apply leaves on
178
178
 
179
179
  Leave the receipt in place when any remain. When none do, collect it per the collection rule in `${CLAUDE_SKILL_DIR}/../../standards/memory.md`, which owns what a fold writes and which entry types take one.
180
180
 
181
- `claude-docs` Step 10 sweeps the same folder on the same rule once per shipped branch, and either may reach a receipt first. Whichever does, the other finds no file and moves on.
181
+ `docs-fold` Step 10 sweeps the same folder on the same rule once per shipped branch, and either may reach a receipt first. Whichever does, the other finds no file and moves on.
182
182
 
183
183
  End with: `✅ Applied: <nums> | ⏭ Skipped: <nums> | 📝 Pending: <nums>`. Omit empty buckets. If anything is pending, remind the user they can refine `Decision:` lines and re-ping, run "discuss" for question items, or commit a skip with `skip <nums>` in chat.
184
184
 
@@ -186,7 +186,7 @@ End with: `✅ Applied: <nums> | ⏭ Skipped: <nums> | 📝 Pending: <nums>`. Om
186
186
 
187
187
  Trigger: user says "cleanup" or "delete the receipt" after Apply has run.
188
188
 
189
- Cleanup folds one receipt's skips and removes that receipt, and does nothing else. It is the fallback route now that Apply and `claude-docs` Step 10 each collect a resolved receipt on their own, so it reaches a file those two left behind rather than being the only collector. Apply is still the only phase that moves a memory entry out of the pen, and it does so per approved item into `.canon/tmp/memory-archive/`. A user asking to sweep stale memories wants Propose, which classifies entries and writes a decision slot per entry.
189
+ Cleanup folds one receipt's skips and removes that receipt, and does nothing else. It is the fallback route now that Apply and `docs-fold` Step 10 each collect a resolved receipt on their own, so it reaches a file those two left behind rather than being the only collector. Apply is still the only phase that moves a memory entry out of the pen, and it does so per approved item into `.canon/tmp/memory-archive/`. A user asking to sweep stale memories wants Propose, which classifies entries and writes a decision slot per entry.
190
190
 
191
191
  If no `.canon/review/memory/memory-review-*.md` exists at the main root, stop: `✅ No review receipt to clean up.` Every other refusal in this skill carries a message, and the phase reads a receipt before it does anything else.
192
192
 
@@ -60,7 +60,7 @@ Print one grouped proposal block. Omit empty groups.
60
60
 
61
61
  - docs/<file>.md (<one-line reason>)
62
62
 
63
- ## Defer to claude-seed-sync
63
+ ## Defer to seed-sync
64
64
 
65
65
  - docs/<file>.md (matches toolkit base seed)
66
66
 
@@ -47,7 +47,7 @@ The last is the name map. `prose` split into `markdown.md` plus the `write-human
47
47
  - Classifying `CLAUDE.md` sections into the three-tier model: `migration-claude-md`
48
48
  - Relocating `docs/` files by audience: `migration-context`
49
49
  - Splitting a retired `.claude/` file into the folder that replaced it, which pairs one file against one folder rather than dropping a corpus: `migration-superseded`
50
- - Reconciling a seed file against its source section by section: `claude-seed-sync`
50
+ - Reconciling a seed file against its source section by section: `seed-sync`
51
51
  - Applying the drop and the sweep, which the user does after reviewing
52
52
 
53
53
  ## Why it ships while its consumer row is parked
@@ -40,5 +40,5 @@ The last is the two-speed release skew arriving as a confident wrong answer. `su
40
40
 
41
41
  - Classifying `CLAUDE.md` sections into the three-tier model: `migration-claude-md`
42
42
  - Relocating `docs/` files by audience: `migration-context`
43
- - Reconciling a seed file against its source section by section, which diffs two files rather than splitting one into a folder: `claude-seed-sync`
43
+ - Reconciling a seed file against its source section by section, which diffs two files rather than splitting one into a folder: `seed-sync`
44
44
  - Applying the split and running the untrack, which the user does after reviewing
@@ -1,9 +1,9 @@
1
1
  ---
2
- name: claude-feature
2
+ name: plan-feature
3
3
  description: What feature planning is for, the gaps it closes, and why it stops before implementing
4
4
  ---
5
5
 
6
- # Claude feature requirement
6
+ # Plan feature requirement
7
7
 
8
8
  ## Gap
9
9
 
@@ -32,5 +32,5 @@ Without this skill, implementation starts before anyone knows what it touches. A
32
32
  ## Out of scope
33
33
 
34
34
  - Executing the plan, which is the ship pipeline
35
- - Task-board state, which `claude-tasks` owns. A plan links to its task and does not create one.
36
- - Reconciling the planning docs after the work lands, which `claude-docs` owns
35
+ - Task-board state, which `task-board` owns. A plan links to its task and does not create one.
36
+ - Reconciling the planning docs after the work lands, which `docs-fold` owns
@@ -1,9 +1,9 @@
1
1
  ---
2
- name: claude-feature
2
+ name: plan-feature
3
3
  description: Plans a feature by reading the project's Claude setup and scanning relevant source files. Outputs which files to touch, risks, and ambiguities, then stops. Use before implementing anything, or when asked to "implement X", "add X", "build X", or "I want to add X". Do NOT implement. Plan only.
4
4
  ---
5
5
 
6
- # Claude feature
6
+ # Plan feature
7
7
 
8
8
  ## Guards
9
9
 
@@ -91,7 +91,7 @@ Omit empty sections. Do not print `None identified.` in chat.
91
91
 
92
92
  ### Full mode
93
93
 
94
- Derive a 2-to-4-word kebab-case slug from the feature description. Write the full plan to `.canon/plans/feature-<slug>.md` at the main worktree root, not the current worktree. Resolve that root the way `claude-worktree` does. Create the directory if it does not exist.
94
+ Derive a 2-to-4-word kebab-case slug from the feature description. Write the full plan to `.canon/plans/feature-<slug>.md` at the main worktree root, not the current worktree. Resolve that root the way `session-worktree` does. Create the directory if it does not exist.
95
95
 
96
96
  From a linked worktree, or from a background session sitting at the main root with none entered, the file-editing tools refuse that path, so the plan goes out through `Bash`. Send the `mkdir -p` and the heredoc as two plain commands rather than joining them with `&&`, which is refused as compound.
97
97
 
@@ -113,7 +113,7 @@ Then output in chat:
113
113
  1. <question>
114
114
  - Suggested: <pick>, <reason or tradeoff>
115
115
 
116
- Next: /claude-worktree
116
+ Next: /session-worktree
117
117
  ```
118
118
 
119
119
  Show only the path line and the `Next:` line when there are no questions. The `.canon/plans/` directory is gitignored. Do not stage or commit the file.
@@ -1,9 +1,9 @@
1
1
  ---
2
- name: claude-groundwork
2
+ name: plan-groundwork
3
3
  description: Why a question that has not been measured gets a disposable folder instead of a plan, and the write scope that lets the track run without pausing
4
4
  ---
5
5
 
6
- # Claude groundwork requirement
6
+ # Plan groundwork requirement
7
7
 
8
8
  ## Gap
9
9
 
@@ -21,8 +21,8 @@ A track that closes with several separable findings writes only one task, and th
21
21
  - Measure the current state now rather than carrying a figure from a previous session
22
22
  - Carry a lean and the finding that would overturn it on every open question, or admit that a measurement is missing
23
23
  - Confine writes to the track folder, with the close-time task file, the experiment fixture, and the intake routing below as the only exceptions
24
- - Route a closing-track finding the required task does not cover through `claude-intake`, rather than leaving it to be asked about. The route runs in the same session, so it is a write outside the folder rather than a handoff to a later one.
25
- - Place the closing task's row through `claude-tasks` Step 4 rather than writing `priority.md` or `backlog.md` directly
24
+ - Route a closing-track finding the required task does not cover through `plan-intake`, rather than leaving it to be asked about. The route runs in the same session, so it is a write outside the folder rather than a handoff to a later one.
25
+ - Place the closing task's row through `task-board` Step 4 rather than writing `priority.md` or `backlog.md` directly
26
26
  - Link every claim about a source outside the project, and list an unread source as a lead rather than citing it
27
27
  - Put a fixture a headless run is pointed at outside the repository
28
28
  - Write the next-session file self-contained, since the folder is unbacked and dies with the machine
@@ -44,6 +44,6 @@ A track that closes with several separable findings writes only one task, and th
44
44
 
45
45
  ## Out of scope
46
46
 
47
- - Writing the plan the track concludes toward, which `claude-feature` owns
47
+ - Writing the plan the track concludes toward, which `plan-feature` owns
48
48
  - Implementing anything the track recommends
49
49
  - Persisting the folder. It is gitignored and disposable, which is what makes it the right container for an unanswered question.
@@ -1,9 +1,9 @@
1
1
  ---
2
- name: claude-groundwork
3
- description: Opens and runs a numbered groundwork folder under `.canon/groundwork/<nn>-<slug>/` for a topic that has to be measured before it can be planned. Detects open, resume, and close from the folder itself. Use when asked to "research X", "dig into X", "work out what we should do about X", "measure this before we commit", or "open a groundwork folder". Do NOT use to write a feature plan or to implement. That is `claude-feature`.
2
+ name: plan-groundwork
3
+ description: Opens and runs a numbered groundwork folder under `.canon/groundwork/<nn>-<slug>/` for a topic that has to be measured before it can be planned. Detects open, resume, and close from the folder itself. Use when asked to "research X", "dig into X", "work out what we should do about X", "measure this before we commit", or "open a groundwork folder". Do NOT use to write a feature plan or to implement. That is `plan-feature`.
4
4
  ---
5
5
 
6
- # Claude groundwork
6
+ # Plan groundwork
7
7
 
8
8
  Groundwork gathers and weighs. A plan commits. A groundwork folder costs nothing to throw away, which is what makes it the right container for a question nobody has answered yet.
9
9
 
@@ -12,9 +12,9 @@ Read `${CLAUDE_SKILL_DIR}/../../standards/groundwork.md` before writing any file
12
12
  ## Guards
13
13
 
14
14
  - If no topic is given, stop: `❌ No topic. Name what needs measuring.`
15
- - Apply the qualifying test in open mode alone, after Step 1 resolves the mode and before the folder is created. Two of these three must hold: the current state is not known, more than one approach is live, and committing wrong costs more than a day of measuring. When one or fewer holds, stop: `❌ Already decided enough to plan. Run /claude-feature instead.`
15
+ - Apply the qualifying test in open mode alone, after Step 1 resolves the mode and before the folder is created. Two of these three must hold: the current state is not known, more than one approach is live, and committing wrong costs more than a day of measuring. When one or fewer holds, stop: `❌ Already decided enough to plan. Run /plan-feature instead.`
16
16
  - Resume and close are exempt from the test above. A track that has already been measured fails it by definition, since its current state is now known and its approaches have narrowed, so applying the test to either mode refuses the folder that same test admitted.
17
- - A refused topic that is a broad dump rather than one question routes to `claude-intake`, not to the planning skill the stop names. Intake dispositions many findings in breadth from what the repository already holds, and one folder holding dozens of unrelated threads is what forcing them past this guard produces.
17
+ - A refused topic that is a broad dump rather than one question routes to `plan-intake`, not to the planning skill the stop names. Intake dispositions many findings in breadth from what the repository already holds, and one folder holding dozens of unrelated threads is what forcing them past this guard produces.
18
18
  - Do not pause for approval between steps. The write scope below is what makes that safe.
19
19
 
20
20
  ## Write scope
@@ -92,8 +92,8 @@ The standard sets the open question format and requires it inside a topic file a
92
92
  1. Write `06-decision.md`. It states the problem once, names the goal, lists what to do, and lists what was considered and dropped.
93
93
  2. Write `07-next-session.md` self-contained, so it survives a compaction that loses the conversation.
94
94
  3. Update the file map in `README.md`.
95
- 4. Write one task file in `.canon/tasks/` recording what the track concluded, even when the conclusion is to do nothing. Follow `${CLAUDE_SKILL_DIR}/../../standards/tasks.md` for the filename and frontmatter. Place the row through `claude-tasks` Step 4, which checks the roster for a live orchestrator before writing `priority.md` or `backlog.md` directly. Aside from an experiment fixture, this and the routing in Step 5 are the only ways close mode reaches outside the folder.
96
- 5. When the task written in Step 4 does not cover every finding the track surfaced, route what it leaves out through `claude-intake`. Skip this step when it does.
95
+ 4. Write one task file in `.canon/tasks/` recording what the track concluded, even when the conclusion is to do nothing. Follow `${CLAUDE_SKILL_DIR}/../../standards/tasks.md` for the filename and frontmatter. Place the row through `task-board` Step 4, which checks the roster for a live orchestrator before writing `priority.md` or `backlog.md` directly. Aside from an experiment fixture, this and the routing in Step 5 are the only ways close mode reaches outside the folder.
96
+ 5. When the task written in Step 4 does not cover every finding the track surfaced, route what it leaves out through `plan-intake`. Skip this step when it does.
97
97
  6. Report uncited external claims. Closing already reads every file in the folder, so list any statement about a source outside the project that carries neither a link nor a lead entry. Report and do not block, because judging whether a sentence makes an external claim is the call a checker gets wrong.
98
98
 
99
99
  Do not close while an open question quietly fails an outcome. Resolve it, or record it in `06-decision.md` as knowingly accepted.
@@ -137,7 +137,7 @@ Close:
137
137
 
138
138
  <the decision in one line>
139
139
 
140
- Next: /claude-feature
140
+ Next: /plan-feature
141
141
  ```
142
142
 
143
143
  Omit the uncited-claims block when the count is zero.
@@ -1,13 +1,13 @@
1
1
  ---
2
- name: claude-intake
2
+ name: plan-intake
3
3
  description: Why a brain dump gets a filed inventory rather than ten plans, and why an empty operator slot means unread
4
4
  ---
5
5
 
6
- # Claude intake requirement
6
+ # Plan intake requirement
7
7
 
8
8
  ## Gap
9
9
 
10
- Without this skill, a brain dump reaches a session that has nowhere to put it. `claude-feature` answers with one plan per independent concern, so forty findings produce ten plan files before anything has been measured. `claude-groundwork` refuses a breadth pass outright, since its qualifying test asks whether the current state is unknown and most items are knowable by grep. What gets filed instead is a list of opinions, because nothing forces a count against the tree and a complaint reads the same whether it covers three sites or three hundred.
10
+ Without this skill, a brain dump reaches a session that has nowhere to put it. `plan-feature` answers with one plan per independent concern, so forty findings produce ten plan files before anything has been measured. `plan-groundwork` refuses a breadth pass outright, since its qualifying test asks whether the current state is unknown and most items are knowable by grep. What gets filed instead is a list of opinions, because nothing forces a count against the tree and a complaint reads the same whether it covers three sites or three hundred.
11
11
 
12
12
  Two failure modes cost more than the rest. An operator's silence on an item reads as consent when the folder borrows the plan file's blank-means-accept contract, which ships changes nobody approved across a folder read over weeks. And a report naming only a path cannot distinguish three new items from one reworded sentence in a file that holds a dozen items, so every reader diffs it against memory to find out what moved.
13
13
 
@@ -43,7 +43,7 @@ A session with no numbering convention re-decides the folder shape per dump, so
43
43
 
44
44
  ## Out of scope
45
45
 
46
- - Measuring one question in depth, which `claude-groundwork` owns
47
- - Planning a promoted item, which `claude-feature` owns
48
- - Promoting an item onto the board, which `claude-tasks` owns
46
+ - Measuring one question in depth, which `plan-groundwork` owns
47
+ - Planning a promoted item, which `plan-feature` owns
48
+ - Promoting an item onto the board, which `task-board` owns
49
49
  - Enforcing any of this. The folder is gitignored, so no check reaches its contents and every rule holds only while a session reads it.
@@ -1,9 +1,9 @@
1
1
  ---
2
- name: claude-intake
3
- description: Files a raw brain dump into a numbered intake folder under `.canon/intake/<nn>-<slug>/`, one item per finding carrying a measured problem, a proposed fix, and a verdict. Use when asked to "file this dump", "triage my notes", "work through this list", "sort out this brain dump", or "run an intake pass". Do NOT use for one question that has to be measured before anyone can plan it. That is `claude-groundwork`.
2
+ name: plan-intake
3
+ description: Files a raw brain dump into a numbered intake folder under `.canon/intake/<nn>-<slug>/`, one item per finding carrying a measured problem, a proposed fix, and a verdict. Use when asked to "file this dump", "triage my notes", "work through this list", "sort out this brain dump", or "run an intake pass". Do NOT use for one question that has to be measured before anyone can plan it. That is `plan-groundwork`.
4
4
  ---
5
5
 
6
- # Claude intake
6
+ # Plan intake
7
7
 
8
8
  Intake dispositions many findings in breadth. A dump goes in, an inventory comes out, and every item carries a problem measured against the tree, one proposed fix, and a verdict. The item that turns out to be already settled is the highest-value output, and it is the one thing neither a plan nor a groundwork track has anywhere to put.
9
9
 
@@ -14,8 +14,8 @@ Read `${CLAUDE_SKILL_DIR}/../../standards/intake.md` before writing any file in
14
14
  The test is one question. Can the item be answered by reading the repository today?
15
15
 
16
16
  - Yes: intake owns it, and the cost is a session of grepping
17
- - No, because it needs an experiment or a source outside the project: route it to `claude-groundwork`, where the cost is measured in runs and days
18
- - Already decided, with only the work left: route it to `claude-feature`
17
+ - No, because it needs an experiment or a source outside the project: route it to `plan-groundwork`, where the cost is measured in runs and days
18
+ - Already decided, with only the work left: route it to `plan-feature`
19
19
 
20
20
  Apply the test per item rather than per dump. A dump of forty items typically yields one groundwork candidate, so routing the whole dump on its worst item buys a folder nobody can close.
21
21
 
@@ -24,13 +24,13 @@ Using the wrong one fails in two shapes. Intake on a question that needs measuri
24
24
  ## Guards
25
25
 
26
26
  - If no dump is given, stop: `❌ No dump to file. Paste the notes or name what to triage.`
27
- - If the dump is one question rather than a set of findings, stop: `❌ One question, not a dump. Run /claude-groundwork to measure it or /claude-feature to plan it.`
27
+ - If the dump is one question rather than a set of findings, stop: `❌ One question, not a dump. Run /plan-groundwork to measure it or /plan-feature to plan it.`
28
28
  - Do not pause for approval between steps. The write scope below is what makes that safe.
29
29
 
30
30
  ## Write scope
31
31
 
32
32
  - Write only inside `.canon/intake/<nn>-<slug>/`. A plan file, a task file, a source change, a standard, and a rule all live outside that folder, so this one rule forbids every one of them.
33
- - There is no exception. Promoting an item onto the board runs through `claude-tasks` after the operator has answered, which is a separate invocation.
33
+ - There is no exception. Promoting an item onto the board runs through `task-board` after the operator has answered, which is a separate invocation.
34
34
  - Reading is unrestricted inside the project. Measuring is the work.
35
35
  - Treat the folder as gitignored and unbacked. No check reaches its contents, so every rule stated here holds only while a session reads it.
36
36
 
@@ -101,14 +101,14 @@ A file the pass only read gets no line, which is what keeps the block short.
101
101
 
102
102
  **Open questions:** <N> awaiting your call
103
103
 
104
- Next: /claude-intake-answer to answer the `You:` slots from here, or type them
105
- into the files, then /claude-tasks to promote what is ready
104
+ Next: /plan-intake-answer to answer the `You:` slots from here, or type them
105
+ into the files, then /task-board to promote what is ready
106
106
  ```
107
107
 
108
108
  Use `📂 Resumed` in place of `📂 Opened` on a resume pass.
109
109
 
110
110
  ## Answering what this pass wrote
111
111
 
112
- The slots this pass leaves empty are answered by editing each cluster file, or from chat through `claude-intake-answer`, which walks the unread items in batches and writes each selection back onto the item it answers. Name that route in the closing line so the operator finds it where they look for it.
112
+ The slots this pass leaves empty are answered by editing each cluster file, or from chat through `plan-intake-answer`, which walks the unread items in batches and writes each selection back onto the item it answers. Name that route in the closing line so the operator finds it where they look for it.
113
113
 
114
114
  Do not invoke it from here. It is operator-triggered, and a pass that files a dump and answers it in the same run decides items on silence.
@@ -1,9 +1,9 @@
1
1
  ---
2
- name: claude-intake-answer
2
+ name: plan-intake-answer
3
3
  description: Scope boundary for answering a filed intake from chat, and the write-back contract that keeps the file rather than the conversation as the record
4
4
  ---
5
5
 
6
- # Claude intake answer requirement
6
+ # Plan intake answer requirement
7
7
 
8
8
  ## Gap
9
9
 
@@ -41,8 +41,8 @@ The batching fails a fifth way. A folder holding thirty unread items put as thir
41
41
 
42
42
  ## Out of scope
43
43
 
44
- - Filing a dump and writing the items, which is `claude-intake` and owns every other write into the folder
45
- - Promoting an answered item onto the board, which is `claude-tasks` and runs after the answers land
44
+ - Filing a dump and writing the items, which is `plan-intake` and owns every other write into the folder
45
+ - Promoting an answered item onto the board, which is `task-board` and runs after the answers land
46
46
  - The item format, the answer contract, and retrieval, which the toolkit's `standards/intake.md` owns and this skill cites
47
47
  - The comparable answer slots in groundwork and feature plans, which carry their own contracts and are a separate measurement
48
48
  - Deciding when to fire. The skill is user-invoked through `disable-model-invocation`, so answering is the operator's call rather than a description match.
@@ -1,10 +1,10 @@
1
1
  ---
2
- name: claude-intake-answer
3
- description: Walks an intake folder's unread items and puts them as batched questions in chat, writing each selection back onto the item it answers. Use when asked to "answer the intake", "work through the open items", "answer my intake questions", "go through the dump", or "let me answer these from here". Do NOT use to file a dump or write new items, which is `claude-intake`.
2
+ name: plan-intake-answer
3
+ description: Walks an intake folder's unread items and puts them as batched questions in chat, writing each selection back onto the item it answers. Use when asked to "answer the intake", "work through the open items", "answer my intake questions", "go through the dump", or "let me answer these from here". Do NOT use to file a dump or write new items, which is `plan-intake`.
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
7
- # Claude intake answer
7
+ # Plan intake answer
8
8
 
9
9
  Put an intake folder's unread items as batched questions, then land each selection in the slot it answers.
10
10
 
@@ -14,11 +14,11 @@ Read `${CLAUDE_SKILL_DIR}/../../standards/intake.md` before writing anything. It
14
14
 
15
15
  ## Guards
16
16
 
17
- - If `canon intake list --json` reports no folder, stop: `❌ No intake to answer. Run /claude-intake to file a dump first.`
17
+ - If `canon intake list --json` reports no folder, stop: `❌ No intake to answer. Run /plan-intake to file a dump first.`
18
18
  - If the named folder has no unread item, stop: `❌ Every item in <slug> carries an answer. Nothing to ask.`
19
19
  - Never fill a slot the operator did not answer. An abandoned batch leaves every unreached item unread, which is what the empty slot already means.
20
20
  - Never infer an answer from the conversation having happened. A selection reaches the file through the verb or not at all.
21
- - Do not promote an item, edit a verdict, or write outside the answer slots. Promoting runs through `claude-tasks` after the answers land.
21
+ - Do not promote an item, edit a verdict, or write outside the answer slots. Promoting runs through `task-board` after the answers land.
22
22
 
23
23
  ## Step 1: pick the folder
24
24
 
@@ -1,9 +1,9 @@
1
1
  ---
2
- name: claude-address-review
2
+ name: review-address
3
3
  description: What the review return leg is for, the gaps it closes, and why the push lands before the reply
4
4
  ---
5
5
 
6
- # Claude address review requirement
6
+ # Review address requirement
7
7
 
8
8
  ## Gap
9
9
 
@@ -50,8 +50,8 @@ A declined finding fails on a third axis, which is where its reason ends up. A w
50
50
 
51
51
  ## Out of scope
52
52
 
53
- - Writing the review, which `claude-pr-review` owns. The split is by side of the channel: that one posts findings from an independent session and this one is the worker's return leg.
53
+ - Writing the review, which `review-pr` owns. The split is by side of the channel: that one posts findings from an independent session and this one is the worker's return leg.
54
54
  - Staging, committing, and pushing the follow-up, which `git-followup` owns under this skill's direction
55
- - Refreshing the `.claude/` docs the fixes made stale, which `claude-docs` owns
55
+ - Refreshing the `.claude/` docs the fixes made stale, which `docs-fold` owns
56
56
  - Re-reviewing its own fixes, which hands back to the orchestrator
57
- - Re-reading a rewritten branch, which `claude-pr-review` absorbs by testing whether the prior reviewed commit still reaches the head and paying for a full pass when it does not
57
+ - Re-reading a rewritten branch, which `review-pr` absorbs by testing whether the prior reviewed commit still reaches the head and paying for a full pass when it does not
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: claude-address-review
3
- description: Pulls review findings and CI status on the current branch's open PR, fixes each in the working tree, refreshes any stale `.claude/` docs, replies with a summary comment, and pushes a follow-up commit. The worker's return leg after `claude-pr-review`. Use when asked to "address the review", "fix the PR comments", "respond to review", or after an orchestrator posts findings. Do NOT use to write a review. That is `claude-pr-review`.
2
+ name: review-address
3
+ description: Pulls review findings and CI status on the current branch's open PR, fixes each in the working tree, refreshes any stale `.claude/` docs, replies with a summary comment, and pushes a follow-up commit. The worker's return leg after `review-pr`. Use when asked to "address the review", "fix the PR comments", "respond to review", or after an orchestrator posts findings. Do NOT use to write a review. That is `review-pr`.
4
4
  ---
5
5
 
6
- # Claude address review
6
+ # Review address
7
7
 
8
- The worker's half of the review channel. `claude-pr-review` posts findings to
8
+ The worker's half of the review channel. `review-pr` posts findings to
9
9
  the PR from an independent session. This skill consumes them: fix, reply, push.
10
10
 
11
11
  ## Guards
@@ -46,7 +46,7 @@ Do not push a red follow-up.
46
46
 
47
47
  ## Step 4: refresh stale docs
48
48
 
49
- The fixes may have changed or added behavior that `.claude/` context entries, docs, or wireframes describe. Refresh them with the `claude-docs` skill, which maps the changed files to the entries that reference them and rewrites the stale sections. Do not reimplement that mapping here. When a fix adds a new capability with no existing entry, `claude-docs` flags it rather than creating one.
49
+ The fixes may have changed or added behavior that `.claude/` context entries, docs, or wireframes describe. Refresh them with the `docs-fold` skill, which maps the changed files to the entries that reference them and rewrites the stale sections. Do not reimplement that mapping here. When a fix adds a new capability with no existing entry, `docs-fold` flags it rather than creating one.
50
50
 
51
51
  ## Step 5: rebase a stale branch
52
52
 
@@ -245,7 +245,7 @@ Do not merge. Hand back to the orchestrator for re-review.
245
245
 
246
246
  Not everything worth reaching the reviewing session surfaces inside the numbered flow above. A worker that settled a risk, filed a follow-up, or found something else worth reporting after Step 7 already closed the review posts it directly rather than waiting on a review pass that has nothing left to trigger it. Write the body the way Step 6 writes a reply: load `write-human` for voice, follow `${CLAUDE_SKILL_DIR}/../../standards/markdown.md` for the banned words, and run the `${CLAUDE_SKILL_DIR}/../../standards/publish.md` scan before posting with `canon labels scan --body-file .canon/tmp/address-review/reply-<number>.md`.
247
247
 
248
- Open with `## Post-review findings` rather than `## Review response`, since nothing on the thread is being answered. `claude-pr-review` states the full heading set this belongs to and routes it the same as a response: `claude-orchestrate`'s poll picks it up and sends the reviewing session back for a pass. Close the body with `🤖 Addressed by Claude Code` on its own line, matching the reply's footer.
248
+ Open with `## Post-review findings` rather than `## Review response`, since nothing on the thread is being answered. `review-pr` states the full heading set this belongs to and routes it the same as a response: `role-orchestrator`'s poll picks it up and sends the reviewing session back for a pass. Close the body with `🤖 Addressed by Claude Code` on its own line, matching the reply's footer.
249
249
 
250
250
  ```bash
251
251
  gh pr comment <number> --body-file .canon/tmp/address-review/reply-<number>.md
@@ -5,7 +5,7 @@ description: The stash-and-rebase sequence, the conflict resolution rules, and t
5
5
 
6
6
  # Rebase a stale branch
7
7
 
8
- Mechanics for Step 5 of `claude-address-review` once `git merge-tree` exits non-zero. A branch that still merges skips this file entirely, which is the ordinary run.
8
+ Mechanics for Step 5 of `review-address` once `git merge-tree` exits non-zero. A branch that still merges skips this file entirely, which is the ordinary run.
9
9
 
10
10
  ## The sequence
11
11
 
@@ -1,9 +1,9 @@
1
1
  ---
2
- name: claude-review
2
+ name: review-branch
3
3
  description: What local review is for, the gaps it closes, and why it reports without fixing
4
4
  ---
5
5
 
6
- # Claude review requirement
6
+ # Review branch requirement
7
7
 
8
8
  ## Gap
9
9
 
@@ -34,6 +34,6 @@ Without this skill, a branch ships on the confidence of the session that wrote i
34
34
 
35
35
  ## Out of scope
36
36
 
37
- - Reviewing an open pull request, which `claude-pr-review` owns. The split is by vantage: this one reviews local work for the session that wrote it and writes to disk.
37
+ - Reviewing an open pull request, which `review-pr` owns. The split is by vantage: this one reviews local work for the session that wrote it and writes to disk.
38
38
  - Deciding whether the findings block the ship. This skill grades and the caller gates.
39
- - Fixing anything it found, which `claude-address-review` owns once the work is on a pull request
39
+ - Fixing anything it found, which `review-address` owns once the work is on a pull request
@@ -1,9 +1,9 @@
1
1
  ---
2
- name: claude-review
2
+ name: review-branch
3
3
  description: Reviews all changes since main for bugs, edge cases, and logic flaws. Reads CLAUDE.md, REQUIREMENTS.md, and ARCHITECTURE.md for context, then applies a structured review to the full diff and outputs a findings report. Coding standards from `.claude/rules/` are auto-loaded by Claude Code. Use when asked to review changes, run a code review, or check the current branch. Do NOT auto-trigger on vague signals like "looks good" or "can you check this". Require an explicit review request or an autoship invocation.
4
4
  ---
5
5
 
6
- # Claude review
6
+ # Review branch
7
7
 
8
8
  ## Guards
9
9
 
@@ -114,7 +114,7 @@ If nothing is wrong, use: `✅ No findings.`
114
114
 
115
115
  Derive `<slug>` per `${CLAUDE_SKILL_DIR}/../../standards/slug.md`. Fall back to `latest` on an empty result.
116
116
 
117
- Write the full report directly to `.canon/review/branch/review-<slug>.md` at the main worktree root, not the current worktree. Resolve that root the way `claude-worktree` does. Create the directory if it does not exist. Always overwrite.
117
+ Write the full report directly to `.canon/review/branch/review-<slug>.md` at the main worktree root, not the current worktree. Resolve that root the way `session-worktree` does. Create the directory if it does not exist. Always overwrite.
118
118
 
119
119
  From a linked worktree the file-editing tools refuse that path, so the report goes out through `Bash`. Send the `mkdir -p` and the heredoc as two plain commands rather than joining them with `&&`, which is refused as compound.
120
120
 
@@ -122,7 +122,7 @@ If there are no findings, write `✅ No findings.` to the file with a timestamp.
122
122
 
123
123
  The `.canon/review/` directory is gitignored. Do not stage or commit the file.
124
124
 
125
- The report is disposable. It outlives the ship chain that reads it, and `claude-docs` sweeps it once the branch it names is gone, because the durable record of what a review found is the comment `claude-pr-review` posts on the pull request. A review run on a branch that never opens one leaves nothing behind once that branch is gone, so fold anything worth keeping into the pull request body or a task finding while the report is still on disk.
125
+ The report is disposable. It outlives the ship chain that reads it, and `docs-fold` sweeps it once the branch it names is gone, because the durable record of what a review found is the comment `review-pr` posts on the pull request. A review run on a branch that never opens one leaves nothing behind once that branch is gone, so fold anything worth keeping into the pull request body or a task finding while the report is still on disk.
126
126
 
127
127
  ### Chat output
128
128
 
@@ -1,9 +1,9 @@
1
1
  ---
2
- name: claude-pr-review
2
+ name: review-pr
3
3
  description: What the independent pull request review is for, the gaps it closes, and why it posts until nothing is open
4
4
  ---
5
5
 
6
- # Claude PR review requirement
6
+ # Review PR requirement
7
7
 
8
8
  ## Gap
9
9
 
@@ -30,7 +30,7 @@ A request written under `## For the reviewer` also reached no reader. The author
30
30
 
31
31
  - Merge. Review and post, and leave the gate to the human.
32
32
  - Publish a claim the skill did not check. A failed fetch and a rebase both strand the prior commit, and only one of them is a rebase.
33
- - Invent a heading beyond the two it posts and the response heading `claude-address-review` owns, or append a number GitHub already renders
33
+ - Invent a heading beyond the two it posts and the response heading `review-address` owns, or append a number GitHub already renders
34
34
  - Review local uncommitted changes
35
35
  - Lecture on process. The lenses land as findings, not as asides.
36
36
 
@@ -42,6 +42,6 @@ A request written under `## For the reviewer` also reached no reader. The author
42
42
 
43
43
  ## Out of scope
44
44
 
45
- - Fixing what it finds, which `claude-address-review` owns. The split is by side of the channel: this one posts findings from an independent session and that one consumes them.
46
- - Reviewing local uncommitted work, which `claude-review` owns. That one writes to disk for the session that wrote the code, and this one posts to a pull request it did not write.
45
+ - Fixing what it finds, which `review-address` owns. The split is by side of the channel: this one posts findings from an independent session and that one consumes them.
46
+ - Reviewing local uncommitted work, which `review-branch` owns. That one writes to disk for the session that wrote the code, and this one posts to a pull request it did not write.
47
47
  - Merging, which stays the human's decision