process/gaps
Gap Tracker guide
Human-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).
Pages in this section
Start with the section hub, then move sideways into adjacent pages when you need more detail.
The Plugin and NativeExtension NodeKinds enumerate containsskill, containssubagent, containstoolserver edges. There is no representation of:
wiki/process/gaps/GAP-L1-P0-claude-code-plugin-component-types.md
The pricing typo by itself makes derived cost calculations wrong by 3000x. P0.
wiki/process/gaps/GAP-L1-P0-claude-models-pricing-and-lineup.md
schema/examples/compute/mcp-transports/streamable-http.yaml records specVersion: "2025-03-26". The MCPTransport NodeKind only carries kind/specUrl/specVersion. There is no enumeration of MCP spec revisions, and no notion of feature deltas across revisions (e.g. elicitation, structured tool output, resource links, OAuth Resource Server classification, removal of JSON-RPC batching, mandatory MCP-Protocol-Version header).
wiki/process/gaps/GAP-L1-P0-mcp-spec-2025-11-25.md
ModelVersion.supportsThinking: bool + thinkingEffortLevels + supportsThinkingBudgetTokens. Anthropic now ships TWO distinct thinking modes:
wiki/process/gaps/GAP-L1-P1-adaptive-thinking-vs-extended-thinking.md
Skill NodeKind has one shape: directory-of-markdown with SKILL.md entrypoint. Anthropic now ships TWO distinct concepts both called "Skill":
wiki/process/gaps/GAP-L1-P1-anthropic-skills-vs-claude-code-skills.md
schema/examples/agent-stack/products/cursor.yaml is a 16-line stub. schema/examples/agent-stack/capability-profiles/cursor-default.yaml and cursor-cli-permissive.yaml exist but the CapabilityProfile NodeKind only carries default, description, overrides — it cannot express Cursor's mode taxonomy:
wiki/process/gaps/GAP-L1-P1-cursor-profiles-and-modes.md
ToolDescriptor and ToolServer NodeKinds describe a tool's name, schema, and protocol but do not represent:
wiki/process/gaps/GAP-L1-P1-mcp-elicitation-and-resource-links.md
Provider.authMethods enumerates api-key,oauth,browser-login,service-account,iam,device-code. ToolServer has no auth attribute at all. The 2025-06-18 MCP revision classifies MCP servers as OAuth Resource Servers (RFC 6749 §1.4) and requires clients to implement Resource Indicators (RFC 8707) to prevent token-theft attacks. The schema cannot express any of this.
wiki/process/gaps/GAP-L1-P1-mcp-oauth-resource-server.md
The repo's live packages/agent-catalog/graph/schema/ontology-schema.yaml defines DiscoverySignal (with signalKind, key, matchMode, confidence, argvMatches, etc.) and a discoveredby edge. v6 graph treats discovery as out-of-scope ("Discovery runtime queries (detectHostAgent, listInstalledAgents)... runtime API; the catalog describes the data such queries consume; the queries themselves are not schema").
wiki/process/gaps/GAP-L1-P1-repo-graph-discovery-signal.md
The repo defines two per-AgentVersion semantics nodes:
wiki/process/gaps/GAP-L1-P1-repo-graph-session-lifecycle-semantics.md
Lower-impact catalog completeness gap.
wiki/process/gaps/GAP-L1-P2-gemini-2-5-and-3.md
MCPTransport.kind: enum<stdio,streamable-http,sse,websocket>. Coverage-checklist row says HTTP+SSE is "deprecated" and WebSocket is "community" / not-in-spec, but the schema has no status attribute on MCPTransport. Examples show status: live only for streamable-http, but the field isn't in the NodeKind definition (only in the example).
wiki/process/gaps/GAP-L1-P2-mcp-stdio-vs-http-sse-deprecation.md
Lower priority than Anthropic gaps because Codex's surface evolves slower, but coverage parity matters.
wiki/process/gaps/GAP-L1-P2-openai-codex-and-responses-api.md
Repo defines:
wiki/process/gaps/GAP-L1-P2-repo-graph-cisurface-packagesurface.md
Repo has PluginArtifact (artifactKind, pathPattern, installerSurface) emitted via PluginTarget emitsartifact PluginArtifact. v6 schema has NativeExtension/PortableExtension/Plugin but no concept of the physical artifact files a plugin compiles to.
wiki/process/gaps/GAP-L1-P2-repo-graph-pluginartifact.md
schema/examples/benchmarks/ directory absent or sparse. Coverage-checklist OpenQuestion "Benchmark-run primitives at SDK layer" is unresolved. Major 2025/2026 benchmarks not represented:
wiki/process/gaps/GAP-L1-P3-benchmarks-stale.md
coverage-checklist.md references PathDescriptor in at least 4 rows ("Run dir layout PathDescriptor per file", "PathDescriptor for ~/.a5c/", "Layout version", others). It is NOT present in schema/ontology-schema.yaml nodeKinds: list (verified by grep). It is NOT in 02-node-kinds/README.md cluster table. The repo agent-catalog DOES define PathDescriptor. So the v6 schema cites a NodeKind that does not exist.
wiki/process/gaps/GAP-L2-P0-pathdescriptor-undeclared-but-referenced.md
ontology-schema.yaml lists ~115 edges (e.g. applies-to, composes-stack, delegated-from, phase-in, compiled-from, closed-by, compiles-to, compiled-from, discovered-by, evidenceSource attrustlevel...).
wiki/process/gaps/GAP-L2-P1-edge-kinds-md-vs-yaml-parity.md
ontology-schema.yaml defines MCPTransport with attributes: id, displayName, kind, specUrl. The example streamable-http.yaml uses two extra fields: specVersion: "2025-03-26" and status: live. These are not declared in the NodeKind. This breaks V-12.5 (NodeKind ↔ examples must be consistent).
wiki/process/gaps/GAP-L2-P1-mcptransport-status-attribute-undeclared.md
02-node-kinds/README.md line 8 declares: "The schema is organized into 15 clusters." File listing shows 13 sibling .md files (agent-stack, benchmarks, capabilities, catalog-meta, channels-hooks, domain-ontology, extensions-plugins, lifecycle, role-ontology, sourceref-and-scope, stack-layers, terminology, transport, trust). README cluster index needs to list 15 clusters with their NodeKind tables; appears to enumerate 12-13.
wiki/process/gaps/GAP-L2-P2-cluster-count-mismatch.md
Beyond PathDescriptor (its own gap), coverage-checklist mentions:
wiki/process/gaps/GAP-L2-P2-coverage-checklist-internal-broken-refs.md
ModelVersion.versionRange: versionRange semantically conflates "this version" with "a range of versions". Example claude-opus-4-7.yaml has versionRange: ">=4.7.0 <5.0.0" which is a range, but model:claude-opus-4-7 is intended to be one specific snapshot (claude-opus-4-7-20251201 or similar). The repo agent-catalog distinguishes ModelFamily (range-bearing) from ModelVersion (concrete snapshot id).
wiki/process/gaps/GAP-L2-P2-versionrange-attribute-on-modelversion.md
Gap Tracker
Human-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).
How files relate to graph entries
- The **YAML form** of a gap lives under
graph/schema/examples/catalog-meta/gaps/<id>.yaml— same as every other graph entity. - The **markdown form** lives here, at
process/gaps/GAP-<level>-<priority>-<slug>.md. - 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 theGapnode'smarkdownRefattribute.
Authoring rules
- Always create the YAML node first; the markdown file is a projection (or co-authored alongside, then verified by the sync generator).
- The filename must match the
idslug exactly:GAP-<level>-<priority>-<slug>.md↔gap:<slug>. - Use `_template.md` verbatim. Do not invent extra sections; the sync generator only knows the template's structure.
Lifecycle
status | Meaning |
|---|---|
open | Discovered, not yet picked up. |
in-progress | Implementer assigned; one or more propagationStatus levels are in-progress. |
closed | Adversarial review signed off; every applicable level is done or not-applicable. |
deferred | Acknowledged but intentionally postponed (P2/P3 only); requires a date and a reason in notes. |
Index
The 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.