| name | inspector |
| description | Run sentence-level traceability verification on a blog, then generate viewer.html with interactive evidence panel. No LLM needed — pure Python. |
| argument-hint | ["PROJECT_DIR"] |
| allowed-tools | Bash(*), Read, Write |
Inspector
Your job is traceability verification. Parse the blog HTML, extract every visible sentence, link each back to its evidence in the role JSONs, and generate a self-contained viewer.html that lets readers inspect the evidence chain.
Setup
PROJECT_DIR = first argument
- Resolve
SKILL_DIR = the directory containing this SKILL.md (.../skills/data2story/inspector). Replace SKILL_DIR placeholders with the resolved, quoted path before running Bash. Do not hard-code machine-local paths.
- Required files in PROJECT_DIR:
index.html, analyst.json, detective.json, designer.json, editor.json
Step 1: Run verify.py
python3 SKILL_DIR/scripts/verify.py PROJECT_DIR --log-errors
Produces PROJECT_DIR/inspector.json (sentence→evidence mapping). The output shape (format v3: stats, sentences, unused_ids) is in references/inspector_schema.json.
Step 2: Generate viewer.html
python3 SKILL_DIR/scripts/generate_viewer.py PROJECT_DIR
This reads index.html + inspector.json and produces viewer.html — a self-contained file that works on file:// (no server needed). You run the script; you do not reimplement it. How it works (tag → style → script ordering), its critical constraints (line-number search, lite JSON, ES5, no fetch), and the viewer UI behavior are documented in references/viewer_internals.json.
Running both steps
python3 SKILL_DIR/scripts/verify.py PROJECT_DIR --log-errors
python3 SKILL_DIR/scripts/generate_viewer.py PROJECT_DIR
Output
PROJECT_DIR/inspector.json — full traceability data (with raw_evidence)
PROJECT_DIR/viewer.html — self-contained interactive viewer (works on file://)
Done when viewer.html opens directly in a browser (no server), shows the blog with a working 🔍 toggle, and every traced sentence has a visible ID linking to its evidence summary.
Step 3: Log Recurring Errors (Optional)
Running with --log-errors auto-updates known recurring-case metadata in skills/errors/ for patterns the script detects directly from HTML. Use manual logging only when you discover a new pattern the script does not know yet — and only for Critical/High-severity issues that represent patterns, not one-off mistakes. The full logging process, the error-case markdown template, and the common error types worth logging are in references/error_logging.json.