Thank you for your interest in contributing! 🎉
- Reporting Bugs
- Suggesting Features
- Development Setup
- Testing Your Changes
- Pull Requests
- Code Style Guidelines
Use our Bug Report Template:
- Check existing Issues
- Search for similar reports
- If not found, create new issue with template
- Include:
- Clear reproduction steps
- Expected vs actual behavior
- Environment details (OS, Python, Editor)
- Error logs/screenshots
Use our Feature Request Template:
- Describe the problem/use case
- Propose your solution
- List alternatives considered
- Explain who would benefit
- OpenCode.ai CLI / Agent system
- Multi-platform support
- JSON-based access control guidelines
- Git
# Clone the repository
git clone https://github.com/andiupn/opencode-starter.git
cd opencode-starter# 1. Setup environment
cp .env.example .env
# Fill in your GITHUB_TOKEN
# 2. Load configurations
# Open the workspace in OpenCode-compatible editorBefore submitting your contributions, please verify:
-
Test the built-in commands inside the AI agent command line:
- Run
/analyzeto analyze project structure - Run
/fixto diagnose project vulnerabilities - Run
/explainwith a file argument
- Run
-
Check markdown files render correctly on GitHub
-
Verify all links work
-
Check for typos
-
Create Feature Branch
git checkout -b feature/your-feature-name # or git checkout -b fix/bug-description -
Make Changes
- Write clear, focused commits
- Follow code style guidelines
- Add/update tests if needed
- Update documentation
-
Commit with Conventional Format
git commit -m "feat: add new workflow for X" git commit -m "fix: resolve issue with Y" git commit -m "docs: update README with Z"
-
Push to Your Fork
git push origin feature/your-feature-name
-
Open Pull Request
- Use PR template (auto-generated)
- Reference related issues
- Describe changes clearly
- Add screenshots if UI changes
Use Conventional Commits:
| Type | Description | Example |
|---|---|---|
feat |
New feature | feat: add /export workflow |
fix |
Bug fix | fix: handle missing index.json |
docs |
Documentation | docs: update FAQ section |
refactor |
Code refactoring | refactor: simplify search logic |
test |
Add/update tests | test: add validation tests |
chore |
Maintenance | chore: update dependencies |
Follow PEP 8:
- 4 spaces for indentation
- Max line length: 88 characters (Black formatter)
- Use descriptive variable names
- Add docstrings to functions
Example:
def save_knowledge(category: str, content: str) -> bool:
"""
Save knowledge entry to specified category.
Args:
category: Category name (gotchas, patterns, decisions, context)
content: Knowledge content to save
Returns:
bool: True if successful, False otherwise
"""
# Implementation
passTools:
- Use
blackfor formatting (optional but recommended) - Use
pylintorflake8for linting
Follow ShellCheck recommendations:
- Quote variables:
"$variable" - Use
set -efor error handling - Add comments for complex logic
- Test on target platforms
Consistency:
- Use ATX headers (
#style, not underline style) - Add blank lines between sections
- Use code fences with language specification
- Keep lines under 120 characters when possible
Links:
- Use reference-style links for readability
- Verify all links before committing
- Use YAML frontmatter for metadata
- Clear step-by-step instructions
- Include examples
- Mark dangerous operations with
// turboannotations appropriately
We especially appreciate contributions in these areas:
- New Workflows - Useful automation workflows
- 📚 Documentation - Tutorials, examples, translations
- 🧪 Testing - Test coverage improvements
- 🐛 Bug Fixes - Any size, all welcome
- ✨ Feature Enhancements - Based on user feedback
(For maintainers)
- Update
CHANGELOG.mdwith new version - Tag release:
git tag v1.x.x - Push tags:
git push --tags - Create GitHub release with notes
If opencode-starter helps you, consider:
- ⭐ Star the repo - Helps others discover it
- 💬 Spread the word - Tweet, blog, or share
- ☕ Buy me a coffee:
- 📖 Check the FAQ
- 🔧 See Troubleshooting
- 💬 Ask in Issues
- 📧 Email: Contact Form
Thank you for contributing! 🙏
Made with ❤️ by Andi UPN and contributors