churn

Ranks git repository files and directories by change frequency, recency, and author spread.

Updated Jul 28, 2026
One-click install
npx skills add https://github.com/vinzenz/workflows --skill churn-vinzenz
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: churn
Source: https://github.com/vinzenz/workflows/tree/main/.agents/skills/churn
Command: npx skills add https://github.com/vinzenz/workflows --skill churn-vinzenz

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? When landing in an unfamiliar repository, an agent or developer cannot tell which files are load-bearing and volatile versus dead and stable from directory listings alone. This Skill turns one bounded git log --numstat pass into a ranked hotspot list, replacing O(files) per-file log inspection with a single scan. ## Core Features & Use Cases - Ranked hotspot lists: churn files and churn dirs rank paths by a transparent score combining commit count, recency multiplier, and distinct author count. - Single-file history: churn file <path> follows renames through all history to tell one file's complete story. - Noise filtering: Lockfiles, dist/, node_modules/, and vendored paths are excluded by default so generated code never dominates the rankings. - Use Case: An agent starting work in a new repo runs churn dirs --depth 1 to identify the project's center of gravity before editing anything. ## Quick Start Use the churn skill to show me which files and directories in this repository change most often and were touched most recently.

Frequently Asked Questions about churn

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find the most frequently changed files in a git repository?▼

Run `churn files` to get a ranked table of paths with commits, authors, added/deleted lines, and last-change recency. Use `--since` to widen or narrow the window, for example `churn files --since 6m`.

How to identify which directories are the center of gravity in a repo?▼

Run `churn dirs` to roll the same change-frequency signal up per directory, which is often more useful than per-file rankings. Adjust grouping with `--depth`, for example `churn dirs --depth 1` for a top-level view.

Does churn work on shallow git clones?▼

Yes, but a shallow clone adds a `history:` line warning that counts are a lower bound, not the complete picture. Results are never silently treated as complete history.

Why are lockfiles and dist folders missing from churn results?▼

Generated and vendored paths like package-lock.json, dist/, node_modules/, and *.min.* are excluded by default because they are regenerated noise, not real hotspots. Pass `--include-generated` to see them anyway.

How is the churn hotspot score calculated?▼

Score equals commits times a recency multiplier plus authors times three. The multiplier is x5 for changes within 7 days, x3 within 30, x2 within 90, x1 within a year, and x0 beyond that, and every row prints the exact inputs.