claude-design-extractlisted
Install: claude install-skill erclx/canon
# Design extract
## Guards
- If `.claude/DESIGN.md` already exists and has content beyond the seed template, stop: `❌ .claude/DESIGN.md already populated. Edit directly or archive the existing file first.`
- If `canon` is not on PATH, stop: `❌ canon CLI not found.`
Step 1 carries two more stops that apply to one path only. Do not evaluate them before the path is picked.
## Step 1: pick the path from what the project already has
Check the project root for UI surfaces: `src/ui.ts`, `src/ui.tsx`, `src/components/**`, `scripts/lib/ui.sh`, and any `*.css`, `tailwind.config.*`, or `theme.*`.
- Any match takes the source path. Existing code defines the system, so every filled cell traces to a value already in the tree.
- No match takes the greenfield path. Nothing anchors a value, so every filled cell is a proposal and carries the tag that says so.
The project decides this, never a user flag or an argument. Announce which path ran in one line before Step 2, since the two produce different-looking output from the same skill.
The greenfield path needs a personality paragraph to propose against, and stops without one. The source path needs neither file and skips both stops.
- If `.claude/REQUIREMENTS.md` is missing, stop: `❌ .claude/REQUIREMENTS.md not found. Write requirements before proposing a design system.`
- If `.claude/REQUIREMENTS.md` has no `## Personality` section, stop: `❌ .claude/REQUIREMENTS.md missing ## Personality section. Add a paragraph describing voice and t