Main branch is the source of truth. All features and fixes go through feature branches and PRs.
feature/phase-X-description # New features/phases
fix/description # Bug fixes
chore/description # Maintenance tasks
-
Create feature branch from main
git checkout main git pull origin main git checkout -b feature/phase-X-description
-
Make commits with natural language messages
git commit -m "Add user authentication endpoint" git commit -m "Fix token refresh logic for expired sessions" git commit -m "Update tests for new auth flow"
-
Push and create PR
git push -u origin feature/phase-X-description gh pr create --title "Phase X: Description" --body "..."
-
Wait for required reviews
- @jeremylongshore (Code Owner) - REQUIRED
- Gemini Code Assist (automated) - REQUIRED
-
Merge after approval
- PRs cannot be merged until both reviews pass
- Stale reviews are dismissed on new pushes
Use clear, natural language:
Add user registration with email verificationFix rate limiting on forecast endpointUpdate pipeline to support batch ingestionRemove deprecated auth middleware
Bad examples:
wipfixupdate stuff
npm test # All tests pass
npm run typecheck # No TypeScript errors
./scripts/ci/arv-check.sh # ARV gate passesThe main branch has these protections:
- Require 1 approving review
- Require CODEOWNERS review
- Dismiss stale reviews on new pushes
- Require conversation resolution
- No force pushes
- No deletions
All work should have a beads task:
bd create "Phase X: Description" -t epic -p 1
bd update intentvision-xxx --status in_progress # Start work
bd close intentvision-xxx --reason "PR merged" # Complete workInclude task ID in PR description.