Thanks for wanting to contribute! This repo is a community resource for Claude Code users.
- What We're Looking For
- Quick Start
- Contributing Skills
- Contributing Agents
- Contributing Hooks
- Contributing Commands
- MCP and documentation (e.g. Context7)
- Cross-Harness and Translations
- Pull Request Process
New agents that handle specific tasks well:
- Language-specific reviewers (Python, Go, Rust)
- Framework experts (Django, Rails, Laravel, Spring)
- DevOps specialists (Kubernetes, Terraform, CI/CD)
- Domain experts (ML pipelines, data engineering, mobile)
Workflow definitions and domain knowledge:
- Language best practices
- Framework patterns
- Testing strategies
- Architecture guides
Useful automations:
- Linting/formatting hooks
- Security checks
- Validation hooks
- Notification hooks
Slash commands that invoke useful workflows:
- Deployment commands
- Testing commands
- Code generation commands
# 1. Fork and clone
gh repo fork affaan-m/everything-claude-code --clone
cd everything-claude-code
# 2. Create a branch
git checkout -b feat/my-contribution
# 3. Add your contribution (see sections below)
# 4. Test locally
cp -r skills/my-skill ~/.claude/skills/ # for skills
# Then test with Claude Code
# 5. Submit PR
git add . && git commit -m "feat: add my-skill" && git push -u origin feat/my-contributionSkills are knowledge modules that Claude Code loads based on context.
skills/
└── your-skill-name/
└── SKILL.md
---
name: your-skill-name
description: Brief description shown in skill list
origin: ECC
---
# Your Skill Title
Brief overview of what this skill covers.
## Core Concepts
Explain key patterns and guidelines.
## Code Examples
\`\`\`typescript
// Include practical, tested examples
function example() {
// Well-commented code
}
\`\`\`
## Best Practices
- Actionable guidelines
- Do's and don'ts
- Common pitfalls to avoid
## When to Use
Describe scenarios where this skill applies.- Focused on one domain/technology
- Includes practical code examples
- Under 500 lines
- Uses clear section headers
- Tested with Claude Code
| Skill | Purpose |
|---|---|
coding-standards/ |
TypeScript/JavaScript patterns |
frontend-patterns/ |
React and Next.js best practices |
backend-patterns/ |
API and database patterns |
security-review/ |
Security checklist |
Agents are specialized assistants invoked via the Task tool.
agents/your-agent-name.md
---
name: your-agent-name
description: What this agent does and when Claude should invoke it. Be specific!
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: sonnet
---
You are a [role] specialist.
## Your Role
- Primary responsibility
- Secondary responsibility
- What you DO NOT do (boundaries)
## Workflow
### Step 1: Understand
How you approach the task.
### Step 2: Execute
How you perform the work.
### Step 3: Verify
How you validate results.
## Output Format
What you return to the user.
## Examples
### Example: [Scenario]
Input: [what user provides]
Action: [what you do]
Output: [what you return]| Field | Description | Options |
|---|---|---|
name |
Lowercase, hyphenated | code-reviewer |
description |
Used to decide when to invoke | Be specific! |
tools |
Only what's needed | Read, Write, Edit, Bash, Grep, Glob, WebFetch, Task, or MCP tool names (e.g. mcp__context7__resolve-library-id, mcp__context7__query-docs) when the agent uses MCP |
model |
Complexity level | haiku (simple), sonnet (coding), opus (complex) |
| Agent | Purpose |
|---|---|
tdd-guide.md |
Test-driven development |
code-reviewer.md |
Code review |
security-reviewer.md |
Security scanning |
build-error-resolver.md |
Fix build errors |
Hooks are automatic behaviors triggered by Claude Code events.
hooks/hooks.json
| Type | Trigger | Use Case |
|---|---|---|
PreToolUse |
Before tool runs | Validate, warn, block |
PostToolUse |
After tool runs | Format, check, notify |
SessionStart |
Session begins | Load context |
Stop |
Session ends | Cleanup, audit |
{
"hooks": {
"PreToolUse": [
{
"matcher": "tool == \"Bash\" && tool_input.command matches \"rm -rf /\"",
"hooks": [
{
"type": "command",
"command": "echo '[Hook] BLOCKED: Dangerous command' && exit 1"
}
],
"description": "Block dangerous rm commands"
}
]
}
}// Match specific tools
tool == "Bash"
tool == "Edit"
tool == "Write"
// Match input patterns
tool_input.command matches "npm install"
tool_input.file_path matches "\\.tsx?$"
// Combine conditions
tool == "Bash" && tool_input.command matches "git push"// Block dev servers outside tmux
{
"matcher": "tool == \"Bash\" && tool_input.command matches \"npm run dev\"",
"hooks": [{"type": "command", "command": "echo 'Use tmux for dev servers' && exit 1"}],
"description": "Ensure dev servers run in tmux"
}
// Auto-format after editing TypeScript
{
"matcher": "tool == \"Edit\" && tool_input.file_path matches \"\\.tsx?$\"",
"hooks": [{"type": "command", "command": "npx prettier --write \"$file_path\""}],
"description": "Format TypeScript files after edit"
}
// Warn before git push
{
"matcher": "tool == \"Bash\" && tool_input.command matches \"git push\"",
"hooks": [{"type": "command", "command": "echo '[Hook] Review changes before pushing'"}],
"description": "Reminder to review before push"
}- Matcher is specific (not overly broad)
- Includes clear error/info messages
- Uses correct exit codes (
exit 1blocks,exit 0allows) - Tested thoroughly
- Has description
Commands are user-invoked actions with /command-name.
commands/your-command.md
---
description: Brief description shown in /help
---
# Command Name
## Purpose
What this command does.
## Usage
\`\`\`
/your-command [args]
\`\`\`
## Workflow
1. First step
2. Second step
3. Final step
## Output
What the user receives.| Command | Purpose |
|---|---|
commit.md |
Create git commits |
code-review.md |
Review code changes |
tdd.md |
TDD workflow |
e2e.md |
E2E testing |
Skills and agents can use MCP (Model Context Protocol) tools to pull in up-to-date data instead of relying only on training data. This is especially useful for documentation.
- Context7 is an MCP server that exposes
resolve-library-idandquery-docs. Use it when the user asks about libraries, frameworks, or APIs so answers reflect current docs and code examples. - When contributing skills that depend on live docs (e.g. setup, API usage), describe how to use the relevant MCP tools (e.g. resolve the library ID, then query docs) and point to the
documentation-lookupskill or Context7 as the pattern. - When contributing agents that answer docs/API questions, include the Context7 MCP tool names (e.g.
mcp__context7__resolve-library-id,mcp__context7__query-docs) in the agent's tools and document the resolve → query workflow. - mcp-configs/mcp-servers.json includes a Context7 entry; users enable it in their harness (e.g. Claude Code, Cursor) to use the documentation-lookup skill (in
skills/documentation-lookup/) and the/docscommand.
ECC ships skill subsets for other harnesses:
- Codex:
.agents/skills/— skills listed inagents/openai.yamlare loaded by Codex. - Cursor:
.cursor/skills/— a subset of skills is bundled for Cursor.
When you add a new skill that should be available on Codex or Cursor:
- Add the skill under
skills/your-skill-name/as usual. - If it should be available on Codex, add it to
.agents/skills/(copy the skill directory or add a reference) and ensure it is referenced inagents/openai.yamlif required. - If it should be available on Cursor, add it under
.cursor/skills/per Cursor's layout.
Check existing skills in those directories for the expected structure. Keeping these subsets in sync is manual; mention in your PR if you updated them.
Translations live under docs/ (e.g. docs/zh-CN, docs/zh-TW, docs/ja-JP). If you change agents, commands, or skills that are translated, consider updating the corresponding translation files or opening an issue so maintainers or translators can update them.
feat(skills): add rust-patterns skill
feat(agents): add api-designer agent
feat(hooks): add auto-format hook
fix(skills): update React patterns
docs: improve contributing guide
## Summary
What you're adding and why.
## Type
- [ ] Skill
- [ ] Agent
- [ ] Hook
- [ ] Command
## Testing
How you tested this.
## Checklist
- [ ] Follows format guidelines
- [ ] Tested with Claude Code
- [ ] No sensitive info (API keys, paths)
- [ ] Clear descriptions- Maintainers review within 48 hours
- Address feedback if requested
- Once approved, merged to main
- Keep contributions focused and modular
- Include clear descriptions
- Test before submitting
- Follow existing patterns
- Document dependencies
- Include sensitive data (API keys, tokens, paths)
- Add overly complex or niche configs
- Submit untested contributions
- Create duplicates of existing functionality
- Use lowercase with hyphens:
python-reviewer.md - Be descriptive:
tdd-workflow.mdnotworkflow.md - Match name to filename
- Issues: github.com/affaan-m/everything-claude-code/issues
- X/Twitter: @affaanmustafa
Thanks for contributing! Let's build a great resource together.