II.
Page JSON
Structured · livepage:00-wiki-architecture
Wiki Architecture json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "page:00-wiki-architecture",
"_kind": "Page",
"_file": "wiki/00-wiki-architecture.md",
"_cluster": "wiki",
"attributes": {
"nodeKind": "Page",
"title": "Wiki Architecture",
"displayName": "Wiki Architecture",
"slug": "00-wiki-architecture",
"articlePath": "wiki/00-wiki-architecture.md",
"article": "# Wiki Architecture\n\n> Phase-4 deliverable. The wiki is the user-facing projection of the graph — full encyclopedia, navigable, searchable, deeply cross-linked. **Every page is generated from a graph query, never authored.**\n\n## Site shape\n\nThe site is a static, file-based build. Output lands under `wiki/generated/`. Top-level navigation:\n\n```\n/\n├── overview/ (auto-derived: introduction, glossary, stack diagram)\n├── stack/ (one page per top-level Layer)\n├── products/ (one page per AgentProduct, with version subpages)\n├── capabilities/ (one page per Capability, with support matrix)\n├── hooks/ (one page per HookSurface, grouped by HookFamily)\n├── channels/ (one page per Channel + ChannelKind index)\n├── extensions/ (Plugin / NativeExtension / PortableExtension / Skill / Subagent / ToolServer / ToolDescriptor / Blueprint / ExtensionInterface)\n├── lifecycle/ (Run / Invocation / Session / Phase + state-machine diagrams)\n├── domain/ (Domain / Specialization / Topic / Language / Framework / StackProfile / ExpertiseLevel)\n├── roles/ (Role / Responsibility / OrgUnit)\n├── benchmarks/ (Benchmark / TestSet / EvalRun / EvalResult)\n├── trust/ (Authority / Attestation / TrustLevel)\n├── glossary/ (every Term, sorted; alias index)\n├── meta/ (CatalogVersion history, Generator catalog, evidence dashboard, gap dashboard)\n└── search/ (full-text search index endpoint)\n```\n\nThe full mapping of page type → query lives in [`01-derivation-mapping.md`](./01-derivation-mapping.md).\n\n## Navigation taxonomy\n\nNavigation is generated, never authored. Three layers:\n\n1. **Cluster sidebar** — the NodeKind clusters from `graph/schema/node-kinds/README.md`. Mirrors the schema's editorial frame.\n2. **Breadcrumbs** — derived from edge traversal. A `ModelVersion` page's breadcrumb is `Stack → Compute Path → ModelFamily(claude) → ModelVersion(claude-opus-4-7)`.\n3. **In-page TOC** — derived from the page's section list, which is itself derived from the page-type's query template.\n\nEvery link target is a node `id`; broken links are impossible because the link generator only emits links for ids that resolved during graph load.\n\n## Search\n\nFull-text search index built at generation time:\n\n- One document per page; `id`, `displayName`, `aliases` (from `Synonym` + `Acronym`), and the rendered prose body are indexed.\n- Lunr.js client-side search by default; pluggable to a hosted index (Algolia/Meili) via the same generator manifest.\n- Cross-reference highlights: when a query matches a `Term`, the result preview shows up to three nodes that `reference` it.\n\n## Cross-references\n\nCross-refs are first-class. Every NodeKind page renders:\n\n- **Outgoing**: edges this node has, grouped by `EdgeKind`, each with target link.\n- **Incoming**: reverse adjacency (e.g., a `Capability` page lists every `CapabilitySupport` and through it every `AgentVersion` that supports the capability).\n- **Mentioned in**: `Term` references back to nodes that name them.\n- **Evidence trail**: every claim on the page links to its `EvidenceSource`(s) and shows freshness state.\n\nA \"Why this page?\" disclosure on every page lists the exact graph query that produced it (and the manifest hash) — opening it shows which `Generator` is responsible, satisfying the audit requirement in Phase 5.\n\n## Authoring vs generation\n\nAuthoring touches **only**:\n\n- `assets/` (logos, hand-drawn diagrams, screenshots).\n- Page templates inside `graph/wiki/generators/templates/wiki/`.\n- Navigation configuration (which clusters appear, ordering).\n\nAuthoring **never** touches `generated/`. CI rejects any PR that hand-edits a file under `generated/` without a corresponding template/data change.\n\n## Asset handling\n\n- Hand-drawn diagrams in `assets/diagrams/` are referenced by node id (`asset:diagram-stack-overview`) and tracked as `EvidenceSource` records of `kindLabel = file` so freshness checks apply uniformly.\n- Auto-rendered diagrams (mermaid) live under `generated/assets/` and are produced by the stack-diagram generator.\n\n## Generation cadence\n\n| Trigger | Action |\n|---|---|\n| Per PR | Re-run generators that consume any node touched by the PR. CI fails if the resulting tree diff exceeds the PR's claimed scope (Level-2 / Level-4 gate). |\n| On merge to main | Full regeneration; static site published to the docs host. |\n| Weekly | Full regeneration without code changes — surfaces stale evidence (Level-1 freshness gate). Any new diff means an external truth has shifted; opens a Level-1 `Gap`. |\n| On schema bump | Full regeneration tagged with the new `CatalogVersion`; previous version archived under `/wiki/<version>/`. |\n\n## Versioning\n\nThe published site has a version selector keyed to `CatalogVersion`. Pinning a wiki page URL to `/<semver>/...` returns the exact prose generated against that schema version, supporting Phase 5's downstream-pinning contract.\n",
"documents": []
},
"outgoingEdges": [],
"incomingEdges": [
{
"from": "page:index",
"to": "page:00-wiki-architecture",
"kind": "contains_page"
}
]
}