Replace the static hardcoded index with a manifest-driven page. Visual-explainer docs auto-publish from PR branches via GitHub Actions. Nested epic/feature hierarchy with spec and impl tag pills. Scroll-triggered animations throughout.
docs-manifest.json
on the docs branch. Nested structure: epics → features → docs. Decisions and roadmap as flat sections.
index.html
fetches the manifest on load. Renders epic cards with nested feature sub-cards and SPEC/IMPL tag pills.
publish-doc.yml
engine + automated PR trigger. Manual dispatch as fallback.
number title desc color — each epic maps to a CSS variable (--lavender, --sky, --mint, --peach)
title type href — type is spec or impl, href is relative path from docs root
number title desc — nested under parent epic, each has its own docs[] array
title type hreftag title desc href — flat list, no nestingtitle desc href — accent-striped cards<a> pointing to the visual-explainer HTML file. Features are nested inside their parent epic card with a left border in the epic's accent color.
Ctrl/Cmd + wheel to zoom. Scroll to pan. Drag when zoomed. Double-click to fit.
./docs-branch/ and the source ref into ./source/ using separate path: parameters. This avoids workspace conflicts. The manifest upsert uses actions/github-script to find-or-create the epic/feature entry and update the docs array by href match.
/visual-explainer on the spec/animate for polish*-spec.html with meta tags/visual-explainer on the impl/animate for polish*-impl.htmlready-to-merge label → auto-published| File | Section | Type |
|---|---|---|
| visual-explainer/epic-1-go-orchestrator-core.html | epics[0] | spec |
| visual-explainer/epic-2-terminal-substrate.html | epics[1] | spec |
| visual-explainer/epic-3-model-gateway.html | epics[2] | spec |
| Epic 4 (no file) | epics[3] | placeholder |
| decisions/orchestration-pattern.html | decisions[0] | decision |
| decisions/ipc-communication.html | decisions[1] | decision |
| decisions/state-management.html | decisions[2] | decision |
| decisions/process-supervision.html | decisions[3] | decision |
| decisions/terminal-substrate.html | decisions[4] | decision |
| decisions/desktop-rendering.html | decisions[5] | decision |
| decisions/model-gateway.html | decisions[6] | decision |
| decisions/tui-alternative.html | decisions[7] | decision |
| visual-explainer/roadmap.html | roadmap[0] | roadmap |
-spec suffix. They are not renamed. The automated discovery pattern (*-(spec|impl).html) intentionally does not match them — they are already seeded in the manifest.