@erclx/canon 5.52.0 → 5.53.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 (127) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +1 -4
  3. package/claude/.claude-plugin/plugin.json +1 -1
  4. package/claude/skills/canon-cli/SKILL.md +0 -3
  5. package/claude/skills/context-fold/REQUIREMENT.md +0 -1
  6. package/claude/skills/design-taste/references/kinds.md +0 -1
  7. package/claude/skills/draw-figure/REQUIREMENT.md +2 -3
  8. package/claude/skills/draw-figure/SKILL.md +4 -5
  9. package/claude/skills/draw-figure/references/figures.md +0 -1
  10. package/claude/skills/draw-figure/references/hand-drawn.md +1 -1
  11. package/claude/skills/pick-by-eye/REQUIREMENT.md +0 -1
  12. package/claude/skills/pick-by-eye/SKILL.md +1 -1
  13. package/claude/skills/teach-craft/REQUIREMENT.md +30 -0
  14. package/claude/skills/teach-craft/SKILL.md +39 -0
  15. package/claude/skills/teach-craft/references/lesson-craft.md +52 -0
  16. package/claude/skills/{teach-workspace → teach-craft}/references/pedagogy.md +12 -4
  17. package/docs/agents/audits.md +0 -1
  18. package/docs/target/migrations.md +10 -1
  19. package/docs/workflow/parallel-features.md +1 -1
  20. package/docs/workflow/skill-map-on-request.md +10 -22
  21. package/docs/workflow/skill-map.md +12 -14
  22. package/package.json +1 -4
  23. package/scripts/core/regen-web-previews.ts +2 -67
  24. package/src/audits/catalog.ts +0 -1
  25. package/src/browser/engine.ts +3 -6
  26. package/src/capture/render.ts +1 -1
  27. package/src/claude/cases/authoring.ts +0 -12
  28. package/src/claude/cases/misc.ts +0 -17
  29. package/src/claude/cases/workflow.ts +2 -38
  30. package/src/claude/skills-audit.ts +0 -1
  31. package/src/cli/help.ts +0 -7
  32. package/src/cli.ts +0 -6
  33. package/src/commands/records.ts +0 -1
  34. package/src/commands/serve.ts +2 -2
  35. package/src/design/components.ts +8 -1514
  36. package/src/design/css.ts +5 -6
  37. package/src/design/fonts.ts +3 -5
  38. package/src/driver/drive.ts +3 -4
  39. package/src/driver/steps.ts +2 -5
  40. package/src/inventory/walk.ts +1 -1
  41. package/src/markdown/scope.ts +4 -31
  42. package/src/records/validate.ts +4 -176
  43. package/src/sandbox/equivalence.ts +0 -5
  44. package/claude/skills/draft-and-pick/REQUIREMENT.md +0 -26
  45. package/claude/skills/draft-and-pick/SKILL.md +0 -11
  46. package/claude/skills/draft-doc/REQUIREMENT.md +0 -26
  47. package/claude/skills/draft-doc/SKILL.md +0 -11
  48. package/claude/skills/draft-figure/REQUIREMENT.md +0 -26
  49. package/claude/skills/draft-figure/SKILL.md +0 -11
  50. package/claude/skills/draft-identity/REQUIREMENT.md +0 -26
  51. package/claude/skills/draft-identity/SKILL.md +0 -11
  52. package/claude/skills/draft-ready/REQUIREMENT.md +0 -26
  53. package/claude/skills/draft-ready/SKILL.md +0 -11
  54. package/claude/skills/draft-screencast/REQUIREMENT.md +0 -26
  55. package/claude/skills/draft-screencast/SKILL.md +0 -11
  56. package/claude/skills/draft-slides/REQUIREMENT.md +0 -26
  57. package/claude/skills/draft-slides/SKILL.md +0 -11
  58. package/claude/skills/make-deck/REQUIREMENT.md +0 -36
  59. package/claude/skills/make-deck/SKILL.md +0 -80
  60. package/claude/skills/make-deck/references/deck.md +0 -183
  61. package/claude/skills/read-frames/REQUIREMENT.md +0 -30
  62. package/claude/skills/read-frames/SKILL.md +0 -55
  63. package/claude/skills/record-screencast/REQUIREMENT.md +0 -35
  64. package/claude/skills/record-screencast/SKILL.md +0 -99
  65. package/claude/skills/script-screencast/REQUIREMENT.md +0 -34
  66. package/claude/skills/script-screencast/SKILL.md +0 -70
  67. package/claude/skills/script-screencast/references/beats-template.md +0 -119
  68. package/claude/skills/teach-workspace/REQUIREMENT.md +0 -34
  69. package/claude/skills/teach-workspace/SKILL.md +0 -196
  70. package/claude/skills/teach-workspace/references/glossary.md +0 -90
  71. package/claude/skills/teach-workspace/references/lesson-build.md +0 -106
  72. package/claude/skills/teach-workspace/references/lesson-craft.md +0 -135
  73. package/claude/skills/teach-workspace/references/promotion-fold.md +0 -35
  74. package/claude/skills/teach-workspace/references/promotion.md +0 -116
  75. package/claude/skills/teach-workspace/references/revisit.md +0 -28
  76. package/claude/skills/teach-workspace/references/teach.md +0 -211
  77. package/claude/skills/video-craft/REQUIREMENT.md +0 -35
  78. package/claude/skills/video-craft/SKILL.md +0 -96
  79. package/claude/skills/video-craft/references/adopted.md +0 -110
  80. package/src/commands/demo.ts +0 -542
  81. package/src/commands/slides.ts +0 -184
  82. package/src/commands/teach.ts +0 -1401
  83. package/src/demo/beats.ts +0 -135
  84. package/src/demo/compile.ts +0 -350
  85. package/src/demo/container.ts +0 -219
  86. package/src/demo/cursors.ts +0 -55
  87. package/src/demo/drive.ts +0 -442
  88. package/src/demo/pointer.ts +0 -178
  89. package/src/demo/theme.ts +0 -112
  90. package/src/demo/timeline.ts +0 -64
  91. package/src/slides/convert/chart.ts +0 -165
  92. package/src/slides/convert/deck.ts +0 -244
  93. package/src/slides/convert/export.ts +0 -567
  94. package/src/slides/convert/master.ts +0 -198
  95. package/src/slides/convert/shapes.ts +0 -804
  96. package/src/slides/convert/svg.ts +0 -38
  97. package/src/slides/convert/walk.ts +0 -671
  98. package/src/slides/decks.ts +0 -110
  99. package/src/slides/open.ts +0 -18
  100. package/src/slides/package/fonts.ts +0 -301
  101. package/src/slides/package/motion.ts +0 -316
  102. package/src/slides/package/test-face.ts +0 -113
  103. package/src/teach/browser/compile.ts +0 -44
  104. package/src/teach/browser/dismiss.ts +0 -76
  105. package/src/teach/browser/focus-line.ts +0 -19
  106. package/src/teach/browser/glossary-filter.ts +0 -44
  107. package/src/teach/browser/head.ts +0 -30
  108. package/src/teach/browser/quiz.ts +0 -19
  109. package/src/teach/browser/reload.ts +0 -9
  110. package/src/teach/browser/sidebar.ts +0 -233
  111. package/src/teach/browser/theme.ts +0 -18
  112. package/src/teach/components/code.tsx +0 -24
  113. package/src/teach/components/heading.tsx +0 -11
  114. package/src/teach/components/list.tsx +0 -17
  115. package/src/teach/components/paragraph.tsx +0 -29
  116. package/src/teach/components/refs.tsx +0 -28
  117. package/src/teach/cross-references.ts +0 -78
  118. package/src/teach/fonts.ts +0 -16
  119. package/src/teach/highlight.ts +0 -71
  120. package/src/teach/html/jsx-dev-runtime.ts +0 -13
  121. package/src/teach/html/jsx-runtime.ts +0 -113
  122. package/src/teach/html/raw.ts +0 -28
  123. package/src/teach/lesson.ts +0 -178
  124. package/src/teach/nav.ts +0 -1337
  125. package/src/teach/render.ts +0 -240
  126. package/src/teach/workspace.ts +0 -1164
  127. package/src/teach/write-if-changed.ts +0 -17
