From ontoindex
Renames, extracts, splits, moves, or restructures code safely using graph-aware impact analysis and automated rename tools. Covers checklists for each refactoring type.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ontoindex:ontoindex-refactoringThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
- "Rename this function safely"
1. ontoindex_impact({target: "X", direction: "upstream"}) → Map all dependents
2. ontoindex_query({query: "X"}) → Find execution flows involving X
3. ontoindex_context({name: "X"}) → See all incoming/outgoing refs
4. Plan update order: interfaces → implementations → callers → tests
If "Index is stale" → run
npx ontoindex analyzein terminal.
- [ ] ontoindex_rename({symbol_name: "oldName", new_name: "newName", dry_run: true}) — preview all edits
- [ ] Review graph edits (high confidence) and ast_search edits (review carefully)
- [ ] If satisfied: ontoindex_rename({..., dry_run: false}) — apply edits
- [ ] ontoindex_detect_changes() — verify only expected files changed
- [ ] Run tests for affected processes
- [ ] ontoindex_context({name: target}) — see all incoming/outgoing refs
- [ ] ontoindex_impact({target, direction: "upstream"}) — find all external callers
- [ ] Define new module interface
- [ ] Extract code, update imports
- [ ] ontoindex_detect_changes() — verify affected scope
- [ ] Run tests for affected processes
- [ ] ontoindex_context({name: target}) — understand all callees
- [ ] Group callees by responsibility
- [ ] ontoindex_impact({target, direction: "upstream"}) — map callers to update
- [ ] Create new functions/services
- [ ] Update callers
- [ ] ontoindex_detect_changes() — verify affected scope
- [ ] Run tests for affected processes
ontoindex_rename — automated multi-file rename:
ontoindex_rename({symbol_name: "validateUser", new_name: "authenticateUser", dry_run: true})
→ 12 edits across 8 files
→ 10 graph edits (high confidence), 2 ast_search edits (review)
→ Changes: [{file_path, edits: [{line, old_text, new_text, confidence}]}]
ontoindex_impact — map all dependents first:
ontoindex_impact({target: "validateUser", direction: "upstream"})
→ d=1: loginHandler, apiMiddleware, testUtils
→ Affected Processes: LoginFlow, TokenRefresh
ontoindex_detect_changes — verify your changes after refactoring:
ontoindex_detect_changes({scope: "all"})
→ Changed: 8 files, 12 symbols
→ Affected processes: LoginFlow, TokenRefresh
→ Risk: MEDIUM
ontoindex_cypher — custom reference queries:
MATCH (caller)-[:CodeRelation {type: 'CALLS'}]->(f:Function {name: "validateUser"})
RETURN caller.name, caller.filePath ORDER BY caller.filePath
| Risk Factor | Mitigation |
|---|---|
| Many callers (>5) | Use ontoindex_rename for automated updates |
| Cross-area refs | Use detect_changes after to verify scope |
| String/dynamic refs | ontoindex_query to find them |
| External/public API | Version and deprecate properly |
validateUser to authenticateUser1. ontoindex_rename({symbol_name: "validateUser", new_name: "authenticateUser", dry_run: true})
→ 12 edits: 10 graph (safe), 2 ast_search (review)
→ Files: validator.ts, login.ts, middleware.ts, config.json...
2. Review ast_search edits (config.json: dynamic reference!)
3. ontoindex_rename({symbol_name: "validateUser", new_name: "authenticateUser", dry_run: false})
→ Applied 12 edits across 8 files
4. ontoindex_detect_changes({scope: "all"})
→ Affected: LoginFlow, TokenRefresh
→ Risk: MEDIUM — run tests for these flows
npx claudepluginhub ontograph/ontoindex --plugin ontoindexSafely refactors code by renaming symbols, extracting modules, splitting functions/services using GitNexus tools for impact analysis, dry-run previews, and change detection.
Safe refactoring workflow using trace-mcp — assess risk, find candidates, check impact, and rename symbols across all files without missing import sites or cross-file references.
Performs safe refactoring: extract functions/components/hooks/modules/classes, rename/move/restructure symbols/files, inline code, detect dead code/smells using test-driven methods.