Orchestrata Ultimate / RTM / 106-context-semantic-layer
RTM: 106-context-semantic-layer
Requirement to symbol to test rows for 106-context-semantic-layer: Context Semantic Layer.
At a glance
| Item | Value |
|---|---|
| Requirement IDs | 38 |
Traced from src/ |
36 (94.7%) |
| Untraced | 2 |
Cited from tests/ |
26 (68.4%) |
Traced in src/ but not cited from tests/ |
10 |
Reading this matrix
This matrix lists each of the 38 requirement IDs of spec 106-context-semantic-layer with the src/ symbols that cite it and the tests that cite it. 36 of them (94.7%) have at least one citing symbol and 2 have none.
26 requirements are also cited from tests/, and 10 are traced in code but never named by a test. A test citation is a @traces on a test function; it shows intent to cover, not that the test runs or reaches the symbol.
Rows showing none in the symbols column are the gaps to close first. The densest untraced groups are REQ-106-* (2).
Requirement to symbols to tests
| Requirement | Symbols in src/ |
Tests citing it |
|---|---|---|
REQ-106-001 Code nodes use labels Module/Class/Function with id <relpath>::<qualname>; methods... |
orchestrata_ultimate/knowledge_graph/canonical_schema code_entity_id L851orchestrata_ultimate/knowledge_graph/canonical_schema parse_code_entity_id L880orchestrata_ultimate/knowledge_graph/canonical_schema project_qualified_id L901+7 more |
none |
REQ-106-002 Requirement nodes key on the literal requirement id string; TRACES_TO targets... |
orchestrata_ultimate/knowledge_graph/architecture_writer upsert_architecture_decision L810orchestrata_ultimate/knowledge_graph/canonical_schema get_canonical_merge_keys L1014orchestrata_ultimate/knowledge_graph/ontology_mapping Mapped L189+3 more |
none |
REQ-106-003 Volk keys on alias; Session on session_id; Project on slug — one key per label, everywhere |
orchestrata_ultimate/knowledge_graph/architecture_writer _require_project_slug L83orchestrata_ultimate/knowledge_graph/architecture_writer upsert_architecture_decision L810orchestrata_ultimate/knowledge_graph/canonical_schema get_canonical_merge_keys L1014+6 more |
tests/scripts/test_backfill_thread_links.py::test_alias_precedence_over_volk_id_on_a_different_node |
REQ-106-004 Containment uses DEFINES; test linkage uses TESTED_BY — no writer-specific synonyms |
orchestrata_ultimate/knowledge_graph/ontology_mapping map_relationship L433 |
none |
REQ-106-005 canonical_schema.get_all_ddl() is the single constraint source and has an apply()... |
orchestrata_ultimate/knowledge_graph/architecture_writer seed_reference_data L1332orchestrata_ultimate/knowledge_graph/canonical_schema _drop_orphan_indexes L1120orchestrata_ultimate/knowledge_graph/canonical_schema _memgraph_constraint_ddl L1063+4 more |
none |
REQ-106-006 A conformance gate flags any MERGE using non-canonical label/key/rel and runs in CI... |
orchestrata_ultimate/knowledge_graph/architecture_writer AdrImmutabilityError L59orchestrata_ultimate/knowledge_graph/architecture_writer _adr_body_sha L137orchestrata_ultimate/knowledge_graph/architecture_writer check_adr_integrity L152+10 more |
tests/knowledge_graph/test_architecture_writer_status_line.py::test_plain_status_line_keeps_a_proposed_statustests/knowledge_graph/test_architecture_writer_status_line.py::test_plain_status_line_reads_status_and_date_with_the_full_bodytests/knowledge_graph/test_architecture_writer_status_line.py::test_real_adr_0073_parses_as_accepted_with_every_body_section+33 more |
REQ-106-007 ContextInjector's label mismatches (TRACES, TESTS, Requirement-vs-RequirementItem) are... |
orchestrata_ultimate/knowledge_graph/context_injector ContextInjector L500 |
none |
REQ-106-008 Every production writer either conforms to the canon or is retired with traces-union... |
orchestrata_ultimate/knowledge_graph/architecture_writer _edge L451orchestrata_ultimate/knowledge_graph/architecture_writer _get_repo L404orchestrata_ultimate/knowledge_graph/architecture_writer _merge_node L430+4 more |
tests/kernel/test_pipeline_kg.py::test_pipeline_kg_writes_conform_to_canonical_schematests/knowledge_graph/test_runtime_writer.py::test_writes_conform_to_canonical_schematests/session/test_kg_sync_real_graph.py::test_file_and_directory_nodes_have_canonical_keys+1 more |
REQ-106-010 analyze_request produces {task_type, entities, budget, requester} with no LLM calls |
orchestrata_ultimate/knowledge_graph/context_pack/frame analyze_request L232 |
none |
REQ-106-011 Task-type classification reuses the existing deterministic parsers... |
orchestrata_ultimate/knowledge_graph/context_pack/frame analyze_request L232 |
tests/knowledge_graph/context_pack/test_frame.py::test_task_type_classified_from_subject_payload |
REQ-106-012 Entity linking matches exact and normalized node names against the canonical graph |
orchestrata_ultimate/knowledge_graph/context_pack/frame analyze_request L232 |
tests/knowledge_graph/context_pack/test_frame.py::test_entity_linking_spec_requirement_volktests/knowledge_graph/context_pack/test_frame.py::test_normalized_case_underscore_dash_fold |
REQ-106-013 Ambiguous entity matches are retained with recorded ambiguity, never dropped or guessed |
orchestrata_ultimate/knowledge_graph/context_pack/frame analyze_request L232 |
tests/knowledge_graph/context_pack/test_frame.py::test_ambiguous_entity_kept_with_candidatestests/knowledge_graph/context_pack/test_selector.py::test_ambiguous_candidates_do_not_expand_neighbors |
REQ-106-014 Identical request text yields an identical RequestFrame (pure function of input +... |
orchestrata_ultimate/knowledge_graph/context_pack/frame analyze_request L232 |
tests/knowledge_graph/context_pack/test_frame.py::test_analyze_request_is_pure_function_of_text_and_graph |
REQ-106-020 Each task type has a parameterized query template rooted at the linked entities |
orchestrata_ultimate/knowledge_graph/context_pack/selector select L211 |
none |
REQ-106-021 Expansion is k-hop bounded with a default of 2 and per-template overrides |
orchestrata_ultimate/knowledge_graph/context_pack/selector select L211 |
tests/knowledge_graph/context_pack/test_selector.py::test_debug_template_k_hop_override_is_tighter_than_default |
REQ-106-022 Ranking uses only graph signals: hop distance, trace degree, TESTED_BY presence,... |
orchestrata_ultimate/knowledge_graph/context_pack/selector select L211 |
tests/knowledge_graph/context_pack/test_selector.py::test_rank_ordering_uses_recency_signaltests/knowledge_graph/context_pack/test_selector.py::test_rank_ordering_uses_tested_by_presence_signaltests/knowledge_graph/test_context_injector_selector_wiring.py::test_inject_for_task_debug_k1_and_tested_by_signal+1 more |
REQ-106-023 Rank ties break lexicographically on node id for reproducibility |
orchestrata_ultimate/knowledge_graph/context_pack/selector select L211 |
tests/knowledge_graph/context_pack/test_selector.py::test_rank_tie_breaks_lexicographically_on_node_id |
REQ-106-024 No embedding or LLM scoring participates in selection |
orchestrata_ultimate/knowledge_graph/context_pack/selector select L211 |
none |
REQ-106-025 The six SPEC-009 task-type handlers are expressed as selection templates without... |
orchestrata_ultimate/knowledge_graph/context_pack/selector select L211 |
tests/knowledge_graph/context_pack/test_selector.py::test_review_template_also_reaches_traces_to |
REQ-106-030 Packing is greedy by rank under an explicit token budget that is never exceeded |
orchestrata_ultimate/context/assembler UnifiedContextAssembler L70orchestrata_ultimate/context/budget ContextBudget L16orchestrata_ultimate/context/providers/trimming trim_to_budget L22+1 more |
tests/knowledge_graph/context_pack/test_packer.py::test_budget_hard_ceiling_never_exceeded |
REQ-106-031 Token counting uses the TokenCounterProtocol implementations (tiktoken with word fallback) |
orchestrata_ultimate/knowledge_graph/context_pack/packer pack L130 |
none |
REQ-106-032 A pack is a markdown file with YAML frontmatter recording frame, snapshot id, budget... |
orchestrata_ultimate/knowledge_graph/context_pack/packer ParsedPack L84orchestrata_ultimate/knowledge_graph/context_pack/packer render L224 |
none |
REQ-106-033 Every pack section carries provenance: node id, selecting template, rank, token cost |
orchestrata_ultimate/knowledge_graph/context_pack/frame analyze_request L232orchestrata_ultimate/knowledge_graph/context_pack/packer ParsedSection L71orchestrata_ultimate/knowledge_graph/context_pack/packer pack L130+3 more |
tests/knowledge_graph/context_pack/test_packer.py::test_provenance_present_per_section |
REQ-106-034 Same frame + same graph state produces a byte-identical pack body |
orchestrata_ultimate/knowledge_graph/context_pack/frame analyze_request L232orchestrata_ultimate/knowledge_graph/context_pack/packer pack L130orchestrata_ultimate/knowledge_graph/context_pack/packer render L224+1 more |
tests/knowledge_graph/context_pack/test_packer.py::test_byte_stability_across_repeated_runs |
REQ-106-035 A trimmed pack (sections deleted) re-validates and injects without regeneration |
orchestrata_ultimate/knowledge_graph/context_pack/frame analyze_request L232orchestrata_ultimate/knowledge_graph/context_pack/packer ParsedPack L84orchestrata_ultimate/knowledge_graph/context_pack/packer ParsedSection L71+5 more |
tests/knowledge_graph/context_pack/test_packer.py::test_trim_and_revalidate |
REQ-106-040 ContextInjector.inject_for_task consumes the selector/packer instead of ad-hoc LIMIT... |
orchestrata_ultimate/knowledge_graph/context_injector _apply_context_pack L1498orchestrata_ultimate/knowledge_graph/context_injector inject_for_task L1359 |
tests/knowledge_graph/test_context_injector_task_types.py::test_summary_includes_specs_and_requirements_when_present |
REQ-106-041 scripts/context_pack.py emits packs for agent briefs (task-type, target, budget CLI) |
none | none |
REQ-106-042 Each injection records budget, spend and section list for measurement |
orchestrata_ultimate/context/assembler UnifiedContextAssembler L70orchestrata_ultimate/knowledge_graph/context_injector VolkContext L404orchestrata_ultimate/knowledge_graph/context_injector inject_for_task L1359 |
tests/knowledge_graph/test_context_injector_selector_wiring.py::test_inject_for_task_routes_through_selector |
REQ-106-043 KG-unavailable degrades to an explicit empty pack with reason, never a silent partial |
orchestrata_ultimate/knowledge_graph/context_injector VolkContext L404orchestrata_ultimate/knowledge_graph/context_injector inject_for_task L1359orchestrata_ultimate/knowledge_graph/context_pack/packer empty_pack L189+3 more |
tests/knowledge_graph/context_pack/test_packer.py::test_empty_pack_with_reason |
REQ-106-044 Selection+packing p50 stays under 500ms at repo scale against live Neo4j... |
none | none |
REQ-106-060 The retriever asserts ONLY ground facts derived from the selected subgraph's graph... |
orchestrata_ultimate/knowledge_graph/context_pack/relevance KgRelevanceRetriever L109 |
tests/knowledge_graph/context_pack/test_relevance.py::TestRefineTaskTypeTiers |
REQ-106-061 kg_relevant/1 and kg_relevance_tier/2 are deduced by task-type rules — a linked root... |
orchestrata_ultimate/knowledge_graph/context_pack/relevance KgRelevanceRetriever L109 |
tests/knowledge_graph/context_pack/test_relevance.py::TestRefineTaskTypeTierstests/knowledge_graph/context_pack/test_relevance.py::test_refine_empty_subgraph_returns_empty_dict |
REQ-106-062 Tiers feed FR-003's score as a discrete bonus (core >> related >> peripheral), applied... |
orchestrata_ultimate/knowledge_graph/context_pack/relevance rescore_by_tier L81 |
tests/knowledge_graph/context_pack/test_relevance.py::_nodetests/knowledge_graph/context_pack/test_relevance.py::test_core_outranks_related_outranks_peripheral_regardless_of_fr003_scoretests/knowledge_graph/context_pack/test_relevance.py::test_refine_is_deterministic_across_calls+1 more |
REQ-106-063 When no Prolog bridge is wired every node is peripheral (zero bonus) and ranking is... |
orchestrata_ultimate/knowledge_graph/context_injector __init__ L519orchestrata_ultimate/knowledge_graph/context_injector inject_for_task L1359 |
tests/knowledge_graph/context_pack/test_relevance.py::TestContextInjectorIntegrationtests/knowledge_graph/context_pack/test_relevance.py::_nodetests/knowledge_graph/context_pack/test_relevance.py::test_empty_tiers_leaves_order_identical+1 more |
REQ-106-064 Projected facts are request-scoped and retracted after each refinement (no... |
orchestrata_ultimate/knowledge_graph/context_pack/relevance KgRelevanceRetriever L109 |
tests/knowledge_graph/context_pack/test_relevance.py::test_refine_retracts_projected_facts_after_completion |
REQ-106-065 Each refinement records the per-tier node counts alongside the FR-005 injection... |
orchestrata_ultimate/knowledge_graph/context_injector inject_for_task L1359orchestrata_ultimate/knowledge_graph/context_pack/relevance KgRelevanceRetriever L109 |
tests/knowledge_graph/context_pack/test_relevance.py::TestContextInjectorIntegration |
REQ-106-066 Knowledge-graph ownership recursion (knowledge.pl:ownership_chain/3) uses bounded... |
orchestrata_ultimate/knowledge_graph/runtime_writer RuntimeSignalWriter L41 |
tests/knowledge_graph/context_pack/test_relevance.py::TestRuntimeSignalRelevancetests/knowledge_graph/test_ownership_chain_tabling.py::_chains_fortests/knowledge_graph/test_ownership_chain_tabling.py::_cleanup+5 more |
REQ-106-067 Negation-bearing governance predicates with self-referential negation (e.g.,... |
orchestrata_ultimate/knowledge_graph/context_pack/cache ContextPackCache L30 |
tests/governance/test_tabling_safety.py::test_assess_harm_is_not_tabledtests/governance/test_tabling_safety.py::test_no_self_negated_predicate_is_tabled |