@@ -24,23 +24,11 @@ export const AUTHORING_CASES: readonly SkillCase[] = [
24
24
  'Write a brand-new docs page for the capture command, nothing under docs/ covers it yet.',
25
25
  expect: 'write-doc',
26
26
  },
27
- {
28
- prompt:
29
- 'I typed draft-doc and it said the doc skill was renamed to write-doc.', // canon-keep-retired
30
- // The pointer answers under its old name on purpose. canon-keep-retired
31
- expect: 'draft-doc',
32
- },
33
27
  {
34
28
  prompt:
35
29
  'I already wrote the finished skill files, package them as a ready folder with a plan and a task for a worker to copy.',
36
30
  expect: 'plan-ready',
37
31
  },
38
- {
39
- prompt:
40
- 'I typed draft-ready and it said the ready skill was renamed to plan-ready.', // canon-keep-retired
41
- // The pointer answers under its old name on purpose. canon-keep-retired
42
- expect: 'draft-ready',
43
- },
44
32
  {
45
33
  prompt: 'This project has no README.md at all, write one from scratch.',
46
34
  expect: 'write-doc',
@@ -12,12 +12,6 @@ export const MISC_CASES: readonly SkillCase[] = [
12
12
  'Show me a few different treatments for this callout so I can pick one by looking.',
13
13
  expect: 'pick-by-eye',
14
14
  },
15
- {
16
- prompt:
17
- 'I typed draft-and-pick and it said the pick skill was renamed to pick-by-eye.', // canon-keep-retired
18
- // The pointer answers under its old name on purpose. canon-keep-retired
19
- expect: 'draft-and-pick',
20
- },
21
15
  {
22
16
  prompt:
23
17
  'Which layer of this landing page should I settle first, and what has to stay constant across it?',
@@ -28,12 +22,6 @@ export const MISC_CASES: readonly SkillCase[] = [
28
22
  'This project has no logo yet. Draft one and give me a social card to go with it.',
29
23
  expect: 'design-identity',
30
24
  },
31
- {
32
- prompt:
33
- 'I typed draft-identity and it said the identity skill was renamed to design-identity.', // canon-keep-retired
34
- // The pointer answers under its old name on purpose. canon-keep-retired
35
- expect: 'draft-identity',
36
- },
37
25
  {
38
26
  prompt:
39
27
  'Draw the signup screen as a frame on the canvas, then restyle the element I just selected there.',
@@ -97,11 +85,6 @@ export const MISC_CASES: readonly SkillCase[] = [
97
85
  'Find me the strongest evidence on whether rent control reduces housing supply. Where should I look?',
98
86
  expect: 'search-craft',
99
87
  },
100
- {
101
- prompt:
102
- 'The composed demo video looks generic and the zoom drags. What should the captions say, and how fast should the push-in be?',
103
- expect: 'video-craft',
104
- },
105
88
  {
106
89
  prompt:
107
90
  "I've got the plan approved and it touches the parser, the command, and the docs. How should I build it so I don't end up with one giant diff?",
@@ -24,12 +24,6 @@ export const WORKFLOW_CASES: readonly SkillCase[] = [
24
24
  prompt: 'Draw me a diagram of how the pieces of this system connect.',
25
25
  expect: 'draw-figure',
26
26
  },
27
- {
28
- prompt:
29
- 'I typed draft-figure and it said the figure skill was renamed to draw-figure.', // canon-keep-retired
30
- // The pointer answers under its old name on purpose. canon-keep-retired
31
- expect: 'draft-figure',
32
- },
33
27
  {
34
28
  prompt:
35
29
  'This onboarding doc needs a hand-drawn picture of the signup-to-active path, sketch it in and make sure it actually renders correctly.',
@@ -45,11 +39,6 @@ export const WORKFLOW_CASES: readonly SkillCase[] = [
45
39
  'Sketch out a plan for adding this new capability before we touch any code.',
46
40
  expect: 'plan-feature',
47
41
  },
48
- {
49
- prompt:
50
- 'The video just finished recording. Read it back and tell me what each part shows.',
51
- expect: 'read-frames',
52
- },
53
42
  {
54
43
  prompt:
55
44
  'We need to measure this properly before committing to an approach.',
@@ -92,11 +81,6 @@ export const WORKFLOW_CASES: readonly SkillCase[] = [
92
81
  'I pushed another commit to the open PR. Update the screenshot comparison on it so the reviewer sees the current head.',
93
82
  expect: 'pr-evidence',
94
83
  },
95
- {
96
- prompt:
97
- 'The screencast draft is finished. Turn it into an actual video now.',
98
- expect: 'record-screencast',
99
- },
100
84
  {
101
85
  prompt:
102
86
  'What should a review of a change look for beyond bugs, and how much evidence does a finding need?',
@@ -112,26 +96,6 @@ export const WORKFLOW_CASES: readonly SkillCase[] = [
112
96
  'Our backlog only ever grows, measure each row and suggest which to decline.',
113
97
  expect: 'backlog-triage',
114
98
  },
115
- {
116
- prompt: 'Draft me a script with beats for a screencast recording.',
117
- expect: 'script-screencast',
118
- },
119
- {
120
- prompt:
121
- 'I typed draft-screencast and it said the screencast skill was renamed to script-screencast.', // canon-keep-retired
122
- // The pointer answers under its old name on purpose. canon-keep-retired
123
- expect: 'draft-screencast',
124
- },
125
- {
126
- prompt: 'Turn this topic into a slide deck I can render.',
127
- expect: 'make-deck',
128
- },
129
- {
130
- prompt:
131
- 'I typed draft-slides and it said the slides skill was renamed to make-deck.', // canon-keep-retired
132
- // The pointer answers under its old name on purpose. canon-keep-retired
133
- expect: 'draft-slides',
134
- },
135
99
  // Rot across documents nobody changed is what this reads, rather than a
136
100
  // stated rule broken on a given line. It is also not `target-check`, which
137
101
  // asks whether a document exists and holds its sections rather than whether
@@ -168,8 +132,8 @@ export const WORKFLOW_CASES: readonly SkillCase[] = [
168
132
  expect: 'task-complete',
169
133
  },
170
134
  {
171
- prompt: 'Open a learning workspace so I can study this topic properly.',
172
- expect: 'teach-workspace',
135
+ prompt: 'Quiz me on what we covered about regular expressions yesterday.',
136
+ expect: 'teach-craft',
173
137
  },
174
138
  {
175
139
  prompt:
@@ -55,7 +55,6 @@ export const PRACTICE_SKILLS: readonly string[] = [
55
55
  join(SHIPPED_CORPUS, 'build-in-slices'),
56
56
  join(SHIPPED_CORPUS, 'deprecation-migration'),
57
57
  join(SHIPPED_CORPUS, 'search-craft'),
58
- join(SHIPPED_CORPUS, 'video-craft'),
59
58
  ]
60
59
 
61
60
  /**
package/src/cli/help.ts CHANGED
@@ -38,14 +38,11 @@ export const COMMAND_GROUPS: { title: string; rows: CommandRow[] }[] = [
38
38
  title: 'Author and render',
39
39
  rows: [
40
40
  ['design [cmd]', 'Design system'],
41
- ['slides [cmd]', 'Slide decks'],
42
41
  ['capture [source]', 'Render HTML capture sources to PNG'],
43
42
  ['serve [dir]', 'Serve a directory on localhost, print the link'],
44
- ['demo [cmd]', 'Record a running app'],
45
43
  ['inventory [subj]', 'Report one computed property across every route'],
46
44
  ['drive <url> <run>', 'Walk a page through interactions, measure each'],
47
45
  ['transcripts <url>', 'Fetch a YouTube transcript with frontmatter'],
48
- ['teach [cmd]', 'Learning workspaces'],
49
46
  ['canvas [cmd]', 'Local canvas of pages and frames'],
50
47
  ],
51
48
  },
@@ -103,10 +100,7 @@ const EXAMPLES = [
103
100
  'canon docs agents',
104
101
  'canon design render',
105
102
  'canon canvas list --json',
106
- 'canon slides render',
107
- 'canon slides list --json',
108
103
  'canon capture assets/captures/install.html --selector .window --out assets/frames',
109
- 'canon serve .canon/teach',
110
104
  'canon inventory focus --json',
111
105
  'canon drive http://localhost:4173 run.json --json',
112
106
  'pbpaste | canon feedback',
@@ -114,7 +108,6 @@ const EXAMPLES = [
114
108
  'canon tasks --help --all',
115
109
  'canon tasks archive --pull-request 673 --json',
116
110
  'canon intake list toolkit-overview --unread --json',
117
- 'canon teach list --json',
118
111
  'canon comments scan src --json',
119
112
  'canon context audit --json',
120
113
  'canon markdown audit .claude/rules --json',
package/src/cli.ts CHANGED
@@ -10,17 +10,14 @@ import { register as claude } from '@/commands/claude'
10
10
  import { register as indexes } from '@/commands/indexes'
11
11
  import { register as docs } from '@/commands/docs'
12
12
  import { register as design } from '@/commands/design'
13
- import { register as slides } from '@/commands/slides'
14
13
  import { register as capture } from '@/commands/capture'
15
14
  import { register as serve } from '@/commands/serve'
16
- import { register as demo } from '@/commands/demo'
17
15
  import { register as inventory } from '@/commands/inventory'
18
16
  import { register as driver } from '@/commands/driver'
19
17
  import { register as feedback } from '@/commands/feedback'
20
18
  import { register as transcripts } from '@/commands/transcripts'
21
19
  import { register as tasks } from '@/commands/tasks'
22
20
  import { register as intake } from '@/commands/intake'
23
- import { register as teach } from '@/commands/teach'
24
21
  import { register as canvas } from '@/commands/canvas'
25
22
  import { register as comments } from '@/commands/comments'
26
23
  import { register as context } from '@/commands/context'
@@ -71,17 +68,14 @@ claude(program)
71
68
  indexes(program)
72
69
  docs(program)
73
70
  design(program)
74
- slides(program)
75
71
  capture(program)
76
72
  serve(program)
77
- demo(program)
78
73
  inventory(program)
79
74
  driver(program)
80
75
  feedback(program)
81
76
  transcripts(program)
82
77
  tasks(program)
83
78
  intake(program)
84
- teach(program)
85
79
  canvas(program)
86
80
  comments(program)
87
81
  context(program)
@@ -127,7 +127,6 @@ export function register(program: Command): void {
127
127
  'Examples:',
128
128
  ' canon records validate plans',
129
129
  ' canon records validate plans feature-records-by-heading',
130
- ' canon records validate teach',
131
130
  ' canon records validate intake --json',
132
131
  '',
133
132
  ].join('\n'),
@@ -40,8 +40,8 @@ export function register(program: Command): void {
40
40
  'starts it in the background and reads the record off stdout.',
41
41
  '',
42
42
  'Examples:',
43
- ' canon serve .canon/teach',
44
- ' canon serve .canon/teach --entry 03-fde-system-design/index.html',
43
+ ' canon serve site',
44
+ ' canon serve site --entry guide/index.html',
45
45
  ' canon serve dist --port 4000 --json',
46
46
  ' canon serve .canon/groundwork --index',
47
47
  '',