contributing
About
This skill analyzes your current work context and project requirements to assess contribution readiness. It examines project guidelines, contribution workflows, and quality standards to determine if your work is ready for submission. Developers should use it when preparing code for PRs to ensure compliance with project-specific requirements.
Quick Install
Claude Code
Recommended/plugin add https://github.com/majiayu000/claude-skill-registrygit clone https://github.com/majiayu000/claude-skill-registry.git ~/.claude/skills/contributingCopy and paste this command in Claude Code to install this skill
Documentation
Complete Contribution Strategy - Context Aware
I'll analyze everything needed for your successful contribution based on your current context and work.
Strategic Thinking Process
<think> For a successful contribution, I need to analyze:-
Current Work Context
- What has been done in this session?
- Are we mid-implementation or post-completion?
- What type of changes were made (feature, fix, refactor)?
- Is the work ready for contribution?
-
Project Type & Standards
- Is this open source, company, or personal project?
- What are the contribution guidelines?
- Are there specific workflows to follow?
- What quality gates exist (tests, lint, reviews)?
-
Contribution Strategy
- Should this be one PR or multiple?
- Which issues does this work address?
- What documentation needs updating?
- Who should review this?
-
Pre-flight Checklist
- Do all tests pass?
- Is the code properly formatted?
- Are there any lint warnings?
- Is documentation updated?
- Are commits well-organized? </think>
Token Optimization Strategy
Target: 65% reduction (3,000-5,000 → 1,000-1,800 tokens)
This skill uses aggressive optimization to minimize token usage while providing comprehensive contribution readiness assessment.
Core Optimization Principles
1. Early Exit Pattern (Saves 70-90% tokens)
# Check if already documented
if [ -f "CONTRIBUTING.md" ] && grep -q "contribution" CONTRIBUTING.md; then
echo "✓ Contribution guidelines exist - use for reference"
exit 0
fi
# Mandatory pre-flight checks FIRST
npm test || exit 1 # Stop if tests fail (saves full analysis)
npm run lint || exit 1
npm run build || exit 1
2. Git Analysis for Contribution Patterns (Zero file reads)
# Analyze contribution history without reading files
git log --format="%H|%s|%an" -n 50 > /tmp/contribution_patterns.txt
git log --all --since="6 months ago" --format="%ae" | sort | uniq -c | sort -rn | head -5
git log --all --grep="Fixes #" --grep="Closes #" -E --format="%H %s"
# PR patterns from branches
git branch -r | grep -E "(feature|fix|hotfix|bugfix)" | wc -l
git config --get remote.origin.url # Detect GitHub/GitLab/etc
3. Template-Based Readiness Assessment (1 Read vs Many)
# Read only the essentials
[ -f "CONTRIBUTING.md" ] && Read CONTRIBUTING.md
[ -f ".github/PULL_REQUEST_TEMPLATE.md" ] && Read .github/PULL_REQUEST_TEMPLATE.md
# Use templates to drive checklist (not deep analysis)
checklist="
- [ ] Tests passing (bash check)
- [ ] Lint passing (bash check)
- [ ] Build passing (bash check)
- [ ] Commits follow convention (git log check)
- [ ] Branch follows naming (git branch check)
- [ ] PR template exists (file check)
"
4. Bash-Based Validation Checks (External tools, minimal tokens)
# All checks use Bash, not file reads
npm test 2>&1 | tail -5 # Test status
npm run lint 2>&1 | tail -5 # Lint status
npm run build 2>&1 | tail -5 # Build status
# Git hook validation
[ -f ".git/hooks/pre-commit" ] && echo "✓ Pre-commit hooks"
[ -f ".git/hooks/commit-msg" ] && echo "✓ Commit-msg hooks"
# CI configuration check
[ -f ".github/workflows/ci.yml" ] && echo "✓ GitHub Actions CI"
[ -f ".gitlab-ci.yml" ] && echo "✓ GitLab CI"
[ -f "Jenkinsfile" ] && echo "✓ Jenkins"
5. Project Structure Caching (Reuse /understand results)
# Check for existing analysis
if [ -f ".claude/cache/understand/project_structure.json" ]; then
# Reuse structure instead of re-analyzing
PROJECT_TYPE=$(jq -r '.project_type' .claude/cache/understand/project_structure.json)
TEST_FRAMEWORK=$(jq -r '.test_framework' .claude/cache/understand/project_structure.json)
BUILD_TOOL=$(jq -r '.build_tool' .claude/cache/understand/project_structure.json)
else
# Quick detection (no deep analysis)
[ -f "package.json" ] && PROJECT_TYPE="node"
[ -f "pom.xml" ] && PROJECT_TYPE="java"
[ -f "Cargo.toml" ] && PROJECT_TYPE="rust"
fi
6. Checklist-Based Validation (Not Deep Analysis)
Instead of:
❌ Read all test files → Analyze coverage → Generate report (2,000 tokens)
Do:
✅ Run `npm test -- --coverage` → Parse output (200 tokens)
Instead of:
❌ Read all source files → Check style → Report violations (3,000 tokens)
Do:
✅ Run `npm run lint` → Parse exit code (100 tokens)
Token Usage Breakdown
Unoptimized (3,000-5,000 tokens):
- Read CONTRIBUTING.md, README.md, CHANGELOG.md (800 tokens)
- Read .github templates and workflows (600 tokens)
- Analyze all changed files for style compliance (1,000 tokens)
- Read test files to verify coverage (500 tokens)
- Analyze commit history patterns (400 tokens)
- Generate detailed contribution guide (700 tokens)
Optimized (1,000-1,800 tokens):
- Git analysis for patterns (Bash commands, 150 tokens)
- Read CONTRIBUTING.md only if exists (200 tokens)
- Read PR template only if exists (150 tokens)
- Bash checks for tests/lint/build (200 tokens)
- Checklist-based validation (300 tokens)
- Template-based readiness report (400 tokens)
Savings: 65% reduction
Optimization Techniques Applied
A. Git-First Analysis (Saves 40% tokens)
# Instead of reading files, use git
git diff --stat origin/main...HEAD # Changed files
git log --oneline -n 10 # Recent commits
git log --format="%s" | grep -E "^(feat|fix|docs|test)" # Convention check
git branch --show-current # Current branch
git remote get-url origin # Repository URL
B. Cache Contribution Metadata
// .claude/cache/contributing/metadata.json
{
"project_type": "open_source",
"workflow": "github_flow",
"pr_template": ".github/PULL_REQUEST_TEMPLATE.md",
"required_checks": ["test", "lint", "build"],
"commit_convention": "conventional_commits",
"branch_pattern": "feature/*",
"cached_at": "2026-01-27T10:00:00Z"
}
C. Progressive Disclosure (Saves 50% on simple cases)
Quick Path (500 tokens):
- Pre-flight checks only
- All passing → Ready to contribute
- Any failing → Show fix commands
Standard Path (1,000 tokens):
- Pre-flight checks
- Read CONTRIBUTING.md
- Generate checklist
- Show next steps
Full Path (1,800 tokens):
- All above
- Analyze git patterns
- Compare with project standards
- Generate detailed action plan
D. Focus Area Flags (User-controlled scope)
# Minimal check
contributing --pre-flight # 500 tokens - just validation
# Targeted checks
contributing --docs # 600 tokens - docs only
contributing --pr-prep # 800 tokens - PR preparation only
contributing --test-status # 400 tokens - test validation only
# Full analysis (when needed)
contributing # 1,800 tokens - complete assessment
E. Reuse Shared Caches
Caches shared with other skills:
- /understand → Project structure, tech stack
- /test → Test framework, coverage config
- /commit → Commit conventions
- /review → Code patterns, standards
Instead of re-analyzing:
1. Check for existing cache
2. Validate cache is recent (< 24 hours)
3. Reuse cached data
4. Only re-analyze if cache miss
Implementation Guidelines
Pattern 1: Early Exit on Simple Cases
# Check if work is ready (90% of cases)
if npm test && npm run lint && npm run build; then
echo "✓ All checks pass - Ready to contribute"
echo "Run: git push && gh pr create"
exit 0
fi
# Only continue for complex analysis
Pattern 2: Template-Driven Assessment
# Use project templates as source of truth
if [ -f "CONTRIBUTING.md" ]; then
# Extract checklist from CONTRIBUTING.md
grep -E "^- \[ \]" CONTRIBUTING.md > /tmp/checklist.txt
# Validate against checklist (not deep analysis)
while IFS= read -r item; do
# Check each item (Bash commands, not file reads)
echo "Validating: $item"
done < /tmp/checklist.txt
fi
Pattern 3: Git Analysis Over File Analysis
# Pattern detection from history
git log --all --format="%s" | head -50 | \
grep -oE "^(feat|fix|docs|test|refactor|chore)" | \
sort | uniq -c | sort -rn
# Branch naming pattern
git branch -r | grep -oE "(feature|fix|hotfix)/" | \
sort | uniq -c
# Commit message length
git log -n 20 --format="%s" | awk '{print length}' | \
awk '{sum+=$1; count++} END {print sum/count}'
Pattern 4: Validation Without Deep Reads
# Check existence, not content
checks=(
".github/workflows/ci.yml:CI configured"
".github/PULL_REQUEST_TEMPLATE.md:PR template"
".git/hooks/pre-commit:Pre-commit hooks"
"CHANGELOG.md:Changelog maintained"
"LICENSE:License present"
)
for check in "${checks[@]}"; do
file="${check%%:*}"
desc="${check##*:}"
[ -f "$file" ] && echo "✓ $desc"
done
Caching Strategy
Cache Location: .claude/cache/contributing/
Cached Data:
metadata.json- Project contribution metadataguidelines.md- Extracted from CONTRIBUTING.mdpr_template.md- PR template contentworkflow.txt- Detected git workflowchecks.json- Required validation checkspatterns.json- Git commit/branch patterns
Cache Invalidation:
- When
.github/directory changes - When
CONTRIBUTING.mdmodified - When
package.jsonmodified (script changes) - Manual: Every 7 days
Cache Sharing:
- Shared with
/commit- Commit conventions - Shared with
/review- Code standards - Shared with
/test- Test requirements - Shared with
/understand- Project structure
Expected Results
Before Optimization:
- Average: 3,000-5,000 tokens per run
- Full analysis every time
- Multiple file reads
- Deep content analysis
After Optimization:
- Quick check: 500-800 tokens (80% reduction)
- Standard: 1,000-1,500 tokens (65% reduction)
- Full analysis: 1,500-1,800 tokens (60% reduction)
- Average: 1,000-1,800 tokens (65% reduction)
Performance Gains:
- 85% of cases: Early exit after pre-flight (500 tokens)
- 10% of cases: Template-based assessment (1,000 tokens)
- 5% of cases: Full analysis needed (1,800 tokens)
- Weighted average: 65% reduction achieved
Optimization Status: ✅ Optimized (Phase 2 Batch 3B, 2026-01-26)
Based on this framework, I'll begin by detecting your context:
Context Detection First: Let me understand what situation you're in:
-
Active Session Context (you've been implementing):
- Read CLAUDE.md for session goals and work done
- Analyze ALL files modified during session
- Check if tests were run and passed
- Review commits made during session
- Understand the complete scope of changes
-
Post-Implementation Context (feature complete):
- Detect completed features/fixes
- Check test coverage for new code
- Verify documentation was updated
- Analyze code quality and standards
-
Mid-Development Context (work in progress):
- Identify what's done vs. TODO
- Check partial implementations
- Assess readiness for contribution
-
Cold Start Context (no recent work):
- Analyze existing uncommitted changes
- Review branch differences from main
- Understand project state
Smart Context Analysis: Based on what I find, I'll adapt my approach:
- Session work: Package all session changes properly
- Multiple features: Suggest splitting into PRs
- Bug fixes: Fast-track simple contributions
- Major changes: Full contribution workflow
Phase 0: MANDATORY Pre-Flight Checks BEFORE anything else, I MUST verify:
- Build passes: Run project's build command
- Tests pass: All tests must be green
- Lint passes: No linting errors
- Type check passes: If TypeScript/Flow/etc
- Format check: Code properly formatted
If ANY check fails → STOP and fix first!
Phase 1: Deep Context Analysis I'll understand EVERYTHING about your situation:
A. Session Context (if you've been working):
- Read CLAUDE.md for complete session history
- Analyze ALL files changed during session
- Check test results from
/testruns - Review any
/reviewor/security-scanresults - Understand features implemented
B. Cold Start Context (running standalone):
- Run
/understandto map entire codebase - Analyze all local commits vs remote
- Detect uncommitted changes
- Compare fork with upstream (if applicable)
- Identify what makes your version unique
C. Implementation Context:
- Multiple features completed → Smart PR splitting
- Bug fixes done → Link to issue tracker
- Tests added → Update coverage reports
- Docs updated → Ensure consistency
Phase 2: Project Type Detection I'll identify what kind of project this is:
- Open Source: Full CONTRIBUTING.md compliance needed
- Company/Team: Internal standards and workflows
- Personal: Your own conventions
- Fork: Upstream project requirements
- Client Work: Specific deliverables
Phase 3: Repository Standards Analysis Based on project type, I'll examine:
- Read CONTRIBUTING.md, README.md, CHANGELOG.md, LICENSE files
- Analyze .github workflows, issue templates, PR templates
- Check code patterns, naming conventions, architectural decisions
- Review commit history for maintainer preferences and patterns
- Detect specific requirements (DCO, CLA, tests, docs)
Phase 4: Smart Comparison I'll compare your work against requirements:
- Feature Completeness: All acceptance criteria met?
- Test Coverage: New code properly tested?
- Documentation: Features documented?
- Code Standards: Follows project style?
- Breaking Changes: Handled properly?
Phase 5: Context-Aware Action Plan Based on your specific situation:
If you just finished a session:
- Package all session work into coherent PR(s)
- Generate comprehensive test report
- Create session-based PR description
- Link to issues mentioned in session
If you have multiple features:
- Suggest logical PR splits
- Order PRs by dependencies
- Create issue tracking for each
If contributing to open source:
- Full CONTRIBUTING.md compliance check
- DCO/CLA signature verification
- Community guidelines adherence
- Issue linkage and proper labels
Phase 6: Intelligent Remote Repository Scanning I'll do a DEEP scan of the remote repository to maximize PR acceptance:
Automatic Issue Discovery & Linking: When you've made changes, I'll search for:
- Bug Reports: "error", "bug", "broken" + your fixed files
- Feature Requests: "feature", "enhancement" + your implementations
- Improvements: "performance", "refactor" + your optimizations
- Documentation: "docs", "readme" + your doc updates
Smart Matching Algorithm: For each change you made, I'll:
- Extract keywords from your code changes
- Search remote issues for matches
- Analyze issue descriptions and comments
- Find the BEST matches to link
Proactive Issue Creation: If NO matching issues exist, I'll:
- Detect what type of change (bug fix, feature, etc.)
- Use project's issue templates
- Create issues in project's style (NO EMOJIS):
- Bug: Steps to reproduce, expected vs actual
- Feature: User story, benefits, implementation
- Enhancement: Current vs improved behavior
- Professional tone: Direct, factual, concise
- Follow project's labeling conventions
Git Workflow Detection: I'll analyze the project's workflow:
- Git Flow: feature/, hotfix/, release/*
- GitHub Flow: feature branches → main
- GitLab Flow: environment branches
- Custom: Detect from existing PRs
Smart PR Strategy: Based on what I find:
- Issues exist: Link with "Fixes #X", "Closes #Y"
- No issues: Create them first, then link
- Multiple issues: One PR per issue or grouped logically
- Discussion threads: Reference with "See #Z"
PR/Issue Style:
- Concise titles: "Fix auth validation bug" not "Fixed the authentication validation bug that was causing issues"
- Bullet points: Use lists, not paragraphs
- No emojis: Professional tone only
- Direct language: "This PR fixes X" not "I hope this PR might help with X"
- Match project tone: Analyze existing PRs for style
Phase 7: Smart Decision Tree When I find multiple items, I'll create a todo list with prioritized actions:
- Critical items that could block PR acceptance
- Recommended improvements for better approval chances
- Optional enhancements based on project patterns
I'll provide specific guidance:
- Exact files to update and how
- Required documentation changes
- Testing strategies that fit the project
- PR description template following project standards
Context-Based Options: "How should we proceed?"
For session work:
- "Package session work into PR" - I'll create PR from all session changes
- "Create issues for TODOs" - Track remaining work
- "Split into multiple PRs" - If you did multiple features
For open source contributions:
- "Full compliance check & PR" - Complete CONTRIBUTING workflow
- "Create tracking issues first" - For complex features
- "Quick fix PR" - For simple bug fixes
For team/company projects:
- "Follow internal process" - Your team's specific workflow
- "Create feature branch PR" - Standard git flow
- "Deploy to staging first" - If required
Smart PR Creation: Based on context, I'll:
- Use session summary for PR description
- Include test results automatically
- Link to related issues/discussions
- Follow project's PR template exactly
- Add appropriate labels and reviewers
Automated Workflow Options:
Option 1: "Full Auto-Deploy with Issue Management":
# I'll automatically:
1. RUN ALL CHECKS FIRST:
- Build must pass
- All tests must pass
- Lint must pass
- Type check must pass
2. Only if ALL pass, then:
3. Scan remote for ALL related issues
4. Create missing issues for your changes
5. Update CHANGELOG.md
6. Create proper branch (feature/fix/etc)
7. Push changes
8. Create PR with:
- Links to all related issues
- "Fixes #123" for bugs
- "Implements #456" for features
- Perfect description following template
9. Add labels and request reviewers
Option 2: "Prepare Everything" (review before push):
# I'll prepare but let you review:
1. Stage all changes properly
2. Generate PR description
3. Create issue links
4. Show you everything before push
Option 3: "Just Analyze" (see what needs doing):
# I'll analyze and report:
1. What's ready vs. what's missing
2. Compliance gaps
3. Suggested improvements
4. Issue opportunities
Fork-Specific Intelligence:
- Compare with upstream changes
- Suggest rebasing if needed
- Identify conflicts early
- Format for upstream acceptance
Intelligent Session Analysis Example: If you've been working and made changes:
You: /contributing
Me: Analyzing your session...
- Found: You fixed auth bug in UserService.js
- Found: You added rate limiting feature
- Found: You improved performance in API
Scanning remote repository...
- Issue #45: "Auth fails randomly" → Your fix addresses this!
- Issue #67: "Need rate limiting" → You implemented this!
- No issue for performance improvement → I'll create one
Options:
1. Create issue for performance + 3 PRs (one per issue)
2. Create issue + 1 PR fixing all three
3. Just prepare everything for review
Post-Implementation Auto-Actions:
- Scan remote for linkable issues
- Create missing issues automatically
- Run
/formaton all changed files - Run
/testto ensure everything passes - Run
/docsto update documentation - Create PR with maximum context
Important: I will NEVER:
- Add "Created by Claude" or any AI attribution to issues/PRs
- Include "Generated with Claude Code" in descriptions
- Modify repository settings or permissions
- Add any AI/assistant signatures or watermarks
- Use emojis in PRs, issues, or commit messages
- Be unnecessarily verbose in descriptions
- Add flowery language or excessive explanations
- PUSH TO GITHUB WITHOUT PASSING TESTS
- CREATE PR IF BUILD IS BROKEN
- SUBMIT CODE WITH LINT ERRORS
Professional Standards:
- Be concise: Get to the point quickly
- Be objective: Facts over feelings
- Follow project style: Match existing PR/issue tone
- No emojis: Keep it professional
- Clear and direct: What changed and why
- Practical focus: Implementation details that matter
This ensures maximum probability of PR acceptance by following all project standards and community expectations while avoiding duplicate work.
GitHub Repository
Related Skills
content-collections
MetaThis skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.
creating-opencode-plugins
MetaThis skill provides the structure and API specifications for creating OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It offers implementation patterns for JavaScript/TypeScript modules that intercept and extend the AI assistant's lifecycle. Use it when you need to build event-driven plugins for monitoring, custom handling, or extending OpenCode's capabilities.
langchain
MetaLangChain is a framework for building LLM applications using agents, chains, and RAG pipelines. It supports multiple LLM providers, offers 500+ integrations, and includes features like tool calling and memory management. Use it for rapid prototyping and deploying production systems like chatbots, autonomous agents, and question-answering services.
Algorithmic Art Generation
MetaThis skill helps developers create algorithmic art using p5.js, focusing on generative art, computational aesthetics, and interactive visualizations. It automatically activates for topics like "generative art" or "p5.js visualization" and guides you through creating unique algorithms with features like seeded randomness, flow fields, and particle systems. Use it when you need to build reproducible, code-driven artistic patterns.
