{"id":"f8d88802-d476-46de-bc82-3d7196f9990e","shortId":"W9DKN8","kind":"skill","title":"feature-radar-learn","tagline":"Extract reusable patterns, architectural decisions, and pitfalls from completed work\ninto .feature-radar/specs/. Captures the \"why\" behind choices so future sessions build\non past experience. MUST use this skill when the user reflects on what worked/didn't,\nwants to document a de","description":"# Extract Learnings\n\nCapture reusable knowledge from completed work into `.feature-radar/specs/`.\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</HARD-GATE>\n\n## Workflow\n\n1. **Identify the source** — ask the user what was just completed (feature, bug fix, refactor, investigation)\n2. **Analyze the work** — review recent commits, changed files, and implementation decisions\n3. **Extract knowledge** — identify what's reusable:\n   - **Patterns**: recurring solutions worth replicating (e.g., \"three-tier config merge\")\n   - **Decisions**: architectural choices with rationale (e.g., \"YAML over JSON because...\")\n   - **Pitfalls**: mistakes or dead ends others should avoid\n   - **Techniques**: implementation approaches that worked well\n<HARD-GATE>\nBefore writing to specs/, classify each piece of knowledge into exactly one category:\n- **Pattern**: recurring solution worth replicating\n- **Decision**: architectural choice with rationale\n- **Pitfall**: mistake or dead end to avoid\n- **Technique**: implementation approach that worked well\n\nState the classification explicitly in your output.\n</HARD-GATE>\n\n4. **Write to specs** — create or append to `.feature-radar/specs/{topic}.md`\n5. **Checkpoint** — State what was written and ask: \"I've written to `specs/{topic}.md` ({classification type}). Does this look correct, or should I adjust anything?\" Wait for user confirmation before proceeding.\n6. **Update base.md** — increment the specs count in Tracking Summary\n\n## File Format\n\nUse the format defined in `../feature-radar/references/SPEC.md` § 3.4 (`specs/{topic}.md`).\n\n## Guidelines\n\n- One topic per file. If the learning spans multiple topics, create multiple files.\n- Name files by the pattern, not by the feature that produced it.\n  - Good: `yaml-config-merge.md`, `symlink-vs-copy-tradeoffs.md`\n  - Bad: `audit-feature-learnings.md`, `v2-refactor-notes.md`\n- Append to existing files when the new learning extends a known topic.\n- Keep it concise — future readers need the insight, not the full story.\n\n## Example Output\n\n```\n→ Created specs/symlink-vs-copy-tradeoffs.md (Decision)\n→ Updated base.md: specs 2 → 3\n```\n\n## Completion Summary\n\nFollow the template in `../feature-radar/references/DIRECTIVES.md`, with skill name \"Learn Complete\".","tags":["feature","radar","learn","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-learn","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-learn","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 (2,450 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:34.368Z","embedding":null,"createdAt":"2026-04-19T00:41:34.368Z","updatedAt":"2026-04-19T00:41:34.368Z","lastSeenAt":"2026-04-19T00:41:34.368Z","tsv":"'/feature-radar/references/deep-read.md':67 '/feature-radar/references/directives.md':79,334 '/feature-radar/references/spec.md':257 '/specs':19,61,205 '1':81 '2':97,326 '3':109,327 '3.4':258 '4':194 '5':208 '6':70,240 'adjust':232 'analyz':98 'anyth':233 'append':200,294 'approach':147,183 'architectur':8,128,170 'ask':85,215 'audit-feature-learnings.md':292 'avoid':144,180 'bad':291 'base.md':242,324 'behavior':74 'behind':23 'bug':93 'build':28 'captur':20,51 'categori':163 'chang':104 'checkpoint':209 'choic':24,129,171 'classif':189,223 'classifi':155 'commit':103 'complet':13,55,68,91,328,339 'concis':308 'config':125 'confirm':237 'correct':228 'count':246 'creat':198,273,320 'de':48 'dead':140,177 'decis':9,108,127,169,322 'deep':62 'defin':255 'direct':75 'document':46 'e.g':121,132 'end':141,178 'exact':161 'exampl':318 'exist':296 'experi':31 'explicit':190 'extend':302 'extract':5,49,110 'featur':2,17,59,92,203,284 'feature-radar':16,58,202 'feature-radar-learn':1 'file':105,250,266,275,277,297 'fix':94 'follow':66,78,330 'format':251,254 'full':316 'futur':26,309 'good':288 'guidelin':262 'identifi':82,112 'implement':107,146,182 'increment':243 'insight':313 'investig':96 'json':135 'keep':306 'knowledg':53,111,159 'known':304 'learn':4,50,269,301,338 'look':227 'md':207,222,261 'merg':126 'mistak':138,175 'multipl':271,274 'must':32 'name':276,337 'need':311 'new':300 'one':162,263 'other':142 'output':193,319 'past':30 'pattern':7,116,164,280 'per':265 'piec':157 'pitfal':11,137,174 'proceed':73,239 'produc':286 'radar':3,18,60,204 'rational':131,173 'read':63,64,76 'reader':310 'recent':102 'recur':117,165 'refactor':95 'reflect':39 'replic':120,168 'reusabl':6,52,115 'review':101 'session':27 'skill':35,336 'skill-feature-radar-learn' 'solut':118,166 'sourc':84 'source-runkids' 'span':270 'spec':154,197,220,245,259,325 'specs/symlink-vs-copy-tradeoffs.md':321 'state':187,210 'step':71 'stori':317 'summari':249,329 'symlink-vs-copy-tradeoffs.md':290 'techniqu':145,181 'templat':332 'three':123 'three-tier':122 'tier':124 'topic':206,221,260,264,272,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' 'track':248 'type':224 'updat':241,323 'use':33,252 'user':38,87,236 'v2-refactor-notes.md':293 've':217 'wait':234 'want':44 'well':150,186 'work':14,56,100,149,185 'worked/didn':42 'workflow':80 'worth':119,167 'write':152,195 'written':213,218 'yaml':133 'yaml-config-merge.md':289","prices":[{"id":"31694d39-6ab2-4972-b192-12c7031339f6","listingId":"f8d88802-d476-46de-bc82-3d7196f9990e","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:34.368Z"}],"sources":[{"listingId":"f8d88802-d476-46de-bc82-3d7196f9990e","source":"github","sourceId":"runkids/feature-radar/feature-radar-learn","sourceUrl":"https://github.com/runkids/feature-radar/tree/main/skills/feature-radar-learn","isPrimary":false,"firstSeenAt":"2026-04-19T00:41:34.368Z","lastSeenAt":"2026-04-19T00:41:34.368Z"}],"details":{"listingId":"f8d88802-d476-46de-bc82-3d7196f9990e","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"runkids","slug":"feature-radar-learn","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":"cf063733bc6c04649a7361d715aac52caa7a3ebf","skill_md_path":"skills/feature-radar-learn/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/runkids/feature-radar/tree/main/skills/feature-radar-learn"},"layout":"multi","source":"github","category":"feature-radar","frontmatter":{"name":"feature-radar-learn","description":"Extract reusable patterns, architectural decisions, and pitfalls from completed work\ninto .feature-radar/specs/. Captures the \"why\" behind choices so future sessions build\non past experience. MUST use this skill when the user reflects on what worked/didn't,\nwants to document a decision, or mentions remembering a pattern for future use.\nUse when the user:\n- Says \"remember this approach\", \"document this decision\", \"save this pattern\"\n- Reflects: \"that worked well\", \"lessons learned\", \"what did we learn\"\n- Wants to capture: \"don't forget this\", \"this was a good pattern\"\n- Hit a dead end: \"this didn't work because...\", \"avoid this approach\"\n- Made a technical decision worth recording for posterity\n- Says \"extract learnings\" or \"capture what we learned\"\nDo NOT use for recording external observations — that's feature-radar-ref's job.\nDo NOT use for archiving completed features — that's feature-radar-archive's job."},"skills_sh_url":"https://skills.sh/runkids/feature-radar/feature-radar-learn"},"updatedAt":"2026-04-19T00:41:34.368Z"}}