minimum-sufficient-change
Skill0 starsChanged 56 days agoApache-2.0View on GitHub
Minimise over-solving during implementation, repair, integration, automation, and local systems work. Use when an agent could add machinery, rewrite a subsystem, introduce dependencies, retrain a model, or otherwise solve more than the observed failure requires.
In this repository12 other files it gives its agents.
- blackboardSkill
- chatterbox-tts-recoverySkill
- check-notes-firstSkill
- council-blackboardSkill
- invariant-guarded-debuggingSkill
- local-model-runtime-profilerSkill
- openwebui-regression-testSkill
- privileged-operationsSkill
- risk-aware-retrySkill
- session-handoverSkill
- symlink-space-saverSkill
- video-clip-editorSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. About 0 are common, 15 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈15
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 14
Do not confuse sophistication with fitness.
- Distinctive: line 18
Use the five rules to decide what sufficient means.
- Distinctive: line 36
Hold Your Ground: Do not let parsimony become timidity.
- Distinctive: line 41
When the rules and an apparently smaller implementation conflict, the rules govern the objective and constraints.
- Distinctive: line 56
Treat configured behaviour as unproven until exercised.
- Distinctive: line 59
Ask what single missing connection, constraint, routing rule, context item, or local correction could explain the failure.
- Distinctive: line 60
Prefer a narrow change with a short causal chain.
- Distinctive: line 76
Keep user work and unrelated dirty state intact.
- Distinctive: line 77
Avoid boot-critical, destructive, external, or difficult-to-reverse changes without the authority and recovery proof they require.
- Distinctive: line 83
Check the intended outcome, important regressions, latency or resource overhead where relevant, and rollback viability.
- Distinctive: line 93
When escalating, move one level at a time and retain the same acceptance test.
- Distinctive: line 96
Stop once the acceptance check passes through the real path with acceptable overhead and no material regression.
- Distinctive: line 97
Do not continue because a more elegant, general, fashionable, or intellectually interesting solution exists.
- Distinctive: line 128
before/after or equivalent canary.
- Distinctive: line 134
If the acceptance test fails, say so plainly and identify which evidence justifies the next escalation.
≈ “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
Minimum sufficient change
Apply Maximum Parsimony and Minimum Description Length to engineering work.
Core rule
Use the smallest plausible intervention that fixes the observed failure, prove it through the real end-to-end path, escalate only when evidence falsifies the simpler approach, and stop when it works.
Do not confuse sophistication with fitness. Existing capability plus missing routing, context, constraints, or glue is usually cheaper to repair than replacing the capability.
Five-rule gate
Use the five rules to decide what sufficient means. Parsimony chooses the least machinery that can meet the objective; it does not shrink the objective, discard affected people, or excuse a weak response.
- Holistic Context — know the terrain. Inspect the whole live path, surrounding constraints, affected people, dependencies and failure modes before declaring a local fix sufficient. A tiny answer to the wrong problem is not parsimonious.
- Egalitarianism. Apply the same evidential standard regardless of the status, familiarity or authorship of a tool or proposal. Include burdens on users and bystanders; do not make the agent's convenience the sole cost function.
- Beneficence. Optimise for useful improvement. Choose the smallest change that actually helps and leaves the system better, not merely the change that is easiest to describe or cheapest for the operator.
- Don't Be a Fucking Cunt. Preserve trust, data, privacy, consent, recoverability and protected working foundations. Never call a shortcut “minimal” when it shifts hidden risk or clean-up onto someone else.
- Hold Your Ground. Do not let parsimony become timidity. Reject a smaller fix when evidence shows that it conceals harm, preserves a dangerous failure or cannot meet the real requirement. Escalate firmly when reality requires it, then stop at the first sufficient level.
When the rules and an apparently smaller implementation conflict, the rules govern the objective and constraints; MDL governs the implementation within them.
Working loop
- State the actual failure.
- Describe the observed bad output or behaviour.
- Separate it from guesses about the cause.
- Name the user-visible acceptance check.
- Inspect the live path.
- Resolve the real files, services, configuration, versions, data flow, and entry point.
- Find where the failure is introduced.
- Reuse existing logs, examples, corrections, and known-good components.
- Treat configured behaviour as unproven until exercised.
- Form the smallest plausible hypothesis.
- Ask what single missing connection, constraint, routing rule, context item, or local correction could explain the failure.
- Prefer a narrow change with a short causal chain.
- State what result would falsify the hypothesis.
Choose the least machinery that can work. Prefer, in order:
- using the existing tool correctly;
- supplying missing local context or parameters;
- adding a small routing, validation, correction, or adapter layer;
- changing configuration;
- adding a bounded script or dependency;
- replacing, retraining, or redesigning a subsystem.
Skip directly to a larger intervention only when direct evidence rules out the cheaper levels.
- Preserve the working foundation.
- Back up or capture a rollback for material changes.
- Keep user work and unrelated dirty state intact.
- Avoid boot-critical, destructive, external, or difficult-to-reverse changes without the authority and recovery proof they require.
- Make the change narrow enough that its effect is attributable.
- Test the real path end to end.
- Exercise the entry point the user actually uses, not only an isolated helper.
- Compare before and after on the same representative case.
- Check the intended outcome, important regressions, latency or resource overhead where relevant, and rollback viability.
- Record commands, outputs, changed files, and concrete examples.
Escalate only on evidence. Escalation is justified when:
- the simpler hypothesis was directly falsified;
- repeated real cases show the narrow fix cannot cover the important failure class;
- the workaround creates unacceptable fragility, latency, maintenance, or ambiguity;
- the existing component lacks a required capability rather than merely lacking context or plumbing.
When escalating, move one level at a time and retain the same acceptance test.
- Stop when sufficient.
- Stop once the acceptance check passes through the real path with acceptable overhead and no material regression.
- Do not continue because a more elegant, general, fashionable, or intellectually interesting solution exists.
- Record remaining imperfections honestly; do not turn them into compulsory scope.
Anti-patterns
Reject these unless evidence specifically requires them:
- rewriting a subsystem before locating the fault;
- teaching or reimplementing capabilities the existing tool already has;
- adding an LLM where a deterministic rule is sufficient;
- building a framework for one bounded operation;
- retraining before trying vocabulary, context, routing, or correction layers;
- benchmarking synthetic cases while ignoring the user's real failures;
- polishing internal architecture after the user-visible path already meets the target;
- claiming improvement from configuration alone without an end-to-end canary;
- expanding scope because nearby problems are interesting.
Scaling the method
For a trivial, reversible job, compress the loop to:
observe → smallest fix → real-path check → stop
For a material or fragile system, make the same loop more explicit with backups, baseline measurements, falsifiers, rollback, and receipts. Parsimony reduces unnecessary machinery; it never waives safety.
Completion receipt
Report only what helps verify the result:
- observed failure and likely cause;
- smallest change made and why it was sufficient;
- before/after or equivalent canary;
- overhead and regressions checked;
- files or state changed;
- rollback location when material;
- what remains imperfect.
If the acceptance test fails, say so plainly and identify which evidence justifies the next escalation.
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.

