Extreme Harness Engineering: Building Production Software with Zero Human-Written Code

openai · Tech · 2026 · source Agentic: yes · promotional bias: med · source-backed · extracted with prompt 0.5.6 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: AI-native software engineering

OpenAI Frontier Product Exploration wanted to test whether production software could be built with zero human-written code, which shifted the bottleneck from model tokens to harness design, context, observability, task decomposition, agent coordination, and scarce human attention.

Constraints:

Architecture

The team developed a harness-engineering workflow around Codex agents. Instead of writing code, humans decomposed failures into smaller building blocks, encoded taste into skills, docs, tests, markdown trackers, guardrails, and observability, kept build loops under a minute, delegated PR lifecycle work to Codex skills and review agents, used worktrees and CI/merge automation, and built Symphony, an Elixir orchestration layer that supervises and reworks large numbers of coding agents.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  frontier-product-exploration-team["Frontier Product Exploration team"] --> codex-harness["Codex harness"]
  codex-harness --> coding-agents["Coding agents"]
  repository-skills-and-docs["Repository skills and docs"] --> codex-harness
  local-observability-stack["Local observability stack"] --> codex-harness
  coding-agents --> build-and-test-system["Build and test system"]
  coding-agents --> pr-lifecycle-skill["PR lifecycle skill"]
  review-agents["Review agents"] --> pr-lifecycle-skill
  pr-lifecycle-skill --> worktree-and-merge-queue["Worktree and merge queue"]
  worktree-and-merge-queue --> symphony-orchestrator["Symphony orchestrator"]
  symphony-orchestrator --> human-release-gate["Human release gate"]
  review-agents --> team-knowledge-distillation["Team knowledge distillation"]
  team-knowledge-distillation --> repository-skills-and-docs
  human-release-gate --> frontier-product-exploration-team
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Frontier Product Exploration team Defines product goals, constraints, taste, and review expectations while avoiding direct code authorship. Codex harness, Human release gate, Team knowledge distillation
Codex harness Runs coding agents with shell, file, container, skills, scripts, and repository context. Coding agents, Repository skills and docs, Local observability stack
Coding agents Author product code, tests, docs, internal tools, dashboards, release tooling, and repository scripts. PR lifecycle skill, Review agents, Build and test system
Repository skills and docs Encode non-functional requirements, team taste, quality scores, trackers, and instructions as model-readable context. Codex harness, Team knowledge distillation
Build and test system Keeps the agent inner loop fast and supplies pass/fail feedback for reliable code changes. Coding agents, PR lifecycle skill
Local observability stack Provides traces, metrics, logs, dashboards, and pages that agents can inspect and improve. Codex harness, Coding agents, Review agents
Review agents Review PRs, leave comments, bias toward mergeable feedback, and feed quality signals back into the repository. Coding agents, PR lifecycle skill, Team knowledge distillation
PR lifecycle skill Delegates push, review, CI, flake handling, merge-conflict resolution, merge queue, and upstream merge handling to agents. Coding agents, Review agents, Worktree and merge queue
Worktree and merge queue Lets many agent branches run in parallel and converge through CI and merge handling. PR lifecycle skill, Symphony orchestrator
Symphony orchestrator Elixir-based coordination layer that supervises many task daemons and can trash/rework failed worktrees. Worktree and merge queue, Human release gate
Team knowledge distillation Slurps agent trajectories, PR comments, failed builds, and session logs into team-level improvements. Repository skills and docs, Review agents, Frontier Product Exploration team
Human release gate Approves release branches and smoke tests before distribution while staying out of code authorship. Frontier Product Exploration team, Symphony orchestrator

Data flow

A human defines or selects work, Codex agents use repository skills, docs, scripts, and local observability to author changes, a PR lifecycle skill pushes work through review, CI, merge conflict resolution, and merge queue handling, review agents and tests provide feedback, Symphony can rework failed PRs from scratch, and humans inspect compressed evidence plus smoke-test release branches before distribution.

“We invoke a dollar land skill and that coaches codex to push the PR Wait for human and agent reviewers Wait for CI to be green.”article, stated
“In Symphony, there’s this like rework state where once the PR is proposed and it’s escalated to the human for review, it should be a cheap review.”article, stated

Why this architecture

The architecture optimizes for agent legibility because agents can be parallelized cheaply while human attention cannot. The team therefore encoded taste, guardrails, and observability into text, tests, scripts, dashboards, and skills so agents could see, fix, review, and merge work with minimal human supervision.

“The only fundamentally scarce thing is the synchronous human attention of my team.”article, stated
“Ultimately, all the things that we have encoded in docs and tests and review agents and all these things are ways to put all the non-functional requirements”article, stated

Models used: Codex CLI · Codex Mini · Codex · GPT-5 model generations · Symphony · Elixir · Beam · Review agents · Skills · Grafana dashboards · Playwright shim CLI · GitHub CLI

Scale

Alternatives considered (roads not taken)

Have humans write code directly.

Rejected because: The experiment intentionally constrained the human to make the agent do the whole job and expose missing harness capabilities.

“starting with this constraint of I can’t write the code meant that the only way I could do my job was to get the agent to do my job.”article, stated

Prompt the agent harder when it fails.

Rejected because: The team instead built missing building blocks, tools, context, and structure so future agents could complete the task.

“whenever the model just cannot, you always pop open at the task, double click into it, and build smaller building blocks”article, stated

Keep humans synchronously reviewing all code.

Rejected because: Human attention became the bottleneck, so reviews moved toward agent review, post-merge sampling, and compressed evidence.

“We’ve moved beyond even the humans reviewing the code as well.”article, stated

Use a predefined scaffold that boxes in the reasoning model.

Rejected because: The team found reasoning models performed better when the harness itself gave options and enough context to choose how to proceed.

