Paul O'Reilly 5ff98763cd Initial project setup with reflect skill
Reusable Claude Code skills shared across projects via symlinks
into ~/.claude/skills/. Includes the /reflect skill for structured
milestone reflections.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 15:33:46 +13:00

35 lines
1.6 KiB
Markdown

# 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-name>/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/<name>` → this repo's `skills/<name>/`
- 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