Install
$ agentstack add skill-nikolai-vysotskyi-trace-mcp-trace-mcp-refactoring ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
trace-mcp — Refactoring Workflow
Use this skill whenever you are about to rename, restructure, extract, or otherwise refactor code in a project indexed by trace-mcp. The goal is to never break cross-file references and never guess at what is affected.
When to Use
- Renaming a class, function, method, variable, or file
- Extracting a function or method
- Restructuring a module or splitting a file
- Changing a function signature
- Any change that touches more than one call site
Refactoring Workflow
1. Assess before touching anything
assess_change_risk({ file_path: "src/foo.ts" })
# or
assess_change_risk({ symbol_id: "" })
This returns the risk level of the target change based on churn, complexity, fan-in/fan-out, and test coverage. Use it to decide whether to proceed, add tests first, or split the change.
2. Find what actually needs refactoring
get_refactor_candidates()
Do not guess. This surfaces high-complexity, high-churn, and anti-pattern-laden symbols that are the real refactor targets.
3. Know what will break
get_change_impact({ symbol_id: "" })
Returns the reverse-dependency graph: every file, symbol, and test that depends on the target. Review this list before editing.
4. Quantify complexity
get_complexity_report({ file_path: "src/foo.ts" })
Gives you a baseline so you can verify the refactor actually reduced complexity.
Renaming a Symbol — MANDATORY Flow
Never rename with Edit and replace_all. It silently misses import sites, re-exports, type references, and cross-file usages.
# 1. Collision detection first
check_rename({ symbol_id: "", target_name: "newName" })
# 2. Apply rename across ALL files (definition + every reference)
apply_rename({ symbol_id: "", new_name: "newName" })
apply_rename updates the definition, imports, re-exports, call sites, JSX usages, and tests in one atomic operation.
Extracting a Function
extract_function({
file_path: "src/foo.ts",
start_line: 42,
end_line: 67,
new_name: "computeTotals"
})
Let trace-mcp handle the variable capture analysis — manual extraction routinely misses closure variables.
After the Refactor
register_editon each edited file to reindexget_complexity_reportagain to confirm the reductionget_tests_forthe changed symbols — run themcheck_quality_gateswithscope: "changed"to verify no regressions
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: nikolai-vysotskyi
- Source: nikolai-vysotskyi/trace-mcp
- License: MIT
- Homepage: https://trace-mcp.com
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.