From eai-gofer
Validate the business problem using 5 Whys root-cause analysis and stakeholder mapping.
How this skill is triggered — by the user, by Claude, or both
Slash command
/eai-gofer:0a_problem_validationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Before doing stage/helper work:
Before doing stage/helper work:
.specify/.gofer-version.specify/commands/0_business_scenario.md.specify/templates/spec-template.md.specify/scripts/bash/create-new-feature.sh.specify/scripts/node/parse-stage-command.mjs.specify/scripts/hooks/post-tool-use.mjs.specify/scripts/powershell/install-optional-tools.ps1.specify/templates/gofer-model-policy.yaml.specify/memory/gofer-model-policy.yaml.specify/specs/.specify/memory/AGENTS.md, CLAUDE.md, .claude/settings.jsonAGENTS.md.github/copilot-instructions.mdnode .specify/scripts/node/gofer-workspace-check.mjs --host codex --jsonBefore spawning agents, calling tools, or loading large files:
.specify/memory/gofer-model-policy.yaml as the repo-owned source of truth for simple, medium, hard, and arbiter model routing. If it is missing, run /gofer:bootstrap-workspace before continuing..specify/specs/{feature}/context-bundle.md, then work from summaries.$ARGUMENTS
You MUST consider the user input before proceeding (if not empty).
This stage sits BEFORE /1_gofer_research in the pipeline. Your job is to:
Output: .specify/specs/{feature}/problem-brief.md,
.specify/specs/{feature}/assumptions.md
.specify/scripts/bash/check-context-health.sh
If no problem description provided in $ARGUMENTS:
Use the AskUserQuestion tool:
"What business problem are you trying to solve?"
| Option | Description |
|---|---|
| Custom | Describe the problem in your own words (Recommended) |
Encourage the user to describe the PROBLEM, not the SOLUTION. If they describe a solution ("I need a dashboard"), probe deeper: "What problem would the dashboard solve?"
Once you have the problem statement:
.specify/scripts/bash/create-new-feature.sh --json "$DESCRIPTION" with
--short-name "your-short-name" to create the feature directoryParse the user's problem statement and extract:
Present back to the user:
"Let me make sure I understand the problem correctly:"
| Element | My Understanding |
|---|---|
| Core Problem | [extracted] |
| Who's Affected | [extracted] |
| Current Impact | [extracted or "unknown"] |
| Implied Solution | [extracted or "none"] |
Use AskUserQuestion: "Is this correct? Would you like to adjust anything?"
Spawn the business-problem-validator agent:
Task: subagent_type="business-problem-validator", model="sonnet"
Prompt: "Validate this business problem using 5 Whys analysis:
Problem: [USER'S PROBLEM STATEMENT]
Context: [ANY ADDITIONAL CONTEXT]
Perform:
1. 5 Whys root cause analysis
2. Stakeholder impact mapping
3. Business case assessment
4. Problem-solution fit check
Return structured report (<2000 tokens)."
Spawn the market scanner agent in parallel with the problem validator:
Task: subagent_type="research-market-scanner", model="haiku"
Prompt: "Research the market landscape for this business problem:
Problem: [USER'S PROBLEM STATEMENT]
Industry: [EXTRACTED FROM CONTEXT]
Find:
1. Commercial SaaS solutions that address this
2. Open-source alternatives
3. Industry standards or regulations
4. Build vs Buy analysis
Return structured report (<2000 tokens)."
Run both agents in parallel.
Once both agents complete:
Use AskUserQuestion to confirm the root cause:
"Based on my analysis, the root cause appears to be:"
| Element | Finding |
|---|---|
| Stated Problem | [What user said] |
| Root Cause | [From 5 Whys] |
| Gap | [How far stated problem is from root cause] |
| Option | Description |
|---|---|
| A. Root cause is correct | Proceed with this root cause |
| B. Root cause needs adjustment | Let me clarify further |
| C. I want to solve the symptom, not root | Focus on the stated problem |
Use AskUserQuestion to get build/buy decision:
"I found these existing solutions in the market:"
| Option | Description |
|---|---|
| A. Build custom | No existing solution fits — we should build from scratch |
| B. Buy/subscribe | [Solution X] looks like a good fit — investigate further |
| C. Hybrid | Use [Solution X] as foundation, customize on top |
| D. Not sure | I need more information to decide |
Display the impact assessment:
╔══════════════════════════════════════════════════════╗
║ BUSINESS CASE SUMMARY ║
╠══════════════════════════════════════════════════════╣
║ ║
║ Problem: [Root cause in plain English] ║
║ ║
║ Cost of Doing Nothing: [$/hours per year] ║
║ Estimated Value of Solving: [$/hours per year] ║
║ Payback Period: [weeks/months] ║
║ ║
║ Software Needed? [Yes/No/Partial] ║
║ Recommendation: [PROCEED/INVESTIGATE/RECONSIDER] ║
║ ║
╚══════════════════════════════════════════════════════╝
Write to {FEATURE_DIR}/problem-brief.md using the template at
.specify/templates/problem-brief-template.md.
Populate with:
Write to {FEATURE_DIR}/assumptions.md using the template at
.specify/templates/assumptions-template.md.
Extract assumptions from:
Mark ALL assumptions as UNVALIDATED at this stage.
Populate the Drift Controls table with an owner, expiry/revalidation date,
trigger, and reopen stage for every assumption that could invalidate the plan
later.
Regardless of the competitiveAnalysisEnabled constitutional setting, this
stage MUST emit BOTH baseline traceability artifacts so downstream stages and
audits can find them at deterministic paths:
{FEATURE_DIR}/market-analysis.md — competitive landscape and build-vs-buy
reasoning. When competitiveAnalysisEnabled=false, this file is still created
and contains a clearly worded disabled-state notice explaining that
competitive analysis was skipped per constitution and that the section is
reserved for future enrichment.{FEATURE_DIR}/business-analysis.md — business case, ROI sketch,
cost-of-doing-nothing summary, and stakeholder impact mapping. Emitted
unconditionally; this is the primary record consumed by
/7a_stakeholder_comms and the validation council.When competitiveAnalysisEnabled=false, the market-analysis.md file includes
the following stub at the top so consumers can detect the disabled state
programmatically:
> **Notice:** Competitive analysis is disabled in this project's constitution
> (`competitiveAnalysisEnabled: false`). This file is emitted as a baseline
> traceability artifact only and contains no competitor research. Re-enable in
> `.specify/memory/constitution.md` if you want full market analysis on the next
> pipeline run.
Both files participate in the same audit trail and are referenced from the
7_gofer_save checkpoint and the 7a_stakeholder_comms package.
After saving artifacts:
════════════════════════════════════════════════════════════════
PROBLEM VALIDATED: [Feature Name]
════════════════════════════════════════════════════════════════
Root Cause: [One sentence]
Business Case: [Cost of doing nothing] vs [Value of solving]
Market: [Build/Buy/Hybrid decision]
Assumptions: [N] tracked ([N] critical)
Artifacts:
- {FEATURE_DIR}/problem-brief.md
- {FEATURE_DIR}/assumptions.md
- {FEATURE_DIR}/market-analysis.md
- {FEATURE_DIR}/business-analysis.md
Recommendation: [PROCEED/INVESTIGATE/RECONSIDER]
════════════════════════════════════════════════════════════════
If recommendation is PROCEED or user confirms they want to continue:
AUTO-CHAIN (MANDATORY): You MUST immediately invoke the next pipeline stage by calling the Skill tool with skill="/1_gofer_research". Do NOT ask the user for confirmation. Do NOT output "Ready for next stage". Just invoke the skill NOW.
If recommendation is RECONSIDER:
Present alternatives and let user decide whether to proceed or stop.
.specify/scripts/bash/log-stage.sh 0a_problem_validation --complete --tokens [N] --compactions [N]
All outputs from this stage are written in business language by default. This
stage sets the tone for the entire pipeline when audience: business is set.
Check .specify/memory/constitution.md for audience setting. If
audience: business is set, pass this context to all subsequent pipeline stages
so they include plain-English companion sections in their outputs.
/0a_problem_validation ← YOU ARE HERE
↓ AUTO
/1_gofer_research
↓ AUTO
/2_gofer_specify
↓ AUTO
... (rest of pipeline)
↓ AUTO
/7a_stakeholder_comms
Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub eai-tools/eai-gofer