Contribution readiness assessment analyzing project guidelines and requirements
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: contributing
description: Contribution readiness assessment analyzing project guidelines and requirements
disable-model-invocation: false
---
# 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:
1. **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?
2. **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)?
3. **Contribution Strategy**
- Should this be one PR or multiple?
- Which issues does this work address?
- What documentation needs updating?
- Who should review this?
4. **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)**
```bash
# 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)**
```bash
# 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)**
```bash
# 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)**
```bash
# 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)**
```bash
# 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)**
```text
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)**
```bash
# 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**
```json
// .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)**
```text
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)**
```bash
# 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**
```text
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**
```bash
# 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**
```bash
# 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**
```bash
# 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**
```bash
# 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 metadata
- `guidelines.md` - Extracted from CONTRIBUTING.md
- `pr_template.md` - PR template content
- `workflow.txt` - Detected git workflow
- `checks.json` - Required validation checks
- `patterns.json` - Git commit/branch patterns
**Cache Invalidation:**
- When `.github/` directory changes
- When `CONTRIBUTING.md` modified
- When `package.json` modified (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:
1. **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
2. **Post-Implementation Context** (feature complete):
- Detect completed features/fixes
- Check test coverage for new code
- Verify documentation was updated
- Analyze code quality and standards
3. **Mid-Development Context** (work in progress):
- Identify what's done vs. TODO
- Check partial implementations
- Assess readiness for contribution
4. **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 `/test` runs
- Review any `/review` or `/security-scan` results
- Understand features implemented
**B. Cold Start Context** (running standalone):
- Run `/understand` to 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:
1. Extract keywords from your code changes
2. Search remote issues for matches
3. Analyze issue descriptions and comments
4. Find the BEST matches to link
**Proactive Issue Creation:**
If NO matching issues exist, I'll:
1. Detect what type of change (bug fix, feature, etc.)
2. Use project's issue templates
3. 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
4. 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"**:
```bash
# 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):
```bash
# 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):
```bash
# 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 `/format` on all changed files
- Run `/test` to ensure everything passes
- Run `/docs` to 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.No comments yet. Be the first to comment!