원클릭으로
learn
Capture structured learnings (gotcha, pattern, decision, bug-fix) as JSONL per project. Cross-project searchable.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Capture structured learnings (gotcha, pattern, decision, bug-fix) as JSONL per project. Cross-project searchable.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Generate a wide field of ideas, then pressure-test them. Five generators diverge, two challengers prune the weak ones, three synthesizers rank what survives.
Three-agent adversarial bug finder. Hunter overclaims every issue it can find, Skeptic disproves what it can, Referee arbitrates what survives. Scoring incentives force each role to behave honestly.
Dialectic process for reviewing, brainstorming, comparing tradeoffs, or stress-testing plans. Configurable modes, agent counts, and expert lenses.
Execute a pre-defined plan using implementation agents (no design changes)
Assume the plan failed — then explain why. Three pessimists write failure narratives, two optimists rebut, a risk assessor weighs which failure modes are real.
Adversarial stress-test of code, a plan, or an argument. Three critics attack, one defender rebuts, a referee judges, then a hostile auditor attacks the synthesis itself.
| name | learn |
| description | Capture structured learnings (gotcha, pattern, decision, bug-fix) as JSONL per project. Cross-project searchable. |
Capture reusable knowledge as structured JSONL entries in the current project directory. Each project gets its own .claude-learnings.jsonl file. Cross-project search supported.
Arguments: $ARGUMENTS
Parse the first word of $ARGUMENTS:
| First word | Action |
|---|---|
list | Show all learnings for current project |
search | Search ALL projects for matching learnings |
gotcha | Capture with type=gotcha, rest is description |
pattern | Capture with type=pattern, rest is description |
decision | Capture with type=decision, rest is description |
bug-fix | Capture with type=bug-fix, rest is description |
| anything else | Capture with type inferred from context (default: pattern) |
If no arguments at all, ask: "What did you learn? Describe it and I'll capture it."
Use these to classify learnings and to infer type when not specified:
| Type | When to use | Example |
|---|---|---|
gotcha | A trap or pitfall to avoid next time | "psycopg2 cursor.copy_expert needs binary mode for COPY" |
pattern | A reusable approach or technique | "use pd.read_csv with encoding='utf-8-sig' for BOM files" |
decision | A choice made with rationale worth preserving | "chose GMM over K-Means because clusters are non-spherical" |
bug-fix | What broke and why, so it never recurs | "capacity_changes double-counted because JOIN lacked date filter" |
gotchadecisionbug-fixpatternThe learning file lives in the current project root (the directory containing CLAUDE.md, or the current working directory if no CLAUDE.md is found):
<project-root>/.claude-learnings.jsonl
Build a JSON object with these fields:
{"type": "gotcha|pattern|decision|bug-fix", "summary": "one-line summary", "detail": "full description with context", "date": "YYYY-MM-DD", "tags": ["tag1", "tag2"]}
Rules:
summary: One sentence, max ~80 chars. This is the scannable headline.detail: The full description from the user, plus any relevant context (what project, what file, what triggered it). Include enough that someone reading this 6 months later understands it.date: Today's date in YYYY-MM-DD format.tags: 2-4 tags derived from the content. Use lowercase, hyphenated terms. Include the technology/tool involved (e.g., "pandas", "postgresql", "git") and the domain (e.g., "data-pipeline", "deployment", "testing").Append the JSON object as a single line to the .claude-learnings.jsonl file. One entry per line, no trailing comma, no array wrapper.
Print the captured entry formatted for readability and state the file path it was written to.
Read the .claude-learnings.jsonl file in the current project directory. Display all entries grouped by type, with newest first within each group. Format:
## Learnings for <project-name> (N total)
### Gotchas (N)
- [2025-03-15] one-line summary
detail text here
### Patterns (N)
...
If no learnings file exists, say: "No learnings captured yet for this project. Use /learn <description> to start."
Arguments after search: the search term(s).
.claude-learnings.jsonl files recursively. Search root in this order: (a) ~/Projects/ if it exists, (b) otherwise the current working directory. Do NOT fall back to globbing the entire home directory (~/) — on a developer machine that would traverse node_modules, .git, cache folders, and thousands of irrelevant paths. Users who keep projects in a non-standard location should adjust this skill (or symlink their projects directory to ~/Projects) rather than widening the search scope.summary, detail, or tags contain the search term (case-insensitive).Format:
## Search results for "<term>" (N matches across M projects)
### ~/Projects/my-web-app
- [pattern] [2025-03-15] one-line summary
detail text
### ~/Projects/data-pipeline
- [gotcha] [2025-02-10] one-line summary
detail text
If no matches, say: "No learnings found matching '' across any project."
/learn for atomic, searchable facts. Use MEMORY.md for narrative context, status, and cross-cutting decisions./debug skill suggests /learn gotcha after fixing a bug. The /retro skill can bulk-capture learnings from session review..claude-learnings.jsonl to .gitignore if the project is version-controlled.