skills/opportunity-map/SKILL.md
Produces an opportunity map that assesses discovered customer needs against product capabilities, determines which to pursue, and sequences them. Takes any discovery output (JTBD analysis, research findings, lean canvas) as input and applies inside-out assessment to produce pursue/monitor/defer decisions. Use when the user asks what to focus on, what to build next, which opportunities to prioritize, or how to sequence product work. Also triggers when the user says "help me decide what to pursue" or "we have too many opportunities, help us focus." Do NOT use for detailed requirements (that's PRD) or for understanding customer needs (that's discovery).
npx skillsauth add xoai/sage opportunity-mapInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Produce a structured assessment of which discovered opportunities to pursue, based on both customer evidence (outside-in) and organizational capability (inside-out). The output is a living decision document — expected to be reviewed and updated regularly as new data arrives.
Deliverable type: document
FIX (update): Update an existing opportunity map with new information — revised scores after research, changed decisions after a competitor move, resolved dependencies after shipping a feature. Don't re-run the full assessment. Update the affected scores/decisions, adjust sequencing if needed, and note what changed and why. Minutes.
BUILD (light): Quick assessment. Score the top 3-5 opportunities from discovery, do a lightweight capability check (existing capability? unique advantage?), make pursue/defer decisions without detailed dependency mapping or sequencing rationale. Produces a focused decision sufficient to move into a PRD. 10-15 minutes.
ARCHITECT (full): Complete assessment. All opportunities scored with capability fit, full dependency map, detailed sequencing with rationale, monitor/defer lists with signals, confidence tracking per opportunity, review plan with triggers. The comprehensive decision document. 30-45 minutes.
This skill requires structured discovery output. Accepted inputs:
If the input has opportunity scores (Importance + Satisfaction → Score), use them directly. If not, Step 1 applies lightweight scoring.
If NO discovery work exists: recommend running a discovery skill first
(e.g., jtbd). Opportunity mapping without customer evidence produces
opinion-based prioritization — flag this prominently if the user insists.
Read first: references/opportunity-methodology.md
Confirm with the user in ONE message:
If the user provides discovery output but no capability context, ask for it explicitly: "The opportunity scores tell me what customers need. To assess which opportunities YOU should pursue, I need to understand your capabilities and constraints. What does your team do well? What data or technology advantages do you have?"
If discovery output includes opportunity scores, import them directly.
If not, walk through each identified need and apply the lightweight
scoring from references/opportunity-methodology.md:
Tag each opportunity's confidence level based on the evidence behind it:
Present the scored landscape to the user for review before proceeding. Scores are judgment calls — the user may adjust based on context the discovery didn't capture.
For each opportunity scoring ≥10, assess organizational capability:
Three questions per opportunity:
Capture as a capability assessment table. Keep it structured but qualitative — false precision is worse than honest judgment here.
If the user hasn't provided enough capability context, this step will surface the gaps: "I can't assess capability fit for opportunity O3 because I don't know what transaction data you have access to. Can you clarify?"
Examine the relationships between opportunities:
The job process map from JTBD (if available) provides the natural dependency structure — needs at earlier job stages often need to be addressed before needs at later stages.
Document as a simple dependency map (text or diagram). Identify:
For each opportunity, assign one of three decisions:
Pursue (limit to 2-4 opportunities):
Monitor (track, don't commit):
Defer (explicitly not now):
Hard rule: If more than 4 opportunities are "pursue," push back. "You've selected [N] opportunities to pursue. With [team size/capacity], this means each gets roughly [fraction] of available resources. Is that enough to make real progress on any of them? Consider: which 2-3 would you pursue if you could only pick that many?"
For the "pursue" opportunities, determine order using the criteria from
references/opportunity-methodology.md:
For each position in the sequence, explain why it's in that order. The rationale matters more than the ranking — it helps the team understand and commit to the plan.
The opportunity map is a living document. Define:
Before presenting, validate:
Save to .sage/docs/opportunity-map.md using the
template from templates/opportunity-map-template.md.
Append decisions to .sage/decisions.md recording pursue/
monitor/defer decisions, key rationale, and sequencing. Update the
"Current Artifacts" section.
Present to user: "Here's the opportunity map. I recommend pursuing [N] opportunities: [X, Y, Z]. [X] comes first because [rationale]. [M] opportunities are on the monitor list — the key signal to watch is [signal]. Want to discuss any of the decisions?"
MUST:
references/opportunity-methodology.md before startingSHOULD:
MAY:
No capability context provided: Don't produce a map with only outside-in scores. Ask for capability context first. If the user can't provide it, the map will note "capability fit unassessed" for all opportunities and recommend the user complete this assessment with their team.
All opportunities score high: This usually means the satisfaction scores are too uniformly low (common when the product is new or the category is immature). Differentiate by asking: "Among these, which need do users complain about MOST vocally?" or "Which of these, if solved, would be the strongest reason to choose your product?"
User wants to pursue everything: This is the most common failure mode in real PM work. Push back with: "Pursuing [N] opportunities with [capacity] means each gets [fraction] of focus. History suggests this produces mediocre progress on everything rather than breakthrough progress on anything. Which 2-3 would move the needle most?"
Discovery input is a feature list, not needs: If the user provides "we want to build: notification system, dashboard, AI categorization" instead of customer needs, redirect: "These sound like solutions. Let's back up — what customer needs do these address? Running a JTBD analysis would give us the needs to map these solutions against."
Opportunity map becomes a one-time artifact: Remind the user that the map is designed to be reviewed regularly. "This map reflects what we know today. I've set a review trigger for [date/event]. When new data comes in, we should revisit the scores and decisions."
tools
Captures agent mistakes, corrections, and discovered gotchas so they are not repeated. Use when: (1) a command or operation fails unexpectedly, (2) the user corrects the agent, (3) the agent discovers non-obvious behavior through debugging, (4) an API or tool behaves differently than expected, (5) a better approach is found for a recurring task. Also searches past learnings before starting tasks to avoid known pitfalls. Activate alongside the sage-memory skill — they share the same MCP backend but serve different purposes (sage-memory = codebase knowledge, sage-self-learning = agent mistakes and gotchas).
development
Typed knowledge graph stored in sage-memory. Use when creating or querying structured entities (Person, Project, Task, Event, Document), linking related objects, checking dependencies, planning multi-step actions as graph transformations, or when skills need to share structured state. Trigger on "remember that X is Y", "what do I know about", "link X to Y", "show dependencies", "what blocks X", entity CRUD, cross-skill data access, or any request involving structured relationships between things.
tools
Integrates sage-memory into Sage workflows. Teaches the agent when to remember (store findings during work), when to recall (search memory at session start and task start), and how to learn (structured knowledge capture via sage learn). Use when the user mentions memory, remember, recall, learn, capture knowledge, onboard to codebase, or when starting any session where sage-memory MCP tools are available.
tools
Captures agent mistakes, corrections, and discovered gotchas so they are not repeated. Use when: (1) a command or operation fails unexpectedly, (2) the user corrects the agent, (3) the agent discovers non-obvious behavior through debugging, (4) an API or tool behaves differently than expected, (5) a better approach is found for a recurring task. Also searches past learnings before starting tasks to avoid known pitfalls. Activate alongside the sage-memory skill — they share the same MCP backend but serve different purposes (sage-memory = codebase knowledge, sage-self-learning = agent mistakes and gotchas).