learn · pedrohcgs — Claude Code skill: what it does, how to install
Extracts non-obvious fixes and workflows from your session into persistent skills. Useful when an undocumented workaround needs to be reused across future runs.
npx skills add pedrohcgs/claude-code-my-workflow --skill learn -a claude-codeWhat learn does
The skill converts findings from your active coding session into a reusable markdown instruction. It runs a four-phase routine: evaluating the discovery, searching .claude/skills/ with grep and ls to prevent duplicates, generating the SKILL.md file, and running quality checks.
The structure enforces strict frontmatter and sections for problem descriptions, exact error triggers, verification steps, and code snippets. During the gate check, it verifies that the solution was tested and ensures no tokens or personal data enter the file. Required tools include Read, Write, Bash, Glob, and Grep.
Skill names must follow kebab-case. Without file writing permissions in the workspace, the skill cannot save its output.
What it helps with
- Document non-obvious debugging steps directly into persistent project skills
- Check existing skills in
.claude/skills/to prevent duplicate workflows - Generate standardized
SKILL.mdfiles with clear triggers and verification steps - Filter out credentials and sensitive data before saving knowledge
Example prompts for the agent
- /learn fixest-missing-covariate-handling
- Document the workaround we just found using /learn r-package-conflict
- /learn docker-compose-healthcheck
How to install learn
1Skills CLI (Vercel)
npx skills add pedrohcgs/claude-code-my-workflow --skill learn -a claude-code2Manually: put the files in place
~/.claude/skills/learn/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/learn/
1Skills CLI (Vercel)
npx skills add pedrohcgs/claude-code-my-workflow --skill learn -a codex2Manually: put the files in place
.agents/skills/learn/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add pedrohcgs/claude-code-my-workflow --skill learn -a cursor2Manually: put the files in place
.cursor/skills/learn/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install pedrohcgs/claude-code-my-workflow learn2Manually: put the files in place
.github/skills/learn/SKILL.md1Skills CLI (Vercel)
npx skills add pedrohcgs/claude-code-my-workflow --skill learn -a gemini-cli2Platform CLI
gemini skills install https://github.com/pedrohcgs/claude-code-my-workflow --path .claude/skills/learnManually: put the files in place
.devin/skills/learn/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add pedrohcgs/claude-code-my-workflow --skill learn -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about learn
How to install learn in Claude Code?
Run npx skills add pedrohcgs/claude-code-my-workflow --skill learn -a claude-code in your terminal. You can also place the skill file directly into ~/.claude/skills/learn/SKILL.md.
What does the learn skill do?
It inspects what was solved during the session and writes a structured SKILL.md document for future agent runs to consult.
What quality checks does learn apply before saving?
It verifies that trigger conditions are specific, the solution was tested, no secrets or credentials leaked into the text, and the name uses kebab-case.
Source text
SKILL.md · MIT
--- name: learn description: | Extract reusable knowledge from the current session into a persistent skill. Use when you discover something non-obvious, create a workaround, or develop a multi-step workflow that future sessions would benefit from. argument-hint: "[skill-name (kebab-case)]" allowed-tools: ["Read", "Write", "Bash", "Glob", "Grep"] disable-model-invocation: true metadata: author: Claude Code Academic Workflow version: 1.0.0 --- # /learn — Skill Extraction Workflow Extract non-obvious discoveries into reusable skills that persist across sessions. ## When to Use This Skill Invoke `/learn` when you encounter: - **Non-obvious debugging** — Investigation that took significant effort, not in docs - **Misleading errors** — Error message was wrong, found the real cause - **Workarounds** — Found a limitation with a creative solution - **Tool integration** — Undocumented API usage or configuration - **Trial-and-error** — Multiple attempts before success - **Repeatable workflows** — Multi-step task you'd do again - **User-facing automation** — Reports, checks, or processes users will request ## Workflow Phases ### PHASE 1: Evaluate (Self-Assessment) Before creating a skill, answer these questions: 1. "What did I just learn that wasn't obvious before starting?" 2. "Would future-me benefit from this being documented?" 3. "Was the solution non-obvious from documentation alone?" 4. "Is this a multi-step workflow I'd repeat?" **Continue only if YES to at least one question.** ### PHASE 2: Check Existing Skills Search for related skills to avoid duplication: ```bash # Check project skills ls .claude/skills/ 2>/dev/null # Search for keywords grep -r -i "KEYWORD" .claude/skills/ 2>/dev/null ``` **Outcomes:** - Nothing related → Create new skill (continue to Phase 3) - Same trigger & fix → Update existing skill (bump version) - Partial overlap → Update with new variant ### PHASE 3: Create Skill Create the skill file at `.claude/skills/[skill-name]/SKILL.md`: ```yaml --- name: descriptive-kebab-case-name description: | [What the skill does, then the situations it applies to — the key use first. Include an exact error string only when that string is the trigger.] - What the skill does - Trigger conditions (symptoms; an exact error message when that is the trigger) - When to use it (contexts, scenarios) metadata: author: [you] version: "1.0" argument-hint: "[expected arguments]" # Optional --- # Skill Name ## Problem [Clear problem description — what situation triggers this skill] ## Context / Trigger Conditions [When to use — exact error messages, symptoms, scenarios] [Be specific enough that you'd recognize it again] ## Solution [Step-by-step solution] [Include commands, code snippets, or workflows] ## Verification [How to verify it worked] [Expected output or state] ## Example [Concrete example of the skill in action] ## References [Documentation links, related files, or prior discussions] ``` ### PHASE 4: Quality Gates Before finalizing, verify: - [ ] Description has specific trigger conditions (not vague) - [ ] Solution was verified to work (tested) - [ ] Content is specific enough to be actionable - [ ] Content is general enough to be reusable - [ ] No sensitive information (credentials, personal data) - [ ] Skill name is descriptive and uses kebab-case ## Output After creating the skill, report: ``` ✓ Skill created: .claude/skills/[name]/SKILL.md Trigger: [when to use] Problem: [what it solves] ``` ## Example: Creating a Skill User discovers that a specific R package silently drops observations: ```markdown --- name: fixest-missing-covariate-handling description: | Handle silent observation dropping in fixest when covariates have missing values. Use when: estimates seem wrong, sample size unexpectedly small, or comparing results between packages. metadata: author: [you] version: "1.0" --- # fixest Missing Covariate Handling ## Problem The fixest package silently drops observations when covariates have NA values, which can produce unexpected results when comparing to other packages. ## Context / Trigger Conditions - Sample size in fixest is smaller than expected - Results differ from Stata or other R packages - Model has covariates with potential missing values ## Solution 1. Check for NA patterns before regression: ```r summary(complete.cases(data[, covariates])) ``` 2. Explicitly handle NA values or use `na.action` parameter 3. Document the expected sample size in comments ## Verification Compare `nobs(model)` with `nrow(data)` — difference indicates dropped obs. ## References - fixest documentation on missing values - [LEARN:r-code] entry in MEMORY.md ```
© Claude Code Academic Workflow · MIT · pedrohcgs/claude-code-my-workflow
Similar skills
All skills for Agent setup: memory, context, orchestration →learn by other authors comes first.