Skip to content

Branch Management

Prerequisites: Git

Jaypie uses a simple branch workflow with main as the primary branch and feature branches for development.

feat/TICKET-ID
feat/DEV-123
feat/GITHUB-456
feat/short-description-abc12345
# Pattern: feat/{2-3 word description}-{first 8 chars of commit hash}
  • Lead with most important word
  • 2-3 words maximum
  • Use hyphens, not underscores
  • Lowercase
Good Bad
feat/streaming-handler feat/add_new_streaming_handler_for_sse
fix/lambda-timeout fix/FixTheLambdaTimeoutBug
feat/DEV-123 feature/DEV-123-implement-user-auth
Terminal window
git checkout main
git pull
git checkout -b feat/description-abc12345
Terminal window
# After each validated change
git add .
git commit -m "type: scope: description"
Terminal window
git push -u origin feat/description-abc12345

Create pull request via GitHub CLI or web interface.

Same format as commit:

feat: express: add streaming handler
## Summary
- Added expressStreamHandler for SSE responses
- Added createExpressStream helper
## Test plan
- [ ] Run `npm test -w packages/express`
- [ ] Test streaming locally with `npm run dev`
Terminal window
gh pr create --title "feat: express: add streaming handler" --body "..."

main branch is protected:

  • Requires PR review
  • Requires passing CI
  • No direct pushes
Branch Pattern Workflow
feat/* npm-check.yml
fix/* npm-check.yml
main npm-deploy.yml
deploy-* npm-deploy.yml
Terminal window
git fetch origin
git rebase origin/main
Terminal window
git fetch origin
git merge origin/main
Terminal window
git checkout main
git pull
git branch -d feat/old-branch

GitHub auto-deletes after merge, or manually:

Terminal window
git push origin --delete feat/old-branch

Each commit should be:

  • Single logical change
  • Independently buildable
  • Self-contained (tests pass)

Commit after each successful validation step. Creates restore points.

  • Broken code
  • Failing tests
  • Unfinished changes