graph8 lifecycle
18 people · 13 boards · 0 hand-typed code
graph8 after Lifecycle · the harness-engineered operating model

18 people. 13 products. 600+ agent runs a day. 10–30× output. Zero hand-typed code. The bottleneck stops being engineering — it becomes the PRD backlog.

graph8 is 15 engineers + 3 QA shipping 13 product boards across 3 first-party reposg8 monorepo (all 13 product boards: Studio · Enrichment · Mashup · Signals · Copilot · Agents · Inbox · Stripe/Credits · Web Chat · Dialer · Sequencer · UX/UI · Voice AI), agent-os (company operations), infra (autonomous K8s engineering) — plus jitsu as an open-source dependency we'll fold into g8. Today's real throughput across the top 4 repos: ~565 merged PRs / 30 days. Top performer (Usjid): 37 PRs / 30d, hand-writing the code. After Lifecycle — with engineers banned from touching editors and the 10 principles in force — each becomes an assembly-line conductor running 10–20 parallel agents at any moment, plus 5+ overnight long-runs. Same 18 people. 10–30× throughput. Possibly higher once the PRD backlog catches up. Ryan Lapo's 3-person team at OpenAI Frontier shipped 1M lines of code / 1,500 PRs / 9 months with zero hand-typed code — we have 5× their headcount across 13 products. The math is conservative.

Team · unchanged
18
15 engineers + 3 QA
Products / boards
13
all running concurrently
Hand-typed code
0
principle #1 · banned
Agent runs / day
600+
15 eng × 20+ parallel + overnight + crons
Output lift
10–30×
vs ~565 merged PRs/30d today
Cycle time
10–20× faster
idea → prod in hours, not weeks
CI build SLO
< 60s
principle #3 · the inner loop is everything
GC Fridays
1/wk
principle #5 · slop becomes encoded knowledge
1 The whole team · real names · real numbers

Every person on the graph8 engineering floor, with their actual last-90-days PR count from graph8-com/g8 and the projected after-Lifecycle range (8–15× the current). Same 18 humans · new job descriptions · same paychecks · 10–30× the team output.

0
Stuck PRs · last 90 days · zero

Not a single PR in the g8 monorepo has sat untouched for > 7 days in the last 90. The team is healthy at today's throughput. Lifecycle's job is to keep this true as throughput goes 10–30× — automatic merges, agent-driven PR fixes, postmerge review, and the pr_reconciler hourly cron all exist to prevent regression. Healthy stays healthy.

Founders + platform · policy and escalations

Founder · admin

Thomas Cornelius

Product · PRDs · Studio + Copilot vision · daily digest
44 PRs/90d · 36.2 add/del ratio (infra overhauls) → ~350–660 dispatching
CTO · admin

Shaharyar Ahmad

Infra · database · MBM · agent architecture
12 PRs/90d · 7.86 ratio (deep resolver work) → ~95–180 dispatching

Product engineers · 15

Studio · top shipper

Usjid Nisar

