Wiki Viewer
Single-file HTML view of a pro-workflow wiki. Reads ~/.pro-workflow/data.db, dumps the wiki into one self-contained HTML document with in-browser search, link graph and a seed-queue panel.
Why HTML, not markdown
- Information density — pages, sources, claims, seeds, link graph in one viewport
- Visual clarity — long wikis are unreadable as raw markdown; HTML scales
- Shareability — upload to S3, send the URL; recipient does not need pro-workflow installed
- Two-way interaction — "copy as seed" buttons turn open questions into seed queue prompts you can paste back into Claude Code
- Auditable — quick visual proof that the auto-research loop produced something useful
When to use
- After a
/wiki research run, to see what it built
- Before sharing a wiki with a teammate or with leadership
- Code review: render a
codebase-flavored wiki for an unfamiliar module
- Incident review: render an
incident wiki for a post-mortem readout
- Periodic audits: stale-claim detection, orphan-page review
Commands
node $SKILL_ROOT/scripts/render.js <slug> [--out <path>] [--theme dark|light]
Defaults:
- output:
<wiki-root>/derived/viewer.html
- theme:
dark
What ships in the file
| Panel |
Contents |
| Header |
wiki slug, flavor, scope, root path, last-update timestamp, page count, source count, kill-switch status |
| Sidebar |
page list grouped by page_type, in-page filter input |
| Main |
selected-page detail: title, summary, full markdown content (rendered), inline citations resolve to source rows |
| Sources |
table of every wiki_sources row + manual sources.md rows |
| Seeds |
seed-queue table grouped by status; "copy as research prompt" button per pending seed |
| Link graph |
SVG force-layout of cross-page citations + back-links |
| Search |
in-browser substring + token search over title/summary/content |
| Footer |
meta: schema versions, embedding model if present, generator version |
Self-contained
No CDN, no external fonts, no <script src=>. Inline CSS, inline SVG, inline JS only. Result is a single .html file that opens locally or from any static host.
Compose with the rest
# Generate after auto-research run completes
/wiki research agent-memory --max-pages 5
node skills/wiki-viewer/scripts/render.js agent-memory
open ~/.pro-workflow/wikis/agent-memory/derived/viewer.html
# Hand off to a teammate
aws s3 cp ~/.pro-workflow/wikis/agent-memory/derived/viewer.html s3://my-bucket/agent-memory.html --acl public-read
Design principles
- Type-first — every panel reads as text; visualizations are auxiliary, not load-bearing.
- Zero decoration — no gradients, no glow, no atmospheric backgrounds.
- Color is meaning — Anthropic coral marks the active page and CTAs only.
- Print-friendly —
@media print collapses sidebars so the markdown content prints clean.
Limits (initial release)
- Markdown rendering is a small in-file parser (headings, lists, code blocks, links, blockquotes, tables, footnote citations). No HTML-in-markdown.
- Link graph is precomputed and serialized as SVG; no live re-layout.
- Search is substring + tokenized AND match. BM25 stays in SQLite; the viewer is a snapshot.
- Re-render after each batch of changes. The file is not live.
Future hooks (not in initial release)
--include-council to bundle every linked council transcript inline
--include-survey to bundle generated surveys
- "Copy as council prompt" buttons next to claims tagged
contested
- Diff view:
--against <previous.html> to highlight new claims since a prior render
1---2name: wiki-viewer3description: Render a self-contained HTML viewer for a pro-workflow wiki. Pages, sources, claims, seed queue, page-link graph and full-text search all in one file. No external dependencies, no JS framework, S3-uploadable. Use when the user wants to browse a wiki visually, share its current state with someone, audit research progress, or hand off a knowledge base. Inspired by Thariq Shihipar's "Unreasonable Effectiveness of HTML" — favors information density and shareability over markdown-only outputs.4---5
6# Wiki Viewer
7
8Single-file HTML view of a pro-workflow wiki. Reads `~/.pro-workflow/data.db`, dumps the wiki into one self-contained HTML document with in-browser search, link graph and a seed-queue panel.
9
10## Why HTML, not markdown
11
12- **Information density** — pages, sources, claims, seeds, link graph in one viewport
13- **Visual clarity** — long wikis are unreadable as raw markdown; HTML scales
14- **Shareability** — upload to S3, send the URL; recipient does not need pro-workflow installed
15- **Two-way interaction** — "copy as seed" buttons turn open questions into seed queue prompts you can paste back into Claude Code
16- **Auditable** — quick visual proof that the auto-research loop produced something useful
17
18## When to use
19
20- After a `/wiki research` run, to see what it built
21- Before sharing a wiki with a teammate or with leadership
22- Code review: render a `codebase`-flavored wiki for an unfamiliar module
23- Incident review: render an `incident` wiki for a post-mortem readout
24- Periodic audits: stale-claim detection, orphan-page review
25
26## Commands
27
28```
29node $SKILL_ROOT/scripts/render.js <slug> [--out <path>] [--theme dark|light]
30```
31
32Defaults:
33
34- output: `<wiki-root>/derived/viewer.html`
35- theme: `dark`
36
37## What ships in the file
38
39| Panel | Contents |
40|-------|----------|
41| Header | wiki slug, flavor, scope, root path, last-update timestamp, page count, source count, kill-switch status |
42| Sidebar | page list grouped by `page_type`, in-page filter input |
43| Main | selected-page detail: title, summary, full markdown content (rendered), inline citations resolve to source rows |
44| Sources | table of every `wiki_sources` row + manual `sources.md` rows |
45| Seeds | seed-queue table grouped by status; "copy as research prompt" button per pending seed |
46| Link graph | SVG force-layout of cross-page citations + back-links |
47| Search | in-browser substring + token search over title/summary/content |
48| Footer | meta: schema versions, embedding model if present, generator version |
49
50## Self-contained
51
52No CDN, no external fonts, no `<script src=>`. Inline CSS, inline SVG, inline JS only. Result is a single `.html` file that opens locally or from any static host.
53
54## Compose with the rest
55
56```bash
57# Generate after auto-research run completes
58/wiki research agent-memory --max-pages 5
59node skills/wiki-viewer/scripts/render.js agent-memory
60open ~/.pro-workflow/wikis/agent-memory/derived/viewer.html
61
62# Hand off to a teammate
63aws s3 cp ~/.pro-workflow/wikis/agent-memory/derived/viewer.html s3://my-bucket/agent-memory.html --acl public-read
64```
65
66## Design principles
67
681. **Type-first** — every panel reads as text; visualizations are auxiliary, not load-bearing.
692. **Zero decoration** — no gradients, no glow, no atmospheric backgrounds.
703. **Color is meaning** — Anthropic coral marks the active page and CTAs only.
714. **Print-friendly** — `@media print` collapses sidebars so the markdown content prints clean.
72
73## Limits (initial release)
74
75- Markdown rendering is a small in-file parser (headings, lists, code blocks, links, blockquotes, tables, footnote citations). No HTML-in-markdown.
76- Link graph is precomputed and serialized as SVG; no live re-layout.
77- Search is substring + tokenized AND match. BM25 stays in SQLite; the viewer is a snapshot.
78- Re-render after each batch of changes. The file is not live.
79
80## Future hooks (not in initial release)
81
82- `--include-council` to bundle every linked council transcript inline
83- `--include-survey` to bundle generated surveys
84- "Copy as council prompt" buttons next to claims tagged `contested`
85- Diff view: `--against <previous.html>` to highlight new claims since a prior render