Use Skills to Teach Claude Reusable Project Workflows
If you keep giving Claude the same instructions across sessions — "always use Pest for tests", "follow our API response format", "run lint after every edit" — it's time to turn those into a skill.
mkdir -p .claude/skills/my-workflow
cat > .claude/skills/my-workflow/SKILL.md << 'EOF'
# My Project Workflow
When writing code in this project:
1. Always write Pest tests alongside new features
2. Use strict PHP types and return types
3. Run `./vendor/bin/pint` after editing PHP files
4. Follow the JSON:API response format for all endpoints
EOF
Skills live in .claude/skills/ and get loaded automatically when Claude starts a session in that project. Think of them as reusable playbooks — they survive context resets, work across sessions, and keep Claude consistent without you repeating yourself.
You can scope skills globally too:
mkdir -p ~/.claude/skills/global-rules
Stack multiple skills for different concerns — one for testing conventions, one for commit style, one for deployment checks. Claude reads all of them.
The difference between a skill and a CLAUDE.md entry is intent: CLAUDE.md is project context and preferences, while skills are workflows — step-by-step instructions Claude should follow when performing specific tasks.
Stop repeating yourself — teach Claude once, and it remembers every session.
Log in to leave a comment.
Turn your most common prompts into reusable slash commands — drop a markdown file into .claude/commands/ and it becomes a /command you and your team can invoke anytime, with consistent instructions every time.
Create reusable slash commands in your project so common prompts like "run tests and fix failures" or "review this file for security issues" become a single /command instead of typing the same instructions every time.
The $ARGUMENTS placeholder in custom slash command files turns a static prompt into a reusable tool — pass different values each time you invoke it, just like a function that takes arguments.