{"slug": "spec-index-and-integration-contract", "title": "Spec Index and Integration Contract", "summary": "A new planning control plane for specs and integration contracts has been established, defining how approved specifications compose into a coherent system. The system graph outlines dependencies and integration contracts across multiple waves, with solid arrows indicating hard dependencies and dashed arrows representing parallel build requirements. This framework serves as the source of truth for dependency metadata and research provenance, ensuring every spec traces back to its informing research.", "body_md": "# Spec Index and Integration Contract\n\nThis is the planning control plane for specs and the integration contract that defines how approved specs compose into a coherent system. If we are deciding what ships next, this file is the first stop. If we are building a spec, this file defines how it connects to everything else.\n\nSource of truth for dependency metadata:\n\n`docs/specs/dependencies.yaml`\n\nConceptual north stars:\n\n`docs/KNOWLEDGE-ARCHITECTURE.md`\n\n`docs/NORTH-STAR-ONTOLOGY.md`\n\n## System Graph\n\n```\nflowchart TD\n  MP[Memory Pipeline v2 ✓]\n  SCP[Session Continuity ✓]\n  PM[Procedural Memory]\n  MA[Multi-Agent Support]\n  KA[Knowledge Architecture ✓]\n  PMS[Predictive Memory Scorer]\n  SR[Signet Runtime]\n  DP[Desire Paths Epic]\n  OEC[Ontology Evolution Core]\n  OGW[Ontology Governance Workflow]\n  OPL[Ontology Proposal Loop]\n  SSF[SSM Foundation Eval]\n  EIPT[Engram-Informed Predictor Track]\n  SST[SSM Temporal Backbone]\n  SSG[SSM Graph Traversal Model]\n  DRR[Daemon Rust Rewrite]\n  PAF[Predictor Agent Feedback]\n  SACC[Sub-Agent Context Continuity]\n  DMC[Dreaming Memory Consolidation]\n\n  subgraph W9[Wave 9 Strategic Stubs]\n    DHO[Distributed Harness Orchestration]\n    SNH[Signet Native Harness]\n    RRP[Remember/Recall Skill Parity]\n    RDC[Rust Daemon Parity Cutover]\n    DMS[Deep Memory Search]\n    MCB[MCP CLI Bridge + Usage Analytics]\n    GMM[Git Marketplace Monorepo]\n    ASL[Adaptive Skill Lifecycle]\n    CIR[Cryptographic Identity Roadmap]\n    CPY[Connector: Py Agent]\n    CHA[Connector: Hermes Agent]\n    PAPI[Plugin API Ecosystem]\n    CUV[Constellation Unified Viewer]\n    DIR[Dashboard IA Refactor]\n    PIA[Post-Install Migration Audit]\n  end\n\n  MP --> SCP\n  MP --> PM\n  MP --> KA\n  MP --> SR\n  SCP --> KA\n  PM --> KA\n  KA --> PMS\n  SCP --> PMS\n  MP --> PMS\n  KA --> DP\n  PMS --> DP\n  KA --> OEC\n  DP --> OEC\n  OEC --> OGW\n  KA --> OPL\n  DMC -.-> OPL\n  PMS --> SSF\n  DP --> SSF\n  PMS --> EIPT\n  SSF -.-> EIPT\n  DP -.-> EIPT\n  EIPT --> SST\n  SSF --> SST\n  OEC --> SST\n  SST --> SSG\n  KA --> SSG\n  DP --> SSG\n  MA -.-> PM\n  MA -.-> KA\n  SR -.-> PM\n  SR -.-> KA\n  OGW -.-> OEC\n  OGW -.-> DP\n  SCP --> SACC\n  MA --> SACC\n  KA -.-> SACC\n\n  MP --> DMC\n  KA --> DMC\n  SCP -.-> DMC\n\n  MA --> DHO\n  SR --> DHO\n  DHO --> SNH\n  SR --> SNH\n  PM --> RRP\n  DRR --> RDC\n  MP --> RDC\n  DP --> DMS\n  SSF --> DMS\n  SR --> MCB\n  PAF --> GMM\n  PM --> ASL\n  PAF --> ASL\n  MA --> CIR\n  SR --> CPY\n  SR --> CHA\n  SR --> CFC\n  SR --> PAPI\n  KA --> CUV\n  SR --> DIR\n  MP --> PIA\n```\n\nSolid arrows = hard dependency. Dashed = integration contract (can build in parallel, interfaces must align before merge).\n\n## Research Provenance\n\nResearch documents inform spec design. Every spec traces back to the\nresearch that shaped it. Research lives in `docs/research/`\n\n(technical\nand market subdirectories). Reference repos live in `references/`\n\n.\n\n| Spec ID | Informed By | Key Question |\n|---|---|---|\n`memory-md-rolling-window-lineage` | RESEARCH-MEMORY-MD-ROLLING-WINDOW-LINKAGE, RESEARCH-LCM-ACP | How should MEMORY.md treat markdown summaries/transcripts/compactions as canonical history while keeping a strict rolling 30-day per-session ledger? |\n`knowledge-architecture-schema` | RESEARCH-GITNEXUS-PATTERNS, RESEARCH-LCM-ACP | How should entities, aspects, and attributes be structured? |\n`knowledge-architecture-navigation` | RESEARCH-KNOWLEDGE-GRAPH-NAVIGATION | How should agents browse large structured memory graphs without dumping the whole graph into context? |\n`desire-paths-epic` | RESEARCH-LCM-ACP, RESEARCH-REFERENCE-REPOS | How does retrieval evolve from flat search to graph traversal? |\n`predictive-memory-scorer` | MSAM-COMPARISON | How should scoring balance structural vs behavioral signals? |\n`desire-paths-epic` , `retroactive-supersession` | RESEARCH-COMPETITIVE-SYSTEMS | What retrieval, lifecycle, and integration patterns from competing systems should be adopted? |\n`ontology-evolution-core` , `ontology-governance-workflow` | RESEARCH-ONTOLOGY-EVOLUTION | How should ontology schema and governance evolve without losing local-first simplicity? |\n`ontology-proposal-loop` | RESEARCH-ONTOLOGY-EVOLUTION, memory-md-rolling-window-lineage, dreaming-memory-consolidation, model-provider-router | How should extraction and consolidation expose reviewable ontology changes while direct maintenance paths use the same audited operation handlers? |\n`ssm-foundation-evaluation` , `ssm-temporal-backbone` , `ssm-graph-traversal-model` | RESEARCH-SSM-INTEGRATION, SSM-GRAPH-INTERSECTION, SSM-LITERATURE-REVIEW, SYNTHETIC-DATA-GENERATION | How should SSM research translate into benchmarked, staged deployment without violating retrieval invariants? |\n`engram-informed-predictor-track` | arxiv:2601.07372, RESEARCH-SSM-INTEGRATION, ssm-foundation-evaluation | How should Engram design patterns be translated into Signet scorer and SSM architecture decisions? |\n`macos-sqlite-runtime-discovery` | RESEARCH-MACOS-SQLITE-RUNTIME-DISCOVERY | How should Signet select a compatible SQLite runtime on macOS so Bun can load sqlite-vec? |\n`docker-self-hosting-stack` | RESEARCH-DOCKER-SELF-HOSTING | What deployment contract keeps Docker self-hosting reproducible, persistent, and secure by default? |\n`openclaw-workspace-protection-plan` , `openclaw-workspace-protection` | RESEARCH-OPENCLAW-WORKSPACE-PROTECTION | How should Signet prevent data loss when OpenClaw uninstall deletes a workspace that points at `.agents` ? |\n`dogfood-hardening-2026-03-29` | RESEARCH-DOGFOOD-HARDENING-2026-03-29 | Which runtime, MCP, and knowledge-surface regressions from the March 29, 2026 dogfood run need durable hardening? |\n`marketplace-official-skills` | RESEARCH-MARKETPLACE-OFFICIAL-SKILLS | How should the dashboard marketplace spotlight Signet official skills without hiding the broader community catalog? |\n`markdown-embedding-normalization-hardening` | RESEARCH-MARKDOWN-EMBEDDING-NORMALIZATION | How should Signet preserve structured markdown for embeddings while preventing repeated poison-pill retries from malformed or provider-sensitive payloads? |\n`dreaming-memory-consolidation` | LCM-PATTERNS, memory-pipeline-plan, knowledge-architecture-schema | How should Signet consolidate accumulated session knowledge into a cleaner entity graph during idle periods? |\n`native-harness-memory-bridge` | RESEARCH-NATIVE-HARNESS-MEMORY-BRIDGE | How should Signet make harness-native memories portable without duplicating each harness’s memory pipeline? |\n`model-provider-router` | RESEARCH-INFERENCE-CONTROL-PLANE, RESEARCH-COMPETITIVE-SYSTEMS | How should Signet centralize inference across harnesses, daemon workloads, and heterogeneous provider backends under one policy surface? |\n\n### Research Adoption Ledger (high-impact)\n\n| Research Doc | Program Decision | Mapped To |\n|---|---|---|\n`RESEARCH-COMPETITIVE-SYSTEMS` | ADOPT (tiered) | `desire-paths-epic` , `retroactive-supersession` , `ontology-evolution-core` |\n`RESEARCH-GITNEXUS-PATTERNS` | ADOPT (selective) | KA traversal hardening, DP bounded traversal, ontology confidence/provenance |\n`RESEARCH-REFERENCE-REPOS` | ADOPT/TEST | DP-16..DP-20 design direction |\n`RESEARCH-SSM-INTEGRATION` | ADOPT (planning track active) | `ssm-foundation-evaluation` , `ssm-temporal-backbone` |\n`SSM-GRAPH-INTERSECTION` | ADOPT (planning track active) | `ssm-graph-traversal-model` |\n`arxiv:2601.07372 (Engram)` | ADOPT (translation track) | `engram-informed-predictor-track` , SSM planning contracts |\n`RESEARCH-DOCKER-SELF-HOSTING` | ADOPT (planning track active) | `docker-self-hosting-stack` |\n\n## Cross-Cutting Invariants\n\nThese rules apply to ALL approved specs. Any spec that contradicts these must be updated to conform.\n\n### 1. Agent scoping is universal\n\nEvery table that stores user-facing data MUST include an `agent_id`\n\ncolumn. Nothing is global by default. Multi-agent support is not an\nafterthought — it is a first-class column from day one.\n\nTables affected: `memories`\n\n, `entities`\n\n, `entity_aspects`\n\n,\n`entity_attributes`\n\n, `entity_dependencies`\n\n, `skill_meta`\n\n, `task_meta`\n\n,\n`session_checkpoints`\n\n, `session_memories`\n\n, `predictor_comparisons`\n\n.\n\nNote: `entities`\n\n(migration 002) predates this invariant and does not\nyet have `agent_id`\n\n. Migration 019 (KA-1) backfills it. `skill_meta`\n\n(migration 018) already has `agent_id`\n\n.\n\nScoping rule: queries filter by `agent_id`\n\nunless explicitly requesting\ncross-agent results (e.g., shared skill lookup with allowlist).\n\nThe `agent_id`\n\ncolumn is infrastructure for database-level tenant\nisolation, not a knowledge architecture concern. It exists on every\ntable for the same reason: so multiple agents sharing the same SQLite\nfile don’t step on each other’s data.\n\nSkills are scoped to `agent_id`\n\nin the graph. The filesystem pool\n(`$SIGNET_WORKSPACE/skills/`\n\n) is shared, but graph nodes (entity + skill_meta +\nembeddings) are per-agent. Each agent gets its own skill entity with its\nown usage stats, decay, and relation edges.\n\n### 2. Importance is structural, not arbitrary\n\n`docs/KNOWLEDGE-ARCHITECTURE.md`\n\nis authoritative on importance.\n\nImportance is NOT a float assigned by heuristic. It is computed from structural density:\n\n- Entity importance = f(aspect count, attribute count, constraint count, dependency edges, access frequency, user-implied signals)\n- Aspect weight = f(attribute density, constraint density, access patterns)\n- The predictive scorer receives structural density as input features, not a pre-computed importance float\n\nThe existing `importance`\n\ncolumn on `memories`\n\nremains for backwards\ncompatibility and cold-start scoring, but the structural computation\nis the source of truth once KA tables are populated.\n\n### 3. Entity type taxonomy is concrete\n\nThe knowledge architecture schema defines the canonical concrete entity types:\n`person`\n\n, `organization`\n\n, `project`\n\n, `product`\n\n, `system`\n\n, `tool`\n\n, `artifact`\n\n,\n`document`\n\n, `source`\n\n, `place`\n\n, and `event`\n\n.\n\nEntities are identity-bearing semantic objects: things the agent can point at, revisit, update, and ask about later. Events are first-class because temporal questions such as “when was our last daily digest?” should resolve through provenance-backed happenings with time attributes, participants, event types, and related artifacts.\n\nClaims, aspects, and attributes describe entities. Relations carry predicates.\nArtifacts carry evidence. Extraction MUST NOT mint entities from pronouns,\nmetadata roles (`Sender`\n\n, `Recipient`\n\n, `Author`\n\n), generic role words (`User`\n\n,\n`Assistant`\n\n, `System`\n\n), section headings (`Summary`\n\n, `Current Work`\n\n, `Primary Request`\n\n), discourse fragments, prompt scaffolding, claim slots, policies,\nactions, or workflows. Those belong in facts, aspects, attributes, relations,\nor operational/proposal layers.\n\nLegacy rows may still use older types while repair actions converge existing databases, but all new extraction and structured graph writes must pass the concrete taxonomy gate. The taxonomy is not extensible without updating KA and this invariant in the same change.\n\nOntology-governance specs can still propose new semantic object classes, but new classes must explain why the object is identity-bearing and why aspects, attributes, relations, or proposal records cannot represent it cleanly.\n\n### 4. Scorer consumes all available signals\n\nThe predictive memory scorer takes every input that exists. Structural features from KA (entity slot, aspect slot, is_constraint, structural density), procedural signals (skill usage, decay rate, role), continuity signals (checkpoint recency, prompt count), behavioral signals (FTS hits, access patterns), temporal signals (time of day, day of week, session gap).\n\nMore inputs with verifiable grading is always better than curated inputs. The model learns to ignore irrelevant features. The metric (NDCG@10 on continuity scores) is the arbiter.\n\n### 5. Constraints always surface\n\nWhen an entity is in scope during a session, its constraints\n(`entity_attributes`\n\nwhere `kind = 'constraint'`\n\n) are injected\nregardless of score rank. The predictive scorer may rank them but\ncannot suppress them. This is a hard retrieval invariant.\n\n## Integration Contracts\n\n### Procedural Memory <-> Knowledge Architecture\n\n- Procedural memory creates skill entities with\n`entity_type = 'skill'`\n\nand`skill_meta`\n\nfor runtime behavior (decay rate, use count, fs path, role, triggers). - Knowledge architecture adds\n`entity_aspects`\n\nand`entity_attributes`\n\non top. Skills can have aspects (e.g., “deployment capabilities”, “browser automation features”) and attributes organized under those aspects. - KA’s\n`entity_dependencies`\n\ncaptures structural edges between skills and other entities (e.g.,`skill:wrangler`\n\n->`entity:cloudflare`\n\n). Procedural memory’s`relations`\n\ntable captures skill-to-skill edges (`requires`\n\n,`complements`\n\n,`often_used_with`\n\n). - Both coexist.\n`relations`\n\nis for skill-specific typed edges.`entity_dependencies`\n\nis for cross-type structural edges. - KA structural assignment stage runs AFTER procedural memory creates the skill entity. It enriches with aspects/attributes, it does not replace skill_meta.\n\n### Procedural Memory <-> Predictive Scorer\n\n- Scorer pre-filter must respect procedural decay rates (\n`0.99^days`\n\nwith`minImportance`\n\nfloor) when computing`effectiveScore()`\n\nfor skill-type memories. - Scorer feature payload includes:\n`decay_rate`\n\n,`use_count`\n\n,`last_used_at`\n\n,`role`\n\n,`is_skill`\n\nindicator. - Skills with\n`minImportance`\n\nfloor cannot be eliminated during pre-filtering. They may rank low but must remain in the candidate pool.\n\n### Knowledge Architecture <-> Predictive Scorer\n\n- Traversal-defined candidate pool is the primary retrieval floor.\nScorer operates on\n`traversal pool ∪ effectiveScore top-50 ∪ embedding top-50`\n\n. - Structural features per candidate:\n`entity_slot`\n\n(hashed entity ID),`aspect_slot`\n\n(hashed primary aspect),`is_constraint`\n\n(boolean),`structural_density`\n\n(aspect count + attribute count for the parent entity). - Scorer evaluation reports include per-entity and per-project slices, not only global EMA.\n**Feedback direction (KA-6):** Behavioral signals flow BACK to the graph. FTS overlap (memories the user searched for during a session) feeds back to aspect weights, confirming which structural bets paid off. Per-entity predictor win rates surface as graph health signals. Superseded memory labels propagate to entity_attributes status. Without this feedback loop, structural weights stagnate and the graph diverges from what the user actually needs.**Entity pinning (KA-6):** Users can pin entities as always-focal, front-loading importance before behavioral evidence accumulates. Pinned entities are training data for the predictor — the manual exploration mechanism that the predictor eventually learns to replicate autonomously. See`docs/KNOWLEDGE-ARCHITECTURE.md`\n\nsection “Love, Hate, and the Exploration Problem” for rationale.\n\n### Knowledge Architecture <-> Session Continuity\n\n- Checkpoint digests include optional structural snapshot: focal entities, active aspects, surfaced constraints.\n- Recovery injection prioritizes structural snapshots over raw narrative when budget is tight.\n- Continuity scorer label quality improves when session-end evaluation knows which constraints and aspects were in play.\n\n### Signet Runtime <-> Procedural Memory\n\n- Runtime context assembly calls\n`/api/skills/suggest`\n\n(from procedural memory spec) to surface relevant skills during session-start and optionally per-turn. - Runtime tool registry discovers installed skills. When a skill is\ninvoked, runtime calls\n`POST /api/skills/used`\n\nto record usage. - Runtime pre-generation research phase may query skill graph for domain-relevant capabilities before model generation.\n\n### Signet Runtime <-> Knowledge Architecture\n\n- Runtime session-start calls the traversal retrieval path (KA-3) to resolve focal entities and walk their graphs for context assembly.\n- Runtime provides project path and session signals that KA uses to resolve focal entities.\n- Runtime does not implement traversal logic — it calls daemon API endpoints that KA defines.\n\n### Desire Paths <-> Knowledge Architecture\n\n- Desire paths builds on the complete KA-1 through KA-6 foundation: entity/aspect/attribute hierarchy, graph traversal, behavioral feedback loop, entity pinning, constraint surfacing.\n- DP-2 (edge confidence) adds\n`confidence`\n\nand`reason`\n\ncolumns to`entity_dependencies`\n\n. Graph traversal uses`confidence * strength`\n\nfor edge filtering. - DP-6 (traversal-primary retrieval) inverts the search pipeline so graph traversal produces the base candidate pool and flat FTS5 search fills gaps. Includes: FTS5 stop-word filtering, agent_id threading through graph search, mention-based traversal fallback for memories without full pipeline extraction, scope-filtered attribute collection, prospective indexing (hypothetical query hints written at memory creation time for future retrieval), and cosine re-scoring of traversal results against the query embedding. Benchmarked at 62% (Signet) vs 68% (RAG) on identical 50-question LoCoMo set — 8 of 12 Signet failures are shared with RAG (extraction/answer ceiling, not retrieval).\n- DP-7 (constructed memories) changes traversal output from\n`memoryIds`\n\nto structured path objects with provenance metadata. - DP-14 (discovered principles) adds\n`principle`\n\nto the entity type taxonomy. Requires updating invariant 3 when implemented. - DP-16 (post-fusion dampening) adds gravity, hub, and resolution\nfilters after fusion scoring. Informed by Ori-Mnemos ablation data.\nImplemented in\n`platform/daemon/src/pipeline/dampening.ts`\n\n. - DP-17 (compaction resilience) adds PreCompact/PostCompact checkpoint hooks for mid-session context recovery. Extends session continuity.\n- DP-18 (decision auto-protection) auto-detects decisions and marks\nthem as constraints (invariant 5 ensures they always surface).\nImplemented in\n`platform/daemon/src/inline-entity-linker.ts`\n\n(14 regex patterns, auto-promotes matching attributes to constraints). - DP-19 (adaptive write gate) evolves DP-1 significance gate from session-level to per-memory surprisal filtering.\n- DP-20 (sleep replay) background consolidation discovers latent cross-entity connections during idle periods.\n\n### Desire Paths <-> Predictive Scorer\n\n- DP-8 (predictor bug fixes) is a prerequisite: fixes the 3 critical bugs blocking enablement.\n- DP-10 (path scoring) evolves the scorer from ranking individual memories to ranking traversal paths. Feature vector changes from per-memory signals to per-path signals (hop count, min edge confidence, average aspect weight, community boundary crossing).\n- DP-9 (path feedback) changes training signal from “was this memory useful?” to “was this traversal path useful?” — propagating ratings along edges, upgrading/downgrading confidence/reason.\n- This is the convergence point described in\n`docs/specs/planning/DESIRE-PATHS.md`\n\n: the scorer provides learning signal, the graph provides structure to propagate it.\n\n### Ontology Evolution Core <-> Desire Paths\n\n- Traversal ranking consumes\n`confidence`\n\n,`reason`\n\n, and co-occurrence association signals where present, with bounded fallback to existing confidence-strength scoring when absent. - Typed relationship taxonomy is introduced behind compatibility mapping; legacy edges remain queryable until strict mode is enabled.\n- Constraint surfacing invariant remains a hard override regardless of ontology edge rank.\n\n### Ontology Evolution Core <-> Retroactive Supersession\n\n- Attribute supersession and memory lineage stay synchronized: when a new fact supersedes an old fact, latest-truth retrieval prefers the newest node while preserving full chain expansion for audit/history.\n- Constraints (\n`kind='constraint'`\n\n) are excluded from auto-supersession, unchanged from invariant 5.\n\n### Ontology Governance Workflow <-> INDEX / CI\n\n- Any ontology-impacting schema PR must update: spec file,\n`dependencies.yaml`\n\n, and this index registry in the same change. - CI contract checks block merge on ID/status/path drift between INDEX and dependencies metadata.\n- Medium/high-risk ontology changes require explicit compatibility and rollback notes before promotion from planning to approved.\n\n### SSM Track <-> Retrieval and Ontology Contracts\n\n`ssm-foundation-evaluation`\n\ndefines benchmark and canary gates. No SSM routing may become default until these gates are green and repeatable.`ssm-temporal-backbone`\n\nruns in shadow mode first. Production retrieval remains deterministic with existing scorer fallback.`ssm-graph-traversal-model`\n\nmay re-rank traversal paths but cannot alter traversal bounds, agent scoping, or constraint surfacing invariants.- SSM features consume ontology signals (\n`confidence`\n\n, relationship type, co-occurrence, lineage) when available.`ontology-evolution-core`\n\nis a soft dependency for`ssm-temporal-backbone`\n\nand`ssm-graph-traversal-model`\n\n(both handle missing signals gracefully with zero defaults) and is not required by`ssm-foundation-evaluation`\n\n.\n\n### Engram-Informed Predictor Track <-> SSM Track\n\n`engram-informed-predictor-track`\n\nis the translation lane for Engram patterns into Signet scorer experiments and SSM-ready contracts.- No\n`ssm-temporal-backbone`\n\nrollout may claim Engram alignment until this track records accepted/rejected deltas and benchmark evidence. - The track cannot violate existing runtime guarantees: fail-open scoring, deterministic fallback, bounded latency, and constraint surfacing.\n\n### Dreaming Memory Consolidation <-> Knowledge Architecture\n\n- Dreaming reads the full entity graph (entities, aspects, attributes, dependencies) as input to reasoning passes.\n- Dreaming writes graph mutations through the same KA schema: creates, merges, deletes entities; updates/deletes aspects; supersedes/creates/ deletes attributes; rewrites dependency edges during merges.\n- Pinned entities (KA-6) cannot be deleted by dreaming — enforced at\nmutation application time, reported as\n`skipped`\n\n. - Constraint attributes (\n`kind='constraint'`\n\n) cannot be superseded or deleted by dreaming — invariant 5 holds. - Dreaming does not modify memories, embeddings, or retention state. It only mutates the entity graph layer.\n\n### Dreaming Memory Consolidation <-> Session Continuity\n\n- Dreaming token accumulation hooks into the summary worker: each\nsession summary’s transcript token count feeds\n`dreaming_state`\n\n. - Phase 2 will make dreaming passes into real sessions (session-start, transcript, session-end summary), creating a self-improvement loop where dream pass N+1 can review dream pass N’s decisions.\n- Until Phase 2, dreaming passes are standalone LLM calls with no session continuity or memory of prior passes.\n\n### Dreaming Memory Consolidation <-> Pipeline V2\n\n- Phase 1: dreaming and Pipeline V2 can run concurrently. SQLite write serialization prevents data corruption but not logical inconsistency (extraction may create entities between dreaming’s read and write).\n- Phase 2 contract: when\n`dreaming.enabled: true`\n\n, Pipeline V2 extraction workers should be OFF. One knowledge graph writer at a time. Summary workers and retention continue regardless. - Pipeline V2 remains the default for users without dreaming configured. Dreaming is opt-in and requires a capable model provider.\n\n### Multi-Agent <-> All Specs\n\n`agent_id`\n\ncolumn appears on every data table (see invariant 1).- Agent roster in\n`agent.yaml`\n\nunder`agents.roster`\n\ndefines which agents exist. - Identity inheritance: agent subdirs (\n`~/.agents/agents/{name}/`\n\n) override root-level files. Only`SOUL.md`\n\nand`IDENTITY.md`\n\nare per-agent by default;`AGENTS.md`\n\n,`USER.md`\n\n,`TOOLS.md`\n\ninherit from root. - Skills: shared filesystem pool, per-agent graph nodes and usage stats.\n- Memory queries include agent scope filter based on per-agent read policy:\n`isolated`\n\n: only own memories`shared`\n\n: all`visibility=global`\n\nmemories + own private`group`\n\n:`visibility=global`\n\nfrom group members + own private\n\n`visibility`\n\ncolumn on`memories`\n\n(`global`\n\n/`private`\n\n/`archived`\n\n) is the per-memory access flag. Separate from`scope`\n\n(benchmark namespacing).- OpenClaw session key format\n`agent:{id}:{rest}`\n\nis auto-parsed by`resolveAgentId()`\n\n— no extra config needed for OpenClaw users. - The daemon serves both single-agent and multi-agent installs. All new\nAPI params are optional with sensible defaults (no\n`agentId`\n\n=`\"default\"`\n\nagent = current single-agent behavior).\n\n## Build Sequence\n\nPhase ordering based on hard dependencies and integration contracts.\n\n### Wave 1 (parallel, no cross-dependencies)\n\n**Procedural Memory P1**: schema + enrichment + node creation- Creates\n`skill_meta`\n\ntable, skill entities, frontmatter enrichment - Unblocks KA structural assignment\n\n- Creates\n**Signet Runtime Phase 1**: scaffold + CLI channel- Independent of cognition stack, talks to daemon API only\n\n**Multi-Agent Phase 1-8**: IN PROGRESS (2026-03-24)- Phase 1:\n`AgentDefinition`\n\ntype +`agents.roster`\n\nin`AgentManifest`\n\n— DONE - Phase 2:\n`platform/core/src/agents.ts`\n\n— discovery, scaffold, identity inheritance — DONE - Phase 3: Migration 043 —\n`agents`\n\ntable +`memories.agent_id`\n\n+`memories.visibility`\n\n— DONE - Phase 4: Daemon — scope clause,\n`/api/agents`\n\nendpoints,`agent-id.ts`\n\n— DONE - Phase 5: File watcher — watches\n`~/.agents/agents/`\n\nsubdirectories — DONE - Phase 6: Harness sync — per-agent workspace dirs for OpenClaw — DONE\n- Phase 7: CLI —\n`signet agent`\n\nsubcommand +`--agent`\n\n/`--private`\n\nflags — DONE - Phase 8: OpenClaw connector —\n`syncMultipleAgents()`\n\n+ session key auto-parse — DONE - Extended: per-agent read policy (isolated/shared/group) with\n`visibility`\n\ncolumn - Deferred: Phase 9 (dashboard), Phase 10 (setup wizard)\n\n- Phase 1:\n\n### Wave 2 (depends on Wave 1)\n\n**Knowledge Architecture KA-1 + KA-2**: schema + structural assignment — COMPLETE- Requires skill entities from procedural memory P1\n- Adds\n`entity_aspects`\n\n,`entity_attributes`\n\n,`entity_dependencies`\n\n,`task_meta`\n\n- Structural assignment stage in extraction pipeline\n\n**Procedural Memory P2**: usage tracking + linking- Parallel with KA-2\n\n**Predictive Scorer Phase 0**: data pipeline prerequisites`session_memories`\n\ntable, improved continuity scoring- Can start parallel with KA work\n\n### Wave 3 (depends on Wave 2)\n\n**Knowledge Architecture KA-3**: traversal retrieval path — COMPLETE- Wires session-start and recall to include traversal candidates\n- Enforces constraint surfacing invariant\n\n**Predictive Scorer Phase 1**: Rust crate scaffold + autograd- Parallel with KA-3\n\n**Procedural Memory P3**: implicit relation computation- Needs usage data from P2\n\n### Wave 4 (depends on Wave 3)\n\n**Knowledge Architecture KA-4**: predictor coupling — COMPLETE- Structural features in scorer payload\n\n**Predictive Scorer Phase 2-3**: training pipeline + daemon integration- Requires KA structural features\n\n**Procedural Memory P4**: retrieval and suggestion endpoints** Signet Runtime Phase 2**: built-in tools + pre-generation phase\n\n### Wave 5 (polish + feedback)\n\n**Procedural Memory P5**: dashboard visualization** Predictive Scorer Phase 4**: observability + dashboard** Knowledge Architecture KA-5**: continuity + dashboard — COMPLETE** Knowledge Architecture KA-6**: entity pinning + behavioral feedback loop — COMPLETE loop (FTS overlap → aspect weight, aspect decay, per-entity health, superseded propagation). See`docs/KNOWLEDGE-ARCHITECTURE.md`\n\nsection “Love, Hate, and the Exploration Problem” for rationale.**Signet Runtime Phase 3**: HTTP channel + adapter retrofit** Multi-Agent Phase 4+**: daemon API, harness sync, CLI, dashboard\n\n### Wave 6 (depends on Wave 5 — KA complete, PMS complete)\n\n**Desire Paths Phase 1**: foundation completion- DP-1: Significance gate (zero-cost continuity) — COMPLETE\n- DP-2: Edge confidence + reason on\n`entity_dependencies`\n\n— COMPLETE - DP-3: Bounded traversal parameters — COMPLETE\n- DP-4: MCP tool registration + blast radius endpoint — COMPLETE\n\n**Desire Paths Phase 2**: bootstrap topology- DP-5: Louvain community detection — COMPLETE\n\n**Desire Paths Phase 3**: graph-native retrieval- DP-6: Entity-anchored search + traversal-primary retrieval — COMPLETE\n- DP-7: Constructed memories with path provenance — COMPLETE\n- DP-6.1: Prospective indexing (hypothetical query hints at write time) — COMPLETE\n- DP-6.2: Cosine re-scoring for traversal results — COMPLETE\n- DP-6.3: Scoped vector search restore with 2x over-fetch — COMPLETE\n\n**Benchmark baseline (2026-03-20, updated 2026-03-21)**: 50-question LoCoMo comparison on identical question sets. Signet 62% vs RAG 68% at initial baseline. Post DP-6.1/6.2/6.3: prospective indexing improves hint-based retrieval for previously missed queries, cosine re-scoring reranks traversal candidates by semantic relevance, and scoped vector search with 2x over-fetch restores embedding-based recall within entity scope. 8 of 12 original Signet failures are shared with RAG — extraction/answer ceiling, not retrieval.**Full-stack benchmark (2026-03-22)**: 8-question LoCoMo with DP-16 dampening, lossless session transcripts, gpt-4o extraction, and improved temporal rules. 87.5% accuracy (7/8), 100% Hit@10, MRR 0.615. By type: multi-hop 100% (4/4), temporal 100% (1/1), single-hop 66.7% (2/3). Precision 26.3%, recall 100%, NDCG 0.639.**Desire Paths Phase 4**: path learning- DP-8: Predictor bug fixes (cache invalidation) — COMPLETE\n- DP-9: Path feedback propagation + co-occurrence growth + Q-value rewards — COMPLETE\n- DP-10: Path scoring (predictor evolution) — NOT STARTED\n- DP-11: Temporal reinforcement + intent-aware routing — NOT STARTED\n\n**Desire Paths Phase 5**: emergence- DP-12: Explorer bees — NOT STARTED\n- DP-13: Cross-entity bridges + reconsolidation — NOT STARTED\n- DP-14: Discovered principles — NOT STARTED\n- DP-15: Entity health dashboard — NOT STARTED\n- DP-16: Post-fusion dampening (gravity, hub, resolution) — COMPLETE\n- DP-17: Compaction resilience (hippocampal replay) — NOT STARTED\n- DP-18: Decision auto-protection — COMPLETE\n- DP-19: Adaptive write gate (per-memory surprisal) — PARTIALLY COMPLETE (prototype)\n- DP-20: Sleep replay (background consolidation) — NOT STARTED\n\n### Wave 7 (ontology hardening and governance)\n\n**Ontology Evolution Core**: planning- confidence/provenance edge semantics\n- dynamic co-occurrence weighting + normalization\n- typed relationship taxonomy\n- temporal lineage support for current-truth retrieval\n\n**Ontology Governance Workflow**: planning- proposal/review gates for ontology-impacting schema changes\n- compatibility + rollback requirements\n- CI checks for INDEX/dependencies contract drift\n\n### Wave 8 (SSM translation and shadow deployment)\n\n**SSM Foundation and Evaluation**: planning (`ssm-foundation-evaluation`\n\n)- reproducible benchmark harness + synthetic/real canaries\n- ablations against current scorer (NDCG@10, MRR, temporal precision)\n\n**Engram-Informed Predictor Track**: planning (`engram-informed-predictor-track`\n\n)- translate Engram hash/gate/conv patterns into Signet scorer experiments\n- publish acceptance/rejection contracts before temporal SSM rollout\n\n**SSM Temporal Backbone**: planning (`ssm-temporal-backbone`\n\n)- shadow-mode temporal sidecar with deterministic fallback\n- learned decay and continuity-aware ranking validation\n\n**SSM Graph Traversal Model**: planning (`ssm-graph-traversal-model`\n\n)- path-level SSM reranking in shadow mode\n- strict preservation of traversal bounds and constraint surfacing\n\n### Wave 9 (strategic stub backlog, planning not complete)\n\n-\n**Distributed Harness and Agent Orchestration**(`distributed-harness-orchestration`\n\n)- multi-remote harness management, multi-agent control, multi-memory backend topology\n\n-\n**Signet Native Harness**(`signet-native-harness`\n\n)- first-party harness for benchmark parity and production-grade experimentation\n- reference inspiration: Hermes Agent\n\n-\n**Remember/Recall Skill Parity Refresh**(`remember-recall-skill-parity`\n\n)- align\n`/remember`\n\nand`/recall`\n\nskills with current architecture/schema\n\n- align\n-\n**Explicit Recall Surface Alignment**(`explicit-recall-surface-alignment`\n\n)- consolidate TypeScript explicit recall around one engine and one response contract\n- keep prompt-submit lightweight and stop consumer renderers from discarding metadata\n\n-\n**Semantic Prospective Hints**(`semantic-prospective-hints`\n\n)- extend prospective indexing with hint embeddings and semantic recall over predicted future cues\n\n-\n**Rust Daemon Parity and Runtime Cutover**(`rust-daemon-parity-cutover`\n\n)- parity completion and primary-runtime switch strategy\n\n-\n**Deep Memory Search**(`deep-memory-search`\n\n)- optional multi-agent LLM memory search path (not primary retrieval)\n\n-\n**MCP CLI Bridge and Usage Analytics**(`mcp-cli-bridge-and-usage-analytics`\n\n)- expose installed MCP servers as Signet CLI commands and track usage in dashboard\n- reference inspiration: MC Porter\n\n-\n**Overview Usage Analytics**(`overview-usage-analytics`\n\n)- make the home overview card reflect real MCP server and skill usage\n- reuse analytics ledgers instead of catalog popularity\n\n-\n**Git Marketplace Monorepo**(`git-marketplace-monorepo`\n\n)- GitHub-authenticated PR workflow for skills/servers and JSON review artifacts\n\n-\n**Adaptive Skill Lifecycle**(`adaptive-skill-lifecycle`\n\n)- passive/continuous skill maintenance with outcome feedback loops\n\n-\n**Marketplace Official Skills Featuring**(`marketplace-official-skills`\n\n)- dashboard browse UX that foregrounds Signet official skills without hiding the wider catalog\n\n-\n**Cryptographic Identity Roadmap**(`cryptographic-identity-roadmap`\n\n) -\n**Connector: Py Agent**(`connector-py-agent`\n\n) -\n**Connector: Hermes Agent**(`connector-hermes-agent`\n\n) -\n**Connector: Oh My Pi**(`connector-oh-my-pi`\n\n) -\n**Plugin API and App Ecosystem**(`plugin-api-ecosystem`\n\n)- cross-surface plugin SDK and host for daemon, CLI, MCP, dashboard, connectors, SDK, and prompt lifecycle contributions\n- uses Signet Secrets as the reference privileged core plugin and provider architecture\n\n-\n**Unified Constellation Viewer**(`constellation-unified-viewer`\n\n)- realtime unified constellation/embedding/entity view, replace slow 3D path\n\n-\n**Dashboard IA Refactor**(`dashboard-information-architecture-refactor`\n\n)- settings as standalone page, breadcrumb-driven unified navigation model\n\n-\n**Post-Install Behavior Migration Audit**(`postinstall-behavior-migration-audit`\n\n)- verify no critical install behavior relies on fragile post-install scripts\n\n-\n**Docker Self-Hosting Stack**(`docker-self-hosting-stack`\n\n)- first-party image + compose stack with Caddy, persistent workspace volume, and team-mode bootstrap path\n\n-\n**Explicitly dropped:** client-side LLM reranking (superseded by different solution)\n\n### Wave 10 (CI/CD and workflow acceleration stubs)\n\n**CI Changed-Files Selective Pipelines**(`ci-changed-files-selective`\n\n)**CI Contract Invariants Lane**(`ci-contract-invariants-lane`\n\n)**CI Flaky Test Quarantine**(`ci-flaky-test-quarantine`\n\n)**PR Preview Environments**(`ci-pr-preview-environments`\n\n)**PR Risk Tier Policy**(`pr-risk-tier-policy`\n\n)**API Contract Snapshots**(`api-contract-snapshots`\n\n)**Developer Doctor Command**(`developer-doctor-command`\n\n)**Golden Path Contributor Docs**(`golden-path-docs`\n\n)**Code Ownership and Review SLA**(`code-ownership-sla`\n\n)**Release Train Cadence**(`release-train-cadence`\n\n)**Post-Merge Canary Suite**(`post-merge-canary-suite`\n\n)**Incident to Guardrail Loop**(`incident-guardrail-loop`\n\n)\n\n## Spec Registry\n\nLegend:\n\n`planning`\n\n: design in progress`approved`\n\n: accepted design, pending or partial implementation`complete`\n\n: delivered baseline or merged strategy`reference`\n\n: directional or notebook artifact, not an implementation contract\n\n| ID | Status | Path | Hard Depends On | Blocks | Notes |\n|---|---|---|---|---|---|\n`memory-pipeline-v2` | complete | `docs/specs/complete/memory-pipeline-plan.md` | - | `session-continuity-protocol` , `procedural-memory-plan` , `knowledge-architecture-schema` , `predictive-memory-scorer` , `signet-runtime` | Extraction and session-synthesis providers are separate surfaces; when `pipelineV2.synthesis` is omitted, runtime falls back to the resolved extraction provider/model instead of a hidden CLI default. |\n`session-continuity-protocol` | complete | `docs/specs/complete/session-continuity-protocol.md` | `memory-pipeline-v2` | `knowledge-architecture-schema` , `predictive-memory-scorer` | |\n`memory-md-temporal-head` | approved | `docs/specs/approved/memory-md-temporal-head.md` | `memory-pipeline-v2` , `session-continuity-protocol` , `desire-paths-epic` | - | MEMORY.md becomes a DB-backed temporal head over decay-scored memories and temporal DAG artifacts; respects PR #335 synthesis-provider inheritance rules |\n`lossless-working-memory-runtime` | approved | `docs/specs/approved/lossless-working-memory-runtime.md` | `memory-md-temporal-head` , `session-continuity-protocol` , `knowledge-architecture-schema` , `multi-agent-support` | - | One agent may span many sessions/branches but still keeps one shared MEMORY.md head; live transcripts are fallback-queryable until structured distillation catches up |\n`jsonl-transcript-source-of-truth` | approved | `docs/specs/approved/jsonl-transcript-source-of-truth.md` | `session-continuity-protocol` , `lossless-working-memory-runtime` | - | Canonical transcript history lives at `memory/{harness}/transcripts/transcript.jsonl` , with prompt-time live appends and backfill from legacy markdown/database transcripts. |\n`lossless-working-memory-closure` | approved | `docs/specs/approved/lossless-working-memory-closure.md` | `memory-md-temporal-head` , `lossless-working-memory-runtime` , `signet-runtime` | - | Hardens the no-gap runtime contract: temporal node expansion, retry-safe merge protection, compaction parity, transcript fallback discipline, explicit harness fidelity docs, and same-wave daemon-rs contract-shape parity with degraded-mode documentation for remaining runtime deltas. |\n`memory-md-rolling-window-lineage` | complete | `docs/specs/complete/memory-md-rolling-window-lineage.md` | `memory-md-temporal-head` , `lossless-working-memory-runtime` , `session-continuity-protocol` | - | Session-end transcripts, session-end summaries, and compactions now persist as canonical markdown artifacts with workspace-root-relative wikilinks; MEMORY.md is rendered programmatically from artifact frontmatter plus DB-native thread and temporal state, with fixed-budget clipping of oldest ledger rows and temp/test-session exclusion from projection surfaces. |\n`procedural-memory-plan` | approved | `docs/specs/approved/procedural-memory-plan.md` | `memory-pipeline-v2` | `knowledge-architecture-schema` | P1 complete; P2 usage ledger + `skill_meta` usage updates shipped, with decay and broader retrieval follow-ups still remaining |\n`knowledge-architecture-schema` | complete | `docs/specs/complete/knowledge-architecture-schema.md` | `memory-pipeline-v2` , `session-continuity-protocol` , `procedural-memory-plan` | `predictive-memory-scorer` | KA-1 through KA-6 fully implemented. Audit contract: `entity_dependency_history` captures all dependency mutations via DB-level triggers (`changed_by='db-trigger'` ); `related_to` edges require a non-empty reason enforced at both app layer and DB BEFORE INSERT/UPDATE triggers. |\n`knowledge-architecture-navigation` | approved | `docs/specs/approved/knowledge-architecture-navigation.md` | `knowledge-architecture-schema` | - | Entity/aspect/group/claim/attribute navigation surface for MCP and daemon API. |\n`predictive-memory-scorer` | approved | `docs/specs/approved/predictive-memory-scorer.md` | `memory-pipeline-v2` , `knowledge-architecture-schema` , `session-continuity-protocol` | - | |\n`multi-agent-support` | approved | `docs/specs/approved/multi-agent-support.md` | `memory-pipeline-v2` | - | |\n`signet-runtime` | approved | `docs/specs/approved/signet-runtime.md` | `memory-pipeline-v2` | - | |\n`model-provider-router` | approved | `docs/specs/approved/model-provider-router.md` | `signet-runtime` | - | Shared inference control plane for per-agent rosters, daemon workloads, native RPC, and OpenAI-compatible gateway routing |\n`pipeline-pause-control` | complete | `docs/specs/complete/pipeline-pause-control.md` | `memory-pipeline-v2` | - | CLI and dashboard pause/resume shipped on top of live daemon pause/resume API, paused-mode observability, and local Ollama unload |\n`daemon-startup-responsiveness` | planning | `docs/specs/planning/daemon-startup-responsiveness.md` | `memory-pipeline-v2` | - | Incident-driven stub for issue #331: keep /health responsive during large-db startup recovery and recover stale managed daemon processes cleanly |\n`runtime-upgrade-regression-hardening` | planning | `docs/specs/planning/runtime-upgrade-regression-hardening.md` | `signet-runtime` | - | Incident-driven stub for the March 29, 2026 `0.83.0` → `0.85.3` runtime regressions: hook transport wiring and dashboard publish contract hardening |\n`explicit-recall-surface-alignment` | approved | `docs/specs/approved/explicit-recall-surface-alignment.md` | `memory-pipeline-v2` , `signet-runtime` | - | Consolidate TypeScript explicit recall around `hybridRecall()` and `/api/memory/recall` , keep prompt-submit lightweight, and stop CLI/MCP/connector consumers from flattening away useful metadata |\n`semantic-prospective-hints` | planning | `docs/specs/planning/semantic-prospective-hints.md` | `memory-pipeline-v2` , `desire-paths-epic` | - | Extend DP-6.1 prospective indexing with hint embeddings, semantic hint retrieval, incremental backfill, and degraded-mode-safe fusion into hybrid recall |\n`transcript-surface-separation` | planning | `docs/specs/planning/transcript-surface-separation.md` | `session-continuity-protocol` , `lossless-working-memory-runtime` , `lossless-working-memory-closure` , `explicit-recall-surface-alignment` | - | Keep raw transcripts canonical but move prompt-submit and transcript fallback onto a derived retrieval surface with stronger separation between archive truth and hot recall material |\n`openclaw-legacy-plugin-migration` | planning | `docs/specs/planning/openclaw-legacy-plugin-migration.md` | `openclaw-hardening` , `signet-runtime` | - | Incident-driven stub for issue #434: auto-migrate legacy-only OpenClaw installs to the plugin runtime path and surface the degraded state in doctor |\n`dogfood-hardening-2026-03-29` | planning | `docs/specs/planning/dogfood-hardening-2026-03-29.md` | `memory-pipeline-v2` , `signet-runtime` , `knowledge-architecture-schema` | - | Incident-driven stub for the March 29, 2026 dogfood failures across vector runtime gating, exact entity expansion, temporal session lookup, session bypass normalization, and constructed-card hygiene |\n`daemon-provider-fallback-status` | complete | `docs/specs/complete/daemon-provider-fallback-status.md` | `memory-pipeline-v2` | - | Issue #320 complete: extraction fallback/block state now persists in status surfaces with explicit fallbackProvider control and startup dead-lettering on hard block |\n`daemon-refactor` | planning | `docs/specs/planning/daemon-refactor.md` | - | `daemon-refactor-plan` | |\n`daemon-refactor-plan` | planning | `docs/specs/planning/daemon-refactor-plan.md` | `daemon-refactor` | - | |\n`daemon-rust-rewrite` | planning | `docs/specs/planning/daemon-rust-rewrite.md` | `memory-pipeline-v2` | - | deferred — complexity cost exceeds current benefit |\n`signet-roadmap-spec` | planning | `docs/specs/planning/signet-roadmap-spec.md` | - | - | superseded by INDEX.md as active roadmap |\n`setup-deployment-awareness` | planning | `docs/specs/planning/setup-deployment-awareness.md` | `signet-runtime` | - | deployment context prompt, non-interactive `--deployment-type` inference, and docs alignment for native embeddings |\n`openclaw-integration-strategy` | complete | `docs/specs/complete/openclaw-integration-strategy.md` | - | `openclaw-importance-scoring-pr` | |\n`openclaw-importance-scoring-pr` | complete | `docs/specs/complete/openclaw-importance-scoring-pr.md` | `openclaw-integration-strategy` | - | |\n`openclaw-hardening` | complete | `docs/specs/complete/openclaw-hardening.md` | `openclaw-importance-scoring-pr` | - | temporal index previews, typed hooks, mid-session extraction (PR #369) |\n`openclaw-workspace-protection-plan` | planning | `docs/specs/planning/openclaw-workspace-protection-plan.md` | `openclaw-hardening` | `openclaw-workspace-protection` | Incident-driven planning stub for OpenClaw uninstall workspace-loss risk |\n`openclaw-workspace-protection` | approved | `docs/specs/approved/openclaw-workspace-protection.md` | `openclaw-hardening` , `openclaw-workspace-protection-plan` | - | Setup soft gate + status/doctor visibility for unprotected OpenClaw-linked workspaces |\n`desire-paths-epic` | approved | `docs/specs/approved/desire-paths-epic.md` | `knowledge-architecture-schema` , `predictive-memory-scorer` | - | 20 stories across 5 phases; Phases 1-3 COMPLETE. DP-16 and DP-18 COMPLETE, DP-19 prototype shipped, DP-20 pending (reference repo analysis: Ori-Mnemos, Zikkaron) |\n`notebook-dump-2026-02-25` | reference | `docs/research/technical/notebook-dump-2026-02-25.md` | - | - | |\n`marketplace-reviews-cloudflare-staging` | planning | `docs/specs/planning/marketplace-reviews-cloudflare-staging.md` | - | - | |\n`predictor-agent-feedback` | approved | `docs/specs/approved/predictor-agent-feedback.md` | `predictive-memory-scorer` | - | |\n`retroactive-supersession` | planning | `docs/specs/planning/retroactive-supersession.md` | `knowledge-architecture-schema` | - | Informed by MSAM-COMPARISON, RESEARCH-COMPETITIVE-SYSTEMS |\n`sub-agent-context-continuity` | approved | `docs/specs/approved/sub-agent-context-continuity.md` | `session-continuity-protocol` , `multi-agent-support` | - | Parent transcript query + deterministic sub-agent inheritance (issue #315) |\n`ontology-evolution-core` | planning | `docs/specs/planning/ontology-evolution-core.md` | `knowledge-architecture-schema` , `desire-paths-epic` | `ontology-governance-workflow` | Confidence/provenance edges, co-occurrence signals, typed relationships, temporal lineage |\n`ontology-governance-workflow` | planning | `docs/specs/planning/ontology-governance-workflow.md` | `ontology-evolution-core` , `knowledge-architecture-schema` | - | Proposal/review workflow for ontology-impacting schema changes |\n`ontology-proposal-loop` | approved | `docs/specs/approved/ontology-proposal-loop.md` | `knowledge-architecture-schema` , `memory-md-rolling-window-lineage` | - | Agent-scoped proposal storage plus shared audited operation handlers for reviewable and direct ontology maintenance |\n`ssm-foundation-evaluation` | planning | `docs/specs/planning/ssm-foundation-evaluation.md` | `predictive-memory-scorer` , `desire-paths-epic` | `ssm-temporal-backbone` | Benchmark harness and canary gates for SSM adoption |\n`engram-informed-predictor-track` | planning | `docs/specs/planning/engram-informed-predictor-track.md` | `predictive-memory-scorer` | `ssm-temporal-backbone` | Engram-pattern translation lane for scorer ablations and SSM handoff contracts |\n`ssm-temporal-backbone` | planning | `docs/specs/planning/ssm-temporal-backbone.md` | `ssm-foundation-evaluation` , `ontology-evolution-core` , `session-continuity-protocol` | `ssm-graph-traversal-model` | Shadow-mode temporal state model with fallback |\n`ssm-graph-traversal-model` | planning | `docs/specs/planning/ssm-graph-traversal-model.md` | `ssm-temporal-backbone` , `desire-paths-epic` , `knowledge-architecture-schema` | - | SSM-assisted traversal path ranking |\n`native-harness-memory-bridge` | approved | `docs/specs/approved/native-harness-memory-bridge.md` | `memory-md-rolling-window-lineage` , `signet-runtime` | - | Indexes native harness memory artifacts into Signet recall without materializing duplicate Signet-authored memory rows; Codex and Claude Code use the shared native bridge with soft-deleted stale artifacts excluded from active recall. |\n`distributed-harness-orchestration` | planning | `docs/specs/planning/distributed-harness-orchestration.md` | `multi-agent-support` , `signet-runtime` | `signet-native-harness` | Stub: multi-remote harness/agent/memory orchestration |\n`signet-native-harness` | planning | `docs/specs/planning/signet-native-harness.md` | `distributed-harness-orchestration` , `signet-runtime` | - | Stub: first-party harness track (Hermes-agent informed) |\n`remember-recall-skill-parity` | planning | `docs/specs/planning/remember-recall-skill-parity.md` | `procedural-memory-plan` | - | Stub: /remember and /recall architecture/schema parity |\n`rust-daemon-parity-cutover` | planning | `docs/specs/planning/rust-daemon-parity-cutover.md` | `daemon-rust-rewrite` , `memory-pipeline-v2` | - | Stub: rust daemon parity and primary-runtime cutover |\n`deep-memory-search` | planning | `docs/specs/planning/deep-memory-search.md` | `desire-paths-epic` , `ssm-foundation-evaluation` | - | Stub: optional supermemory-style deep memory escalation |\n`mcp-cli-bridge-and-usage-analytics` | approved | `docs/specs/approved/mcp-cli-bridge-and-usage-analytics.md` | `signet-runtime` | - | Phase 1: CLI bridge, invocation tracking, analytics API, dashboard panel |\n`overview-usage-analytics` | approved | `docs/specs/approved/overview-usage-analytics.md` | `mcp-cli-bridge-and-usage-analytics` , `procedural-memory-plan` | - | Home overview card ranks most-used MCP servers and skills from real analytics instead of catalog popularity |\n`git-marketplace-monorepo` | planning | `docs/specs/planning/git-marketplace-monorepo.md` | `predictor-agent-feedback` | - | Stub: GitHub-authenticated PR marketplace for skills and MCP servers |\n`adaptive-skill-lifecycle` | planning | `docs/specs/planning/adaptive-skill-lifecycle.md` | `procedural-memory-plan` , `predictor-agent-feedback` | - | Stub: passive continuous skill creation/maintenance loop |\n`marketplace-official-skills` | planning | `docs/specs/planning/marketplace-official-skills.md` | `procedural-memory-plan` | - | Stub: feature Signet official skills prominently in the dashboard marketplace |\n`cryptographic-identity-roadmap` | planning | `docs/specs/planning/cryptographic-identity-roadmap.md` | `multi-agent-support` | - | Stub: signed identity and artifact trust roadmap |\n`connector-py-agent` | planning | `docs/specs/planning/connector-py-agent.md` | `signet-runtime` | - | Stub: Py Agent connector |\n`connector-hermes-agent` | planning | `docs/specs/planning/connector-hermes-agent.md` | `signet-runtime` | - | Stub: Hermes Agent connector |\n`connector-oh-my-pi` | planning | `docs/specs/planning/connector-oh-my-pi.md` | `signet-runtime` | - | Stub: Oh My Pi managed runtime extension and connector |\n`plugin-api-ecosystem` | planning | `docs/specs/planning/plugin-api-ecosystem.md` | `signet-runtime` | `plugin-sdk-core-v1` | Cross-surface plugin SDK/host architecture with TypeScript and Rust support, marketplace-ready manifests, prompt contributions, and Signet Secrets as the reference core plugin/provider model |\n`plugin-sdk-core-v1` | complete | `docs/specs/complete/plugin-sdk-core-v1.md` | `signet-runtime` | - | PR #518 complete: bundled `signet.secrets` core plugin, daemon plugin host/registry diagnostics, prompt and surface metadata, redacted audit events, SDK helpers, setup-time core plugin selection, and local Secrets provider extraction preserving existing `secrets.enc` without rewrite |\n`constellation-unified-viewer` | planning | `docs/specs/planning/constellation-unified-viewer.md` | `knowledge-architecture-schema` | - | Stub: realtime unified constellation/embedding/entity viewer |\n`dashboard-information-architecture-refactor` | planning | `docs/specs/planning/dashboard-information-architecture-refactor.md` | `signet-runtime` | - | Stub: dashboard IA cleanup, settings split, breadcrumb navigation |\n`postinstall-behavior-migration-audit` | planning | `docs/specs/planning/postinstall-behavior-migration-audit.md` | `memory-pipeline-v2` | - | Stub: ensure post-install behavior is daemon/CLI-owned |\n`docker-self-hosting-stack` | planning | `docs/specs/planning/docker-self-hosting-stack.md` | `signet-runtime` | - | First-party Docker image + Compose + Caddy deployment contract with team-mode bootstrap path and operations runbook |\n`system-prompt-extraction` | approved | `docs/specs/approved/system-prompt-extraction.md` | - | - | Move Signet system prompt injection to session-start runtime context and keep AGENTS.md as user-owned identity content |\n`dreaming-memory-consolidation` | approved | `docs/specs/approved/dreaming-memory-consolidation.md` | `memory-pipeline-v2` , `knowledge-architecture-schema` | - | Phase 1 (consolidation engine, trigger, config, API, CLI) delivered in PR #442. Source-backed attribute promotion uses direct audited operations outside Pipeline V2. Phase 2 (dreaming-as-session, incremental deltas, V2 exclusion, chunked compaction, dashboard, identity context) deferred. |\n`ci-changed-files-selective` | planning | `docs/specs/planning/ci-changed-files-selective.md` | `memory-pipeline-v2` | - | Stub: selective PR CI by changed package graph |\n`ci-contract-invariants-lane` | planning | `docs/specs/planning/ci-contract-invariants-lane.md` | `knowledge-architecture-schema` | - | Stub: mandatory fast invariant contract checks, including frozen lockfile integrity |\n`ci-flaky-test-quarantine` | planning | `docs/specs/planning/ci-flaky-test-quarantine.md` | `ci-contract-invariants-lane` | - | Stub: flaky detection, quarantine, threshold policy |\n`ci-pr-preview-environments` | planning | `docs/specs/planning/ci-pr-preview-environments.md` | `signet-runtime` | - | Stub: preview deploys and UI smoke checks |\n`pr-risk-tier-policy` | planning | `docs/specs/planning/pr-risk-tier-policy.md` | `ci-contract-invariants-lane` | - | Stub: risk-tiered PR requirements |\n`api-contract-snapshots` | planning | `docs/specs/planning/api-contract-snapshots.md` | `signet-runtime` | - | Stub: response contract snapshot guards |\n`developer-doctor-command` | planning | `docs/specs/planning/developer-doctor-command.md` | `signet-runtime` | - | Stub: one-command local health checks |\n`macos-sqlite-runtime-discovery` | planning | `docs/specs/planning/macos-sqlite-runtime-discovery.md` | `signet-runtime` | - | Incident-driven stub for issue #336: broaden macOS SQLite dylib discovery and surface explicit degraded-mode guidance |\n`markdown-embedding-normalization-hardening` | planning | `docs/specs/planning/markdown-embedding-normalization-hardening.md` | `memory-pipeline-v2` | - | Incident-driven stub for issue #418: preserve multiline markdown for embeddings and bound poison-pill retry spam |\n`desktop-packaging-distribution` | approved | `docs/specs/approved/desktop-packaging-distribution.md` | `signet-runtime` | - | Desktop packaging contract for macOS/Windows/Ubuntu/Arch, bundled daemon fallback path, signing-mode resolution (official/self-signed), and Arch package validation |\n`golden-path-docs` | planning | `docs/specs/planning/golden-path-docs.md` | `developer-doctor-command` | - | Stub: short contributor golden paths |\n`code-ownership-sla` | planning | `docs/specs/planning/code-ownership-sla.md` | `multi-agent-support` | - | Stub: ownership map and review SLA |\n`release-train-cadence` | planning | `docs/specs/planning/release-train-cadence.md` | `memory-pipeline-v2` | - | Stub: predictable release train model |\n`post-merge-canary-suite` | planning | `docs/specs/planning/post-merge-canary-suite.md` | `release-train-cadence` | - | Stub: lightweight post-merge canaries |\n`incident-guardrail-loop` | planning | `docs/specs/planning/incident-guardrail-loop.md` | `ci-contract-invariants-lane` | - | Stub: every incident adds durable guardrail |\n`recall-confidence-gate` | complete | `docs/specs/complete/recall-confidence-gate.md` | `memory-pipeline-v2` | - | Bug fix: preserve reranker-calibrated scores in hybridRecall (not rank-position placeholders); add `hooks.userPromptSubmit.minScore` gate (default 0.8). daemon-rs mirrors gate via term-coverage proxy (matched_terms/total_terms); full hybrid scoring parity to replace proxy in a follow-up. PR #396. |\n`competitive-systems-research` | reference | `docs/research/technical/RESEARCH-COMPETITIVE-SYSTEMS.md` | - | - | Informs desire-paths-epic, retroactive-supersession, ontology-evolution-core |\n\n## Success Criteria\n\nWhat “done” looks like for each spec — observable outcomes, not just code merged.\n\n**memory-pipeline-v2**: Memory extraction captures context that was\npreviously lost between sessions. Pipeline processes hook payloads\nwithout blocking agent response time.\n\n**session-continuity-protocol**: Agent recovers meaningful context\nwhen resuming after session compaction or restart.\n\n**knowledge-architecture-schema**: Memory retrieval returns\nstructurally related context, not just embedding-similar fragments.\nEntity graph traversal produces richer context than flat embedding\nsearch alone.\n\n**predictive-memory-scorer**: Session-start context relevance\nimproves over time without manual curation. NDCG@10 on continuity\nscores is the quantitative metric.\n\n**pipeline-pause-control**: Operators can pause extraction work from\nthe CLI or dashboard to free resources without dropping future backlog\nprocessing, then resume normal draining later, with live daemon\ncontrol when available.\n\n**desire-paths-epic**: Graph traversal discovers relevant memories\nthat embedding search alone misses. Path feedback propagates learning\nsignal through entity dependency edges.\n\n**procedural-memory-plan**: Installed skills are represented as graph\nentities with usage tracking and decay. Skill suggestions surface\nrelevant capabilities during sessions.\n\n**signet-runtime**: Signet operates as a standalone runtime channel\nindependent of harness-specific connectors.\n\n**multi-agent-support**: Multiple agents share one SQLite database\nwithout data collision via agent_id scoping.\n\n**sub-agent-context-continuity**: Parent session transcript is queryable during active sessions, and sub-agents inherit deterministic parent context with no LLM call.\n\n**ontology-evolution-core**: Ontology retrieval uses confidence/provenance\nand normalized association signals to improve path quality while preserving\nconstraint surfacing and agent scoping invariants.\n\n**ontology-governance-workflow**: Ontology-impacting schema changes require\nproposal/review metadata, compatibility notes, and rollback guidance with\nINDEX/dependency consistency checks in CI.\n\n**ontology-proposal-loop**: Extraction and consolidation can produce durable,\nagent-scoped proposal objects before ontology mutation. Direct maintenance\npaths such as dreaming promotion use the same audited operation handlers,\nwith evidence and audit metadata preserved.\n\n**ssm-foundation-evaluation**: SSM benchmarks and canary suites produce\nreproducible, decision-grade comparisons against current scorer behavior.\n\n**engram-informed-predictor-track**: Engram-inspired scorer ablations\nproduce reproducible quality and latency evidence, and accepted deltas are\nexplicitly handed off into SSM temporal planning contracts.\n\n**ssm-temporal-backbone**: Temporal SSM shadow scoring improves long-gap\nand supersession-sensitive ranking slices while preserving deterministic\nfallback and latency bounds.\n\n**ssm-graph-traversal-model**: SSM path reranking improves multi-hop\nranking quality without violating traversal bounds, agent scoping, or\nconstraint surfacing invariants.\n\n**dreaming-memory-consolidation**: Entity graph density increases after\na dreaming pass. Duplicate and near-duplicate entities are merged\nautomatically. Stale or junk attributes are pruned without manual\nintervention. Source-backed evidence can be promoted into update-in-place\nattribute slots without Pipeline V2 extraction. Token spend per pass is\nbounded and configurable. Phase 1 (mechanical consolidation engine) is\ndelivered. Phase 2 (dreaming as a session, incremental deltas, pipeline mutual\nexclusion, chunked compaction, dashboard observability, identity context\ninjection) is required before spec moves to `complete`\n\n.\n\n**wave-9 strategic stubs**: The strategic backlog items listed in Wave 9\nare intentionally tracked as planning stubs and require dedicated planning\nspec expansion before implementation starts.\n\n**wave-10 devex/cicd stubs**: CI/CD acceleration and workflow quality items\nare tracked as planning stubs and should be promoted in priority order as\nteam bandwidth allows.\n\n## Dependency Tracking Rules\n\n- Every new spec gets a stable ID and entry in\n`dependencies.yaml`\n\n. - If a spec introduces a new hard dependency, update both:\n`docs/specs/dependencies.yaml`\n\n- this file’s registry and graph if the dependency is on the critical path.\n\n- Hard dependency means: implementation work should not merge ahead of the dependency unless explicitly marked partial/spike.\n- Soft dependency means: work can run in parallel, but interfaces must be locked before GA.\n- Cross-cutting invariants (above) override individual spec decisions. If a spec contradicts an invariant, the spec must be updated.\n\nValidation command:\n\n`bun scripts/spec-deps-check.ts`\n\n- Script:\n`scripts/spec-deps-check.ts`\n\n- Checks: unknown IDs, hard-dependency cycles, missing spec paths,\nand\n`INDEX.md`\n\n<->`dependencies.yaml`\n\ndrift (ID/status/path).", "url": "https://wpnews.pro/news/spec-index-and-integration-contract", "canonical_source": "https://signetai.sh/docs/specs/", "published_at": "2026-06-18 07:38:23+00:00", "updated_at": "2026-06-18 23:38:12.957707+00:00", "lang": "en", "topics": ["ai-infrastructure", "developer-tools", "ai-research"], "entities": ["Memory Pipeline v2", "Session Continuity", "Procedural Memory", "Multi-Agent Support", "Knowledge Architecture", "Predictive Memory Scorer", "Signet Runtime", "Desire Paths Epic"], "alternates": {"html": "https://wpnews.pro/news/spec-index-and-integration-contract", "markdown": "https://wpnews.pro/news/spec-index-and-integration-contract.md", "text": "https://wpnews.pro/news/spec-index-and-integration-contract.txt", "jsonld": "https://wpnews.pro/news/spec-index-and-integration-contract.jsonld"}}