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 |