Orchestrata Ultimate / RTM / 110-codemod-engine

RTM: 110-codemod-engine

Requirement to symbol to test rows for 110-codemod-engine: In-Memory Code Intelligence Platform.

At a glance

Item Value
Requirement IDs 59
Traced from src/ 43 (72.9%)
Untraced 16
Cited from tests/ 28 (47.5%)
Traced in src/ but not cited from tests/ 17

Reading this matrix

This matrix lists each of the 59 requirement IDs of spec 110-codemod-engine with the src/ symbols that cite it and the tests that cite it. 43 of them (72.9%) have at least one citing symbol and 16 have none.

28 requirements are also cited from tests/, and 17 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-110-* (16).

Requirement to symbols to tests

Requirement Symbols in src/ Tests citing it
REQ-110-001 The CodemodWorkspace.load(root, include, parallel) method SHALL parse every .py... orchestrata_ultimate/refactor/codemod/workspace CodemodWorkspace L243
orchestrata_ultimate/refactor/codemod/workspace _parse_file L182
orchestrata_ultimate/refactor/codemod/workspace load L301
tests/refactor/codemod/test_workspace_load.py::test_load_parses_every_file
REQ-110-002 For every loaded module, module.code.encode('utf-8') SHALL equal the on-disk bytes... orchestrata_ultimate/refactor/codemod/workspace CodemodWorkspace L243
orchestrata_ultimate/refactor/codemod/workspace _parse_file L182
orchestrata_ultimate/refactor/codemod/workspace load L301
tests/refactor/codemod/test_workspace_load.py::test_comment_preservation
tests/refactor/codemod/test_workspace_load.py::test_round_trip_fidelity
tests/refactor/codemod/test_workspace_load.py::test_unparseable_files
REQ-110-003 Loading the full orchestrata-ultimate tree (~2,500 files across src/scripts/tests,... orchestrata_ultimate/refactor/codemod/workspace CodemodWorkspace L243
orchestrata_ultimate/refactor/codemod/workspace load L301
none
REQ-110-004 The workspace.stats() method SHALL report WorkspaceStats with file count, total... orchestrata_ultimate/refactor/codemod/workspace CodemodWorkspace L243
orchestrata_ultimate/refactor/codemod/workspace load L301
orchestrata_ultimate/refactor/codemod/workspace stats L560
tests/refactor/codemod/test_cig_builder_ast.py::TestLazySources
tests/refactor/codemod/test_workspace_load.py::test_memory_guard
REQ-110-005 The workspace SHALL expose modules() (bidirectional mapping of dotted names ↔... none tests/refactor/codemod/test_workspace_index.py::test_dependencies_direct
tests/refactor/codemod/test_workspace_index.py::test_dependents_reverse
tests/refactor/codemod/test_workspace_index.py::test_modules_bidirectional
REQ-110-006 The index SHALL update incrementally when a pass mutates imports. The... none none
REQ-110-007 The symbol_table() method SHALL map top-level defined names (classes, functions,... none tests/refactor/codemod/test_workspace_index.py::test_symbol_table
REQ-110-008 A transform pass SHALL be a class implementing `TransformPass.apply(workspace) ->... orchestrata_ultimate/refactor/codemod/workspace run L565 none
REQ-110-009 Passes SHALL compose: workspace.run(passes: list[TransformPass]) SHALL apply them in... orchestrata_ultimate/refactor/codemod/workspace run L565 none
REQ-110-010 The engine SHALL ship 5 built-in transform passes: orchestrata_ultimate/refactor/codemod/passes AddImportPass L469
orchestrata_ultimate/refactor/codemod/passes DocstringSweepPass L877
orchestrata_ultimate/refactor/codemod/passes RemoveUnusedImportPass L665
+7 more
tests/refactor/codemod/test_docstring_sweep_scope.py::test_a_legitimate_escape_in_a_replacement_is_applied
tests/refactor/codemod/test_docstring_sweep_scope.py::test_a_module_of_only_code_strings_is_left_alone
tests/refactor/codemod/test_docstring_sweep_scope.py::test_a_no_op_sweep_over_the_tools_tree_produces_no_entries
+27 more
REQ-110-011 A transform pass SHALL NOT write to disk. The API SHALL give passes no file handles.... orchestrata_ultimate/refactor/codemod/passes TransformPass L49 none
REQ-110-012 A review pass SHALL be a class implementing `ReviewPass.review(workspace, changes) ->... orchestrata_ultimate/refactor/codemod/review BannedConstructs L190
orchestrata_ultimate/refactor/codemod/review DiffBudget L282
orchestrata_ultimate/refactor/codemod/review ParseIntegrity L151
+1 more
none
REQ-110-013 The workspace.commit(reviews=[...]) method SHALL run reviews FIRST. Any Finding... orchestrata_ultimate/refactor/codemod/workspace commit L642 tests/refactor/codemod/test_observability.py::test_commit_abort_emits_review_events_but_not_commit_events
REQ-110-014 The commit() method SHALL write only mutated modules. Each file SHALL be written... orchestrata_ultimate/refactor/codemod/txn CommitVerificationError L30
orchestrata_ultimate/refactor/codemod/txn _FileSnapshot L89
orchestrata_ultimate/refactor/codemod/txn _batch_fsync L390
+6 more
tests/refactor/codemod/test_transactional_writeback.py::test_a_raising_event_sink_never_masks_the_commit_failure
tests/refactor/codemod/test_transactional_writeback.py::test_atomic_write
tests/refactor/codemod/test_transactional_writeback.py::test_commit_preserves_setuid_and_setgid_bits
+10 more
REQ-110-015 The commit() method SHALL refuse to run if any target file's on-disk mtime or... orchestrata_ultimate/refactor/codemod/txn ConcurrentEditError L40
orchestrata_ultimate/refactor/codemod/txn FileLockError L70
orchestrata_ultimate/refactor/codemod/txn SymlinkAttackError L59
+4 more
tests/refactor/codemod/test_transactional_writeback.py::test_advisory_lock
tests/refactor/codemod/test_transactional_writeback.py::test_commit_refuses_a_target_already_deleted_when_commit_starts
tests/refactor/codemod/test_transactional_writeback.py::test_commit_refuses_a_target_deleted_during_the_first_write
+4 more
REQ-110-016 A commit(dry_run=True) SHALL produce the full unified diff and the review report... orchestrata_ultimate/refactor/codemod/txn commit_changes L114
orchestrata_ultimate/refactor/codemod/workspace commit L642
tests/refactor/codemod/test_transactional_writeback.py::test_dry_run
REQ-110-017 Every commit SHALL emit a machine-readable CommitReport (JSON): passes run, files... orchestrata_ultimate/refactor/codemod/workspace commit L642 tests/refactor/codemod/test_transactional_writeback.py::test_machine_readable_report
REQ-110-018 The scripts/codemod.py CLI SHALL provide subcommands: none none
REQ-110-019 Exit codes SHALL be: 0 success/clean-dry-run, 1 review-abort or verification failure,... none none
REQ-110-020 RenameSymbolPass SHALL consume WorkspaceEditPlan from... orchestrata_ultimate/refactor/codemod/passes RenameSymbolPass L938
orchestrata_ultimate/refactor/codemod/passes _apply_edits L1009
orchestrata_ultimate/refactor/codemod/passes apply L967
none
REQ-110-021 Write-back SHALL reuse the applier's safety invariants. If code reuse of EditApplier... orchestrata_ultimate/refactor/codemod/passes RenameSymbolPass L938
orchestrata_ultimate/refactor/codemod/txn PathEscapeError L79
orchestrata_ultimate/refactor/codemod/txn _check_concurrent_edits L220
+3 more
none
REQ-110-022 The CodeIntelligenceGraph SHALL be built from the CST forest by _cig_builder.py.... orchestrata_ultimate/refactor/codemod/_cig CodeIntelligenceGraph L25 tests/refactor/codemod/test_code_intelligence_graph.py::TestCIGEdges
tests/refactor/codemod/test_code_intelligence_graph.py::TestCIGNodes
REQ-110-023 The CIG SHALL support multihop queries: orchestrata_ultimate/refactor/codemod/_cig CodeIntelligenceGraph L25
orchestrata_ultimate/refactor/codemod/_cig _brandes L417
orchestrata_ultimate/refactor/codemod/_cig _compute_pagerank L485
+12 more
tests/refactor/codemod/test_code_intelligence_graph.py::TestCIGAbstractionLevel
tests/refactor/codemod/test_code_intelligence_graph.py::TestCIGAffectedTests
tests/refactor/codemod/test_code_intelligence_graph.py::TestCIGBlastRadius
+9 more
REQ-110-024 All CIG queries SHALL execute in <2ms for the target codebase (2,500 files, ~15,000... orchestrata_ultimate/refactor/codemod/_cig CodeIntelligenceGraph L25 tests/refactor/codemod/test_code_intelligence_graph.py::TestCIGQueryPerformance
tests/refactor/codemod/test_code_intelligence_graph.py::test_dependencies_performance
tests/refactor/codemod/test_code_intelligence_graph.py::test_query_performance
REQ-110-025 The workspace SHALL compose a SyncObservable[CodemodEvent] and emit events for all... orchestrata_ultimate/refactor/codemod/observability/events CodemodEventType L13
orchestrata_ultimate/refactor/codemod/txn commit_changes L114
orchestrata_ultimate/refactor/codemod/workspace _Operation L102
+4 more
tests/refactor/codemod/test_observability.py::TestWorkspaceCommitObserverComposition
tests/refactor/codemod/test_observability.py::TestWorkspaceRunObserverComposition
tests/refactor/codemod/test_observability_wiring.py::TestCommitEvents
+3 more
REQ-110-026 The engine SHALL ship 5 built-in observers: orchestrata_ultimate/refactor/codemod/observability/debug_panel DebugPanelObserver L21
orchestrata_ultimate/refactor/codemod/observability/error_detector ErrorDetector L60
orchestrata_ultimate/refactor/codemod/observability/graph_writer GraphWriterObserver L29
+3 more
tests/refactor/codemod/test_observability.py::test_default_observer_set_is_empty
tests/scripts/test_codemod_cli.py::test_run_observe_apply_attaches_the_five_observers
REQ-110-027 All observers SHALL be optional and configurable. The workspace.run() and... orchestrata_ultimate/refactor/codemod/workspace _Operation L102
orchestrata_ultimate/refactor/codemod/workspace _compose_observable L83
orchestrata_ultimate/refactor/codemod/workspace commit L642
+2 more
tests/refactor/codemod/test_observability.py::TestWorkspaceCommitObserverComposition
tests/refactor/codemod/test_observability.py::TestWorkspaceRunObserverComposition
tests/refactor/codemod/test_observability.py::test_default_observer_set_is_empty
+5 more
REQ-110-028 The CodemodGraphRepository Protocol SHALL define methods: save_run(),... orchestrata_ultimate/refactor/codemod/observability/graph_writer GraphWriterObserver L29
orchestrata_ultimate/refactor/codemod/persistence/repository CodemodGraphRepository L22
none
REQ-110-029 The BoltSyncCodemodRepository SHALL implement the Protocol using... orchestrata_ultimate/refactor/codemod/persistence/repository BoltSyncCodemodRepository L42
orchestrata_ultimate/refactor/codemod/persistence/repository InMemoryCodemodRepository L255
orchestrata_ultimate/refactor/codemod/persistence/repository save_changes L155
+3 more
none
REQ-110-030 The ontology SHALL extend canonical_schema.py with new labels (CodemodRun,... none none
REQ-110-031 The engine SHALL ship analysis passes that compute code intelligence metrics from the... orchestrata_ultimate/refactor/codemod/_types ComplexityReport L113
orchestrata_ultimate/refactor/codemod/_types DeadCodeReport L142
orchestrata_ultimate/refactor/codemod/_types FunctionComplexity L100
+39 more
tests/refactor/codemod/analysis/test_abstraction.py::test_abstraction_counts_protocol_against_concrete
tests/refactor/codemod/analysis/test_abstraction.py::test_abstraction_of_a_module_without_classes_is_zero
tests/refactor/codemod/analysis/test_abstraction.py::test_abstraction_requires_a_known_target
+45 more
REQ-110-032 Analysis passes SHALL be read-only (no mutations) and SHALL return structured results... orchestrata_ultimate/refactor/codemod/_types ComplexityReport L113
orchestrata_ultimate/refactor/codemod/_types DeadCodeReport L142
orchestrata_ultimate/refactor/codemod/_types FunctionComplexity L100
+26 more
tests/refactor/codemod/analysis/test_encode.py::test_dataclass_with_frozensets_encodes_to_sorted_lists
tests/refactor/codemod/analysis/test_encode.py::test_list_results_carry_the_list_type
tests/refactor/codemod/analysis/test_encode.py::test_literal_defaults_round_trip
+6 more
REQ-110-033 The InMemoryReviewEngine SHALL execute 40 checks on the mutated CST forest,... orchestrata_ultimate/refactor/codemod/review_catalogue CheckCategory L34
orchestrata_ultimate/refactor/codemod/review_catalogue CheckDescriptor L47
orchestrata_ultimate/refactor/codemod/review_catalogue CheckRegistry L345
+53 more
tests/refactor/codemod/test_review_catalogue.py::test_a_small_registry_runs_each_owner_once_in_its_phase
tests/refactor/codemod/test_review_catalogue.py::test_default_substrates_match_the_contract
tests/refactor/codemod/test_review_catalogue.py::test_registry_rejects_a_duplicate_id
+65 more
REQ-110-034 All 40 checks SHALL operate on the engine's in-memory lossless layer: the ctok token... orchestrata_ultimate/refactor/codemod/review_catalogue ReviewCheck L75
orchestrata_ultimate/refactor/codemod/review_checks BannedLibraryCheck L579
orchestrata_ultimate/refactor/codemod/review_checks BroadRaiseCheck L618
+31 more
tests/refactor/codemod/test_review_checks.py::test_absolute_include_root_still_reports_a_missing_in_scope_module
tests/refactor/codemod/test_review_checks.py::test_blank_view_hides_literals_and_comments_but_keeps_geometry
tests/refactor/codemod/test_review_checks.py::test_error_handling_reports_bare_except_and_swallowed_exceptions
+25 more
REQ-110-035 The InMemoryReviewEngine SHALL execute checks in three phases: fast structural... orchestrata_ultimate/refactor/codemod/review_catalogue CheckDescriptor L47
orchestrata_ultimate/refactor/codemod/review_catalogue CheckRegistry L345
orchestrata_ultimate/refactor/codemod/review_catalogue checks_for_phase L405
+14 more
tests/refactor/codemod/test_review_catalogue.py::test_a_small_registry_runs_each_owner_once_in_its_phase
tests/refactor/codemod/test_review_catalogue.py::test_checks_for_phase_returns_each_implementation_in_its_owners_phase
tests/refactor/codemod/test_review_catalogue.py::test_tst_110_021_catalogue_has_forty_checks_in_seven_categories
+25 more
REQ-110-133 The engine SHALL be deployed as a long-running daemon process that keeps the workspace... orchestrata_ultimate/refactor/codemod/daemon CodemodDaemon L41 none
REQ-110-134 The daemon SHALL create a Unix socket at .codemod_daemon/socket in the repo root,... orchestrata_ultimate/refactor/codemod/daemon CodemodDaemon L41
orchestrata_ultimate/refactor/codemod/daemon _acquire_lock L483
orchestrata_ultimate/refactor/codemod/daemon _read_pid L465
+7 more
tests/refactor/codemod/test_daemon_lifecycle.py::test_concurrent_starts_launch_the_unit_once_and_refuse_the_other
tests/refactor/codemod/test_daemon_lifecycle.py::test_start_creates_daemon_dir
tests/refactor/codemod/test_daemon_lifecycle.py::test_start_discards_a_pid_file_naming_an_unrelated_process
+6 more
REQ-110-135 The daemon SHALL support lifecycle management via `codemod daemon... orchestrata_ultimate/refactor/codemod/daemon CodemodDaemon L41
orchestrata_ultimate/refactor/codemod/daemon _cleanup_files L505
orchestrata_ultimate/refactor/codemod/daemon _pid_is_codemod_daemon L516
+14 more
tests/refactor/codemod/test_daemon_coverage.py::TestCleanupFilesErrorHandling
tests/refactor/codemod/test_daemon_coverage.py::TestProcessAliveNonChildZombie
tests/refactor/codemod/test_daemon_coverage.py::TestSigkillEscalation
+26 more
REQ-110-136 The daemon SHALL watch for file changes using inotify. When a file is modified,... orchestrata_ultimate/refactor/codemod/daemon CodemodDaemon L41
orchestrata_ultimate/refactor/codemod/watcher FileWatcher L53
orchestrata_ultimate/refactor/codemod/watcher _add_watch L143
+4 more
none
REQ-110-137 The daemon SHALL support concurrent clients. Multiple clients MAY connect... orchestrata_ultimate/refactor/codemod/daemon CodemodDaemon L41
orchestrata_ultimate/refactor/codemod/server CodemodServer L136
orchestrata_ultimate/refactor/codemod/server _handle_write L268
+3 more
tests/scripts/test_codemod_cli_daemon.py::test_a_commit_failure_prints_the_same_error_line_in_both_modes
tests/scripts/test_codemod_cli_daemon.py::test_a_disconnect_with_a_pending_run_restores_the_forest
tests/scripts/test_codemod_cli_daemon.py::test_a_dry_run_through_the_daemon_leaves_the_forest_unchanged
+3 more
REQ-110-138 The daemon SHALL expose JSON-RPC methods: query_dependencies, query_dependents,... orchestrata_ultimate/refactor/codemod/client commit L237
orchestrata_ultimate/refactor/codemod/client query_abstraction_level L183
orchestrata_ultimate/refactor/codemod/client query_blast_radius L125
+15 more
none
REQ-110-139 The daemon SHALL provide a Python client library (CodemodClient) that connects to... orchestrata_ultimate/refactor/codemod/client CodemodClient L34
orchestrata_ultimate/refactor/codemod/client _call L287
orchestrata_ultimate/refactor/codemod/client _recv_response L331
+1 more
none
REQ-110-140 The CLI SHALL auto-connect to the daemon if running, or start the daemon if not... orchestrata_ultimate/refactor/codemod/client CodemodClient L34 tests/scripts/test_check_requirement_corpus.py::test_a_prose_mention_does_not_define_an_id
tests/scripts/test_codemod_cli.py::test_auto_start_cli_exits_1_with_the_failed_text_when_the_unit_dies
tests/scripts/test_codemod_cli.py::test_auto_start_daemon_says_so_when_the_unit_starts_but_never_serves
+26 more
REQ-110-101 No mocks, stubs, fakes, monkeypatch, or test skips in tests. Real files in tmp_path,... none none
REQ-110-102 Every public class and method SHALL carry `@traces(spec="110", story="US-110-NNN",... none none
REQ-110-103 The engine SHALL pass all gates: ruff, black, standards, check-deps,... none none
REQ-110-104 No pytest-xdist. Tests SHALL run via the batched executor (scripts/run_tests.py) or... none none
REQ-110-105 New package: src/orchestrata_ultimate/refactor/codemod/ (sibling of... none none
REQ-110-106 The C extension (scripts/_codemod_fast/) SHALL declare `Py_mod_gil =... none none
REQ-110-107 ~~LibCST FT-compatibility: If LibCST 1.8.6's native Rust parser has GIL issues on... none none
REQ-110-108 Coverage ≥90% per file. Measured via `pytest... none none
REQ-110-120 The C tokenizer SHALL produce a lossless byte-span token stream: for every .py file... orchestrata_ultimate/refactor/ctok/token_stream TokenStream L24
orchestrata_ultimate/refactor/ctok/token_stream slice L67
orchestrata_ultimate/refactor/ctok/tokenizer CTokenizer L100
+2 more
tests/refactor/codemod/test_workspace_perf.py::test_parallel_parse
tests/refactor/codemod/test_workspace_perf.py::test_serial_parse
REQ-110-121 The _ctok extension SHALL declare Py_MOD_GIL_NOT_USED; importing it SHALL NOT... orchestrata_ultimate/refactor/ctok/tokenizer CTokenizer L100
orchestrata_ultimate/refactor/ctok/tokenizer tokenize L104
none
REQ-110-122 LosslessModule.code SHALL equal the on-disk bytes at load time (same guarantee as... orchestrata_ultimate/refactor/ctok/lossless_module LosslessModule L26
orchestrata_ultimate/refactor/ctok/lossless_module parse L41
orchestrata_ultimate/refactor/ctok/token_stream TokenStream L24
+1 more
none
REQ-110-123 NodeIndex SHALL map every ast NAME/Attribute/def-name to its exact token... orchestrata_ultimate/refactor/ctok/lossless_module LosslessModule L26
orchestrata_ultimate/refactor/ctok/node_index NodeIndex L105
orchestrata_ultimate/refactor/ctok/node_index NodeSpanError L47
+5 more
none
REQ-110-124 EditBuffer SHALL apply span edits as byte splices; every byte outside an edit span... orchestrata_ultimate/refactor/codemod/review ParseIntegrity L151
orchestrata_ultimate/refactor/ctok/edit_buffer EditBuffer L53
orchestrata_ultimate/refactor/ctok/edit_buffer add L65
+2 more
none
REQ-110-125 CodemodWorkspace.load SHALL build a LosslessModule forest; the engine SHALL import... none none
REQ-110-126 All transform passes and review passes SHALL operate on the ast/token model;... none none
REQ-110-127 Edit safety (Black-derived, assert_equivalent/assert_stable): after any... orchestrata_ultimate/refactor/codemod/passes RenameSymbolPass L938
orchestrata_ultimate/refactor/codemod/passes _apply_edits L1009
orchestrata_ultimate/refactor/codemod/passes apply L967
+3 more
tests/refactor/codemod/test_transform_passes.py::test_rename_changing_more_than_identifier_raises