7.0 KiB
Generation Modes
Step 1: Determine Output Location
- Check if there's an active plan context (from
## Plan Contextin hook injection) - If active plan exists: save to
{plan_dir}/visuals/{topic-slug}.md - If no active plan: save to
plans/visuals/{topic-slug}.md - Create
visuals/directory if it doesn't exist
Step 2: Generate Content
Mermaid Diagram Syntax:
When generating mermaid code blocks, use /ck:mermaidjs-v11 skill for v11 syntax rules.
Essential rules (always apply):
- Quote node text with special characters:
A["text with /slashes"] - Escape brackets in labels:
A["array[0]"]
Use the appropriate template based on flag:
--explain (Visual Explanation)
# Visual Explanation: {topic}
## Overview
Brief description of what we're explaining.
## Quick View (ASCII)
[ASCII diagram of component relationships]
## Detailed Flow
[Mermaid sequence/flowchart diagram]
## Key Concepts
1. **Concept A** - Explanation
2. **Concept B** - Explanation
## Code Example (if applicable)
[Relevant code snippet with comments]
--slides (Presentation Format)
# {Topic} - Visual Presentation
---
## Slide 1: Introduction
- One concept per slide
- Bullet points only
---
## Slide 2: The Problem
[Mermaid flowchart]
---
## Slide 3: The Solution
- Key point 1
- Key point 2
---
## Slide 4: Summary
Key takeaways...
--diagram (Focused Diagram)
# Diagram: {topic}
## ASCII Version
[ASCII architecture diagram]
## Mermaid Version
[Mermaid flowchart/graph]
--ascii (Terminal-Friendly Only)
[ASCII-only box diagram with legend]
Step 3: Save and Preview
- Write generated content to determined path
- Start preview server with the generated file:
node .opencode/skills/markdown-novel-viewer/scripts/server.cjs \
--file "<generated-file-path>" --host 0.0.0.0 --open --foreground
Step 4: Report to User
Report:
- Generated file path
- Preview URL (local + network)
- Remind: file saved in plan's
visuals/folder for future reference
HTML Mode Generation
When --html flag is present (or implied by --diff, --plan-review, --recap), generate self-contained HTML instead of Markdown.
HTML Step 1: Determine Output Location
- Same plan-aware logic as markdown mode but with
.htmlextension - Active plan:
{plan_dir}/visuals/{topic-slug}.html - No plan:
plans/visuals/{topic-slug}.html - Create
visuals/directory if needed
HTML Step 2: Read References
Always read html-design-guidelines.md first (anti-slop rules, style presets).
Then read mode-specific references:
| Mode | References | Templates to study |
|---|---|---|
| --html --explain | html-css-patterns.md, html-libraries.md | architecture.html |
| --html --diagram | html-css-patterns.md, html-libraries.md | mermaid-flowchart.html or architecture.html |
| --html --slides | html-slide-patterns.md, html-css-patterns.md, html-libraries.md | slide-deck.html |
| --html --diff | html-css-patterns.md, html-libraries.md | data-table.html, architecture.html |
| --html --plan-review | html-css-patterns.md, html-libraries.md | architecture.html, data-table.html |
| --html --recap | html-css-patterns.md, html-libraries.md | architecture.html, data-table.html |
For multi-section pages (explain, diff, plan-review, recap): also read html-responsive-nav.md.
HTML Step 3: Generate Content
Follow the 4-phase workflow:
Think: Determine content-type routing:
- Mermaid for topology (flowcharts, sequence, ER, state, mind maps, class, C4)
- CSS Grid for text-heavy architecture (cards with descriptions, code references)
- HTML
<table>for data (requirement audits, comparisons, matrices) - Chart.js for real charts (KPI dashboards, sparklines)
- Hybrid for complex systems (15+ elements): simple Mermaid overview + detailed CSS Grid cards
Structure: Pick template pattern, plan sections, assign depth tiers (hero/elevated/default/recessed).
Style: Select font pairing + palette from curated presets. Vary from previous outputs. Apply anti-slop checks:
- No Inter/Roboto/system-ui alone as body font
- No indigo/violet (#8b5cf6, #7c3aed) as accent
- No animated glowing box-shadows
- No gradient text on headings
- No emoji icons in section headers
- No three-dot window chrome on code blocks
Deliver: Write single self-contained .html file — all CSS and JavaScript inline. External resources: CDN only (Google Fonts, Mermaid.js v11, Chart.js, anime.js).
MANDATORY — Theme Toggle: Every HTML page MUST include the light/dark theme toggle button from html-css-patterns.md → "Theme Toggle Button" section. This is non-negotiable. The toggle button (<button class="theme-toggle">) must be the first child of <body>, with its CSS and JS inlined. Pages without the toggle are considered incomplete.
For --slides: recommend invoking /ck:ui-ux-pro-max for richer style selection.
Must use /ck:mermaidjs-v11 for any Mermaid diagrams.
HTML Step 4: Open in Browser
- macOS:
open "{output-path}" - Linux:
xdg-open "{output-path}" - Windows:
start "{output-path}" - No server needed — file is self-contained
- Report file path and confirm browser opened
Data Gathering for HTML-Only Modes
--diff [ref]
- Detect scope: branch name → working tree diff; commit hash →
git show; HEAD → uncommitted; PR number →gh pr diff; range → two commits; no arg → diff against main - Run:
git diff --stat,git diff --name-status, line counts - Read all changed files + surrounding context
- Scan new public API surface (grep exports, functions, classes, interfaces)
- Check CHANGELOG.md, README.md, docs updates
- Reconstruct decision rationale from commits/conversation/progress docs
--plan-review [plan-file]
- Input: explicit plan file path OR detect from active plan context
- Read plan in full (problem, changes, rejected alternatives, scope)
- Read every file the plan references + their dependencies
- Map blast radius (imports, tests, config, public API)
- Cross-reference: plan assumptions vs actual code state
--recap [timeframe]
- Parse time window: shorthand (2w, 30d, 3m) → git
--sinceformat; default 2w - Project identity: README, CHANGELOG, package.json, file structure
- Recent activity:
git log --oneline --since=...,git shortlog - Current state:
git status, stale branches, TODOs, progress docs - Decision context: commit messages, plans, ADRs
- Architecture scan: key files, module structure, frequently changed areas
Quality Checklist
Before delivering HTML output, verify:
- Squint test: Visual hierarchy visible at arm's length?
- Swap test: Would this look AI-generated? Check against forbidden patterns
- Theme toggle (MANDATORY): Toggle button present as first child of
<body>? Both light and dark modes render correctly? Seehtml-css-patterns.md→ "Theme Toggle Button". - Overflow: No horizontal scroll on content (tables excepted, wrapped in scroll container)
- Mermaid: Zoom controls present? ELK layout for 10+ nodes?
- Responsiveness: Readable on mobile width?