agent-skills
CLAUDE.md0 starsChanged 8 months agoMITView on GitHub
This repository contains reusable skills for Claude Code agents. Skills are specialized instruction sets that handle common workflows efficiently. They're invoked via /skill-name commands in Claude Code sessions. Key insight: Each skill is self-contained with its own SKILL.md documentation, making them independently discoverable and usable. A skill is a directory containing a SKILL.md file with: Example: pre-init/SKILL.md shows a well-structured skill with defaults and user customization support. Each skill should solve a specific, well-defined problem. Look at existing skills: -…
In this repository13 other files it gives its agents.
- AGENTS.mdAGENTS.md
- ccswitchSkill
- code-rulesSkill
- leanmgr-cache-managerSkill
- learn-math-by-lean-notebookSkill
- lmfdb-cliSkill
- mathlib-styleSkill
- mathlib-workflowSkill
- openclaw-rssSkill
- pre-initSkill
- pr-worktree-workflowSkill
- sshSkill
- tmuxSkill
The file
Show its rules and text
We split this CLAUDE.md into the rules it gives an agent
28 rules. About 0 are common, 21 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈21
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 103
Verify YAML frontmatter is valid
- Distinctive: line 104
Check all links and code examples work
- Distinctive: line 105
Test references to paths (if any)
- Distinctive: line 106
Ensure clear "when to use" triggers
- Distinctive: line 110
Add to the skills table in README.md:
- Very specific: line 139
Check user config first (~/.config/{name}/)
- Distinctive: line 149
Create initialization logic (shell script)
- Distinctive: line 151
Document manual usage for edge cases
- Distinctive: line 191
Check for common issues:
- Distinctive: line 206
After adding a skill:
- Distinctive: line 246
Document which is the recommended approach
- Distinctive: line 270
YAML Syntax: Verify frontmatter is valid
- Very specific: line 276
Documentation: Read SKILL.md end-to-end
- Distinctive: line 279
No broken links or references?
- Distinctive: line 295
Use the standard commit convention:
- Distinctive: line 307
Keep commits atomic - one skill per commit when possible.
- Very specific: line 313
Use clear section headings (## Section)
- Very specific: line 314
Use code blocks with language:
bash not - Distinctive: line 320
Use README.md in skill directory for implementation details
- Distinctive: line 321
Document architecture decisions clearly
- Very specific: line 322
Keep internal docs separate from SKILL.md (user-facing)
- Very specific: line 341
If you're adding skills for a specific domain (like mathlib-*):
- Distinctive: line 343
Create separate skills for different concerns
- Very specific: line 348
Keep SKILL.md focused on one workflow
- Distinctive: line 354
Document all common patterns
- Distinctive: line 368
English only: All skill descriptions and documentation in English
- Distinctive: line 369
Self-contained: Don't rely on external documentation beyond necessary links
- Distinctive: line 372
Test before commit: Verify YAML, links, and code examples work
≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Purpose
This repository contains reusable skills for Claude Code agents. Skills are specialized instruction sets that handle common workflows efficiently. They're invoked via /skill-name commands in Claude Code sessions.
Key insight: Each skill is self-contained with its own SKILL.md documentation, making them independently discoverable and usable.
Repository Structure
agent-skills/
├── README.md # Overview and skill listing
├── AGENTS.md # Development guidelines (outdated, update with CLAUDE.md)
├── CLAUDE.md # This file
├── {skill-name}/
│ ├── SKILL.md # Skill definition (YAML frontmatter + markdown docs)
│ ├── init.sh # (optional) Executable scripts
│ ├── templates/ # (optional) Template files
│ ├── references/ # (optional) Reference documentation
│ └── README.md # (optional) Internal implementation docs
└── .claude/
└── settings.local.json # Session permissions (auto-generated)What Makes a Skill
A skill is a directory containing a SKILL.md file with:
- YAML Frontmatter (required):
--- name: skill-name description: > One-line description. Use when: trigger conditions. --- - Markdown Documentation (required):
- Overview
- When to use
- Usage examples
- Step-by-step workflows
- Common patterns
- Supporting Files (optional):
- Scripts (
init.sh, etc.) - Templates (configuration examples)
- Reference docs
- Scripts (
Example: pre-init/SKILL.md shows a well-structured skill with defaults and user customization support.
Adding New Skills
Step 1: Understand the Pattern
Each skill should solve a specific, well-defined problem. Look at existing skills:
pre-init/- Configuration template initializationtmux/- Terminal multiplexer patternsmathlib-workflow/- Domain-specific workflow (Lean 4)
Step 2: Create Skill Directory
mkdir -p {skill-name}
touch {skill-name}/SKILL.mdStep 3: Write SKILL.md
---
name: my-skill
description: >
What this skill does. Use when: specific trigger/scenario.
---
# My Skill
## Overview
[Clear explanation of purpose]
## When to Use
[Specific triggers and scenarios]
## How It Works
[Step-by-step explanation]
## Examples
[Practical usage examples]
## Common Patterns
[Reusable techniques]
## Tips
[Optimization and best practices]Step 4: Test the Skill
- Verify YAML frontmatter is valid
- Check all links and code examples work
- Test references to paths (if any)
- Ensure clear "when to use" triggers
Step 5: Update README.md
Add to the skills table in README.md:
| [skill-name](./skill-name/) | Short description |Step 6: Commit
git add {skill-name}/SKILL.md README.md
git commit -m "feat: add {skill-name} skill for {purpose}"Skill Design Patterns
Pattern 1: Self-Contained Documentation
Each skill is independent - someone can read just its SKILL.md and understand everything needed.
✅ Good: Clear triggers, complete examples, step-by-step instructions ❌ Bad: References to external docs, assumes prior knowledge
Pattern 2: Two-Tier Configuration (optional)
For skills that benefit from user customization (like pre-init):
- Skill layer: Built-in defaults in skill directory
- User layer: Custom configs in
~/.config/(takes priority)
Implement with:
- Check user config first (
~/.config/{name}/) - Fall back to skill defaults
- Show which source is being used
See pre-init/init.sh for implementation example.
Pattern 3: Integration with /init
Skills that handle project initialization should integrate with /init:
- Create initialization logic (shell script)
- Mark skill as "internal" in description if auto-called
- Document manual usage for edge cases
Example: pre-init is auto-called by /init for all new projects.
Common Development Commands
View a Skill's Status
# Check if skill is discoverable
ls {skill-name}/SKILL.md
# View skill documentation
cat {skill-name}/SKILL.md
# Check internal implementation (if applicable)
cat {skill-name}/README.md
cat {skill-name}/init.shTest Template/Configuration Skills
For skills with templates or scripts:
# Test auto-detection (if applicable)
cd /tmp/test-project && touch test.lean
bash {skill-name}/init.sh
# Test explicit type
bash {skill-name}/init.sh lean4
# Test priority system (if applicable)
mkdir -p ~/.config/{skill-name}/type
echo "CUSTOM" > ~/.config/{skill-name}/type/FILE.md
bash {skill-name}/init.sh typeLint SKILL.md
Check for common issues:
# Verify YAML is valid
cat {skill-name}/SKILL.md | head -10 # Check frontmatter
# Check for broken links
grep -E '\[.*\]\(' {skill-name}/SKILL.md
# Verify code blocks have language specified
grep -E '^\`\`\`$' {skill-name}/SKILL.md # Should be ```bash, not ```Update README
After adding a skill:
# Add skill to README.md table
code README.md
# Commit
git add README.md
git commit -m "docs: add {skill-name} to skills list"Architecture Decisions
Why Skills Are Self-Contained
Each skill is a complete, independent unit because:
- Discoverability - Users can understand a skill by reading just SKILL.md
- Reusability - Skills work across different projects
- Maintainability - Changes to one skill don't affect others
- Testability - Each skill can be tested independently
Why Two-Tier Configuration (in applicable skills)
For customizable skills like pre-init:
- Skill layer (
/agent-skills/pre-init/templates/): Defaults that ship with the skill - User layer (
~/.config/pre-init/): User's custom templates
This design ensures:
- ✅ Skill updates don't break user customizations
- ✅ Users can customize without modifying the skill repo
- ✅ Defaults are always available as fallback
Why /init Integration
/init is Claude Code's official project initialization command. Skills that handle initialization should:
- Be triggered automatically by
/init(marked as "internal") - Support manual usage via
/skill-namefor edge cases - Document which is the recommended approach
Skill Categories
Infrastructure & Tools
tmux- Terminal multiplexingssh- Remote access patterns
Domain-Specific Workflows
mathlib-workflow- Lean 4 library contributionmathlib-style- Lean 4 code style guide
Automation & Integration
pre-init- Project configuration (integrated with/init)openclaw-rss- RSS feed + OpenClaw integration
Development Workflows
pr-worktree-workflow- Worktree + PR creationlmfdb-cli- Number theory database queries
Testing a New Skill
Before committing:
- YAML Syntax: Verify frontmatter is valid
# Manual check head -10 SKILL.md | grep -E '^(name|description|---|)' - Documentation: Read SKILL.md end-to-end
- Clear "when to use" section?
- Examples that match the documented behavior?
- No broken links or references?
- Scripts (if applicable):
# For shell scripts bash -n {skill-name}/script.sh # Check syntax bash {skill-name}/script.sh test # Run basic test - Integration (if applicable):
- Does it integrate with
/initcorrectly? - Does it work in isolation (manual invocation)?
- Are error messages helpful?
- Does it integrate with
Git Workflow
Use the standard commit convention:
# Adding a new skill
git add {skill-name}/
git commit -m "feat: add {skill-name} skill for {purpose}"
# Updating an existing skill
git commit -m "docs: improve {skill-name} examples"
git commit -m "refactor: restructure {skill-name} templates"Keep commits atomic - one skill per commit when possible.
Documentation Standards
SKILL.md Format
- Use clear section headings (
## Section) - Use code blocks with language:
```bashnot``` - Include real usage examples, not abstract descriptions
- Explain the "why" not just the "what"
Internal Documentation
- Use
README.mdin skill directory for implementation details - Document architecture decisions clearly
- Keep internal docs separate from SKILL.md (user-facing)
Current Skills Overview
| Name | Purpose | Key Feature |
pre-init | Project initialization | Two-tier templates, /init integration |
tmux | Terminal multiplexing | Comprehensive patterns, session management |
ssh | Remote access | Key management, tunnel creation |
mathlib-workflow | Lean 4 contribution | Complete GitHub workflow |
mathlib-style | Lean 4 style guide | Naming conventions, formatting |
pr-worktree-workflow | Git workflow | Worktree + PR creation |
lmfdb-cli | Number theory queries | LMFDB API integration |
openclaw-rss | Feed parsing | OpenClaw notifications |
Extending This Repository
Adding a Domain-Specific Skill
If you're adding skills for a specific domain (like mathlib-*):
- Create separate skills for different concerns
mathlib-workflow/- How to contributemathlib-style/- Code standards
- Reference each other when appropriate
- Keep SKILL.md focused on one workflow
Adding Infrastructure Skills
For tools like tmux and ssh:
- Document all common patterns
- Include troubleshooting sections
- Show both correct and incorrect approaches
Adding Integration Skills
For external services (like openclaw-rss):
- Document setup/configuration
- Show how to trigger from Claude Code
- Include error handling examples
Notes for Future Contributors
- English only: All skill descriptions and documentation in English
- Self-contained: Don't rely on external documentation beyond necessary links
- Examples first: Lead with practical examples, not theory
- Clear triggers: Make it obvious when to use each skill
- Test before commit: Verify YAML, links, and code examples work
See Also
README.md- Skill listing and overviewAGENTS.md- Development guidelines (being merged with CLAUDE.md)- Individual skill
README.mdfiles for implementation details /init- Official Claude Code project initialization command
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

