Knowledge Comic Creator
Create original knowledge comics with flexible art style × tone combinations.
Usage
/canghe-comic posts/turing-story/source.md
/canghe-comic article.md --art manga --tone warm
/canghe-comic # then paste content
Options
Visual Dimensions
| Option |
Values |
Description |
--art |
ligne-claire (default), manga, realistic, ink-brush, chalk |
Art style / rendering technique |
--tone |
neutral (default), warm, dramatic, romantic, energetic, vintage, action |
Mood / atmosphere |
--layout |
standard (default), cinematic, dense, splash, mixed, webtoon |
Panel arrangement |
--aspect |
3:4 (default, portrait), 4:3 (landscape), 16:9 (widescreen) |
Page aspect ratio |
--lang |
auto (default), zh, en, ja, etc. |
Output language |
Partial Workflow Options
| Option |
Description |
--storyboard-only |
Generate storyboard only, skip prompts and images |
--prompts-only |
Generate storyboard + prompts, skip images |
--images-only |
Generate images from existing prompts directory |
--regenerate N |
Regenerate specific page(s) only (e.g., 3 or 2,5,8) |
Details: references/partial-workflows.md
Art Styles (画风)
| Style |
中文 |
Description |
ligne-claire |
清线 |
Uniform lines, flat colors, European comic tradition (Tintin, Logicomix) |
manga |
日漫 |
Large eyes, manga conventions, expressive emotions |
realistic |
写实 |
Digital painting, realistic proportions, sophisticated |
ink-brush |
水墨 |
Chinese brush strokes, ink wash effects |
chalk |
粉笔 |
Chalkboard aesthetic, hand-drawn warmth |
Tones (基调)
| Tone |
中文 |
Description |
neutral |
中性 |
Balanced, rational, educational |
warm |
温馨 |
Nostalgic, personal, comforting |
dramatic |
戏剧 |
High contrast, intense, powerful |
romantic |
浪漫 |
Soft, beautiful, decorative elements |
energetic |
活力 |
Bright, dynamic, exciting |
vintage |
复古 |
Historical, aged, period authenticity |
action |
动作 |
Speed lines, impact effects, combat |
Preset Shortcuts
Presets with special rules beyond art+tone:
| Preset |
Equivalent |
Special Rules |
--style ohmsha |
--art manga --tone neutral |
Visual metaphors, NO talking heads, gadget reveals |
--style wuxia |
--art ink-brush --tone action |
Qi effects, combat visuals, atmospheric elements |
--style shoujo |
--art manga --tone romantic |
Decorative elements, eye details, romantic beats |
Compatibility Matrix
| Art Style |
✓✓ Best |
✓ Works |
✗ Avoid |
| ligne-claire |
neutral, warm |
dramatic, vintage, energetic |
romantic, action |
| manga |
neutral, romantic, energetic, action |
warm, dramatic |
vintage |
| realistic |
neutral, warm, dramatic, vintage |
action |
romantic, energetic |
| ink-brush |
neutral, dramatic, action, vintage |
warm |
romantic, energetic |
| chalk |
neutral, warm, energetic |
vintage |
dramatic, action, romantic |
Details: references/auto-selection.md
Auto Selection
Content signals determine default art + tone + layout (or preset):
| Content Signals |
Recommended |
| Tutorial, how-to, programming, educational |
ohmsha preset |
| Pre-1950, classical, ancient |
realistic + vintage |
| Personal story, mentor |
ligne-claire + warm |
| Martial arts, wuxia |
wuxia preset |
| Romance, school life |
shoujo preset |
| Biography, balanced |
ligne-claire + neutral |
When preset is recommended: Load references/presets/{preset}.md and apply all special rules.
Details: references/auto-selection.md
Script Directory
Important: All scripts are located in the scripts/ subdirectory of this skill.
Agent Execution Instructions:
- Determine this SKILL.md file's directory path as
SKILL_DIR
- Script path =
${SKILL_DIR}/scripts/<script-name>.ts
- Replace all
${SKILL_DIR} in this document with the actual path
Script Reference:
| Script |
Purpose |
scripts/merge-to-pdf.ts |
Merge comic pages into PDF |
File Structure
Output directory: comic/{topic-slug}/
- Slug: 2-4 words kebab-case from topic (e.g.,
alan-turing-bio)
- Conflict: append timestamp (e.g.,
turing-story-20260118-143052)
Contents:
| File |
Description |
source-{slug}.{ext} |
Source files |
analysis.md |
Content analysis |
storyboard.md |
Storyboard with panel breakdown |
characters/characters.md |
Character definitions |
characters/characters.png |
Character reference sheet |
prompts/NN-{cover|page}-[slug].md |
Generation prompts |
NN-{cover|page}-[slug].png |
Generated images |
{topic-slug}.pdf |
Final merged PDF |
Language Handling
Detection Priority:
--lang flag (explicit)
- EXTEND.md
language setting
- User's conversation language
- Source content language
Rule: Use user's input language or saved language preference for ALL interactions:
- Storyboard outlines and scene descriptions
- Image generation prompts
- User selection options and confirmations
- Progress updates, questions, errors, summaries
Technical terms remain in English.
Workflow
Progress Checklist
Comic Progress:
- [ ] Step 1: Setup & Analyze
- [ ] 1.1 Preferences (EXTEND.md) ⛔ BLOCKING
- [ ] Found → load preferences → continue
- [ ] Not found → run first-time setup → MUST complete before other steps
- [ ] 1.2 Analyze, 1.3 Check existing
- [ ] Step 2: Confirmation - Style & options ⚠️ REQUIRED
- [ ] Step 3: Generate storyboard + characters
- [ ] Step 4: Review outline (conditional)
- [ ] Step 5: Generate prompts
- [ ] Step 6: Review prompts (conditional)
- [ ] Step 7: Generate images ⚠️ CHARACTER REF REQUIRED
- [ ] 7.1 Generate character sheet FIRST → characters/characters.png
- [ ] 7.2 Generate pages WITH --ref characters/characters.png
- [ ] Step 8: Merge to PDF
- [ ] Step 9: Completion report
Flow
Input → [Preferences] ─┬─ Found → Continue
│
└─ Not found → First-Time Setup ⛔ BLOCKING
│
└─ Complete setup → Save EXTEND.md → Continue
│
┌─────────────────────────────────────────────────────────────────────┘
↓
Analyze → [Check Existing?] → [Confirm: Style + Reviews] → Storyboard → [Review?] → Prompts → [Review?] → Images → PDF → Complete
Step Summary
| Step |
Action |
Key Output |
| 1.1 |
Load EXTEND.md preferences ⛔ BLOCKING if not found |
Config loaded |
| 1.2 |
Analyze content |
analysis.md |
| 1.3 |
Check existing directory |
Handle conflicts |
| 2 |
Confirm style, focus, audience, reviews |
User preferences |
| 3 |
Generate storyboard + characters |
storyboard.md, characters/ |
| 4 |
Review outline (if requested) |
User approval |
| 5 |
Generate prompts |
prompts/*.md |
| 6 |
Review prompts (if requested) |
User approval |
| 7.1 |
Generate character sheet FIRST |
characters/characters.png |
| 7.2 |
Generate pages with character ref |
*.png files |
| 8 |
Merge to PDF |
{slug}.pdf |
| 9 |
Completion report |
Summary |
Step 7: Image Generation ⚠️ CRITICAL
Character reference is MANDATORY for visual consistency.
7.1 Generate character sheet first:
- Backup rule: If
characters/characters.png exists, rename to characters/characters-backup-YYYYMMDD-HHMMSS.png
# Use Reference Sheet Prompt from characters/characters.md
npx -y bun ${SKILL_DIR}/../canghe-image-gen/scripts/main.ts \
--promptfiles characters/characters.md \
--image characters/characters.png --ar 4:3
Compress character sheet (recommended):
Compress to reduce token usage when used as reference image:
- Use available image compression skill (if any)
- Or system tools:
pngquant, optipng, sips (macOS)
- Keep PNG format, lossless compression preferred
7.2 Generate each page WITH character reference:
| Skill Capability |
Strategy |
Supports --ref |
Pass characters/characters.png with EVERY page |
No --ref support |
Prepend character descriptions to EVERY prompt file |
Backup rules for page generation:
- If prompt file exists: rename to
prompts/NN-{cover|page}-[slug]-backup-YYYYMMDD-HHMMSS.md
- If image file exists: rename to
NN-{cover|page}-[slug]-backup-YYYYMMDD-HHMMSS.png
# Example: ALWAYS include --ref for consistency
npx -y bun ${SKILL_DIR}/../canghe-image-gen/scripts/main.ts \
--promptfiles prompts/01-page-xxx.md \
--image 01-page-xxx.png --ar 3:4 \
--ref characters/characters.png
Full workflow details: references/workflow.md
EXTEND.md Paths ⛔ BLOCKING
CRITICAL: If EXTEND.md not found, MUST complete first-time setup before ANY other questions or steps. Do NOT proceed to content analysis, do NOT ask about art style, do NOT ask about tone — ONLY complete the preferences setup first.
| Path |
Location |
.canghe-skills/canghe-comic/EXTEND.md |
Project directory |
$HOME/.canghe-skills/canghe-comic/EXTEND.md |
User home |
| Result |
Action |
| Found |
Read, parse, display summary → Continue |
| Not found |
⛔ BLOCKING: Run first-time setup ONLY (references/config/first-time-setup.md) → Complete and save EXTEND.md → Then continue |
EXTEND.md Supports: Watermark | Preferred art/tone/layout | Custom style definitions | Character presets | Language preference
Schema: references/config/preferences-schema.md
References
Core Templates:
- analysis-framework.md - Deep content analysis
- character-template.md - Character definition format
- storyboard-template.md - Storyboard structure
- ohmsha-guide.md - Ohmsha manga specifics
Style Definitions:
references/art-styles/ - Art styles (ligne-claire, manga, realistic, ink-brush, chalk)
references/tones/ - Tones (neutral, warm, dramatic, romantic, energetic, vintage, action)
references/presets/ - Presets with special rules (ohmsha, wuxia, shoujo)
references/layouts/ - Layouts (standard, cinematic, dense, splash, mixed, webtoon)
Workflow:
- workflow.md - Full workflow details
- auto-selection.md - Content signal analysis
- partial-workflows.md - Partial workflow options
Config:
- config/preferences-schema.md - EXTEND.md schema
- config/first-time-setup.md - First-time setup
- config/watermark-guide.md - Watermark configuration
Page Modification
| Action |
Steps |
| Edit |
Update prompt file FIRST → --regenerate N → Regenerate PDF |
| Add |
Create prompt at position → Generate with character ref → Renumber subsequent → Update storyboard → Regenerate PDF |
| Delete |
Remove files → Renumber subsequent → Update storyboard → Regenerate PDF |
IMPORTANT: When updating pages, ALWAYS update the prompt file (prompts/NN-{cover|page}-[slug].md) FIRST before regenerating. This ensures changes are documented and reproducible.
Notes
- Image generation: 10-30 seconds per page
- Auto-retry once on generation failure
- Use stylized alternatives for sensitive public figures
- Maintain style consistency via session ID
- Step 2 confirmation required - do not skip
- Steps 4/6 conditional - only if user requested in Step 2
- Step 7.1 character sheet MUST be generated before pages - ensures consistency
- Step 7.2 EVERY page MUST reference characters - use
--ref or embed descriptions
- Watermark/language configured once in EXTEND.md
1---2name: canghe-comic3description: Knowledge comic creator supporting multiple art styles and tones. Creates original educational comics with detailed panel layouts and sequential image generation. Use when user asks to create "知识漫画", "教育漫画", "biography comic", "tutorial comic", or "Logicomix-style comic".4---5
6# Knowledge Comic Creator
7
8Create original knowledge comics with flexible art style × tone combinations.
9
10## Usage
11
12```bash
13/canghe-comic posts/turing-story/source.md
14/canghe-comic article.md --art manga --tone warm
15/canghe-comic # then paste content
16```
17
18## Options
19
20### Visual Dimensions
21
22| Option | Values | Description |
23|--------|--------|-------------|
24| `--art` | ligne-claire (default), manga, realistic, ink-brush, chalk | Art style / rendering technique |
25| `--tone` | neutral (default), warm, dramatic, romantic, energetic, vintage, action | Mood / atmosphere |
26| `--layout` | standard (default), cinematic, dense, splash, mixed, webtoon | Panel arrangement |
27| `--aspect` | 3:4 (default, portrait), 4:3 (landscape), 16:9 (widescreen) | Page aspect ratio |
28| `--lang` | auto (default), zh, en, ja, etc. | Output language |
29
30### Partial Workflow Options
31
32| Option | Description |
33|--------|-------------|
34| `--storyboard-only` | Generate storyboard only, skip prompts and images |
35| `--prompts-only` | Generate storyboard + prompts, skip images |
36| `--images-only` | Generate images from existing prompts directory |
37| `--regenerate N` | Regenerate specific page(s) only (e.g., `3` or `2,5,8`) |
38
39Details: [references/partial-workflows.md](references/partial-workflows.md)
40
41### Art Styles (画风)
42
43| Style | 中文 | Description |
44|-------|------|-------------|
45| `ligne-claire` | 清线 | Uniform lines, flat colors, European comic tradition (Tintin, Logicomix) |
46| `manga` | 日漫 | Large eyes, manga conventions, expressive emotions |
47| `realistic` | 写实 | Digital painting, realistic proportions, sophisticated |
48| `ink-brush` | 水墨 | Chinese brush strokes, ink wash effects |
49| `chalk` | 粉笔 | Chalkboard aesthetic, hand-drawn warmth |
50
51### Tones (基调)
52
53| Tone | 中文 | Description |
54|------|------|-------------|
55| `neutral` | 中性 | Balanced, rational, educational |
56| `warm` | 温馨 | Nostalgic, personal, comforting |
57| `dramatic` | 戏剧 | High contrast, intense, powerful |
58| `romantic` | 浪漫 | Soft, beautiful, decorative elements |
59| `energetic` | 活力 | Bright, dynamic, exciting |
60| `vintage` | 复古 | Historical, aged, period authenticity |
61| `action` | 动作 | Speed lines, impact effects, combat |
62
63### Preset Shortcuts
64
65Presets with special rules beyond art+tone:
66
67| Preset | Equivalent | Special Rules |
68|--------|-----------|---------------|
69| `--style ohmsha` | `--art manga --tone neutral` | Visual metaphors, NO talking heads, gadget reveals |
70| `--style wuxia` | `--art ink-brush --tone action` | Qi effects, combat visuals, atmospheric elements |
71| `--style shoujo` | `--art manga --tone romantic` | Decorative elements, eye details, romantic beats |
72
73### Compatibility Matrix
74
75| Art Style | ✓✓ Best | ✓ Works | ✗ Avoid |
76|-----------|---------|---------|---------|
77| ligne-claire | neutral, warm | dramatic, vintage, energetic | romantic, action |
78| manga | neutral, romantic, energetic, action | warm, dramatic | vintage |
79| realistic | neutral, warm, dramatic, vintage | action | romantic, energetic |
80| ink-brush | neutral, dramatic, action, vintage | warm | romantic, energetic |
81| chalk | neutral, warm, energetic | vintage | dramatic, action, romantic |
82
83Details: [references/auto-selection.md](references/auto-selection.md)
84
85## Auto Selection
86
87Content signals determine default art + tone + layout (or preset):
88
89| Content Signals | Recommended |
90|-----------------|-------------|
91| Tutorial, how-to, programming, educational | **ohmsha** preset |
92| Pre-1950, classical, ancient | realistic + vintage |
93| Personal story, mentor | ligne-claire + warm |
94| Martial arts, wuxia | **wuxia** preset |
95| Romance, school life | **shoujo** preset |
96| Biography, balanced | ligne-claire + neutral |
97
98**When preset is recommended**: Load `references/presets/{preset}.md` and apply all special rules.
99
100Details: [references/auto-selection.md](references/auto-selection.md)
101
102## Script Directory
103
104**Important**: All scripts are located in the `scripts/` subdirectory of this skill.
105
106**Agent Execution Instructions**:
1071. Determine this SKILL.md file's directory path as `SKILL_DIR`
1082. Script path = `${SKILL_DIR}/scripts/<script-name>.ts`
1093. Replace all `${SKILL_DIR}` in this document with the actual path
110
111**Script Reference**:
112| Script | Purpose |
113|--------|---------|
114| `scripts/merge-to-pdf.ts` | Merge comic pages into PDF |
115
116## File Structure
117
118Output directory: `comic/{topic-slug}/`
119- Slug: 2-4 words kebab-case from topic (e.g., `alan-turing-bio`)
120- Conflict: append timestamp (e.g., `turing-story-20260118-143052`)
121
122**Contents**:
123| File | Description |
124|------|-------------|
125| `source-{slug}.{ext}` | Source files |
126| `analysis.md` | Content analysis |
127| `storyboard.md` | Storyboard with panel breakdown |
128| `characters/characters.md` | Character definitions |
129| `characters/characters.png` | Character reference sheet |
130| `prompts/NN-{cover\|page}-[slug].md` | Generation prompts |
131| `NN-{cover\|page}-[slug].png` | Generated images |
132| `{topic-slug}.pdf` | Final merged PDF |
133
134## Language Handling
135
136**Detection Priority**:
1371. `--lang` flag (explicit)
1382. EXTEND.md `language` setting
1393. User's conversation language
1404. Source content language
141
142**Rule**: Use user's input language or saved language preference for ALL interactions:
143- Storyboard outlines and scene descriptions
144- Image generation prompts
145- User selection options and confirmations
146- Progress updates, questions, errors, summaries
147
148Technical terms remain in English.
149
150## Workflow
151
152### Progress Checklist
153
154```
155Comic Progress:
156- [ ] Step 1: Setup & Analyze
157 - [ ] 1.1 Preferences (EXTEND.md) ⛔ BLOCKING
158 - [ ] Found → load preferences → continue
159 - [ ] Not found → run first-time setup → MUST complete before other steps
160 - [ ] 1.2 Analyze, 1.3 Check existing
161- [ ] Step 2: Confirmation - Style & options ⚠️ REQUIRED
162- [ ] Step 3: Generate storyboard + characters
163- [ ] Step 4: Review outline (conditional)
164- [ ] Step 5: Generate prompts
165- [ ] Step 6: Review prompts (conditional)
166- [ ] Step 7: Generate images ⚠️ CHARACTER REF REQUIRED
167 - [ ] 7.1 Generate character sheet FIRST → characters/characters.png
168 - [ ] 7.2 Generate pages WITH --ref characters/characters.png
169- [ ] Step 8: Merge to PDF
170- [ ] Step 9: Completion report
171```
172
173### Flow
174
175```
176Input → [Preferences] ─┬─ Found → Continue
177 │
178 └─ Not found → First-Time Setup ⛔ BLOCKING
179 │
180 └─ Complete setup → Save EXTEND.md → Continue
181 │
182 ┌─────────────────────────────────────────────────────────────────────┘
183 ↓
184Analyze → [Check Existing?] → [Confirm: Style + Reviews] → Storyboard → [Review?] → Prompts → [Review?] → Images → PDF → Complete
185```
186
187### Step Summary
188
189| Step | Action | Key Output |
190|------|--------|------------|
191| 1.1 | Load EXTEND.md preferences ⛔ BLOCKING if not found | Config loaded |
192| 1.2 | Analyze content | `analysis.md` |
193| 1.3 | Check existing directory | Handle conflicts |
194| 2 | Confirm style, focus, audience, reviews | User preferences |
195| 3 | Generate storyboard + characters | `storyboard.md`, `characters/` |
196| 4 | Review outline (if requested) | User approval |
197| 5 | Generate prompts | `prompts/*.md` |
198| 6 | Review prompts (if requested) | User approval |
199| **7.1** | **Generate character sheet FIRST** | `characters/characters.png` |
200| **7.2** | Generate pages **with character ref** | `*.png` files |
201| 8 | Merge to PDF | `{slug}.pdf` |
202| 9 | Completion report | Summary |
203
204### Step 7: Image Generation ⚠️ CRITICAL
205
206**Character reference is MANDATORY for visual consistency.**
207
208**7.1 Generate character sheet first**:
209- **Backup rule**: If `characters/characters.png` exists, rename to `characters/characters-backup-YYYYMMDD-HHMMSS.png`
210```bash
211# Use Reference Sheet Prompt from characters/characters.md
212npx -y bun ${SKILL_DIR}/../canghe-image-gen/scripts/main.ts \
213 --promptfiles characters/characters.md \
214 --image characters/characters.png --ar 4:3
215```
216
217**Compress character sheet** (recommended):
218Compress to reduce token usage when used as reference image:
219- Use available image compression skill (if any)
220- Or system tools: `pngquant`, `optipng`, `sips` (macOS)
221- **Keep PNG format**, lossless compression preferred
222
223**7.2 Generate each page WITH character reference**:
224
225| Skill Capability | Strategy |
226|------------------|----------|
227| Supports `--ref` | Pass `characters/characters.png` with EVERY page |
228| No `--ref` support | Prepend character descriptions to EVERY prompt file |
229
230**Backup rules for page generation**:
231- If prompt file exists: rename to `prompts/NN-{cover|page}-[slug]-backup-YYYYMMDD-HHMMSS.md`
232- If image file exists: rename to `NN-{cover|page}-[slug]-backup-YYYYMMDD-HHMMSS.png`
233
234```bash
235# Example: ALWAYS include --ref for consistency
236npx -y bun ${SKILL_DIR}/../canghe-image-gen/scripts/main.ts \
237 --promptfiles prompts/01-page-xxx.md \
238 --image 01-page-xxx.png --ar 3:4 \
239 --ref characters/characters.png
240```
241
242**Full workflow details**: [references/workflow.md](references/workflow.md)
243
244### EXTEND.md Paths ⛔ BLOCKING
245
246**CRITICAL**: If EXTEND.md not found, MUST complete first-time setup before ANY other questions or steps. Do NOT proceed to content analysis, do NOT ask about art style, do NOT ask about tone — ONLY complete the preferences setup first.
247
248| Path | Location |
249|------|----------|
250| `.canghe-skills/canghe-comic/EXTEND.md` | Project directory |
251| `$HOME/.canghe-skills/canghe-comic/EXTEND.md` | User home |
252
253| Result | Action |
254|--------|--------|
255| Found | Read, parse, display summary → Continue |
256| Not found | ⛔ **BLOCKING**: Run first-time setup ONLY ([references/config/first-time-setup.md](references/config/first-time-setup.md)) → Complete and save EXTEND.md → Then continue |
257
258**EXTEND.md Supports**: Watermark | Preferred art/tone/layout | Custom style definitions | Character presets | Language preference
259
260Schema: [references/config/preferences-schema.md](references/config/preferences-schema.md)
261
262## References
263
264**Core Templates**:
265- [analysis-framework.md](references/analysis-framework.md) - Deep content analysis
266- [character-template.md](references/character-template.md) - Character definition format
267- [storyboard-template.md](references/storyboard-template.md) - Storyboard structure
268- [ohmsha-guide.md](references/ohmsha-guide.md) - Ohmsha manga specifics
269
270**Style Definitions**:
271- `references/art-styles/` - Art styles (ligne-claire, manga, realistic, ink-brush, chalk)
272- `references/tones/` - Tones (neutral, warm, dramatic, romantic, energetic, vintage, action)
273- `references/presets/` - Presets with special rules (ohmsha, wuxia, shoujo)
274- `references/layouts/` - Layouts (standard, cinematic, dense, splash, mixed, webtoon)
275
276**Workflow**:
277- [workflow.md](references/workflow.md) - Full workflow details
278- [auto-selection.md](references/auto-selection.md) - Content signal analysis
279- [partial-workflows.md](references/partial-workflows.md) - Partial workflow options
280
281**Config**:
282- [config/preferences-schema.md](references/config/preferences-schema.md) - EXTEND.md schema
283- [config/first-time-setup.md](references/config/first-time-setup.md) - First-time setup
284- [config/watermark-guide.md](references/config/watermark-guide.md) - Watermark configuration
285
286## Page Modification
287
288| Action | Steps |
289|--------|-------|
290| **Edit** | **Update prompt file FIRST** → `--regenerate N` → Regenerate PDF |
291| **Add** | Create prompt at position → Generate with character ref → Renumber subsequent → Update storyboard → Regenerate PDF |
292| **Delete** | Remove files → Renumber subsequent → Update storyboard → Regenerate PDF |
293
294**IMPORTANT**: When updating pages, ALWAYS update the prompt file (`prompts/NN-{cover|page}-[slug].md`) FIRST before regenerating. This ensures changes are documented and reproducible.
295
296## Notes
297
298- Image generation: 10-30 seconds per page
299- Auto-retry once on generation failure
300- Use stylized alternatives for sensitive public figures
301- Maintain style consistency via session ID
302- **Step 2 confirmation required** - do not skip
303- **Steps 4/6 conditional** - only if user requested in Step 2
304- **Step 7.1 character sheet MUST be generated before pages** - ensures consistency
305- **Step 7.2 EVERY page MUST reference characters** - use `--ref` or embed descriptions
306- Watermark/language configured once in EXTEND.md