@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
|
@@ -1,53 +1,96 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: canon-cli
|
|
3
|
-
description:
|
|
3
|
+
description: Routes a job to the `canon` verb that does it, and warns which verbs can lose a project's edits before one runs. Use when asked "which canon command does X", "is there a verb for X", "which command tells me if X", "will this overwrite my changes", or before running `canon sync`, `canon gov sync`, `canon tooling sync`, `canon design sync`, `canon migrate`, or `canon indexes regen`. Do NOT use to execute a verb, only to pick one and know what it costs.
|
|
4
4
|
metadata:
|
|
5
5
|
family: answer
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# Toolkit CLI
|
|
8
|
+
# Toolkit CLI router
|
|
9
9
|
|
|
10
|
-
Consult
|
|
10
|
+
Consult to pick the `canon` verb for a job, and before running a verb that writes. This skill is reference only. It never runs a verb.
|
|
11
11
|
|
|
12
|
-
##
|
|
12
|
+
## Find the verb
|
|
13
13
|
|
|
14
|
-
-
|
|
15
|
-
- Run `canon
|
|
16
|
-
-
|
|
14
|
+
- Each row below names a verb by its job. Subcommands and flags are not listed here, so read them where they are kept.
|
|
15
|
+
- Run `canon <verb> --help` for a verb's subcommands and flags.
|
|
16
|
+
- Run `canon docs agents` for the invocation contract behind every verb, and `canon docs list` for every other reference doc, then `canon docs <topic>` by name.
|
|
17
17
|
|
|
18
|
-
##
|
|
18
|
+
## Project setup
|
|
19
19
|
|
|
20
|
-
|
|
|
21
|
-
|
|
|
22
|
-
|
|
|
23
|
-
|
|
|
24
|
-
|
|
|
25
|
-
|
|
|
26
|
-
|
|
|
27
|
-
| Seed docs | `canon claude sync` | Never touched. Only `.gitignore` is written. |
|
|
28
|
-
| Stack references | none | Nothing installs. `canon tooling reference <stack>` reads and never writes. |
|
|
29
|
-
| `.gitignore`, deps, scripts | any sync | Additive. Existing entries preserved. Deps re-pin on major skew. |
|
|
30
|
-
| Generated `index.md` | any sync or regen | Rewritten from target state. Hand edits are lost. |
|
|
20
|
+
| Job | Verb |
|
|
21
|
+
| -------------------------------------------- | --------------- |
|
|
22
|
+
| Bootstrap a project with toolkit domains | `canon init` |
|
|
23
|
+
| Bring every installed domain current | `canon sync` |
|
|
24
|
+
| Reinstall the CLI itself | `canon upgrade` |
|
|
25
|
+
| Move a project off a retired name or layout | `canon migrate` |
|
|
26
|
+
| List the projects the toolkit installed into | `canon targets` |
|
|
31
27
|
|
|
32
|
-
##
|
|
28
|
+
## Domains
|
|
33
29
|
|
|
34
|
-
|
|
30
|
+
| Job | Verb |
|
|
31
|
+
| --------------------------------------------------------------- | ----------------- |
|
|
32
|
+
| Install or sync governance rules | `canon gov` |
|
|
33
|
+
| Read an authoring standard by name | `canon standards` |
|
|
34
|
+
| Sync a tooling stack's configs and seeds, or read its reference | `canon tooling` |
|
|
35
|
+
| Set up or sync the Claude workflow | `canon claude` |
|
|
36
|
+
| Scaffold a wiki | `canon wiki` |
|
|
37
|
+
| Regenerate the `index.md` files | `canon indexes` |
|
|
38
|
+
| Read a toolkit reference doc | `canon docs` |
|
|
35
39
|
|
|
36
|
-
|
|
40
|
+
## Author and render
|
|
37
41
|
|
|
38
|
-
|
|
42
|
+
Each verb here has a skill that owns the job. Load the skill rather than driving the verb by hand.
|
|
39
43
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
| Job | Verb | Skill |
|
|
45
|
+
| -------------------------------------------- | ------------------- | --------------------------- |
|
|
46
|
+
| Render the design system | `canon design` | `canon:draft-figure` |
|
|
47
|
+
| Render a slide deck | `canon slides` | `canon:draft-slides` |
|
|
48
|
+
| Render an HTML source to a PNG | `canon capture` | `canon:draft-identity` |
|
|
49
|
+
| Serve a directory and print the link | `canon serve` | none |
|
|
50
|
+
| Record a running app | `canon demo` | `canon:draft-screencast` |
|
|
51
|
+
| Report one computed property across routes | `canon inventory` | `canon:target-check` |
|
|
52
|
+
| Walk a page through interactions and measure | `canon drive` | `canon:ux-measure` |
|
|
53
|
+
| Fetch a YouTube transcript | `canon transcripts` | `canon:youtube-transcripts` |
|
|
54
|
+
| Open a learning workspace | `canon teach` | `canon:teach-workspace` |
|
|
55
|
+
| Work on the local canvas | `canon canvas` | `canon:canvas-board` |
|
|
46
56
|
|
|
47
|
-
##
|
|
57
|
+
## Session and ship
|
|
48
58
|
|
|
49
|
-
|
|
59
|
+
| Job | Verb |
|
|
60
|
+
| ---------------------------------------------- | ----------------- |
|
|
61
|
+
| Read and close tasks on the board | `canon tasks` |
|
|
62
|
+
| Read and answer intake folders | `canon intake` |
|
|
63
|
+
| Validate, size, and move session records | `canon records` |
|
|
64
|
+
| Resolve live sessions to a worktree and branch | `canon sessions` |
|
|
65
|
+
| Reclaim worktrees whose branches merged | `canon worktrees` |
|
|
66
|
+
| Read a pull request | `canon pr` |
|
|
67
|
+
| File toolkit feedback as an issue | `canon feedback` |
|
|
68
|
+
|
|
69
|
+
## Reports
|
|
70
|
+
|
|
71
|
+
| Job | Verb |
|
|
72
|
+
| ----------------------------------------- | ---------------- |
|
|
73
|
+
| Scan the tree for credentials | `canon secrets` |
|
|
74
|
+
| Read the dependency set for advisories | `canon deps` |
|
|
75
|
+
| Check a changed set against the label map | `canon labels` |
|
|
76
|
+
| Measure comment density | `canon comments` |
|
|
77
|
+
| Report context folder health | `canon context` |
|
|
78
|
+
| Check markdown against the standards | `canon markdown` |
|
|
79
|
+
| Count files, extensions, and lines | `canon census` |
|
|
80
|
+
|
|
81
|
+
## Verbs that can lose your edits
|
|
82
|
+
|
|
83
|
+
Read the doc each line names before running one of these. `canon docs install-and-sync` covers the governance and design verbs, `canon docs sync` covers tooling, `canon docs indexes` covers regeneration, and `canon docs migrate` covers the migrate verbs. Run the `--check` or `--dry-run` form first where the verb has one.
|
|
84
|
+
|
|
85
|
+
- `canon sync` runs every installed domain's sync, so it carries each risk below.
|
|
86
|
+
- `canon gov sync` replaces a rule you edited and deletes a rule the toolkit retired, edited or not.
|
|
87
|
+
- `canon tooling sync --write` replaces every golden config a stack ships. Seeds are copy-once and dictionaries merge. Nothing writes without the flag. See `canon docs sync`.
|
|
88
|
+
- `canon design sync` replaces the shipped design files and leaves `.claude/design/project/` alone.
|
|
89
|
+
- `canon migrate --write` rewrites files that cite a retired name or layout. It reports and writes nothing without the flag. See `canon docs migrate`.
|
|
90
|
+
- `canon indexes regen` rewrites each generated `index.md` from the folder's current state, so a hand edit there is lost. See `canon docs indexes`.
|
|
91
|
+
|
|
92
|
+
No command writes a standard into a project, so `canon standards` is safe to run. `CLAUDE.md` and the other seed docs are copy-once, and no sync updates them. Merge those by hand against the toolkit copy.
|
|
50
93
|
|
|
51
94
|
## Source of truth
|
|
52
95
|
|
|
53
|
-
-
|
|
96
|
+
- `canon docs install-and-sync` states what each install and sync verb writes, refuses, or leaves alone. `canon docs indexes` and `canon docs migrate` state the same for their verbs. When a doc and this skill disagree, the doc wins.
|
|
@@ -19,7 +19,7 @@ The last failure is the session's own effort. Asked to report, a session starts
|
|
|
19
19
|
- Name the surface and its type, since the toolkit routes on that rather than on the symptom
|
|
20
20
|
- Write the stated fallback for a field the session cannot fill, so an empty field reads as absent rather than as unreported
|
|
21
21
|
- Open a GitHub issue on the toolkit repo through the CLI so the report lands where triage reads it, and print the returned URL on its own line
|
|
22
|
-
-
|
|
22
|
+
- Surface the block and the reason when the issue call fails, since a failure that prints nothing leaves the report where nothing reads it
|
|
23
23
|
- Hold a report the operator marks sensitive, since the issue is public
|
|
24
24
|
- Fall back to printing the block when the CLI is absent, so the report still exists
|
|
25
25
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: canon-feedback
|
|
3
|
-
description: Format a report about something broken, missing, or off in canon and open it as a GitHub issue on the toolkit repo via `canon feedback
|
|
3
|
+
description: Format a report about something broken, missing, or off in canon and open it as a GitHub issue on the toolkit repo via `canon feedback`, where the toolkit's triage reads it. Use when asked to "send this to the toolkit", "report this to canon", "file toolkit feedback", or "give the toolkit feedback about X". Do NOT use for general complaints about other tooling, IDE issues, or in-project bugs that do not implicate canon surfaces.
|
|
4
4
|
metadata:
|
|
5
5
|
family: upkeep
|
|
6
6
|
---
|
|
@@ -73,10 +73,10 @@ command -v canon >/dev/null 2>&1
|
|
|
73
73
|
|
|
74
74
|
The destination is a public GitHub issue on the toolkit repo, so the report leaves the machine. Hold it and ask when the operator has marked it sensitive, and never send it on a guess.
|
|
75
75
|
|
|
76
|
-
Before the pipe below, run the scan in `${CLAUDE_SKILL_DIR}
|
|
76
|
+
Before the pipe below, run the scan in `${CLAUDE_SKILL_DIR}/../git-pr/references/publish.md` against the composed block, phase-label half included. Nothing else checks what reaches the remote, so this scan is the only gate.
|
|
77
77
|
|
|
78
78
|
```bash
|
|
79
|
-
cat <<'EOF' | canon feedback
|
|
79
|
+
cat <<'EOF' | canon feedback
|
|
80
80
|
## Toolkit feedback
|
|
81
81
|
|
|
82
82
|
...
|
|
@@ -85,20 +85,17 @@ EOF
|
|
|
85
85
|
|
|
86
86
|
The CLI opens a GitHub issue on the toolkit repo, labeled `feedback` and each domain label the surface type names, such as `skills` for a plugin skill, and prints the issue URL, which this skill reports back on its own line. It needs `gh` authenticated. `git-issue` is not the route, since it files on the current repository and this report belongs on the toolkit's.
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
Read the outcome off stdout, never off the exit code, since a shell wrapper can flatten it. Stdout takes one of three shapes:
|
|
89
|
+
|
|
90
|
+
- A line opening with `https://` is the filed issue. Report the URL.
|
|
91
|
+
- A block opening with `## Toolkit feedback` is a failed call. The reason is on stderr, so show the block in chat with it and `📋 Paste this into an issue at https://github.com/erclx/canon/issues/new`.
|
|
92
|
+
- Empty stdout is a refusal. Step 3 says how to repair it from stderr.
|
|
89
93
|
|
|
90
94
|
If `canon` is not on PATH, fall back: print the block in chat and tell the user `📋 Copy the block above into a toolkit-repo session.`
|
|
91
95
|
|
|
92
96
|
## Step 3: read what the CLI said back
|
|
93
97
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
- A named missing field. Add that heading with a real value or its stated fallback, then re-run. Do not report the defect as filed.
|
|
97
|
-
- `gh` absent or its call failed. The stderr names which, since installing `gh` and fixing an authenticated call are different repairs. Fall back to printing the block in chat.
|
|
98
|
-
|
|
99
|
-
A `--github` run from a toolkit checkout whose GitHub call fails warns and writes local scratch instead, which is a report filed on the other route rather than a failure.
|
|
100
|
-
|
|
101
|
-
## Notes
|
|
98
|
+
A report that was not filed reads one of two ways on stdout, and stderr carries the reason in both:
|
|
102
99
|
|
|
103
|
-
-
|
|
104
|
-
- The
|
|
100
|
+
- Empty stdout, with a named missing field on stderr. Add that heading with a real value or its stated fallback, then re-run. Do not report the defect as filed.
|
|
101
|
+
- The block on stdout, with `gh` absent or its call failed on stderr. The stderr names which, since installing `gh` and fixing an authenticated call are different repairs. Show the block in chat with the reason and the paste line from Step 2.
|
|
@@ -1,32 +1,30 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: canon-feedback-triage
|
|
3
|
-
description: Why the feedback queue is read from GitHub rather than local scratch, and why triage
|
|
3
|
+
description: Why the feedback queue is read from GitHub rather than local scratch, and why triage files measured items instead of routing or implementing
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Canon feedback triage requirement
|
|
7
7
|
|
|
8
8
|
## Gap
|
|
9
9
|
|
|
10
|
-
Without this skill, the feedback queue fills and nothing drains it. Reports arrive from projects the toolkit never sees, and a queue nobody reads on a schedule is the same as no queue.
|
|
10
|
+
Without this skill, the feedback queue fills and nothing drains it. Reports arrive from projects the toolkit never sees, and a queue nobody reads on a schedule is the same as no queue. A local folder looks like the right place to read, and it is the wrong one, because that content is per-machine session scratch that any cleanup removes.
|
|
11
11
|
|
|
12
|
-
Triage fails three ways once it starts.
|
|
13
|
-
|
|
14
|
-
The queue also fails to drain even when the work ships. A fix merged with no link back leaves its issue open, and the next triage re-reads work already done.
|
|
12
|
+
Triage fails three ways once it starts. An issue gets routed straight to a fix from a paragraph of description, which skips the step where scope is argued and the operator's call. An issue whose report contradicts itself gets a guess rather than a question, so the fix addresses a defect nobody confirmed. And the same issue gets filed twice, because two passes cannot see that the board already carries it.
|
|
15
13
|
|
|
16
14
|
## Must
|
|
17
15
|
|
|
18
16
|
- Read the durable queue rather than local session scratch
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
- Ask on the issue when the report is unreadable, then move on rather than blocking the batch
|
|
17
|
+
- File one measured item per open issue into an intake folder, headed so an answer finds its issue
|
|
18
|
+
- File every open issue the board does not already carry, and name each skipped issue with its carrier
|
|
19
|
+
- Measure each claim against the tree rather than carrying the issue's figures forward
|
|
20
|
+
- Claim the folder through the CLI rather than picking an ordinal by hand
|
|
24
21
|
|
|
25
22
|
## Must not
|
|
26
23
|
|
|
27
|
-
-
|
|
28
|
-
- Implement a plan
|
|
29
|
-
-
|
|
24
|
+
- Post to the remote, whether a comment, a close, or a label
|
|
25
|
+
- Implement a fix or write a plan, which the answered item routes to
|
|
26
|
+
- Fill an answer slot, or read an empty one as agreement
|
|
27
|
+
- Write outside the folder it claimed
|
|
30
28
|
|
|
31
29
|
## Guards
|
|
32
30
|
|
|
@@ -36,5 +34,6 @@ The queue also fails to drain even when the work ships. A fix merged with no lin
|
|
|
36
34
|
## Out of scope
|
|
37
35
|
|
|
38
36
|
- Filing new feedback: `canon-feedback`
|
|
39
|
-
-
|
|
37
|
+
- Answering the filed items: `plan-intake-answer`
|
|
38
|
+
- Writing the plan a plan-worthy item needs: `plan-feature`
|
|
40
39
|
- Triage of issues carrying any other label, which surface here by design only under the feedback label
|
|
@@ -1,67 +1,86 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: canon-feedback-triage
|
|
3
|
-
description:
|
|
3
|
+
description: Files every open GitHub issue labeled `feedback` on the toolkit repo into an intake folder as one measured item each, skipping any issue the board already carries. Use when asked to "triage toolkit feedback", "work through the feedback issues", "process feedback issues", or "what feedback is open". Do NOT use to file new feedback (that is `canon-feedback`), to answer the filed items (that is `plan-intake-answer`), or for general GitHub issue triage unrelated to toolkit feedback.
|
|
4
4
|
metadata:
|
|
5
5
|
family: upkeep
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Canon feedback triage
|
|
9
9
|
|
|
10
|
-
Consume the feedback queue that `canon feedback
|
|
10
|
+
Consume the feedback queue that `canon feedback` fills. Each open `feedback` issue is measured against the tree and filed as one item for the operator, who answers it before anything is built.
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
The record is an ordinary intake folder at `.canon/intake/<nn>-feedback-triage/`. Read `${CLAUDE_SKILL_DIR}/../plan-intake/references/intake.md` before writing any file in it, since it holds the item format, the frontmatter, the index shape, and the answer contract this skill is bound by.
|
|
13
|
+
|
|
14
|
+
Run from the toolkit repo root. This skill reads GitHub issues and writes only inside its claimed folder. It posts no comment, close, or label to GitHub.
|
|
13
15
|
|
|
14
16
|
## Guards
|
|
15
17
|
|
|
18
|
+
- Resolve `.canon/tasks/` and `.canon/intake/` at the main worktree root, not `pwd`. Run `git worktree list --porcelain | grep -m 1 '^worktree ' | cut -d' ' -f2-`, falling back to `pwd` outside a git repo.
|
|
16
19
|
- If `gh` is not on PATH, stop: `❌ gh CLI not found. Install it to read feedback issues.`
|
|
17
20
|
- If `gh auth status` fails, stop: `❌ gh is not authenticated. Run gh auth login.`
|
|
18
21
|
- If no open `feedback` issues exist, stop: `✅ No open feedback issues.`
|
|
22
|
+
- Never fill a `You:` slot, and never read an empty one as agreement. Answering runs through `plan-intake-answer` or the operator's own edit.
|
|
23
|
+
- Branch on each `canon` record's `ok` and `reason` rather than on the exit code, which a shell function wrapping `canon` can flatten to zero.
|
|
19
24
|
|
|
20
25
|
## Step 1: list the queue
|
|
21
26
|
|
|
22
|
-
Fetch open feedback issues:
|
|
23
|
-
|
|
24
27
|
```bash
|
|
25
|
-
gh issue list --label feedback --state open --json number,title,
|
|
28
|
+
gh issue list --label feedback --state open --limit 1000 --json number,title,body,labels
|
|
26
29
|
```
|
|
27
30
|
|
|
28
|
-
|
|
31
|
+
Take every issue. An issue without the `feedback` label does not surface here by design.
|
|
29
32
|
|
|
30
|
-
## Step 2:
|
|
33
|
+
## Step 2: drop what the board already carries
|
|
31
34
|
|
|
32
|
-
|
|
35
|
+
An issue is carried when its number appears in a live or archived task's `Issue:` line under `.canon/tasks/`, or in an item heading of an existing `.canon/intake/` folder, written `(#NNN)`. Search both at the main root.
|
|
33
36
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
+
Set each carried issue aside with its carrier, a task path or a folder and item. Name every one in the overview, so a re-run while an earlier folder sits unanswered files nothing twice. When every issue is carried, stop: `✅ Every open feedback issue is already on the board.`
|
|
38
|
+
|
|
39
|
+
## Step 3: claim the folder
|
|
40
|
+
|
|
41
|
+
Run `canon records ordinal intake feedback-triage --claim --json` and take its `name`. The verb creates the folder in the same act, so two sessions opening at once never share one. Where the installed binary carries no such subcommand, report it and stop rather than picking an ordinal by hand.
|
|
37
42
|
|
|
38
|
-
|
|
43
|
+
## Step 4: measure each issue
|
|
39
44
|
|
|
40
|
-
|
|
41
|
-
2. **Plan-worthy.** Multiple files, a new skill or rule, a behavior change, or a cross-surface move. Route to `plan-feature`.
|
|
42
|
-
3. **Needs clarification.** The observed and expected behavior conflict or the surface is unnamed. Comment on the issue asking for the missing detail, then skip it.
|
|
45
|
+
For each remaining issue, measure its claim against the tree during this pass. Grep for the construct its defect names and count the sites, check whether the behavior it asks for exists, and search the log for a commit or pull request that shipped it under another task. Never carry a figure from the issue forward as current, since it states what was true when it was filed.
|
|
43
46
|
|
|
44
|
-
|
|
47
|
+
Classify each against the toolkit's own surfaces:
|
|
45
48
|
|
|
46
|
-
|
|
49
|
+
- **Direct fix.** One surface, one file, no architectural choice. A typo, a stale reference, a one-line correction.
|
|
50
|
+
- **Plan-worthy.** Multiple files, a new skill or rule, a behavior change, or a cross-surface move.
|
|
51
|
+
- **Needs clarification.** The observed and expected behavior conflict or the surface is unnamed. The item asks the operator for the missing detail.
|
|
47
52
|
|
|
48
|
-
|
|
53
|
+
Strip the reporting project's specifics from the fix, being its filenames, frameworks, deploy targets, and label values. The issue describes one project, and the fix serves every project that installs the toolkit.
|
|
49
54
|
|
|
50
|
-
|
|
51
|
-
- Plan-worthy: invoke `plan-feature` with the issue body as the feature description. Let it write the plan and stop. Hand the plan slug back to the user. Do not implement.
|
|
52
|
-
- Needs clarification: run the scan in `${CLAUDE_SKILL_DIR}/../../standards/publish.md` against the question first, since it reaches the remote with nothing else checking it and this scan is the only gate. Then `gh issue comment <n> --body "<one question>"`, and move on.
|
|
55
|
+
Name the commit the pass measured against in the overview.
|
|
53
56
|
|
|
54
|
-
|
|
57
|
+
## Step 5: write the items
|
|
55
58
|
|
|
56
|
-
|
|
59
|
+
Write one item per issue in the intake item format, one cluster file per domain the fix touches, numbered in read order. Head each item `### N. <defect> (#NNN)` so an answer finds its issue.
|
|
57
60
|
|
|
58
|
-
|
|
61
|
+
- `Problem:` states what this pass measured, with the count, path, or commit behind it
|
|
62
|
+
- `Fix:` states the class from Step 4 and the change it names
|
|
63
|
+
- `Open:` reads `fix, plan, ask, or decline?` on every item
|
|
64
|
+
- `Suggested:` opens with exactly one of those tokens, then the reason
|
|
65
|
+
- `You:` ships empty
|
|
66
|
+
|
|
67
|
+
Write `00-overview.md` last, per the intake standard, with the counts by token, an open-questions list linking each item, the commit measured against, and every issue skipped in Step 2 with its carrier. Where the pass runs out of context before the index, write `99-next-session.md` naming the last issue filed.
|
|
68
|
+
|
|
69
|
+
## Output
|
|
70
|
+
|
|
71
|
+
```plaintext
|
|
72
|
+
📂 Opened .canon/intake/<nn>-feedback-triage/
|
|
73
|
+
|
|
74
|
+
**Filed:** <N> issues across <N> clusters, measured against <sha>
|
|
75
|
+
**Skipped:** <n> already carried
|
|
76
|
+
**Suggested:** <n> fix, <n> plan, <n> ask, <n> decline
|
|
77
|
+
|
|
78
|
+
Next: /canon:plan-intake-answer to answer the `You:` slots
|
|
79
|
+
```
|
|
59
80
|
|
|
60
|
-
|
|
61
|
-
- For a fix that ships without a PR, run the scan in `${CLAUDE_SKILL_DIR}/../../standards/publish.md` against the close message first, since it reaches the remote with nothing else checking it and this scan is the only gate. Then close it directly: `gh issue close <n> --comment "Fixed in <commit or PR url>."`
|
|
62
|
-
- For a plan-worthy route, leave the issue open. It closes when the resulting PR merges with its `Closes #<n>` line.
|
|
81
|
+
An answered fix or plan item promotes through `task-board` with an `Issue: #NNN` line, and the shipping pull request's `Closes #NNN` drains the queue. Closing a declined issue on GitHub stays the operator's act.
|
|
63
82
|
|
|
64
83
|
## Notes
|
|
65
84
|
|
|
66
|
-
- The `feedback` label is what `canon feedback
|
|
67
|
-
- This skill
|
|
85
|
+
- The `feedback` label is what `canon feedback` and the `toolkit-feedback.yml` issue form both apply.
|
|
86
|
+
- This skill files and never reimplements. `plan-intake-answer` owns the answers and `task-board` owns the task a fix becomes.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: canvas
|
|
2
|
+
name: canvas-board
|
|
3
3
|
description: Scope boundary for driving the local design canvas, and the line between a drafted frame and the design it feeds
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Canvas requirement
|
|
6
|
+
# Canvas board requirement
|
|
7
7
|
|
|
8
8
|
## Gap
|
|
9
9
|
|
|
@@ -25,7 +25,7 @@ When the operator picks a frame, the session leaves the decision on the canvas a
|
|
|
25
25
|
- Read the operator's selection when they point at something, and treat a stale element pick as unknown
|
|
26
26
|
- Read a frame's inline styles before restyling it, and say which operator edits were kept and which dropped
|
|
27
27
|
- Capture once per finished frame or page rather than after every edit
|
|
28
|
-
- Carry a picked
|
|
28
|
+
- Carry a picked value into the project's design document, and leave a picked layout on the canvas for the plan that builds it
|
|
29
29
|
|
|
30
30
|
## Must not
|
|
31
31
|
|
|
@@ -43,7 +43,6 @@ When the operator picks a frame, the session leaves the decision on the canvas a
|
|
|
43
43
|
|
|
44
44
|
- What the canvas verbs do internally, which is the CLI's own contract
|
|
45
45
|
- The content format a frame and a layout take, which the canvas standard fixes
|
|
46
|
-
- Drafting candidates for a taste decision and taking the pick, which `draft-and-pick` runs on
|
|
47
|
-
- Tracing reference images into design values, which
|
|
48
|
-
- Writing the design document itself, which is `design-extract`
|
|
46
|
+
- Drafting candidates for a taste decision and taking the pick, which `draft-and-pick` runs on this canvas through the same verbs
|
|
47
|
+
- Tracing reference images into design values or writing the design document from code, which no skill owns now
|
|
49
48
|
- Backing up the canvas folder off one disk
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: canvas
|
|
3
|
-
description: Drives the local design canvas, where pages hold HTML frames the operator sees, drags, selects, and edits in the browser. Starts the canvas when it is not running, confirms the live shell loads, makes pages and frames, edits a frame through its file, reads what the operator selected or restyled, captures finished frames, and carries a picked direction into the project's design document. Use when asked to "open the canvas", "put this on the canvas", "draw a frame for X", "change the one I selected", "what did I pick", "capture this frame", or "move that frame on the canvas". Do NOT use to
|
|
2
|
+
name: canvas-board
|
|
3
|
+
description: Drives the local design canvas, where pages hold HTML frames the operator sees, drags, selects, and edits in the browser. Starts the canvas when it is not running, confirms the live shell loads, makes pages and frames, edits a frame through its file, reads what the operator selected or restyled, captures finished frames, and carries a picked direction into the project's design document. Use when asked to "open the canvas", "put this on the canvas", "draw a frame for X", "change the one I selected", "what did I pick", "capture this frame", or "move that frame on the canvas". Do NOT use to draft candidates for a taste decision, which is `draft-and-pick`.
|
|
4
4
|
metadata:
|
|
5
5
|
family: decide
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# Canvas
|
|
8
|
+
# Canvas board
|
|
9
9
|
|
|
10
|
-
Drive the canvas the operator is looking at. A page is a folder of HTML frames and a frame is one file, so a session draws by writing files and the operator sees each write land in the browser. The content format is fixed by `${CLAUDE_SKILL_DIR}
|
|
10
|
+
Drive the canvas the operator is looking at. A page is a folder of HTML frames and a frame is one file, so a session draws by writing files and the operator sees each write land in the browser. The content format is fixed by `${CLAUDE_SKILL_DIR}/references/canvas.md`. Read it before writing a frame.
|
|
11
11
|
|
|
12
12
|
Every verb below is `canon canvas`. Run `canon docs canvas` for the full verb reference, its records, and its refusals.
|
|
13
13
|
|
|
@@ -16,7 +16,7 @@ Every verb below is `canon canvas`. Run `canon docs canvas` for the full verb re
|
|
|
16
16
|
- If `canon` is not on PATH, stop: `❌ canon CLI not found.`
|
|
17
17
|
- If `canon canvas --help` reports no such command, stop: `❌ The installed canon carries no canvas command. Update the CLI and re-run.`
|
|
18
18
|
- Write no frame before the canvas is serving and the shell has loaded. A frame nobody can see is a draft reported as delivered.
|
|
19
|
-
- Never present a frame as the project's design. The canvas is a drafting surface and the project's design document
|
|
19
|
+
- Never present a frame as the project's design. The canvas is a drafting surface and the project's design document holds what was decided.
|
|
20
20
|
- Never promise the canvas survives a lost checkout. Its folder is gitignored and nothing backs it up.
|
|
21
21
|
|
|
22
22
|
## Step 1: start the canvas and confirm the shell
|
|
@@ -102,7 +102,7 @@ The operator restyles elements from the inspector, and each edit lands as inline
|
|
|
102
102
|
|
|
103
103
|
When the operator picks a frame, the decision leaves the canvas.
|
|
104
104
|
|
|
105
|
-
- Carry visual values, being color, type, spacing, and radius, into the project's design document,
|
|
105
|
+
- Carry visual values, being color, type, spacing, and radius, into the project's design document, editing its sections in place under the `design.md` standard. Leave structure and layout on the canvas, and name the frame in the plan that builds it.
|
|
106
106
|
- Name the frame the decision came from in the reply, and leave the frame on the canvas until the operator clears it.
|
|
107
107
|
- Never cite a frame path from a tracked file. The folder is gitignored, so the citation resolves on this machine alone.
|
|
108
108
|
|
|
@@ -113,7 +113,7 @@ When the operator picks a frame, the decision leaves the canvas.
|
|
|
113
113
|
Page: <page>, <n> frames
|
|
114
114
|
Selected: <page>/<frame>, element <index>, or none, or stale
|
|
115
115
|
Capture: <path of each capture written>
|
|
116
|
-
Carried: <the design document
|
|
116
|
+
Carried: <the design document the pick went to, the plan that cites the frame, or not yet>
|
|
117
117
|
```
|
|
118
118
|
|
|
119
119
|
Write the canvas line's URL as a markdown link. Omit the capture line when nothing was captured and the carried line when no direction was picked. Emit every path from the project root.
|
|
@@ -9,6 +9,17 @@ Applies to the canvas content under `.canon/canvas/`, where each page is a folde
|
|
|
9
9
|
|
|
10
10
|
The folder is gitignored, so nothing in a repository checks its shape and nothing backs it up by default.
|
|
11
11
|
|
|
12
|
+
## Contents
|
|
13
|
+
|
|
14
|
+
- [Scope](#scope)
|
|
15
|
+
- [What a working canvas looks like](#what-a-working-canvas-looks-like)
|
|
16
|
+
- [Pages](#pages)
|
|
17
|
+
- [Frames](#frames)
|
|
18
|
+
- [Layout](#layout)
|
|
19
|
+
- [Tokens](#tokens)
|
|
20
|
+
- [What a frame must not assume](#what-a-frame-must-not-assume)
|
|
21
|
+
- [Template](#template)
|
|
22
|
+
|
|
12
23
|
## Scope
|
|
13
24
|
|
|
14
25
|
Governs the canvas content under `.canon/canvas/`: page folder names, frame files, the `layout.json` shape, how tokens reach a frame, and what a frame must not assume about where it renders.
|
|
@@ -80,7 +91,7 @@ The keys below are the ones a reader parses. The frame names are placeholders.
|
|
|
80
91
|
- Do not assume the theme. The canvas theme toggle is the operator's own state, and a capture shows each frame in its default theme.
|
|
81
92
|
- Do not assume a network. Name only fonts the machine has, or ship the font beside the frame, since a capture refuses a frame naming a font it cannot find.
|
|
82
93
|
- Do not assume a default font. Set `font-family` with an installed family first on an element the frame's text inherits from, since a capture checks the first family of the text it renders and the browser's default serif is absent from many machines.
|
|
83
|
-
- Do not assume the frame is the source. A picked direction is carried into the project's design document or
|
|
94
|
+
- Do not assume the frame is the source. A picked direction is carried into the project's design document or a plan, and the operator clears the frame once it has been carried.
|
|
84
95
|
- Do not assume the canvas survives the checkout. The folder is gitignored, so a lost checkout loses every page in it.
|
|
85
96
|
|
|
86
97
|
## Template
|
|
@@ -1,27 +1,35 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Design reference
|
|
3
3
|
description: Shape and content rules for canon/DESIGN.md
|
|
4
|
-
paths:
|
|
5
|
-
- 'canon/DESIGN.md'
|
|
6
4
|
---
|
|
7
5
|
|
|
8
6
|
# Design reference
|
|
9
7
|
|
|
10
8
|
Applies to `canon/DESIGN.md`. Captures visual intent and the decisions behind how things look, not a style guide, component spec, or framework reference. Update when a visual decision is made or a rule changes.
|
|
11
9
|
|
|
10
|
+
## Contents
|
|
11
|
+
|
|
12
|
+
- [Scope](#scope)
|
|
13
|
+
- [What goes in](#what-goes-in)
|
|
14
|
+
- [What does not go in](#what-does-not-go-in)
|
|
15
|
+
- [Format](#format)
|
|
16
|
+
- [Prose budget](#prose-budget)
|
|
17
|
+
- [The uncertainty tag](#the-uncertainty-tag)
|
|
18
|
+
- [Sections](#sections)
|
|
19
|
+
- [Template](#template)
|
|
20
|
+
|
|
12
21
|
## Scope
|
|
13
22
|
|
|
14
23
|
Governs the visual-intent document at `canon/DESIGN.md`: tokens described as intent, layout constraints, and the omissions that keep visual scope closed.
|
|
15
24
|
|
|
16
25
|
Does not govern:
|
|
17
26
|
|
|
18
|
-
- Screen layout, on-screen copy, and interaction intent: `wireframes.md`
|
|
19
27
|
- Per-domain implementation narrative: `context.md`
|
|
20
28
|
|
|
21
29
|
## What goes in
|
|
22
30
|
|
|
23
31
|
- A token's exact value, anchored to the surface it was read from and tagged per `## The uncertainty tag` when unconfirmed. Fall back to intent language ("mid gray, muted text") only where no source exists yet to anchor from.
|
|
24
|
-
- Layout constraints and sizing rules not obvious from
|
|
32
|
+
- Layout constraints and sizing rules not obvious from the tokens and the code
|
|
25
33
|
- Visual rules a developer could get wrong without guidance
|
|
26
34
|
- Non-obvious omissions ("no motion", "no custom icons") that prevent scope creep
|
|
27
35
|
|
|
@@ -34,7 +42,7 @@ Does not govern:
|
|
|
34
42
|
## Format
|
|
35
43
|
|
|
36
44
|
- Use tables for token systems, one row per token. Write every other rule as a short bullet, one decision per line, within `## Prose budget`.
|
|
37
|
-
- Plain English over technical notation. If a section could be removed and the developer would still build correctly from
|
|
45
|
+
- Plain English over technical notation. If a section could be removed and the developer would still build correctly from the tokens and code alone, remove it.
|
|
38
46
|
- Keep table headers and role names intact so the render tooling can parse the token tables.
|
|
39
47
|
|
|
40
48
|
## Prose budget
|
|
@@ -35,6 +35,5 @@ A cache keyed on a static string serves a stale browser or toolchain after a ver
|
|
|
35
35
|
|
|
36
36
|
## Out of scope
|
|
37
37
|
|
|
38
|
-
- The shell scripts a job invokes: `bash-cli-script`
|
|
39
38
|
- Secrets, environments, and deploy targets, which live in the repository settings rather than in the workflow this skill writes
|
|
40
39
|
- CI systems other than GitHub Actions. The structure rules generalize and the file format does not, so a different system is a different skill rather than a flag on this one.
|