fable-scope-discipline
Skill6 starsChanged 3 months agoMITView on GitHub
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.
1 other project uses a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- DizzyMii/fable-skillsedited, first seen Oct 13, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 1
- DizzyMii/fable-skills★ 5554% 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 repository55 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .codex/AGENTS.mdAGENTS.md
- docs/AGENTS.mdAGENTS.md
- skills/fable-tend/AGENTS.mdAGENTS.md
- skills/fable-wise/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- skills/fable-tend/CLAUDE.mdCLAUDE.md
- skills/fable-tend/site/CLAUDE.mdCLAUDE.md
- skills/fable-wise/CLAUDE.mdCLAUDE.md
- public/llms.txtllms.txt
- get-fableSkill
- typesafe-aiSkill
- get-fableSkill
- get-fableSkill
- fable-architectureSkill
- fable-artifactSkill
- fable-configSkill
- fable-context-thriftSkill
- fable-councilSkill
- fable-coworkSkill
- fable-datavizSkill
- fable-delegateSkill
- fable-discoverSkill
- fable-domainSkill
- fable-ecoSkill
- fable-evalSkill
- fable-executeSkill
- fable-finish-your-turnSkill
- fable-handoffSkill
- fable-healSkill
- fable-judgeSkill
- fable-learningSkill
- fable-loopSkill
- fable-memorySkill
- fable-methodSkill
- fable-native-codeSkill
- fable-outcome-firstSkill
- fable-planSkill
- fable-prove-itSkill
- fable-recoverSkill
- fable-redteamSkill
- fable-releaseSkill
- fable-researchSkill
- fable-reviewSkill
- fable-runSkill
- fable-securitySkill
- fable-simplifySkill
- fable-simulatorSkill
- fable-skill-creatorSkill
- fable-sparkSkill
- fable-tddSkill
- fable-tendSkill
- fable-verifySkill
- fable-wiseSkill
- get-fableSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
21 rules. About 0 are common, 18 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈18
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 41
When implementing any change in an existing codebase.
- Distinctive: line 42
When tempted to clean up neighboring functions, reformat whitespace, or rename variables.
- Distinctive: line 43
When thinking a secondary defect is "arguably in scope".
- Distinctive: line 44
When inspecting a diff that spans more files or lines than the task logically warrants.
- Very specific: line 48
When tasked explicitly with a broad refactoring or architectural migration (use fable-simplify or fable-architecture).
- Very specific: line 49
When removing dead code or deprecated systems across the whole workspace (use fable-simplify).
- Very specific: line 50
When authoring exploratory prototypes or spikes (use fable-discover).
- Distinctive: line 66
The Argument Test: If you are constructing an argument for why something extra is "arguably part of the fix" — it is not.
- Distinctive: line 67
The Open-Question Test: If an extra fix requires an unresolved design choice (raise vs clamp?
- Distinctive: line 68
Right Altitude: Not a symptom patch (one case patched, bug alive), and not a rewrite (bug fixed, fifty unrelated things changed).
- Distinctive: line 69
No Drive-Bys: No renames, reformatting, refactors, or dependency bumps the change does not require.
- Distinctive: line 70
Touch Budget: If the diff is significantly larger than the ask implies, stop and re-evaluate your altitude.
- Distinctive: line 71
Look Before Deleting: If what you find contradicts the task's description or you didn't create it, surface that instead of blindly …
- Distinctive: line 85
If a code change is not required to make the user's scenario or test pass, revert it.
- Distinctive: line 86
If an adjacent bug is discovered, log it in the report as a follow-up item.
- Distinctive: line 90
Run git diff frequently to inspect touched lines and files.
- Distinctive: line 92
Keep modifications confined to the minimal set of files.
- Distinctive: line 97
Verify tests pass on the minimal change without relying on unrequested collateral modifications.
- Distinctive: line 101
Stop immediately and shrink the diff when encountering these Red Flags:
- Distinctive: line 109
No unrelated files, styles, dependencies, or unrequested refactorings introduced.
- Distinctive: line 110
All secondary discoveries documented for future triage.
≈ “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
Fable Scope Discipline
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.
Purpose
Enforce strict scope boundaries during code modification. Prevent drive-by refactorings, cosmetic rewrites, speculative optimizations, unrequested validation checks, and diff bloat.
When to Use
- When implementing any change in an existing codebase.
- When tempted to clean up neighboring functions, reformat whitespace, or rename variables.
- When thinking a secondary defect is "arguably in scope".
- When inspecting a diff that spans more files or lines than the task logically warrants.
When NOT to Use
- When tasked explicitly with a broad refactoring or architectural migration (use
fable-simplifyorfable-architecture). - When removing dead code or deprecated systems across the whole workspace (use
fable-simplify). - When authoring exploratory prototypes or spikes (use
fable-discover).
Inputs
task_specification: The specific bounded task, user instructions, and acceptance criteria.current_diff: The working git diff generated during implementation.
Expected Outputs
bounded_diff: A minimal, surgical diff addressing only the authorized problem.discovered_items_report: A structured list in the summary noting other defects discovered but deliberately not touched.
Procedure
- Implement What Was Asked: Focus strictly on the assigned card or request; nothing speculative, nothing "while I'm here."
- Adjacency is Not Scope: "Same function", "same file", "same class of defect" describe location, not authorization. The user's words define the task; proximity defines nothing.
- The Argument Test: If you are constructing an argument for why something extra is "arguably part of the fix" — it is not. Real scope never needs an argument. Put the observation in your report and let the user decide.
- The Open-Question Test: If an extra fix requires an unresolved design choice (raise vs clamp? rename to what?), that proves it is an independent task. You cannot settle a contract question inside someone else's bugfix.
- Right Altitude: Not a symptom patch (one case patched, bug alive), and not a rewrite (bug fixed, fifty unrelated things changed). Fix the root cause within the bounded scope.
- No Drive-Bys: No renames, reformatting, refactors, or dependency bumps the change does not require. Diff noise buries the real change.
- Touch Budget: If the diff is significantly larger than the ask implies, stop and re-evaluate your altitude.
- Look Before Deleting: If what you find contradicts the task's description or you didn't create it, surface that instead of blindly overwriting.
- Discoveries Go in the Report: Real bugs, dead code, or stale docs found along the way go in your summary — neither silently fixed nor silently dropped.
Decision Rules
| 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. 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. |
| "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. |
- If a code change is not required to make the user's scenario or test pass, revert it.
- If an adjacent bug is discovered, log it in the report as a follow-up item.
Tool Policy
- Run
git difffrequently to inspect touched lines and files. - Reject tools that indiscriminately reformat entire files.
- Keep modifications confined to the minimal set of files.
Evidence Requirements
- Inspect
git diff --statto verify that touched files and line changes match the expected blast radius. - Verify tests pass on the minimal change without relying on unrequested collateral modifications.
Failure Handling
Stop immediately and shrink the diff when encountering these Red Flags:
- The word "arguably" near a change you're about to make.
- Touched files outside the component's logical domain.
- Formatting changes on untouched functions in the same file.
Completion Criteria
- Diff addresses the root cause of the assigned task with surgical precision.
- No unrelated files, styles, dependencies, or unrequested refactorings introduced.
- All secondary discoveries documented for future triage.
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.

