Status: accepted v0.3 — body sourced from TriGraph spec entity. Docs-mirror file added by docs lane to surface ratified specs that lacked an on-disk mirror.
SPEC-080: Tri-Graph Governance Lookup and Capability Index
SPEC-080 v0.3 — Tri-Graph Governance Lookup and Capability Index
Status
Accepted v0.3.
Author: Candi (v0.1, v0.2)
Schema co-author: Candi
Engineering owner: Donna
Architecture reviewer: Texi
PO / ratifier: Donna
Acceptance panel: Porsche
Docs sweep: Desiree
Plan: Plan #10 Wave 3 Blocker #6
v0.3 Changelog (2026-05-04)
v0.3 is a terminology amendment only. No design changes; no
acceptance-criteria changes; no contract changes other than the renames
listed in §Renames.
Operator (Frank) flagged that “recall” was overloaded with semantic_recall
(which IS Prism memory recall over memory_embeddings per ADR-018) plus the
Claude Code harness’s auto-memory file system. Donna agreed; “lookup” is
plain-English unambiguous and reserves “recall” for actual memory retrieval.
The rename was caught and applied during PR-set-1A close-out (after
PR #123/#124/#125 had shipped using the v0.2 naming in code comments and
docstrings). Implementation files updated under PR set v0.3-rename.
Renames
| v0.2 name | v0.3 name | Reason |
|---|
prism_governance_recall (verb) | prism_governance_lookup | distinct from semantic_recall (memory recall) |
PRISM_GOVERNANCE_RECALL_ENABLED (env flag) | PRISM_GOVERNANCE_LOOKUP_ENABLED | mirrors verb rename |
| ”governance recall” (concept noun) | “governance lookup” | reserves “recall” for memory recall |
| §Recall Verb Contract | §Lookup Verb Contract | section header rename |
NOT renamed (preserved as-is)
| Term | Why kept |
|---|
semantic_recall | unrelated existing memory-recall verb (SPEC-020 + ADR-018) |
memory_recall_events, memory_citation_events | SPEC-065 telemetry tables — locked baseline, must not mutate per SPEC-080 §SPEC-065 Protection |
| ”advisory recall” / “advisory recall mode” (when describing memory-class behavior) | precise term for retrieval-class semantics |
top_k parameter naming | per §Recall Verb Contract field rules — “follows existing Prism recall naming; do not use limit” — the parameter naming convention crosses both verbs |
v0.2 Contract Inheritance
All v0.2 sections remain in force, modulo the renames above:
- §Existing Architecture Boundary (SPEC-020 Tri-Graph preserved)
- §Shared Definitions (with
governance_lookup substituted for governance_recall)
- §Source Model (DB typed artifacts + generated docs mirrors + static files + runtime observations + code/source paths + validation artifacts)
- §Authority Rules (advisory only; never silently outranks Ring authority, DB SOR, or live
prism_start)
- §Type Ontology Registration (24 governance/capability types, registered in
trigraph_types/governance.json per Phase 1A PR #123)
- §Edge Vocabulary Registration (11 SPEC-080 first-class edges + 9 SPEC-078/079 edges, registered in
_VALID_REFERENCE_TYPES per PR #123)
- §Required Current-State Properties
- §Capability Index (capability nodes are tools/surface features, not agent authority)
- §Lookup Verb Contract (renamed from §Recall Verb Contract; signature unchanged)
- §Query Classes (9 classes: applicable_rules, surface_capabilities, authority_lookup, method_fragments, memory_domains, review_gates, supersession_check, validation_context, conflict_lookup)
- §Response and Prompt Safety (no raw graph paths in default response; opt-in via
include_paths=true)
- §Extraction Phases (Phase 0 ratification done; Phase 1A registration shipped via PR #123; Phase 1B-DB extractor shipped via PR #124; Phase 1B-static extractor shipped via PR #125)
- §SPEC-065 Protection (no telemetry mutation)
- §Storage Notes
- §Failure and Fallback (Neo4j-unavailable fail-soft; stale freshness; conflict resolution)
- §Telemetry and Acceptance Panel (Porsche signals outside SPEC-065)
- §Acceptance Criteria 1–18
Phase 2 (next)
Phase 2 implementation begins under v0.3 naming:
- backend service
governance_lookup.py with 9 query_class handlers
- MCP verb registration
prism_governance_lookup in mcp-node + backend route
- default response shape (advisory + cited + freshness-aware)
- disabled response shape when
PRISM_GOVERNANCE_LOOKUP_ENABLED is false
- Neo4j-unavailable fail-soft response shape
- pure-function tests + default-off invariant tests at the verb surface
Phase 3 (enforcement & automation) remains separately authorized per v0.2 §Phase 3.
Implementation status (post-PR-set-1A)
| Surface | Status |
|---|
| Type ontology registration (governance.json, 24 types) | shipped — PR #123 deployed clean |
| Edge vocabulary registration (20 first-class edges) | shipped — PR #123 deployed clean |
| DB extractor (Spec/Adr/Plan/Todo/Retrospective → Artifact/Decision) | shipped — PR #124 deployed clean |
| Static-files extractor (BIOS + methodology → SourceDocument + InstructionSurface) | shipped — PR #125 deployed clean |
| Method fragment + domain contract DB seeding | deferred — waits on SPEC-078/SPEC-079 own DB tables |
| Lafonda install-lane PRISM_GOVERNANCE_LOOKUP_ENABLED=false flag add | queued |
| Phase 2 prism_governance_lookup verb | next milestone |
References
- SPEC-080 v0.2 (superseded; same contract minus the renames above)
- SPEC-020 v1.0, Tri-Graph Knowledge Representation
- SPEC-025, Tri-Graph projection/backfill behavior
- SPEC-026, Tri-Graph reconciler/freshness behavior
- SPEC-078 v0.2, Consensus-First Parallelism and Method Fragments
- SPEC-079 v0.2, Memory Domain Contracts and Continuous Improvement Loop
- ADR #47 v0.2, Governance Layer Precedence and Override Semantics
- ADR #48 v0.2, Identity / Surface / Specialization / Assignment / Style Model
- SPEC-065, Memory System Improvement: Research Methodology + Phase 0 Telemetry
- Plan #10 v0.6, Wave 3 Blocker #6 ownership map
backend/app/services/trigraph_*.py
backend/app/services/trigraph_types.py
backend/app/trigraph_types/governance.json
backend/app/services/trigraph_governance_extractor.py
backend/app/services/trigraph_governance_static_extractor.py
docs/TRIGRAPH.md