/nw-hotspot
Git change frequency hotspot analysis — find the most-changed files in your codebase
Claude Code
$ npx -y skills add nWave-ai/nWave --skill nw-hotspot --agent claude-code
Codex
$ npx skills add nWave-ai/nWave --skill nw-hotspot -a codex -y
Cursor
$ npx skills add nWave-ai/nWave --skill nw-hotspot -a cursor -y
Gemini CLI
$ npx skills add nWave-ai/nWave --skill nw-hotspot -a gemini-cli -y
GitHub Copilot
$ npx skills add nWave-ai/nWave --skill nw-hotspot -a github-copilot -y
OpenCode
$ npx skills add nWave-ai/nWave --skill nw-hotspot -a opencode -y
Windsurf
$ npx skills add nWave-ai/nWave --skill nw-hotspot -a windsurf -y
SKILL.md
nw-hotspot.SKILL.mdname: nw-hotspot
description: "Git change frequency hotspot analysis — find the most-changed files in your codebase"
user-invocable: true
argument-hint: '[--top=N] [--since=6m] [--json] [--rank report.md] [--detail file]'
NW-HOTSPOT: Code Crime Scene Hotspot Lens
**Wave**: CROSS_WAVE **Execution**: Inline (no agent — Claude executes git commands directly) **Inspiration**: Adam Tornhill's "Your Code as a Crime Scene"
Overview
Analyze git change frequency to identify the most-changed files in a codebase. Pure git churn — no complexity metrics. Use as a **pre-filter** to scope analysis or a **post-filter** to prioritize existing findings.
How It Works
Run `git log --name-only` over the configured time period, count commits per file, rank by frequency.
Modes
1. Analyze (default)
Show the most-changed files in the repo. Output is inline only — no files persisted.
/nw-hotspot
/nw-hotspot --top=20
/nw-hotspot --since=12m
**Steps:** 1. Run: `git log --since={since} --format=format: --name-only | sort | uniq -c | sort -rn` 2. Exclude deleted files (verify each file still exists with `test -f`) 3. For each file, get last changed date: `git log -1 --format="%ar" -- {file}` 4. Display ranked table (top N):
Rank │ Commits │ Last Changed │ File
──────┼─────────┼──────────────┼─────────────────────────
1 │ 87 │ 2 days ago │ src/services/payment.ts
2 │ 64 │ 1 week ago │ src/api/controllers/user.ts
3 │ 51 │ 3 days ago │ src/models/order.ts5. Show summary: total files changed in period, time period, top N shown
**Defaults:** `--top`: 15, `--since`: 6 months
2. Rank (post-filter)
Overlay churn data on an existing analysis report to prioritize findings.
/nw-hotspot --rank code-smell-detector-report.md
**Steps:** 1. Run the same git churn analysis 2. Read the specified report file 3. Extract file paths mentioned in the report 4. Annotate each file with its commit count 5. Re-sort findings by churn (highest first). Findings without extractable file paths go at the bottom. 6. Show noise reduction: "X of Y findings are in low-churn files (< 20 commits)"
3. Detail (deep-dive)
Deep-dive into a single file's change history.
/nw-hotspot --detail src/services/payment.ts
**Steps:** 1. Monthly commit breakdown over the period 2. Top contributors to the file 3. Co-change coupling: top 5 files that frequently change alongside this one 4. Last 10 commit messages for context
4. JSON export (pre-filter composition)
/nw-hotspot --top=10 --json
Output: `[{"path": "src/services/payment.ts", "commits": 87, "last_changed": "2 days ago"}, ...]`
Parameters
| Flag | Default | Description | |------|---------|-------------| | `--top` | 15 | Number of files to show | | `--since` | 6m | Time period (e.g., 3m, 12m, 2024-01-01) | | `--json` | false | Output as JSON array | | `--rank` | - | Path to existing report to re-rank by churn | | `--detail` | - | Path to single file for deep-dive |
Edge Cases
- **No commits in period**: Display "No commits found since {date}" rather than an empty table
- **File renames**: Counted as separate files (no `--follow`; keeps it simple and fast)
- **Empty repo / not a git repo**: Display error and exit
Usage from Other Skills
Pre-filter (scope downstream analysis)
Run `/nw-hotspot --top=10 --json` first, then pass the file list to:
- **code-smell-detector**: "Analyze only these files: {hotspot list}"
- **cognitive-load-analyzer**: "Focus analysis on these files: {hotspot list}"
- **refactoring-expert**: "Prioritize recommendations for these files"
Post-filter (rank existing findings)
Run `/nw-hotspot --rank {report.md}` after any analysis to prioritize by churn.
In nWave workflows
- Before `/nw-refactor` — identify which files to refactor first
- Before `/nw-review` — focus review effort on high-churn areas
- Before `/nw-root-why` — check if the problematic area is a known hotspot
Next Wave
**Usage Context**: Inline utility, composable with any analysis skill **Handoff To**: Invoking context (no sequential handoff)
Examples
Example 1: Quick scan of a legacy codebase
/nw-hotspot
Example 2: Scope a code smell analysis to hotspots
/nw-hotspot --top=10 --json
Example 3: Prioritize an existing refactoring report
/nw-hotspot --rank code-refactoring-report.md
Example 4: Investigate a specific troubled file
/nw-hotspot --detail src/services/payment.ts
Expected Outputs
No persistent files. Output is displayed inline. JSON mode outputs a JSON array for composition with other tools.
Read more
name: nw-hotspot description: "Git change frequency hotspot analysis — find the most-changed files in your codebase" user-invocable: true argument-hint: '[--top=N] [--since=6m] [--json] [--rank report.md] [--detail file]'
NW-HOTSPOT: Code Crime Scene Hotspot Lens
**Wave**: CROSS_WAVE **Execution**: Inline (no agent — Claude executes git commands directly) **Inspiration**: Adam Tornhill's "Your Code as a Crime Scene"
Overview
Analyze git change frequency to identify the most-changed files in a codebase. Pure git churn — no complexity metrics. Use as a **pre-filter** to scope analysis or a **post-filter** to prioritize existing findings.
How It Works
Run `git log --name-only` over the configured time period, count commits per file, rank by frequency.
Modes
1. Analyze (default)
Show the most-changed files in the repo. Output is inline only — no files persisted.
/nw-hotspot /nw-hotspot --top=20 /nw-hotspot --since=12m
**Steps:** 1. Run: `git log --since={since} --format=format: --name-only | sort | uniq -c | sort -rn` 2. Exclude deleted files (verify each file still exists with `test -f`) 3. For each file, get last changed date: `git log -1 --format="%ar" -- {file}` 4. Display ranked table (top N):
Rank │ Commits │ Last Changed │ File
──────┼─────────┼──────────────┼─────────────────────────
1 │ 87 │ 2 days ago │ src/services/payment.ts
2 │ 64 │ 1 week ago │ src/api/controllers/user.ts
3 │ 51 │ 3 days ago │ src/models/order.ts5. Show summary: total files changed in period, time period, top N shown
**Defaults:** `--top`: 15, `--since`: 6 months
2. Rank (post-filter)
Overlay churn data on an existing analysis report to prioritize findings.
/nw-hotspot --rank code-smell-detector-report.md
**Steps:** 1. Run the same git churn analysis 2. Read the specified report file 3. Extract file paths mentioned in the report 4. Annotate each file with its commit count 5. Re-sort findings by churn (highest first). Findings without extractable file paths go at the bottom. 6. Show noise reduction: "X of Y findings are in low-churn files (< 20 commits)"
3. Detail (deep-dive)
Deep-dive into a single file's change history.
/nw-hotspot --detail src/services/payment.ts
**Steps:** 1. Monthly commit breakdown over the period 2. Top contributors to the file 3. Co-change coupling: top 5 files that frequently change alongside this one 4. Last 10 commit messages for context
4. JSON export (pre-filter composition)
/nw-hotspot --top=10 --json
Output: `[{"path": "src/services/payment.ts", "commits": 87, "last_changed": "2 days ago"}, ...]`
Parameters
| Flag | Default | Description | |------|---------|-------------| | `--top` | 15 | Number of files to show | | `--since` | 6m | Time period (e.g., 3m, 12m, 2024-01-01) | | `--json` | false | Output as JSON array | | `--rank` | - | Path to existing report to re-rank by churn | | `--detail` | - | Path to single file for deep-dive |
Edge Cases
- **No commits in period**: Display "No commits found since {date}" rather than an empty table
- **File renames**: Counted as separate files (no `--follow`; keeps it simple and fast)
- **Empty repo / not a git repo**: Display error and exit
Usage from Other Skills
Pre-filter (scope downstream analysis)
Run `/nw-hotspot --top=10 --json` first, then pass the file list to:
- **code-smell-detector**: "Analyze only these files: {hotspot list}"
- **cognitive-load-analyzer**: "Focus analysis on these files: {hotspot list}"
- **refactoring-expert**: "Prioritize recommendations for these files"
Post-filter (rank existing findings)
Run `/nw-hotspot --rank {report.md}` after any analysis to prioritize by churn.
In nWave workflows
- Before `/nw-refactor` — identify which files to refactor first
- Before `/nw-review` — focus review effort on high-churn areas
- Before `/nw-root-why` — check if the problematic area is a known hotspot
Next Wave
**Usage Context**: Inline utility, composable with any analysis skill **Handoff To**: Invoking context (no sequential handoff)
Examples
Example 1: Quick scan of a legacy codebase
/nw-hotspot
Example 2: Scope a code smell analysis to hotspots
/nw-hotspot --top=10 --json
Example 3: Prioritize an existing refactoring report
/nw-hotspot --rank code-refactoring-report.md
Example 4: Investigate a specific troubled file
/nw-hotspot --detail src/services/payment.ts
Expected Outputs
No persistent files. Output is displayed inline. JSON mode outputs a JSON array for composition with other tools.
AI agents that guide you from idea to working code, with human judgment at every gate. nWave runs inside Claude Code. It breaks feature delivery into seven waves (discover, diverge, discuss, design, devops, distill, deliver).
Other skills on nwave.
More skills from other plugins.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
ask-matt
Ask which skill or flow fits your situation. A router over the skills in this repo.
Questions about nw-hotspot.
- Which coding agents can use nw-hotspot?
- nw-hotspot installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

