Render — HTML Generation
Take a tour-spec.json and produce a single-file 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.jsonlocation. 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.jsonin 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, ensuretour-spec.renderer.template_compatibility_versionmatches 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-diris 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.htmlandREADME.mdexist 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:analyzeinstead. - 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.