Thank you for your interest in contributing to the Claude Code Modular Framework! This document provides guidelines for contributing to this project.
We welcome several types of contributions:
- New Commands - Add new slash commands to the framework
- Command Improvements - Enhance existing commands with better functionality
- Documentation - Improve documentation, examples, and guides
- Bug Fixes - Fix issues with existing commands or configuration
- Templates - Create new templates for common use cases
- Examples - Add real-world usage examples
- Configuration - Improve configuration options and patterns
- Claude Code installed and configured
- Git for version control
- Node.js (for running validation scripts)
- Basic understanding of the framework structure
-
Fork the repository:
git clone https://github.com/your-username/claude-modular.git cd claude-modular -
Create a feature branch:
git checkout -b feature/your-feature-name
-
Make your changes following the guidelines below
-
Test your changes with the validation scripts
-
Submit a pull request
All commands must follow the XML-structured format:
<instructions>
<context>
Brief description of when and why to use this command
</context>
<requirements>
- Specific prerequisites and dependencies
- Required file structures or tools
- Environment setup needs
</requirements>
<execution>
Step-by-step implementation with verification points
</execution>
<validation>
Quality checks and acceptance criteria
</validation>
<examples>
Concrete usage examples with expected outputs
</examples>
</instructions>Commands are organized into these categories:
- project/ - Project management and scaffolding
- development/ - Development workflow and code quality
- testing/ - Test generation and validation
- deployment/ - Deployment and operations
- documentation/ - Documentation generation and maintenance
- File names: Use kebab-case (e.g.,
create-feature.md) - Command names: Use descriptive names (e.g.,
/project:create-feature) - Categories: Use singular nouns (e.g.,
project, notprojects)
Each command must include:
- Clear context - When and why to use the command
- Prerequisites - What needs to be set up first
- Step-by-step execution - Detailed implementation steps
- Validation criteria - How to verify success
- Realistic examples - Working examples with expected outputs
- Error handling - Common issues and solutions
- Clear and concise - Avoid unnecessary complexity
- Action-oriented - Use imperative voice
- Consistent terminology - Use the same terms throughout
- Inclusive language - Avoid assumptions about reader background
- Overview - Brief description of purpose
- Prerequisites - What readers need to know/have
- Step-by-step instructions - Clear, numbered steps
- Examples - Real-world usage scenarios
- Troubleshooting - Common issues and solutions
- Working examples - Test all code examples
- Multiple scenarios - Show different use cases
- Expected outputs - Show what users should see
- Error cases - Include error handling examples
Before submitting a command, test it with:
- Fresh environment - Test on clean setup
- Multiple scenarios - Test different use cases
- Error conditions - Test failure scenarios
- Different environments - Test dev, staging, production configs
- Command follows XML structure
- All examples work as documented
- Prerequisites are clearly stated
- Validation criteria are testable
- Error handling is comprehensive
- Documentation is clear and complete
When adding configuration options:
- Base configuration - Add to
settings.json - Environment overrides - Consider dev/staging/prod needs
- Validation - Ensure configuration is validated
- Documentation - Update configuration guide
- Migration - Consider existing installations
- No secrets - Never include actual secrets in examples
- Environment variables - Use env vars for sensitive data
- Permission checks - Validate user permissions
- Audit logging - Log security-relevant actions
- Consistent formatting - Follow project style
- Clear comments - Explain complex logic
- Error handling - Handle edge cases gracefully
- Performance - Consider token usage and efficiency
- Comprehensive - Cover all aspects of the feature
- Accurate - Ensure all information is correct
- Up-to-date - Keep documentation current
- Accessible - Make it easy to understand
- Descriptive title - Clearly describe the change
- Detailed description - Explain what and why
- Testing notes - Describe how you tested
- Breaking changes - Highlight any breaking changes
- Documentation updates - Include doc updates
## Description
Brief description of the changes
## Type of Change
- [ ] New command
- [ ] Command improvement
- [ ] Bug fix
- [ ] Documentation update
- [ ] Configuration change
## Testing
- [ ] Tested in development environment
- [ ] Tested multiple scenarios
- [ ] Validated examples work
- [ ] Checked error handling
## Checklist
- [ ] Code follows project style guidelines
- [ ] Self-review completed
- [ ] Documentation updated
- [ ] Examples tested and working
- [ ] Breaking changes documented- Automated checks - CI/CD validation
- Code review - Maintainer review
- Testing - Community testing
- Documentation review - Doc accuracy check
- Approval - Final approval and merge
## Bug Description
Clear description of the bug
## Steps to Reproduce
1. Step one
2. Step two
3. Step three
## Expected Behavior
What should happen
## Actual Behavior
What actually happens
## Environment
- Claude Code version:
- Operating system:
- Project type:
- Configuration:
## Additional Context
Any other relevant information- Validation - Confirm the bug exists
- Categorization - Assign severity and priority
- Assignment - Assign to appropriate maintainer
- Resolution - Fix and test the bug
- Verification - Confirm fix works
## Feature Description
Clear description of the proposed feature
## Problem Statement
What problem does this solve?
## Proposed Solution
How should this feature work?
## Alternatives Considered
What other approaches were considered?
## Implementation Ideas
Any thoughts on implementation?- Community discussion - Gather feedback
- Feasibility assessment - Technical evaluation
- Priority assignment - Rank against other features
- Implementation planning - Design and timeline
- Development - Implementation and testing
Contributors are recognized through:
- GitHub contributions - Visible in repository
- Release notes - Mentioned in changelog
- Documentation - Listed in contributors section
- Community highlights - Featured in discussions
Active contributors may be invited to become maintainers based on:
- Consistent contributions - Regular, quality contributions
- Community involvement - Helping other contributors
- Technical expertise - Deep understanding of the framework
- Leadership - Guiding project direction
- GitHub Issues - Bug reports and feature requests
- GitHub Discussions - General questions and ideas
- Documentation - Comprehensive guides and examples
- Community - Connect with other contributors
- Technical questions - Use GitHub discussions
- Security issues - Email security@example.com
- Project governance - Use GitHub issues
By contributing to this project, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to the Claude Code Modular Framework! Your contributions help make development more productive and enjoyable for everyone.
Together, we're building the future of AI-assisted development.