Contributing¶
Thank you for your interest in contributing to CMS Cultivator! This document provides guidelines for contributing to the project.
Getting Started¶
Prerequisites¶
- Git
- Python 3.x (for Zensical documentation)
- Claude Code CLI (for testing commands)
- Basic knowledge of Markdown
Setting Up Development Environment¶
-
Fork the repository on GitHub
-
Clone your fork:
-
Install Zensical (for documentation):
-
Test the plugin locally:
Making Changes¶
Adding a New Command¶
1. Create command file in /commands/¶
2. Add frontmatter at the top¶
---
description: Brief description of what the command does
argument-hint: [optional-arg]
allowed-tools: Bash(git:*), Read, Glob, Grep, Write
---
3. Write command documentation¶
- Clear usage instructions
- Example outputs
- Drupal/WordPress-specific considerations
- Integration with Kanopi tools (if applicable)
4. Test the command¶
5. Add to documentation¶
- Update
docs/commands/overview.md - Add detailed guide if needed
Updating Existing Commands¶
1. Modify command file in /commands/¶
2. Test thoroughly¶
- Try different arguments
- Test with both Drupal and WordPress projects
- Verify Kanopi tool integration
3. Update documentation if behavior changed¶
Improving Documentation¶
1. Edit files in /docs/¶
2. Preview locally¶
3. Build to verify¶
Coding Standards¶
Command Files (.md)¶
- Use clear, descriptive headings
- Include code examples with proper syntax highlighting
- Provide both Drupal and WordPress examples where applicable
- Document all arguments and focus options
- Include expected output examples
Documentation¶
- Write in clear, concise language
- Use proper Markdown formatting
- Include code examples with syntax highlighting
- Add admonitions for warnings/tips:
Frontmatter¶
description: Brief one-line descriptionargument-hint: Show optional arguments in square bracketsallowed-tools: List all tools the command can use
Pull Request Process¶
1. Create a branch from main¶
2. Make your changes¶
- Follow coding standards
- Add/update documentation
- Test thoroughly
3. Commit your changes¶
Use Conventional Commits:
feat:- New featurefix:- Bug fixdocs:- Documentation changesrefactor:- Code refactoringtest:- Adding testschore:- Maintenance
4. Push to your fork¶
5. Create Pull Request on GitHub¶
- Provide clear description
- Reference any issues
- Add screenshots if relevant
6. Address review feedback¶
- Make requested changes
- Push updates to same branch
Testing Guidelines¶
Manual Testing¶
1. Install plugin locally¶
2. Test command variations¶
- Without arguments
- With different focus options
- In Drupal project
- In WordPress project
3. Verify Kanopi integration¶
- Test with
ddev composercommands - Verify
ddevcustom commands work
Documentation Testing¶
Code of Conduct¶
Our Pledge¶
We are committed to providing a welcoming and inclusive environment for all contributors.
Expected Behavior¶
- Be respectful and considerate
- Provide constructive feedback
- Focus on what is best for the community
- Show empathy towards others
Unacceptable Behavior¶
- Harassment or discriminatory language
- Personal attacks
- Publishing others' private information
- Other unethical or unprofessional conduct
Getting Help¶
- GitHub Issues: Report bugs or request features
- GitHub Discussions: Ask questions or share ideas
- Documentation: Read the full docs
Recognition¶
Contributors will be recognized in:
- CHANGELOG.md for significant contributions
- GitHub contributors page
- Project documentation (where applicable)
License¶
By contributing to CMS Cultivator, you agree that your contributions will be licensed under the GPL-2.0-or-later license.
Thank you for contributing to CMS Cultivator! 🎉