{"id":"fe4200fe-863e-4e2d-ad02-1d90f21e06ef","shortId":"KDfCvN","kind":"skill","title":"feature-radar-scan","tagline":"Discover new feature opportunities from creative brainstorming, user feedback, ecosystem\ntrends, and cross-project research. Writes results to .feature-radar/opportunities/.\nMUST use this skill when the user wants to GENERATE new ideas — not evaluate existing ones.\nTrigger on any","description":"# Scan Opportunities\n\nDiscover new feature opportunities and add them to `.feature-radar/opportunities/`.\n\n## Deep Read\n\n<HARD-GATE>\nRead and follow `../feature-radar/references/DEEP-READ.md` — complete all 6 steps before proceeding.\n</HARD-GATE>\n\n## Behavioral Directives\n\n<HARD-GATE>\nRead and follow `../feature-radar/references/DIRECTIVES.md`.\n\nAdditional directive for this skill:\n- **Filter aggressively** — Do NOT create opportunity files for weak signals. If you can't cite concrete demand evidence, skip it.\n</HARD-GATE>\n\n## Brainstorm Intake\n\n<HARD-GATE>\nEvaluate whether the user arrived with a vague or exploratory idea.\n\nEnter Brainstorm Intake if ANY of these are true:\n- User says \"I have an idea\", \"what if we...\", \"I was thinking about...\", \"brainstorm\"\n- User describes a problem without a clear feature shape\n- User's input lacks specific demand signals, impact/effort estimates, or a concrete feature name\n\nSkip Brainstorm Intake if ALL of these are true:\n- User gave a specific directive like \"scan opportunities\", \"scan ecosystem\", \"find new features\"\n- User's input does not contain a personal idea or vague exploration\n\nIf skipping, jump directly to ## Workflow.\n</HARD-GATE>\n\n### Phase 1: Core Questions\n\nAsk these one at a time. Prefer multiple-choice when possible.\n\n1. **Problem space** — \"What problem are you trying to solve, or what experience do you want to improve?\"\n   - Cross-reference: search existing `opportunities/` and `archive/` for related themes.\n   - If a match is found, surface it: \"Is this related to #{nn} {title}, or a completely different direction?\"\n2. **Target user** — \"Who would benefit from this feature?\"\n   - Offer choices derived from `base.md` Project Context if available.\n3. **Spark** — \"What triggered this idea?\"\n   - (A) A pain point from my own usage\n   - (B) Saw a similar feature in another tool/project\n   - (C) New technical possibilities (new API, new library)\n   - (D) Community/user feedback\n   - (E) Pure creative exploration\n\n### Phase 2: Adaptive Depth\n\nAfter Phase 1, assess idea maturity:\n\n**Mature** (has clear problem + user + demand signal):\n→ Ask 1 closing question to confirm scope, then proceed to Exit.\n\n**Emerging** (has problem but fuzzy shape):\n→ Ask up to 3 more questions to sharpen:\n  - \"What does the usage look like in your mind?\"\n  - \"Have you seen an implementation you particularly liked?\" (if yes, consider creating a `references/` entry)\n  - \"What's the minimum scope that would feel useful?\" (MVP scoping)\n\n**Raw** (pure exploration, no clear problem yet):\n→ Switch to open-ended dialogue. Ask up to 5 more questions:\n  - Explore adjacent possibilities\n  - Challenge assumptions: \"If we don't build this, what's the biggest loss?\"\n  - Seek demand signals: \"Has anyone (including yourself) run into this problem repeatedly?\"\n  - Stop when: a clear feature shape emerges, OR user says \"enough\"\n\n### Exit: Output Options\n\nSummarize the refined idea:\n\n\"Here's a summary of our discussion:\n- **Problem:** {problem}\n- **Target user:** {target user}\n- **Direction:** {feature shape}\n- **Demand signal:** {demand evidence or 'creative exploration'}\n- **Related items:** {related opportunities/archive/specs, or 'none found'}\"\n\nThen ask:\n\n\"What would you like to do next?\"\n- **(A) Proceed to scan** — use this direction as focused context, search all 6 sources for supporting evidence and related opportunities\n- **(B) Save as opportunity draft** — write to `opportunities/{nn}-{slug}.md` with Status: Open, decide later whether to scan\n\nIf (A): Pass the summary as context into ## Workflow Step 1, with a narrowed focus on the identified direction.\nIf (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.\n\n## Workflow\n\n1. **Identify sources** — where to look for ideas:\n   - **User signals**: issues, discussions, forum posts, support requests\n   - **Creative exploration**: \"what if we...\" brainstorming, combining existing features in new ways\n   - **Ecosystem evolution**: adjacent tools, emerging standards, new capabilities in dependencies\n   - **Technical possibilities**: new APIs, libraries, or techniques that enable things previously impossible\n   - **Cross-project research**: interesting approaches from related projects (from base.md Inspiration Sources)\n   - **Community conversations**: Reddit, HN, Discord, blog posts\n   - **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.\n2. **Scan and collect** — for each source, look for:\n   - Unmet user needs and recurring pain points\n   - Feature ideas with demand signals (upvotes, comments, multiple independent asks)\n   - Creative approaches that could enhance existing functionality\n   - Technical breakthroughs that unlock new possibilities\n   - Patterns emerging across multiple tools\n3. **Deduplicate** — check against existing `opportunities/` and `archive/` files\n4. **Cross-reference codebase** — for each candidate, search the project to check:\n   - Already partially implemented? → mark as \"Partially Done\"\n   - Does existing architecture support this? → note in \"Design Notes\"\n   - Related TODOs or FIXMEs in the code? → cite them\n5. **Evaluate each candidate**:\n\n<HARD-GATE>\nBefore creating any opportunity file, evaluate the candidate against ALL 6 criteria.\nEach criterion must be explicitly addressed — do not skip any.\n</HARD-GATE>\n\n| Criterion | Question |\n|-----------|----------|\n| **Real user demand** | Are users actually asking for this, or does it solve a latent need? |\n| **Value uplift** | Does this meaningfully improve the user experience or unlock new possibilities? |\n| **Innovation potential** | Does this introduce a creative breakthrough or unique approach? |\n| **Effort / impact ratio** | Is the cost justified by the benefit? |\n| **Architectural fit** | Does it align with our core philosophy? |\n| **Ecosystem timing** | Is the ecosystem ready? |\n\n6. **Create opportunity files** — for each viable candidate, write `.feature-radar/opportunities/{nn}-{slug}.md`\n7. **Checkpoint — Review & Annotate** per `../feature-radar/references/WORKFLOW-PATTERNS.md`\n\nPresent scan results using this format:\n\n```\nScan complete: {n} new opportunities\n| # | Opportunity | Demand Signal | Impact | Effort | Source |\n|---|------------|---------------|--------|--------|--------|\n| {nn} | {title} | {evidence} | H/M/L | H/M/L | {where found} |\n```\n\n8. **Update base.md** — increment opportunities count, update Value & Innovation Landscape if needed\n\n## Opportunity File Format\n\nUse the format defined in `../feature-radar/references/SPEC.md` § 3.3 (`opportunities/{nn}-{slug}.md`).\n\n## Guidelines\n\n- Don't create opportunities for every idea you find. Filter aggressively — weak signal wastes attention.\n- 1 issue with no comments = weak signal. Multiple independent asks = strong signal.\n- Creative ideas without existing demand can still be valid — evaluate innovation potential separately.\n- Write an honest \"Our Position\" — it's OK to say \"we don't want this\" or \"not yet.\"\n- Number sequentially from the highest existing number in `opportunities/` and `archive/`.\n- If scanning reveals problems others have that we've already solved, add to `references/` instead.\n\n## Example Output\n\n```\n→ Created opportunities/07-streaming-output.md (Impact: High, Effort: Medium)\n→ Skipped: \"hook system\" already exists as opportunities/03-hook-system.md\n→ Updated base.md: opportunities 6 → 7\n```\n\n### Brainstorm Intake Example\n\n```\nUser: \"I was thinking... what if we could automatically detect when a feature is getting stale?\"\n\nPhase 1:\n  Q1 (Problem): \"What problem are you trying to solve?\" → Feature opportunities sitting unreviewed\n  Cross-ref: Found #05 role-assignment — user confirms: different direction\n  Q2 (Target): \"Who benefits?\" → Project maintainers managing backlogs\n  Q3 (Spark): (A) Pain point from own usage\n\nPhase 2 (Emerging → 2 follow-ups):\n  Q4: \"What does usage look like?\" → Periodic check, flag items older than N days with no activity\n  Q5: \"Minimum useful scope?\" → Just a reminder in completion summary, no automation needed\n\nExit summary:\n  Problem: Stale opportunities go unnoticed\n  Target user: Project maintainers\n  Direction: Staleness detection in completion summaries\n  Demand signal: Personal pain point (single user)\n  Related: None found\n\nUser chose: (B) Save as opportunity draft\n→ Created opportunities/06-staleness-detection.md (Impact: Low, Effort: Low)\n→ Suggested next step: \"run a focused scan around staleness detection\"\n```\n\n## Completion Summary\n\nFollow the template in `../feature-radar/references/DIRECTIVES.md`, with skill name \"Scan Complete\".","tags":["feature","radar","scan","runkids","agent-skill-repository","agent-skills","agentic-skills","ai-skills","claude-code-skills","coding-agents","feature-tracking","product-management"],"capabilities":["skill","source-runkids","skill-feature-radar-scan","topic-agent-skill-repository","topic-agent-skills","topic-agentic-skills","topic-ai-skills","topic-claude-code-skills","topic-coding-agents","topic-feature-tracking","topic-product-management","topic-product-management-tools","topic-skills","topic-skillshare"],"categories":["feature-radar"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/runkids/feature-radar/feature-radar-scan","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add runkids/feature-radar","source_repo":"https://github.com/runkids/feature-radar","install_from":"skills.sh"}},"qualityScore":"0.456","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 12 github stars · SKILL.md body (9,027 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-19T00:41:35.958Z","embedding":null,"createdAt":"2026-04-19T00:41:35.958Z","updatedAt":"2026-04-19T00:41:35.958Z","lastSeenAt":"2026-04-19T00:41:35.958Z","tsv":"'/feature-radar/references/deep-read.md':66 '/feature-radar/references/directives.md':78,1223 '/feature-radar/references/spec.md':567,957 '/feature-radar/references/workflow-patterns.md':581,912 '/opportunities':27,60,903 '05':1106 '1':204,219,327,339,551,601,979,1088 '2':266,322,707,1131,1133 '3':284,358,751 '3.3':568,958 '4':760 '5':414,798 '6':69,514,697,812,891,1066 '7':907,1067 '8':937 'across':748 'activ':1153 'actual':831 'adapt':323 'add':54,1044 'addit':79 'address':819 'adjac':418,631 'aggress':85,974 'align':880 'alreadi':773,1042,1059 'annot':578,910 'anoth':304 'anyon':437 'api':311,642 'approach':656,734,865 'approv':583 'architectur':782,876 'archiv':244,758,1032 'around':593,1214 'arriv':110 'ask':207,338,355,411,494,732,832,988 'assess':328 'assign':1109 'assumpt':421 'attent':978 'autom':1165 'automat':1079 'avail':283 'b':298,522,561,1196 'backlog':1121 'base.md':279,661,939,1064 'behavior':73 'benefit':271,875,1117 'biggest':431 'blog':669 'brainstorm':11,104,118,139,164,622,672,1068 'breakthrough':741,862 'build':426 'c':306 'candid':767,801,809,898 'capabl':636 'challeng':420 'check':753,772,1144 'checkpoint':579,908 'choic':216,276 'chose':1195 'cite':98,796 'clear':146,333,402,448 'close':340 'code':795 'codebas':764 'collect':710 'combin':623 'comment':729,983 'communiti':664 'community/user':315 'complet':67,263,585,675,920,1162,1182,1217,1228 'concret':99,160 'confirm':343,1111 'consid':382 'contain':190 'context':281,511,547 'convers':665 'core':205,883 'cost':871 'could':736,1078 'count':942 'creat':88,383,562,803,892,966,1050,1201 'creativ':10,319,484,617,733,861,991 'criteria':813 'criterion':815,824 'cross':18,238,652,762,1103 'cross-project':17,651 'cross-ref':1102 'cross-refer':237,761 'd':314 'day':1150 'decid':536 'dedupl':752 'deep':61 'defin':955 'demand':100,154,336,434,479,481,726,828,925,995,1184 'depend':638 'depth':324 'deriv':277 'describ':141 'design':787 'detect':1080,1180,1216 'dialogu':410 'differ':264,1112 'direct':74,80,176,200,265,476,508,559,595,684,706,1113,1178 'discord':668 'discov':5,49 'discuss':469,612 'done':779 'draft':526,1200 'e':317 'ecosystem':14,181,629,885,889 'effort':866,928,1054,1205 'emerg':349,451,633,747,1132 'enabl':647 'end':409 'enhanc':737 'enough':455 'enter':117 'entri':386 'estim':157 'evalu':41,106,799,807,1000 'everi':969 'evid':101,482,518,932 'evolut':630 'exampl':1048,1070 'exist':42,241,624,738,755,781,994,1027,1060 'exit':348,456,1167 'experi':231,850 'explicit':818 'explor':196,320,400,417,485,618 'exploratori':115 'featur':2,7,25,51,58,147,161,184,274,302,449,477,625,723,901,1083,1098 'feature-radar':24,57,900 'feature-radar-scan':1 'feedback':13,316 'feel':394 'field':570 'file':90,565,759,806,894,950 'filter':84,973 'find':182,972 'fit':877 'fixm':792 'flag':1145 'focus':510,555,591,683,1212 'follow':65,77,566,1135,1219 'follow-up':1134 'format':918,951,954 'forum':613 'found':252,492,936,1105,1193 'function':739 'fuzzi':353 'gave':173 'generat':37 'get':1085 'go':1172 'guidelin':963 'h/m/l':933,934 'high':1053 'highest':1026 'hn':667 'honest':1006 'hook':1057 'idea':39,116,131,193,289,329,462,608,724,970,992 'identifi':558,602,691 'impact':867,927,1052,1203 'impact/effort':156 'implement':376,775 'imposs':650 'improv':236,847 'includ':438 'increment':940 'independ':731,987 'innov':855,945,1001 'input':151,187 'inspir':662 'instead':1047 'intak':105,119,165,573,673,678,705,1069 'interest':655 'introduc':859 'issu':611,980 'item':487,1146 'jump':199 'justifi':872 'lack':152 'landscap':946 'latent':840 'later':537 'librari':313,643 'like':177,368,379,498,1142 'look':367,606,714,1141 'loss':432 'low':1204,1206 'maintain':1119,1177 'manag':1120 'mark':776 'match':250 'matur':330,331 'md':532,906,962 'meaning':846 'medium':1055 'mind':371 'minimum':390,1155 'multipl':215,730,749,986 'multiple-choic':214 'must':28,816 'mvp':396 'n':921,1149 'name':162,1226 'narrow':554 'need':718,841,948,1166 'new':6,38,50,183,307,310,312,627,635,641,744,853,922 'next':501,598,1208 'nn':259,530,904,930,960 'none':491,1192 'note':785,788 'number':1022,1028 'offer':275 'ok':1011 'older':1147 'one':43,209 'open':408,535 'open-end':407 'opportun':8,48,52,89,179,242,521,525,529,564,756,805,893,923,924,941,949,959,967,1030,1065,1099,1171,1199 'opportunities/03-hook-system.md':1062 'opportunities/06-staleness-detection.md':1202 'opportunities/07-streaming-output.md':1051 'opportunities/archive/specs':489 'option':458 'other':1037 'output':457,1049 'pain':292,721,1125,1187 'partial':774,778 'particular':378 'pass':543 'pattern':746 'per':580,911 'period':1143 'person':192,1186 'phase':203,321,326,1087,1130 'philosophi':884 'point':293,722,1126,1188 'popul':569 'posit':1008 'possibl':218,309,419,640,745,854 'post':614,670 'potenti':856,1002 'prefer':213 'present':584,913 'previous':649 'primari':682 'priorit':685 'problem':143,220,223,334,351,403,443,470,471,692,1036,1090,1092,1169 'proceed':72,346,503 'project':19,280,653,659,770,1118,1176 'pure':318,399 'q1':1089 'q2':1114 'q3':1122 'q4':1137 'q5':1154 'question':206,341,360,416,825 'radar':3,26,59,902 'ratio':868 'raw':398 'read':62,63,75 'readi':890 'real':826 'recur':720 'reddit':666 'ref':1104 'refer':239,385,763,1046 'refin':461 'relat':246,257,486,488,520,658,789,1191 'relev':688 'remind':1160 'repeat':444 'request':616 'research':20,654 'result':22,702,915 'reveal':1035 'review':909 'role':1108 'role-assign':1107 'run':440,576,589,1210 'save':523,1197 'saw':299 'say':127,454,1013 'scan':4,47,178,180,505,540,592,695,708,914,919,1034,1213,1227 'scope':344,391,397,1157 'search':240,512,768 'seek':433 'seen':374 'separ':1003 'sequenti':1023 'shape':148,354,450,478 'sharpen':362 'signal':93,155,337,435,480,610,727,926,976,985,990,1185 'similar':301 'singl':1189 'sit':1100 'skill':31,83,1225 'skill-feature-radar-scan' 'skip':102,163,198,822,1056 'slug':531,905,961 'solv':228,838,1043,1097 'sourc':515,603,663,686,698,713,929 'source-runkids' 'space':221,693 'spark':285,1123 'specif':153,175 'stale':1086,1170,1179,1215 'standard':634 'status':534 'step':70,550,599,1209 'still':694,997 'stop':445 'strong':989 'suggest':588,1207 'summar':459 'summari':466,545,574,586,679,1163,1168,1183,1218 'support':517,615,783 'surfac':253 'switch':405 'system':1058 'target':267,472,474,1115,1174 'technic':308,639,740 'techniqu':645 'templat':1221 'theme':247 'thing':648 'think':137,1074 'time':212,886 'titl':260,931 'todo':790 'tool':632,750 'tool/project':305 'topic-agent-skill-repository' 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-skills' 'topic-claude-code-skills' 'topic-coding-agents' 'topic-feature-tracking' 'topic-product-management' 'topic-product-management-tools' 'topic-skills' 'topic-skillshare' 'toward':703 'trend':15 'tri':226,1095 'trigger':44,287 'true':125,171 'type':699 'uniqu':864 'unlock':743,852 'unmet':716 'unnot':1173 'unreview':1101 'up':1136 'updat':938,943,1063 'uplift':843 'upvot':728 'usag':297,366,1129,1140 'use':29,395,506,676,916,952,1156 'user':12,34,109,126,140,149,172,185,268,335,453,473,475,609,717,827,830,849,1071,1110,1175,1190,1194 'vagu':113,195 'valid':999 'valu':842,944 've':1041 'viabl':897 'want':35,234,1017 'wast':977 'way':628 'weak':92,975,984 'weight':701 'whether':107,538 'without':144,993 'workflow':202,549,600 'would':270,393,496 'write':21,527,899,1004 'yes':381 'yet':404,1021","prices":[{"id":"c3190fa5-cd6e-4e56-ac37-7ba8d570ef51","listingId":"fe4200fe-863e-4e2d-ad02-1d90f21e06ef","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"runkids","category":"feature-radar","install_from":"skills.sh"},"createdAt":"2026-04-19T00:41:35.958Z"}],"sources":[{"listingId":"fe4200fe-863e-4e2d-ad02-1d90f21e06ef","source":"github","sourceId":"runkids/feature-radar/feature-radar-scan","sourceUrl":"https://github.com/runkids/feature-radar/tree/main/skills/feature-radar-scan","isPrimary":false,"firstSeenAt":"2026-04-19T00:41:35.958Z","lastSeenAt":"2026-04-19T00:41:35.958Z"}],"details":{"listingId":"fe4200fe-863e-4e2d-ad02-1d90f21e06ef","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"runkids","slug":"feature-radar-scan","github":{"repo":"runkids/feature-radar","stars":12,"topics":["agent-skill-repository","agent-skills","agentic-skills","ai","ai-skills","claude-code-skills","coding-agents","competitive-analysis-tools","feature-tracking","product-management","product-management-tools","skills","skillshare"],"license":"mit","html_url":"https://github.com/runkids/feature-radar","pushed_at":"2026-03-08T15:30:41Z","description":"📡 AI skill that helps your coding agent discover, track, and prioritize what to build next.","skill_md_sha":"e95368eaca174277e4bc2fc8b4feb4c6628eeb60","skill_md_path":"skills/feature-radar-scan/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/runkids/feature-radar/tree/main/skills/feature-radar-scan"},"layout":"multi","source":"github","category":"feature-radar","frontmatter":{"name":"feature-radar-scan","description":"Discover new feature opportunities from creative brainstorming, user feedback, ecosystem\ntrends, and cross-project research. Writes results to .feature-radar/opportunities/.\nMUST use this skill when the user wants to GENERATE new ideas — not evaluate existing ones.\nTrigger on any request to brainstorm, explore, discover, or find new feature ideas, even\ncasual ones like \"I wonder what else we could do\" or \"give me ideas\".\nUse when the user:\n- Asks \"what else could we build?\", \"give me feature ideas\", \"what are we missing?\"\n- Wants to brainstorm, explore new directions, or refresh the opportunity backlog\n- Says \"scan ecosystem\", \"scan opportunities\", \"find new features\"\n- Asks to review GitHub issues, community feedback, or adjacent tools for inspiration\n- Mentions \"explore\", \"discover\", or \"new directions\" in a feature context\n- Has a vague idea: \"I have an idea\", \"what if we...\", \"I was thinking about...\"\nDo NOT use for evaluating/prioritizing existing features — that's feature-radar's job."},"skills_sh_url":"https://skills.sh/runkids/feature-radar/feature-radar-scan"},"updatedAt":"2026-04-19T00:41:35.958Z"}}