# Custom Claude Skills Reusable Claude Code skills shared across all projects via symlinks into `~/.claude/skills/`. ## Repository Structure ``` custom-claude-skills/ ├── CLAUDE.md # This file ├── MEMORY.md # Learnings about skill development ├── FUTURE.md # Future skill ideas ├── README.md # Setup instructions and skill catalogue ├── scripts/ │ └── install.sh # Symlinks all skills into ~/.claude/skills/ └── skills/ └── reflect/ └── SKILL.md # Milestone reflection skill ``` ## Conventions - Each skill lives in `skills//SKILL.md` - Skills should be project-agnostic where possible — use dynamic context injection (`!`command``) to adapt to the current project - The `scripts/install.sh` script creates symlinks from `~/.claude/skills/` → this repo's `skills//` - After adding a new skill, run `./scripts/install.sh` to register it - Skills that are only useful for one project should live in that project's `.claude/skills/` instead ## Skill Development Guidelines - **Inline by default** — only use `context: fork` if the skill genuinely doesn't need conversation history - **Pre-fetch context** with `!`command`` injection to reduce tool calls during execution - **Restrict tools** with `allowed-tools` to the minimum needed — this reduces permission prompts - **Use $ARGUMENTS** for user input, `$0`, `$1` etc. for positional args - Dynamic commands in `!`command`` run at skill load time, not during Claude's execution