Initial commit
This commit is contained in:
129
commands/analyze.md
Normal file
129
commands/analyze.md
Normal file
@@ -0,0 +1,129 @@
|
||||
---
|
||||
description: Trigger full repository health analysis
|
||||
---
|
||||
|
||||
# Repository Health Analysis
|
||||
|
||||
Analyze the code health of a repository using multi-dimensional metrics.
|
||||
|
||||
## Instructions
|
||||
|
||||
When the user requests a repository health analysis, follow this systematic approach:
|
||||
|
||||
1. **List Files**: Use `list_repo_files` to discover all source files
|
||||
2. **Analyze Complexity**: Use `file_metrics` on key files to assess complexity
|
||||
3. **Check Git Churn**: Use `git_churn` to identify frequently changing files
|
||||
4. **Map Test Coverage**: Use `map_tests` to find files missing tests
|
||||
5. **Generate Report**: Combine all metrics into actionable recommendations
|
||||
|
||||
## Analysis Workflow
|
||||
|
||||
### Step 1: File Discovery
|
||||
```
|
||||
Use list_repo_files with appropriate globs for the language:
|
||||
- TypeScript/JavaScript: ["**/*.{ts,tsx,js,jsx}"]
|
||||
- Python: ["**/*.py"]
|
||||
- Go: ["**/*.go"]
|
||||
- Multi-language: Combine patterns
|
||||
|
||||
Exclude: ["node_modules/**", ".git/**", "dist/**", "build/**"]
|
||||
```
|
||||
|
||||
### Step 2: Complexity Analysis
|
||||
Focus on:
|
||||
- Files > 300 lines
|
||||
- Core business logic files (services, controllers, models)
|
||||
- Recently changed files
|
||||
|
||||
For each file, report:
|
||||
- Cyclomatic complexity
|
||||
- Function count
|
||||
- Health score
|
||||
- Comment ratio
|
||||
|
||||
### Step 3: Git Churn Analysis
|
||||
Identify hot spots:
|
||||
- Files with >10 commits (high churn)
|
||||
- Files changed by multiple authors
|
||||
- Recent change patterns
|
||||
|
||||
### Step 4: Test Coverage Mapping
|
||||
Find gaps:
|
||||
- Files in critical directories missing tests
|
||||
- High-complexity files without tests
|
||||
- High-churn files without tests
|
||||
|
||||
### Step 5: Prioritized Recommendations
|
||||
Combine metrics to find:
|
||||
- **Technical Debt Hot Spots**: High complexity + High churn + No tests
|
||||
- **Refactoring Candidates**: Complexity >10 + Health score <50
|
||||
- **Testing Priorities**: Critical files missing tests
|
||||
|
||||
## Output Format
|
||||
|
||||
Present findings in this structure:
|
||||
|
||||
### Repository Overview
|
||||
- Total files: X
|
||||
- Average health score: Y
|
||||
- Test coverage: Z%
|
||||
|
||||
### Critical Issues
|
||||
1. High complexity + High churn + No tests
|
||||
2. Health score <30 (critical)
|
||||
|
||||
### ️ Warnings
|
||||
1. Health score 30-70 (needs attention)
|
||||
2. Test coverage <60%
|
||||
|
||||
### Good Practices
|
||||
1. Well-tested files (high complexity + has tests)
|
||||
2. Stable code (low churn + good health)
|
||||
|
||||
### Recommendations
|
||||
Prioritized list of actions:
|
||||
1. Add tests for critical files
|
||||
2. Refactor high-complexity hot spots
|
||||
3. Monitor high-churn files
|
||||
|
||||
## Example Usage
|
||||
|
||||
User: "Analyze the health of /home/user/my-project"
|
||||
|
||||
Response:
|
||||
```
|
||||
I'll analyze the code health of your project using multiple dimensions...
|
||||
|
||||
[Use list_repo_files on /home/user/my-project]
|
||||
Found 245 source files (TypeScript/JavaScript)
|
||||
|
||||
[Use file_metrics on top files]
|
||||
Critical complexity issues:
|
||||
- src/services/auth.ts: Complexity 45, Health 30
|
||||
- src/api/handler.ts: Complexity 28, Health 65 ️
|
||||
|
||||
[Use git_churn on /home/user/my-project since "6 months ago"]
|
||||
High churn files:
|
||||
- src/api/handler.ts: 32 commits, 4 authors
|
||||
- src/services/auth.ts: 18 commits, 2 authors
|
||||
|
||||
[Use map_tests on /home/user/my-project]
|
||||
Test coverage: 62% (97 of 156 files tested)
|
||||
Missing tests: 59 files
|
||||
|
||||
Critical files without tests:
|
||||
- src/services/auth.ts (high complexity + high churn)
|
||||
- src/api/legacy.ts (high complexity)
|
||||
|
||||
## Recommendations:
|
||||
1. URGENT: Add tests for src/services/auth.ts (high complexity, high churn, no tests)
|
||||
2. ️ Refactor src/api/handler.ts (complexity 28, reduce to <10)
|
||||
3. Improve test coverage to 80%+ (currently 62%)
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- Always use absolute paths
|
||||
- Adjust time period for git_churn based on project age
|
||||
- For large repos (>500 files), focus on changed files in last 3 months
|
||||
- Combine metrics for maximum insight
|
||||
Reference in New Issue
Block a user