@erclx/canon 5.25.0 → 5.26.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 (123) hide show
  1. package/README.md +2 -1
  2. package/claude/.claude-plugin/plugin.json +1 -1
  3. package/claude/skills/canvas/SKILL.md +1 -1
  4. package/claude/skills/context-fold/REQUIREMENT.md +6 -2
  5. package/claude/skills/context-fold/SKILL.md +8 -6
  6. package/claude/skills/context-fold/references/anchor-sweep.md +2 -2
  7. package/claude/skills/design-taste/REQUIREMENT.md +1 -1
  8. package/claude/skills/design-taste/SKILL.md +4 -2
  9. package/claude/skills/design-taste/references/adopted.md +40 -0
  10. package/claude/skills/design-taste/references/kinds.md +1 -1
  11. package/claude/skills/design-taste/references/systems.md +1 -7
  12. package/claude/skills/design-taste/references/tells.md +2 -24
  13. package/claude/skills/docs-sync/REQUIREMENT.md +2 -1
  14. package/claude/skills/document-health/REQUIREMENT.md +2 -0
  15. package/claude/skills/document-health/SKILL.md +21 -0
  16. package/claude/skills/document-health/references/axes.md +12 -0
  17. package/claude/skills/draft-and-pick/SKILL.md +1 -1
  18. package/claude/skills/draft-identity/SKILL.md +1 -1
  19. package/claude/skills/draft-screencast/SKILL.md +9 -7
  20. package/claude/skills/draft-slides/REQUIREMENT.md +17 -12
  21. package/claude/skills/draft-slides/SKILL.md +31 -20
  22. package/claude/skills/git-issue/references/issue.md +10 -0
  23. package/claude/skills/git-pr/references/evidence.md +8 -0
  24. package/claude/skills/git-pr/references/labels.md +12 -0
  25. package/claude/skills/git-split/SKILL.md +19 -8
  26. package/claude/skills/markdown-propose/references/format.md +9 -0
  27. package/claude/skills/memory-review/references/later-phases.md +7 -0
  28. package/claude/skills/review-ui/references/post.md +4 -2
  29. package/claude/skills/role-orchestrator/references/orchestrator-cloud-launch.md +8 -0
  30. package/claude/skills/role-orchestrator/references/orchestrator-dispatch.md +13 -0
  31. package/claude/skills/search-craft/REQUIREMENT.md +1 -1
  32. package/claude/skills/search-craft/SKILL.md +3 -1
  33. package/claude/skills/search-craft/references/adopted.md +30 -0
  34. package/claude/skills/target-setup/references/detect.md +8 -0
  35. package/claude/skills/target-setup/references/indexes.md +13 -0
  36. package/claude/skills/target-setup/references/verify.md +8 -0
  37. package/claude/skills/test-first/SKILL.md +2 -0
  38. package/claude/skills/test-first/references/adopted.md +36 -0
  39. package/claude/skills/write-human/SKILL.md +1 -1
  40. package/claude/skills/write-human/references/machine-tells.md +13 -0
  41. package/docs/agents/canvas.md +3 -1
  42. package/docs/agents/capture.md +1 -1
  43. package/docs/agents/commands.md +3 -3
  44. package/docs/agents/index.md +2 -2
  45. package/docs/agents/records-stale.md +22 -9
  46. package/docs/agents/records.md +1 -1
  47. package/docs/agents/sandbox.md +1 -1
  48. package/docs/agents/skills-audit.md +10 -3
  49. package/docs/agents/slides.md +15 -3
  50. package/docs/workflow/ai-workflow.md +1 -1
  51. package/docs/workflow/index.md +1 -0
  52. package/docs/workflow/parallel-features.md +1 -1
  53. package/docs/workflow/skill-map-on-request.md +42 -0
  54. package/docs/workflow/skill-map.md +1 -34
  55. package/package.json +1 -1
  56. package/scripts/lib/sandbox-dispatch.sh +1 -1
  57. package/scripts/lib/sandbox-git.sh +1 -9
  58. package/scripts/lib/sandbox-path.sh +1 -1
  59. package/scripts/sandbox-hook.sh +99 -0
  60. package/src/canvas/capture.ts +1 -9
  61. package/src/canvas/client/inspector/color-field.tsx +368 -0
  62. package/src/canvas/client/inspector/fields.css +163 -22
  63. package/src/canvas/client/inspector/values.ts +123 -0
  64. package/src/canvas/client/inspector.tsx +46 -69
  65. package/src/capture/render.ts +45 -7
  66. package/src/capture/sources.ts +43 -0
  67. package/src/census/count.ts +1 -1
  68. package/src/claude/cases/workflow.ts +5 -0
  69. package/src/claude/seeds.ts +1 -1
  70. package/src/claude/skills-audit.ts +68 -14
  71. package/src/client-commands.ts +1 -1
  72. package/src/commands/claude.ts +27 -2
  73. package/src/commands/feedback.ts +3 -3
  74. package/src/commands/records.ts +88 -6
  75. package/src/commands/sandbox.ts +50 -10
  76. package/src/commands/slides.ts +31 -77
  77. package/src/context/audit.ts +1 -1
  78. package/src/design/tokens.ts +2 -18
  79. package/src/docs/read.ts +1 -1
  80. package/src/{github.ts → feedback/github.ts} +1 -1
  81. package/src/gate/measures.ts +6 -4
  82. package/src/gov/citations.ts +1 -1
  83. package/src/gov/payload.ts +1 -1
  84. package/src/gov/superseded.ts +2 -2
  85. package/src/markdown/ceiling.ts +1 -1
  86. package/src/record-root.ts +1 -0
  87. package/src/records/backup.ts +1 -0
  88. package/src/records/push-guard.ts +1 -1
  89. package/src/records/stale-canonical.ts +146 -0
  90. package/src/records/stale.ts +1 -1
  91. package/src/sandbox/hooks.ts +128 -0
  92. package/src/sandbox/provision.ts +596 -0
  93. package/src/sandbox/tree.ts +103 -4
  94. package/src/secrets/marker.ts +2 -2
  95. package/src/secrets/scan.ts +1 -1
  96. package/src/shipped/references.ts +2 -2
  97. package/src/slides/convert/export.ts +2 -16
  98. package/src/slides/decks.ts +110 -0
  99. package/src/standards/read.ts +1 -1
  100. package/src/sync/seeds-report.ts +1 -1
  101. package/src/tasks/answers.ts +1 -1
  102. package/src/tasks/archive.ts +1 -1
  103. package/src/teach/nav.ts +1 -1
  104. package/src/tooling/inject.ts +1 -1
  105. package/src/web/readme-citations.ts +1 -1
  106. package/standards/architecture.md +1 -0
  107. package/standards/canvas.md +1 -1
  108. package/standards/requirements.md +2 -0
  109. package/standards/skill-practice.md +2 -1
  110. package/standards/skill.md +1 -0
  111. package/scripts/manage-sandbox.sh +0 -472
  112. package/src/slides/layouts.ts +0 -478
  113. package/src/slides/parse.ts +0 -84
  114. package/src/slides/render.ts +0 -110
  115. package/src/slides/styles.ts +0 -96
  116. /package/claude/skills/write-human/references/{source-material.md → adopted.md} +0 -0
  117. /package/src/{commands/feedback-format.ts → feedback/body.ts} +0 -0
  118. /package/src/{github-format.ts → feedback/github-format.ts} +0 -0
  119. /package/src/{frontmatter.ts → markdown/frontmatter.ts} +0 -0
  120. /package/src/{binary.ts → sweep/binary.ts} +0 -0
  121. /package/src/{exempt-marker.ts → sweep/exempt-marker.ts} +0 -0
  122. /package/src/{paths.ts → tasks/paths.ts} +0 -0
  123. /package/src/{seed-marker.ts → tooling/seed-marker.ts} +0 -0
