learn
Skill14 starsChanged 37 days agoMITView on GitHub
Extract reusable patterns from sessions and save them as skills. Use after solving complex problems, discovering useful workarounds, or establishing project-specific conventions. Keywords: learn, pattern, extract, skill, knowledge, save, remember.
195 other projects use a version of this.
Adopted by
Most recently taken up by
- Doist/todoist-aitheir own version, first seen Nov 9, 2026
- Doist/todoist-clitheir own version, first seen Nov 8, 2026
- HughYau/AcademicForgetheir own version, first seen Nov 8, 2026
- dimsedra/skillstheir own version, first seen Nov 8, 2026
- rajanrx/skillstheir own version, first seen Nov 8, 2026
- edwinidrus/dragonhoardtheir own version, first seen Nov 8, 2026
Used with
Projects with it also use add-anydoc, add-clidash and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
TomGranotSkilladd-anydoc
Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when agents need to read attached Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV, or text-based PDF files without uploading them to a hosted parser.
Also in 5 projects that use this
TomGranotSkilladd-clidash
Add clidash — a zero-dependency, read-only web dashboard that derives its tabs and tables at runtime from any CLI that lists resources as JSON. Ships pre-wired for NanoClaw's ncl CLI (agent groups, sessions, channels, users, roles), plus message-activity charts, a log tail, and a read-only file viewer for group skills/CLAUDE.md/profiles.
Also in 5 projects that use this
seek888Skillopen-gstack-browser
Launch GStack Browser — AI-controlled Chromium with the sidebar extension baked in. Opens a visible browser window where you can watch every action in real time. The sidebar shows a live activity feed and chat. Anti-bot stealth built in. Use when asked to "open gstack browser", "launch browser", "connect chrome", "open chrome", "real browser", "launch chrome", "side panel", or "control my browser". Voice triggers (speech-to-text aliases): "show me the browser".
Also in 11 projects that use this
Saqlain-811Skillios-sync
Regenerate the iOS debug bridge against the latest upstream gstack templates. (gstack)
Also in 6 projects that use this
MicrosoftSkilladd-codex
Use Codex (CLI + AppServer) as the full agent provider — planning, tool orchestration, native compaction, MCP tools, session resume — in place of the Claude Agent SDK. ChatGPT subscription or OPENAI_API_KEY. Per-group via agent_provider. Distinct from using OpenAI as an MCP tool (where Claude remains the planner).
Also in 6 projects that use this
MicrosoftSkilladd-deltachat
Add DeltaChat channel integration via @deltachat/stdio-rpc-server. Native adapter — no Chat SDK bridge. Email-based messaging with end-to-end encryption.
Also in 6 projects that use this
- +5 more from TomGranot
- +1 more from microsoft
Other versions195 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 195
- garrytan/gstack★ 141ksame name
- rohitg00/ai-engineering-from-scratch★ 78ksame name
- gavrielc/nanoclaw★ 31ksame name
- nanocoai/nanoclaw★ 31ksame name
- qwibitai/nanoclaw★ 31ksame name
- tigerless-labs/autoharness★ 11ksame name
- tw93/claude-health★ 7.5ksame name
- tw93/Waza★ 7.5ksame name
- nykooi1/vibe-wise★ 3.5ksame name
- HughYau/AcademicForge★ 2.6ksame name
185 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository44 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- adaptSkill
- animateSkill
- auditSkill
- bolderSkill
- brainstormSkill
- build-fixSkill
- business-panelSkill
- checkpointSkill
- clarifySkill
- colorizeSkill
- composition-patternsSkill
- confidence-checkSkill
- config-doctorSkill
- critiqueSkill
- delightSkill
- design-auditSkill
- devils-advocateSkill
- distillSkill
- eval-harnessSkill
- feature-plannerSkill
- fix-prSkill
- frontend-designSkill
- gap-analysisSkill
- grill-with-docsSkill
- hardenSkill
- impeccableSkill
- layoutSkill
- optimizeSkill
- overdriveSkill
- polishSkill
- pytest-runnerSkill
- python-best-practicesSkill
- quieterSkill
- react-best-practicesSkill
- sc-helpSkill
- security-auditSkill
- shapeSkill
- tddSkill
- typesetSkill
- ui-ux-pro-maxSkill
- uv-packageSkill
- verifySkill
- web-design-guidelinesSkill
The file
We split this skill into the rules it gives an agent
3 rules. 0 are common, 3 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 170 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 14
After solving complex errors
- Distinctive: line 15
When discovering useful workarounds
- Distinctive: line 16
When establishing project-specific conventions
“Common” is measured: kept by at least 6 in 10 of the 170 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Learn Skill
Purpose
Analyze problem-solving patterns, debugging techniques, and workarounds from sessions to save them as reusable skills.
Core Principle: Recurring problem-solving → Pattern extraction → Skill creation → Reuse in future sessions
Activation Triggers
- After solving complex errors
- When discovering useful workarounds
- When establishing project-specific conventions
- Session end knowledge consolidation
- Explicit user request:
/learn,remember this,save pattern
Pattern Extraction Focus
Gate question: Would a future session, starting cold, save real time because this was written down? If the answer is "it would have figured this out from the code or from general knowledge in under a minute", do not save it. Every saved line is prompt context; it has to earn its place.
Include ✅
| Category | Examples | Why it earns its place |
| Commands/workflows discovered | The build variant that actually works, the test invocation with the required flag (--runInBand for shared DB state) | Saves re-discovery on every session |
| Error Resolution Patterns | TypeScript type error fixes, build failure repairs | Prevents repeating a debugging session |
| Debugging Techniques | Specific tool combinations, log analysis methods | Not derivable from code |
| Library Quirks | Undocumented behaviors, version-specific differences | Invisible in the codebase |
| API / Config Quirks | Rate-limit workarounds, NEXT_PUBLIC_* must be set at build time, Redis needs ?family=0 for IPv6 | Environment knowledge that costs an outage to learn |
| Module Relationships | "auth needs crypto initialized first; import order in bootstrap.ts matters" | Architecture knowledge the code does not state |
| Testing approaches that worked | Which helper/factory to use instead of inline mocks | Establishes a pattern others will follow |
| Project Conventions | Naming rules, file structure, code style beyond what CONVENTIONS.md already says | Only the project-specific delta |
| Architecture Decisions | Pattern selection rationale, trade-offs | The "why" is never in the code |
Exclude ❌
| Category | Reason | Bad example |
| Obvious from code | The name or signature already says it | "UserService handles user operations" |
| Generic best practice | Universal advice, not project-specific; the model already knows it | "Always write tests", "use meaningful names" |
| One-off fixes | Will not recur; clutters the file | "Fixed login button bug in commit abc123" |
| Verbose explanations | A one-liner carries the same information | A paragraph on what JWT is → Auth: JWT HS256, Bearer header |
| Simple typo / syntax fixes | No reuse value | — |
| Transient external issues | Service outage, flaky network | — |
| Machine-specific paths/secrets | Not generalizable; secrets never | /Users/me/..., tokens |
| Already in CLAUDE.md / RULES.md / CONVENTIONS.md | Duplicate context is pure cost | — |
Where it goes
| Learning type | Destination |
| Reusable across projects (library quirk, debugging technique) | ~/.claude/skills/<name>/SKILL.md (this skill) |
| Project-specific command, gotcha, module relationship | Project CLAUDE.md (team) or CLAUDE.local.md (personal, gitignored) — one line per concept, <command or pattern> - <why> |
| Must survive compaction in this session only | Built-in auto memory (~/.claude/projects/<slug>/memory/) |
Workflow
Step 1: Session Analysis
/learn
🔍 Analyzing session...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Messages: 47
Tool calls: 89
Errors resolved: 3 cases
Main task: Auth system implementation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━Step 2: Pattern Identification
💡 Extractable patterns found
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. [HIGH VALUE] NextAuth + Prisma Session Type Extension
- Problem: userId missing in Session type
- Solution: Type extension in next-auth.d.ts
- Reusability: ⭐⭐⭐⭐⭐
2. [MEDIUM VALUE] Supabase RLS Debugging Pattern
- Problem: Empty results due to RLS policy
- Solution: Test with service_role key, then fix policy
- Reusability: ⭐⭐⭐⭐
3. [LOW VALUE] ESLint Rule Disable
- Problem: unused-vars warning
- Solution: .eslintrc modification
- Reusability: ⭐⭐ (project-specific)
Select patterns to save [1,2,3 or all]:Step 3: Skill Document Generation
📝 Generating skill document...
File: ~/.claude/skills/nextauth-prisma-session-type/SKILL.md
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# NextAuth + Prisma Session Type Extension
## Problem
Type error when accessing userId in NextAuth session
`Property 'userId' does not exist on type 'Session'`
## Solution
Create `types/next-auth.d.ts`:
\`\`\`typescript
import { DefaultSession } from "next-auth"
declare module "next-auth" {
interface Session {
user: {
id: string
} & DefaultSession["user"]
}
}
\`\`\`
## When to Apply
- When using NextAuth + Prisma combination
- When adding custom fields to session
## Related
- NextAuth official docs: TypeScript section
- Prisma adapter configuration
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Skill savedStep 4: Confirmation
View saved skill? [y/N]Learned Skills Storage
Storage Location
One directory per learned skill, so the harness discovers it like any other
skill (a flat .md under a shared folder is never loaded):
~/.claude/skills/
├── nextauth-prisma-session-type/SKILL.md
├── supabase-rls-debugging/SKILL.md
├── react-hydration-mismatch-fix/SKILL.md
└── vercel-edge-function-timeout/SKILL.mdSkill File Structure
---
name: pattern-name
description: Brief description
source: learn
learned_at: 2025-01-26
source_project: project-name
tags: [nextauth, prisma, typescript]
---
# Pattern Name
## Problem
Problem situation description
## Cause
Root cause analysis
## Solution
Resolution method (with code examples)
## When to Apply
Situations where this pattern applies
## Caveats
Warnings, edge cases
## Related
Related documentation, resource linksAuto-Learning (Stop Hook)
Automatic Session End Analysis
.claude/settings.json:
{
"hooks": {
"Stop": [
{
"type": "command",
"command": "~/.claude/scripts/evaluate-session.sh"
}
]
}
}Auto-Learning Configuration
.claude/learn.config.json:
{
"auto_learn": {
"enabled": true,
"min_session_length": 10,
"extraction_threshold": "medium",
"auto_approve": false
},
"storage": {
"path": "~/.claude/skills/",
"max_skills": 100
},
"filters": {
"ignore_patterns": [
"typo",
"syntax_error",
"one_time_fix"
],
"focus_patterns": [
"error_resolution",
"debugging_technique",
"workaround",
"architecture_decision"
]
}
}Integration
With PM Agent
Integration with PM Agent's self-improvement layer:
Session complete
│
├─→ /learn (pattern extraction)
│
└─→ PM Agent (documentation, knowledge base update)With /checkpoint
/checkpoint create "before-experiment"
... experimental resolution attempts ...
... success! ...
/learn # Save successful patternWith Future Sessions
Saved skills auto-referenced when similar problems occur:
🔍 Similar pattern detected
━━━━━━━━━━━━━━━━━━━━━━━━━━
Previously learned pattern available:
- nextauth-prisma-session-type
Apply? [y/N]Quality Filters
Value Assessment
| Criterion | Weight |
| Reusability potential | 40% |
| Resolution complexity | 30% |
| Time-saving impact | 20% |
| Documentation value | 10% |
Pre-save Checklist (all must be true)
- Project- or library-specific — not generic advice
- Not already obvious from the code, and not already in CLAUDE.md / RULES.md / CONVENTIONS.md
- Commands were actually run and work; file paths are real
- Expressed in the most concise form (one line per concept where possible)
- A new session would find it before needing it (name and tags are searchable)
Extraction Threshold
- Low: Extract most patterns (noisy)
- Medium: Medium+ value only (recommended)
- High: High-value patterns only (strict)
Commands
| Command | Description |
/learn | Analyze current session and extract patterns |
/learn list | List saved skills |
/learn show <name> | View specific skill content |
/learn delete <name> | Delete skill |
/learn search <keyword> | Search skills |
Best Practices
Good Pattern Example
# React Server Component Data Fetching
## Problem
Waterfall issue when fetching server data
in client components
## Solution
Fetch data in server component, pass as props
or use Suspense + parallel fetch
## Code Example
\`\`\`tsx
// ✅ Good: Server Component
async function Page() {
const data = await fetchData()
return <ClientComponent data={data} />
}
\`\`\`Patterns to Avoid
# Fix Typo in Config ❌
## Problem
Build failure due to typo
## Solution
Fix typo
→ No reuse value, do not save# UserService ❌
The `UserService` class handles user operations.
→ Obvious from the code, do not save# JWT Authentication ❌
JWT (JSON Web Tokens) are an open standard (RFC 7519) that defines a compact
and self-contained way for securely transmitting information ... (12 lines)
→ Verbose; the useful residue is one line: `Auth: JWT HS256, Bearer header`Include/Exclude criteria and the bad examples above are adapted from Anthropic's
claude-md-management plugin (update-guidelines.md, Apache 2.0) — see NOTICE.md.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

