Files
2025-11-30 08:20:25 +08:00

130 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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