rationale
Skill115 starsChanged 7 days agoMITView on GitHub
Use when the user asks for new work such as a feature, component, integration, service or dependency, especially when the request names a solution instead of a problem, the scope looks larger than the user may expect, or the motivation is that other products have it
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 6 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
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 16
No exceptions. No workarounds.
- Distinctive: line 61
Look before proposing a build, cheapest first:
- Distinctive: line 91
Always include A and D. Drop B or C only when no honest version of them exists, and say why.
- Distinctive: line 152
Use this gate to stall work the user has decided on.
- Distinctive: line 153
Run a full analysis on a request that meets a skip condition.
- Distinctive: line 158
Keep the depth proportional to the request.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 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
Rationale
The most expensive feature is the one nobody needed. Before any design starts, test whether the work is worth doing, what it really costs, and whether something smaller or already built does the job. Question the request with the rigour you would give a production code review; then let the user decide with honest options in front of them.
The Prime Directive
NO NEW WORK WITHOUT ASKING WHETHER IT IS WORTH DOINGNo exceptions. No workarounds. No shortcuts.
When to Use
Required:
- "Build me X", "add Y", "integrate Z", "we need a W".
- A new module, service, dependency or architectural layer.
- A request that states a solution ("add a cache") rather than a problem ("the page is slow").
- Scope that looks bigger than the user seems to expect.
- Motivation from trend or comparison ("everyone has dark mode").
Skip:
- Bug fixes and security patches: the need is self-evident; go to
godmode:fault-diagnosisorgodmode:security-protocol. - Direct commands with clear scope ("delete this file", "run the tests", "rename this variable").
- Typos, formatting, a config value the user dictated.
- Work the user already justified in detail, or that already passed this gate in this conversation.
The Protocol
Scale the depth to the request. A button label gets one line per point; a new service gets the full treatment. Never spend longer on the analysis than the work would take.
1. Reality check
- What problem does this solve, for whom, and how often?
- What happens if nothing is built?
- Did the user describe a problem or jump to a solution? Trace a stated solution back to the problem it serves; the best fix may be different.
- Is the pain real and present, or hypothetical?
Evidence left behind: one sentence restating the problem in your own words.
2. Effort classification
| Class | Typical size | Signs |
| Trivial | minutes | one file, no new dependency, no design impact |
| Moderate | hours | several files, maybe one dependency, contained |
| Substantial | days | new subsystem or pattern, new test infrastructure |
| Massive | weeks | architecture change, new service, data migration |
Count the parts people forget: tests, documentation, review rounds, migration, and the maintenance that never ends. First estimates run low; say so when your confidence is weak.
Evidence left behind: the class and one line of justification.
3. Alternatives
Look before proposing a build, cheapest first:
- Can an existing feature in this codebase be extended?
- Does a maintained library or package do it?
- Does a hosted service do it?
- Is there an open-source project covering most of it?
- Is there a small version that delivers most of the value?
For each candidate: what share of the need it covers, its cost, lock-in, licence and maintenance health. Invoke godmode:reference-first to run the search properly, and godmode:grounding for any claim about a library's current version, price or licence.
Evidence left behind: a short list of real candidates with coverage and trade-offs, or a note that the search found none.
4. Senior-engineer view
- What would a staff engineer challenge in this?
- Hidden costs: complexity added, test surface, onboarding cost, operational load.
- What hurts in six months: scaling, security surface, dependency rot, migration if requirements move?
- Is this treating a symptom of a deeper problem?
Evidence left behind: the two or three hidden costs that matter most.
5. Decision point
Present the options and recommend exactly one:
- A) Build as requested: effort class, honest trade-off.
- B) Build a smaller version: what it keeps, what it cuts, effort class.
- C) Use an existing alternative: name, coverage, trade-off.
- D) Skip or defer: why, and what to do instead.
Always include A and D. Drop B or C only when no honest version of them exists, and say why. Then wait for the user's choice; option selection is never automatic, even when the user asked you to move fast.
digraph rationale {
"Request" -> "Skip condition?";
"Skip condition?" -> "Hand to next skill" [label="yes"];
"Skip condition?" -> "Five-point analysis" [label="no"];
"Five-point analysis" -> "Options A/B/C/D + one recommendation";
"Options A/B/C/D + one recommendation" -> "User chooses";
"User chooses" -> "godmode:intent-discovery" [label="A or B"];
"User chooses" -> "godmode:reference-first" [label="C"];
"User chooses" -> "Record decision, stop" [label="D"];
}Output Format
## Rationale: <request in a few words>
**Problem:** <one sentence>
**Effort:** <class> - <why>
**Alternatives found:** <name: coverage, trade-off> (or "none found after searching X, Y")
**Hidden costs:** <two or three bullets>
**A) Build as requested** - <effort>, <trade-off>
**B) Smaller version** - <effort>, <keeps / cuts>
**C) Existing alternative** - <name>, <coverage>, <trade-off>
**D) Skip or defer** - <why>
**Recommendation:** <letter> because <reason>.For a trivial request, compress this to three lines: problem, effort, recommendation.
Handling Pushback and Urgency
- The user disagrees: give your reasoning once, clearly. If they still want it, proceed with their choice and note their reason in the design document.
- The work is urgent: say so, compress to problem, effort and one alternative, flag the risk urgency hides, and proceed.
- You are an advisor, not a gatekeeper. The goal is a better decision, not a slower one.
Cognitive Traps
| Rationalisation | Truth |
| "The user asked for it, so build it" | A request states a wish, not a validated need. Check the need. |
| "It is too simple to question" | "Just add login" hides sessions, resets, lockout and audit. |
| "Questioning wastes their time" | Five minutes of analysis is cheap next to building the wrong thing. |
| "They will think I am difficult" | Honest options earn trust; rubber stamps do not. |
| "We can refactor later" | Later costs more, and often never comes. |
| "Everyone else has this" | Their constraints are not this project's constraints. |
| "It will only take a few minutes" | An estimate without analysis is a guess. Classify it. |
| "I know which library fits" | That is memory. Search and verify current state first. |
Guardrails
Never:
- Recommend a build without first looking for something that already exists.
- Shrink an estimate to please the user.
- Offer only "build it", or hedge with "it depends" instead of recommending.
- Pick an option for the user.
- Use this gate to stall work the user has decided on.
- Run a full analysis on a request that meets a skip condition.
Always:
- Restate the problem before judging the solution.
- Present at least A and D, and recommend one option.
- Keep the depth proportional to the request.
- Accept the user's choice and carry their reason forward.
Connections
godmode:intent-discovery: next step after the user picks A or B.godmode:reference-first: runs the alternatives search in point 3, and takes over when the user picks C.godmode:grounding: verifies any claim about a library, service, price or licence.godmode:fault-diagnosis: bugs skip this gate and go there.godmode:system-design: when the analysis shows the real question is architectural.
In this repository33 other files it gives its agents.
- AGENTS.mdAGENTS.md
- agent-briefingSkill
- codebase-conventionsSkill
- code-reviewSkill
- completion-gateSkill
- cross-model-reviewSkill
- delegated-executionSkill
- doctorSkill
- environment-awarenessSkill
- error-recoverySkill
- fault-diagnosisSkill
- groundingSkill
- inline-executionSkill
- intent-discoverySkill
- knowledge-captureSkill
- merge-protocolSkill
- model-routingSkill
- parallel-executionSkill
- performance-tuningSkill
- project-bootstrapSkill
- quality-gatesSkill
- reference-firstSkill
- review-responseSkill
- security-protocolSkill
- system-designSkill
- task-planningSkill
- team-orchestrationSkill
- test-firstSkill
- ui-engineeringSkill
- ui-researchSkill
- using-godmodeSkill
- workspace-isolationSkill
- writing-skillsSkill
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.

