---
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
