II.
Page JSON
Structured · livepage:process-gaps-GAP-L1-P1-repo-graph-discovery-signal
GAP-L1-P1-repo-graph-discovery-signal json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "page:process-gaps-GAP-L1-P1-repo-graph-discovery-signal",
"_kind": "Page",
"_file": "wiki/process/gaps/GAP-L1-P1-repo-graph-discovery-signal.md",
"_cluster": "wiki",
"attributes": {
"nodeKind": "Page",
"title": "GAP-L1-P1-repo-graph-discovery-signal",
"displayName": "GAP-L1-P1-repo-graph-discovery-signal",
"slug": "process/gaps/GAP-L1-P1-repo-graph-discovery-signal",
"articlePath": "wiki/process/gaps/GAP-L1-P1-repo-graph-discovery-signal.md",
"article": "# GAP-L1-P1-repo-graph-discovery-signal\n\n| Field | Value |\n|---|---|\n| id | gap:repo-graph-discovery-signal |\n| title | DiscoverySignal NodeKind from repo agent-catalog absent in v6 schema |\n| level | 1 |\n| priority | P1 |\n| discoveredAt | 2026-04-28T00:00:00Z |\n| source | packages/agent-catalog/graph/schema/ontology-schema.yaml |\n| status | open |\n| owner | tbd |\n\n## Current state\nThe repo's live `packages/agent-catalog/graph/schema/ontology-schema.yaml` defines `DiscoverySignal` (with `signalKind`, `key`, `matchMode`, `confidence`, `argvMatches`, etc.) and a `discovered_by` 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\").\n\nBut discovery **signals** themselves (file patterns, env-var names, argv shapes that identify a host agent) ARE catalog data — and the live repo proves it. Coverage-checklist row \"Discovery (concept)\" maps to `DiscoverySignal` but no NodeKind by that name exists in v6 ontology-schema.yaml.\n\n## Desired state\nPromote `DiscoverySignal` to a first-class NodeKind in v6 schema, with attributes mirrored from the repo: `signalKind (enum<env-var,file-presence,argv-match,pkg-manifest>)`, `key`, `matchMode`, `confidence`, `scope`, `argvMatches`. Add edge `AgentVersion discovered_by DiscoverySignal` (and similarly for `ModelProviderVersion`, `PluginTarget`).\n\n## Evidence\n- packages/agent-catalog/graph/schema/ontology-schema.yaml (lines 172-182)\n- packages/agent-catalog/graph/nodes/agents/ (live signal data)\n- C:/work/v6/graph/coverage-checklist.md \"Discovery (concept)\" row references `DiscoverySignal` as if it exists\n\n## Propagation status\n- Level 1: open\n- Level 2: not-started — coverage-checklist row currently false-positive (✅ but no schema element)\n\n## Propagation chain\n- Level 1: add NodeKind + edge in ontology-schema.yaml.\n- Level 2: this resolves OpenQuestion \"How do live agent-catalog 22 NodeKinds collapse into v6 schema NodeKinds?\" partially.\n\n## Notes\nCloses coverage-checklist OpenQuestion `oq:repo-22-nodekinds-mapping` for one of the missing kinds.\n",
"documents": []
},
"outgoingEdges": [],
"incomingEdges": [
{
"from": "page:process-gaps",
"to": "page:process-gaps-GAP-L1-P1-repo-graph-discovery-signal",
"kind": "contains_page"
}
]
}