Skip to main content
Glama

Task Master

by eyaltoledano
CONTRIBUTING.md7.76 kB
# 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 ```bash git clone https://github.com/YOUR_USERNAME/claude-task-master.git cd claude-task-master npm install ``` ### 2. Create a Feature Branch **Important**: Always target the `next` branch, not `main`: ```bash git checkout next git pull origin next git checkout -b feature/your-feature-name ``` ### 3. Make Your Changes Follow our development guidelines below. ### 4. Test Everything Yourself **Before submitting your PR**, ensure: ```bash # Run all tests npm test # Check formatting npm run format-check # Fix formatting if needed npm run format ``` ### 5. Create a Changeset **Required for most changes**: ```bash npm run changeset ``` See the [Changeset Guidelines](#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 code - **`next`**: Development branch - **target this for PRs** - **Feature branches**: `feature/description` or `fix/description` ### Code Quality Standards 1. **Write tests** for new functionality 2. **Follow existing patterns** in the codebase 3. **Add JSDoc comments** for functions 4. **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](https://github.com/changesets/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 1. **After making your changes**: ```bash npm run changeset ``` 2. **Choose the bump type**: - **Major**: Breaking changes - **Minor**: New features - **Patch**: Bug fixes, docs, performance improvements 3. **Write a clear summary**: ``` Add support for custom AI models in MCP configuration ``` 4. **Commit the changeset file** with your changes: ```bash git add .changeset/*.md git commit -m "feat: add custom AI model support" ``` ### Changeset vs Git Commit Messages - **Changeset summary**: User-facing, goes in CHANGELOG.md - **Git commit**: Developer-facing, explains the technical change Example: ```bash # Changeset summary (user-facing) "Add support for custom Ollama models" # Git commit message (developer-facing) "feat(models): implement custom Ollama model validation - Add model validation for custom Ollama endpoints - Update configuration schema to support custom models - Add tests for new validation logic" ``` ## 🔧 Development Setup ### Prerequisites - Node.js 18+ - npm or yarn ### Environment Setup 1. **Copy environment template**: ```bash cp .env.example .env ``` 2. **Add your API keys** (for testing AI features): ```bash ANTHROPIC_API_KEY=your_key_here OPENAI_API_KEY=your_key_here # Add others as needed ``` ### Running Tests ```bash # Run all tests npm test # Run tests in watch mode npm run test:watch # Run with coverage npm run test:coverage # Run E2E tests npm run test:e2e ``` ### Code Formatting We use Prettier for consistent formatting: ```bash # Check formatting npm run format-check # Fix formatting npm run format ``` ## 📝 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 ```markdown ## Description Brief description of what this PR does. ## Type of Change - [ ] Bug fix - [ ] New feature - [ ] Breaking change - [ ] Documentation update ## Testing - [ ] I have tested this locally - [ ] All existing tests pass - [ ] I have added tests for new functionality ## Changeset - [ ] I have created a changeset (or this change doesn't need one) ## Additional Notes Any additional context or notes for reviewers. ``` ### 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 ``` claude-task-master/ ├── bin/ # CLI executables ├── mcp-server/ # MCP server implementation ├── scripts/ # Core task management logic ├── src/ # Shared utilities and providers and well refactored code (we are slowly moving everything here) ├── tests/ # Test files ├── docs/ # Documentation └── .cursor/ # Cursor IDE rules and configuration └── assets/ # Assets like rules and configuration for all IDEs ``` ### 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](https://discord.gg/taskmasterai) - **Issues**: [GitHub Issues](https://github.com/eyaltoledano/claude-task-master/issues) - **Discussions**: [GitHub Discussions](https://github.com/eyaltoledano/claude-task-master/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.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/eyaltoledano/claude-task-master'

If you have feedback or need assistance with the MCP directory API, please join our Discord server