Contribute
Contributing to Task Master
Thank you for your interest in contributing to Task Master! Weβre excited to work with you and appreciate your help in making this project better. π
π€ Our Collaborative Approach
Weβre a PR-friendly team that values collaboration:
- β We review PRs quickly - Usually within hours, not days
- β Weβre super reactive - Expect fast feedback and engagement
- β We sometimes take over PRs - If your contribution is valuable but needs cleanup, we might jump in to help finish it
- β Weβre open to all contributions - From bug fixes to major features
We donβt mind AI-generated code, but we do expect you to:
- β Review and understand what the AI generated
- β Test the code thoroughly before submitting
- β Ensure itβs well-written and follows our patterns
- β Donβt submit βAI slopβ - untested, unreviewed AI output
Why this matters: We spend significant time reviewing PRs. Help us help you by submitting quality contributions that save everyone time!
π Quick Start for Contributors
1. Fork and Clone
2. Create a Feature Branch
Important: Always target the next
branch, not main
:
3. Make Your Changes
Follow our development guidelines below.
4. Test Everything Yourself
Before submitting your PR, ensure:
5. Create a Changeset
Required for most changes:
See the Changeset Guidelines below for details.
6. Submit Your PR
- Target the
next
branch - Write a clear description
- Reference any related issues
π Development Guidelines
Branch Strategy
main
: Production-ready codenext
: Development branch - target this for PRs- Feature branches:
feature/description
orfix/description
Code Quality Standards
- Write tests for new functionality
- Follow existing patterns in the codebase
- Add JSDoc comments for functions
- Keep functions focused and single-purpose
Testing Requirements
Your PR must pass all CI checks:
- β
Unit tests:
npm test
- β
Format check:
npm run format-check
Test your changes locally first - this saves review time and shows you care about quality.
π¦ Changeset Guidelines
We use Changesets to manage versioning and generate changelogs.
When to Create a Changeset
Always create a changeset for:
- β New features
- β Bug fixes
- β Breaking changes
- β Performance improvements
- β User-facing documentation updates
- β Dependency updates that affect functionality
Skip changesets for:
- β Internal documentation only
- β Test-only changes
- β Code formatting/linting
- β Development tooling that doesnβt affect users
How to Create a Changeset
-
After making your changes:
-
Choose the bump type:
- Major: Breaking changes
- Minor: New features
- Patch: Bug fixes, docs, performance improvements
-
Write a clear summary:
-
Commit the changeset file with your changes:
Changeset vs Git Commit Messages
- Changeset summary: User-facing, goes in CHANGELOG.md
- Git commit: Developer-facing, explains the technical change
Example:
π§ Development Setup
Prerequisites
- Node.js 18+
- npm or yarn
Environment Setup
-
Copy environment template:
-
Add your API keys (for testing AI features):
Running Tests
Code Formatting
We use Prettier for consistent formatting:
π PR Guidelines
Before Submitting
- Target the
next
branch - Test everything locally
- Run the full test suite
- Check code formatting
- Create a changeset (if needed)
- Re-read your changes - ensure theyβre clean and well-thought-out
PR Description Template
What We Look For
β Good PRs:
- Clear, focused changes
- Comprehensive testing
- Good commit messages
- Proper changeset (when needed)
- Self-reviewed code
β Avoid:
- Massive PRs that change everything
- Untested code
- Formatting issues
- Missing changesets for user-facing changes
- AI-generated code that wasnβt reviewed
ποΈ Project Structure
Key Areas for Contribution
- CLI Commands:
scripts/modules/commands.js
- MCP Tools:
mcp-server/src/tools/
- Core Logic:
scripts/modules/task-manager/
- AI Providers:
src/ai-providers/
- Tests:
tests/
π Reporting Issues
Bug Reports
Include:
- Task Master version
- Node.js version
- Operating system
- Steps to reproduce
- Expected vs actual behavior
- Error messages/logs
Feature Requests
Include:
- Clear description of the feature
- Use case/motivation
- Proposed implementation (if you have ideas)
- Willingness to contribute
π¬ Getting Help
- Discord: Join our community
- Issues: GitHub Issues
- Discussions: GitHub Discussions
π License
By contributing, you agree that your contributions will be licensed under the same license as the project (MIT with Commons Clause).
Thank you for contributing to Task Master! π
Your contributions help make AI-driven development more accessible and efficient for everyone.