Skip to content
Back to skills

Fable Scope Discipline

ASecurity

Use when implementing any change in existing code — when tempted to clean up nearby code, add unrequested validation or options, fix something "arguably in scope", or when the diff is growing past what was asked.

  • 55 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added August 30, 2026
ai-agentsgogit

Works with

  • cursor

Security analysis

A100/100

Scanned August 30, 2026

npx -y skills add DizzyMii/fable-skills --skill fable-scope-discipline --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Fable Scope Discipline?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Fable Scope Discipline
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/dizzymii-fable-scope-discipline/badge)](https://www.skillsdirectory.com/skills/dizzymii-fable-scope-discipline)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: fable-scope-discipline
description: Use when implementing any change in existing code — when tempted to clean up nearby code, add unrequested validation or options, fix something "arguably in scope", or when the diff is growing past what was asked.
---

# Scope Discipline

## Overview

Build exactly what was asked, at the right altitude: deep enough to fix the
cause, narrow enough to touch nothing else. Unrequested improvements are not
generosity — they are unreviewed risk hiding inside someone else's diff.

## Rules

1. **Implement what was asked.** Nothing speculative, nothing "while I'm
   here."
2. **Adjacency is not scope.** "Same function", "same file", "same class of
   defect" describe *location*, not *authorization*. The user's words define
   the task; nearness defines nothing.
3. **The argument test.** If you're constructing an argument for why
   something extra is "arguably part of the fix" — it isn't. Real scope
   never needs the argument. Put the argument in your report and let the
   user decide.
4. **The open-question test.** If the extra fix has an unresolved design
   choice (raise or clamp? rename to what?), that proves it's its own task.
   You can't settle a contract question inside someone else's bugfix.
5. **Right altitude.** Not a symptom patch (one case fixed, bug alive), not
   a rewrite (bug fixed, fifty things changed). Root cause, within scope.
6. **No drive-bys.** No renames, reformatting, refactors, or dependency
   bumps the change doesn't require. Diff noise buries the change.
7. **Touch budget.** Diff much larger than the ask implies → stop and
   re-check your altitude.
8. **Look before you delete or overwrite.** If what you find contradicts
   the task's description of it — or you didn't create it — surface that
   instead of proceeding.
9. **Discoveries go in the report.** Real bugs, dead code, stale docs you
   found: list them in your summary — neither silently fixed nor silently
   dropped. "I care about quality" from the user is an instruction to
   *surface* findings, not to expand diffs.

## Rationalizations (verbatim from baseline failure)

| Thought | Reality |
|---|---|
| "It's the same *class* of defect as the bug I was sent in for" | Classification is taxonomy, not authorization. The user named one defect. |
| "It lives in the same function's contract" | Location again. Contracts change by decision, not by proximity to your cursor. |
| "Fixing one and not the other is fixing half of a coherent correctness problem" | The user defined the problem's boundary. "Coherence" is your framing — put it in the report and let them re-draw the boundary. |
| "That makes it a legitimate part of the fix, not scope creep" | The moment you're litigating whether it's scope creep, it is. Done-with-the-argument ≠ authorized. |
| "Every one of these is an uncontroversial improvement" | Uncontroversial is not the bar; *asked-for* is. Improvements travel in their own reviewable diff. |
| "The user said they care about code quality" | A value statement, not a work order. Quality includes atomic, revertible, reviewable diffs. |

Provenance: rows 1–4 are verbatim Opus 4.8 baseline rationalizations (it
chose to bundle unrequested validation into an off-by-one fix — while itself
calling the validation's design "the one open question"). fable-skills test
logs, 2026-06-10.

## Red Flags — stop and shrink the diff

- The word "arguably" near a change you're about to make
- "While I'm here" / "it's adjacent" / "same contract"
- Your diff list has items the user's sentence doesn't
- You're choosing between designs (raise vs. clamp) for code nobody asked you to write
- You're about to delete something you only verified within one file

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.