@@ -1,96 +0,0 @@
1
- import { bareHex, colorValue, TOKENS } from '@/design/tokens'
2
-
3
- export type Variant = 'light' | 'dark'
4
-
5
- export interface Theme {
6
- background: string
7
- surface: string
8
- ink: string
9
- muted: string
10
- accent: string
11
- }
12
-
13
- /**
14
- * Which role in `@/design/tokens` fills each slot of a slide theme. The names
15
- * differ because a deck names a slot by what sits in it and the record names a
16
- * role by what it is for, and mapping the two here is the whole of the adapter.
17
- */
18
- const ROLES: Record<keyof Theme, readonly [dark: string, light: string]> = {
19
- background: ['background', 'light-background'],
20
- surface: ['surface', 'light-surface'],
21
- ink: ['text', 'light-text'],
22
- muted: ['text-secondary', 'light-muted'],
23
- accent: ['accent', 'light-accent'],
24
- }
25
-
26
- /**
27
- * `PptxGenJS` takes one installed family name where the record declares a
28
- * stack, and a `.pptx` cannot embed the face. The first family is taken with
29
- * its ` Variable` suffix dropped, since that suffix names the CSS package and
30
- * not the installed family, and PowerPoint picks its own substitute when the
31
- * face is missing.
32
- */
33
- function familyName(role: string): string {
34
- const token = TOKENS.typography.find((entry) => entry.role === role)
35
- const family = token?.family
36
- .split(',')[0]
37
- ?.trim()
38
- .replace(/ Variable$/, '')
39
- if (!family) {
40
- throw new Error(`The design record declares no ${role} type role`)
41
- }
42
-
43
- return family
44
- }
45
-
46
- export const FONTS = {
47
- heading: familyName('display'),
48
- body: familyName('body'),
49
- } as const
50
-
51
- /**
52
- * Deck-owned point sizes. The record's `t0` to `t6` steps are screen pixels,
53
- * which read as points on a 13.33 inch slide would shrink the cover to 38 and
54
- * the body to 11, so only the face and the colors come from the record.
55
- */
56
- export const TYPE = {
57
- cover: 44,
58
- section: 40,
59
- title: 30,
60
- body: 16,
61
- stat: 54,
62
- quote: 30,
63
- caption: 11,
64
- } as const
65
-
66
- /**
67
- * Builds a theme from the design source in the form this renderer can take.
68
- *
69
- * `src/slides/render.ts` hands color to `PptxGenJS` as `{ color: theme.background }`
70
- * and PowerPoint has no concept of a custom property, so the shared thing is the
71
- * value and bare hex is the per-consumer form. Every CSS surface takes the same
72
- * values through `@/design/css` instead.
73
- *
74
- * A role the record does not declare throws rather than rendering a slide in a
75
- * default nobody chose, since a missing color reaches a reader as a deck that
76
- * looks wrong with nothing saying why.
77
- */
78
- export function buildTheme(variant: Variant): Theme {
79
- const pick = (slot: keyof Theme): string => {
80
- const role = ROLES[slot][variant === 'dark' ? 0 : 1]
81
- const value = colorValue(role)
82
- if (value === undefined) {
83
- throw new Error(`The design record declares no ${role} role`)
84
- }
85
-
86
- return bareHex(value)
87
- }
88
-
89
- return {
90
- background: pick('background'),
91
- surface: pick('surface'),
92
- ink: pick('ink'),
93
- muted: pick('muted'),
94
- accent: pick('accent'),
95
- }
96
- }
File without changes
File without changes
File without changes
File without changes