Scan Opportunities
Discover new feature opportunities and add them to .feature-radar/opportunities/.
Deep Read
Behavioral Directives
Additional directive for this skill:
- Filter aggressively — Do NOT create opportunity files for weak signals. If you can't cite concrete demand evidence, skip it.
Brainstorm Intake
Enter Brainstorm Intake if ANY of these are true:
- User says "I have an idea", "what if we...", "I was thinking about...", "brainstorm"
- User describes a problem without a clear feature shape
- User's input lacks specific demand signals, impact/effort estimates, or a concrete feature name
Skip Brainstorm Intake if ALL of these are true:
- User gave a specific directive like "scan opportunities", "scan ecosystem", "find new features"
- User's input does not contain a personal idea or vague exploration
If skipping, jump directly to ## Workflow.
Phase 1: Core Questions
Ask these one at a time. Prefer multiple-choice when possible.
- Problem space — "What problem are you trying to solve, or what experience do you want to improve?"
- Cross-reference: search existing
opportunities/ and archive/ for related themes.
- If a match is found, surface it: "Is this related to #{nn} {title}, or a completely different direction?"
- Target user — "Who would benefit from this feature?"
- Offer choices derived from
base.md Project Context if available.
- Spark — "What triggered this idea?"
- (A) A pain point from my own usage
- (B) Saw a similar feature in another tool/project
- (C) New technical possibilities (new API, new library)
- (D) Community/user feedback
- (E) Pure creative exploration
Phase 2: Adaptive Depth
After Phase 1, assess idea maturity:
Mature (has clear problem + user + demand signal):
→ Ask 1 closing question to confirm scope, then proceed to Exit.
Emerging (has problem but fuzzy shape):
→ Ask up to 3 more questions to sharpen:
- "What does the usage look like in your mind?"
- "Have you seen an implementation you particularly liked?" (if yes, consider creating a
references/ entry)
- "What's the minimum scope that would feel useful?" (MVP scoping)
Raw (pure exploration, no clear problem yet):
→ Switch to open-ended dialogue. Ask up to 5 more questions:
- Explore adjacent possibilities
- Challenge assumptions: "If we don't build this, what's the biggest loss?"
- Seek demand signals: "Has anyone (including yourself) run into this problem repeatedly?"
- Stop when: a clear feature shape emerges, OR user says "enough"
Exit: Output Options
Summarize the refined idea:
"Here's a summary of our discussion:
- Problem: {problem}
- Target user: {target user}
- Direction: {feature shape}
- Demand signal: {demand evidence or 'creative exploration'}
- Related items: {related opportunities/archive/specs, or 'none found'}"
Then ask:
"What would you like to do next?"
- (A) Proceed to scan — use this direction as focused context, search all 6 sources for supporting evidence and related opportunities
- (B) Save as opportunity draft — write to
opportunities/{nn}-{slug}.md with Status: Open, decide later whether to scan
If (A): Pass the summary as context into ## Workflow Step 1, with a narrowed focus on the identified direction.
If (B): Create the opportunity file following ../feature-radar/references/SPEC.md § 3.3, populate fields from the intake summary, then run the Annotation Checkpoint per ../feature-radar/references/WORKFLOW-PATTERNS.md. After approval, present Completion Summary and suggest "run a focused scan around this direction" as a next step.
Workflow
- Identify sources — where to look for ideas:
- User signals: issues, discussions, forum posts, support requests
- Creative exploration: "what if we..." brainstorming, combining existing features in new ways
- Ecosystem evolution: adjacent tools, emerging standards, new capabilities in dependencies
- Technical possibilities: new APIs, libraries, or techniques that enable things previously impossible
- Cross-project research: interesting approaches from related projects (from base.md Inspiration Sources)
- Community conversations: Reddit, HN, Discord, blog posts
- If Brainstorm Intake was completed: use the intake summary as the primary focus direction. Prioritize sources most relevant to the identified problem space. Still scan all 6 source types, but weight results toward the intake direction.
- Scan and collect — for each source, look for:
- Unmet user needs and recurring pain points
- Feature ideas with demand signals (upvotes, comments, multiple independent asks)
- Creative approaches that could enhance existing functionality
- Technical breakthroughs that unlock new possibilities
- Patterns emerging across multiple tools
- Deduplicate — check against existing
opportunities/ and archive/ files
- Cross-reference codebase — for each candidate, search the project to check:
- Already partially implemented? → mark as "Partially Done"
- Does existing architecture support this? → note in "Design Notes"
- Related TODOs or FIXMEs in the code? → cite them
- Evaluate each candidate:
| Criterion |
Question |
| Real user demand |
Are users actually asking for this, or does it solve a latent need? |
| Value uplift |
Does this meaningfully improve the user experience or unlock new possibilities? |
| Innovation potential |
Does this introduce a creative breakthrough or unique approach? |
| Effort / impact ratio |
Is the cost justified by the benefit? |
| Architectural fit |
Does it align with our core philosophy? |
| Ecosystem timing |
Is the ecosystem ready? |
- Create opportunity files — for each viable candidate, write
.feature-radar/opportunities/{nn}-{slug}.md
- Checkpoint — Review & Annotate per
../feature-radar/references/WORKFLOW-PATTERNS.md
Present scan results using this format:
Scan complete: {n} new opportunities
| # | Opportunity | Demand Signal | Impact | Effort | Source |
|---|------------|---------------|--------|--------|--------|
| {nn} | {title} | {evidence} | H/M/L | H/M/L | {where found} |
- Update base.md — increment opportunities count, update Value & Innovation Landscape if needed
Opportunity File Format
Use the format defined in ../feature-radar/references/SPEC.md § 3.3 (opportunities/{nn}-{slug}.md).
Guidelines
- Don't create opportunities for every idea you find. Filter aggressively — weak signal wastes attention.
- 1 issue with no comments = weak signal. Multiple independent asks = strong signal.
- Creative ideas without existing demand can still be valid — evaluate innovation potential separately.
- Write an honest "Our Position" — it's OK to say "we don't want this" or "not yet."
- Number sequentially from the highest existing number in
opportunities/ and archive/.
- If scanning reveals problems others have that we've already solved, add to
references/ instead.
Example Output
→ Created opportunities/07-streaming-output.md (Impact: High, Effort: Medium)
→ Skipped: "hook system" already exists as opportunities/03-hook-system.md
→ Updated base.md: opportunities 6 → 7
Brainstorm Intake Example
User: "I was thinking... what if we could automatically detect when a feature is getting stale?"
Phase 1:
Q1 (Problem): "What problem are you trying to solve?" → Feature opportunities sitting unreviewed
Cross-ref: Found #05 role-assignment — user confirms: different direction
Q2 (Target): "Who benefits?" → Project maintainers managing backlogs
Q3 (Spark): (A) Pain point from own usage
Phase 2 (Emerging → 2 follow-ups):
Q4: "What does usage look like?" → Periodic check, flag items older than N days with no activity
Q5: "Minimum useful scope?" → Just a reminder in completion summary, no automation needed
Exit summary:
Problem: Stale opportunities go unnoticed
Target user: Project maintainers
Direction: Staleness detection in completion summaries
Demand signal: Personal pain point (single user)
Related: None found
User chose: (B) Save as opportunity draft
→ Created opportunities/06-staleness-detection.md (Impact: Low, Effort: Low)
→ Suggested next step: "run a focused scan around staleness detection"
Completion Summary
Follow the template in ../feature-radar/references/DIRECTIVES.md, with skill name "Scan Complete".
1---2name: feature-radar-scan3description: Discover new feature opportunities from creative brainstorming, user feedback, ecosystem trends, and cross-project research. Writes results to .feature-radar/opportunities/. MUST use this skill when the user wants to GENERATE new ideas — not evaluate existing ones. Trigger on any request to brainstorm, explore, discover, or find new feature ideas, even casual ones like "I wonder what else we could do" or "give me ideas". Use when the user: - Asks "what else could we build?", "give me feature ideas", "what are we missing?" - Wants to brainstorm, explore new directions, or refresh the opportunity backlog - Says "scan ecosystem", "scan opportunities", "find new features" - Asks to review GitHub issues, community feedback, or adjacent tools for inspiration - Mentions "explore", "discover", or "new directions" in a feature context - Has a vague idea: "I have an idea", "what if we...", "I was thinking about..." Do NOT use for evaluating/prioritizing existing features — that's feature-radar's job.4---56# Scan Opportunities78Discover new feature opportunities and add them to `.feature-radar/opportunities/`.910## Deep Read1112<HARD-GATE>13Read and follow `../feature-radar/references/DEEP-READ.md` — complete all 6 steps before proceeding.14</HARD-GATE>1516## Behavioral Directives1718<HARD-GATE>19Read and follow `../feature-radar/references/DIRECTIVES.md`.2021Additional directive for this skill:22- **Filter aggressively** — Do NOT create opportunity files for weak signals. If you can't cite concrete demand evidence, skip it.23</HARD-GATE>2425## Brainstorm Intake2627<HARD-GATE>28Evaluate whether the user arrived with a vague or exploratory idea.2930Enter Brainstorm Intake if ANY of these are true:31- User says "I have an idea", "what if we...", "I was thinking about...", "brainstorm"32- User describes a problem without a clear feature shape33- User's input lacks specific demand signals, impact/effort estimates, or a concrete feature name3435Skip Brainstorm Intake if ALL of these are true:36- User gave a specific directive like "scan opportunities", "scan ecosystem", "find new features"37- User's input does not contain a personal idea or vague exploration3839If skipping, jump directly to ## Workflow.40</HARD-GATE>4142### Phase 1: Core Questions4344Ask these one at a time. Prefer multiple-choice when possible.45461. **Problem space** — "What problem are you trying to solve, or what experience do you want to improve?"47 - Cross-reference: search existing `opportunities/` and `archive/` for related themes.48 - If a match is found, surface it: "Is this related to #{nn} {title}, or a completely different direction?"492. **Target user** — "Who would benefit from this feature?"50 - Offer choices derived from `base.md` Project Context if available.513. **Spark** — "What triggered this idea?"52 - (A) A pain point from my own usage53 - (B) Saw a similar feature in another tool/project54 - (C) New technical possibilities (new API, new library)55 - (D) Community/user feedback56 - (E) Pure creative exploration5758### Phase 2: Adaptive Depth5960After Phase 1, assess idea maturity:6162**Mature** (has clear problem + user + demand signal):63→ Ask 1 closing question to confirm scope, then proceed to Exit.6465**Emerging** (has problem but fuzzy shape):66→ Ask up to 3 more questions to sharpen:67 - "What does the usage look like in your mind?"68 - "Have you seen an implementation you particularly liked?" (if yes, consider creating a `references/` entry)69 - "What's the minimum scope that would feel useful?" (MVP scoping)7071**Raw** (pure exploration, no clear problem yet):72→ Switch to open-ended dialogue. Ask up to 5 more questions:73 - Explore adjacent possibilities74 - Challenge assumptions: "If we don't build this, what's the biggest loss?"75 - Seek demand signals: "Has anyone (including yourself) run into this problem repeatedly?"76 - Stop when: a clear feature shape emerges, OR user says "enough"7778### Exit: Output Options7980Summarize the refined idea:8182"Here's a summary of our discussion:83- **Problem:** {problem}84- **Target user:** {target user}85- **Direction:** {feature shape}86- **Demand signal:** {demand evidence or 'creative exploration'}87- **Related items:** {related opportunities/archive/specs, or 'none found'}"8889Then ask:9091"What would you like to do next?"92- **(A) Proceed to scan** — use this direction as focused context, search all 6 sources for supporting evidence and related opportunities93- **(B) Save as opportunity draft** — write to `opportunities/{nn}-{slug}.md` with Status: Open, decide later whether to scan9495If (A): Pass the summary as context into ## Workflow Step 1, with a narrowed focus on the identified direction.96If (B): Create the opportunity file following `../feature-radar/references/SPEC.md` § 3.3, populate fields from the intake summary, then run the Annotation Checkpoint per `../feature-radar/references/WORKFLOW-PATTERNS.md`. After approval, present Completion Summary and suggest "run a focused scan around this direction" as a next step.9798## Workflow991001. **Identify sources** — where to look for ideas:101 - **User signals**: issues, discussions, forum posts, support requests102 - **Creative exploration**: "what if we..." brainstorming, combining existing features in new ways103 - **Ecosystem evolution**: adjacent tools, emerging standards, new capabilities in dependencies104 - **Technical possibilities**: new APIs, libraries, or techniques that enable things previously impossible105 - **Cross-project research**: interesting approaches from related projects (from base.md Inspiration Sources)106 - **Community conversations**: Reddit, HN, Discord, blog posts107 - **If Brainstorm Intake was completed**: use the intake summary as the primary focus direction. Prioritize sources most relevant to the identified problem space. Still scan all 6 source types, but weight results toward the intake direction.1082. **Scan and collect** — for each source, look for:109 - Unmet user needs and recurring pain points110 - Feature ideas with demand signals (upvotes, comments, multiple independent asks)111 - Creative approaches that could enhance existing functionality112 - Technical breakthroughs that unlock new possibilities113 - Patterns emerging across multiple tools1143. **Deduplicate** — check against existing `opportunities/` and `archive/` files1154. **Cross-reference codebase** — for each candidate, search the project to check:116 - Already partially implemented? → mark as "Partially Done"117 - Does existing architecture support this? → note in "Design Notes"118 - Related TODOs or FIXMEs in the code? → cite them1195. **Evaluate each candidate**:120121<HARD-GATE>122Before creating any opportunity file, evaluate the candidate against ALL 6 criteria.123Each criterion must be explicitly addressed — do not skip any.124</HARD-GATE>125126| Criterion | Question |127|-----------|----------|128| **Real user demand** | Are users actually asking for this, or does it solve a latent need? |129| **Value uplift** | Does this meaningfully improve the user experience or unlock new possibilities? |130| **Innovation potential** | Does this introduce a creative breakthrough or unique approach? |131| **Effort / impact ratio** | Is the cost justified by the benefit? |132| **Architectural fit** | Does it align with our core philosophy? |133| **Ecosystem timing** | Is the ecosystem ready? |1341356. **Create opportunity files** — for each viable candidate, write `.feature-radar/opportunities/{nn}-{slug}.md`1367. **Checkpoint — Review & Annotate** per `../feature-radar/references/WORKFLOW-PATTERNS.md`137138Present scan results using this format:139140```141Scan complete: {n} new opportunities142| # | Opportunity | Demand Signal | Impact | Effort | Source |143|---|------------|---------------|--------|--------|--------|144| {nn} | {title} | {evidence} | H/M/L | H/M/L | {where found} |145```1461478. **Update base.md** — increment opportunities count, update Value & Innovation Landscape if needed148149## Opportunity File Format150151Use the format defined in `../feature-radar/references/SPEC.md` § 3.3 (`opportunities/{nn}-{slug}.md`).152153## Guidelines154155- Don't create opportunities for every idea you find. Filter aggressively — weak signal wastes attention.156- 1 issue with no comments = weak signal. Multiple independent asks = strong signal.157- Creative ideas without existing demand can still be valid — evaluate innovation potential separately.158- Write an honest "Our Position" — it's OK to say "we don't want this" or "not yet."159- Number sequentially from the highest existing number in `opportunities/` and `archive/`.160- If scanning reveals problems others have that we've already solved, add to `references/` instead.161162## Example Output163164```165→ Created opportunities/07-streaming-output.md (Impact: High, Effort: Medium)166→ Skipped: "hook system" already exists as opportunities/03-hook-system.md167→ Updated base.md: opportunities 6 → 7168```169170### Brainstorm Intake Example171172```173User: "I was thinking... what if we could automatically detect when a feature is getting stale?"174175Phase 1:176 Q1 (Problem): "What problem are you trying to solve?" → Feature opportunities sitting unreviewed177 Cross-ref: Found #05 role-assignment — user confirms: different direction178 Q2 (Target): "Who benefits?" → Project maintainers managing backlogs179 Q3 (Spark): (A) Pain point from own usage180181Phase 2 (Emerging → 2 follow-ups):182 Q4: "What does usage look like?" → Periodic check, flag items older than N days with no activity183 Q5: "Minimum useful scope?" → Just a reminder in completion summary, no automation needed184185Exit summary:186 Problem: Stale opportunities go unnoticed187 Target user: Project maintainers188 Direction: Staleness detection in completion summaries189 Demand signal: Personal pain point (single user)190 Related: None found191192User chose: (B) Save as opportunity draft193→ Created opportunities/06-staleness-detection.md (Impact: Low, Effort: Low)194→ Suggested next step: "run a focused scan around staleness detection"195```196197## Completion Summary198199Follow the template in `../feature-radar/references/DIRECTIVES.md`, with skill name "Scan Complete".