Orchestrata Ultimate / RTM / 109-rename-engine

RTM: 109-rename-engine

Requirement to symbol to test rows for 109-rename-engine: Deterministic LSP-Grade Rename Engine.

At a glance

Item Value
Requirement IDs 62
Traced from src/ 0 (0.0%)
Untraced 62
Cited from tests/ 0 (0.0%)
Traced in src/ but not cited from tests/ 0

Reading this matrix

This matrix lists each of the 62 requirement IDs of spec 109-rename-engine with the src/ symbols that cite it and the tests that cite it. 0 of them (0.0%) have at least one citing symbol and 62 have none.

0 requirements are also cited from tests/, and 0 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-109-* (62).

Requirement to symbols to tests

Requirement Symbols in src/ Tests citing it
REQ-109-012 The engine SHALL textDocument/didOpen the defining document before prepareRename none none
REQ-109-013 A null prepareRename result SHALL refuse the rename rather than proceed none none
REQ-109-014 The engine SHALL normalize both changes and documentChanges WorkspaceEdit shapes none none
REQ-109-015 A rename target SHALL be resolved by defining module plus symbol name none none
REQ-109-016 A same-named symbol defined in a different module SHALL never be edited none none
REQ-109-009 The engine SHALL verify the langserver resolves the target module to the same on-disk... none none
REQ-109-010 The engine SHALL abort with UNRESOLVED_IMPORTS when an analyzed file's import of the... none none
REQ-109-011 The engine SHALL abort when cross-file candidates exist but the WorkspaceEdit contains... none none
REQ-109-017 An independent occurrence scan SHALL produce the candidate set none none
REQ-109-018 Every candidate absent from the plan SHALL be assigned exactly one residue reason none none
REQ-109-019 Classification SHALL distinguish string literals, docstrings, comments, other-symbol... none none
REQ-109-020 A resolvable code reference absent from the plan SHALL be classified UNRESOLVED and... none none
REQ-109-021 The residue report SHALL be machine-readable with path, line, column, text, reason,... none none
REQ-109-036 Dry run SHALL be the default; writing SHALL require explicit opt-in none none
REQ-109-022 The engine SHALL move the file with git mv, recording any filesystem-move fallback none none
REQ-109-023 The engine SHALL rewrite every absolute import of the old dotted path none none
REQ-109-024 The engine SHALL rewrite string literals that provably denote the moved module none none
REQ-109-025 The engine SHALL refuse partial, concatenated, f-string, or multiply-matching literals none none
REQ-109-026 A module move SHALL be atomic — all edits land or none do none none
REQ-109-027 A string rename SHALL rewrite only whole-token literal matches under the declared kind none none
REQ-109-028 keep_patterns globs SHALL exclude files from all string rewriting none none
REQ-109-029 A non-provable occurrence SHALL be emitted as residue, never rewritten none none
REQ-109-030 The engine SHALL load and validate a plan from TOML or JSON with identical keys none none
REQ-109-031 Each symbols entry SHALL require module, name, and new_name none none
REQ-109-032 Each modules entry SHALL require old and new dotted paths none none
REQ-109-033 Each strings entry SHALL require old, new, and kind none none
REQ-109-034 keep_patterns SHALL be honoured by every layer none none
REQ-109-035 The whole plan SHALL validate before any entry executes, naming the offending entry index none none
REQ-109-037 Execution SHALL snapshot, apply, verify, and restore on failure none none
REQ-109-038 Every touched Python file SHALL parse after applying, else roll back none none
REQ-109-039 The engine SHALL use exit code 0 for clean, 1 for refused/aborted, 2 for internal error none none
REQ-109-040 scripts/rename_engine.py SHALL expose symbol, module, plan, and report subcommands none none
REQ-109-041 Every mutating subcommand SHALL be dry-run unless --apply is passed, and print... none none
REQ-109-042 RefactorRenameTool SHALL conform to the SPEC-072 BaseTool contract with a JSON... none none
REQ-109-043 The tool metadata SHALL set requires_approval=True and category FILE none none
REQ-109-044 execute SHALL never raise; failures become ToolResult(success=False, error=...) none none
REQ-109-001 The transport SHALL encode and decode LSP Content-Length framing over stdio none none
REQ-109-002 The transport SHALL correlate requests to responses by integer id with a per-request... none none
REQ-109-003 The transport SHALL answer server-to-client requests including workspace/configuration none none
REQ-109-004 The client SHALL run the full initialize/initialized/shutdown/exit lifecycle and reap... none none
REQ-109-005 The engine SHALL generate a temporary pyright config root and never mutate the repo's... none none
REQ-109-006 The generated config SHALL use absolute include, exclude, and extraPaths into the real... none none
REQ-109-007 The generated config SHALL set typeCheckingMode: "off" and enable no basedpyright... none none
REQ-109-008 The temporary config root SHALL be removed on shutdown, including on error none none
REQ-109-045 Every component SHALL compose an injected Tracer bound to a TraceConfig rather than... none none
REQ-109-101 A missing basedpyright-langserver SHALL refuse with an install hint and exit 2 none none
REQ-109-102 A langserver that dies mid-session SHALL be reaped, its stderr tail surfaced, with no... none none
REQ-109-103 An LSP request timeout SHALL abort the run and never fall back to name matching none none
REQ-109-104 A null prepareRename SHALL refuse the target and report position and reason none none
REQ-109-105 A target module or symbol that is not found SHALL refuse and list near-miss candidates none none
REQ-109-106 An import-resolution mismatch SHALL abort before writing and name both resolved paths none none
REQ-109-107 Any UNRESOLVED residue SHALL abort the run none none
REQ-109-108 A new name already bound in a target scope SHALL refuse the collision naming file and line none none
REQ-109-109 An ambiguous string literal match SHALL emit residue and not rewrite none none
REQ-109-110 A failed git mv on an untracked path SHALL fall back to a filesystem move and record... none none
REQ-109-111 A post-apply parse failure SHALL roll back every file and exit 1 none none
REQ-109-112 A plan validation failure SHALL refuse before execution naming the entry index none none
REQ-109-201 Every path SHALL be resolved and confined to the declared repo_root before any I/O none none
REQ-109-202 The engine SHALL write only inside repo_root and its own temporary config root none none
REQ-109-203 The engine SHALL not enable basedpyright based-extras nor invoke the pyright console... none none
REQ-109-204 git mv and the langserver SHALL be spawned as argument vectors, never through a shell none none
REQ-109-205 Environment SHALL be read via os.environ.get with defaults, never bare os.environ[...] none none