Knowledge Graph Control Plane Inventory
This is an implementation inventory for the current ontology and knowledge graph control plane. It is not a speculative product spec.
Tables And Migrations
| Surface | Migration | Exposure | Mutation model | Notes |
|---|---|---|---|---|
entities | 002, 005, 019, 022, 027, 037, 064, 070 | CLI/API | proposal/audit-backed through ontology operations; internal pipeline writes still exist | Agent-scoped after 019. 070 adds status, archive metadata, and proposal provenance. Name/canonical selectors must resolve to one same-agent active row. |
relations | 002, 005 | hidden/internal | internal graph legacy | Kept for legacy entity relation compatibility. New control-plane links use entity_dependencies. |
memory_entity_mentions | 002, 005 | hidden/internal | internal write-time linker | Links memories to entities; source memories remain immutable provenance. |
entity_aspects | 019, 070 | CLI/API | proposal/audit-backed through ontology operations | 070 adds archive metadata and proposal provenance. Default reads should treat archived aspects as hidden. |
entity_attributes | 019, 059, 060, 064, 067, 070 | CLI/API | proposal/audit-backed for operations; pipeline/supersession helpers also write | Claim slots use group_key + claim_key. 070 adds first-class versions: version, version_root_id, previous_attribute_id. Default reads show active rows; history reads can inspect all versions. |
entity_dependencies | 019, 031, 036, 039, 050, 064, 067, 070 | CLI/API | proposal/audit-backed through ontology operations; structural workers also write | Link operations create/update/archive rows here. Reason/confidence/proposal/source provenance are preserved. |
entity_dependency_history | 050 | hidden/internal | audit trigger | Trigger-backed history for dependency insert/update/delete. |
task_meta | 019, 054 | hidden/internal | task/procedural helpers | Agent-scoped task metadata, not part of this control-plane CLI slice. |
ontology_proposals | 067 | CLI/API | proposal loop and applied audit ledger | Pending, applied, rejected, and failed proposals. Direct operations create applied rows inside the same transaction as graph mutation. |
dreaming_state, dreaming_passes | 055 | CLI/API via dream status/trigger | dreaming worker | Existing dreaming pass records/status. LLM dreaming remains proposal-first for ontology changes in this slice. |
memory_artifacts | 051, 061, 062 | API/internal | immutable source artifact records | Source-backed evidence for proposals and applied graph rows. Ontology updates must not rewrite these rows. |
session_transcripts | 040, 045, 047 | API/internal | immutable transcript/index records | Proposal extraction can cite transcripts; graph mutation must preserve transcript provenance. |
Daemon Routes
| Route | Exposure | Mutation model | Tests / risk |
|---|---|---|---|
GET /api/ontology/proposals | CLI/API | read-only | Covered by ontology proposal tests. |
GET /api/ontology/proposals/:id | CLI/API | read-only | Covered by CLI/proposal tests. |
POST /api/ontology/proposals | CLI/API | creates pending proposal | Covered by proposal import/create tests. |
POST /api/ontology/proposals/batch | CLI/API | creates pending proposals atomically | Covered by batch proposal tests. |
POST /api/ontology/proposals/:id/apply | CLI/API | applies pending proposal | Covered by proposal apply tests. |
POST /api/ontology/proposals/:id/reject | CLI/API | rejects pending proposal | Covered by reject tests. |
GET /api/ontology/proposals/:id/evidence | CLI/API | read-only | Covered by evidence tests. |
GET /api/ontology/proposals/conflicts | CLI/API | read-only | Covered by conflict tests. |
POST /api/ontology/proposals/repair/duplicates | CLI/API | dry-run or pending proposals | Covered by duplicate repair tests. |
POST /api/ontology/extract | CLI/API | dry-run or pending proposals | Proposal-first. Covered by extraction tests. |
POST /api/ontology/consolidate | CLI/API | dry-run or pending proposals | Proposal-first. Covered by consolidation tests. |
POST /api/ontology/operations/apply | CLI/API | dry-run, pending proposal, or applied proposal + graph mutation | New direct operation endpoint. Requires modify. Covered through operation engine and CLI tests. |
POST /api/ontology/operations/batch | CLI/API | atomic batch dry-run/propose/apply | Requires modify; rolls back on invalid operation. Covered by operation batch tests. |
GET /api/ontology/claims/evidence | CLI/API | read-only | Covered by claim evidence tests. |
GET /api/ontology/claims/versions | CLI/API | read-only | Covered by version chain tests. |
GET /api/ontology/claims/version | CLI/API | read-only | Covered by version show tests. |
GET /api/ontology/links/:id/evidence | CLI/API | read-only | Covered by link evidence tests. |
GET /api/knowledge/navigation/* | CLI/API | read-only | Existing knowledge navigation tests cover entity/aspect/group/claim browsing. |
GET /api/pipeline/status, GET /api/status | CLI/API | read-only | ontology pipeline * uses these to explain graph mutation state. |
GET /api/dream/status, POST /api/dream/trigger | CLI/API | dreaming worker | Existing dream CLI/daemon surface. Ontology dreaming skill uses proposal JSON/JSONL by default. |
CLI Commands
| Command | Exposure | Mutation model | Notes |
|---|---|---|---|
signet ontology proposals | CLI | read-only | Existing proposal list. |
signet ontology proposal <id> | CLI | read-only | Existing proposal show. |
signet ontology evidence <id> | CLI | read-only | Existing proposal evidence. |
signet ontology apply <id> | CLI | applies pending proposal | Preserves proposal history and agent scope. |
signet ontology reject <id> | CLI | rejects pending proposal | Preserves rejected proposal history. |
signet ontology conflicts | CLI | read-only | Lists pending claim conflicts. |
signet ontology entity create/rename/merge/archive | CLI | direct operation endpoint | Supports --dry-run, --propose, --json, --agent, --actor, --reason, --evidence-file. |
signet ontology claim set/versions/show/archive/restore | CLI | operation endpoint for writes, read endpoints for versions | set creates version chains; restore only required for claim versions in this slice. |
signet ontology aspect create/rename/archive | CLI | direct operation endpoint | Uses same audited operation path. |
signet ontology link create/update/archive | CLI | direct operation endpoint | Uses entity_dependencies. |
| `signet ontology stream apply <path | - >` | CLI | atomic JSONL operation batch |
signet ontology pipeline status/config/explain | CLI | graph-state inspection | Explains Pipeline V2 graph flags and write gates. |
signet ontology config show/validate/explain | CLI | control-plane inspection | Confirms audited operation tools are usable and no external graph.yaml policy gate is active in this slice. |
signet ontology extract | CLI | dry-run/pending proposals | Existing proposal-first extraction surface. |
signet ontology consolidate | CLI | dry-run/pending proposals | Existing proposal-first consolidation surface. |
signet dream status/trigger | CLI | existing dream worker | Existing pass status and trigger behavior. |
Pipeline V2 Graph Knobs
Current graph-affecting configuration is loaded from memory.pipelineV2 in
agent.yaml and surfaced through signet ontology pipeline *:
enabledpausedshadowModemutationsFrozengraph.enabledgraph.extractionWritesEnabled- traversal mode and bounds (
traversal.enabled,primary, hop/branch/path limits, confidence, timeout, boost) - dampening settings
- autonomous maintenance (
autonomous.enabled,frozen,allowUpdateDelete, mode/polling) - extraction provider/workload settings
- write gates such as
minFactConfidenceForWrite - queue/worker health through
/api/pipeline/status - dreaming state through
/api/dream/status
Unsafe or ambiguous behavior to keep watching:
- Legacy graph workers still have internal write paths. Generated LLM changes must remain proposal-first when they target ontology maintenance.
relationsremains a legacy graph table; new audited control-plane links useentity_dependencies.merge_entitiesstill moves graph rows and removes the source entity. Use entity archive operations when lineage inspection of the source row matters.- A separate
$SIGNET_WORKSPACE/ontology/graph.yamlpolicy is not active yet; adding one should fail closed and must not introduce hidden mutation paths.
Tests
Existing and new coverage:
platform/core/src/migrations/migrations.test.tsplatform/daemon/src/ontology-proposals.test.tsplatform/daemon/src/knowledge-navigation.test.tsplatform/daemon/src/knowledge-graph-list.test.tsplatform/daemon/src/knowledge-expand-api.test.tsplatform/daemon/src/knowledge-graph-hygiene.test.tsplatform/daemon/src/pipeline/graph-transactions.test.tsplatform/daemon/src/pipeline/dreaming.test.tsplatform/daemon/src/dreaming-skill.test.tssurfaces/cli/src/commands/ontology.test.tssurfaces/cli/src/commands/knowledge.test.tssurfaces/cli/src/commands/dream.tscoverage through existing command behavior
New control-plane coverage includes direct operation apply/propose/dry-run, atomic batch rollback, claim version restore/archive, ambiguous selector rejection, default hiding for archived graph rows, and an in-process end-to-end fixture that verifies dry-run, apply, propose, reject, evidence lookup, and raw source artifact immutability.
Remaining thin coverage:
- Full end-to-end daemon + CLI process fixture using a real running daemon.
graph.yamlpolicy validation, because no active policy file is implemented in this slice.