Refactor — Code Refactoring Suggestions Tool
name: refactor
by bytesagain · published 2026-03-22
$ claw add gh:bytesagain/bytesagain-refactor---
name: refactor
version: "1.0.0"
description: "Analyze code quality and suggest refactoring improvements using static analysis. Use when cleaning up or improving codebases."
author: BytesAgain
homepage: https://bytesagain.com
source: https://github.com/bytesagain/ai-skills
tags: [refactor, code-quality, static-analysis, complexity, clean-code]
---
# Refactor — Code Refactoring Suggestions Tool
Analyze source code for quality issues, measure complexity, detect dead code, and generate actionable refactoring suggestions. Supports rename, extract method/function, inline, and move refactoring patterns. Tracks refactoring history and generates reports. Built for developers who want to systematically improve code quality.
Prerequisites
Data Storage
All refactoring analysis results and history are stored in `~/.refactor/data.jsonl` as newline-delimited JSON. Each record captures the file analyzed, metrics, suggestions, and timestamps.
Configuration is stored in `~/.refactor/config.json`.
Commands
`analyze`
Perform a thorough analysis of a source file or directory. Reports code metrics, potential issues, and refactoring opportunities.
REFACTOR_FILE=./src/main.py bash scripts/script.sh analyze`rename`
Suggest or record a rename refactoring for a symbol (variable, function, class). Tracks old and new names with file locations.
REFACTOR_FILE=./src/main.py REFACTOR_OLD_NAME="getData" REFACTOR_NEW_NAME="fetchUserData" REFACTOR_SYMBOL_TYPE=function bash scripts/script.sh rename`extract`
Suggest extracting a code block into a new function or method. Specify the file, line range, and suggested function name.
REFACTOR_FILE=./src/main.py REFACTOR_START_LINE=45 REFACTOR_END_LINE=62 REFACTOR_NEW_NAME="validateInput" bash scripts/script.sh extract`inline`
Suggest inlining a function, variable, or constant that is used only once or adds unnecessary indirection.
REFACTOR_FILE=./src/utils.py REFACTOR_SYMBOL="tempVar" REFACTOR_SYMBOL_TYPE=variable bash scripts/script.sh inline`move`
Suggest moving a function, class, or block of code to a different file or module for better organization.
REFACTOR_FILE=./src/main.py REFACTOR_SYMBOL="UserValidator" REFACTOR_TARGET="./src/validators.py" bash scripts/script.sh move`dead-code`
Scan for dead code: unused imports, unreachable code blocks, unused variables, and functions never called.
REFACTOR_FILE=./src/ REFACTOR_RECURSIVE=true bash scripts/script.sh dead-code`complexity`
Calculate cyclomatic complexity for functions in a file. Flags functions exceeding the configured threshold.
REFACTOR_FILE=./src/main.py REFACTOR_THRESHOLD=10 bash scripts/script.sh complexity`report`
Generate a thorough refactoring report for a file or project. Includes all metrics, suggestions, and priority rankings.
REFACTOR_FILE=./src/ REFACTOR_FORMAT=text bash scripts/script.sh report`config`
View or update configuration (complexity threshold, ignored patterns, report format, language hints).
REFACTOR_KEY=complexity_threshold REFACTOR_VALUE=15 bash scripts/script.sh config`export`
Export refactoring history and analysis results to JSON or Markdown.
REFACTOR_OUTPUT=/tmp/refactor-report.md REFACTOR_FORMAT=markdown bash scripts/script.sh export`help`
Show usage information and available commands.
bash scripts/script.sh help`version`
Display the current version of the refactor skill.
bash scripts/script.sh versionExamples
# Analyze a Python file
REFACTOR_FILE=./src/app.py bash scripts/script.sh analyze
# Check complexity of all functions
REFACTOR_FILE=./src/app.py REFACTOR_THRESHOLD=8 bash scripts/script.sh complexity
# Find dead code in a directory
REFACTOR_FILE=./src/ REFACTOR_RECURSIVE=true bash scripts/script.sh dead-code
# Generate a full report
REFACTOR_FILE=./src/ REFACTOR_FORMAT=text bash scripts/script.sh reportMetrics Calculated
Supported Languages
Primary support for Python. Basic line-counting and structural analysis for JavaScript, TypeScript, Go, Java, and shell scripts.
Notes
---
Powered by BytesAgain | bytesagain.com | hello@bytesagain.com
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...