| name | render |
| description | Renders an existing tour-spec.json to a self-contained interactive HTML guide via the bundled Node renderer. Use when the user has hand-edited a tour-spec.json, when learning-guide:analyze hands off after drafting, or when the user explicitly asks to "render the tour", "regenerate the HTML", or "update the embedded sources". Idempotent for generated artifacts; preserves user-edited README and tour-spec.json. |
Render — HTML Generation
Take a tour-spec.json and produce a self-contained, offline-first index.html. This skill is deterministic; the heavy lifting is in ${CLAUDE_PLUGIN_ROOT}/scripts/render.cjs.
Trigger phrases
- "render the tour"
- "regenerate the HTML"
- "update the embedded sources"
- Auto-dispatched at the end of
learning-guide:analyze
Inputs
- Spec path —
tour-spec.json location. Default: CWD; explicit path supported.
- Output directory — defaults to the spec's parent dir.
Steps
-
Locate the spec. If the user provides a path, use it. Otherwise look for tour-spec.json in CWD. If neither, ask the user where the spec is. Do NOT scan the entire repository.
-
Confirm Node is available. Run node --version. If exit code is non-zero, tell the user Node.js must be on PATH and stop. Do not attempt fallback rendering.
-
Inspect overrides. Look for <spec-dir>/.learning-guide/template.html. If present, ensure tour-spec.renderer.template_compatibility_version matches the <!-- template_compatibility_version: N --> declaration on the override's first line. If missing or mismatched, ask the user to fix it before rendering.
-
Run the renderer.
node "${CLAUDE_PLUGIN_ROOT}/scripts/render.cjs" "<spec-path>"
If --output-dir is needed, pass it explicitly.
-
Surface output. On success, print the renderer's stdout summary verbatim. On non-zero exit, print stderr verbatim and offer the troubleshooting table from references/renderer-cli.md.
-
Confirm artifacts. Verify index.html and README.md exist with non-zero size. If anything expected is missing, surface the discrepancy — do not retry blindly.
Re-running from the shell
The user can re-render without involving Claude by running node "<plugin-root>/scripts/render.cjs" tour-spec.json.
When NOT to use this skill
- The user wants new content, not a re-render. Dispatch
learning-guide:analyze instead.
- The spec does not exist yet. Dispatch
learning-guide:analyze.
References
references/renderer-cli.md — flags, exit codes, troubleshooting.
references/browser-compatibility.md — file:// constraints.