From learn
Researches online topics via web search, scores sources for quality, extracts insights/code examples, and generates structured RAG-optimized learning guides with brief/medium/deep depth.
npx claudepluginhub agent-sh/learn --plugin learnThis skill uses the workspace's default tool permissions.
Research any topic by gathering online resources and creating a comprehensive learning guide with RAG-optimized indexes.
Creates new Angular apps using Angular CLI with flags for routing, SSR, SCSS, prefixes, and AI config. Follows best practices for modern TypeScript/Angular development. Use when starting Angular projects.
Generates Angular code and provides architectural guidance for projects, components, services, reactivity with signals, forms, dependency injection, routing, SSR, ARIA accessibility, animations, Tailwind styling, testing, and CLI tooling.
Executes ctx7 CLI to fetch up-to-date library documentation, manage AI coding skills (install/search/generate/remove/suggest), and configure Context7 MCP. Useful for current API refs, skill handling, or agent setup.
Research any topic by gathering online resources and creating a comprehensive learning guide with RAG-optimized indexes.
const args = '$ARGUMENTS'.split(' ').filter(Boolean);
const depth = args.find(a => a.startsWith('--depth='))?.split('=')[1] || 'medium';
const topic = args.filter(a => !a.startsWith('--')).join(' ');
Arguments: <topic> [--depth=brief|medium|deep]
brief: 10 sources (quick overview)medium: 20 sources (default, balanced)deep: 40 sources (comprehensive)Based on best practices from:
Use funnel approach to avoid noise from long query lists:
Broad Phase (landscape mapping):
"{topic} overview introduction"
"{topic} documentation official"
Focused Phase (core content):
"{topic} best practices"
"{topic} examples tutorial"
"{topic} site:stackoverflow.com"
Deep Phase (advanced, if depth=deep):
"{topic} advanced techniques"
"{topic} pitfalls mistakes avoid"
"{topic} 2025 2026 latest"
Multi-dimensional evaluation (max score: 100):
| Factor | Weight | Max | Criteria |
|---|---|---|---|
| Authority | 3x | 30 | Official docs (10), recognized expert (8), established site (6), blog (4), random (2) |
| Recency | 2x | 20 | <6mo (10), <1yr (8), <2yr (6), <3yr (4), older (2) |
| Depth | 2x | 20 | Comprehensive (10), detailed (8), overview (6), superficial (4), fragment (2) |
| Examples | 2x | 20 | Multiple code examples (10), one example (6), no examples (2) |
| Uniqueness | 1x | 10 | Unique perspective (10), some overlap (6), duplicate content (2) |
Selection threshold: Top N sources by score (N = depth target)
Don't pre-load all content (causes context rot):
For each source, extract:
{
"url": "https://...",
"title": "Article Title",
"qualityScore": 85,
"scores": {
"authority": 9,
"recency": 8,
"depth": 7,
"examples": 9,
"uniqueness": 6
},
"keyInsights": [
"Concise insight 1",
"Concise insight 2"
],
"codeExamples": [
{
"language": "javascript",
"description": "Basic usage pattern"
}
],
"extractedAt": "2026-02-05T12:00:00Z"
}
Copyright compliance: Summaries and insights only, never verbatim paragraphs.
Create agent-knowledge/{slug}.md:
# Learning Guide: {Topic}
**Generated**: {date}
**Sources**: {count} resources analyzed
**Depth**: {brief|medium|deep}
## Prerequisites
What you should know before diving in:
- Prerequisite 1
- Prerequisite 2
## TL;DR
Essential points in 3-5 bullets:
- Key point 1
- Key point 2
- Key point 3
## Core Concepts
### {Concept 1}
{Synthesized explanation from multiple sources}
**Key insight**: {Most important takeaway}
### {Concept 2}
{Synthesized explanation}
## Code Examples
### Basic Example
```{language}
// Description of what this demonstrates
{code}
{code}
| Pitfall | Why It Happens | How to Avoid |
|---|---|---|
| Issue 1 | Root cause | Prevention strategy |
Synthesized from {n} sources:
| Resource | Type | Why Recommended |
|---|---|---|
| Title | Official Docs | Authoritative reference |
| Title | Tutorial | Step-by-step guide |
Generated by /learn from {count} sources.
See resources/{slug}-sources.json for full source metadata.
### Master Index Template
Create/update `agent-knowledge/CLAUDE.md`:
```markdown
# Agent Knowledge Base
> Learning guides created by /learn. Reference these when answering questions about listed topics.
## Available Topics
| Topic | File | Sources | Depth | Created |
|-------|------|---------|-------|---------|
| {Topic 1} | {slug1}.md | {n} | medium | 2026-02-05 |
| {Topic 2} | {slug2}.md | {n} | deep | 2026-02-04 |
## Trigger Phrases
Use this knowledge when user asks about:
- "How does {topic1} work?" → {slug1}.md
- "Explain {topic1}" → {slug1}.md
- "{Topic2} best practices" → {slug2}.md
## Quick Lookup
| Keyword | Guide |
|---------|-------|
| recursion | recursion.md |
| hooks, react | react-hooks.md |
## How to Use
1. Check if user question matches a topic
2. Read the relevant guide file
3. Answer based on synthesized knowledge
4. Cite the guide if user asks for sources
Copy to agent-knowledge/AGENTS.md for OpenCode/Codex.
Create agent-knowledge/resources/{slug}-sources.json:
{
"topic": "{original topic}",
"slug": "{slug}",
"generated": "2026-02-05T12:00:00Z",
"depth": "medium",
"totalSources": 20,
"sources": [
{
"url": "https://...",
"title": "...",
"qualityScore": 85,
"scores": {
"authority": 9,
"recency": 8,
"depth": 7,
"examples": 9,
"uniqueness": 6
},
"keyInsights": ["..."]
}
]
}
Before finalizing, rate output (1-10):
| Metric | Question | Target |
|---|---|---|
| Coverage | Does guide cover main aspects? | ≥7 |
| Diversity | Are sources from diverse types? | ≥6 |
| Examples | Are code examples practical? | ≥7 |
| Accuracy | Confidence in content accuracy? | ≥8 |
Flag gaps: Note any important subtopics not covered.
If enhance=true, invoke after guide creation:
// Enhance the topic guide for RAG
Skill({ name: 'enhance:enhance-docs', args: `agent-knowledge/${slug}.md --ai` });
// Enhance the master index
Skill({ name: 'enhance:enhance-prompts', args: 'agent-knowledge/CLAUDE.md' });
Return structured JSON between markers:
=== LEARN_RESULT ===
{
"topic": "recursion",
"slug": "recursion",
"depth": "medium",
"guideFile": "agent-knowledge/recursion.md",
"sourcesFile": "agent-knowledge/resources/recursion-sources.json",
"sourceCount": 20,
"sourceBreakdown": {
"officialDocs": 4,
"tutorials": 5,
"stackOverflow": 3,
"blogPosts": 5,
"github": 3
},
"selfEvaluation": {
"coverage": 8,
"diversity": 7,
"examples": 9,
"accuracy": 8,
"gaps": ["tail recursion optimization not covered"]
},
"enhanced": true,
"indexUpdated": true
}
=== END_RESULT ===
| Error | Action |
|---|---|
| WebSearch fails | Retry with simpler query |
| WebFetch timeout | Skip source, note in metadata |
| <minSources found | Warn user, proceed with available |
| Enhancement fails | Skip, note in output |
| Index doesn't exist | Create new index |
Estimated token usage by phase:
| Phase | Tokens | Notes |
|---|---|---|
| WebSearch queries | ~2,000 | 5-8 queries |
| Source scoring | ~1,000 | Metadata only |
| WebFetch extraction | ~40,000 | 20 sources × 2,000 avg |
| Synthesis | ~10,000 | Guide generation |
| Enhancement | ~5,000 | Two skill calls |
| Total | ~60,000 | Within opus budget |
This skill is invoked by:
learn-agent for /learn command