graph8 lifecycle
at a glance
graph8's assembly line · at a glance

18 humans. 600+ agents/day. Two parallel flows feed prod. This is graph8's assembly line.

One PRD flow turns ideas into agent-ready work. One development flow turns agent-ready work into shipped production code. Both fully observed, both running 24/7, both shippable in a week of setup. Same 18 people, 10–30× the output, possibly more. Below: the two flows visualized, the today-vs-after math, and 7 deeper pages to dive into. Engineers, start with Local Setup. Product folks, start with PRDs. Leadership, start with Vision or ★ Manifesto.

Humans · unchanged
18
15 engineers + 3 QA · across 13 product boards · 3 first-party repos
Agent runs · per day
600+
15 eng × 20+ parallel + overnight + org crons
Output lift
10–30×
vs ~565 PRs/30d today · possibly 50× with full PRD backlog
Cycle time
5–20× faster
idea → prod in hours, not weeks · feature → first ship in 1–5 days
Hand-typed code
0
principle #1 · engineers dispatch, agents type
Setup time
7 days
Mon → Sun · one engineer + agents · documented in Changes
1 The two assembly flows

One for code · one for product spec. Both fully observed.

The PRD lifecycle turns ideas into agent-ready work (status: approved · assignee set · acceptance criteria met). The development lifecycle turns agent-ready work into shipped, observed production code. They feed each other continuously — the bug-detection loop on the right feeds the next idea on the left.

Flow A · PRD lifecycle · idea → agent-ready
flowchart LR classDef human fill:#fef3c7,stroke:#d97706,color:#78350f,stroke-width:2px classDef skill fill:#eef2ff,stroke:#6366f1,color:#1e1b4b,stroke-width:2px classDef gate fill:#fee2e2,stroke:#dc2626,color:#7f1d1d,stroke-width:2.5px classDef ci fill:#dbeafe,stroke:#3b82f6,color:#1e3a8a,stroke-width:2px classDef ready fill:#d1fae5,stroke:#10b981,color:#064e3b,stroke-width:3px A["Idea
Slack · Roam · issue"]:::human B["/analyse-system
research the surface"]:::skill C["/write-prd
+ GTM scoring"]:::skill D{"Approval
status: approved"}:::gate E["/assign-prds
score engineers"]:::skill F["/prd-to-plan
plan + tasks"]:::skill G["prd-automation.yml
creates issues"]:::ci H["Labels applied
domain · complexity"]:::ci I["AGENT-READY
feeds Flow B"]:::ready A --> B --> C --> D D -->|human gate| E --> F --> G --> H --> I
Bottleneck today: the approval gate (status: draft → approved). Manual frontmatter edit, no RACI, no audit log. Often blocks on Thomas alone. Loop to close: prd_approval.yml workflow enforcing approved-by: commit trailer + auto-Slack-tag the assignee.
Flow B · development lifecycle · agent-ready → prod
flowchart LR classDef human fill:#fef3c7,stroke:#d97706,color:#78350f,stroke-width:2px classDef agent fill:#d1fae5,stroke:#10b981,color:#064e3b,stroke-width:2px classDef mbm fill:#eef2ff,stroke:#6366f1,color:#1e1b4b,stroke-width:2px classDef ci fill:#dbeafe,stroke:#3b82f6,color:#1e3a8a,stroke-width:2px classDef prod fill:#fce7f3,stroke:#ec4899,color:#831843,stroke-width:2px classDef obs fill:#f3e8ff,stroke:#a855f7,color:#581c87,stroke-width:2px J["Engineer dispatches
10+ parallel agents"]:::human K["Agent opens PR
(via API or local)"]:::agent L["MBM bot review
+ persona reviewers"]:::mbm M["CI gates
(under 60 sec)"]:::ci N["Auto-merge to qa
(MBM approved + green)"]:::ci O["Deploy to
be.qa.graph8.com"]:::prod P["Smoke + soak
(48h SLO)"]:::ci Q["Auto-promote
qa → main"]:::ci R["Production deploy
be.graph8.com (2 replicas)"]:::prod S["Sentry · Loki ·
OpenSearch · OpenReplay"]:::obs J --> K --> L --> M --> N --> O --> P --> Q --> R --> S S -.->|5xx detected| J
Bottleneck today: human merge to qa (no bot watches merge-ready PRs) and qa → main (a human's whenever-they-feel-like-it decision). Loops to close: GitHub auto-merge gated on MBM-approval + CI-green; weekly cron auto-opens qa→main PR after 48h green soak.
2 The assembly line · today vs after

Real numbers from last 30 days, side-by-side with the post-Lifecycle projection.

All "today" numbers from gh pr list --repo graph8-com/g8 --state merged --search "merged:>30d". After numbers are the conservative read (8–15× per engineer, multiplied across 15 engineers). Higher reads in Day After.

graph8 today · last 30 days

~ 565 merged PRs / 30d · top 4 repos

  • Top performer · Usjid: 37 PRs/30d hand-writing the code
  • Median engineer · ~ 8 PRs/30d · 0.3/day
  • Cycle time · feature → prod · 1–4 weeks
  • Cycle time · bug → fix in prod · 4–48 hours
  • Stuck PRs (>7d) in last 90 days · 0 (team is healthy)
  • Engineer-local agent activity visible to org · ~30%
  • QA throughput · ~15 stories/day · manual testing
  • "Did the agent run?" answer time · 5–30 min Slack thread
graph8 after Lifecycle · 7 days of setup later

~ 5,600–17,000 PRs / 30d · same 3 repos

  • Top performer · Usjid: 10–15 PRs/day dispatched + reviewed
  • Median engineer · 5–10 PRs/day · 150–300/month
  • Cycle time · feature → prod · 4 hr – 2 days (7–15× faster)
  • Cycle time · bug → fix in prod · 10 min – 2 hr (12–50× faster)
  • Stuck PRs (>7d) · still 0 · agent-driven hygiene keeps it that way
  • Engineer-local agent activity visible · 100% via trace ledger
  • QA throughput · 100–200 stories/day · 3 QA orchestrating
  • "Did the agent run?" answer time · < 1 sec SQL query
The bottleneck shift

Once engineering throughput goes 10–30×, the constraint moves upstream to the PRD flow (Flow A). Today the PRD flow is mostly manual — that's why it's the next horizon after the 7-day Lifecycle setup ships. See Agent-ready PRDs for the 10 known stuck-points and 10 closing loops.

3 Where to go next

7 pages. Pick by your role.

Each page is self-contained — you don't need to read them in order. The recommended entry per audience is below.

On this page