The git-mp workflow

A way of working so that we build better software.

1
Backlog

Catch-all

Every idea, bug or request lands here as a change. Nothing is lost; nothing is committed to yet.

Agents: open changes automatically from helpdesk tickets, Sentry alerts and webhooks.

  • 5xx on /login spiked to 38% — page on-call.
  • Send login OTPs over both SMS and WhatsApp.
2
Discussion

Spec & vote

People debate and refine on a discussion branch. Gerrit-style votes gate it: it cannot move on until it clears the bar.

Agents: surface corner cases, draft the spec, and vote like any reviewer.

  • Scope: v1 is phone-based login only.
  • What happens if the OTP SMS never arrives?
  • Colorblind users need more than color on the buttons.
  • votes reach +2 → state: building
3
Building

Code, test, ship

Coding, tests, migrations and deploys happen on a build branch, squash-merged to trunk when the state advances.

Agents: implement, run CI/CD, apply migrations and push drafts for review.

  • + retry with 30s backoff, fall back SMS→WhatsApp
  • build passed on push a1b2c3
  • + test: expired OTP is rejected after 5 min
  • 🚀 shipped to production (v5.3.0)
4
QA

Black-box check

Final black-box verification on a production-like environment before the change is trusted.

Agents: run end-to-end suites and write pass/fail status back to the CI ref.

  • Wrong OTP 3× locks the account, as spec’d.
  • No regressions across 40 existing flows.
  • Screen reader announces the OTP field.
  • Verified on iOS 16 + Android 12 keyboards.
5
Closed

Done

The change is shipped and recorded. Trunk holds only the major state changes; the detail lives in its branches and history.

Agents: archive, link follow-ups and keep docs and SOPs in sync.

  • ✅ QA signs off → owner closes
  • docs: Log in with a one-time code