Helldivers Bot uses a simplified Git Flow model:
main ──────●────────●────────●──── (tagged releases, production)
\ ↑ ↑
\ merge hotfix/*
\ /
develop ──────●──●──●──●──●──── (staging auto-deploy)
\ ↑ \
feature/* bugfix/*
| Branch | Created from | Merges to | Lifetime |
|---|---|---|---|
main |
— | — | Permanent (production) |
develop |
— | — | Permanent (staging) |
feature/<desc> |
develop |
develop |
Days (max 1-2 weeks) |
bugfix/<desc> |
develop |
develop |
Days |
hotfix/<semver> |
main |
main + develop |
Hours |
feature/<short-desc>— e.g.,feature/war-event-trackingbugfix/<short-desc>— e.g.,bugfix/dispatch-parserhotfix/<semver>— e.g.,hotfix/0.16.1chore/<short-desc>— e.g.,chore/upgrade-discord-js
Every change — feature, bugfix or chore — lands on develop by a PR from its own worktree
under .worktrees/. The main checkout stays on develop and only ever pulls. Commands and the
full rule: AGENTS.md § Worktrees.
- Create a worktree + branch from
origin/develop - Make changes, commit with conventional commits (
feat:,fix:,chore:), bump the version as the last commit - Push and open a pull request to
develop - Rebase-merge when CI passes (
gh pr merge --rebase --delete-branch) - Changes deploy to staging
PR develop → main (merge commit), tag vX.Y.Z on the merge commit, push the tag, then merge
main back into develop by PR. The tag triggers the production Docker build. Full steps:
AGENTS.md § Git Workflow, rule 3.
- Worktree on
hotfix/<semver>fromorigin/main - Fix, commit with tests
- PR to
main, merge - Tag and push (triggers production build)
- Merge
mainback intodevelopby PR
Semantic versioning with v prefix (vMAJOR.MINOR.PATCH):
- Major: Breaking API changes, Discord.js major upgrade
- Minor: New commands, features, event handlers
- Patch: Bug fixes, dependency updates
Important: Always use v prefix on tags (e.g., v0.16.1, not 0.16.1).
Use conventional commits:
feat: add war event tracking
fix: correct dispatch message parsing
chore: upgrade discord.js to v15
refactor: extract event handler base class
| Event | Action |
|---|---|
Push to main or develop |
Build + deploy staging Docker image |
Tag v*.*.* |
Build production Docker images (app + migrate) |