scope-creep-detector
Skill2 starsChanged 4 months agoMITView on GitHub
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad pull requests, changes that grew beyond a fix, dependency additions, public API renames, config or CI edits, oversized hunks, and formatting-only files. Use when the user asks whether a change grew beyond the fix, a PR is too broad, or what unrelated stuff they touched, and wants keep, split, or justify guidance. Operates locally and offline.
2 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- jmcelreavey/devhubedited, first seen Oct 13, 2026
- Biznomad/claude-skillsword for word, first seen Jul 14, 2026
Other versions2 projects use a version of this.
Word for word · 1
- Biznomad/claude-skills★ 0100% same
Edited · 1
- jmcelreavey/devhub★ 598% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository383 other files it gives its agents.
- 37signals-waySkill
- ab-test-analysisSkill
- advisor-orchestrator-workerSkill
- ai-ml-engineeringSkill
- algorithmic-artSkill
- analyze-feature-requestsSkill
- animation-vocabularySkill
- apple-designSkill
- emil-design-engSkill
- find-animation-opportunitiesSkill
- improve-animationsSkill
- pick-ui-librarySkill
- prototypeSkill
- review-animationsSkill
- ansoff-matrixSkill
- api-and-interface-designSkill
- api-design-best-practicesSkill
- app-store-changelogSkill
- auth-authorizationSkill
- beachhead-segmentSkill
- blue-ocean-strategySkill
- brainstorm-experiments-existingSkill
- brainstorm-experiments-newSkill
- brainstorm-ideas-existingSkill
- brainstorm-ideas-newSkill
- brainstorm-okrsSkill
- brand-guidelinesSkill
- browser-testing-with-devtoolsSkill
- bug-hunt-swarmSkill
- business-modelSkill
- canvas-designSkill
- ci-cd-and-automationSkill
- claude-apiSkill
- clean-architectureSkill
- clean-codeSkill
- cli-creatorSkill
- code-review-and-qualitySkill
- code-review-skillSkill
- code-simplificationSkill
- cohort-analysisSkill
- cold-start-problemSkill
- commit-archaeologistSkill
- competitive-battlecardSkill
- competitor-analysisSkill
- contagiousSkill
- context-engineeringSkill
- continuous-discoverySkill
- architecture-blueprint-generatorSkill
- azure-architecture-autopilotSkill
- cli-masterySkill
- codeqlSkill
- conventional-commitSkill
- create-implementation-planSkill
- csharp-asyncSkill
- diagnoseSkill
- dotnet-best-practicesSkill
- draw-io-diagram-generatorSkill
- git-commitSkill
- github-actions-efficiencySkill
- java-springbootSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
17 rules. About 0 are common, 14 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈14
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 28
Before opening a pull request whose diff may have grown beyond its intent
- Distinctive: line 29
When a bug fix touches unexpected files or subsystems
- Distinctive: line 30
When the user asks whether staged changes are too broad
- Distinctive: line 31
When a diff includes dependency, public API, config, CI, or build changes
- Distinctive: line 32
When the user wants a concrete split plan for a mixed change
- Very specific: line 43
Use the user's one-line intent when available.
- Distinctive: line 46
If no intent was given, the script falls back to the current branch name.
- Very specific: line 52
Run from this skill directory and point --repo at the target repository.
- Very specific: line 83
Use --hunk-threshold only when the repository has a documented reason to change the default churn threshold.
- Distinctive: line 89
Read references/scope-signals.md before making a recommendation.
- Distinctive: line 107
Keep: when the path is necessary for the stated intent and the connection is direct.
- Distinctive: line 109
Split: when it can land independently, belongs to another subsystem, or introduces a dependency, API rename, config edit, or large hunk …
- Distinctive: line 112
Justify: when a cross-cutting edit cannot be separated safely.
- Distinctive: line 115
Prefer split when evidence is ambiguous.
- Distinctive: line 120
Use this compact structure:
- Distinctive: line 126
Keep, split, or justify table
- Distinctive: line 131
Ask before applying any split, revert, staging, or commit operation.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Scope Creep Detector
A one-line fix should not require a reviewer to reverse-engineer fourteen files across three subsystems. This skill compares a git diff with its stated intent, surfaces scope signals, and turns them into keep, split, or justify decisions.
Everything runs locally. The script makes no network calls and does not change the working tree, index, commits, or branches.
When to use
- Before opening a pull request whose diff may have grown beyond its intent
- When a bug fix touches unexpected files or subsystems
- When the user asks whether staged changes are too broad
- When a diff includes dependency, public API, config, CI, or build changes
- When the user wants a concrete split plan for a mixed change
When not to use
- Formatting code, running a linter, or writing a commit message
- Reviewing correctness, security, or test quality inside an agreed scope
- Measuring historical project growth across many commits
- Editing or reverting files without the user's approval
Establish the intent
Use the user's one-line intent when available. Keep it concrete, such as
fix null dereference in parser or add retry limit to webhook delivery.
If no intent was given, the script falls back to the current branch name. If that name is generic, detached, or unrelated to the work, ask for one line of intent before treating relatedness as meaningful.
Run the classifier
Run from this skill directory and point --repo at the target repository.
Working tree diff:
python3 scripts/scope_creep.py --repo /path/to/repo \
--intent "fix null dereference in parser" --jsonStaged diff:
python3 scripts/scope_creep.py --repo /path/to/repo --staged \
--intent "fix null dereference in parser" --jsonBranch diff against a merge base:
python3 scripts/scope_creep.py --repo /path/to/repo --base main \
--intent "fix null dereference in parser" --jsonSaved diff or stdin:
python3 scripts/scope_creep.py --diff change.diff --intent "parser fix" --json
git diff --staged | python3 scripts/scope_creep.py --diff - \
--intent "parser fix" --jsonUse --hunk-threshold only when the repository has a documented reason to
change the default churn threshold. Do not tune the threshold merely to make a
warning disappear.
Interpret the JSON
Read references/scope-signals.md before making a recommendation. Treat the classifier as triage evidence, not proof of authorial intent.
in_scope: file paths with at least one intent/path keyword overlaplikely_creep: paths without overlap, with the reason and detected signalsnew_deps: dependencies introduced in supported manifest formatsapi_renames: nearby removed and added public function or class declarationsconfig_edits: CI, container, build, YAML, and TOML changesstats: churn, subsystem counts, oversized hunks, and formatting-only files
Empty arrays are evidence too. Say that no signal was detected, not that the diff is guaranteed to be in scope.
Recommend keep, split, or justify
Give every item in likely_creep one disposition:
- Keep when the path is necessary for the stated intent and the connection is direct. Explain the connection in one sentence.
- Split when it can land independently, belongs to another subsystem, or introduces a dependency, API rename, config edit, or large hunk that is not required for the intent. Name the files or hunks for the follow-up change.
- Justify when a cross-cutting edit cannot be separated safely. State the invariant or build constraint that requires it and call out reviewer risk.
Prefer split when evidence is ambiguous. Never claim that a zero overlap score proves a file is unrelated. Path vocabulary is a cheap, deterministic proxy.
Write the scope report
Use this compact structure:
- Intent and diff source
- Files and subsystems touched, with total additions and deletions
- In-scope changes
- Likely creep with signal evidence
- Keep, split, or justify table
- Proposed follow-up grouping, if any
Name file paths and hunk headers. For an oversized mixed hunk, explain that the script cannot split it automatically and describe the smallest coherent edit. Ask before applying any split, revert, staging, or commit operation.
Files
scripts/scope_creep.py: deterministic unified-diff parser and classifierreferences/scope-signals.md: signal definitions, thresholds, and limits
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

