Agentops complexity
Analyze code complexity and find refactor targets using radon/gocyclo. Triggers: "complexity", "analyze complexity", "find complex code", "refactor targets", "cyclomatic complexity", "code metrics".
git clone https://github.com/boshu2/agentops
T=$(mktemp -d) && git clone --depth=1 https://github.com/boshu2/agentops "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills-codex/complexity" ~/.claude/skills/boshu2-agentops-complexity && rm -rf "$T"
skills-codex/complexity/SKILL.mdComplexity Skill
YOU MUST EXECUTE THIS WORKFLOW. Do not just describe it.
Analyze code complexity to identify refactoring targets.
Execution Steps
Given
$complexity [path]:
Step 1: Determine Target
If path provided: Use it directly.
If no path: Use current directory or recent changes:
git diff --name-only HEAD~5 2>/dev/null | grep -E '\.(py|go)$' | head -10
Step 2: Detect Language
# Check for Python files ls *.py **/*.py 2>/dev/null | head -1 && echo "Python detected" # Check for Go files ls *.go **/*.go 2>/dev/null | head -1 && echo "Go detected"
Step 3: Run Complexity Analysis
For Python (using radon):
# Check if radon is installed which radon || pip install radon # Run cyclomatic complexity radon cc <path> -a -s # Run maintainability index radon mi <path> -s
For Go (using gocyclo):
# Check if gocyclo is installed which gocyclo || go install github.com/fzipp/gocyclo/cmd/gocyclo@latest # Run complexity analysis gocyclo -over 10 <path>
Step 4: Interpret Results
Cyclomatic Complexity Grades:
| Grade | CC Score | Meaning |
|---|---|---|
| A | 1-5 | Low risk, simple |
| B | 6-10 | Moderate, manageable |
| C | 11-20 | High risk, complex |
| D | 21-30 | Very high risk |
| F | 31+ | Untestable, refactor now |
Step 5: Identify Refactor Targets
List functions/methods that need attention:
- CC > 10: Should refactor
- CC > 20: Must refactor
- CC > 30: Critical, immediate action
Step 6: Write Complexity Report
Write to:
.agents/complexity/YYYY-MM-DD-<target>.md
# Complexity Report: <Target> **Date:** YYYY-MM-DD **Language:** <Python/Go> **Files Analyzed:** <count> ## Summary - Average CC: <score> - Highest CC: <score> in <function> - Functions over threshold: <count> ## Refactor Targets ### Critical (CC > 20) | Function | File | CC | Recommendation | |----------|------|-----|----------------| | <name> | <file:line> | <score> | <how to simplify> | ### High (CC 11-20) | Function | File | CC | Recommendation | |----------|------|-----|----------------| | <name> | <file:line> | <score> | <how to simplify> | ## Refactoring Recommendations 1. **<Function>**: <specific suggestion> - Extract: <what to extract> - Simplify: <how to simplify> ## Next Steps - [ ] Address critical complexity first - [ ] Create issues for high complexity - [ ] Consider refactoring sprint
Step 7: Report to User
Tell the user:
- Overall complexity summary
- Number of functions over threshold
- Top 3 refactoring targets
- Location of full report
- Run
to address critical complexity targets$refactor <function>
See Also
- refactor — Safe, verified refactoring for complexity targets
Key Rules
- Use the right tool - radon for Python, gocyclo for Go
- Focus on high CC - prioritize 10+
- Provide specific fixes - not just "refactor this"
- Write the report - always produce artifact
Quick Reference
Simplifying High Complexity:
- Extract helper functions
- Replace conditionals with polymorphism
- Use early returns
- Break up long functions
- Simplify nested loops
Examples
Analyzing Python Project
User says:
$complexity src/
What happens:
- Agent detects Python files in
directorysrc/ - Agent checks for radon installation, installs if missing
- Agent runs
for cyclomatic complexityradon cc src/ -a -s - Agent runs
for maintainability indexradon mi src/ -s - Agent identifies 3 functions with CC > 20, 7 functions with CC 11-20
- Agent writes detailed report to
.agents/complexity/2026-02-13-src.md - Agent recommends extracting nested conditionals in
functionprocess_request()
Result: Complexity report identifies
process_request() (CC: 28) as critical refactor target with specific extraction recommendations.
Finding Refactor Targets in Go Module
User says:
$complexity
What happens:
- Agent checks recent changes with
git diff --name-only HEAD~5 - Agent detects Go files, verifies gocyclo installation
- Agent runs
on projectgocyclo -over 10 ./... - Agent finds
function with complexity 34HandleWebhook() - Agent writes report with recommendation to extract validation logic
- Agent reports top 3 targets: HandleWebhook (34), ProcessBatch (22), ValidateInput (15)
Result: Critical function identified for immediate refactoring with actionable extraction plan.
Troubleshooting
| Problem | Cause | Solution |
|---|---|---|
| Tool not installed (radon/gocyclo) | Missing dependency | Agent auto-installs: for Python or for Go. Verify install path in $PATH. |
| No complexity issues found | Threshold too high or genuinely simple code | Lower threshold: try or check if path includes actual implementation files vs tests. |
| Report shows functions without recommendations | Generic analysis without codebase context | Read the high-CC functions to understand structure, then provide specific refactoring suggestions based on actual code patterns. |
| Mixed language project | Multiple languages in target path | Run analysis separately per language: then , combine reports manually. |
Local Resources
scripts/
scripts/validate.sh