From godmode
Use when a user requests new work - features, components, integrations, or additions - to challenge assumptions, evaluate effort, surface alternatives, and ensure the work is worth doing before committing to it
npx claudepluginhub noobygains/godmode --plugin godmodeThis skill uses the workspace's default tool permissions.
The difference between a junior developer and a senior engineer is one question: **"Should we actually build this?"** Junior developers accept every request at face value. Senior engineers interrogate the request itself before touching a keyboard. Most wasted engineering effort traces back to building the wrong thing, not building the thing wrong.
Conducts feasibility analysis from first principles: decomposes requirements, analyzes constraints, researches code, explores solutions, discusses with codex, and outputs quantitative comparisons with recommendations. Use before tech specs, for comparisons or risk assessment.
Validates if proposed or in-progress work justifies investment before designing, planning, or building non-trivial features. Use when new evidence questions motivations or facts change.
Clarifies vague user requests via iterative Q&A loop and parallel subagent codebase exploration. Outputs scoped context brief for precise planning. Triggers on 'I want to...' or ambiguous scopes.
Share bugs, ideas, or general feedback.
The difference between a junior developer and a senior engineer is one question: "Should we actually build this?" Junior developers accept every request at face value. Senior engineers interrogate the request itself before touching a keyboard. Most wasted engineering effort traces back to building the wrong thing, not building the thing wrong.
Core principle: Challenge every request with the same rigor you would apply to a production code review. The cheapest feature is the one you never build.
No exceptions. No workarounds. No shortcuts.
NO WORK WITHOUT QUESTIONING WHETHER THE WORK IS WORTH DOING
If you have not evaluated the necessity, effort, and alternatives for a requested piece of work, you are operating as a yes-machine, not an engineer. Proceeding without rationale analysis is engineering malpractice.
Required for:
Skip for:
| Rationalization | What Is Actually True |
|---|---|
| "The user asked for it, so we should build it" | Users articulate desires, not validated needs. Desire is not justification. |
| "It's too simple to question" | Simple requests hide massive scope. "Just add auth" is 3 days minimum. |
| "Questioning the request wastes time" | Building the wrong thing wastes 100x more time than 5 minutes of analysis. |
| "The user will think I'm being difficult" | Senior engineers earn trust by challenging assumptions, not by rubber-stamping. |
| "We can always refactor later" | Technical debt compounds. "Later" means "never" or "at 10x the cost." |
| "It's already been decided" | Decisions made without analysis are assumptions, not decisions. |
| "Everyone else has this feature" | Cargo-culting is not engineering. Other products have different constraints. |
| "It will only take a few minutes" | Estimation without analysis is guessing. "A few minutes" is the most dangerous phrase in engineering. |
You MUST complete all five points before recommending a path forward.
Establish whether the work is genuinely needed.
Ask yourself:
- What specific problem does this solve?
- Who experiences this problem and how often?
- What happens if we do nothing?
- Is this a real pain point or a hypothetical one?
- Has the user articulated the PROBLEM or jumped straight to a SOLUTION?
Critical distinction: Users often present solutions ("add a caching layer") when they should present problems ("the page loads slowly"). Always trace back to the underlying problem. The stated solution may not be the best one.
Classify the true cost honestly. Engineers chronically underestimate.
| Classification | Time | Characteristics |
|---|---|---|
| Trivial | Minutes | Single file change, no new dependencies, no architectural impact |
| Moderate | Hours | Multiple files, possibly new dependencies, contained scope |
| Substantial | Days | New subsystem, new patterns, testing infrastructure needed |
| Massive | Weeks | Architectural changes, new services, data migrations, cross-cutting |
For EACH classification, consider:
- Implementation time (the part engineers estimate)
- Testing time (the part engineers forget)
- Documentation time (the part engineers ignore)
- Review and iteration time (the part engineers deny)
- Maintenance burden going forward (the part nobody thinks about)
Multiply your initial estimate by 2.5. That is closer to reality.
Before building, exhaust what already exists.
Search order:
1. Does an existing library/package solve this? (npm, pip, crates, gems)
2. Does an existing service handle this? (Stripe, Auth0, Twilio, SendGrid)
3. Is there an open-source project that does 80% of what's needed?
4. Can an existing feature in the codebase be extended instead?
5. Is there a 10% effort path that delivers 80% of the value?
For EACH alternative found:
- What percentage of the requirement does it cover?
- What are its trade-offs? (cost, vendor lock-in, maintenance)
- How mature and maintained is it?
Invoke godmode:reference-engine during this phase to locate existing implementations. Invoke godmode:github-search to find open-source solutions before building from scratch.
Apply the thinking a principal engineer would bring to an architecture review.
Ask yourself:
- What would a staff engineer challenge about this approach?
- What are the hidden costs nobody is thinking about?
- Ongoing maintenance burden
- Cognitive complexity added to the codebase
- Testing surface area increase
- Documentation requirements
- Onboarding cost for future contributors
- What will bite you in 6 months?
- Scaling implications
- Security surface area
- Dependency rot
- Migration pain if requirements change
- Is this solving a symptom or the root cause?
- Are we adding complexity that could be avoided entirely?
Present the user with clear, honest options. Do not bury the lead.
ALWAYS present these options (adapt labels to the specific request):
A) Build as requested
- Effort: [classification]
- Trade-offs: [honest assessment]
B) Build a simplified version
- What it covers: [80% path description]
- What it skips: [the 20% that costs 80% of the effort]
- Effort: [classification]
C) Use an existing alternative
- What: [library/service/pattern name]
- Coverage: [what percentage of the need it addresses]
- Trade-offs: [cost, vendor lock-in, limitations]
D) Skip or defer
- Why: [honest rationale - not needed yet, premature, better timing later]
- What to do instead: [the nothing option, or a minimal placeholder]
Recommend ONE option with clear reasoning.
digraph rationale {
rankdir=TB;
node [shape=box style=filled];
request [label="User Request Received" fillcolor=lightyellow shape=doublecircle];
skip_check [label="Skip conditions met?\n(bug fix, trivial, pre-analyzed)" fillcolor=lightyellow shape=diamond];
pass_through [label="Pass to intent-discovery" fillcolor="#e8f5e9" shape=doublecircle];
reality [label="1. Reality Check\nIs this genuinely needed?" fillcolor="#e3f2fd"];
effort [label="2. Effort Analysis\nClassify true cost" fillcolor="#e3f2fd"];
alternatives [label="3. Alternative Paths\nSearch before building" fillcolor="#e3f2fd"];
senior [label="4. Senior Engineer Perspective\nHidden costs, 6-month view" fillcolor="#e3f2fd"];
decision [label="5. Decision Point\nPresent options A/B/C/D" fillcolor="#fff3e0"];
user_decides [label="User selects option" fillcolor=lightyellow shape=diamond];
proceed [label="Invoke intent-discovery\nwith validated rationale" fillcolor="#e8f5e9" shape=doublecircle];
defer [label="Work deferred or skipped\nDocument reasoning" fillcolor="#fce4ec"];
request -> skip_check;
skip_check -> pass_through [label="yes"];
skip_check -> reality [label="no"];
reality -> effort;
effort -> alternatives;
alternatives -> senior;
senior -> decision;
decision -> user_decides;
user_decides -> proceed [label="A or B"];
user_decides -> alternatives [label="C - research deeper"];
user_decides -> defer [label="D"];
}
Format your output as:
## Rationale Analysis: [Request Summary]
### Problem Statement
[What problem does this actually solve? Restate in your own words.]
### Effort Estimate
[Classification] — [Brief justification for the classification]
### Alternatives Considered
- [Alternative 1]: [coverage %] — [trade-off summary]
- [Alternative 2]: [coverage %] — [trade-off summary]
### Hidden Costs
- [Cost 1 nobody mentioned]
- [Cost 2 nobody mentioned]
### Options
**A) Build as requested** — [effort], [one-line trade-off]
**B) Simplified version** — [effort], [what you keep, what you cut]
**C) Existing alternative** — [name], [coverage], [trade-off]
**D) Skip/defer** — [why this might be the right call]
### Recommendation
[Your recommended option with clear reasoning]
Keep the analysis proportional to the request. A simple feature gets a concise analysis. A major architectural addition gets thorough treatment. Do not write a dissertation for a button color change.
Never:
Always:
When the user pushes back on the analysis:
When the request is genuinely trivial:
When urgency is real:
This skill fits into the GodMode workflow as the FIRST gate before creative work: