Skip to main content

How We Work

The mechanics of shipping on a production healthcare platform with a mix of human and autonomous agents.

The task board (single queue)

Every substantive task — feature, update, bug — is a GitHub issue on the Ready Practice Board (org Basis-Health, Project #7), created via .github/scripts/board.sh. Not scattered roadmap/*.md files. All writes route through the Atlas Intake Router, which dedups against open issues so the same bug reported by Sentry, a QA sweep, a staff member, and an agent collapses into one card.

  • Bugs carry a priority label P0P3 (P0 = production down / money / PHI / data loss).
  • Dependencies are declared (Blocked by: #N + blocked label) and released on close.
  • Completing work carries a Fixes #N / Closes #N trailer so the merge auto-closes it.

Worktrees (parallel isolation)

Several agents run in parallel in separate git worktrees (/Users/G/wt-<name> on branch wt/<name>). /Users/G/basis on master is the shared integration point and source of truth. An agent owns its folder + branch and never touches another's.

danger
Never firebase deploy from a worktree

A functions deploy uploads the entire functions source dir — deploying from a lagging branch silently reverts other agents' merged work in production. A predeploy guard blocks non-master deploys. Ship only through the pipeline below.

Shipping

After George explicitly approves a deploy, any agent runs .github/scripts/ship.sh --approved-by-george <branch> <fn1,fn2,...>. It merges the branch into master, pushes, deploys the named functions, scans output for silent function deletions, auto-closes Fixes #N issues, and syncs the worktree back. One ship at a time (lock). Never raw firebase deploy.

The autonomy loop

The north-star operational metric is autonomy rate — the share of tasks that reach agent:build without a human. needs-human is never terminal; it is a logged capability gap with a structured reason (under-specified, no-automated-verification, design-subjective, critical-path, cross-repo, …). Those reasons roll into a capability-gap ledger, and recurring ones get a capability built that removes the whole class. The standing question on every issue: what would make this autonomously buildable and shippable?

Canonical references

  • CLAUDE.md — the full production runbook + critical rules
  • Agent fleet — the autonomous agents and how they connect
  • Operations — day-to-day operational runbook
  • Deployment — deploy procedures and gates