@erclx/canon 5.53.0 → 5.55.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/CHANGELOG.md +18 -0
- package/README.md +10 -9
- package/claude/.claude-plugin/plugin.json +1 -1
- package/claude/skills/canon-cli/SKILL.md +5 -5
- package/claude/skills/create-skill/SKILL.md +1 -1
- package/claude/skills/design-identity/REQUIREMENT.md +2 -2
- package/claude/skills/design-identity/SKILL.md +6 -6
- package/claude/skills/design-record/REQUIREMENT.md +2 -2
- package/claude/skills/design-record/SKILL.md +4 -4
- package/claude/skills/design-record/references/folder.md +1 -1
- package/claude/skills/design-taste/REQUIREMENT.md +1 -1
- package/claude/skills/document-health/SKILL.md +6 -6
- package/claude/skills/document-repair/SKILL.md +5 -5
- package/claude/skills/draw-figure/REQUIREMENT.md +1 -1
- package/claude/skills/draw-figure/SKILL.md +1 -1
- package/claude/skills/pick-by-eye/REQUIREMENT.md +4 -4
- package/claude/skills/pick-by-eye/SKILL.md +34 -41
- package/claude/skills/pick-by-eye/references/board.md +42 -0
- package/claude/skills/pick-by-eye/references/live-arms.md +3 -3
- package/claude/skills/plan-groundwork/SKILL.md +1 -1
- package/claude/skills/target-check/SKILL.md +6 -8
- package/claude/skills/target-check/references/domains.md +1 -4
- package/claude/skills/target-setup/SKILL.md +8 -8
- package/claude/skills/target-update/SKILL.md +5 -5
- package/claude/skills/teach-craft/REQUIREMENT.md +1 -1
- package/claude/skills/teach-craft/SKILL.md +32 -1
- package/claude/skills/teach-craft/references/adopted.md +113 -0
- package/claude/skills/teach-craft/references/lesson-craft.md +10 -2
- package/claude/skills/teach-craft/references/pedagogy.md +29 -2
- package/docs/agents/install-and-sync.md +2 -10
- package/docs/agents/output-shape.md +11 -10
- package/docs/target/migrations.md +8 -3
- package/docs/target/projects.md +1 -1
- package/docs/target/sync.md +1 -1
- package/docs/workflow/skill-map.md +0 -1
- package/docs/workflow/visual-design-workflow.md +1 -4
- package/governance/detect.toml +1 -6
- package/governance/renames.toml +0 -1
- package/package.json +2 -5
- package/scripts/core/install-check.sh +1 -1
- package/scripts/lib/ui.sh +12 -65
- package/src/audits/run.ts +1 -1
- package/src/claude/cases/misc.ts +0 -5
- package/src/claude/routing.ts +1 -1
- package/src/claude/skills-audit.ts +1 -0
- package/src/cli/help.ts +0 -3
- package/src/cli/run.ts +5 -6
- package/src/cli/ui.ts +87 -28
- package/src/cli.ts +6 -2
- package/src/commands/claude.ts +2 -3
- package/src/commands/design.ts +20 -324
- package/src/commands/gate.ts +5 -3
- package/src/commands/gov.ts +11 -21
- package/src/commands/labels.ts +1 -1
- package/src/commands/pr.ts +1 -1
- package/src/commands/sync.ts +5 -6
- package/src/commands/tooling.ts +5 -8
- package/src/commands/transcripts.ts +6 -11
- package/src/design/regen.ts +5 -32
- package/src/design/render.ts +1 -1
- package/src/design/tokens.ts +3 -2
- package/src/gate/sequencer.ts +1 -1
- package/src/gate/stages.ts +4 -20
- package/src/gov/audit.ts +1 -6
- package/src/hooks/post-merge.ts +2 -5
- package/src/markdown/scope.ts +2 -4
- package/src/process/harness.ts +3 -4
- package/src/sandbox/equivalence.ts +0 -1
- package/src/sandbox/provision.ts +8 -13
- package/src/sandbox/scenario.ts +6 -12
- package/src/shipped/references.ts +1 -2
- package/src/sync/check.ts +4 -29
- package/src/sync/engine.ts +3 -8
- package/src/sync/stamp.ts +6 -6
- package/src/sync/target.ts +1 -4
- package/src/sync/workflow.ts +3 -5
- package/src/tooling/verify-stack.ts +1 -1
- package/tooling/base/configs/.husky/post-merge +6 -10
- package/tooling/claude/reference.md +1 -1
- package/tooling/claude/seeds/canon/DESIGN.md +1 -1
- package/claude/skills/canvas-board/REQUIREMENT.md +0 -35
- package/claude/skills/canvas-board/SKILL.md +0 -143
- package/claude/skills/canvas-board/references/canvas.md +0 -170
- package/governance/rules/ui/canvas.md +0 -13
- package/scripts/core/check-color-source.sh +0 -51
- package/src/canvas/address.ts +0 -227
- package/src/canvas/arrange.ts +0 -66
- package/src/canvas/capture.ts +0 -391
- package/src/canvas/client/app.tsx +0 -188
- package/src/canvas/client/inspector/align-grid.tsx +0 -162
- package/src/canvas/client/inspector/color-field.tsx +0 -398
- package/src/canvas/client/inspector/color-inputs.tsx +0 -139
- package/src/canvas/client/inspector/color-picker.tsx +0 -668
- package/src/canvas/client/inspector/color-space.ts +0 -240
- package/src/canvas/client/inspector/field.tsx +0 -263
- package/src/canvas/client/inspector/fields.css +0 -763
- package/src/canvas/client/inspector/section.tsx +0 -27
- package/src/canvas/client/inspector/size-field.tsx +0 -69
- package/src/canvas/client/inspector/token-select.tsx +0 -109
- package/src/canvas/client/inspector/values.ts +0 -297
- package/src/canvas/client/inspector.tsx +0 -692
- package/src/canvas/client/keys.ts +0 -71
- package/src/canvas/client/layers.tsx +0 -118
- package/src/canvas/client/main.tsx +0 -71
- package/src/canvas/client/pages-panel.tsx +0 -212
- package/src/canvas/client/panel-handle.tsx +0 -90
- package/src/canvas/client/selection.tsx +0 -199
- package/src/canvas/client/shell.css +0 -762
- package/src/canvas/client/state.ts +0 -792
- package/src/canvas/client/surface.tsx +0 -803
- package/src/canvas/client/theme-panel.tsx +0 -55
- package/src/canvas/client/tools.tsx +0 -153
- package/src/canvas/content.ts +0 -781
- package/src/canvas/edit.ts +0 -575
- package/src/canvas/editing.ts +0 -203
- package/src/canvas/fit.ts +0 -238
- package/src/canvas/global.d.ts +0 -15
- package/src/canvas/history.ts +0 -116
- package/src/canvas/index.html +0 -20
- package/src/canvas/server.ts +0 -766
- package/src/canvas/tokens.ts +0 -221
- package/src/commands/canvas.ts +0 -1097
- package/src/design/adapter.ts +0 -59
- package/src/design/base.css +0 -203
- package/src/design/brand-favicon.ts +0 -18
- package/src/design/neutral.ts +0 -127
- package/src/design/project-fonts.ts +0 -392
|
@@ -37,7 +37,7 @@ Write only inside `.canon/groundwork/<nn>-<slug>/`. A feature plan, source chang
|
|
|
37
37
|
|
|
38
38
|
What a spike produces stays inside the track, under `.canon/groundwork/<nn>-<slug>/evidence/`, which the first rule already permits. Mode detection matches only top-level entries, so a nested folder cannot be mistaken for a track, and scratch holds only what can be deleted without loss.
|
|
39
39
|
|
|
40
|
-
A `pick-by-eye` run invoked from inside a live track follows its own branch for this. It writes its renders to `evidence/` here, and drafts its candidates as
|
|
40
|
+
A `pick-by-eye` run invoked from inside a live track follows its own branch for this. It writes its renders to `evidence/` here, and drafts its candidates as pages on the Frameboard board at `.canon/canvas/` that its close deletes.
|
|
41
41
|
|
|
42
42
|
### Reading and backing
|
|
43
43
|
|
|
@@ -17,7 +17,7 @@ Six domains carry the report. Five answer from a verb that already exists and th
|
|
|
17
17
|
- No `.claude/` directory at the working root: stop. `❌ No .claude/ here, so nothing is installed to check. Run canon init first.`
|
|
18
18
|
- A `claude/skills/` folder at the root, no leading dot: stop. `❌ This is the toolkit itself rather than a target. Ask the orchestrator for a worker per repository to take a change out to the targets.`
|
|
19
19
|
- A target receives skills at `.claude/skills/` and authors none, so the spelling without the dot separates the source from what it installs into
|
|
20
|
-
-
|
|
20
|
+
- Prompt at no point, since every caller is a dispatched worker with nobody to answer. A call with no terminal on stdin already runs headless, so no command takes a prefix.
|
|
21
21
|
- Branch on each record's own fields rather than on an exit status. A shell function wrapping `canon` can report every refusal as success.
|
|
22
22
|
|
|
23
23
|
## Step 1: read the reports
|
|
@@ -25,25 +25,23 @@ Six domains carry the report. Five answer from a verb that already exists and th
|
|
|
25
25
|
Run these from the target root, in parallel:
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
canon sync --check . --json
|
|
29
|
+
canon context audit --json
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
The first answers five domains from one read, being `skew`, `domains`, `seeds`, `tooling`, and the layout fields `unmigrated`, `superseded`, `unmovedSurfaces`, and `reverse`. The second deepens a domain that first read only counts.
|
|
33
33
|
|
|
34
|
-
Then run `
|
|
34
|
+
Then run `canon records validate <kind> --json` once per record folder the target carries, taking `<kind>` from what is present under the record root rather than from a list held here.
|
|
35
35
|
|
|
36
36
|
### The tooling read takes a stack, always
|
|
37
37
|
|
|
38
38
|
The tooling comparison runs last, because it needs a value the first read returns. Take `<stack>` from the first name in the report's `tooling.chain`, which records the stack nearest the target, and pass it:
|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
|
-
|
|
41
|
+
canon tooling sync --check <stack>
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
Refuse the domain and report it unread when `chain` names nothing, rather than running the command bare. A bare call reaches the stack prompt, which
|
|
45
|
-
|
|
46
|
-
Every target would then be compared against whichever stack sorts first, on every run, and the drift reported would be an artifact of the wrong comparison rather than anything the target did.
|
|
44
|
+
Refuse the domain and report it unread when `chain` names nothing, rather than running the command bare. A bare call reaches the stack prompt, which refuses a headless caller, so it would report nothing about the domain.
|
|
47
45
|
|
|
48
46
|
### Domains come from the report
|
|
49
47
|
|
|
@@ -72,10 +72,7 @@ Read the `tooling` block off the report first, because the comparison command ne
|
|
|
72
72
|
|
|
73
73
|
### The comparison
|
|
74
74
|
|
|
75
|
-
On a measured report, take `<stack>` from the first name in `chain` and run `canon tooling sync --check <stack>`. Never run it bare.
|
|
76
|
-
|
|
77
|
-
- Omitting the stack reaches a prompt the non-interactive variable resolves to the catalog's first entry rather than refusing
|
|
78
|
-
- That compares the target against a stack it does not use and reports the difference as drift
|
|
75
|
+
On a measured report, take `<stack>` from the first name in `chain` and run `canon tooling sync --check <stack>`. Never run it bare, since omitting the stack reaches a prompt that refuses a headless caller and compares nothing.
|
|
79
76
|
|
|
80
77
|
### Verdicts
|
|
81
78
|
|
|
@@ -33,9 +33,9 @@ rather than a step within it, so the full chain never runs it separately.
|
|
|
33
33
|
|
|
34
34
|
## Non-interactive path
|
|
35
35
|
|
|
36
|
-
Every phase runs
|
|
37
|
-
otherwise pause, and each takes an
|
|
38
|
-
time:
|
|
36
|
+
Every phase runs headless with no prefix, since a call with no terminal on
|
|
37
|
+
stdin is already headless. Three phases otherwise pause, and each takes an
|
|
38
|
+
argument that answers its prompt ahead of time:
|
|
39
39
|
|
|
40
40
|
| Phase | Pauses to | Answered ahead by | With neither and no TTY |
|
|
41
41
|
| ------------------- | ------------------------------------------ | ---------------------------------------------------------- | ----------------------------------------------------- |
|
|
@@ -91,7 +91,7 @@ target project's current directory. Do not cd into the toolkit source tree. The
|
|
|
91
91
|
Step 1: `canon init` installs base tooling, claude seeds, and governance rules.
|
|
92
92
|
|
|
93
93
|
```bash
|
|
94
|
-
|
|
94
|
+
canon init \
|
|
95
95
|
--stack <stack> \
|
|
96
96
|
--add <rules> \
|
|
97
97
|
<target>
|
|
@@ -106,7 +106,7 @@ Step 2: `canon tooling sync <tooling-stack> --write` installs stack deps, script
|
|
|
106
106
|
- A fresh target has nothing to lose, so pass `--write` directly rather than reading a report first
|
|
107
107
|
|
|
108
108
|
```bash
|
|
109
|
-
|
|
109
|
+
canon tooling sync <tooling-stack> <target> --write
|
|
110
110
|
```
|
|
111
111
|
|
|
112
112
|
### Monorepo with multiple language roots
|
|
@@ -114,8 +114,8 @@ CANON_NON_INTERACTIVE=1 canon tooling sync <tooling-stack> <target> --write
|
|
|
114
114
|
Run `canon init` once at the repo root so `base` (husky, oxfmt, commitlint, CI) lands once, then sync each subtree with `--skip base`. Take the subtree commands from the preview's per-root rows rather than picking folders by hand.
|
|
115
115
|
|
|
116
116
|
```bash
|
|
117
|
-
|
|
118
|
-
|
|
117
|
+
canon tooling sync vite-react ./frontend --skip base --write
|
|
118
|
+
canon tooling sync python ./backend --skip base --write
|
|
119
119
|
```
|
|
120
120
|
|
|
121
121
|
- Without `--skip base`, each subtree re-drops husky, and git honors only one `core.hooksPath`, so the extra hook dirs silently break
|
|
@@ -139,7 +139,7 @@ Resolve exactly as the detect reference states, confirm the proposed extras
|
|
|
139
139
|
there, then run:
|
|
140
140
|
|
|
141
141
|
```bash
|
|
142
|
-
|
|
142
|
+
canon gov install <stack> --add <extras> <target>
|
|
143
143
|
```
|
|
144
144
|
|
|
145
145
|
Report the rule count installed, the target path, and any rules that failed to
|
|
@@ -24,7 +24,7 @@ Stop with the line beside each state.
|
|
|
24
24
|
|
|
25
25
|
Then hold two rules for every verb this body runs.
|
|
26
26
|
|
|
27
|
-
- Run it
|
|
27
|
+
- Run it from the target root with no prefix, since a call with no terminal on stdin already runs headless
|
|
28
28
|
- Branch on its record's fields rather than its exit, which a shell function wrapping `canon` can flatten
|
|
29
29
|
|
|
30
30
|
## Step 1: bring the binary and plugin forward
|
|
@@ -38,12 +38,12 @@ Both write to the machine rather than the target, and the preview needs the verb
|
|
|
38
38
|
Run these in parallel from the target root:
|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
canon changelog --json
|
|
42
|
+
canon migrate status --json
|
|
43
|
+
canon sync --check . --json
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
Then take `<stack>` from the first name in the report's `tooling.chain` and run `canon tooling diff <stack> . --json`. Never run it bare, since the stack prompt
|
|
46
|
+
Then take `<stack>` from the first name in the report's `tooling.chain` and run `canon tooling diff <stack> . --json`. Never run it bare, since the stack prompt refuses a headless caller. Report tooling unmeasured when `tooling.measured` is false or `chain` names nothing.
|
|
47
47
|
|
|
48
48
|
### When a read refuses
|
|
49
49
|
|
|
@@ -17,6 +17,7 @@ Its quizzes leak the answer through option length or position, and nothing tests
|
|
|
17
17
|
- Ask the learner's starting point and read the subject from sources, saying which claims rest on recall
|
|
18
18
|
- State quiz design that leaks no answer, and pair a quiz with a teach-back
|
|
19
19
|
- Hold that the wrong answer itself is what the next session places from
|
|
20
|
+
- Cite an opened source in the ledger for every kept rule, or label it house judgment with the reason it stays, then close on excuses, red flags, and a checklist
|
|
20
21
|
|
|
21
22
|
## Must not
|
|
22
23
|
|
|
@@ -27,4 +28,3 @@ Its quizzes leak the answer through option length or position, and nothing tests
|
|
|
27
28
|
## Out of scope
|
|
28
29
|
|
|
29
30
|
- Where a lesson is stored or how it renders, which belongs to whatever surface the session writes to
|
|
30
|
-
- A cited source ledger for the practice family, which is a follow-on task
|
|
@@ -7,7 +7,7 @@ metadata:
|
|
|
7
7
|
|
|
8
8
|
# Teach craft
|
|
9
9
|
|
|
10
|
-
A session asked to teach explains, and a smooth explanation reads as a lesson learned. It is fluency, which
|
|
10
|
+
A session asked to teach explains, and a smooth explanation reads as a lesson learned. It is fluency, which does not survive a delay. This skill carries what turns teaching into retention: test before telling, space the returns, and grade only what the learner produced unaided.
|
|
11
11
|
|
|
12
12
|
It produces nothing of its own. The lesson lands wherever the session already writes, being the conversation, a file, or a page.
|
|
13
13
|
|
|
@@ -18,6 +18,8 @@ It produces nothing of its own. The lesson lands wherever the session already wr
|
|
|
18
18
|
|
|
19
19
|
Read `pedagogy.md` before picking what to teach next, and `lesson-craft.md` before writing a quiz or a lesson.
|
|
20
20
|
|
|
21
|
+
Read `${CLAUDE_SKILL_DIR}/references/adopted.md` only when extending this guidance or arguing against a rule in it. It records the research each rule rests on, the passage relied on, and which rules stand as house judgment.
|
|
22
|
+
|
|
21
23
|
## Before teaching
|
|
22
24
|
|
|
23
25
|
- Ask what the learner already knows rather than assuming it. Difficulty with no floor under it teaches nobody.
|
|
@@ -37,3 +39,32 @@ Read `pedagogy.md` before picking what to teach next, and `lesson-craft.md` befo
|
|
|
37
39
|
| They followed the explanation, so move on | Following is fluency. Advance on a retrieval the learner passed unaided. |
|
|
38
40
|
| Review the last lesson before testing it | Review rebuilds the fluency the test would have measured. Test first, then fill what missed. |
|
|
39
41
|
| The answer is obvious from the options | Then the distractors are not misconceptions anyone holds. Rewrite them. |
|
|
42
|
+
|
|
43
|
+
## Red flags
|
|
44
|
+
|
|
45
|
+
- You are about to explain a topic and the learner has not yet tried to answer anything on it.
|
|
46
|
+
- The learner said it makes sense and you are moving to the next topic.
|
|
47
|
+
- A returning learner's session opens on new material.
|
|
48
|
+
|
|
49
|
+
### Quizzes and records
|
|
50
|
+
|
|
51
|
+
These flags fire on what the session has written.
|
|
52
|
+
|
|
53
|
+
- The correct options in a quiz are the longest ones, or sit in the same slot.
|
|
54
|
+
- You are writing a claim about the subject with no source open.
|
|
55
|
+
- The learning record you are about to write holds a score and no wrong answer.
|
|
56
|
+
|
|
57
|
+
## Before handing over
|
|
58
|
+
|
|
59
|
+
Check each line against the lesson and the record the session produced.
|
|
60
|
+
|
|
61
|
+
- Every advance followed a retrieval the learner passed unaided, not a smooth explanation.
|
|
62
|
+
- The lesson carries a quiz and a teach-back with a named audience.
|
|
63
|
+
- Every quiz keeps its options to one length and rotates the correct slot by question number.
|
|
64
|
+
- Every claim names the source it was read from, or says it rests on recall.
|
|
65
|
+
- The learning record names each wrong answer and the next revisit from the ladder.
|
|
66
|
+
|
|
67
|
+
## What this delegates
|
|
68
|
+
|
|
69
|
+
- Finding and opening the sources a lesson is read from: `search-craft`
|
|
70
|
+
- Where a lesson is stored and how it renders, which belongs to the surface the session writes to
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Adopted and declined
|
|
3
|
+
description: Which learning-science sources this skill's rules rest on, the passage each one was taken from, what was declined, and which rules stand as house judgment with no opened source behind them
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Adopted and declined
|
|
7
|
+
|
|
8
|
+
The field is learning science and cognitive psychology, with educational measurement for quiz construction. Every source below was opened, the papers through the PubMed API and the practice guide as a PDF. Each entry quotes the passage relied on, and a later session extends this file rather than re-arguing an item settled here.
|
|
9
|
+
|
|
10
|
+
## Contents
|
|
11
|
+
|
|
12
|
+
- [Adopted](#adopted)
|
|
13
|
+
- [Declined](#declined)
|
|
14
|
+
- [House judgment](#house-judgment)
|
|
15
|
+
|
|
16
|
+
## Adopted
|
|
17
|
+
|
|
18
|
+
### Retrieval over restudy, and fluency against retention
|
|
19
|
+
|
|
20
|
+
[Roediger and Karpicke 2006, Test-enhanced learning](https://pubmed.ncbi.nlm.nih.gov/16507066/) backs testing before reviewing, and the rule that confidence says nothing about retention.
|
|
21
|
+
|
|
22
|
+
- Passage: "prior testing produced substantially greater retention than studying, even though repeated studying increased students' confidence in their ability to remember the material"
|
|
23
|
+
- The same abstract: "When the final test was given after 5 min, repeated studying improved recall relative to repeated testing"
|
|
24
|
+
- Adopted in `pedagogy.md` as the fluency and retrieval sections, and in the body's excuses table
|
|
25
|
+
|
|
26
|
+
### Failing an attempt before the answer
|
|
27
|
+
|
|
28
|
+
[Kornell, Hays and Bjork 2009, Unsuccessful retrieval attempts enhance subsequent learning](https://pubmed.ncbi.nlm.nih.gov/19586265/) backs asking before telling and letting the learner fail first.
|
|
29
|
+
|
|
30
|
+
- Passage: in the test condition "participants attempted to answer the question before being shown the answer", and "Unsuccessful retrieval attempts enhanced learning with both types of materials"
|
|
31
|
+
- The read-only condition it beat is "the question and answer were presented together"
|
|
32
|
+
- Adopted as the rule to open on the question, and in `lesson-craft.md` as feedback after the attempt rather than beside the question
|
|
33
|
+
|
|
34
|
+
### Spacing, and the gap growing with the interval
|
|
35
|
+
|
|
36
|
+
[Cepeda et al. 2006, Distributed practice in verbal recall tasks](https://pubmed.ncbi.nlm.nih.gov/16719566/) backs spacing, and the best gap growing with how long the material has to last.
|
|
37
|
+
|
|
38
|
+
- Passage: "the ISI producing maximal retention increased as retention interval increased"
|
|
39
|
+
- Adopted as the spacing section's principle. It names no schedule and reports no result for expanding gaps, so the ladder is house judgment.
|
|
40
|
+
|
|
41
|
+
[Pashler et al. 2007, IES practice guide NCER 2007-2004](https://ies.ed.gov/ncee/wwc/Docs/PracticeGuide/20072004.pdf) backs the same at classroom scale, and its panel rates the evidence moderate.
|
|
42
|
+
|
|
43
|
+
- Passage: key concepts seen on at least two occasions, "separated by a period of several weeks to several months"
|
|
44
|
+
- Adopted as the rule to revisit once forgetting has begun rather than while the material is fresh
|
|
45
|
+
|
|
46
|
+
### Quizzing at every phase
|
|
47
|
+
|
|
48
|
+
The same IES guide, in Recommendation 5, backs carrying a quiz in every lesson. Its panel rates quizzes that re-expose key content as strong evidence and pre-questions as low.
|
|
49
|
+
|
|
50
|
+
- Passage: "Use quizzing with active retrieval of information at all phases of the learning process"
|
|
51
|
+
- Adopted as the rule to carry a quiz. Opening on a question rests on Kornell, Hays and Bjork above, with this as weak support.
|
|
52
|
+
|
|
53
|
+
### Worked examples while acquiring
|
|
54
|
+
|
|
55
|
+
The IES guide's Recommendation 2 backs worked examples for a learner taking on a procedure, rated moderate.
|
|
56
|
+
|
|
57
|
+
- Passage: students "learn more by alternating between studying examples of worked-out problem solutions and solving similar problems on their own"
|
|
58
|
+
- Adopted as the clause introducing new material through worked examples. The wider split between skill and knowledge is house judgment below.
|
|
59
|
+
|
|
60
|
+
### Interleaving exemplars
|
|
61
|
+
|
|
62
|
+
[Kornell and Bjork 2008, Learning concepts and categories](https://pubmed.ncbi.nlm.nih.gov/18578849/) backs mixing related items within a session, and names the fluency trap of blocked practice.
|
|
63
|
+
|
|
64
|
+
- Passage: paintings "presented consecutively (massed) or interleaved with other artists' paintings (spaced)", and induction profited from the interleaved order
|
|
65
|
+
- The same abstract: "Participants rated massing as more effective than spacing"
|
|
66
|
+
- Adopted as the claim that blocked practice feels better and teaches less. The study mixes exemplars of categories, so mixing topics is an extension, recorded below.
|
|
67
|
+
|
|
68
|
+
### Feedback on a quiz
|
|
69
|
+
|
|
70
|
+
[Butler and Roediger 2008, Feedback and multiple-choice testing](https://pubmed.ncbi.nlm.nih.gov/18491500/) backs giving feedback on a multiple-choice quiz.
|
|
71
|
+
|
|
72
|
+
- Passage: "The selection of lures can lead students to acquire false knowledge", and feedback "reduced the proportion of intrusions"
|
|
73
|
+
- Adopted as the rule to write feedback for every question. It tests feedback against none, not where distractors come from or how feedback explains them.
|
|
74
|
+
- It found immediate and delayed feedback both help, so the timing rule rests on Kornell, Hays and Bjork instead
|
|
75
|
+
|
|
76
|
+
### The teach-back
|
|
77
|
+
|
|
78
|
+
[Nestojko et al. 2014, Expecting to teach](https://pubmed.ncbi.nlm.nih.gov/24845756/) backs asking the learner to explain to an audience.
|
|
79
|
+
|
|
80
|
+
- Passage: "Participants expecting to teach produced more complete and better organized free recall of the passage"
|
|
81
|
+
- Adopted as the teach-back block and its named audience
|
|
82
|
+
- The participants expected to teach and never taught. The finding backs framing the ask as teaching, not a gain from the explanation itself.
|
|
83
|
+
|
|
84
|
+
## Declined
|
|
85
|
+
|
|
86
|
+
### A fixed schedule from the literature
|
|
87
|
+
|
|
88
|
+
Cepeda's synthesis and the IES guide each tie the best gap to how long the material has to last, and neither names a sequence of days. Neither is cited for the ladder, so the ladder does not read as sourced.
|
|
89
|
+
|
|
90
|
+
### Dunlosky et al. 2013
|
|
91
|
+
|
|
92
|
+
[Improving students' learning](https://journals.sagepub.com/doi/10.1177/1529100612453266) refused with a 403. It stays a lead, never cited, and is the first source to open when extending the retrieval or spacing rules.
|
|
93
|
+
|
|
94
|
+
### Leads not opened
|
|
95
|
+
|
|
96
|
+
Bjork on desirable difficulties, Vygotsky on the zone of proximal development, and Haladyna, Downing and Rodriguez 2002 on item writing were each searched for and not opened. The item-writing review refused with a 403 at the publisher, and Crossref carries no abstract for it. Each rule it would back is labeled below.
|
|
97
|
+
|
|
98
|
+
## House judgment
|
|
99
|
+
|
|
100
|
+
These rules stay with no opened source behind them, each for the reason given.
|
|
101
|
+
|
|
102
|
+
- **The review ladder.** The 1, 3, 7, 16, and 35 day rungs, and moving a rung on each hit or miss, are a house schedule. An author told to widen a gap settles on whatever feels right.
|
|
103
|
+
- **Forgetting as the mechanism of spacing.** It explains why the gap matters, and no opened source tests it.
|
|
104
|
+
- **Production over selection, and no cue in the question.** Both studies above compare testing with restudy, and neither compares a recognition test.
|
|
105
|
+
- **Misconception distractors, explained one by one.** A distractor nobody holds removes itself, and Butler tests only feedback against none.
|
|
106
|
+
- **Interleaving topics rather than exemplars.** This extends Kornell and Bjork and the IES worked-example finding. It stays because working out which approach a problem calls for carries over.
|
|
107
|
+
- **Never interleaving an unseen topic.** Telling two things apart needs something on each side.
|
|
108
|
+
- **Where difficulty helps and hurts.** The split stays because it changes what a lesson withholds. Kornell, Hays and Bjork back difficulty at retrieval, and IES backs worked examples while acquiring.
|
|
109
|
+
- **The zone of proximal development.** Placing the learner just past what they can do unaided is how a session picks the next step from the learning record.
|
|
110
|
+
- **Equal option length.** A longer option reads as the considered one, and a session can check the rule by counting.
|
|
111
|
+
- **Rotating the correct slot.** An author varying position by judgment settles on the first slot.
|
|
112
|
+
- **Restraint and what makes a lesson worth returning to.** Both are editorial judgment about a page rather than claims about memory.
|
|
113
|
+
- **The sourcing ladder.** It is this toolkit's rule for what a lesson cites, not a finding about learning.
|
|
@@ -5,7 +5,7 @@ description: Restraint, quiz design, teach back, and what makes a lesson worth r
|
|
|
5
5
|
|
|
6
6
|
# Lesson craft reference
|
|
7
7
|
|
|
8
|
-
Judgment rather than shape. This file covers what makes a lesson worth opening twice, whatever surface it renders on.
|
|
8
|
+
Judgment rather than shape. This file covers what makes a lesson worth opening twice, whatever surface it renders on. Each section names its research or says it is house judgment, and `adopted.md` beside this file carries the passages.
|
|
9
9
|
|
|
10
10
|
## Contents
|
|
11
11
|
|
|
@@ -23,6 +23,8 @@ Every element competes with the material for attention.
|
|
|
23
23
|
- Do not animate anything the learner did not trigger
|
|
24
24
|
- Prefer whitespace over rules and boxes to separate sections
|
|
25
25
|
|
|
26
|
+
This section is house judgment, an editorial call about a page rather than a claim about memory.
|
|
27
|
+
|
|
26
28
|
## Quiz design
|
|
27
29
|
|
|
28
30
|
The quiz is the retrieval, so a leak in its construction turns it into a reading test.
|
|
@@ -35,18 +37,24 @@ The quiz is the retrieval, so a leak in its construction turns it into a reading
|
|
|
35
37
|
|
|
36
38
|
One feedback block reads as an explanation where a block per option reads as four verdicts, and only the explanation names what separates a wrong option from the answer. Name the correct option in the feedback text, since it is what a learner reads to find out whether they were right.
|
|
37
39
|
|
|
40
|
+
Butler and Roediger 2008 back giving feedback on a multiple-choice quiz, since its lures can teach false knowledge. Kornell, Hays and Bjork 2009 back giving it after the attempt. Misconception distractors, explaining each one, equal option length, and the slot rotation are house judgment.
|
|
41
|
+
|
|
38
42
|
## Teach back
|
|
39
43
|
|
|
40
|
-
A quiz is recognition and a teach-back is production, which
|
|
44
|
+
A quiz is recognition and a teach-back is production, which this skill prefers as house judgment. Carry both: the quiz places the learner against options someone could hold, and the teach-back is where the learner finds out what they cannot say without help.
|
|
41
45
|
|
|
42
46
|
- Ask for an explanation to a named audience rather than for an answer. Telling a non-programmer why a lazy quantifier is not an optional one has a floor, and "explain lazy quantifiers" has none.
|
|
43
47
|
- Ask about the thing the lesson was for, not a detail beside it. A teach-back on a footnote tests attention rather than the material.
|
|
44
48
|
- Carry a self-check, hidden until the learner opens it, listing what a complete explanation covers. A learner with no session in the room otherwise cannot grade the ask, and hidden leaks nothing.
|
|
45
49
|
- Write the self-check as what the explanation has to cover rather than as the explanation itself. A model answer is read instead of produced, which turns the block back into reading.
|
|
46
50
|
|
|
51
|
+
Nestojko et al. 2014 back framing the ask as teaching a named audience. The self-check rules are house judgment.
|
|
52
|
+
|
|
47
53
|
## What makes a lesson worth returning to
|
|
48
54
|
|
|
49
55
|
- The worked example is complete. A learner returning for the example finds the whole thing rather than a fragment they have to reconstruct.
|
|
50
56
|
- The lesson states what it assumes. A returning reader can tell in one line whether they are in the right place.
|
|
51
57
|
- The hard part is named as the hard part. Material that flattens everything to one difficulty gives a returning reader nothing to navigate by.
|
|
52
58
|
- Nothing depends on the session it was written in. A lesson referring to what was discussed is unreadable a week later.
|
|
59
|
+
|
|
60
|
+
This section is house judgment, like restraint above.
|
|
@@ -7,15 +7,29 @@ description: Fluency against storage strength, retrieval practice, spacing, inte
|
|
|
7
7
|
|
|
8
8
|
The rules a lesson is built from. Read this before picking what to teach next.
|
|
9
9
|
|
|
10
|
+
Each section names the research behind it or says it is house judgment. The passage each source was taken from, and the reason each house rule stays, sit in `adopted.md` beside this file.
|
|
11
|
+
|
|
12
|
+
## Contents
|
|
13
|
+
|
|
14
|
+
- [Fluency is not storage strength](#fluency-is-not-storage-strength)
|
|
15
|
+
- [Retrieval practice](#retrieval-practice)
|
|
16
|
+
- [Spacing](#spacing)
|
|
17
|
+
- [Interleaving](#interleaving)
|
|
18
|
+
- [The zone of proximal development](#the-zone-of-proximal-development)
|
|
19
|
+
- [Where difficulty helps and where it hurts](#where-difficulty-helps-and-where-it-hurts)
|
|
20
|
+
- [Sourcing](#sourcing)
|
|
21
|
+
|
|
10
22
|
## Fluency is not storage strength
|
|
11
23
|
|
|
12
|
-
A learner who follows an explanation smoothly has demonstrated that the explanation was clear. That is fluency, and it
|
|
24
|
+
A learner who follows an explanation smoothly has demonstrated that the explanation was clear. That is fluency, and it does not last. Storage strength is whether the material can be retrieved later without the explanation present, and the two move independently.
|
|
13
25
|
|
|
14
26
|
The practical consequence is that a lesson cannot report its own success. Only a later retrieval can, which is why the learning record exists and why every session opens by testing the last one rather than by reviewing it.
|
|
15
27
|
|
|
16
28
|
- Treat a learner's confidence as evidence about the lesson, never about their retention
|
|
17
29
|
- Never advance on the strength of a smooth session. Advance on a retrieval the learner passed unaided.
|
|
18
30
|
|
|
31
|
+
Roediger and Karpicke 2006 back this section. Restudying won on a test five minutes later and lost on the delayed tests, while it raised the learners' confidence.
|
|
32
|
+
|
|
19
33
|
## Retrieval practice
|
|
20
34
|
|
|
21
35
|
Pulling an answer out of memory strengthens it far more than reading it again. Recognition is the weak form: a learner who picks the right option from four has done less work than one who produced the answer from nothing.
|
|
@@ -24,6 +38,7 @@ Pulling an answer out of memory strengthens it far more than reading it again. R
|
|
|
24
38
|
- Prefer a question the learner has to produce an answer to over one they select from
|
|
25
39
|
- Let the learner fail an attempt before correcting it. A failed retrieval followed by the answer beats being told first.
|
|
26
40
|
- Do not cue the answer in the question. A question restating the material tests reading rather than memory.
|
|
41
|
+
- Asking first and the failed attempt rest on Kornell, Hays and Bjork 2009. Production over selection and the no-cue rule are house judgment, since no opened study compared a recognition test.
|
|
27
42
|
|
|
28
43
|
The teach-back block is the production form this section prefers, which is why a lesson carries one beside its quiz. A quiz is recognition, so a lesson offering only one tests the weak form and reports it as retrieval.
|
|
29
44
|
|
|
@@ -33,6 +48,8 @@ Explaining the material to somebody who lacks it makes the learner produce the w
|
|
|
33
48
|
- Name the audience the explanation is for, since an explanation with no reader has no floor to sit above
|
|
34
49
|
- Record what the explanation left out under what the learner got wrong. A missed production and a missed selection are both retrieval failures, and two sections would split one placement input.
|
|
35
50
|
|
|
51
|
+
Nestojko et al. 2014 found that expecting to teach produced fuller and better organized recall. Its participants never taught, so the finding backs framing the ask as teaching.
|
|
52
|
+
|
|
36
53
|
## Spacing
|
|
37
54
|
|
|
38
55
|
The same total time spread across days beats the same time in one sitting. Forgetting between sessions is the mechanism rather than the cost, because effortful retrieval is what strengthens the trace.
|
|
@@ -41,10 +58,14 @@ The same total time spread across days beats the same time in one sitting. Forge
|
|
|
41
58
|
- Widen the gap each time a topic is retrieved correctly, and shorten it after a miss
|
|
42
59
|
- Name what to revisit and when in the learning record, so the next session has a schedule rather than a guess
|
|
43
60
|
|
|
61
|
+
Cepeda et al. 2006 found the best gap grew with how long the material had to last, and the IES practice guide recommends spacing at classroom scale. Forgetting as the mechanism, and widening or shortening the gap after each retrieval, are house judgment.
|
|
62
|
+
|
|
44
63
|
The ladder is 1, 3, 7, 16, and 35 days. A topic retrieved unaided moves up a rung and a miss drops it back one, held inside the ladder at either end, so a topic the learner keeps missing stays on the shortest gap rather than restarting a sequence.
|
|
45
64
|
|
|
46
65
|
- Apply the ladder as written rather than picking a gap by judgment, since an author told to widen a gap settles on whatever feels right
|
|
47
66
|
|
|
67
|
+
The ladder is house judgment. No opened source names a sequence of days or tests a gap that widens after each correct retrieval.
|
|
68
|
+
|
|
48
69
|
## Interleaving
|
|
49
70
|
|
|
50
71
|
Mixing related topics within a session beats finishing one before starting the next. Blocked practice inflates in-session performance and hurts what survives it, because the learner stops having to work out which approach a problem calls for.
|
|
@@ -53,6 +74,8 @@ Mixing related topics within a session beats finishing one before starting the n
|
|
|
53
74
|
- Keep problems in a mixed set close enough that telling them apart is the work
|
|
54
75
|
- Do not interleave a topic the learner has never seen. Interleaving discriminates between things already known.
|
|
55
76
|
|
|
77
|
+
Kornell and Bjork 2008 found interleaved paintings taught each artist's style better, while learners rated blocked study as more effective. The study mixed exemplars of categories, so mixing topics and the unseen-topic clause are house judgment.
|
|
78
|
+
|
|
56
79
|
## The zone of proximal development
|
|
57
80
|
|
|
58
81
|
The productive band is what the learner cannot do alone and can do with support. Below it the session is review, and above it the support carries the whole task and nothing transfers.
|
|
@@ -62,6 +85,8 @@ The productive band is what the learner cannot do alone and can do with support.
|
|
|
62
85
|
- Withdraw support as the learner succeeds, and restore it on a miss rather than repeating the lesson
|
|
63
86
|
- Where the records show nothing, ask. A guessed starting point misses in both directions.
|
|
64
87
|
|
|
88
|
+
This section is house judgment. Vygotsky's account was not opened, so the band rests on how a session picks the next step from the record rather than on a citation.
|
|
89
|
+
|
|
65
90
|
## Where difficulty helps and where it hurts
|
|
66
91
|
|
|
67
92
|
Difficulty is not uniformly good. It helps skill acquisition, where the learner is building a procedure they will execute, and it hurts knowledge acquisition, where the learner is taking on facts and structure they do not have yet.
|
|
@@ -70,9 +95,11 @@ Difficulty is not uniformly good. It helps skill acquisition, where the learner
|
|
|
70
95
|
- Add difficulty once the learner is practicing rather than acquiring: withhold the worked step, vary the surface of the problem, delay the feedback
|
|
71
96
|
- Never confuse a hard explanation with a hard problem. A confusing explanation adds load that teaches nothing.
|
|
72
97
|
|
|
98
|
+
The split between skill and knowledge acquisition is house judgment. The IES guide backs worked examples while a learner acquires a procedure, and Kornell, Hays and Bjork back difficulty at retrieval.
|
|
99
|
+
|
|
73
100
|
## Sourcing
|
|
74
101
|
|
|
75
|
-
Parametric recall is confident where it is wrong, and a learner cannot audit it. Every claim in a lesson traces to something read.
|
|
102
|
+
Parametric recall is confident where it is wrong, and a learner cannot audit it. Every claim in a lesson traces to something read. This section is the toolkit's rule for what a lesson cites rather than a finding about memory.
|
|
76
103
|
|
|
77
104
|
- Read the subject from sources before teaching, and record each one with its link
|
|
78
105
|
- Mark any claim resting on recall as resting on recall, in the lesson itself
|
|
@@ -15,8 +15,8 @@ Any flag skips the confirmation prompt, but the `base` default of `--stack` does
|
|
|
15
15
|
|
|
16
16
|
## Governance install
|
|
17
17
|
|
|
18
|
-
- `canon gov install <stack> [target]` needs the stack
|
|
19
|
-
-
|
|
18
|
+
- `canon gov install <stack> [target]` needs the stack on a call with no terminal, else lists the valid names on stderr and exits 1
|
|
19
|
+
- A headless call takes Yes at the install confirm, and `--yes` answers it at a terminal too. Neither picks a stack.
|
|
20
20
|
- It refuses the toolkit root and a missing path
|
|
21
21
|
- `--add <rules>` with no stack installs into the one positional, or the current directory, keeping the recorded chain. Pass `./node` for a target named like a stack.
|
|
22
22
|
|
|
@@ -70,14 +70,6 @@ After a rename the new name shows as `missing` when the stamp records a stack, a
|
|
|
70
70
|
|
|
71
71
|
`canon tooling inject` and `prune-gitignore` apply one stack with no scan or prompt, and the latter prints the number removed on stdout. Use `sync` unless scripting provisioning, and pass `--nested` inside an open frame.
|
|
72
72
|
|
|
73
|
-
## Design
|
|
74
|
-
|
|
75
|
-
- `canon design install` copies `base.css` to `.claude/design/` and creates no override
|
|
76
|
-
- Project overrides live in `.claude/design/project/`, which `design sync` never touches
|
|
77
|
-
- `canon design fonts add <file> --family <name>` copies a `woff2`, `woff`, `ttf`, or `otf` face into `project/fonts/` with its `fonts.css` rule, and refuses mismatched bytes as `invalid-font`
|
|
78
|
-
- `fonts list --json` flags a missing or out-of-folder file as a `problem`
|
|
79
|
-
- `canon sync` skips the domain where `design install` never ran
|
|
80
|
-
|
|
81
73
|
## Whole-project sync
|
|
82
74
|
|
|
83
75
|
`canon sync [path]` runs every installed domain sync, then offers a commit and pull request. Headlessly it applies the syncs, refuses the git workflow, reports what it would have made, and exits 0. It refuses a dirty working tree.
|
|
@@ -22,18 +22,19 @@ Data goes to stdout. UI and logs go to stderr. Help is the exception and prints
|
|
|
22
22
|
- `└` closes the frame on stderr
|
|
23
23
|
- An error renders as `│ ✗ message` inside the frame, never as a lone line
|
|
24
24
|
- Help skips the banner and puts `Usage:` directly on `├`
|
|
25
|
+
- A stderr that is not a terminal gets plain lines instead, with the banner and section titles bare and each item behind its mark alone
|
|
25
26
|
|
|
26
27
|
A help request naming an unknown subcommand, under a group taking no operand, writes its refusal to stderr and exits 1.
|
|
27
28
|
|
|
28
29
|
## JSON and names modes
|
|
29
30
|
|
|
30
|
-
`--json` and `--names` keep stdout pure data.
|
|
31
|
+
`--json` and `--names` keep stdout pure data. A `--json` run writes no progress to stderr, only its warnings and errors, since diagnostics reach stderr in every mode. A JSON refusal carries an action and a reason, so branch on the record rather than on stderr.
|
|
31
32
|
|
|
32
33
|
A shell profile may wrap `canon` in a function that takes its status from a later command. Where a verb documents a record field, read the field rather than the exit.
|
|
33
34
|
|
|
34
35
|
## Color
|
|
35
36
|
|
|
36
|
-
Escape sequences reach a destination that renders them and nowhere else, decided per stream. `NO_COLOR` set to any non-empty value turns color off, and so does a destination that is not a terminal. The
|
|
37
|
+
Escape sequences reach a destination that renders them and nowhere else, decided per stream. `NO_COLOR` set to any non-empty value turns color off, and so does a destination that is not a terminal. The `✓ ! + - ✗` marks survive both. The frame glyphs need a terminal.
|
|
37
38
|
|
|
38
39
|
## Exit discipline
|
|
39
40
|
|
|
@@ -59,16 +60,16 @@ Discover names at runtime rather than hardcoding them.
|
|
|
59
60
|
|
|
60
61
|
## Headless invocation
|
|
61
62
|
|
|
62
|
-
|
|
63
|
+
A call with no terminal on stdin is headless and needs no prefix. Each prompt takes its documented default or refuses and names the flag to pass.
|
|
63
64
|
|
|
64
65
|
```bash
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
66
|
+
canon init --stack node --skip records /path/to/project
|
|
67
|
+
canon sync /path/to/project
|
|
68
|
+
canon gov install node --add astro,shadcn /path/to/project
|
|
69
|
+
canon gov sync /path/to/project
|
|
70
|
+
canon gov build /path/to/project
|
|
71
|
+
canon tooling diff astro /path/to/project
|
|
72
|
+
canon tooling sync astro /path/to/project --write
|
|
72
73
|
canon tooling inject base /path/to/project --configs --seeds
|
|
73
74
|
canon tooling prune-gitignore base /path/to/project
|
|
74
75
|
canon tooling verify vite-react
|
|
@@ -121,7 +121,7 @@ From the registry the walk reports `historyUnavailable`, so check both paths by
|
|
|
121
121
|
| ----------------- | ------------------------------------------------------------- |
|
|
122
122
|
| `task-board` | `board`, `tasks`, `tasks-decline` |
|
|
123
123
|
| `context-fold` | `context` |
|
|
124
|
-
| `canvas-board` | `canvas`, `design`
|
|
124
|
+
| `canvas-board` | `canvas`, `design` <!-- canon-keep-retired --> |
|
|
125
125
|
| `docs-sync` | `docs`, `readme` |
|
|
126
126
|
| `draw-figure` | `figures`, `mermaid` |
|
|
127
127
|
| `create-rule` | `rule` |
|
|
@@ -150,12 +150,17 @@ The wireframes record is retired, and nothing deletes what a project holds.
|
|
|
150
150
|
|
|
151
151
|
## Keep or delete the retired product files, your call
|
|
152
152
|
|
|
153
|
-
The learning workspace,
|
|
153
|
+
The learning workspace, deck renderer, app recorder, canvas, and design install are retired with their verbs, and nothing deletes what a project holds.
|
|
154
154
|
|
|
155
|
-
- `.canon/teach/` holds
|
|
155
|
+
- `.canon/teach/` holds HTML that opens as it is <!-- canon-keep-retired -->
|
|
156
156
|
- `.canon/slides/` and a `demos/` folder hold sources nothing renders any more, so delete them once nothing cites them <!-- canon-keep-retired -->
|
|
157
|
+
- Move the `.claude/design/project/` values, `fonts/`, and `fonts.css` to the stylesheet your `canon/DESIGN.md` lead names, then delete `.claude/design/`
|
|
158
|
+
|
|
159
|
+
A reference to a retired skill takes a hand edit.
|
|
160
|
+
|
|
157
161
|
- Replace a `canon:teach-workspace` reference with `canon:teach-craft` by hand, since `canon migrate skill-names` does not rewrite it <!-- canon-keep-retired -->
|
|
158
162
|
- Delete a `canon:make-deck`, `canon:script-screencast`, `canon:record-screencast`, `canon:read-frames`, or `canon:video-craft` reference, since none has a successor <!-- canon-keep-retired -->
|
|
163
|
+
- Delete a `canon:canvas-board` reference too. Frameboard, which `canon:pick-by-eye` drives, reads each `.canon/canvas/` folder as a project, so move a kept page under one <!-- canon-keep-retired -->
|
|
159
164
|
|
|
160
165
|
## Move decisions out of a held architecture record, once
|
|
161
166
|
|
package/docs/target/projects.md
CHANGED
|
@@ -56,7 +56,7 @@ Keep the `## Scripts` table in `canon/context/development/local-loop.md` current
|
|
|
56
56
|
Before the first feature session:
|
|
57
57
|
|
|
58
58
|
1. Fill `canon/REQUIREMENTS.md` with the problem, goals, and non-goals. The seed's 600-word cap gates under `canon context audit`.
|
|
59
|
-
2. For a UI project, write `canon/DESIGN.md` from the seed and name the stylesheet in its lead, or work the direction out with `canon:
|
|
59
|
+
2. For a UI project, write `canon/DESIGN.md` from the seed and name the stylesheet in its lead, or work the direction out with `canon:pick-by-eye`
|
|
60
60
|
3. Optionally invoke `canon:draw-figure` for an architecture view. The Mermaid CLI downloads on first use.
|
|
61
61
|
4. Start the feature loop in [AI workflow](../workflow/ai-workflow.md)
|
|
62
62
|
|
package/docs/target/sync.md
CHANGED
|
@@ -51,4 +51,4 @@ Try a scenario from [sandbox](../../canon/context/development/sandbox.md) before
|
|
|
51
51
|
|
|
52
52
|
## Running sync from an agent session
|
|
53
53
|
|
|
54
|
-
`canon sync .` applies every domain sync, then offers a commit and pull request that needs a terminal.
|
|
54
|
+
`canon sync .` applies every domain sync, then offers a commit and pull request that needs a terminal. With no terminal on stdin the syncs apply, the git step is refused, and the command exits 0. Commit yourself. Sync refuses a dirty working tree, and `canon sync --check .` does not.
|
|
@@ -25,7 +25,6 @@ Groups run in the order a project meets them. Every name `canon claude skills li
|
|
|
25
25
|
| `canon:plan-groundwork` | The state is unmeasured and approaches compete |
|
|
26
26
|
| `canon:decision-escalate` | Open decisions turn on your preference |
|
|
27
27
|
| `canon:pick-by-eye` | The call is taste, wanting candidates side by side |
|
|
28
|
-
| `canon:canvas-board` | A direction should be drawn as editable frames |
|
|
29
28
|
| `canon:task-board` | A decided item needs a file on the board |
|
|
30
29
|
| `canon:plan-feature` | The approach is settled and needs a plan |
|
|
31
30
|
| `canon:codebase-layout` | A change adds a file and needs a folder |
|
|
@@ -13,14 +13,11 @@ Three tiers run from prose-only design docs to a graphical source of truth, and
|
|
|
13
13
|
The default. `canon/DESIGN.md` holds visual intent as one Overview paragraph, at most three one-line rules a section, and a table naming each color and shape role, with a lead naming the stylesheet. Claude Code alone suffices, and [`test-craft`](../../claude/skills/test-craft/SKILL.md) says which layer a Playwright journey belongs at.
|
|
14
14
|
|
|
15
15
|
- The seed is `tooling/claude/seeds/canon/DESIGN.md`, and its column headers stay verbatim
|
|
16
|
-
- `canon design render` previews it in `.canon/tmp/render/design/`
|
|
17
|
-
- `canon design install` copies a neutral base to `.claude/design/base.css`, so override values in `.claude/design/project/`. See `canon/context/features/design.md`.
|
|
18
16
|
|
|
19
17
|
These skills cover the tier:
|
|
20
18
|
|
|
21
19
|
- `canon:ui-checklist`, `canon:ux-audit`, and `canon:ux-measure` review and measure a UI
|
|
22
|
-
- `canon:pick-by-eye` drafts candidates as frames on
|
|
23
|
-
- `canon:canvas-board` works a direction out as HTML frames you edit in the browser, and hands the pick on
|
|
20
|
+
- `canon:pick-by-eye` drafts candidates as frames on a [Frameboard](https://www.npmjs.com/package/frameboard) board and takes your pick
|
|
24
21
|
- `canon:design-record` lands a pick in `canon/design/` and carries its values into `canon/DESIGN.md`
|
|
25
22
|
- `canon:design-identity` drafts a logo mark and social card
|
|
26
23
|
|