Thank you for your interest in contributing to the Try Integration Plugin for Claude Code! This document provides guidelines and instructions for contributing.
This project follows the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
Before creating bug reports, please check existing issues to avoid duplicates. When creating a bug report, include:
- Clear title and description
- Steps to reproduce the issue
- Expected behavior vs. actual behavior
- Environment details:
- OS and version
- Claude Code version
tryversion (try -v)- Shell type and version
- Relevant logs (if applicable)
- Screenshots (if helpful)
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, include:
- Clear title and description
- Use case - why is this enhancement useful?
- Proposed solution - how would it work?
- Alternatives considered
- Examples from other tools (if applicable)
- Fork the repository and create your branch from
main - Make your changes:
- Follow the existing code style
- Update documentation as needed
- Add or update tests if applicable
- Test thoroughly:
- Install the plugin locally
- Test core functionality
- Test edge cases
- Verify documentation accuracy
- Commit your changes:
- Use clear, descriptive commit messages
- Reference related issues
- Push to your fork and submit a pull request
- Wait for review and address feedback
# Clone your fork
git clone https://github.com/YOUR_USERNAME/try-claude-plugin.git
cd try-claude-plugin
# Install prerequisites
# 1. Ensure 'try' is installed
try -v
# 2. Run installation script to test locally
./install.sh
# 3. Start Claude Code and test changesBefore submitting a PR, verify:
-
trytool is properly installed - Installation script runs without errors
- SessionStart hook creates sandbox directory
- Claude wraps state-modifying commands with
try - Claude does NOT wrap read-only commands
-
/try-statusskill works correctly -
/try-commitskill works correctly - SessionEnd hook prompts for commit/discard
- Changes commit correctly to live filesystem
- Changes discard correctly (sandbox deleted)
- Documentation is accurate and up-to-date
- Shell scripts: Follow Google Shell Style Guide
- Markdown: Use GitHub Flavored Markdown
- JSON: 2-space indentation, no trailing commas
- Comments: Explain "why", not "what"
try-claude-plugin/
├── .claude-plugin/ # Plugin metadata
├── hooks/ # SessionStart, SessionEnd hooks
├── skills/ # User-invocable skills
├── docs/ # Additional documentation
├── README.md # Main documentation
├── CHANGELOG.md # Version history
├── CONTRIBUTING.md # This file
└── install.sh # Installation script
- Create hook script in
hooks/directory - Make executable with
chmod +x - Update
settings.template.jsonwith hook configuration - Update
install.shto copy the new hook - Document in README.md
- Create skill directory in
skills/ - Add
SKILL.mdwith metadata and description - Add executable script (e.g.,
skill-name.sh) - Update
install.shto copy the skill - Document in README.md
- Edit the
systemPromptAppendinsettings.template.json - Test thoroughly - ensure Claude follows instructions
- Document any behavioral changes in README.md
- Update CHANGELOG.md
- Update version in
.claude-plugin/marketplace.json - Update CHANGELOG.md with release notes
- Create git tag:
git tag v1.x.x - Push tag:
git push origin v1.x.x - Create GitHub release with changelog
- General questions: Open a Discussion
- Bug reports: Open an Issue
- Feature requests: Open an Issue
Contributors will be recognized in:
- GitHub contributors list
- CHANGELOG.md (for significant contributions)
- README.md acknowledgments (for major features)
Thank you for contributing! 🎉