Lifecycle velocity engine · deals + merge dialogs · 103K-LOC qa→main merge (#7029)
117 PRs/90d · 12.05 ratio → ~950–1,750 dispatching
Enrichment · Mashup

Muhammad Sadiq

Integrations + merge entity work · RBAC fail-open baseline (#6932)
99 PRs/90d · 7.89 ratio → ~800–1,500 dispatching
AI Inbox

Hassan Baig

10.7K-LOC inbox visual polish + dashboard in single PR (May 16) · LangGraph parent tracking
56 PRs/90d · 8.53 ratio → ~450–850 dispatching
Web Chat · sync

Muhammad Waleed

High-frequency small patches · qa→main forward-sync · a11y fixes
48 PRs/90d → ~380–720 dispatching
Agents

Huzaifa Aamir

Steady integration work · agent prompt iteration
27 PRs/90d → ~220–410 dispatching
Signals · Appointments

Oleksii Bokov

Appointments + flows · 5.8K-LOC feature additions
14 PRs/90d · 13.16 ratio → ~110–210 dispatching
Copilot

Hamza Najib

Copilot · MCP integrations
~9 PRs/30d (90d data pending) → ~220–400 dispatching
Voice AI

Eeshan Waqar

Voice features · sales coach · 6.5 add/del ratio (debugging-heavy)
90d count pending (work in voice repo) → significant dispatch leverage
Dialer · Mashup

Abdullah

Telephony backend · ghost numbers · Twilio rules
Steady contributor → 10–15× dispatching
Engage / Sequencer

Musa

Sequence scheduling · timezone logic
Steady contributor → 10–15× dispatching
Stripe / Credits

Ibrahim

Pricing · billing edge cases · credit service
Steady contributor → 10–15× dispatching
UX / UI

Joaquin Mesa

Design system · component library · UX polish
Designer-developer hybrid → design+code in parallel
Web Chat

Muhammad Ibne Mukhtar

Full-stack chat work · pairs with Waleed
Steady contributor → 10–15× dispatching

QA · 3 · orchestration leads (not manual testers)

QA Automation

Ayesha

Owns test-writer agent + coverage policy · already shipping (6 PRs/30d)
Today: writes tests · After: orchestrates the test-writer agent on every PR
QA

Rania

Owns contract_test_runner + cross-repo regression schemas
Today: manual integration tests · After: schema-keeper for the 5 cross-repo contracts
QA · manual

Immama

Owns bug_predictor false-positive tuning + smoke-test SLO
Today: manual QA · After: only on genuinely new UX flows (~10% of PRs)

Real moments · last 30 days · the team is already shipping

May 16 · Hassan

10.7K-LOC AI Inbox visual polish + dashboard — largest single contribution in last 2 weeks. Shipped in one PR. Lifecycle would split this into 4–6 parallel agent runs and merge each as its own gated PR.

May 15–16 · Thomas

4 sequential CI/workflow PRs in 24h — RBAC fail-open, MBM review automation, sync token guard, lowercase normalizer. Lifecycle would dispatch all four in parallel + a 5th to write the regression tests.

PR #7029 · Usjid

103K-LOC qa→main merge — the kind of cross-domain integration that takes weeks of human attention. Under Lifecycle, qa→main auto-promotes after 48h soak. Single human button-click becomes zero clicks.

2 weeks running · whole team

300 merged PRs / week sustained for two consecutive weeks. Cadence is stable, not accelerating. Lifecycle is what gets us from 300/week to 800–2,400/week without adding bodies.

2 Product boards · what changes for each

13 product boards. Every one gets its own agent fleet.

Each product is a separate board in MBM with its own owner, its own backlog, its own dispatch queue. Today the boards exist but the engineering throughput is the bottleneck. After Lifecycle, each board has 5–10 agents running against it per day — and the constraint shifts to how fast does each owner write PRDs, not how fast does engineering code.

Product board Owner PRs / 30d today After Lifecycle The new constraint
StudioUsjid37150–300PRD throughput · feature backlog
InboxHassan + Waleed + Ibrahim40 (combined)180–360UX decisions · webchat/SMS provider integrations
EnrichmentSadiq20100–200Data vendor onboarding · waterfall logic
Web ChatWaleed + Muhammad I.27 (combined)130–260Customer playbook · integrations
CopilotHamza + Huzaifa19 (combined)100–200Prompt iteration · eval harness
AgentsHuzaifa1080–150Agent prompt iteration · per-agent eval
SignalsOleksii + Sadiq660–120Mailbox provider onboarding · deliverability
Voice AIEeshanN/A (separate repo)80–150Customer-specific call flows · sales coach prompts
DialerAbdullah660–120Telephony providers · ghost-numbers · Twilio rules
Stripe / CreditsIbrahim + Hassan6 (in Inbox)40–80Pricing experiments · billing edge cases
Engage / SequencerMusa340–80Sequence templates · timezone logic
MashupAbdullah + Sadiqpart of Dialer + Enrichment40–80Cross-feature data flow
UX / UIJoaquin230–60Design system iterations · component library
All 13 boards · total15 eng~ 2001,100–2,150PRD backlog depth

Note: "today" numbers are last 30 days from the g8 monorepo (highest-volume repo · houses all 13 product boards). Real org-wide today across our 3 first-party repos (g8 + agent-os + infra): ~565 PRs/30d. After-Lifecycle projection: ~5,600–17,000 PRs/30d at 10–30× across the same 3 repos. At that throughput, the per-product PRD backlog becomes the rate-limiting input — not engineering.

2 A day in the life · engineer

Morning queue. Mid-day review. Overnight runs reviewed at sunrise.

An engineer's day at graph8 (after Lifecycle) revolves around the agent fleet. Mornings dispatch. Afternoons review. Evenings dispatch the heavy stuff. Nights run autonomously. Mornings open with a digest of what happened while you slept.

Morning
08:00
arrive · dispatch

Read the digest · dispatch the morning queue (3+ agents in parallel)

Open the Lifecycle dashboard. Read the overnight digest from triage + task_planner + agent_health. Scan your inbox for PRs from overnight agent runs. Decide what to dispatch next.

  • Triage cron has already sorted overnight: blocked PRs · merge-ready PRs · stale issues · new bugs
  • Dispatch 3+ agent runs: typical mix is one feature task, one bug fix, one improvement / refactor
  • Each agent gets a focused brief + the relevant context · they work in parallel for the next 1–4 hours
  • Pre-flight: read your own utilization grade — if "spinning" yesterday, pick smaller tasks today
Morning
09:30
human-only · architecture

Deep work · the things only you can do

While the morning agents run, you do the work that needs your judgement: architecture decisions, complex bug investigations, customer conversations, PRD drafting, design reviews on subtle UX.

  • No "writing code by hand" — that's what the agents are for
  • Sketching, system-design, picking between approaches, building intuition for the codebase
  • Ad-hoc questions in the team chat — answered by you, not by agents
Mid-day
12:00
review · merge · dispatch second batch

Morning agents land · review, merge, dispatch the afternoon batch

The morning's 3+ agent runs have opened PRs. MBM has reviewed them. Walk the queue: merge the clean ones, kick the iffy ones back with a comment, sanity-check the risky ones yourself.

  • Most merges are 1-click — MBM bot review + bandit + ruff have already gated them
  • Dispatch the afternoon batch: typically broader-scope work (e.g., a feature task, a refactor agent on a known-messy module)
  • Check the agent-economics dashboard for cost outliers — anyone spending unusual tokens, intervene
Afternoon
15:00
review · monitor · improvement work

Review afternoon batch · spawn an improvement run

Same pattern. Afternoon's PRs land; you review and merge. By 15:00 you've shipped 4–6 PRs across the day without writing a line of code yourself. Spend the remaining hour on improvement work: read this morning's improver digest, pick one suggestion, dispatch it.

Evening
18:00
dispatch overnight · log off

Dispatch the overnight run · long-form work

Before you log off, kick off the long-running agents. These are the tasks that take hours: bulk refactors, comprehensive test-writing on a module, cross-repo contract validation, knowledge-compactor analysis. They run while you sleep.

  • Each engineer: dispatch 1–3 overnight runs
  • Across 15 engineers: 15–45 overnight agent runs every night
  • Plus org-level overnight crons: improver, pipeline-analyzer, agent_health, mbm_critic
Night
19:00 → 07:00
autonomous · 12 hours of work

Agents work. The team doesn't.

This is the asymmetric leverage. Twelve hours of autonomous agent work per night, every night. By morning, your overnight dispatches have opened PRs · the improver agent has logged suggestions · the bug_predictor has flagged risks on the current sprint · agent_health has scored the fleet · mbm_critic has classified yesterday's reviews.

  • Open PRs from overnight runs sit waiting for morning review
  • Cron-driven agents (monitor, pipeline-analyzer) write to Roam · digests prepared
  • If an overnight agent hits an escalation (attempt-4 on pr_fixer, survival_rate <0.5 alert from agent_health), it tags whoever owns that surface — answered first thing in the morning
Next AM
08:00
loop closes · start again

Open the digest. Today's queue is already half-loaded by last night.

The team arrives. Triage + task_planner + agent_health digests are waiting. Overnight PRs are in your inbox. Yesterday's improvements got picked up by the overnight runs. You start the morning with momentum, not from zero.

3 Velocity · the real numbers

5× conservative. 10× realistic. 15× when the backlog feeds the assembly line.

The math, grounded in real graph8 data from the last 30 days. Top performer Usjid ships 37 PRs/30d hand-writing code (~1.2/day). With assembly-line dispatch, the same engineer can have 10–15 parallel agents in flight at any moment. The merge rate drops (autonomous work isn't 100% mergeable), but the volume more than compensates. The same 15 engineers, doing 5–10× the work — possibly 15× once the PRD backlog is deep enough to keep all 15 conveyors loaded.

Metric Today · real data (last 30d) After Lifecycle · assembly line Lift
Top engineer · PRs / day Usjid: ~ 1.2 (37/30d, g8 only) 10–15 dispatched + reviewed 8–12×
Median engineer · PRs / day ~ 0.3–0.5 5–10 dispatched + reviewed 10–25×
PRs / team / day (15 eng) · g8 only ~ 7 (200 PRs/30d) 75–150 10–20×
PRs / team / day · org-wide (g8 + agent-os + infra) ~ 19 (565 PRs/30d top 4 repos) 150–300 8–15×
Overnight PRs / night ~ 0 (humans sleep) 45–90 (3–6 per engineer overnight)
Total org PRs / month ~ 565 3,400–6,500 6–12×
Cycle time · idea → prod 1–4 weeks (median ~2 wk) 4 hrs – 2 days (median ~1 day) 7–15×
Cycle time · bug → fix in prod 4–48 hours (Sentry-then-human) 10 min – 2 hr (agent autofix) 12–50×
Bug detection Reactive (Sentry hits prod) Predictive (bug_predictor at PR time) qualitative
QA throughput · stories / day ~ 15 (3 QA × manual) 100–200 (agent-orchestrated) 7–13×
"Did the agent run?" answer time Slack question, 5–30 min SQL query, < 1 sec 100×+
Status meetings / week / person ~ 5 hrs ~ 1 hr (dashboard replaces standups)
The new bottleneck · feature backlog depth

Once engineering capacity stops being the constraint, the rate limit becomes how fast we feed the assembly line. At 5–10× throughput, the bottleneck moves to four upstream questions: (1) Are there enough approved PRDs per product board to keep the dispatch queues loaded? (2) Is architecture coherent enough to absorb 200+ PRs/day without drift? (knowledge_compactor + contract_test_runner handle this.) (3) Can MBM + the 3 QA review at this rate? (Bot review + agent orchestration scale.) (4) Is the customer feedback loop fast enough to know what to build next? Solve those four and the ceiling becomes 15×+. Lifecycle ships the engineering plumbing; the PRD-throughput half of the equation is the next horizon.

4 QA transformation

3 QA become orchestration leads. Manual testing becomes the exception, not the default.

The QA function gets the largest relative leverage from Lifecycle. Today's manual-test loop becomes an agent-orchestration loop. Same 3 people, ~5× the surface area covered.

QA today (status quo)

  • Manual test plans written per PR
  • Playwright runs optional per PR template
  • No enforced smoke run on QA deploy
  • Bug reports filed manually after testing
  • ~ 5 stories per QA per day, covered manually
  • No coverage of cross-repo regression until prod
  • Bottleneck: 3 people × manual hours / day
QA is the hard ceiling on throughput. Even if engineers ship faster, they wait for QA validation.

QA after Lifecycle

  • QA #1: owns test-writer agent · sets coverage policy · reviews generated tests
  • QA #2: owns contract_test_runner · maintains cross-repo schemas · resolves contract breaks
  • QA #3: owns bug_predictor · tunes false-positive rate · runs the smoke-suite SLO
  • Playwright smoke now required + enforced on every QA deploy
  • Auto-generated bug reports from bug_predictor · sentry-detector loop
  • ~ 50–80 stories per day covered by agents · QA reviews
  • Manual QA only on genuinely new UX flows
QA stops being a throughput bottleneck. The 3 people scale to multi-product coverage by leveraging agents instead of replacing their own hours.
5 Operating rhythm changes

The work isn't the only thing that changes. The meetings, the rituals, the 1:1s all shift.

When agents do most of the writing and reviews are batched, the human-coordination rhythm has to adapt. Fewer status meetings. More dashboard-reading. New rituals around fleet health.

Standups

Before: 15-min standup, 18 people sharing status
10 min reading the dashboard together. No "what I'm working on" — that's in the ledger. Discussion is "what's stuck" + "what to dispatch next."

Sprint planning

Before: 2-hr session estimating tickets
30 min picking the week's loops to close and the agents to spawn. Ticket-estimation goes away — agents complete in hours, not days.

1:1s

Before: "How's your work going?"
"Review your utilization grade · skill-mix · which agents you're dispatching · what's blocking." More like coaching, less like status-checking.

Retros

Before: "What went well, what didn't"
Read the mbm_critic weekly digest + agent_health survival-rate trends. Discussion is "which agent prompts need tuning · which loops to close next."

Bug triage

Before: Weekly meeting, 30 min reviewing the backlog
Backlog is auto-triaged daily by triage cron. Weekly meeting becomes 10 min on escalations only.

Architecture reviews

Before: Ad-hoc when someone proposes a change
Quarterly. knowledge_compactor surfaces the patterns; review the diffs to CLAUDE.md and engineer-domains.json before approving.

★ Garbage Collection Friday principle #5

Before: The same agent mistakes happen week after week; engineers just push past the slop
Every Friday afternoon: each engineer picks one recurring slop pattern from the week and turns it into a lint, a CLAUDE.md addition, a review-agent rubric update, or a new test. Eliminates a class of misbehavior, not an instance. Commit prefix gc-friday:. knowledge_compactor + mbm_critic hand you the Monday-morning candidate list.

★ Editor ban principle #1

Before: Engineers open IDEs by default, type code by default, dispatch agents only for "bigger" tasks
Engineers do not open code editors. Period. Every change goes through an agent. Forces every workflow friction to flow into the harness as a fix — instead of being routed around. Painful in week 1, transformative by month 3. Ryan's team has lived this for 9 months.
6 Per-engineer agent fleet

The minimum: 3 parallel agents per engineer. Typical: 5–8 across the day.

Each engineer becomes a conductor for a small fleet. Morning batch + afternoon batch + 1–3 overnight runs. Across 15 engineers, that's 75–120 agent runs per day. Plus the org-level cron-driven agents (monitor, triage, agent_health, etc.).

Window Parallel agents / engineer Total runs / team (15 eng) What they do
Morning batch (08–12) 5–10 in flight 75–150 Product-board PRD tasks · bug fixes · small refactors · most-touched code
Afternoon batch (13–17) 5–10 in flight 75–150 Broader-scope work · improvement-loop dispatches · test-writer follow-ups
Overnight long-runs (18–07) 3–6 per engineer 45–90 Big refactors · comprehensive test suites · cross-repo contract validation · knowledge_compactor analysis
Org-level crons ~ 15 / day monitor · triage · task_planner · improver · agent_health · mbm_critic · pipeline-analyzer · pr_reconciler · pr_hygiene · knowledge_compactor · skill_mortality
Total agent runs / day 210–405 vs ~ 20 K8s-job runs/day today. 10–20× agent dispatch volume.

Real assembly-line math. A single engineer can supervise 10–15 parallel agents at any moment — the agents work asynchronously, the engineer reviews and re-dispatches. With 15 engineers each running this pattern, plus overnight dispatches that work for 12 hours autonomously, the org runs 300+ agent runs/day. At 50–60% merge survival, that's 150–240 merged PRs/day vs today's ~19. The math holds as long as the PRD backlog is deep enough to keep the conveyors loaded — see the bottleneck box above.

7 What graph8 ships per quarter — before vs after

The bottom-line projection. Same 18-person team, same products. What changes is the throughput.

Output Today (per quarter, real) After Lifecycle (per quarter) Lift
Total merged PRs · org-wide~ 1,700 (565/mo × 3)10,000–20,0006–12×
Features shipped~ 20–30150–3007–10×
Bug fixes shipped~ 2001,500–2,5007–12×
5xx errors resolved < 2 hr~ 10%~ 85%
PRD → first release time3–6 weeks1–5 days8–15×
Architecture docs maintainedstale within 60dauto-updated nightly (knowledge_compactor)qualitative
Test coverage growth~ 0.5% / quarter~ 5–10% / quarter (test-writer on every PR)10–20×
Cross-repo regressions caught at PR time~ 0%~ 85% (contract_test_runner)qualitative
New products / quarter shipped to GA~ 1–25–10
The bigger bet · what graph8 actually becomes

At 5×, graph8 ships like a 75-person team while staying at 18. At 10×, like a 150-person team. At the ambitious 15× (achievable with full backlog depth + overnight cadence), like a 270-person team. A competitor hiring against this can't catch up by adding bodies — only by adopting the same operating model, which takes them 12–18 months to even decide to do, let alone execute. graph8's window to make this transition before the rest of the market is right now. The 7-day setup closes the window.

And the cost of being wrong is bounded. Even at the conservative 5× read, the math justifies the 7-day investment many times over: same 18 people, same payroll, the only new line item is the trace-ledger Postgres table + a Cloudflare Worker. There is no scenario where this doesn't pay back inside a quarter.

On this page