Building Production Software Factories with Autonomous Agent Workflows

software_factory · Tech · 2026 · source Agentic: yes · promotional bias: low · source-backed · extracted with prompt 0.5.5 (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: Autonomous software-development factories

The team wanted software factories that could plan, build, review, deploy, monitor, and improve applications with minimal human intervention while still preserving quality, auditability, and safe escalation points.

Constraints:

Architecture

The transcript describes two production-oriented software-factory designs. The Owner-based factory decomposes SDLC work into planning, building, review, deployment, and operations automations, using Owner sessions, feature planners, PR review/shepherd agents, GitHub Actions, Vercel, Storybook checks, Sentry incident loops, and an automation auditor. The custom Rust factory takes the opposite path: a monolithic EC2-hosted binary with a Bedrock conversation manager, tool registry, state-machine/DAG orchestration, task blueprints, adversarial plan/code/test agents, commit-based state, Jujitsu conflict tracking, and a nightly overseer that mines agent traces for factory improvements.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  human-planner[Human planner] --> owner-planning-automations[Owner planning automations]
  owner-planning-automations --> owner-building-automations[Owner building automations]
  owner-building-automations --> storybook[Storybook]
  owner-building-automations --> review-automations[Review automations]
  review-automations --> github-actions[GitHub Actions]
  github-actions --> vercel[Vercel]
  vercel --> operations-automations[Operations automations]
  storybook --> operations-automations
  operations-automations --> sentry[Sentry]
  sentry --> owner-planning-automations
  human-planner --> factory-dashboard[Factory dashboard]
  factory-dashboard --> rust-factory-binary[Rust factory binary]
  rust-factory-binary --> bedrock-conversation-manager[Bedrock conversation manager]
  rust-factory-binary --> tool-registry[Tool registry]
  rust-factory-binary --> task-dag-orchestrator[Task DAG orchestrator]
  task-dag-orchestrator --> adversarial-agent-reviewers[Adversarial agent reviewers]
  task-dag-orchestrator --> jujitsu-state-history[Jujitsu state history]
  rust-factory-binary --> nightly-overseer[Nightly overseer]
  nightly-overseer --> tool-registry
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Human planner Defines feature direction, requirements, product taste, and high-level bug descriptions. Owner planning automations, Factory dashboard
Owner planning automations Feature builder and feedback digest that turn planning inputs and user feedback into work for the factory. Human planner, Owner building automations
Owner building automations Feature planner, bug fixer, and manual Owner sessions that implement changes and refine UI or specifications. Owner planning automations, Storybook, Review automations
Review automations Automated PR reviewer and PR shepherd that keep reviews moving and enforce quality before release. Owner building automations, GitHub Actions
GitHub Actions CI, database migration verification, and deployment automation for the Owner-based factory. Review automations, Vercel, Operations automations
Vercel Production hosting target for the Owner-based application releases. GitHub Actions, Operations automations
Operations automations Post-merge verification, UI verification, incident response, metrics collection, and automation auditing. Vercel, Storybook, Sentry, Owner planning automations
Sentry Exception-monitoring system that feeds incident-response issues back into the factory loop. Operations automations, Owner planning automations
Storybook UI specification and visual comparison source used by the Owner factory's UI verifier. Owner building automations, Operations automations
Rust factory binary Custom monolithic factory runtime with state-machine orchestration, Bedrock integration, and tool control. Bedrock conversation manager, Tool registry, Task DAG orchestrator, Adversarial agent reviewers, Jujitsu state history, Nightly overseer
Bedrock conversation manager Custom adapter that manages LLM conversations for the Rust factory. Rust factory binary, Task DAG orchestrator
Tool registry Custom registry of tools available to agents in the Rust factory. Rust factory binary, Adversarial agent reviewers
Task DAG orchestrator Breaks requirements into blueprint tasks, tracks dependencies, and schedules unblocked work to coding agents. Rust factory binary, Adversarial agent reviewers, Jujitsu state history
Adversarial agent reviewers Independent reviewer and test agents that challenge plans, code, and assumptions from the primary agents. Task DAG orchestrator, Tool registry
Jujitsu state history Version-control state store that preserves commits, conflicts, and audit trails for autonomous changes. Task DAG orchestrator, Rust factory binary
Nightly overseer Meta-agent that reviews the day's conversations and token traces to suggest factory improvements. Rust factory binary, Tool registry
Factory dashboard Human-visible dashboard for projects, tasks, requirements, and factory health. Human planner, Rust factory binary

Data flow

In the Owner implementation, a human planning input or feedback digest feeds Owner planning and building automations, which generate code changes, pass them through PR review and GitHub Actions, deploy through Vercel, and then send production exceptions or UI regressions back through Sentry, Storybook, post-merge verification, and the automation auditor. In the Rust implementation, a short human requirement becomes a blueprint DAG; the orchestrator schedules dependency-unblocked tasks to coding agents, adversarial reviewers and test agents challenge each step, the factory commits accepted states into Jujitsu, and the nightly overseer mines the day of agent traces to suggest tooling or process fixes.

6 supporting quotes
“planning is the first stage. Uh in blue you still see where the human input currently goes in. That's obviously heavily in planning.”transcript, stated
“the review cycle is I would say almost fully automated in my case. Um, I guess you know, given the complexity of the product and how fast we wanted to ship it”transcript, stated
“Shipping off to, uh, the deployment stage again using, uh, GitHub actions and Vercel. And then in the operation phase where we actually do a couple of, uh, verification.”transcript, stated
“these like directed acyclic graphs of like like dependency graphs essentially. So, let me go out here and use one of the the more complicated ones”transcript, stated
“If all of them are fulfilled, um and the task is unblocked, we would schedule that uh into into a coding agent, right?”transcript, stated
“the overseer noticed that uh on an average, coding agents were spending about 10 to 15 iterations um on just trying to run Python.”transcript, stated

Why this architecture

The Owner-based design uses platform abstractions to move quickly and focus optimization effort on prompts and process. The custom Rust design chooses determinism, control, and horizontally replicable monolithic workers so organizational best practices can be encoded in a state-machine DAG instead of only in prompts. Both designs add review, verification, and feedback loops because autonomous factories are useful only if their output can be checked, traced, and improved.

4 supporting quotes
“there's obviously a lot of uh time still going into maintenance, but more about thinking uh about the prompts and how can optimize”transcript, stated
“build out this this like hyperformal state machine that I can verify that I get that I know that it will run a particular way every single time.”transcript, stated
“I no longer have to rely on system prompts to make sure that some workflow goes way. I just tell the DAG to do it for me.”transcript, stated
“And so yes the trade-off is the system is a lot more monolithic where it's just a single binary. But like that also gives me the capacity to scale horizontally infinitely”transcript, stated

Models used: LLM-based coding agents · LLM-based plan agents · LLM-based reviewer agents · LLM-based test agents · LLM overseer agent · Amazon Bedrock-hosted models · Owner agent loops

Scale

Alternatives considered (roads not taken)

Use a managed software-factory platform

Rejected because: The custom Rust implementation prioritized control, determinism, and the ability to encode workflows directly in a state machine.

“build out this this like hyperformal state machine that I can verify that I get that I know that it will run a particular way every single time.”transcript, stated
“down each component pretty aggressively. And so yes the trade-off is the system is a lot more monolithic where it's just a single binary. But like that also gives me the capacity to scale horizontally infinitely basically cuz now I can just spin up 10,000 factories and they all have the capability”transcript, stated

Build a hyper-production event architecture with EventBridge, listeners, producers, and webhooks

Rejected because: The custom builder chose a simpler monolithic approach to ship quickly, accepting some bugs instead of tripling implementation time.

“I could have gone the the hyper hyper production way of like, "Oh, um I'm going to stuff all of my events on EventBridge”transcript, stated
“that probably would have taken, I don't know, triple the amount of time and not 72 hours of a coffee-fueled rage”transcript, stated

Let agents rely only on prompt instructions

Rejected because: The custom factory uses DAG/state-machine constraints to encode organizational practice more reliably.

“I no longer have to rely on system prompts to make sure that some workflow goes way. I just tell the DAG to do it for me.”transcript, stated

Have humans write detailed technical fixes for bugs

Rejected because: The Owner-based workflow shifts humans toward describing intent and improving the factory rather than specifying code-level fixes.

“more descriptive on what the bugs are and what your intended vision is rather than hey, like this class description for this data type”transcript, stated
“I don't really spend much time on you know, explaining how I want the bugs to be fixed, but I spend more time improving the factory”transcript, stated

Trust agents to self-grade their own output

Rejected because: The discussion notes that agents can grade themselves optimistically, so external gates and adversarial review remain necessary.

“we had the agent grade its own quality and we saw it arrived at like an A grade quite fast where you thinking, "Hm, maybe it's quite ambitious."”transcript, stated

Patterns

multi-agent-orchestration (agent-architecture)

The factories coordinate planner, builder, reviewer, test, incident-response, auditor, and overseer agents across the SDLC.

“the plan agent has a plan reviewer agent, and they obviously deal with structured output so we can control all of these things very carefully.”transcript, stated
“The coder has a code reviewer along with a dedicated test agent, um and all of these systems essentially provide back pressure”transcript, stated

tool-use-orchestration (agent-architecture)

The custom factory controls LLM behavior through a Bedrock adapter, tool registry, custom tools, and a DAG-driven orchestrator.

“custom wrote a a a bedrock adapter or like a bedrock conversation manager that literally manages the entire for me.”transcript, stated
“Custom wrote a tool registry that manages all the tools. Custom wrote all my tools.”transcript, stated

durable-execution (orchestration)

The custom factory records every state as a commit, uses a dependency DAG for scheduling, and preserves conflict history for recovery.

“the good part of keeping it all atomic and keeping it all in the file system is uh every single state is recorded.”transcript, stated
“every single thing you see on here is a full commit that the factory decided was good enough.”transcript, stated

observability-tracing (operations)

Operations automations, Sentry, metrics collection, and the nightly overseer inspect production and agent traces to improve the factory.

“Sentry is another tool that's actually, yeah, needs to be added here as well. And the operation phase that captures our, uh, exceptions, our bugs”transcript, stated
“any single token that came out of an LLM, was given to that overseer.”transcript, stated

human-in-the-loop-gate (governance)

Humans remain in planning, UI/UX verification, factory maintenance, catastrophic failure handling, and high-risk governance decisions.

“human input currently goes in. That's obviously heavily in planning.”transcript, stated
“the the only time I really really insert myself in is um is if the factory catastrophically fails.”transcript, stated

eval-driven-development (quality)

The factories use CI, database migrations, post-merge checks, UI comparison, code review agents, test agents, and future formal verification concepts to control quality.

“verification through GitHub actions both on the CI as well as on our database migrations.”transcript, stated
“you go from being a software engineer to a verification engineer, almost.”transcript, stated

Tradeoffs

Managed Owner platform versus custom Rust factory

Chose Both approaches are shown: Owner for platform abstraction, Rust for deterministic control over A single universal factory architecture.

Rationale: The transcript frames factory design as a spectrum between operational abstraction and low-level control.

“there is there is a spectrum of how much control you want and uh where do you want to spend your time optimizing?”transcript, stated
“come to a platform like owner that gives you a lot of the tooling out of the box.”transcript, stated

Monolithic state-machine binary versus event-heavy production architecture

Chose A single Rust binary with a state machine and custom tools over EventBridge-style listeners, producers, and webhooks for every event.

Rationale: The monolith shipped faster and encoded deterministic workflows, at the cost of bugs and less production polish.

“And so yes the trade-off is the system is a lot more monolithic where it's just a single binary.”transcript, stated
“EventBridge and there's going to be listeners and producers and and webhooks for everything." And I I could have gone that way.”transcript, stated

Autonomous low-risk operation versus heavy human review

Chose Let the custom factory operate autonomously on low-stakes internal applications over Insert humans into every code-writing or pull-request decision.

Rationale: The operator accepts partial trust because the applications are low stakes and failures can be observed or escalated.

“These are obviously low stakes applications. This is not This is not someone's pacemaker.”transcript, stated
“factory takes the wheel, makes everything work. The more serious answer to this would actually be way more academic for me.”transcript, stated

Use Jujitsu for auditability

Chose Jujitsu conflict-preserving history over Git conflict resolution that loses some information.

Rationale: The factory needs detailed audit trails of autonomous state and conflict decisions.

“I'm not using Git, I'm using something called Jujitsu. And one of the reasons for that is it gives you highly highly detailed records of file conflicts and merge conflicts.”transcript, stated
“instead of in Git where you lose information when you do a conflict resolution, with Jujitsu you maintain all of that information.”transcript, stated

Improve the factory instead of micromanaging code fixes

Chose Spend engineering effort on process, prompts, specs, verification, and factory maintenance over Directly specifying every implementation-level bug fix.

Rationale: The factory can handle implementation if humans give intent and improve the mechanisms that generate future output.

“I don't really spend much time on you know, explaining how I want the bugs to be fixed, but I spend more time improving the factory”transcript, stated
“you still need a highly capable PM team that knows what the taste of the product needs to be like.”transcript, stated

Gotchas (what bit them)

Autonomous factories can change the systems that govern them.

Root cause: Application code and workflow definitions are often coupled in the same repository, giving agents a path to alter factory behavior.

Resolution: Separate workflow definitions from application code and apply stricter controls to factory behavior changes.

“our repositories are coupling both the application code and the workflow. So then from a governance perspective, it's actually quite challenging because the agent can actually then change the factory.”transcript, stated
“separate those two so that changes to the factory are then controlled by you and then changes to the application are more freely allowed to pass through.”transcript, stated

Agents can waste many iterations on missing environment capabilities.

Root cause: The coding agents tried repeatedly to run Python in an environment where it was blocked or unavailable.

Resolution: Use overseer feedback to add an explicit tool wrapper that exposes the needed capability safely.

“coding agents were spending about 10 to 15 iterations um on just trying to run Python.”transcript, stated
“the suggestion it had was just, oh yeah, just make a tool that runs Python for your agent, so it doesn't have to second-guess.”transcript, stated

Merge conflicts can exceed autonomous recovery limits.

Root cause: Concurrent autonomous tasks can produce file conflicts that the factory's rework loop cannot resolve alone.

Resolution: Persist every state and conflict in version control, then escalate catastrophic conflict failures to a human or a focused single coding agent.

“exceeded max merge rework account and task timed out. So that basically tells me um that there was some kind of merge conflicts”transcript, stated
“I literally just launched an instance of open code, pointed it to bedrock and said, "Hey, there's merge conflicts. Solve them all."”transcript, stated

Agent self-assessment can be overconfident.

Root cause: The discussion notes an agent grading its own quality quickly as an A despite human skepticism.

Resolution: Use external verification, adversarial review agents, and explicit gates instead of relying on self-grades.

“we had the agent grade its own quality and we saw it arrived at like an A grade quite fast where you thinking, "Hm, maybe it's quite ambitious."”transcript, stated
“there is another agent that is unrelated, has no context on the on what the agent had built, to challenge the assumptions of the first agent.”transcript, stated

Autonomous code generation introduces real security incidents.

Root cause: Factories can ship quickly and repeatedly, expanding the need for layered security review and clear responsibility.

Resolution: Tailor security reviews, risk gates, and sign-off policies to the organization's risk appetite.

“the speed and the output that you can get to versus you know, um, safety, security. I mean, we've seen it in the last couple of days and weeks”transcript, stated
“you can obviously tweak your factory to do secondary security reviews and, you know, add a lot of layers to ensure that what you ship is extremely safe”transcript, stated

Evaluation

The transcript reports production-oriented scale and operational checks rather than formal benchmark results. Evaluation relies on merged PRs, active app usage, automated CI/database checks, post-merge verification, UI comparison against Storybook, Sentry incident loops, adversarial reviewer/test agents, commit-history auditability, and overseer-driven process improvements.

Metrics: Over 50,000 lines of generated code · More than 300 merged pull requests · CI and database migration checks · Post-merge deployment verification · UI comparison against Storybook · Sentry exceptions and bugs · Agent-review trust estimate of 70-75% · 10-15 wasted Python iterations detected by overseer · Operational usage of maintained applications

4 supporting quotes
“over 50,000 lines of code now being written, over 300 pull requests being being merged and with very little human intervention”transcript, stated
“verification through GitHub actions both on the CI as well as on our database migrations.”transcript, stated
“looking into Storybook and visually comparing the UI that we've designed on on Storybook to the UI that is actually in production.”transcript, stated
“I know people are using it cuz I'm seeing like the operational metrics on that.”transcript, stated

Outcomes

Concrete scale includes over 50,000 lines of code, more than 300 merged pull requests, a roughly two-week Owner build, a roughly 72-hour custom factory build, a 23-task dependency graph example, three concurrently maintained applications, and a 70-75% subjective trust estimate.

3 supporting quotes
“We are building Memo, a Notion-like factory that we've built up over the last two weeks using owner and owner automations running agent loops”transcript, stated
“right now it's it's maintaining about two internal apps itself and one green field project all at the same time.”transcript, stated
“our job shifts to you know maintaining factory, maintaining the processes, improving it, self-improvement and letting it do its its job.”transcript, stated