Use when starting a new project, gathering initial project context, or conducting a 5W2H interview. Also triggers on 'new project', 'project context', 'what are we building', 'tell me about the project', or when the discovery-agent begins its workflow. This is always the first document in any product documentation effort.
From pmnpx claudepluginhub etusdigital/etus-plugins --plugin pmThis skill uses the workspace's default tool permissions.
knowledge/guide.mdknowledge/template.mdSearches, 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.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides agent creation for Claude Code plugins with file templates, frontmatter specs (name, description, model), triggering examples, system prompts, and best practices.
The 5W2H interview is the structural foundation of Discovery. It captures essential project context in a repeatable, traceable format that subsequent phases (Planning, Design, Implementation) depend on. This skill now derives from the Opportunity Pack instead of re-eliciting the raw idea from scratch, so project-context.md becomes a structured synthesis of an already-covered problem space.
Reference: .claude/skills/orchestrator/dependency-graph.yaml
BLOCKS (must exist — auto-invoke if missing):
docs/ets/projects/{project-slug}/discovery/opportunity-pack.md — Ideation is now the root
artifact. project-context derives its structured 5W2H context from the
already-covered opportunity space.ENRICHES (improves output — warn if missing):
docs/ets/projects/{project-slug}/state/coverage-matrix.yaml — Helps confirm that actors,
JTBDs, journeys, use cases, and edge cases were actually covered before
5W2H synthesis.This skill is the first Discovery synthesis step after ideation.
MANDATORY: This skill MUST write its artifact to disk before declaring complete.
mkdir -p if neededIf the Write fails: Report the error to the user. Do NOT proceed to the next skill.
This skill follows the ETUS interaction standard. Your role is a thinking partner, not an interviewer — suggest alternatives, challenge assumptions, and explore what-ifs instead of only extracting information. These patterns exist to create a conversational, collaborative interview experience rather than a form-filling exercise.
One question per message — Ask one question, wait for the answer, then ask the next. This prevents overwhelming the user and produces more thoughtful, detailed answers. Use the AskUserQuestion tool when available for structured choices.
3-4 suggestions for choices — When the user needs to choose a direction (e.g., scope, product type, deployment model), present 3-4 concrete options with a brief description of each. Highlight your recommendation. Let the user pick before proceeding.
Propose approaches before generating — Before generating any content section, propose 2-3 approaches with tradeoffs. Example: "I see two ways to frame the technical context: (A) stack-first — lead with your tech choices, (B) constraint-first — lead with what limits your options. I recommend B because it surfaces risks early."
Present output section-by-section — Don't generate the full document at once. Present each major section (e.g., Project Identity, then Business Context, then Technical Context), ask "Does this capture it well? Anything to adjust?" and only proceed after approval.
Track outstanding questions — If something can't be answered now, classify it:
Multiple handoff options — At completion, present 3-4 next steps as options instead of a single fixed path.
Resume existing work — Before starting, check if the target artifact already exists at the expected path. If it does, ask the user: "I found an existing project-context.md at [path]. Should I continue from where it left off, or start fresh?" If resuming, read the document, summarize the current state, and continue from outstanding gaps.
Assess if full process is needed — If the user's input is already detailed with clear requirements, specific acceptance criteria, and defined scope, don't force the full interview. Confirm understanding briefly and offer to skip directly to document generation. Only run the full interactive process when there's genuine ambiguity to resolve.
This skill reads and writes persistent memory to maintain context across sessions.
On start (before any interaction):
docs/ets/.memory/project-state.md — know where the project isdocs/ets/.memory/decisions.md — don't re-question closed decisionsdocs/ets/.memory/preferences.md — apply user/team preferences silentlydocs/ets/.memory/patterns.md — apply discovered patternsOn finish (after saving artifact, before CLOSING SUMMARY):
project-state.md is updated automatically by the PostToolUse hook — do NOT edit it manually.python3 .claude/hooks/memory-write.py decision "<decision>" "<rationale>" "<this-skill-name>" "<phase>" "<tag1,tag2>"python3 .claude/hooks/memory-write.py preference "<preference>" "<this-skill-name>" "<category>"python3 .claude/hooks/memory-write.py pattern "<pattern>" "<this-skill-name>" "<applies_to>"The .memory/*.md files are read-only views generated automatically from memory.db. Never edit them directly.
Use full version when:
Use short version when:
Before generating content, challenge the framing with these questions (ask the most relevant 1-2, not all):
The goal is to sharpen the problem framing, not to block progress. If the user's framing is solid, acknowledge it and move on quickly. Only dig deeper when genuine misframing signals appear.
Load context in this order of priority:
docs/ets/projects/{project-slug}/discovery/opportunity-pack.md
first.docs/ets/projects/{project-slug}/state/coverage-matrix.yaml if
it exists.[upstream-context], read that file as
additional context.docs/ets/projects/{project-slug}/state/reports/ for any existing
project files or prior interview notes.This interview follows a one-question-at-a-time rhythm. Ask the primary question alone in one message, wait for the user's answer, then decide whether to ask a follow-up probe or move to the next 5W2H dimension. This conversational pace helps the user think deeply about each answer rather than rushing through a checklist.
Before diving into the 5W2H, ask a single scoping question to calibrate interview depth:
"Before we dive in, I'd like to understand the scope. Is this: (A) A new product from scratch — greenfield, no existing codebase or users (B) A new feature in an existing product — adding capability to something that already exists (C) A bug fix or improvement — enhancing or fixing something specific (D) Research / exploration — not sure yet, still figuring it out
I recommend picking the closest fit — we can adjust as we go."
Use the answer to calibrate:
Primary question (ask alone, one message):
"What are we building? Describe the product, service, or feature in your own words."
Follow-up probes — ask one at a time based on the answer:
Move to the next dimension once you have a clear picture of WHAT is being built.
Primary question (ask alone, one message):
"Who are the key people involved? Tell me about the end users and the stakeholders or decision-makers."
Follow-up probes — ask one at a time based on the answer:
Primary question (ask alone, one message):
"Where does this product live? Tell me about the deployment context — cloud, on-prem, browser, mobile, etc."
Follow-up probes — ask one at a time based on the answer:
Skip deeper probes if scope assessment was (B) or (C) and the user already covered this.
Primary question (ask alone, one message):
"When does this need to ship? What's driving the timeline?"
Follow-up probes — ask one at a time based on the answer:
Primary question (ask alone, one message):
"Why are we building this? What specific problem does it solve?"
Follow-up probes — ask one at a time based on the answer:
Primary question (ask alone, one message):
"How will we approach this? Tell me about the technical and organizational constraints."
Follow-up probes — ask one at a time based on the answer:
Primary question (ask alone, one message):
"What resources do we have? Budget, team size, and any external dependencies."
Follow-up probes — ask one at a time based on the answer:
Skip this dimension entirely for scope (C) or (D) unless the user brings it up.
After all relevant dimensions are covered, present a brief synthesis of what you captured and ask: "Does this summary feel complete, or did we miss anything important?"
The generated docs/ets/projects/{project-slug}/discovery/project-context.md contains:
All answers are tied to the 5W2H framework for easy cross-referencing in Planning and Design phases.
references/template.md for the project-context.md document template and structure.references/guide.md for interview best practices: active listening, clarifying ambiguous answers, capturing constraints without bias.This skill is the first Discovery synthesis step after ideation. Upon completion, present the user with handoff options (see CLOSING SUMMARY) — the recommended path is product-vision generation via the discovery-agent.
This skill has no upstream document dependencies. Input comes from the user interview. Aim for substantive answers (not single-word responses) for at least 5 of the 7 5W2H dimensions before generating — this ensures enough context for downstream skills to work effectively.
Before marking this document as COMPLETE:
If any check fails → mark document as DRAFT with <!-- STATUS: DRAFT --> at top.
After saving and validating, display:
✅ project-context.md saved to `docs/ets/projects/{project-slug}/discovery/project-context.md`
Status: [COMPLETE | DRAFT]
IDs generated: N/A (this document establishes context, not traceable IDs)
Then present these options using AskUserQuestion (or as a numbered list if AskUserQuestion is unavailable):
Wait for the user to choose before taking any action. Do not auto-proceed to the next skill.
docs/ets/projects/{project-slug}/discovery/ for existing project-context.mdInput: Interview notes from Step 3
Action: Generate the document one major section at a time, using the template from knowledge/template.md. For each section:
Section order:
Output: Approved sections assembled into complete project-context.md
Integration: Consumed by product-vision skill (BLOCKS dependency)
docs/ets/projects/{project-slug}/discovery/ — create if missingdocs/ets/projects/{project-slug}/discovery/project-context.md using the Write tooldocs/ets/projects/{project-slug}/discovery/project-context.md) + paths to upstream documents (none — this is the root document)"Document saved to
docs/ets/projects/{project-slug}/discovery/project-context.md. The spec reviewer approved it. Please review and let me know if you want any changes before we proceed." Wait for the user's response. If they request changes, make them and re-run the spec review. Only proceed to validation after user approval.
| Error | Severity | Recovery | Fallback |
|---|---|---|---|
| User provides single-word answers | Medium | Re-ask with specific examples | Accept minimal answer, mark section as thin |
| User refuses to answer a 5W2H question | Low | Skip question, note as "Not provided" | Proceed — downstream skills will ask if needed |
| Existing project-context.md found | Info | Ask: "Update existing or start fresh?" | Default to update |
| Output validation fails | High | Mark as DRAFT, flag specific gaps | Proceed — product-vision will inherit gaps |
Before finalizing the document, run this internal metacognitive check:
| Confidence | Action |
|---|---|
| LOW on any section | Ask the user ONE targeted question before finalizing |
| MEDIUM | Flag inline with <!-- CONFIDENCE: MEDIUM — [reason] --> and proceed |
| HIGH | Proceed directly to OUTPUT VALIDATION |