Orchestrata Ultimate › Plans › traceability-matrix-session165
Traceability Matrix — Session 165 (Phase D modules)
Source: plans/traceability-matrix-session165.md at 8a2cb42ad · last changed 2026-07-27 · first committed 2026-06-20 · 109 lines.
Prose pending.
Plan text
Traceability Matrix — Session 165 (Phase D modules)
Maps each requirement id -> the @traces-annotated code symbol -> the real-infrastructure test(s) that cover it. Built with the repo's own traceability scanner (core.tracing.scanner) + RTM generator (core.tracing.traceability.generate_rtm_markdown); the REQ->test column is verified by hand against each test's asserts. No mocks/skips.
Modules in scope
| Module | Spec | Unit-test line coverage |
|---|---|---|
src/orchestrata_ultimate/integrations/fireflies_sync.py |
SPEC-018 | 100% (46/46 stmts) |
src/orchestrata_ultimate/plugin/registries.py |
SPEC-015 | 100% (29/29 stmts) |
src/orchestrata_ultimate/gateway/handlers/memory.py |
SPEC-010 | 100% (48/48 stmts) |
src/orchestrata_ultimate/kernel/pipeline.py (plugin-Volk projection) |
SPEC-015 | new symbols _PluginVolkAdapter.process + _register_plugin_volks fully covered |
The three Phase D modules measured together: 123/123 statements, 100% (pytest-cov, --cov-report=term-missing). 14 tests, 0 skips.
The kernel-projection addition (pipeline.py plugin-Volk dispatch + kernel_handler.py memory persistence) is the runtime half of SPEC-015/SPEC-010 — its new lines are fully exercised by tests/kernel/test_plugin_volk_projection.py (3 tests) and tests/agents/test_kernel_handler_memory.py (3 tests). The remaining un-hit lines reported by a scoped run of pipeline.py/kernel_handler.py are pre-existing methods (submit_intent, escalation, the respond branch, the auto-boot branch, the outer except) not introduced by this work and covered by the full gateway/integration suite.
REQ -> code -> tests
| REQ | Requirement | Code symbol (file:line) | Covering test(s) |
|---|---|---|---|
| REQ-010-001 | IMemoryEngine defined as ABC (all 6 ops incl. delete) | MemoryHandler.__init__ (orchestrata_ultimate/gateway/handlers/memory.py:33); MemoryHandler.handle_delete (orchestrata_ultimate/gateway/handlers/memory.py:112) |
tests/gateway/handlers/test_memory.py::test_store_then_retrievetests/gateway/handlers/test_memory.py::test_delete_removes_entrytests/gateway/handlers/test_memory.py::test_handler_lazily_builds_default_engine |
| REQ-010-003 | IComponent lifecycle (initialize, start, stop, get_health) | MemoryHandler.__init__ (orchestrata_ultimate/gateway/handlers/memory.py:33) |
tests/gateway/handlers/test_memory.py::test_store_then_retrievetests/gateway/handlers/test_memory.py::test_handler_lazily_builds_default_engine |
| REQ-010-006 | Store accepts content + optional key, tags, metadata | MemoryHandler.handle_store (orchestrata_ultimate/gateway/handlers/memory.py:66) |
tests/gateway/handlers/test_memory.py::test_store_then_retrievetests/gateway/handlers/test_memory.py::test_store_requires_content_and_sessiontests/gateway/handlers/test_memory.py::test_handler_lazily_builds_default_engine |
| REQ-010-009 | Hot storage (Redis) written immediately on store | MemoryHandler.handle_store (orchestrata_ultimate/gateway/handlers/memory.py:66) |
tests/gateway/handlers/test_memory.py::test_store_then_retrieve |
| REQ-010-011 | Retrieve by exact key returns MemoryEntry or None | MemoryHandler.handle_retrieve (orchestrata_ultimate/gateway/handlers/memory.py:82) |
tests/gateway/handlers/test_memory.py::test_store_then_retrievetests/gateway/handlers/test_memory.py::test_delete_removes_entrytests/gateway/handlers/test_memory.py::test_handler_lazily_builds_default_engine |
| REQ-010-015 | Semantic search via embedding similarity | MemoryHandler.handle_search (orchestrata_ultimate/gateway/handlers/memory.py:95) |
tests/gateway/handlers/test_memory.py::test_search_finds_stored_memory |
| REQ-010-019 | Configurable result limit enforced (default 10) | MemoryHandler.handle_search (orchestrata_ultimate/gateway/handlers/memory.py:95) |
tests/gateway/handlers/test_memory.py::test_search_finds_stored_memory |
| REQ-010-047 | All memory operations logged to audit trail | MemoryHandler.handle_delete (orchestrata_ultimate/gateway/handlers/memory.py:112) |
tests/gateway/handlers/test_memory.py::test_delete_removes_entry |
| REQ-015-016 | Plugin calls context.register_volk(alias, capabilities, handler) | VolkRegistry (orchestrata_ultimate/plugin/registries.py:30); VolkRegistry.register_volk (orchestrata_ultimate/plugin/registries.py:37) |
tests/plugin/test_plugin_registration_wiring.py::test_loaded_plugin_registers_volk_into_wired_registrytests/plugin/test_plugin_registration_wiring.py::test_volk_registry_is_queryable |
| REQ-015-017 | Registered Volk appears in the Volk registry | VolkRegistry (orchestrata_ultimate/plugin/registries.py:30); VolkRegistry.__contains__ (orchestrata_ultimate/plugin/registries.py:63); VolkRegistry.__len__ (orchestrata_ultimate/plugin/registries.py:67); VolkRegistry.get_volk (orchestrata_ultimate/plugin/registries.py:53); VolkRegistry.list_volks (orchestrata_ultimate/plugin/registries.py:58); PipelineRunner._register_plugin_volks (orchestrata_ultimate/kernel/pipeline.py:141) |
tests/plugin/test_plugin_registration_wiring.py::test_loaded_plugin_registers_volk_into_wired_registrytests/plugin/test_plugin_registration_wiring.py::test_volk_registry_is_queryabletests/kernel/test_plugin_volk_projection.py::test_plugin_volk_projected_onto_live_dispatchtests/kernel/test_plugin_volk_projection.py::test_no_plugin_registry_leaves_only_builtins |
| REQ-015-019 | Volk alias validated for uniqueness (replace-by-alias) | VolkRegistry.register_volk (orchestrata_ultimate/plugin/registries.py:37) |
tests/plugin/test_plugin_registration_wiring.py::test_volk_registry_is_queryable |
| REQ-015-021 | Plugin Volk receives CXP packets via handler function | PipelineRunner._register_plugin_volks (orchestrata_ultimate/kernel/pipeline.py:141); _PluginVolkAdapter.process (orchestrata_ultimate/kernel/pipeline.py:45) |
tests/kernel/test_plugin_volk_projection.py::test_plugin_volk_projected_onto_live_dispatchtests/kernel/test_plugin_volk_projection.py::test_plugin_volk_sync_handler_is_dispatchable |
| REQ-015-022 | Plugin Volk responds via standard CXP protocol | _PluginVolkAdapter.process (orchestrata_ultimate/kernel/pipeline.py:45); PipelineRunner._register_plugin_volks (orchestrata_ultimate/kernel/pipeline.py:141) |
tests/kernel/test_plugin_volk_projection.py::test_plugin_volk_projected_onto_live_dispatchtests/kernel/test_plugin_volk_projection.py::test_plugin_volk_sync_handler_is_dispatchable |
| REQ-018-066 | fireflies.transcripts returns the transcript list | FirefliesKnowledgeSync.sync_recent (orchestrata_ultimate/integrations/fireflies_sync.py:68) |
tests/knowledge_graph/test_fireflies_sync.py::test_sync_recent_pulls_and_injectstests/knowledge_graph/test_fireflies_sync.py::test_sync_recent_requires_a_clienttests/knowledge_graph/test_fireflies_sync.py::test_sync_recent_skips_entries_without_idtests/knowledge_graph/test_fireflies_sync.py::test_sync_recent_records_per_transcript_errors |
| REQ-018-067 | fireflies.transcript returns a single transcript with full text | FirefliesKnowledgeSync.inject_transcript (orchestrata_ultimate/integrations/fireflies_sync.py:94) |
tests/knowledge_graph/test_fireflies_sync.py::test_inject_transcript_creates_documenttests/knowledge_graph/test_fireflies_sync.py::test_inject_transcript_is_idempotenttests/knowledge_graph/test_fireflies_sync.py::test_sync_recent_pulls_and_injects |
| REQ-018-069 | fireflies.summary returns the meeting summary | FirefliesKnowledgeSync.sync_recent (orchestrata_ultimate/integrations/fireflies_sync.py:68) |
tests/knowledge_graph/test_fireflies_sync.py::test_sync_recent_pulls_and_injects |
| REQ-018-071 | MCP bridge implemented as a SPEC-015 plugin component | FirefliesKnowledgeSync (orchestrata_ultimate/integrations/fireflies_sync.py:42) |
tests/knowledge_graph/test_fireflies_sync.py::test_inject_transcript_creates_documenttests/knowledge_graph/test_fireflies_sync.py::test_sync_recent_pulls_and_injects |
| REQ-018-072 | Bridge uses the existing Fireflies MCP/REST client tools | FirefliesKnowledgeSync (orchestrata_ultimate/integrations/fireflies_sync.py:42) |
tests/knowledge_graph/test_fireflies_sync.py::test_sync_recent_pulls_and_injectstests/knowledge_graph/test_fireflies_sync.py::test_sync_recent_records_per_transcript_errors |
Per-spec rollup
| Spec | REQ ids traced | Distinct symbols | Tests |
|---|---|---|---|
| SPEC-010 | 8 (REQ-010-001, REQ-010-003, REQ-010-006, REQ-010-009, REQ-010-011, REQ-010-015, REQ-010-019, REQ-010-047) | 5 | 5 |
| SPEC-015 | 5 (REQ-015-016, REQ-015-017, REQ-015-019, REQ-015-021, REQ-015-022) | 8 | 5 |
| SPEC-018 | 5 (REQ-018-066, REQ-018-067, REQ-018-069, REQ-018-071, REQ-018-072) | 3 | 6 |
Appendix: auto-generated RTM (code-only, from generate_rtm_markdown)
محسوب Requirements Traceability Matrix (Auto-Generated)
Total Traced Requirements: 27 Specs Covered: 3
Summary
| Spec | Requirements | Classes | Methods |
|---|---|---|---|
| SPEC-010 | 9 | 1 | 5 |
| SPEC-015 | 13 | 3 | 7 |
| SPEC-018 | 5 | 1 | 2 |
Details
Spec SPEC-010
| Req ID | Class | Method | File | Line |
|---|---|---|---|---|
| REQ-010-001 | MemoryHandler | init | src/orchestrata_ultimate/gateway/handlers/memory.py | 33 |
| REQ-010-001 | MemoryHandler | handle_delete | src/orchestrata_ultimate/gateway/handlers/memory.py | 112 |
| REQ-010-003 | MemoryHandler | init | src/orchestrata_ultimate/gateway/handlers/memory.py | 33 |
| REQ-010-006 | MemoryHandler | handle_store | src/orchestrata_ultimate/gateway/handlers/memory.py | 66 |
| REQ-010-009 | MemoryHandler | handle_store | src/orchestrata_ultimate/gateway/handlers/memory.py | 66 |
| REQ-010-011 | MemoryHandler | handle_retrieve | src/orchestrata_ultimate/gateway/handlers/memory.py | 82 |
| REQ-010-015 | MemoryHandler | handle_search | src/orchestrata_ultimate/gateway/handlers/memory.py | 95 |
| REQ-010-019 | MemoryHandler | handle_search | src/orchestrata_ultimate/gateway/handlers/memory.py | 95 |
| REQ-010-047 | MemoryHandler | handle_delete | src/orchestrata_ultimate/gateway/handlers/memory.py | 112 |
Spec SPEC-015
| Req ID | Class | Method | File | Line |
|---|---|---|---|---|
| REQ-015-016 | VolkRegistry | — | src/orchestrata_ultimate/plugin/registries.py | 30 |
| REQ-015-016 | VolkRegistry | register_volk | src/orchestrata_ultimate/plugin/registries.py | 37 |
| REQ-015-017 | PipelineRunner | _register_plugin_volks | src/orchestrata_ultimate/kernel/pipeline.py | 141 |
| REQ-015-017 | VolkRegistry | — | src/orchestrata_ultimate/plugin/registries.py | 30 |
| REQ-015-017 | VolkRegistry | get_volk | src/orchestrata_ultimate/plugin/registries.py | 53 |
| REQ-015-017 | VolkRegistry | list_volks | src/orchestrata_ultimate/plugin/registries.py | 58 |
| REQ-015-017 | VolkRegistry | contains | src/orchestrata_ultimate/plugin/registries.py | 63 |
| REQ-015-017 | VolkRegistry | len | src/orchestrata_ultimate/plugin/registries.py | 67 |
| REQ-015-019 | VolkRegistry | register_volk | src/orchestrata_ultimate/plugin/registries.py | 37 |
| REQ-015-021 | _PluginVolkAdapter | process | src/orchestrata_ultimate/kernel/pipeline.py | 45 |
| REQ-015-021 | PipelineRunner | _register_plugin_volks | src/orchestrata_ultimate/kernel/pipeline.py | 141 |
| REQ-015-022 | _PluginVolkAdapter | process | src/orchestrata_ultimate/kernel/pipeline.py | 45 |
| REQ-015-022 | PipelineRunner | _register_plugin_volks | src/orchestrata_ultimate/kernel/pipeline.py | 141 |
Spec SPEC-018
| Req ID | Class | Method | File | Line |
|---|---|---|---|---|
| REQ-018-066 | FirefliesKnowledgeSync | sync_recent | src/orchestrata_ultimate/integrations/fireflies_sync.py | 68 |
| REQ-018-067 | FirefliesKnowledgeSync | inject_transcript | src/orchestrata_ultimate/integrations/fireflies_sync.py | 94 |
| REQ-018-069 | FirefliesKnowledgeSync | sync_recent | src/orchestrata_ultimate/integrations/fireflies_sync.py | 68 |
| REQ-018-071 | FirefliesKnowledgeSync | — | src/orchestrata_ultimate/integrations/fireflies_sync.py | 42 |
| REQ-018-072 | FirefliesKnowledgeSync | — | src/orchestrata_ultimate/integrations/fireflies_sync.py | 42 |