“we have the model, the harness be the whole box. And give it a bunch of options for how to proceed with enough context for it to make intelligent choices.”article, stated

Depend on visual GUI-oriented tools for agent debugging.

Rejected because: Agents work better with text and token-efficient CLIs, so the team converted visual and noisy tools into text-friendly shims.

“Models love to use tools. They love the best. They love to read through text. So slap a CLI let it go loose.”article, stated

Patterns

multi-agent-orchestration (coding-agent coordination)

Symphony supervises many coding-agent tasks, PRs, worktrees, and rework states so humans do not manually drive every terminal session.

“Yeah. Yeah. And it chose that because the process supervision and the gen servers are super amenable to the type of process orchestration that we’re doing here.”article, stated

observability-tracing (agent-visible operations)

The team gave Codex traces, metrics, logs, dashboards, pages, and local observability so agents could diagnose and fix issues.

“invested in giving the model that observability, which is that that graph in the post here.”article, stated

durable-execution (agent task supervision)

Symphony uses Elixir process supervision and task daemons to drive agent work to completion and rework failed PRs.

“You are essentially spinning up little Damons for every task that is in execution and driving it to completion”article, stated

human-in-the-loop-gate (release control)

Humans stay out of routine code authorship but still approve release branches and smoke tests before distribution.

“We require a blessed [00:16:00] human approved smoke test of the app before we promote it to distribution”article, stated

tool-use-orchestration (agent-operable developer tools)

The workflow exposes boot scripts, CLIs, GitHub commands, dashboards, and small shims as tools agents can invoke.

“give Codex via skills and scripts the ability to boot the stack if it chooses to”article, stated

eval-driven-development (self-improving engineering loop)

Failed builds, PR comments, review feedback, and agent session logs become signals that missing context or requirements should be encoded back into the repo.

“a PR comment, a failed build. These are all signals that mean at some point the agent was missing context.”article, stated

Tradeoffs

How to spend human effort under the zero-human-code constraint.

Chose Build harness, tools, context, and observability over Writing or reviewing every code change directly.

Rationale: The leverage came from making the agent able to do the whole job, while humans focused on the next bottleneck.

“we ended up getting to something much more productive than any one engineer could be because we built the tools, the assembly station for the agent to do the whole thing.”article, stated

How to structure the repository.

Chose Agent-legible, highly decomposed architecture over Normal human-scale team structure.

Rationale: If each person effectively commands many agents, deep decomposition and stable interfaces reduce collisions and dispersion.

“if every person is actually like 10 to 50. Then the like numbers on being super, super deep into decomposition and sharding”article, stated

How to handle failed Symphony PRs.

Chose Trash and rework from scratch after diagnosis over Patch the same bad worktree indefinitely.

Rationale: Code is cheap enough that the valuable step is identifying what context or requirement was missing before retrying.

“The elixir service will completely trash the entire work tree NPR and start it again from scratch.”article, stated

How to encode guardrails.

Chose Native tests, docs, scripts, and code-level constraints over A separate off-policy scaffold around Codex.

Rationale: Native code/test guardrails align with what Codex already produces and improve reliability without fighting future model improvements.

“build all the guardrails in a way that’s just native to the output that Codex is already producing, which is code”article, stated

Gotchas (what bit them)

Early models could not assemble product features without better primitives.

Root cause: The initial harness lacked the building blocks and structure the model needed.

Resolution: Double-click failures into smaller building blocks that can be reassembled into broader objectives.

“it just not being able to assemble the pieces together.”article, stated

Model and harness changes can invalidate assumptions about long-running scripts.

Root cause: Background shells made the model less willing to block on long tasks.

Resolution: Retool the build system so the inner loop completed in under a minute.

“with five, three and background shells, it became less patient, less willing to block.”article, stated

Review agents and authoring agents can thrash if feedback is treated as mandatory.

Root cause: The authoring Codex was initially willing to be bullied by PR reviewer comments.

Resolution: Give reviewer agents priority guidance and authoring agents permission to acknowledge, defer, or push back.

“the Codex driving the code author was willing to be bullied by the PR reviewer, which meant you could end up in a situation where things were not converging.”article, stated

MCP-style broad tool exposure can waste context and hurt compaction.

Root cause: The harness injected too many tool tokens and the agent only needed a few Playwright calls.

Resolution: Build a tiny local daemon and shim CLI that exposes only the needed operations.

“With MCPM CCPs, I’m pretty bearish on because the harness forcibly injects all those tokens in the [00:36:00] context”article, stated

Multi-human, multi-agent work can become chaotic without shared state.

Root cause: Humans are not continuously in the loop and can lose track of what the code currently looks like.

Resolution: Use rigid decomposition, daily synchronous knowledge sharing, and team-level knowledge distillation.

“I have lost track very often of what the actual state of the code looks like.”article, stated

Evaluation

The team evaluated the harness through build times, PR throughput, CI, review-agent feedback, post-merge review, observability dashboards, smoke tests, and signals from failed builds or PR comments that indicated missing context.

Metrics: Build loop under one minute · PRs per engineer per day · CI pass/fail · Review-agent comments · Post-merge human review samples · Smoke-test approval before distribution · Agent trajectory and session-log distillation

“One minute was just a nice round number and we were able to hit it.”article, stated
“I have some representative sample of the code as it is written, and I have to use that to infer what the teams are struggling with”article, stated

Outcomes

The source reports a five-month experiment, a million-line codebase, around 1,500 PRs, a repository structure near 500 NPM packages, six shared skills, and billion-token-per-day operating scale.

“For us as users, it has again, pushed the productivity five x”article, stated
“Vibhu: you have this too, you deploy a billion tokens of intelligence a day and this was, this was at the beginning of 2096.”article, stated