@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.
- package/README.md +2 -1
- package/claude/.claude-plugin/plugin.json +1 -1
- package/claude/skills/canvas/SKILL.md +1 -1
- package/claude/skills/context-fold/REQUIREMENT.md +6 -2
- package/claude/skills/context-fold/SKILL.md +8 -6
- package/claude/skills/context-fold/references/anchor-sweep.md +2 -2
- package/claude/skills/design-taste/REQUIREMENT.md +1 -1
- package/claude/skills/design-taste/SKILL.md +4 -2
- package/claude/skills/design-taste/references/adopted.md +40 -0
- package/claude/skills/design-taste/references/kinds.md +1 -1
- package/claude/skills/design-taste/references/systems.md +1 -7
- package/claude/skills/design-taste/references/tells.md +2 -24
- package/claude/skills/docs-sync/REQUIREMENT.md +2 -1
- package/claude/skills/document-health/REQUIREMENT.md +2 -0
- package/claude/skills/document-health/SKILL.md +21 -0
- package/claude/skills/document-health/references/axes.md +12 -0
- package/claude/skills/draft-and-pick/SKILL.md +1 -1
- package/claude/skills/draft-identity/SKILL.md +1 -1
- package/claude/skills/draft-screencast/SKILL.md +9 -7
- package/claude/skills/draft-slides/REQUIREMENT.md +17 -12
- package/claude/skills/draft-slides/SKILL.md +31 -20
- package/claude/skills/git-issue/references/issue.md +10 -0
- package/claude/skills/git-pr/references/evidence.md +8 -0
- package/claude/skills/git-pr/references/labels.md +12 -0
- package/claude/skills/git-split/SKILL.md +19 -8
- package/claude/skills/markdown-propose/references/format.md +9 -0
- package/claude/skills/memory-review/references/later-phases.md +7 -0
- package/claude/skills/review-ui/references/post.md +4 -2
- package/claude/skills/role-orchestrator/references/orchestrator-cloud-launch.md +8 -0
- package/claude/skills/role-orchestrator/references/orchestrator-dispatch.md +13 -0
- package/claude/skills/search-craft/REQUIREMENT.md +1 -1
- package/claude/skills/search-craft/SKILL.md +3 -1
- package/claude/skills/search-craft/references/adopted.md +30 -0
- package/claude/skills/target-setup/references/detect.md +8 -0
- package/claude/skills/target-setup/references/indexes.md +13 -0
- package/claude/skills/target-setup/references/verify.md +8 -0
- package/claude/skills/test-first/SKILL.md +2 -0
- package/claude/skills/test-first/references/adopted.md +36 -0
- package/claude/skills/write-human/SKILL.md +1 -1
- package/claude/skills/write-human/references/machine-tells.md +13 -0
- package/docs/agents/canvas.md +3 -1
- package/docs/agents/capture.md +1 -1
- package/docs/agents/commands.md +3 -3
- package/docs/agents/index.md +2 -2
- package/docs/agents/records-stale.md +22 -9
- package/docs/agents/records.md +1 -1
- package/docs/agents/sandbox.md +1 -1
- package/docs/agents/skills-audit.md +10 -3
- package/docs/agents/slides.md +15 -3
- package/docs/workflow/ai-workflow.md +1 -1
- package/docs/workflow/index.md +1 -0
- package/docs/workflow/parallel-features.md +1 -1
- package/docs/workflow/skill-map-on-request.md +42 -0
- package/docs/workflow/skill-map.md +1 -34
- package/package.json +1 -1
- package/scripts/lib/sandbox-dispatch.sh +1 -1
- package/scripts/lib/sandbox-git.sh +1 -9
- package/scripts/lib/sandbox-path.sh +1 -1
- package/scripts/sandbox-hook.sh +99 -0
- package/src/canvas/capture.ts +1 -9
- package/src/canvas/client/inspector/color-field.tsx +368 -0
- package/src/canvas/client/inspector/fields.css +163 -22
- package/src/canvas/client/inspector/values.ts +123 -0
- package/src/canvas/client/inspector.tsx +46 -69
- package/src/capture/render.ts +45 -7
- package/src/capture/sources.ts +43 -0
- package/src/census/count.ts +1 -1
- package/src/claude/cases/workflow.ts +5 -0
- package/src/claude/seeds.ts +1 -1
- package/src/claude/skills-audit.ts +68 -14
- package/src/client-commands.ts +1 -1
- package/src/commands/claude.ts +27 -2
- package/src/commands/feedback.ts +3 -3
- package/src/commands/records.ts +88 -6
- package/src/commands/sandbox.ts +50 -10
- package/src/commands/slides.ts +31 -77
- package/src/context/audit.ts +1 -1
- package/src/design/tokens.ts +2 -18
- package/src/docs/read.ts +1 -1
- package/src/{github.ts → feedback/github.ts} +1 -1
- package/src/gate/measures.ts +6 -4
- package/src/gov/citations.ts +1 -1
- package/src/gov/payload.ts +1 -1
- package/src/gov/superseded.ts +2 -2
- package/src/markdown/ceiling.ts +1 -1
- package/src/record-root.ts +1 -0
- package/src/records/backup.ts +1 -0
- package/src/records/push-guard.ts +1 -1
- package/src/records/stale-canonical.ts +146 -0
- package/src/records/stale.ts +1 -1
- package/src/sandbox/hooks.ts +128 -0
- package/src/sandbox/provision.ts +596 -0
- package/src/sandbox/tree.ts +103 -4
- package/src/secrets/marker.ts +2 -2
- package/src/secrets/scan.ts +1 -1
- package/src/shipped/references.ts +2 -2
- package/src/slides/convert/export.ts +2 -16
- package/src/slides/decks.ts +110 -0
- package/src/standards/read.ts +1 -1
- package/src/sync/seeds-report.ts +1 -1
- package/src/tasks/answers.ts +1 -1
- package/src/tasks/archive.ts +1 -1
- package/src/teach/nav.ts +1 -1
- package/src/tooling/inject.ts +1 -1
- package/src/web/readme-citations.ts +1 -1
- package/standards/architecture.md +1 -0
- package/standards/canvas.md +1 -1
- package/standards/requirements.md +2 -0
- package/standards/skill-practice.md +2 -1
- package/standards/skill.md +1 -0
- package/scripts/manage-sandbox.sh +0 -472
- package/src/slides/layouts.ts +0 -478
- package/src/slides/parse.ts +0 -84
- package/src/slides/render.ts +0 -110
- package/src/slides/styles.ts +0 -96
- /package/claude/skills/write-human/references/{source-material.md → adopted.md} +0 -0
- /package/src/{commands/feedback-format.ts → feedback/body.ts} +0 -0
- /package/src/{github-format.ts → feedback/github-format.ts} +0 -0
- /package/src/{frontmatter.ts → markdown/frontmatter.ts} +0 -0
- /package/src/{binary.ts → sweep/binary.ts} +0 -0
- /package/src/{exempt-marker.ts → sweep/exempt-marker.ts} +0 -0
- /package/src/{paths.ts → tasks/paths.ts} +0 -0
- /package/src/{seed-marker.ts → tooling/seed-marker.ts} +0 -0
package/src/slides/styles.ts
DELETED
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|