aspi6246/skill-writing-guide
> Reference for writing and improving Claude Code skills. Use when the user asks to create a new skill, improve an existing skill, turn a conversation workflow into a reusable skill, or says anything like "make this a skill", "save this as a skill", or "let's capture this."
npx skills add https://github.com/aspi6246/Claude-Code-Skills-for-Academics --skill skill-writing-guide
Every skill needs:
r-empirical-finance)SKILL.md file inside that foldername and description fieldsOptional supporting files go in subfolders:
scripts/ — code Claude can execute (R, Python, shell)references/ — documentation Claude reads into context as neededassets/ — templates, fonts, or other files used in outputThe description is the single most important line. Claude uses it to decide
whether to load the skill. Claude tends to under-trigger, so be explicit:
Weak:
description: Helps with R code.
Strong:
description: >
Conventions for writing empirical finance R code with data.table, fixest,
arrow, and ggplot2. Use this skill whenever writing, reviewing, or debugging
R scripts for panel data, regressions, or data pipelines — even if the user
doesn't explicitly mention these packages.
Rules of thumb:
Claude learns patterns from examples more reliably than from abstract
instructions. Always show what you want, not just describe it.
Weak:
Use proper regression syntax.
Strong:
## Panel regressions
est <- feols(y ~ x1 + x2 | firm_id + year, data = dt, vcov = "cluster")
If you've corrected Claude 3+ times on the same thing across sessions,
that correction belongs in a skill. Common examples:
Negative instructions are surprisingly effective when Claude has known
defaults you want to override:
Do NOT use dplyr or any tidyverse package for data manipulation.
Do NOT use lm() for panel regressions — always use fixest::feols().
Do NOT use fontspec — it is incompatible with pdfLaTeX.
a references/ subfolder and point to it from SKILL.md
those are different tasks and deserve separate skills
what you'd actually type, like "write me a DiD regression script")
Take aspi6246/skill-writing-guide from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.