draft-diagramlisted
Install: claude install-skill erclx/canon
# Draft diagram
Write one entry per diagram kind. Never rewrite the folder wholesale. A pass that refreshes the deploy view leaves the other four files byte-identical, which is the whole reason the surface is a folder.
## Guards
- If no `.claude/ARCHITECTURE.md`, no `.claude/REQUIREMENTS.md`, and no top-level folder structure to scan, stop: `❌ No source signal. Add .claude/ARCHITECTURE.md or run inside a project folder.`
## Step 1: read sources and locate the surface
Read these from the project root in parallel, skipping any that do not exist:
- `.canon/diagrams/index.md` and every `.canon/diagrams/*.md`: which entries exist and what they already say
- `.claude/REQUIREMENTS.md`: users, external dependencies, tech stack, MVP feature list
- `.claude/ARCHITECTURE.md`: layered components, key technical decisions
- `CLAUDE.md`: project type, conventions
- `package.json`, `pyproject.toml`, `Cargo.toml`: language and framework markers
- Top-level folder layout and root config files via `ls`: deploy targets, infrastructure config, component boundaries
Do not recurse speculatively.
Follow `${CLAUDE_SKILL_DIR}/../../standards/diagrams.md` for frontmatter, entry kinds, and explanation rules. Follow `${CLAUDE_SKILL_DIR}/../../standards/mermaid.md` for what goes inside the fence: layout, budgets, accessibility, labels, and verification.
### Migrating a pre-split flat file
When `.canon/diagrams/` holds no entry and `.claude/DIAGRAMS.md` exists, this pass converts it. An entry is