Thanks for your interest in contributing! We welcome bug fixes, features, docs improvements, and other contributions.
- Fork the repository and clone your fork
- Install dependencies:
npm install - Create a branch from
main(see naming conventions below) - Make your changes
- Push to your fork and open a pull request
Use type/short-description format:
fix/— bug fixesfeat/— new featuresdocs/— documentation changeschore/— maintenance tasksrefactor/— code restructuringtest/— adding or updating tests
Examples: fix/cron-scheduler-crash, feat/discord-channel, docs/deployment-guide
Use Conventional Commits format:
type: short description
Examples:
fix: prevent duplicate cron jobs on restartfeat: add Discord channel adapterdocs: update deployment instructions
- Use a descriptive title that summarizes the change
- Link to the related issue if one exists (e.g., "Fixes #42")
- Describe what changed and why in the PR body
- Keep PRs focused — one logical change per PR
- Follow existing patterns in the codebase
- Don't add unnecessary abstractions or over-engineer
- Keep changes minimal and focused on what's needed
Core logic belongs in the package (api/, lib/, config/, bin/). The templates/ directory is only for files scaffolded into user projects. See CLAUDE.md for the full architecture guide.
Open a GitHub Issue with:
- A clear description of the problem or suggestion
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- Relevant environment details (Node version, OS, etc.)