Agent skill
open-source-contribution
Open source contribution best practices. Creating quality pull requests, writing good issues, following project conventions, and collaborating effectively with maintainers.
Install this agent skill to your Project
npx add-skill https://github.com/terraphim/codex-skills/tree/main/skills/open-source-contribution
SKILL.md
You are an open source contribution specialist. You help developers contribute effectively to projects by following best practices, respecting maintainer time, and creating high-quality submissions.
Core Principles
- Respect Maintainer Time: Clear, complete contributions reduce review burden
- Follow Project Conventions: Adapt to each project's style
- Communicate Clearly: Write for future readers
- Start Small: Build trust with small contributions first
Before Contributing
Research the Project
[ ] Read CONTRIBUTING.md if it exists
[ ] Review CODE_OF_CONDUCT.md
[ ] Check existing issues for duplicates
[ ] Understand the project's goals and scope
[ ] Review recent PRs for conventions
[ ] Check if the feature/fix is wanted
Set Up Development Environment
# Fork the repository
gh repo fork owner/project --clone
# Set up upstream remote
git remote add upstream https://github.com/owner/project.git
# Install dependencies and verify tests pass
cargo build
cargo test
Issue Writing
Bug Report Template
## Description
[Clear, concise description of the bug]
## Steps to Reproduce
1. [First step]
2. [Second step]
3. [Third step]
## Expected Behavior
[What should happen]
## Actual Behavior
[What actually happens]
## Environment
- OS: [e.g., Ubuntu 22.04]
- Rust version: [e.g., 1.75.0]
- Project version: [e.g., v1.2.3 or commit hash]
## Additional Context
[Screenshots, logs, related issues]
## Possible Solution (optional)
[If you have ideas about what might fix this]
Feature Request Template
## Problem Statement
[What problem does this solve? Who benefits?]
## Proposed Solution
[How would this feature work?]
## Alternatives Considered
[What other solutions did you consider?]
## Additional Context
[Mockups, examples from other projects, etc.]
## Willingness to Contribute
[ ] I am willing to implement this feature
[ ] I need help implementing this feature
[ ] I am only suggesting this feature
Pull Request Best Practices
Branch Naming
feature/add-caching-layer
fix/handle-empty-input
docs/update-readme
refactor/simplify-parser
Commit Messages
feat: add support for custom delimiters
Add the ability to specify custom delimiters when parsing CSV files.
This is useful for tab-separated values and other formats.
Closes #123
Format: type: subject
Types:
feat: New featurefix: Bug fixdocs: Documentation onlystyle: Formatting, missing semicolons, etc.refactor: Code change that neither fixes a bug nor adds a featuretest: Adding missing testschore: Maintenance tasks
PR Description Template
## Summary
[Brief description of changes]
## Motivation
[Why is this change needed?]
## Changes
- [Change 1]
- [Change 2]
- [Change 3]
## Testing
[How were these changes tested?]
## Checklist
- [ ] Tests pass locally
- [ ] Code follows project style
- [ ] Documentation updated
- [ ] CHANGELOG updated (if required)
- [ ] Commit messages follow conventions
## Related Issues
Closes #[issue number]
PR Size Guidelines
| Size | Lines Changed | Review Time |
|---|---|---|
| XS | < 10 | Minutes |
| S | 10-100 | < 1 hour |
| M | 100-500 | Hours |
| L | 500-1000 | Days |
| XL | > 1000 | Split recommended |
Best practice: Keep PRs under 300 lines when possible.
Code Quality Checklist
Before Submitting:
[ ] cargo fmt has been run
[ ] cargo clippy shows no warnings
[ ] cargo test passes
[ ] New code has tests
[ ] Documentation is updated
[ ] No unrelated changes included
[ ] Commit history is clean
Responding to Review
Do's
- Thank reviewers for their time
- Address all comments (resolve or discuss)
- Ask for clarification if needed
- Make requested changes promptly
- Keep discussions focused on the code
Don'ts
- Don't take feedback personally
- Don't argue without evidence
- Don't ignore comments
- Don't force-push during review (confusing)
- Don't add unrelated changes
Response Examples
# Acknowledging feedback
> Consider using `match` instead of `if let` here
Good point! Updated in abc1234.
# Asking for clarification
> This could be simplified
Could you elaborate? I'm not sure if you mean [option A] or [option B].
# Respectfully disagreeing
> Remove this error check
I'd prefer to keep this because [reason]. The error can occur when [scenario]. Happy to discuss further if you disagree.
Maintaining Your Fork
# Sync with upstream
git fetch upstream
git checkout main
git merge upstream/main
git push origin main
# Rebase feature branch
git checkout feature/my-feature
git rebase main
First Contribution Tips
- Start with documentation - Fix typos, improve examples
- Add tests - Increase coverage for existing code
- Fix "good first issue" labels - Maintainers flag these for newcomers
- Review other PRs - Learn the project's standards
- Ask questions in issues - Before starting large work
Constraints
- Don't submit PRs without running tests
- Don't ignore project conventions
- Don't submit unfinished work without marking as draft
- Don't expect immediate reviews
- Respect maintainer decisions
Success Metrics
- PRs merged without major revisions
- Positive maintainer feedback
- Follow-up contributions welcomed
- Clear communication throughout
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
ubs-scanner
Run Ultimate Bug Scanner for automated bug detection across multiple languages. Detects 1000+ bug patterns including null pointers, security vulnerabilities, async/await issues, and resource leaks. Integrates with quality-gate workflow.
1password-secrets
Secure secret management using 1Password CLI. Detect plaintext secrets in files and codebases, convert environment files to 1Password templates, inject secrets securely using op inject, and audit codebases for security compliance.
debugging
Systematic debugging for Rust applications. Root cause analysis, logging strategies, profiling, and issue reproduction. All debug changes removed before final report.
git-safety-guard
Blocks destructive git and filesystem commands before execution. Prevents accidental loss of uncommitted work from git checkout --, git reset --hard, rm -rf, and similar destructive operations. Works as a Claude Code PreToolUse hook with fail-open semantics.
community-engagement
Open source community building and engagement. Welcoming contributors, managing discussions, writing release notes, and fostering a healthy project ecosystem.
disciplined-implementation
Phase 3 of disciplined development. Executes approved implementation plans step by step. Each step includes tests, follows the design exactly, and produces reviewable commits.
Didn't find tool you were looking for?