scope-check
GitHub用于检测项目范围蔓延,通过对比原始计划与实际实现,量化变更并评估风险,提供裁剪或延期建议。
Trigger Scenarios
Install
npx skills add Donchitos/Claude-Code-Game-Studios --skill scope-check -g -y
SKILL.md
Frontmatter
{
"name": "scope-check",
"model": "haiku",
"description": "Scope creep check — current scope versus the original plan. Flags additions, quantifies bloat, recommends cuts. 'Any scope creep?'",
"allowed-tools": "Read, Glob, Grep, Bash",
"argument-hint": "[feature-name or sprint-N]",
"user-invocable": true
}
Scope Check
This skill is read-only — it reports findings but writes no files.
Compares original planned scope against current state to detect, quantify, and triage scope creep.
Argument: $ARGUMENTS[0] — feature name, sprint number, or milestone name.
Phase 1: Find the Original Plan
Locate the baseline scope document for the given argument:
- Feature name → read
design/gdd/[feature].mdor matching file indesign/ - Sprint number (e.g.,
sprint-3) → readproduction/sprints/sprint-03.mdor similar - Milestone → read
production/milestones/[name].md
If the document is not found, report the missing file and stop. Do not proceed without a baseline to compare against.
Phase 2: Read the Current State
Check what has actually been implemented or is in progress:
- Scan the codebase for files related to the feature/sprint
- Read git log for commits related to this work (
git log --oneline --since=[start-date]) - Check for TODO/FIXME comments that indicate unfinished scope additions
- Check active sprint plan if the feature is mid-sprint
Phase 3: Compare Original vs Current Scope
Produce the comparison report:
## Scope Check: [Feature/Sprint Name]
Generated: [Date]
### Original Scope
[List of items from the original plan]
### Current Scope
[List of items currently implemented or in progress]
> **If Phase 4 will return NOT ASSESSED, do not render the numeric block below.**
> Replace the counts and the Bloat Score with
> `Baseline unusable — see verdict` and give the reason. A rendered
> `Original items: 0 / Net scope change: 0%` one section above a NOT ASSESSED
> verdict re-creates the exact "0% reads as on track" hazard Phase 4 exists to
> kill, one phase earlier — and readers trust a number over a caveat.
### Scope Additions (not in original plan)
| Addition | Source | When | Justified? | Effort |
|----------|--------|------|------------|--------|
| [item] | [commit/person] | [date] | [Yes/No/Unclear] | [S/M/L] |
### Scope Removals (in original but dropped)
| Removed Item | Reason | Impact |
|-------------|--------|--------|
| [item] | [why removed] | [what's affected] |
### Bloat Score
- Original items: [N]
- Current items: [N]
- Items added: [N] (+[X]%)
- Items removed: [N]
- Net scope change: [+/-N] ([X]%)
### Risk Assessment
- **Schedule Risk**: [Low/Medium/High] — [explanation]
- **Quality Risk**: [Low/Medium/High] — [explanation]
- **Integration Risk**: [Low/Medium/High] — [explanation]
### Recommendations
1. **Cut**: [Items that should be removed to stay on schedule]
2. **Defer**: [Items that can move to a future sprint/version]
3. **Keep**: [Additions that are genuinely necessary]
4. **Flag**: [Items that need a decision from producer/creative-director]
Phase 4: Verdict
Assign a canonical verdict based on net scope change:
| Net Change | Verdict | Meaning |
|---|---|---|
| ≤10% | PASS | On Track — within acceptable variance |
| 10–25% | CONCERNS | Minor Creep — manageable with targeted cuts |
| 25–50% | FAIL | Significant Creep — must cut or formally extend timeline |
| >50% | FAIL | Out of Control — stop, re-plan, escalate to producer |
Before applying that table, check that the percentage means something. Emit NOT ASSESSED instead — never a computed percentage — when any of:
- The baseline document exists but enumerates no scope items (all headings,
placeholders, or
[TO BE CONFIGURED]). Phase 1 stops when the file is absent; this is the case where it is present and empty, and it is the more dangerous one, because zero items yields a 0% net change that renders as PASS — On Track. Nothing was compared. Nothing was on track. - The current state cannot be determined — no related source files, no commits in the window, nothing in progress to read. Comparing a real baseline against an unreadable present is not a 0% change.
- The denominator would be zero for any other reason. A percentage computed from no baseline items is not a small number; it is not a number.
NOT ASSESSED outranks PASS (a comparison that never happened has not shown
scope is on track) and ranks below CONCERNS and FAIL (measured creep is more
actionable than an unmeasurable baseline).
Output the verdict prominently:
**Scope Verdict: [PASS / CONCERNS / NOT ASSESSED / FAIL]**
Net change: [+X%] — [On Track / Minor Creep / Significant Creep / Out of Control]
[or: NOT ASSESSED — [which side could not be read, and why]]
Phase 5: Next Steps
After presenting the report, offer concrete follow-up:
- PASS → no action required. Suggest re-running before next milestone.
- NOT ASSESSED → say which side was unreadable and what would fix it (populate the baseline document, or point the skill at where the work actually lives). Do not offer a re-run against the same inputs — it will produce the same non-answer.
- CONCERNS → offer to identify the 2–3 additions with best cut ratio. Reference
/sprint-plan updateto formally re-scope. - FAIL → recommend escalating to producer. Reference
/sprint-plan updatefor re-planning or/estimateto re-baseline timeline.
Always end with:
"Run
/scope-check [name]again after cuts are made to verify the verdict improves."
Rules
- Scope creep is additions without corresponding cuts or timeline extensions
- Not all additions are bad — some are discovered requirements. But they must be acknowledged and accounted for
- When recommending cuts, prioritize preserving the core player experience over nice-to-haves
- Always quantify scope changes — "it feels bigger" is not actionable, "+35% items" is
Version History
- 7ed2c3e Current 2026-09-28 04:04
- 984023d 2026-07-25 09:38


