@erclx/canon 5.31.0 → 5.33.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 +1 -1
- package/claude/.claude-plugin/plugin.json +1 -1
- package/claude/skills/api-design/references/adopted.md +1 -1
- package/claude/skills/auto-ship/REQUIREMENT.md +4 -16
- package/claude/skills/auto-ship/SKILL.md +13 -58
- package/claude/skills/auto-ship/references/draft-mark.md +2 -2
- package/claude/skills/auto-ship/references/failure-recovery.md +1 -5
- package/claude/skills/auto-ship/references/tier-failures.md +1 -1
- package/claude/skills/auto-ship/references/ui-checklist.md +2 -2
- package/claude/skills/auto-ship/references/verb-absent.md +3 -27
- package/claude/skills/auto-ship/references/worktree-name.md +1 -1
- package/claude/skills/backlog-triage/REQUIREMENT.md +2 -2
- package/claude/skills/backlog-triage/SKILL.md +2 -2
- package/claude/skills/canon-cli/REQUIREMENT.md +19 -18
- package/claude/skills/canon-cli/SKILL.md +75 -32
- package/claude/skills/canon-feedback/REQUIREMENT.md +1 -1
- package/claude/skills/canon-feedback/SKILL.md +11 -14
- package/claude/skills/canon-feedback-triage/REQUIREMENT.md +13 -14
- package/claude/skills/canon-feedback-triage/SKILL.md +49 -30
- package/claude/skills/{canvas → canvas-board}/REQUIREMENT.md +5 -6
- package/claude/skills/{canvas → canvas-board}/SKILL.md +7 -7
- package/{standards → claude/skills/canvas-board/references}/canvas.md +12 -1
- package/{standards → claude/skills/canvas-board/references}/design.md +13 -5
- package/claude/skills/ci-workflow/REQUIREMENT.md +0 -1
- package/claude/skills/context-fold/REQUIREMENT.md +28 -48
- package/claude/skills/context-fold/SKILL.md +26 -95
- package/claude/skills/context-fold/references/classify.md +7 -8
- package/claude/skills/context-fold/references/completion-report.md +4 -8
- package/claude/skills/context-fold/references/context-refresh.md +7 -17
- package/{standards → claude/skills/context-fold/references}/context.md +19 -10
- package/claude/skills/context-fold/references/unusable-baseline.md +4 -8
- package/claude/skills/create-rule/REQUIREMENT.md +0 -1
- package/claude/skills/create-rule/SKILL.md +2 -2
- package/{standards → claude/skills/create-rule/references}/rule.md +12 -5
- package/claude/skills/create-skill/REQUIREMENT.md +6 -4
- package/claude/skills/create-skill/SKILL.md +10 -9
- package/{standards → claude/skills/create-skill/references}/skill-paths.md +1 -0
- package/{standards → claude/skills/create-skill/references}/skill.md +18 -15
- package/claude/skills/decision-escalate/REQUIREMENT.md +1 -1
- package/claude/skills/decision-escalate/SKILL.md +1 -1
- package/claude/skills/design-taste/REQUIREMENT.md +3 -5
- package/claude/skills/design-taste/SKILL.md +2 -4
- package/claude/skills/design-taste/references/vocabulary.md +1 -1
- package/claude/skills/docs-sync/REQUIREMENT.md +3 -3
- package/claude/skills/docs-sync/SKILL.md +3 -3
- package/{standards → claude/skills/docs-sync/references}/docs.md +11 -0
- package/{standards → claude/skills/docs-sync/references}/readme.md +9 -2
- package/claude/skills/document-health/REQUIREMENT.md +2 -2
- package/claude/skills/document-health/SKILL.md +4 -5
- package/claude/skills/document-health/references/axes.md +4 -6
- package/claude/skills/draft-and-pick/REQUIREMENT.md +16 -14
- package/claude/skills/draft-and-pick/SKILL.md +40 -32
- package/claude/skills/draft-and-pick/references/live-arms.md +9 -9
- package/claude/skills/draft-doc/REQUIREMENT.md +5 -5
- package/claude/skills/draft-doc/SKILL.md +9 -10
- package/claude/skills/draft-doc/references/requirements.md +61 -0
- package/claude/skills/draft-doc/references/wiki-kind.md +53 -0
- package/claude/skills/draft-doc/references/wiki.md +50 -30
- package/claude/skills/draft-figure/REQUIREMENT.md +2 -2
- package/claude/skills/draft-figure/SKILL.md +5 -5
- package/claude/skills/draft-figure/references/architecture-set.md +4 -4
- package/claude/skills/draft-figure/references/hand-drawn.md +2 -2
- package/claude/skills/draft-figure/references/mermaid-path.md +55 -0
- package/claude/skills/draft-figure/references/mermaid.md +43 -34
- package/claude/skills/draft-identity/REQUIREMENT.md +3 -3
- package/claude/skills/draft-identity/SKILL.md +10 -8
- package/claude/skills/draft-ready/REQUIREMENT.md +1 -1
- package/claude/skills/draft-ready/SKILL.md +7 -7
- package/claude/skills/draft-ready/references/assembly.md +1 -1
- package/{standards → claude/skills/draft-ready/references}/ready.md +13 -5
- package/claude/skills/git-branch/SKILL.md +1 -1
- package/{standards → claude/skills/git-branch/references}/branch.md +1 -1
- package/claude/skills/git-commit/SKILL.md +2 -2
- package/claude/skills/git-followup/REQUIREMENT.md +1 -1
- package/claude/skills/git-followup/SKILL.md +1 -1
- package/claude/skills/git-issue/SKILL.md +1 -1
- package/claude/skills/git-issue/references/issue.md +3 -3
- package/claude/skills/git-pr/SKILL.md +13 -13
- package/claude/skills/git-pr/references/evidence.md +2 -2
- package/claude/skills/git-pr/references/final-command.md +38 -14
- package/claude/skills/git-pr/references/labels.md +5 -1
- package/{standards → claude/skills/git-pr/references}/pr.md +19 -9
- package/{standards → claude/skills/git-pr/references}/publish.md +5 -3
- package/claude/skills/git-pr/references/task-number.md +1 -1
- package/claude/skills/git-ship/REQUIREMENT.md +0 -2
- package/claude/skills/git-ship/SKILL.md +5 -12
- package/claude/skills/git-split/SKILL.md +3 -3
- package/claude/skills/git-stage/SKILL.md +1 -1
- package/claude/skills/plan-feature/REQUIREMENT.md +1 -1
- package/claude/skills/plan-feature/SKILL.md +2 -6
- package/{standards → claude/skills/plan-feature/references}/plan.md +9 -10
- package/claude/skills/plan-groundwork/SKILL.md +5 -6
- package/{standards → claude/skills/plan-groundwork/references}/groundwork.md +17 -4
- package/claude/skills/plan-intake/SKILL.md +2 -3
- package/{standards → claude/skills/plan-intake/references}/intake.md +17 -2
- package/claude/skills/plan-intake-answer/REQUIREMENT.md +1 -1
- package/claude/skills/plan-intake-answer/SKILL.md +1 -1
- package/claude/skills/review-address/SKILL.md +2 -2
- package/claude/skills/review-address/references/post-review-findings.md +1 -1
- package/claude/skills/review-craft/REQUIREMENT.md +3 -3
- package/claude/skills/review-craft/SKILL.md +2 -2
- package/claude/skills/review-craft/references/ui.md +4 -4
- package/claude/skills/review-pr/REQUIREMENT.md +2 -2
- package/claude/skills/review-pr/SKILL.md +8 -10
- package/claude/skills/review-pr/references/body-variants.md +2 -2
- package/claude/skills/review-pr/references/key-changes.md +3 -3
- package/claude/skills/review-pr/references/post.md +4 -2
- package/claude/skills/review-ui/REQUIREMENT.md +1 -2
- package/claude/skills/review-ui/SKILL.md +2 -2
- package/claude/skills/review-ui/references/post.md +1 -1
- package/claude/skills/role-orchestrator/REQUIREMENT.md +3 -3
- package/claude/skills/role-orchestrator/SKILL.md +10 -10
- package/claude/skills/role-orchestrator/references/orchestrator-dispatch.md +3 -3
- package/claude/skills/role-orchestrator/references/orchestrator-handoff.md +9 -9
- package/claude/skills/role-orchestrator/references/orchestrator-launch.md +23 -1
- package/claude/skills/role-orchestrator/references/orchestrator-parked.md +2 -2
- package/claude/skills/role-orchestrator/references/orchestrator-refill.md +2 -5
- package/claude/skills/role-orchestrator/references/orchestrator-resume.md +4 -1
- package/claude/skills/role-planner/REQUIREMENT.md +2 -1
- package/claude/skills/role-planner/SKILL.md +15 -4
- package/claude/skills/role-reviewer/SKILL.md +2 -2
- package/claude/skills/role-worker/REQUIREMENT.md +1 -0
- package/claude/skills/role-worker/SKILL.md +11 -3
- package/claude/skills/session-compact/REQUIREMENT.md +1 -4
- package/claude/skills/session-compact/SKILL.md +3 -13
- package/claude/skills/session-compact/references/handoff-note.md +2 -2
- package/claude/skills/session-map/REQUIREMENT.md +1 -9
- package/claude/skills/session-map/SKILL.md +9 -17
- package/{standards → claude/skills/session-map/references}/session.md +17 -11
- package/claude/skills/session-relay/REQUIREMENT.md +1 -1
- package/claude/skills/session-resume/REQUIREMENT.md +6 -8
- package/claude/skills/session-resume/SKILL.md +3 -9
- package/claude/skills/session-worktree/SKILL.md +6 -6
- package/claude/skills/session-worktree/references/main-root-writes.md +2 -2
- package/claude/skills/systematic-debugging/REQUIREMENT.md +0 -1
- package/claude/skills/target-check/REQUIREMENT.md +3 -3
- package/claude/skills/target-check/SKILL.md +1 -1
- package/claude/skills/target-check/references/domains.md +1 -1
- package/claude/skills/target-setup/REQUIREMENT.md +4 -4
- package/claude/skills/target-setup/SKILL.md +3 -3
- package/claude/skills/target-setup/references/detect.md +2 -2
- package/claude/skills/task-board/REQUIREMENT.md +7 -12
- package/claude/skills/task-board/SKILL.md +9 -21
- package/{standards → claude/skills/task-board/references}/board.md +9 -0
- package/claude/skills/task-board/references/decline.md +1 -1
- package/{standards → claude/skills/task-board/references}/tasks.md +15 -10
- package/claude/skills/task-complete/REQUIREMENT.md +47 -0
- package/claude/skills/task-complete/SKILL.md +86 -0
- package/claude/skills/{task-board → task-complete}/references/archive.md +5 -5
- package/claude/skills/task-complete/references/receipt-sweep.md +32 -0
- package/claude/skills/task-complete/references/unusable-baseline.md +19 -0
- package/claude/skills/teach-workspace/REQUIREMENT.md +6 -2
- package/claude/skills/teach-workspace/SKILL.md +9 -5
- package/claude/skills/teach-workspace/references/lesson-craft.md +1 -1
- package/claude/skills/teach-workspace/references/promotion-fold.md +29 -0
- package/claude/skills/teach-workspace/references/promotion.md +3 -3
- package/claude/skills/teach-workspace/references/revisit.md +1 -1
- package/{standards → claude/skills/teach-workspace/references}/teach.md +17 -5
- package/claude/skills/ui-checklist/SKILL.md +1 -1
- package/claude/skills/ux-audit/REQUIREMENT.md +2 -2
- package/claude/skills/ux-audit/SKILL.md +3 -4
- package/claude/skills/ux-measure/SKILL.md +1 -1
- package/claude/skills/write-human/REQUIREMENT.md +0 -1
- package/claude/skills/write-human/SKILL.md +1 -1
- package/docs/agents/audits.md +1 -1
- package/docs/agents/canvas.md +1 -1
- package/docs/agents/commands.md +4 -8
- package/docs/agents/context-audit-checks.md +11 -25
- package/docs/agents/context-audit.md +7 -15
- package/docs/agents/context-classify.md +5 -5
- package/docs/agents/counts.md +5 -5
- package/docs/agents/drift-surfaces.md +2 -2
- package/docs/agents/index.md +5 -7
- package/docs/agents/indexes.md +1 -1
- package/docs/agents/install-and-sync.md +6 -11
- package/docs/agents/intake.md +1 -1
- package/docs/agents/key-changes.md +5 -5
- package/docs/agents/label-coverage.md +11 -0
- package/docs/agents/migrate.md +1 -1
- package/docs/agents/records-push.md +2 -2
- package/docs/agents/records-stale.md +13 -48
- package/docs/agents/records-validate.md +4 -8
- package/docs/agents/records.md +6 -28
- package/docs/agents/restated.md +1 -1
- package/docs/agents/rule-citations.md +2 -2
- package/docs/agents/sandbox.md +4 -4
- package/docs/agents/skills-audit.md +2 -2
- package/docs/agents/state-scoped-risk.md +2 -2
- package/docs/agents/superseded.md +2 -2
- package/docs/agents/tasks-plans.md +1 -1
- package/docs/agents/tasks-validate.md +1 -1
- package/docs/agents/tasks.md +3 -3
- package/docs/agents/teach.md +1 -1
- package/docs/agents/upstream.md +26 -2
- package/docs/target/migrations.md +32 -0
- package/docs/target/projects.md +5 -7
- package/docs/target/scenarios.md +2 -2
- package/docs/target/sync.md +4 -4
- package/docs/workflow/ai-workflow.md +7 -38
- package/docs/workflow/index.md +1 -1
- package/docs/workflow/operating-model.md +10 -10
- package/docs/workflow/parallel-features.md +12 -12
- package/docs/workflow/skill-map-on-request.md +21 -24
- package/docs/workflow/skill-map.md +23 -34
- package/docs/workflow/visual-design-workflow.md +13 -16
- package/governance/renames.toml +0 -30
- package/governance/rules/canon/605-worktrees.md +1 -1
- package/governance/rules/canon/context.md +13 -0
- package/governance/rules/{standards → canon}/plan.md +4 -5
- package/governance/rules/canon/tasks.md +18 -0
- package/governance/rules/claude/skill.md +17 -0
- package/governance/stacks/base.toml +2 -4
- package/package.json +4 -4
- package/scripts/core/install-check.sh +4 -4
- package/scripts/core/regen-web-previews.ts +1 -1
- package/scripts/lib/ui.sh +0 -159
- package/src/audits/catalog.ts +5 -98
- package/src/claude/cases/authoring.ts +0 -18
- package/src/claude/cases/misc.ts +1 -14
- package/src/claude/cases/setup.ts +7 -20
- package/src/claude/cases/workflow.ts +6 -34
- package/src/claude/seeds.ts +1 -7
- package/src/claude/skills-audit.ts +3 -3
- package/src/cli/help.ts +4 -5
- package/src/cli/ui.ts +2 -3
- package/src/cli.ts +0 -4
- package/src/commands/claude.ts +9 -15
- package/src/commands/context.ts +18 -280
- package/src/commands/feedback.ts +22 -91
- package/src/commands/gov.ts +2 -15
- package/src/commands/labels.ts +326 -7
- package/src/commands/migrate.ts +6 -1
- package/src/commands/pr.ts +1 -1
- package/src/commands/records.ts +17 -403
- package/src/commands/sandbox.ts +3 -6
- package/src/commands/sync.ts +5 -3
- package/src/commands/tasks.ts +3 -3
- package/src/commands/upstream.ts +135 -0
- package/src/context/audit.ts +10 -19
- package/src/context/classify/extract.ts +6 -13
- package/src/context/classify/patterns.ts +2 -41
- package/src/context/classify/prompts.ts +2 -6
- package/src/context/classify/run.ts +3 -3
- package/src/context/folders.ts +8 -13
- package/src/context/gate.ts +11 -91
- package/src/context/requirements.ts +13 -4
- package/src/counts/scan.ts +3 -3
- package/src/design/budget.ts +1 -1
- package/src/design/components.ts +3 -3
- package/src/design/document.ts +1 -1
- package/src/design/regen.ts +1 -1
- package/src/design/render.ts +1 -1
- package/src/feedback/body.ts +0 -12
- package/src/gate/measures.ts +7 -58
- package/src/gate/sequencer.ts +56 -1
- package/src/gate/stages.ts +1 -7
- package/src/gov/citations.ts +9 -3
- package/src/gov/install.ts +2 -3
- package/src/gov/restated.ts +3 -3
- package/src/gov/stacks.ts +1 -1
- package/src/hooks/post-merge.ts +1 -1
- package/src/labels/apply.ts +39 -0
- package/src/labels/format.ts +3 -3
- package/src/labels/phase.ts +3 -3
- package/src/labels/sections.ts +43 -0
- package/src/markdown/structure.ts +2 -2
- package/src/migrate/record-layout.ts +3 -3
- package/src/migrate/skill-names.ts +20 -1
- package/src/pr/paths.ts +4 -4
- package/src/records/backup.ts +16 -6
- package/src/records/ordinal.ts +1 -1
- package/src/records/prune.ts +2 -1
- package/src/records/stale-canonical.ts +33 -3
- package/src/records/validate.ts +2 -188
- package/src/roots/record.ts +1 -1
- package/src/sandbox/census.ts +1 -1
- package/src/sandbox/coverage.ts +2 -6
- package/src/sandbox/equivalence.ts +5 -44
- package/src/sandbox/expect.ts +4 -4
- package/src/sandbox/provision.ts +13 -36
- package/src/sandbox/scenario.ts +137 -55
- package/src/sandbox/tree.ts +2 -6
- package/src/shipped/references.ts +3 -3
- package/src/standards/read.ts +44 -0
- package/src/sync/git.ts +1 -1
- package/src/sync/seeds-report.ts +1 -1
- package/src/tasks/archive.ts +5 -5
- package/src/tasks/branch.ts +3 -3
- package/src/tasks/label.ts +1 -1
- package/src/tasks/reach.ts +2 -2
- package/src/tasks/record.ts +2 -2
- package/src/tasks/validate.ts +2 -2
- package/src/teach/workspace.ts +1 -1
- package/src/upstream/cursor.ts +1 -1
- package/src/upstream/due.ts +128 -0
- package/src/upstream/releases.ts +2 -1
- package/standards/index.md +0 -35
- package/standards/standard.md +1 -7
- package/tooling/base/reference.md +2 -2
- package/tooling/base/seeds/.github/pull_request_template.md +2 -2
- package/tooling/claude/reference.md +7 -21
- package/tooling/claude/seeds/.claude/hooks/pr-create-log.sh +9 -1
- package/tooling/claude/seeds/.claude/hooks/records-index.sh +8 -20
- package/tooling/claude/seeds/.claude/hooks/review-post-scan.sh +171 -0
- package/tooling/claude/seeds/.claude/hooks/standards-audit.sh +3 -3
- package/tooling/claude/seeds/.claude/settings.json +9 -0
- package/tooling/claude/seeds/CLAUDE.md +1 -3
- package/tooling/claude/seeds/canon/REQUIREMENTS.md +2 -9
- package/tooling/web/configs/e2e/screenshot.ts +0 -1
- package/claude/skills/auto-ship/references/review-findings.md +0 -20
- package/claude/skills/bash-cli-script/REQUIREMENT.md +0 -43
- package/claude/skills/bash-cli-script/SKILL.md +0 -53
- package/claude/skills/bash-cli-script/references/template.md +0 -19
- package/claude/skills/canon-operator/REQUIREMENT.md +0 -62
- package/claude/skills/canon-operator/SKILL.md +0 -113
- package/claude/skills/canon-rollout/REQUIREMENT.md +0 -59
- package/claude/skills/canon-rollout/SKILL.md +0 -140
- package/claude/skills/canon-rollout/references/failure-recovery.md +0 -20
- package/claude/skills/context-fold/references/anchor-sweep.md +0 -58
- package/claude/skills/context-fold/references/promoted-pages.md +0 -29
- package/claude/skills/context-fold/references/receipt-sweep.md +0 -43
- package/claude/skills/context-fold/references/wireframe-sweep.md +0 -45
- package/claude/skills/create-standard/REQUIREMENT.md +0 -33
- package/claude/skills/create-standard/SKILL.md +0 -31
- package/claude/skills/design-extract/REQUIREMENT.md +0 -42
- package/claude/skills/design-extract/SKILL.md +0 -108
- package/claude/skills/draft-and-pick/references/frame.html +0 -118
- package/claude/skills/draft-doc/references/wireframes.md +0 -48
- package/claude/skills/markdown-propose/REQUIREMENT.md +0 -47
- package/claude/skills/markdown-propose/SKILL.md +0 -122
- package/claude/skills/markdown-propose/references/format.md +0 -118
- package/claude/skills/memory-capture/REQUIREMENT.md +0 -50
- package/claude/skills/memory-capture/SKILL.md +0 -117
- package/claude/skills/memory-review/REQUIREMENT.md +0 -52
- package/claude/skills/memory-review/SKILL.md +0 -129
- package/claude/skills/memory-review/references/later-phases.md +0 -118
- package/claude/skills/memory-review/references/receipt-format.md +0 -64
- package/claude/skills/project-commands/REQUIREMENT.md +0 -42
- package/claude/skills/project-commands/SKILL.md +0 -87
- package/claude/skills/repo-metadata/REQUIREMENT.md +0 -37
- package/claude/skills/repo-metadata/SKILL.md +0 -54
- package/claude/skills/restate-plainly/REQUIREMENT.md +0 -41
- package/claude/skills/restate-plainly/SKILL.md +0 -41
- package/claude/skills/review-branch/REQUIREMENT.md +0 -40
- package/claude/skills/review-branch/SKILL.md +0 -137
- package/claude/skills/seed-sync/REQUIREMENT.md +0 -45
- package/claude/skills/seed-sync/SKILL.md +0 -158
- package/claude/skills/sketch-design/REQUIREMENT.md +0 -38
- package/claude/skills/sketch-design/SKILL.md +0 -94
- package/claude/skills/ux-walkthrough/REQUIREMENT.md +0 -56
- package/claude/skills/ux-walkthrough/SKILL.md +0 -53
- package/claude/skills/ux-walkthrough/references/builds.md +0 -15
- package/claude/skills/ux-walkthrough/references/candidate-pages.md +0 -11
- package/claude/skills/ux-walkthrough/references/measuring.md +0 -22
- package/claude/skills/ux-walkthrough/references/record.md +0 -36
- package/claude/skills/ux-walkthrough/references/relay.md +0 -25
- package/docs/agents/architecture-record.md +0 -36
- package/docs/agents/review-classification.md +0 -76
- package/governance/rules/canon/603-memory.md +0 -11
- package/governance/rules/lang/120-bash.md +0 -18
- package/governance/rules/standards/architecture.md +0 -13
- package/governance/rules/standards/context.md +0 -14
- package/governance/rules/standards/design.md +0 -12
- package/governance/rules/standards/groundwork.md +0 -13
- package/governance/rules/standards/intake.md +0 -12
- package/governance/rules/standards/memory.md +0 -12
- package/governance/rules/standards/readme.md +0 -12
- package/governance/rules/standards/ready.md +0 -13
- package/governance/rules/standards/requirements.md +0 -12
- package/governance/rules/standards/rule.md +0 -13
- package/governance/rules/standards/session.md +0 -13
- package/governance/rules/standards/skill.md +0 -21
- package/governance/rules/standards/standard.md +0 -13
- package/governance/rules/standards/tasks.md +0 -15
- package/governance/rules/standards/teach.md +0 -14
- package/governance/rules/standards/wiki.md +0 -13
- package/governance/rules/standards/wireframes.md +0 -13
- package/scripts/config.sh +0 -11
- package/scripts/lib/gov.sh +0 -14
- package/scripts/lib/sandbox-fixtures.sh +0 -191
- package/scripts/lib/sandbox-git.sh +0 -125
- package/scripts/lib/sandbox-path.sh +0 -50
- package/scripts/sandbox-hook.sh +0 -99
- package/src/autoship/classify.ts +0 -75
- package/src/autoship/paths.ts +0 -50
- package/src/commands/autoship.ts +0 -129
- package/src/commands/repo.ts +0 -393
- package/src/context/architecture.ts +0 -654
- package/src/context/wireframe-states.ts +0 -238
- package/src/gov/standard-rules.ts +0 -179
- package/src/records/migrate.ts +0 -78
- package/src/records/stale.ts +0 -243
- package/src/repo/metadata.ts +0 -206
- package/src/sandbox/hooks.ts +0 -128
- package/standards/architecture.md +0 -127
- package/standards/memory.md +0 -158
- package/standards/mermaid.md +0 -64
- package/standards/requirements.md +0 -79
- package/standards/wiki.md +0 -77
- package/standards/wireframes.md +0 -143
- package/tooling/claude/seeds/.claude/memory/index.md +0 -8
- package/tooling/claude/seeds/canon/ARCHITECTURE.md +0 -23
- package/tooling/claude/seeds/canon/wireframes/index.md +0 -8
- /package/{standards → claude/skills/create-skill/references}/skill-practice.md +0 -0
- /package/{standards → claude/skills/create-skill/references}/skill-requirement.md +0 -0
- /package/{standards → claude/skills/draft-figure/references}/figures.md +0 -0
- /package/{standards → claude/skills/git-branch/references}/slug.md +0 -0
- /package/{standards → claude/skills/git-commit/references}/commit.md +0 -0
- /package/{standards → claude/skills/git-commit/references}/versioning.md +0 -0
- /package/{standards → claude/skills/plan-feature/references}/plan-lifecycle.md +0 -0
- /package/{standards → claude/skills/plan-groundwork/references}/groundwork-spikes.md +0 -0
- /package/{standards → claude/skills/task-board/references}/tasks-decline.md +0 -0
- /package/{standards → claude/skills/teach-workspace/references}/glossary.md +0 -0
|
@@ -10,33 +10,30 @@ These two groups hold the skills no single moment in a project's life calls for,
|
|
|
10
10
|
|
|
11
11
|
## Generate an artifact on demand
|
|
12
12
|
|
|
13
|
-
| Skill | When to use
|
|
14
|
-
| ------------------------- |
|
|
15
|
-
| `canon:create-rule` | For a project-specific governance rule the toolkit does not ship
|
|
16
|
-
| `canon:create-skill` | For a new `SKILL.md`
|
|
17
|
-
| `canon:
|
|
18
|
-
| `canon:draft-
|
|
19
|
-
| `canon:draft-
|
|
20
|
-
| `canon:
|
|
21
|
-
| `canon:
|
|
22
|
-
| `canon:
|
|
23
|
-
| `canon:
|
|
24
|
-
| `canon:draft-
|
|
25
|
-
| `canon:record-screencast` | For recording a screencast draft, then composing the take into a finished mp4 when the draft asks for a wrap |
|
|
26
|
-
| `canon:draft-identity` | For a project's logo mark and its social card, drafted through `draft-and-pick`'s pick loop |
|
|
13
|
+
| Skill | When to use |
|
|
14
|
+
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
|
|
15
|
+
| `canon:create-rule` | For a project-specific governance rule the toolkit does not ship |
|
|
16
|
+
| `canon:create-skill` | For a new `SKILL.md` |
|
|
17
|
+
| `canon:draft-doc` | For a brand-new `docs/` page, context entry, wiki reference page, or `README.md`, drafted against the standard for its kind |
|
|
18
|
+
| `canon:draft-ready` | For finished files a worker should copy, written as a ready folder with its overview, thin plan, and task |
|
|
19
|
+
| `canon:draft-figure` | For a hand-drawn figure or an architecture view inside an existing doc, drafted in Mermaid or freehand SVG |
|
|
20
|
+
| `canon:ci-workflow` | For a GitHub Actions workflow file |
|
|
21
|
+
| `canon:draft-slides` | For a deck, drawn as HTML slides in its own folder and rendered to editable PowerPoint |
|
|
22
|
+
| `canon:draft-screencast` | For a recording script with beats and defaults already seeded |
|
|
23
|
+
| `canon:record-screencast` | For recording a screencast draft, then composing the take into a finished mp4 when the draft asks for a wrap |
|
|
24
|
+
| `canon:draft-identity` | For a project's logo mark and its social card, drafted through `draft-and-pick`'s pick loop |
|
|
27
25
|
|
|
28
26
|
## Answer a question at any point
|
|
29
27
|
|
|
30
|
-
| Skill | When to use
|
|
31
|
-
| --------------------------- |
|
|
32
|
-
| `canon:canon-cli` |
|
|
33
|
-
| `canon:youtube-transcripts` | When a video transcript is wanted in the repo as context
|
|
34
|
-
| `canon:read-frames` | To read a recorded demo back frame by frame and report what each one shows, with no verdict on whether the recording looks right
|
|
35
|
-
| `canon:teach-workspace` | To learn a subject across sessions, in a workspace that holds the progress
|
|
36
|
-
| `canon:markdown-craft` | Before a substantial markdown edit, for the format and structure rules and the audit that follows
|
|
37
|
-
| `canon:write-human` | Before drafting or revising prose, for voice, rhythm, and density
|
|
38
|
-
| `canon:restate-plainly` | When an answer or a document has to be read again in plain words |
|
|
28
|
+
| Skill | When to use |
|
|
29
|
+
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
|
|
30
|
+
| `canon:canon-cli` | To pick the `canon` verb that does a job, or before a sync or migrate, to learn which verbs can lose the project's edits |
|
|
31
|
+
| `canon:youtube-transcripts` | When a video transcript is wanted in the repo as context |
|
|
32
|
+
| `canon:read-frames` | To read a recorded demo back frame by frame and report what each one shows, with no verdict on whether the recording looks right |
|
|
33
|
+
| `canon:teach-workspace` | To learn a subject across sessions, in a workspace that holds the progress |
|
|
34
|
+
| `canon:markdown-craft` | Before a substantial markdown edit, for the format and structure rules and the audit that follows |
|
|
35
|
+
| `canon:write-human` | Before drafting or revising prose, for voice, rhythm, and density |
|
|
39
36
|
|
|
40
37
|
Every row answers a question rather than marking a point in a project's life, so filing one under a phase on the [skill map](skill-map.md) would send a reader to the wrong group.
|
|
41
38
|
|
|
42
|
-
A learning workspace produces two halves and only one of them leaves. A lesson is worked through once and stays in the workspace, and a reference page or a glossary carries no learner, so it belongs wherever the project already keeps prose on that subject. Asking `canon:teach-workspace` to promote sorts each durable page by who owns its subject, sending an Anthropic-owned subject to the wiki, an internal one to the matching context entry, and everything else, subject-neutral material included, to the public docs. It proposes and waits, because a promoted page is public prose that needs a line naming who owns the subject, and it writes nothing to a destination: each page the operator confirms goes to a handoff file that `canon:
|
|
39
|
+
A learning workspace produces two halves and only one of them leaves. A lesson is worked through once and stays in the workspace, and a reference page or a glossary carries no learner, so it belongs wherever the project already keeps prose on that subject. Asking `canon:teach-workspace` to promote sorts each durable page by who owns its subject, sending an Anthropic-owned subject to the wiki, an internal one to the matching context entry, and everything else, subject-neutral material included, to the public docs. It proposes and waits, because a promoted page is public prose that needs a line naming who owns the subject, and it writes nothing to a destination: each page the operator confirms goes to a handoff file that `canon:teach-workspace` folds in from a branch in its fold mode. A project with no wiki folder gets a refusal naming `canon wiki init` rather than a folder it never asked for.
|
|
@@ -14,14 +14,10 @@ Each row sits under the group its skill's `metadata.family` names. The landing p
|
|
|
14
14
|
|
|
15
15
|
## Set up a project
|
|
16
16
|
|
|
17
|
-
| Skill
|
|
18
|
-
|
|
|
19
|
-
| `canon:target-setup`
|
|
20
|
-
| `canon:
|
|
21
|
-
| `canon:sketch-design` | Before `design-extract`'s greenfield path, to trace a design direction from reference images or URLs |
|
|
22
|
-
| `canon:design-extract` | Before the first UI feature, to draft `canon/DESIGN.md` |
|
|
23
|
-
| `canon:deploy-app` | Once a project is ready to publish, to set up its Cloudflare or Vercel deploy and stop for token and domain |
|
|
24
|
-
| `canon:repo-metadata` | When the GitHub About text, homepage, or topics may have drifted, to reconcile them against the README |
|
|
17
|
+
| Skill | When to use |
|
|
18
|
+
| -------------------- | ----------------------------------------------------------------------------------------------------------- |
|
|
19
|
+
| `canon:target-setup` | On a fresh scaffold, to detect the stack and run the install chain, or to reach one phase of it alone |
|
|
20
|
+
| `canon:deploy-app` | Once a project is ready to publish, to set up its Cloudflare or Vercel deploy and stop for token and domain |
|
|
25
21
|
|
|
26
22
|
## Decide what to build
|
|
27
23
|
|
|
@@ -33,8 +29,8 @@ Each row sits under the group its skill's `metadata.family` names. The landing p
|
|
|
33
29
|
| `canon:plan-groundwork` | When the state is unmeasured and more than one approach is live |
|
|
34
30
|
| `canon:decision-escalate` | When open decisions turn on your preference and want batching into one set |
|
|
35
31
|
| `canon:draft-and-pick` | When the call is taste and wants several candidates rendered side by side |
|
|
36
|
-
| `canon:canvas`
|
|
37
|
-
| `canon:task-board` | When a decided item needs a file on the board, or
|
|
32
|
+
| `canon:canvas-board` | When a direction should be drawn as frames the operator can see, select, and edit |
|
|
33
|
+
| `canon:task-board` | When a decided item needs a file on the board, or one is decided against |
|
|
38
34
|
| `canon:plan-feature` | When the approach is settled and the next step is a plan |
|
|
39
35
|
| `canon:codebase-layout` | When a plan or change adds a file and you need to decide which folder holds it |
|
|
40
36
|
|
|
@@ -43,8 +39,7 @@ Each row sits under the group its skill's `metadata.family` names. The landing p
|
|
|
43
39
|
| Skill | When to use |
|
|
44
40
|
| ----------------------------- | ---------------------------------------------------------------------------------------------------------- |
|
|
45
41
|
| `canon:session-worktree` | At the plan-to-execute boundary, to get an isolated tree and branch, or to route a refused main-root write |
|
|
46
|
-
| `canon:auto-ship` | After plan approval, to chain implement, verify,
|
|
47
|
-
| `canon:project-commands` | When the project's own command needs running |
|
|
42
|
+
| `canon:auto-ship` | After plan approval, to chain implement, verify, draft PR |
|
|
48
43
|
| `canon:test-first` | Before implementing a planned change, to run its test red, green, then refactor |
|
|
49
44
|
| `canon:test-craft` | When writing or changing any test, to pick its layer and filter what it asserts |
|
|
50
45
|
| `canon:build-in-slices` | While building a plan, to commit each tested slice and note out-of-scope defects rather than fix them |
|
|
@@ -60,28 +55,24 @@ Each row sits under the group its skill's `metadata.family` names. The landing p
|
|
|
60
55
|
|
|
61
56
|
## Check the work before it leaves the branch
|
|
62
57
|
|
|
63
|
-
| Skill
|
|
64
|
-
|
|
|
65
|
-
| `canon:
|
|
66
|
-
| `canon:
|
|
67
|
-
| `canon:
|
|
68
|
-
| `canon:ux-audit` | To read UI source for missing states, edge cases, and inconsistencies |
|
|
69
|
-
| `canon:ux-measure` | To start the interface and measure paint, processor, and layout cost |
|
|
70
|
-
| `canon:ux-walkthrough` | To run a multi-finding inspection pass over a running app with the operator |
|
|
58
|
+
| Skill | When to use |
|
|
59
|
+
| ----------------------- | --------------------------------------------------------------------------------- |
|
|
60
|
+
| `canon:document-health` | When the documents themselves have to answer for length, placement, and staleness |
|
|
61
|
+
| `canon:ux-audit` | To read UI source for missing states, edge cases, and inconsistencies |
|
|
62
|
+
| `canon:ux-measure` | To start the interface and measure paint, processor, and layout cost |
|
|
71
63
|
|
|
72
64
|
## Ship it
|
|
73
65
|
|
|
74
|
-
| Skill
|
|
75
|
-
|
|
|
76
|
-
| `canon:git-ship`
|
|
77
|
-
| `canon:
|
|
78
|
-
| `canon:
|
|
79
|
-
| `canon:docs-sync`
|
|
80
|
-
| `canon:git-stage`
|
|
81
|
-
| `canon:git-commit`
|
|
82
|
-
| `canon:git-branch`
|
|
83
|
-
| `canon:git-pr`
|
|
84
|
-
| `canon:memory-review` | When the pen has grown, to propose where each entry belongs |
|
|
66
|
+
| Skill | When to use |
|
|
67
|
+
| --------------------- | ----------------------------------------------------------------------------------------------- |
|
|
68
|
+
| `canon:git-ship` | To run the whole post-feature chain from the verify gate through open PR |
|
|
69
|
+
| `canon:context-fold` | When decisions diverged from the plan, or the diff left a context entry stale |
|
|
70
|
+
| `canon:task-complete` | After the fold, to mark the outcomes the diff shipped, or to archive a task the merge hook left |
|
|
71
|
+
| `canon:docs-sync` | When a change since main left `README.md` or `docs/` stale |
|
|
72
|
+
| `canon:git-stage` | When the staged set spans several concerns and wants one commit each |
|
|
73
|
+
| `canon:git-commit` | When the staged set is one concern, or was staged hunk by hand |
|
|
74
|
+
| `canon:git-branch` | When a branch name needs generating or renaming to conventional form |
|
|
75
|
+
| `canon:git-pr` | When a pull request needs a title and body written from the diff |
|
|
85
76
|
|
|
86
77
|
## After the pull request opens
|
|
87
78
|
|
|
@@ -113,7 +104,5 @@ Each row sits under the group its skill's `metadata.family` names. The landing p
|
|
|
113
104
|
| Skill | When to use |
|
|
114
105
|
| ----------------------------- | -------------------------------------------------------------------------------------- |
|
|
115
106
|
| `canon:target-check` | In a target project, to report per domain what it holds against what the toolkit ships |
|
|
116
|
-
| `canon:seed-sync` | After a toolkit update, to reconcile installed seeds without losing customizations |
|
|
117
107
|
| `canon:canon-feedback` | When something in the toolkit is broken, missing, or off, to open an issue on it |
|
|
118
|
-
| `canon:canon-feedback-triage` | In the toolkit repo, to
|
|
119
|
-
| `canon:canon-rollout` | In the toolkit repo, to take one change out to every consuming project at once |
|
|
108
|
+
| `canon:canon-feedback-triage` | In the toolkit repo, to file the open feedback issues into an intake folder |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Visual design workflow
|
|
3
|
-
description: Tiered guide for design
|
|
3
|
+
description: Tiered guide for design authoring with Claude Code
|
|
4
4
|
category: Workflow
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -14,17 +14,17 @@ The tier framework sits alongside [Claude Design](../../wiki/claude/design.md),
|
|
|
14
14
|
|
|
15
15
|
## Tier 0: prose only
|
|
16
16
|
|
|
17
|
-
The default. `canon/DESIGN.md` holds visual intent as token tables for color, typography, spacing, and borders, with one Personality paragraph and at most three one-line rules a section, motion and iconography included.
|
|
17
|
+
The default. `canon/DESIGN.md` holds visual intent as token tables for color, typography, spacing, and borders, with one Personality paragraph and at most three one-line rules a section, motion and iconography included.
|
|
18
18
|
|
|
19
|
-
Claude Code reads
|
|
19
|
+
Claude Code reads it and writes the implementation. Works for CLI tools, internal dashboards, admin panels, and backend-focused projects.
|
|
20
20
|
|
|
21
21
|
### Seed shape
|
|
22
22
|
|
|
23
|
-
The toolkit seed in `tooling/claude/seeds/canon/DESIGN.md` ships a token-table template with a starting set of roles, and `
|
|
23
|
+
The toolkit seed in `tooling/claude/seeds/canon/DESIGN.md` ships a token-table template with a starting set of roles, and `claude/skills/canvas-board/references/design.md` carries the same tables under `## Template` with placeholder rows. The column headers are what the renderer parses, so they stay verbatim in either, while the rows and values are the project's own.
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
`canon design render` writes an HTML plus CSS preview to `.canon/tmp/render/design/` for eyeballing the current system without leaving Claude Code. See `canon/context/design/index.md`.
|
|
26
26
|
|
|
27
|
-
A project wanting a neutral starting point to override runs `canon design install`, which copies one stylesheet to `.claude/design/base.css` carrying an achromatic token set as custom properties and two components built on them. Greys run from near-black to near-white and the accent is monochrome, so the only palette the project renders is one it writes itself. That file is toolkit-owned and `canon design sync` refreshes it, so a project overrides a value in `.claude/design/project/` instead, which sync never touches. Nothing arrives without that install, and the two channels are independent: a record
|
|
27
|
+
A project wanting a neutral starting point to override runs `canon design install`, which copies one stylesheet to `.claude/design/base.css` carrying an achromatic token set as custom properties and two components built on them. Greys run from near-black to near-white and the accent is monochrome, so the only palette the project renders is one it writes itself. That file is toolkit-owned and `canon design sync` refreshes it, so a project overrides a value in `.claude/design/project/` instead, which sync never touches. Nothing arrives without that install, and the two channels are independent: a record the project wrote is its own, and the installed stylesheet is the toolkit's.
|
|
28
28
|
|
|
29
29
|
A cell no source anchors ends in `? verify`, and the preview shows that marker beside the value rather than folding it in, so a swatch and a font sample stay built from the value alone. A confidence line above the sections names how many cells are anchored against how many are tagged, which is what tells a reader whether they are looking at a record of the code or a proposal about it. It reads the columns a source could anchor and leaves out the row names, so the ratio is not diluted by cells no tag could ever reach. The proposal path tags nearly all of them, so that count reads low on day one by design.
|
|
30
30
|
|
|
@@ -35,14 +35,11 @@ A cell no source anchors ends in `? verify`, and the preview shows that marker b
|
|
|
35
35
|
|
|
36
36
|
### Skills
|
|
37
37
|
|
|
38
|
-
- `canon:sketch-design` to trace a design direction from reference images or URLs, before `design-extract`'s greenfield path proposes from a personality paragraph alone
|
|
39
|
-
- `canon:design-extract` to draft `canon/DESIGN.md`, from existing project signals or from requirements alone on day one
|
|
40
38
|
- `canon:ui-checklist` for what a reviewer has to look at after UI changes, and what ships without a test
|
|
41
39
|
- `canon:ux-audit` for UX gap detection on existing surfaces
|
|
42
40
|
- `canon:ux-measure` for what a running surface costs to paint, read against published thresholds
|
|
43
|
-
- `canon:draft-and-pick` for a call settled by looking, drafting several candidates
|
|
44
|
-
- `canon:canvas` for a direction worked out over several turns, drawn as HTML frames you drag, select, and restyle in the browser while the session reads your changes back. Only the pick moves into `canon/DESIGN.md`, since the canvas folder is gitignored
|
|
45
|
-
- `canon:ux-walkthrough` for a multi-finding inspection pass over a running app with the operator, drafting arms from the app's own markup and recording each pick for a builder
|
|
41
|
+
- `canon:draft-and-pick` for a call settled by looking, drafting several candidates as frames on the canvas and taking your pick
|
|
42
|
+
- `canon:canvas-board` for a direction worked out over several turns, drawn as HTML frames you drag, select, and restyle in the browser while the session reads your changes back. Only the pick moves into `canon/DESIGN.md`, since the canvas folder is gitignored
|
|
46
43
|
- `canon:draft-identity` to draft a project's logo mark and compose it into an icon sequence and a social card, through `draft-and-pick`'s own render-and-pick loop. On an Astro project holding the card route scaffold, the card lands as a route the project keeps and is captured through a running server, so it reads the project's real stylesheet rather than typed copies of every color. Everywhere else it ships as a PNG and the run says so.
|
|
47
44
|
- Anthropic's `frontend-design` plugin optional for light visual steering
|
|
48
45
|
|
|
@@ -55,16 +52,16 @@ A cell no source anchors ends in `? verify`, and the preview shows that marker b
|
|
|
55
52
|
|
|
56
53
|
## Tier 1: visual companion
|
|
57
54
|
|
|
58
|
-
|
|
55
|
+
Prose stays as source of truth. Add a visual render as a feedback surface for the agent and for human review.
|
|
59
56
|
|
|
60
|
-
- Excalidraw handles agent-
|
|
57
|
+
- Excalidraw handles agent-drawn layouts when the round-trip canvas loop matters
|
|
61
58
|
- Claude Design joins only when codebase extraction or the annotated handoff bundle is worth the ceiling cost
|
|
62
59
|
|
|
63
60
|
Both produce derived artifacts, so human edits are review annotations rather than source changes.
|
|
64
61
|
|
|
65
62
|
### Seed shape
|
|
66
63
|
|
|
67
|
-
Same as tier 0
|
|
64
|
+
Same as tier 0. `DESIGN.md` stays human-maintained.
|
|
68
65
|
|
|
69
66
|
Impeccable, if installed, keeps its own root `DESIGN.md` and `PRODUCT.md` in its own format. These are separate files from the toolkit's `canon/DESIGN.md` and are not synced with it. Treat impeccable's pair as its own source of truth for its commands, and the toolkit's `canon/DESIGN.md` as the source other toolkit skills read.
|
|
70
67
|
|
|
@@ -91,7 +88,7 @@ Impeccable, if installed, keeps its own root `DESIGN.md` and `PRODUCT.md` in its
|
|
|
91
88
|
|
|
92
89
|
The two tools solve non-overlapping halves of the visual companion problem.
|
|
93
90
|
|
|
94
|
-
Excalidraw gives the agent a canvas it can read back over MCP. Output is agent-facing and persists as a JSON file in the repo. Pick it when Claude Code needs to iterate on
|
|
91
|
+
Excalidraw gives the agent a canvas it can read back over MCP. Output is agent-facing and persists as a JSON file in the repo. Pick it when Claude Code needs to iterate on layouts autonomously, not when a human needs polished review artifacts.
|
|
95
92
|
|
|
96
93
|
Claude Design reads the raw codebase without prose curation and produces a polished handoff bundle with chat history. Weekly quota makes it expensive, so reserve it for the extraction pass or the final handoff moment, not daily iteration.
|
|
97
94
|
|
|
@@ -147,4 +144,4 @@ Resist over-tiering early. Moving up is cheap because tiers stack. Moving down m
|
|
|
147
144
|
- `canon/context/claude-plugin/skill-strategy/overview.md`: how to decide between workflow and domain-knowledge skills
|
|
148
145
|
- [`microsoft/playwright-mcp`](https://github.com/microsoft/playwright-mcp): browser automation MCP used in tier 1 and tier 2
|
|
149
146
|
- [`ChromeDevTools/chrome-devtools-mcp`](https://github.com/ChromeDevTools/chrome-devtools-mcp): live frontend debugging MCP used in tier 1 and tier 2
|
|
150
|
-
- [`yctimlin/mcp_excalidraw`](https://github.com/yctimlin/mcp_excalidraw): community MCP server behind the tier 1
|
|
147
|
+
- [`yctimlin/mcp_excalidraw`](https://github.com/yctimlin/mcp_excalidraw): community MCP server behind the tier 1 visual companion
|
package/governance/renames.toml
CHANGED
|
@@ -13,53 +13,23 @@
|
|
|
13
13
|
# resolves A only while both links stay. A key must name no live rule and every
|
|
14
14
|
# chain must end on one, which `src/gov/renames.test.ts` checks against this
|
|
15
15
|
# file.
|
|
16
|
-
#
|
|
17
|
-
# A numbered rule replaced by the rule `canon gov regen` generates from its
|
|
18
|
-
# standard is a rename too: the generated rule keeps every glob and bullet, so
|
|
19
|
-
# the pair is one-to-one identity under the standard's name.
|
|
20
16
|
[renamed]
|
|
21
17
|
"015-output" = "566-output"
|
|
22
18
|
"035-tasks" = "602-tasks"
|
|
23
|
-
"045-memory" = "603-memory"
|
|
24
19
|
"055-scratch" = "604-scratch"
|
|
25
20
|
"085-worktrees" = "605-worktrees"
|
|
26
21
|
"087-git" = "606-git"
|
|
27
22
|
"510-context" = "610-context"
|
|
28
23
|
"511-indexes" = "611-indexes"
|
|
29
|
-
"520-wireframes" = "620-wireframes"
|
|
30
|
-
"530-requirements" = "630-requirements"
|
|
31
|
-
"540-architecture" = "640-architecture"
|
|
32
|
-
"550-design" = "650-design"
|
|
33
24
|
"555-tasks" = "655-tasks"
|
|
34
|
-
"556-groundwork" = "656-groundwork"
|
|
35
|
-
"557-intake" = "657-intake"
|
|
36
25
|
"558-plan" = "658-plan"
|
|
37
|
-
"559-memory" = "659-memory"
|
|
38
|
-
"561-teach" = "661-teach"
|
|
39
|
-
"562-session" = "662-session"
|
|
40
|
-
"563-ready" = "663-ready"
|
|
41
26
|
"501-markdown" = "801-markdown"
|
|
42
|
-
"580-readme" = "880-readme"
|
|
43
|
-
"591-standard-authoring" = "891-standard-authoring"
|
|
44
27
|
"065-spelling" = "765-spelling"
|
|
45
28
|
"075-dependencies" = "775-dependencies"
|
|
46
29
|
"080-config-comments" = "780-config-comments"
|
|
47
30
|
"090-code-comments" = "790-code-comments"
|
|
48
31
|
"658-plan" = "plan"
|
|
49
32
|
"610-context" = "context"
|
|
50
|
-
"620-wireframes" = "wireframes"
|
|
51
|
-
"630-requirements" = "requirements"
|
|
52
|
-
"640-architecture" = "architecture"
|
|
53
|
-
"650-design" = "design"
|
|
54
33
|
"655-tasks" = "tasks"
|
|
55
|
-
"656-groundwork" = "groundwork"
|
|
56
|
-
"657-intake" = "intake"
|
|
57
|
-
"659-memory" = "memory"
|
|
58
|
-
"661-teach" = "teach"
|
|
59
|
-
"662-session" = "session"
|
|
60
|
-
"663-ready" = "ready"
|
|
61
34
|
"570-skill" = "skill"
|
|
62
|
-
"590-rule-authoring" = "rule"
|
|
63
35
|
"801-markdown" = "markdown"
|
|
64
|
-
"880-readme" = "readme"
|
|
65
|
-
"891-standard-authoring" = "standard"
|
|
@@ -10,5 +10,5 @@ description: Enter a linked worktree for implementation, resolve shared session
|
|
|
10
10
|
|
|
11
11
|
## Shared session scratch
|
|
12
12
|
|
|
13
|
-
- Shared session scratch (`.canon/plans/`, `.canon/review/`, `.canon/
|
|
13
|
+
- Shared session scratch (`.canon/plans/`, `.canon/review/`, `.canon/tasks/`) lives at the main worktree root, not inside a linked worktree. From a linked worktree, resolve these paths against the main root via `git worktree list --porcelain | grep -m 1 '^worktree ' | cut -d' ' -f2-`. Fall back to `pwd` if not a git repo.
|
|
14
14
|
- From a linked worktree, or from a background session that entered none, `Edit` and `Write` refuse a main-root path and redirect to a worktree copy no later session reads. Never take that redirect. Route the write the way the `session-worktree` skill states, and report it rather than proceeding silently when that skill does not resolve. It ships with the plugin and this rule ships with the CLI, so a project that installed governance alone does not have it.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Route edits under canon/context/ to the context-fold skill for the entry shape, and keep each entry conforming to the work in its domain
|
|
3
|
+
paths:
|
|
4
|
+
- 'canon/context/**'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Context standards
|
|
8
|
+
|
|
9
|
+
## Context entries
|
|
10
|
+
|
|
11
|
+
- Load the `canon:context-fold` skill before a hand edit under `canon/context/`. It carries the entry shape and the content rules for a domain entry. Report it rather than proceeding silently when the skill does not resolve.
|
|
12
|
+
- Before non-trivial work in a domain, read its `canon/context/<domain>/` entry. Use `canon/context/index.md` to find it.
|
|
13
|
+
- Leave the entry conforming when work in its domain changes what it describes.
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
description: Filename and slug, the required sections, and the suggested-and-answer contract for a feature plan
|
|
2
|
+
description: Route edits under .canon/plans/ to the plan-feature skill for the plan's sections, the answer contract, and its lifecycle
|
|
4
3
|
paths:
|
|
5
4
|
- '.canon/plans/**'
|
|
6
5
|
---
|
|
7
6
|
|
|
8
7
|
# Plan standards
|
|
9
8
|
|
|
10
|
-
##
|
|
9
|
+
## Plan files
|
|
11
10
|
|
|
12
|
-
-
|
|
11
|
+
- Load the `canon:plan-feature` skill before a hand edit under `.canon/plans/`. It carries the filename and slug, the required sections, and the suggested-and-answer contract for a feature plan. Report it rather than proceeding silently when the skill does not resolve.
|
|
13
12
|
- Never fill an `- Answer:` slot on behalf of the person who owns it. A blank slot accepts the suggestion at execution time.
|
|
14
13
|
- Never ship a question without a `- Suggested:` line. Write `- Suggested: needs your call, <why>` where the answer turns on preference.
|
|
15
14
|
- Rewrite the `- Suggested:` line as `overridden at execution to <pick>,` plus the measurement when execution deviates from an unanswered question, leaving the slot blank. Put the same deviation in one line under the open task's `## Findings`.
|
|
16
15
|
- Fetch the source a decision rests on and quote the passage under `**Sources:**`, or mark the entry `unverified`. Never cite an outside source from recall.
|
|
17
16
|
- Move a shipped plan to `.canon/plans/archive/`. Never delete one.
|
|
18
17
|
- Amend a plan in place when a decision changes. Do not append a second passage narrating the change.
|
|
19
|
-
- Follow the plan
|
|
18
|
+
- Follow the lifecycle the `canon:plan-feature` skill carries for when a plan is written, how it is amended, and its move to the archive.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Route edits under .canon/tasks/ to the task-board skill for task shape, the board, and a declined task, and keep a session handoff apart from a task
|
|
3
|
+
paths:
|
|
4
|
+
- '.canon/tasks/**'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Tasks standards
|
|
8
|
+
|
|
9
|
+
## Task files
|
|
10
|
+
|
|
11
|
+
- Load the `canon:task-board` skill before a hand edit under `.canon/tasks/`. It carries the folder layout, filename convention, file format, origin lines, and archiving for a task file. Report it rather than proceeding silently when the skill does not resolve.
|
|
12
|
+
- Follow the board shape the `canon:task-board` skill carries for `priority.md` and `backlog.md`, their readiness groups, and row order.
|
|
13
|
+
- Never hand-edit `.canon/tasks/index.md`. A hook regenerates it from sibling frontmatter.
|
|
14
|
+
- Follow the decline shape the `canon:task-board` skill carries for a task decided against.
|
|
15
|
+
|
|
16
|
+
## Session handoffs
|
|
17
|
+
|
|
18
|
+
- Treat a `.canon/tasks/session-*.md` file as a handoff governed by the `canon:session-map` skill. It is not a task and carries neither `## Outcomes` nor `## Findings`.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Route edits to a skill body or its requirement to the create-skill skill for the shape, and hold the creation-time questions and the re-read rule
|
|
3
|
+
paths:
|
|
4
|
+
- '.claude/skills/**/SKILL.md'
|
|
5
|
+
- 'claude/skills/**/SKILL.md'
|
|
6
|
+
- '.claude/skills/**/REQUIREMENT.md'
|
|
7
|
+
- 'claude/skills/**/REQUIREMENT.md'
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Skill standards
|
|
11
|
+
|
|
12
|
+
## Skill files
|
|
13
|
+
|
|
14
|
+
- Load the `canon:create-skill` skill before a hand edit to a `SKILL.md` or a `REQUIREMENT.md`. It carries the skill structure, the requirement shape, and the path rules for a skill body. Report it rather than proceeding silently when the skill does not resolve. It ships with the plugin and this rule ships with the CLI, so a project that installed governance alone does not have it.
|
|
15
|
+
- Confirm `canon:create-skill`'s two creation-time questions are answered before a new `SKILL.md` lands, whether drafted by hand, by another skill, or by `canon:create-skill` itself. Carry the third question into the sibling `REQUIREMENT.md`'s `Must not` section as a review criterion rather than a gate.
|
|
16
|
+
- Re-read a skill body this session edited before invoking that skill again in the same session.
|
|
17
|
+
- Do not read a resolved file path in a held body as evidence the body is current.
|
|
@@ -5,7 +5,5 @@ extends = ""
|
|
|
5
5
|
# session conduct and `.claude/` authoring rules, `tooling` the dev setup and
|
|
6
6
|
# CI workflow rules, and `writing` the prose and document-shape rules. The
|
|
7
7
|
# `code` group is left to the stacks that write code, so a docs or writing
|
|
8
|
-
# project loads no rule it can never apply.
|
|
9
|
-
|
|
10
|
-
# standard's frontmatter rather than authored.
|
|
11
|
-
rules = ["canon", "claude", "standards", "tooling", "writing", "120-bash"]
|
|
8
|
+
# project loads no rule it can never apply.
|
|
9
|
+
rules = ["canon", "claude", "tooling", "writing"]
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@erclx/canon",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.33.0",
|
|
5
5
|
"description": "Runs your agent's work and keeps its code good, on one setup for every repo.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"bin": {
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
},
|
|
27
27
|
"scripts": {
|
|
28
28
|
"check:spell": "cspell '**' '.*/**' '.*' --no-progress --color --show-context",
|
|
29
|
-
"format": "prettier --write --log-level warn --ignore-path .gitignore --ignore-path .prettierignore . && shfmt --write --indent 2 scripts/
|
|
30
|
-
"check:format": "prettier --check --log-level warn --ignore-path .gitignore --ignore-path .prettierignore . && shfmt --diff --indent 2 scripts/
|
|
31
|
-
"check:shell": "find scripts
|
|
29
|
+
"format": "prettier --write --log-level warn --ignore-path .gitignore --ignore-path .prettierignore . && shfmt --write --indent 2 scripts/ tooling/ claude/",
|
|
30
|
+
"check:format": "prettier --check --log-level warn --ignore-path .gitignore --ignore-path .prettierignore . && shfmt --diff --indent 2 scripts/ tooling/ claude/",
|
|
31
|
+
"check:shell": "find scripts tooling claude .claude/hooks -name '*.sh' -exec shellcheck --severity=warning {} + && find .husky -maxdepth 1 -type f -exec shellcheck --severity=warning --shell=sh {} +",
|
|
32
32
|
"check:types": "tsc --noEmit",
|
|
33
33
|
"check:install": "./scripts/core/install-check.sh",
|
|
34
34
|
"test": "bun --bun vitest run",
|
|
@@ -55,10 +55,10 @@ open_timeline "Install verification"
|
|
|
55
55
|
# nothing, so the excluded tree has to exist here before its absence below can
|
|
56
56
|
# mean the publish left it out.
|
|
57
57
|
log_step "Assert excluded path exists in source"
|
|
58
|
-
if [ ! -f "$PROJECT_ROOT/sandbox/
|
|
59
|
-
log_error "sandbox/
|
|
58
|
+
if [ ! -f "$PROJECT_ROOT/sandbox/exempt.toml" ]; then
|
|
59
|
+
log_error "sandbox/exempt.toml is missing from the source tree, so the absence check below would pass on nothing"
|
|
60
60
|
fi
|
|
61
|
-
log_info "Present: sandbox/
|
|
61
|
+
log_info "Present: sandbox/exempt.toml"
|
|
62
62
|
|
|
63
63
|
log_step "Pack"
|
|
64
64
|
TARBALL_PATH="$(cd "$PROJECT_ROOT" && bun pm pack --quiet --ignore-scripts --destination "$PACK_DIR" | tail -n 1)"
|
|
@@ -101,7 +101,7 @@ log_step "Assert scaffold"
|
|
|
101
101
|
# scaffold reads a standard through `canon standards <name>`, resolving against
|
|
102
102
|
# the toolkit rather than a copy this gate could assert on. The two
|
|
103
103
|
# rule paths stand for the `claude` and `canon` groups `base` takes whole.
|
|
104
|
-
for path in "CLAUDE.md" ".claude/wiki/index.md" ".claude" "canon/context/index.md"
|
|
104
|
+
for path in "CLAUDE.md" ".claude/wiki/index.md" ".claude" "canon/context/index.md" \
|
|
105
105
|
".prettierrc" ".editorconfig" ".lintstagedrc" ".husky/pre-commit" ".github/workflows/verify.yml" "scripts/verify.sh" \
|
|
106
106
|
".claude/rules/canon/claude/566-output.md" ".claude/rules/canon/canon/604-scratch.md"; do
|
|
107
107
|
if [ ! -e "$TARGET_DIR/$path" ]; then
|
|
@@ -43,7 +43,7 @@ console.log('regen-web-previews: wrote web/public/previews/design-tokens/')
|
|
|
43
43
|
* chrome over a scratch copy holding this one workspace alone is what keeps
|
|
44
44
|
* the jump menus from naming anything else.
|
|
45
45
|
*
|
|
46
|
-
* `.canon/teach/` is gitignored session scratch, per `
|
|
46
|
+
* `.canon/teach/` is gitignored session scratch, per `claude/skills/teach-workspace/references/teach.md`, so
|
|
47
47
|
* it exists on the machine that authored the lesson and nowhere else,
|
|
48
48
|
* including CI. `web/public/previews/teach-workspace/` is therefore the
|
|
49
49
|
* durable copy: committed once the workspace exists, regenerated here as a
|