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 L851
orchestrata_ultimate/knowledge_graph/canonical_schema parse_code_entity_id L880
orchestrata_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 L810
orchestrata_ultimate/knowledge_graph/canonical_schema get_canonical_merge_keys L1014
orchestrata_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 L83
orchestrata_ultimate/knowledge_graph/architecture_writer upsert_architecture_decision L810
orchestrata_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 L1332
orchestrata_ultimate/knowledge_graph/canonical_schema _drop_orphan_indexes L1120
orchestrata_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 L59
orchestrata_ultimate/knowledge_graph/architecture_writer _adr_body_sha L137
orchestrata_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_status
tests/knowledge_graph/test_architecture_writer_status_line.py::test_plain_status_line_reads_status_and_date_with_the_full_body
tests/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 L451
orchestrata_ultimate/knowledge_graph/architecture_writer _get_repo L404
orchestrata_ultimate/knowledge_graph/architecture_writer _merge_node L430
+4 more
tests/kernel/test_pipeline_kg.py::test_pipeline_kg_writes_conform_to_canonical_schema
tests/knowledge_graph/test_runtime_writer.py::test_writes_conform_to_canonical_schema
tests/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_volk
tests/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_candidates
tests/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_signal
tests/knowledge_graph/context_pack/test_selector.py::test_rank_ordering_uses_tested_by_presence_signal
tests/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 L70
orchestrata_ultimate/context/budget ContextBudget L16
orchestrata_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 L84
orchestrata_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 L232
orchestrata_ultimate/knowledge_graph/context_pack/packer ParsedSection L71
orchestrata_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 L232
orchestrata_ultimate/knowledge_graph/context_pack/packer pack L130
orchestrata_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 L232
orchestrata_ultimate/knowledge_graph/context_pack/packer ParsedPack L84
orchestrata_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 L1498
orchestrata_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 L70
orchestrata_ultimate/knowledge_graph/context_injector VolkContext L404
orchestrata_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 L404
orchestrata_ultimate/knowledge_graph/context_injector inject_for_task L1359
orchestrata_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::TestRefineTaskTypeTiers
tests/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::_node
tests/knowledge_graph/context_pack/test_relevance.py::test_core_outranks_related_outranks_peripheral_regardless_of_fr003_score
tests/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__ L519
orchestrata_ultimate/knowledge_graph/context_injector inject_for_task L1359
tests/knowledge_graph/context_pack/test_relevance.py::TestContextInjectorIntegration
tests/knowledge_graph/context_pack/test_relevance.py::_node
tests/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 L1359
orchestrata_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::TestRuntimeSignalRelevance
tests/knowledge_graph/test_ownership_chain_tabling.py::_chains_for
tests/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_tabled
tests/governance/test_tabling_safety.py::test_no_self_negated_predicate_is_tabled