{
  "version": "act 1.0.17",
  "slug": "health-check",
  "name": "health-check",
  "description": "Use when asked about code health, quality trends, what's getting worse, or for a periodic quality check. Depth 1 \u2014 fast, trend-aware. Produces a health snapshot with hotspots, cohesion issues, test gaps, and trend comparison if prior runs exist. Replaces the codebase-analysis skill.",
  "url": "https://act101.ai/docs/skills/health-check",
  "body_md": "# Health Check\n\n**Depth:** Level 1 (Explore).\n\nSee `../analysis-protocol/references/protocol.md` for: artifact directory structure,\nthe investigation loop, depth levels, summary format, token budget rules, and project\nmap structure. Read that document before proceeding.\n\n## Phase 1: Parallel Tool Dispatch\n\nDispatch all available tools in a **single parallel batch**.\nEach subagent runs one tool, saves raw JSON to `raw/<tool-name>.json`, returns a\nstructured summary.\n\n**Must-have tools:**\n\n| Tool | Purpose | MCP call |\n|------|---------|----------|\n| `analyze_hotspots` | Complexity ranking (H1) | `analyze_hotspots` |\n| `analyze_patterns` | Tier 1 structural smells | `analyze_patterns` (use `--tier fast`) |\n\nIf neither must-have tool is available, report that and stop.\n\n**Extended tools (use if available, skip and note in manifest if not):**\n\n| Tool | Purpose | MCP call |\n|------|---------|----------|\n| `analyze_coupling` | Instability overview | `analyze_coupling` |\n| `analyze_cohesion` | Module cohesion (H2) | `analyze_cohesion` |\n| `analyze_test_gaps` | Test coverage gaps (R5) | `analyze_test_gaps` |\n| `analyze_inconsistencies` | Sibling pattern divergence (H5) | `analyze_inconsistencies` |\n\n## Phase 2: Follow-up (Explore depth)\n\nFrom summaries, identify the top 3-5 findings and run one targeted follow-up each:\n\n- For each top hotspot: run `skeleton` to characterize what's wrong\n- For untested high-coupling files: note the compound risk (untested + high blast radius)\n\nKeep follow-ups to one round \u2014 this is a health check, not a full audit.\n\n## Trend Comparison\n\nCheck `docs/act/` for a prior Health Check run: look for a `manifest.json` with\n`\"skill\": \"health-check\"`. If found:\n\n1. Load the most recent prior run's `raw/hotspots.json` and `raw/coupling.json`\n2. Report deltas:\n   - New hotspots since last run (files that appeared or moved up)\n   - Resolved hotspots (files that disappeared or moved down)\n   - Coupling changes (improving = lower instability, degrading = higher)\n   - Test coverage trend (if `raw/test_gaps.json` exists in both runs)\n\nVerdict must reflect the trend: **Improving** / **Stable** / **Degrading**.\n\n## Report Structure\n\n```markdown\n# Health Check: <project name>\n\n## Health Summary\nVerdict: **Improving** / **Stable** / **Degrading**.\nOne-paragraph assessment.\n\n## Top Hotspots\nRanked list with skeleton context from follow-up. Severity and recommended fix.\nPer-hotspot: file path, complexity score, what skeleton revealed, recommended action.\n\n## Cohesion Issues\nLow-cohesion modules with split recommendations.\nPer-issue: module, cohesion score, suggested split boundary.\n\n## Pattern Inconsistencies\nSibling files that diverge from group conventions.\nPer-divergence: what's expected in the group, what's different in this file.\n\n## Test Gaps\nUntested files ranked by risk (coupling \u00d7 blast radius if available, else coupling alone).\nPer-gap: file path, risk factors, suggested test type.\n\n## Trend\n(Present only if prior run data exists)\n| Metric | Previous | Current | Change |\n|--------|----------|---------|--------|\n| Top hotspot score | N | N | \u2191/\u2193/= |\n| Hotspot count (top 10) | N | N | \u2191/\u2193/= |\n| Mean instability | N | N | \u2191/\u2193/= |\n| Test gap count | N | N | \u2191/\u2193/= |\n\nWhat improved, what degraded, what's new since last run.\n\n## Suggested Fixes\nPrioritized list of specific act MCP tool calls or skills to run.\n```\n\n## Project Map Updates\n\nUpdates the **\"Health Snapshot\"** section only. Appends to the Analysis History table."
}