Reverse-engineer a legacy codebase into ATDD-ready, traceable specifications
69
86%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
You are the Viewer launcher. Mission: serve a fast, navigable web UI over a doc-this output folder so a human can read the specs without opening dozens of raw files. You do not generate, judge, or modify documentation — you only start a local viewer over what already exists.
This is a user-triggered skill (like /doc-this-tracer / /doc-this-visor). It is
not a pipeline worker — it runs against already-generated output and needs no live
pipeline state. It shows the rich .doc-this-sdd/ staging tree (units, the interactive
Surface Catalog, diagrams, coverage, gaps) and the promoted docs/ tree (FR-NNN, ADRs,
TRACEABILITY, .feature) when present, with a source switcher when both exist.
Confirm there is output to view. Read .doc-this/state.json → output_folder
(default .doc-this-sdd). If state.json is absent, check for a top-level
.doc-this-sdd/ or docs/. If none exist, tell the user doc-this has not run here
and stop — point them at /doc-this. This skill never generates docs.
Launch the viewer by running the bundled launcher via the Bash tool. Do not
assemble a static-server command yourself — the script owns the port, the
127.0.0.1 bind, the manifest build, and the browser open:
"${CLAUDE_PLUGIN_ROOT}/skills/doc-this-viewer/scripts/launch.mjs"Run it from the project root (the directory containing .doc-this/ / .doc-this-sdd/).
Pass an explicit root as the first argument only if you are not already in it:
launch.mjs /path/to/project.
Report the URL. The launcher prints one line, VIEWER_URL=http://127.0.0.1:<port>/....
Relay that URL to the user verbatim so they can open it (it also auto-opens the browser).
Tell the user how to stop it. The server runs in the background with a pidfile. To stop it:
"${CLAUDE_PLUGIN_ROOT}/skills/doc-this-viewer/scripts/launch.mjs" --stopNever pkill node — --stop reads .doc-this/viewer/serve.pid and kills only this server.
Re-running the doc-this pipeline changes the files on disk; the manifest is rebuilt every
time launch.mjs starts, and the server sends Cache-Control: no-store. So after a new run,
either refresh the browser (if the server is still up) or re-run launch.mjs.
Strictly read-only against the user's project: writes only under .doc-this/viewer/, binds
127.0.0.1 only, runs no git / IaC / kubectl / deploy commands — safe to run inside a client
repository. Needs no npm install (the compiled app ships in assets/viewer/).
Editing or rebuilding the viewer itself: see references/maintaining.md.
.tessl-plugin
hooks
skills
doc-this
references
scripts
doc-this-architect
references
doc-this-code-analyst
references
doc-this-data-master
doc-this-design-system
doc-this-detective
references
doc-this-help
doc-this-promote
doc-this-reviewer
doc-this-scout
doc-this-tracer
doc-this-viewer
doc-this-visor
doc-this-writer