.claude/skills/learn/SKILL.md
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.
npx skillsauth add alohays/paper2pr learnInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Extract non-obvious discoveries into reusable skills that persist across sessions.
Invoke /learn when you encounter:
Before creating a skill, answer these questions:
Continue only if YES to at least one question.
Search for related skills to avoid duplication:
# Check project skills
ls .claude/skills/ 2>/dev/null
# Search for keywords
grep -r -i "KEYWORD" .claude/skills/ 2>/dev/null
Outcomes:
Create the skill file at .claude/skills/[skill-name]/SKILL.md:
---
name: descriptive-kebab-case-name
description: |
[CRITICAL: Include specific triggers in the description]
- What the skill does
- Specific trigger conditions (exact error messages, symptoms)
- When to use it (contexts, scenarios)
author: Claude Code Academic Workflow
version: 1.0.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]
Before finalizing, verify:
After creating the skill, report:
✓ Skill created: .claude/skills/[name]/SKILL.md
Trigger: [when to use]
Problem: [what it solves]
User discovers that a specific R package silently drops observations:
---
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.
author: Claude Code Academic Workflow
version: 1.0.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]))
na.action parameterCompare nobs(model) with nrow(data) — difference indicates dropped obs.
documentation
Generate speaker notes (presentation script) for Quarto RevealJS slides. Supports English and Korean. Use when user asks to "write speaker notes", "add presentation script", "speaker script", "발표 스크립트", or "스피커 노트".
testing
Perform adversarial visual audit of Quarto or Beamer slides checking for overflow, font consistency, box fatigue, and layout issues.
testing
Validate bibliography entries against citations in all lecture files. Find missing entries and unused references.
testing
Translate Beamer LaTeX to Quarto RevealJS. Multi-phase workflow with TikZ extraction and QA.