View files/directories OR generate visual explanations, slides, diagrams.
Universal viewer + visual generator. View existing content OR generate new visual explanations.
If invoked without arguments, use AskUserQuestion to present available preview operations:
| Operation | Description |
|---|---|
(view) | View a file or directory |
--explain | Generate visual explanation |
--slides | Generate presentation slides |
--diagram | Generate architecture diagram |
--ascii | Terminal-friendly diagram |
--stop | Stop preview server |
Present as options via AskUserQuestion with header "Preview Operation", question "What would you like to do?".
/ak:preview <file.md> - View markdown file in novel-reader UI/ak:preview <directory/> - Browse directory contents/ak:preview --stop - Stop running server/ak:preview --explain <topic> - Generate visual explanation (ASCII + Mermaid + prose)/ak:preview --slides <topic> - Generate presentation slides (one concept per slide)/ak:preview --diagram <topic> - Generate focused diagram (ASCII + Mermaid)/ak:preview --ascii <topic> - Generate ASCII-only diagram (terminal-friendly)When processing arguments, follow this priority order:
--stop → Stop server (exit)--explain, --slides, --diagram, --ascii) → Generation mode. Load references/generation-modes.mdreferences/view-mode.mdTopic-to-slug conversion:
Multiple flags: If multiple generation flags provided, use first one; remaining treated as topic.
Placeholder {topic}: Replaced with original user input in title case (not the slug).
| Error | Action |
|---|---|
| Invalid topic (empty) | Ask user to provide a topic |
| Flag without topic | Ask user: "Please provide a topic: /ak:preview --explain <topic>" |
| Topic becomes empty after sanitization | Ask for topic with alphanumeric characters |
| File write failure | Report error, suggest checking permissions |
| Server startup failure | Check if port in use, try /ak:preview --stop first |
| No generation flag + unresolvable reference | Ask user to clarify which file they meant |
| Existing file at output path | Overwrite with new content (no prompt) |
| Server already running | Reuse existing server instance, just open new URL |
Parent plans/ dir missing | Create directories recursively before write |