Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:20:25 +08:00
commit e9e626f65a
17 changed files with 1063 additions and 0 deletions

129
commands/analyze.md Normal file
View 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