Use when extracting a raw idea into a coverage-driven discovery package before writing product docs. Also triggers on 'ideate', 'brainstorm a feature', 'explore the problem space', 'capture all use cases', 'JTBD', 'journeys', 'edge cases', or 'turn this idea into something implementation-ready'.
From pmnpx claudepluginhub etusdigital/etus-plugins --plugin pmThis skill uses the workspace's default tool permissions.
knowledge/coverage-matrix.yamlknowledge/elicitation-archetypes/api-integration.mdknowledge/elicitation-archetypes/import-export.mdknowledge/elicitation-archetypes/workflow-approval.mdknowledge/elicitation-state.yamlknowledge/story-probes.mdknowledge/template.mdknowledge/vague-response-escalation.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 implementation of event-driven hooks in Claude Code plugins using prompt-based validation and bash commands for PreToolUse, Stop, and session events.
This skill creates the opening diamond of the ETUS workflow.
Its job is not to jump straight into solutions. Its job is to:
The ideate phase exists because strong brainstorming without strong elicitation still leaves blind spots. This skill is coverage-driven, not merely interview-driven.
The ideate skill exposes a hybrid interface:
/ideate runs the full flow end-to-end/ideate <subcommand> runs one semantic block and saves checkpointsSupported public subcommands:
ingestproblemactorsjobsjourneyscasesedgesassumptionsbrainstormsynthstatusInterpretation rules:
status is read-only and should inspect progress, blockers, and the next recommended step.Reference: .claude/skills/orchestrator/dependency-graph.yaml
BLOCKS: None. This is the new root artifact for every mode.
ENRICHES (load silently if available):
docs/ets/.memory/decisions.mddocs/ets/.memory/preferences.mddocs/ets/.memory/patterns.mdThis skill MUST write both of its outputs before declaring completion:
docs/ets/projects/{project-slug}/discovery/opportunity-pack.mddocs/ets/projects/{project-slug}/state/coverage-matrix.yamlIf either write fails, report the failure and stop.
Subcommand checkpoint behavior:
opportunity-pack.mdcoverage-matrix.yamlbrainstorm must not mark itself complete if minimum problem coverage is not satisfiedsynth must not conclude if critical unresolved items remainThis skill follows the ETUS interaction standard, but with an important twist: it separates elicitation from ideation.
resolved, assumed, or open.The ideate phase accepts mixed-source input. Treat all of the following as valid:
Normalize inputs into four buckets:
If sources disagree, record the contradiction instead of silently resolving it.
BEFORE asking anything in any module:
knowledge/elicitation-state.yamlRun these modules in order. Skip only when the user explicitly confirms the module is irrelevant for this work item.
Public subcommand mapping:
ingest -> Source Ingestionproblem -> Problem Framingactors -> Actor Mapjobs -> JTBD Extractionjourneys -> Journey Sweepcases -> Use Case Matrixedges -> Edge Case Sweepassumptions -> Hypotheses & Unknownsbrainstorm -> Solution Direction Brainstormsynth -> Synthesis & Prioritized Handoffstatus -> Progress inspection onlyknowledge/story-probes.md for additional story-based probes.After Problem Framing: propose likely archetypes based on stories collected. "Based on what you've told me, this looks like a [Workflow/Approval | API/Integration | Import/Export] pattern. Does that sound right?" Store detected archetypes in elicitation-state.yaml (active_archetypes). Archetype probes run AFTER Journey Sweep.
knowledge/story-probes.md for additional actor-discovery probes..claude/skills/discovery/jtbd-extractor/SKILL.md as the specialist guide..claude/skills/discovery/journey-sweep/SKILL.md as the specialist guide.After Journey Sweep module completes:
.claude/skills/discovery/use-case-matrix/SKILL.md as the specialist guide..claude/skills/discovery/edge-case-sweep/SKILL.md as the specialist guide..claude/skills/discovery/assumption-audit/SKILL.md as the specialist guide.Brainstorm is BLOCKED until:
= 1 actor
= 1 JTBD
= 1 journey
= 3 story snapshots (SNAP-#)
Summarize what should feed the next artifact:
Source of truth for mandatory dimensions: MODE_DIMENSION_RULES in .claude/hooks/state_defaults.py.
Coverage-matrix.yaml stores dimension status but does NOT define which are mandatory.
The active mode determines which dimensions must be "covered" before the gate passes.
The phase is not complete until the coverage matrix reaches the minimum threshold for the detected mode.
= 2 actors
= 2 JTBDs
= 2 journeys
= 4 use cases
= 3 edge cases
= 3 assumptions
= 1 primary actor
= 1 JTBD
= 1 journey
= 2 use cases
= 2 edge cases
= 1 assumption
= 1 affected actor
= 1 failure journey
= 1 reproduction use case
= 2 edge/failure states
= 1 decision to make
= 2 hypotheses or options
= 1 success criterion for the spike outcome
Use knowledge/template.md.
This document must contain:
Use knowledge/coverage-matrix.yaml.
This file tracks:
ACT-#JTBD-#JOUR-#UC-#EDGE-#ASM-#not_started | in_progress | covered | assumed | deferred | blockedFB-#, PRD-F-#, US-#, impl-#)Before completion, validate:
If any item fails, mark the opportunity pack as draft and tell the user what is missing.
The gate output must explicitly say:
/ideate jobs)After each extracted story, BEFORE moving to the next question:
When an answer matches any pattern in knowledge/vague-response-escalation.md:
When the user responds "I don't know", "good question", "I never thought about this": Ask: "Help me classify this: A) Do you know who would know? → I register as ASM-# open with owner B) Is it safe to leave for later? → I register as ASM-# deferred C) Could this change what we're building? → I need to explore more" If answer is C: ask 2-3 more questions before moving on.
After configurable threshold (default: 15 substantive questions):
knowledge/template.md for the Opportunity Pack structure.knowledge/coverage-matrix.yaml for the machine-readable coverage format.knowledge/elicitation-state.yaml for the interview state template.knowledge/story-probes.md for story-based elicitation probes by module.knowledge/vague-response-escalation.md for vague-response patterns and escalation questions..claude/skills/discovery/jtbd-extractor/SKILL.md for JTBD extraction..claude/skills/discovery/journey-sweep/SKILL.md for journey mapping..claude/skills/discovery/use-case-matrix/SKILL.md for use-case coverage..claude/skills/discovery/edge-case-sweep/SKILL.md for exception coverage..claude/skills/discovery/assumption-audit/SKILL.md for explicit unknown management.After saving both artifacts, display:
Ideate phase complete.
Saved:
- docs/ets/projects/{project-slug}/discovery/opportunity-pack.md
- docs/ets/projects/{project-slug}/state/coverage-matrix.yaml
Coverage status:
- Actors: [count]
- JTBDs: [count]
- Journeys: [count]
- Use cases: [count]
- Edge cases: [count]
- Assumptions: [count]
Checkpoints:
- Last completed step: [step]
- Next recommended step: [step or downstream command]
Next recommended step:
- Product -> /discover
- Feature -> /feature
- Bug -> /bugfix
- Spike -> /spike