Files
gh-jeremylongshore-claude-c…/commands/analyze.md
2025-11-30 08:20:25 +08:00

3.5 KiB
Raw Blame History

description
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