II.
Page JSON
Structured · livepage:process-gaps
Gap Tracker json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "page:process-gaps",
"_kind": "Page",
"_file": "wiki/process/gaps/README.md",
"_cluster": "wiki",
"attributes": {
"nodeKind": "Page",
"title": "Gap Tracker",
"displayName": "Gap Tracker",
"slug": "process/gaps",
"articlePath": "wiki/process/gaps/README.md",
"article": "# Gap Tracker\n\nHuman-readable form of every tracked gap. Each file in this directory mirrors a `Gap` node in the graph (see `graph/02-node-kinds/catalog-meta.md`, NodeKind `Gap`).\n\n## How files relate to graph entries\n\n- The **YAML form** of a gap lives under `graph/schema/examples/catalog-meta/gaps/<id>.yaml` — same as every other graph entity.\n- The **markdown form** lives here, at `process/gaps/GAP-<level>-<priority>-<slug>.md`.\n- The two are kept in sync by a Phase-3 generator (added as the eleventh entry in `06-derivation-spec.md`). The markdown file's path is recorded on the `Gap` node's `markdownRef` attribute.\n\n## Authoring rules\n\n- Always create the YAML node first; the markdown file is a projection (or co-authored alongside, then verified by the sync generator).\n- The filename must match the `id` slug exactly: `GAP-<level>-<priority>-<slug>.md` ↔ `gap:<slug>`.\n- Use [`_template.md`](./_template.md) verbatim. Do not invent extra sections; the sync generator only knows the template's structure.\n\n## Lifecycle\n\n| `status` | Meaning |\n|---|---|\n| `open` | Discovered, not yet picked up. |\n| `in-progress` | Implementer assigned; one or more `propagationStatus` levels are `in-progress`. |\n| `closed` | Adversarial review signed off; every applicable level is `done` or `not-applicable`. |\n| `deferred` | Acknowledged but intentionally postponed (P2/P3 only); requires a date and a reason in `notes`. |\n\n## Index\n\nThe full index of open / in-progress / closed gaps is **derived** from the graph (Phase 3 generator emits `process/gaps/INDEX.md` from `Gap` nodes). Do not author an index by hand — it would drift.\n",
"documents": []
},
"outgoingEdges": [
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L1-P0-claude-code-plugin-component-types",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L1-P0-claude-models-pricing-and-lineup",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L1-P0-mcp-spec-2025-11-25",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L1-P1-adaptive-thinking-vs-extended-thinking",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L1-P1-anthropic-skills-vs-claude-code-skills",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L1-P1-cursor-profiles-and-modes",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L1-P1-mcp-elicitation-and-resource-links",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L1-P1-mcp-oauth-resource-server",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L1-P1-repo-graph-discovery-signal",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L1-P1-repo-graph-session-lifecycle-semantics",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L1-P2-gemini-2-5-and-3",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L1-P2-mcp-stdio-vs-http-sse-deprecation",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L1-P2-openai-codex-and-responses-api",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L1-P2-repo-graph-cisurface-packagesurface",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L1-P2-repo-graph-pluginartifact",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L1-P3-benchmarks-stale",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L2-P0-pathdescriptor-undeclared-but-referenced",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L2-P1-edge-kinds-md-vs-yaml-parity",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L2-P1-mcptransport-status-attribute-undeclared",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L2-P2-cluster-count-mismatch",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L2-P2-coverage-checklist-internal-broken-refs",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L2-P2-versionrange-attribute-on-modelversion",
"kind": "contains_page"
},
{
"from": "page:process-gaps",
"to": "page:process-gaps-template",
"kind": "contains_page"
}
],
"incomingEdges": [
{
"from": "page:process",
"to": "page:process-gaps",
"kind": "contains_page"
}
]
}