The AESOP build produced a deployable full-stack scaffold — the agent, the build approach wired end to end — in a single pass. Here’s what that pass was worth, measured against a competent engineer doing the same from a clean PRD by hand.
| Artifact | Manual hours | What it is |
|---|---|---|
| Risk engine + escalation logic | 4–6 | Six flag types, compound-risk detection, escalation rules |
| Supabase schema | 2–3 | Seven tables, RLS on every table, per-role policies |
| Next.js dashboard | 4–6 | Typed fetch layer, severity-colored flags, escalation badge |
| Deploy config + infra docs | 1–2 | Dockerfile, Fly config, pinned requirements, README |
| Setup prompts + diagram | 1–2 | Repo setup, Supabase, architecture — runnable |
| Total | 12–19 | One run of the build, not one sprint |
Everything a competent engineer writes before the interesting part. Routing, schemas, auth plumbing, deploy wiring, the dashboard shell. All of it is decided-and-done, not decided-and-then-built.
The platform choices are made for you. FastAPI on Fly, Next.js on Vercel, Supabase for data and auth, a provider-flexible LLM. No bike-shedding the stack — the scaffold already picked it.
The number is worthless if it’s inflated. Three places this scaffold is not finished work — they’re explicitly stubbed, and they’re the parts that make the agent real:
conversation_signals → hardcoded emptyNo Gong or Salesforce fetch. The weekly “what did the customer say” is stubbed to nothing — the actual data plumbing is still to build.
summary · next_action → template stringsThe provider path exists, but the narrative is template text, not model calls. The “language is the model” half isn’t wired yet.
grounding_pass_rate → hardcoded 1.0Grounding is faked to perfect, drift detection is a stub. Real evaluation — the honest-eval principle — is downstream of the scaffold.
The 12–19 hours is scaffold time — the part that was going to be slow no matter what. The remaining work — live data sources, real grounding, tests — is what the estimate deliberately does not claim to save. That’s the distinction worth keeping straight: the build didn’t skip the hard parts, it just stopped making you pay for the easy ones.