AI Engineer World's Fair 2026

No, That's Not a Software Factory — Ryan Cooke, WorkOS

Slide chapters

17 slide and demo groups · Timestamps are approximate. 1 additional group was omitted from this pass.

No, That's Not a Software Factory

Ryan Cooke of WorkOS introduces his talk on software factories at AI Engineer World's Fair 2026.

Text in image
No, That's Not a Software Factory

WorkOS
SOFTWARE FACTORIES · AIEW 2026

Ryan Cooke · Product Engineering
AI Engineer World's Fair 2026

Interface text:
1 / 16

The Standard Playbook

Cooke describes a setup where code and an AI agent share a sandbox: a prompt generates a PR, which is then merged. Ramp, Spotify, Stripe and WorkOS have each built a version.

Text in image
The Standard Playbook

Sandbox → Model → Repo → PR → Merge

Ramp built Inspect · Spotify built Honk · Stripe built Minions · We built Horizon

You've seen this. You may have built this. So have we.

WorkOS

2 / 16

The Industry Is Measuring Output

Company PR counts and AI shares measure production. Cooke argues these output metrics can obscure whether the systems actually drive outcomes.

Text in image
The Industry Is Measuring Output

>50% — Ramp
of merged PRs from AI

1,500+ — Spotify
AI-generated PRs merged

1K+ — Stripe
merged PRs per week

13% — Abnormal
of merged PRs from AI

5% — Coinbase
of merged PRs from AI

These are production rates. Not value-delivered rates.

WorkOS

Interface text:
3 / 16

Output vs. Outcomes

Cooke argues that PR counts and generated code can obscure whether a software factory creates value. He instead tracks outcomes such as feature delivery time, defect rate at ship, and time to resolve issues.

Text in image
Output vs. Outcomes
The industry is optimizing for the wrong variable

Output metrics
— PRs merged / week
— % of code written by AI
— Lines of code generated
— PR velocity

vs.

Outcome metrics
+ Feature delivery time
+ Defect rate at ship
+ Engineer leverage
+ Time to resolve issues

“More code, faster, is not the same as more value, faster.”

WorkOS

Interface text:
5 / 16

Sandbox + Model + Repo

WorkOS found its initial sandbox and model setup produced outcomes indistinguishable from engineers using coding tools on their laptops. The team began considering how to embed engineering processes in the factory.

Text in image
Sandbox + Model + Repo
= Necessary. Incomplete.

Every serious team has checked this box. So what's left?

WorkOS

Interface text:
5 / 16

What We Built: Horizon / TARS

TARS embeds the coding agent in tools such as Slack, Linear and GitHub. Horizon orchestrates the infrastructure, including warm-pooled sandboxes and an event loop from Linear to the repo and back.

Text in image
What We Built
Horizon / TARS

TARS — The Product
What users interact with. Slack, Linear, GitHub, web UI. Receives instructions, opens PRs, reports status.

Horizon — The Infrastructure
Cloudflare Containers, webhook-driven orchestration, OpenCode runtime. Warm-pooled sandboxes. Event loop from Linear to repo and back.

WorkOS
6 / 16

Infrastructure is only half the story

TARS uses ticket-completion webhooks to pick up the next dependent Linear ticket. It can also reevaluate the project for missing tickets as work progresses.

Text in image
Infrastructure is only half the story.

Webhooks, shared MCP surfaces, and reproducible sandboxes plug agents into the systems and processes we already run.

We built an agent that participates in our engineering process

WorkOS

Interface text:
7 / 16

The Blueprint

WorkOS gives agents its Hilltop documents to break projects into units of work. Humans weigh trade-offs, while dependency chains highlight blockers and branches.

Text in image
The Blueprint

WorkOS engineering culture, made executable

Hilltop Documents
Write the narrative before writing code.

Small Teams
Humans weigh trade-offs

Dependency Chains
Plans highlight blockers and branches

Review-First Loop
Confident AI reviews are easily merged

WorkOS
8 / 16

The PM Agent

The PM agent turns a Hilltop document into dependent issues. Humans add context and review pull requests; after a merge, Horizon unblocks the next issue.

Text in image
The PM Agent
Encoding the planning process

01 PM agent reads the Hilltop doc
Divides project into issues with explicit dependency chains

02 Human reviews + adds context
Issues reflect real decisions; context injected for implementation

03 Implementation agent picks up issues
Works in order as issues unblock

04 PR opened, human reviews
Quality gate: correct diff, tests pass, lint clean

05 After merge: Horizon auto-unblocks
Dependency graph evaluated; next issue starts immediately

WorkOS

Interface text:
9 / 16

Project issue list

The project groups work by status, with Hilltop Review still in the backlog. Cooke says Tars will move to the next project stage after the review ticket is completed.

Text in image
Vault Internal KEK API

In Progress 1
PVIT-364 Project Channel — May 8

Backlog 13
PVIT-352 Close the loop with customers — May 8
PVIT-353 Product Demo — May 8
PVIT-354 Changelog & Blog — May 8
PVIT-358 Update SDKs — May 8
PVIT-361 Product Tier — May 8
PVIT-363 Write the hilltop doc — May 8
PVIT-355 Enablement — May 8
PVIT-359 Infra self assessment — May 8
PVIT-356 Testing — May 8
PVIT-357 Observability — May 8
PVIT-362 Security self assessment — May 8
PVIT-351 Announce in #all-shipped — May 8
PVIT-360 Hilltop Review — May 8

Done 2
PVIT-366 Write the Brief — May 8
PVIT-365 Brief review — May 8

Interface text:
WorkOS
Pulse 99+
Inbox 77
My issues
Reviews 5
Drafts 3
Workspace
Initiatives
Projects
Views
More
Favorites
Vault
All issues Radar
Your teams
Security
PVIT
Issues
Projects
Views
Radar
Triage 1
Issues
Projects
Views
Infrastructure
Foundation
Triage
Issues
Overview
Activity
Issues
Search PVIT for KMS keys ticket
Ask Linear
https://linear.app/workos/issue/PVIT-360/hilltop-review

9:54Demo milestone

Review issue

The backlog ticket calls for stakeholder review, a recording, and a security review when the self-assessment is medium or higher. Cooke says Tars will continue implementation once the ticket is complete.

Text in image
Hilltop Review

• Present with relevant stakeholders.
• Be sure to record and share.
• If security self-assessment was medium or higher then ensure there is a Security Review
• Post to Hilltop Reviews Log - this will auto update the #epd-hilltop-updates

Add sub-issues

Activity
service created the issue · 8w ago
ryancooke changed team from Security to PVIT · 8w ago
ryancooke moved from Triage to Backlog · 8w ago

Properties
Backlog
Set priority
Assign

Labels
Add label

Project
Vault Internal KEK API
Shaping & Hilltop

Suggestions
SEC
Security

Relations
Related
Write the hilltop doc
Security self assessment

Interface text:
Vault Internal KEK API › PVIT-360 Hilltop Review
14 / 16
Subscribe
Leave a comment...
WorkOS
Pulse 99+
Inbox 77
My issues
Reviews 5
Drafts 3
Workspace
Initiatives
Projects
Views
More
Favorites
Vault
All issues Radar
Your teams
Security
PVIT
Issues
Projects
Views
Radar
Triage 1
Issues
Projects
Views
Infrastructure
Foundation
Triage
Issues
Projects
Search PVIT for KMS keys ticket
Ask Linear

9:59Demo milestone

The Context Engine

WorkOS’s MCP gateway connects internal systems and guides agents through their conventions. Its tool descriptions, for example, explain which Snowflake tables to query.

Text in image
The Context Engine

The MCP server isn't data plumbing. It's culture encoding.

Standard tool shapes
Consistent naming, opinionated schemas — not just data sources but how WorkOS engineers navigate this codebase

Paved paths built in
Datadog logs, Sentry errors, Slack context — plus the patterns for how to use them. AGENTS.md and CLAUDE.md as first-class artifacts

Convention over exploration
"Agents can figure it out with minimal context, but it's slow. They spend tokens rediscovering conventions. We keep tightening that loop."

Interface text:
WorkOS
10 / 16

Infrastructure Alone Doesn't Produce This

TARS opens PRs for visual bugs reported in Slack and triages customer messages before a human looks. WorkOS also uses a PM agent to build features and is rebuilding its sandbox runtime with both agents.

Text in image
Infrastructure alone doesn't produce this.
Encoding how we build software did.

Bug fixes from Slack
TARS monitors #ui-nits — when someone reports a visual bug, it opens a PR automatically. No ticket, no assignment.

Customer triage at scale
Incoming messages in customer Slack channels get a first-pass triage through TARS before a human looks.

Major features shipped
Released significant product features using the PM agent to bootstrap engineering — Hilltop in, implementation running.

The factory rebuilds itself
We are rebuilding the sandbox runtime with TARS and the PM agent. The factory is now building its own infrastructure.

WorkOS

Interface text:
11 / 16

Memory: The Next Layer

WorkOS plans a memory layer with user, team and organization context, scoped by identity. Cooke wants that context available both in the software factory and in other AI tools.

Text in image
Memory: The Next Layer

Learnings compound across the org — scoped by WorkOS identity, not by harness.

Per-User
What this engineer works on, their preferences, context from past sessions

Per-Team
How this team scopes work, their conventions, team-level patterns and decisions

Org-Wide
WorkOS-wide standards, golden principles, company-level judgment calls

Interface text:
WorkOS
12 / 16

Engineering Process as the Blueprint

Cooke describes using agents to examine sessions for mistakes and obsolete skills, feeding those findings into a factory designed to improve with each run.

Text in image
"Every run ships work and produces the next set of fixes: better verification, clearer guidelines, tighter paved paths, so the platform learns faster than the failures repeat."

Your product engineering process
is the blueprint for every agent workflow you build.

Interface text:
WorkOS
14 / 16

A Software Factory Is

A sandbox, model, and repo are necessary foundations. Cooke argues that teams must also encode their planning, feature scoping, verification, and engineering conventions in automation.

Text in image
A Software Factory Is:

Sandbox + Model + Repo
necessary condition

How you plan work
Hilltop docs · issues · dependency chains

How you scope features
Small teams · explicit acceptance criteria

How you verify
Enforced gates, not prose instructions

Your conventions
Judgment calls that define your engineering culture

The unlock isn't infrastructure. It's institutional knowledge, made executable.

WorkOS

Interface text:
15 / 16

Ryan Cooke — WorkOS

WorkOS closing slide naming Ryan Cooke, Product Engineering, and AI Engineer World's Fair 2026.

Text in image
WorkOS

Ryan Cooke
Product Engineering · WorkOS
AI Engineer World's Fair · 2026

Interface text:
16 / 16

Read the talk

No, That's Not a Software Factory

WorkOS’s first sandbox could produce pull requests, but Ryan Cooke found little difference from engineers using coding agents locally. TARS and Horizon extend automation into planning, review, project coordination and context gathering—the work that turns code into a product.

From a talk by Ryan Cooke

At a glance

Ideas worth remembering

  • A sandbox can generate code without improving product delivery. WorkOS’s initial experience pushed it toward automating planning and coordination alongside implementation.

  • Ticket dependencies and completion webhooks let TARS continue a project without a fresh prompt at every handoff; requested reevaluation helps expose missing work.

  • Draft Hilltop documents reduce setup work and give engineers something to refine, but scope control remains an important human contribution.

  • An internal MCP gateway becomes more useful when it explains where information lives and when to query it. WorkOS reuses that guidance for coding, data analysis and customer analysis.

  • Evaluate customer delivery alongside defect rate, recovery time and voluntary adoption. Company-wide memory and session-driven improvement are future directions; authorization remains unresolved.

A pull request is an output. What did it change?

The familiar software-factory recipe is straightforward: put a repository in a sandbox, add a coding agent, give it a prompt, and merge the resulting pull request. Ryan Cooke, an engineer at WorkOS, opens with that recipe because it leaves an important question unanswered: does the organization actually deliver more useful software?

Source frame: A pull request is an output. What did it change?Open full source frame
Source frame: A pull request is an output. What did it change?

Counts of pull requests, percentages attributed to AI, and quantities of generated code describe production activity. They do not establish that the activity advances a customer outcome. More pull requests can make an automation system look successful while leaving the harder question—whether features reach customers sooner—unresolved. That distinction matters when building the factory itself consumes engineering time and potentially a dedicated team.

WorkOS’s ambition is to give each engineer something like a small engineering team. The consequence should be observable in delivery: more features shipped, with complex work completed faster. Cooke’s account offers qualitative experience and proposed success measures rather than numerical delivery or reliability results; it explains the design and its intended benefits without establishing their magnitude.

1:001:02
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

0:12 · section reference included

The sandbox worked; the surrounding process needed work

WorkOS began with a sandbox built on Cloudflare, a model router, and prompts. The disappointing result was how ordinary it felt. Cooke found the outcomes pretty indistinguishable from engineers driving coding agents on their laptops. Moving execution into a sandbox had not, by itself, removed enough of the surrounding work to change product delivery.

Source frame: The sandbox worked; the surrounding process needed workOpen full source frame
Source frame: The sandbox worked; the surrounding process needed work

The next design question was how to put WorkOS’s engineering processes inside the factory. Engineers do more than write code: they organize projects and carry work through the steps needed to produce a product. Automating those steps required the system to participate in the tools where that work already happened.

That led to two parts with different responsibilities:

  • TARS: The interface to the coding agent lives in Slack, Linear and GitHub. It also subscribes to webhooks so it can track project progress alongside its code work.
  • Horizon: The infrastructure orchestration layer sits in front of an internal MCP gateway. It provides the execution infrastructure, while the gateway connects the agent to organizational tools and context.
3:143:21
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

3:11 · section reference included

Webhooks turn ticket completion into the next action

A dependency between Linear tickets gives the factory a plan it can follow. One ticket blocks another; completing the first changes which work can proceed. Because TARS receives ticket-completion webhooks, it can pick up the next ticket automatically. Planning therefore supplies both the units of work and their execution order, reducing the need for a person to issue a fresh prompt at every handoff.

Source frame: Webhooks turn ticket completion into the next actionOpen full source frame
Source frame: Webhooks turn ticket completion into the next action

The plan can also change as implementation reveals gaps. Between completed tickets, an engineer can ask TARS to reevaluate the Linear project and identify missing work. This is a separate operation from advancing to the next ticket: advancement follows the existing plan, while reevaluation checks whether the plan still covers the project’s goal.

What connects a finished ticket to continued execution, and where can the plan be reconsidered? The diagram separates those paths. The completion event drives the next handoff; an intervening request can send TARS back to the project plan to look for gaps. The useful autonomy comes from reacting to project state, rather than treating each coding session as an isolated task.

Execution follows project events; reevaluation revisits the plan

Linear project planTickets describe smaller units of work and their dependencies.
Ticket completedLinear emits a completion event received by TARS.
TARS picks up the next ticketExecution continues along the planned work.
Requested project reevaluationTARS checks whether the project is missing work discovered during implementation.
Ticket completion can trigger the next unit of work. A requested reevaluation checks for missing tickets as implementation exposes gaps.
Read the diagram as text
  • Linear project plan. Tickets describe smaller units of work and their dependencies.
  • Ticket completed. Linear emits a completion event received by TARS.
  • TARS picks up the next ticket. Execution continues along the planned work.
  • Requested project reevaluation. TARS checks whether the project is missing work discovered during implementation.
  • Linear project plan → TARS picks up the next ticket: Dependencies guide execution.
  • Ticket completed → TARS picks up the next ticket: Completion webhook.
  • Ticket completed → Requested project reevaluation: Engineer can request a check between steps.
  • Requested project reevaluation → Linear project plan: Identify gaps and keep the plan fresh.
5:275:30
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

5:07 · section reference included

From a Slack brief to a reviewed Hilltop

At WorkOS, engineers carry many product responsibilities; Cooke says teams do not have product managers. Their planning ritual is a Hilltop document, a product requirements document that gathers the project’s purpose, customer needs, competitive analysis, early designs and major milestones. Consolidating those inputs gives an agent a coherent resource from which to break the project into units of work.

Source frame: From a Slack brief to a reviewed HilltopOpen full source frame
Source frame: From a Slack brief to a reviewed Hilltop

The PM agent automates the first pass through that ritual. A brief specification becomes a draft Hilltop; the agent adds context, reads human reviews, and breaks implementation into tickets. Humans can comment on generated tickets and refine the work throughout the process. Approval is also an event the factory understands: once the Hilltop has been reviewed and approved through Linear, the system can begin the project automatically.

The concrete example is a new API for Vaults, a product Cooke leads. He starts the project with a Slack command and a few sentences describing the goal. TARS creates the Linear project, a draft Notion document, and first passes at decision logs and open questions. The observable change is from a short request to an organized set of project resources that the lead engineer can immediately edit.

Cooke then adds specifications and fills in poorly defined areas using his knowledge of the project. The example is still awaiting its Hilltop review: completing that review ticket will let TARS detect the change and move to the next implementation stage. The review is therefore doing two jobs. It improves the product definition, and its recorded completion tells the automation when work may advance.

The benefit is partly the familiar “blank page problem.” Cooke reports that teams are doing more project-brief and Hilltop work because the agent seeds the information. The drafts can grossly overestimate a project’s scope, requiring engineers to cut substantial portions. The tradeoff is deliberate: reviewing and trimming an existing draft can be easier than creating every project primitive from scratch. Work then continues through Slack and Linear toward GitHub pull requests.

6:316:35
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

6:31 · section reference included

The MCP gateway teaches agents where to look

The resulting project documents are useful beyond WorkOS’s own coding agent. Engineers can point Devin at the same tickets and documentation, or let a local coding harness retrieve the material through MCP. Security colleagues can also join the project channels and weigh in. The planning work remains useful even when a different agent performs implementation.

Source frame: The MCP gateway teaches agents where to lookOpen full source frame
Source frame: The MCP gateway teaches agents where to look

WorkOS calls its internal MCP gateway a “context engine.” Connecting tools is only part of its job. It also builds system prompts and context that explain when to use a tool, how to navigate it, and how WorkOS organizes information inside it. Those descriptions give an agent a starting map rather than merely a list of available operations.

Snowflake makes the mechanism concrete. It is WorkOS’s main data lake, with semantic tables describing product utilization and customer conversations. The MCP tool description can list those tables, explain their contents, and direct the agent to query the appropriate tables for a particular type of question. The query still has to be written; the gateway supplies the organizational knowledge needed to choose where to write it.

How does one gateway serve both software implementation and internal analysis? The diagram shows the shared connection: multiple agent-facing workflows use the same tool access and navigation guidance. WorkOS opened the MCP server to Slack queries for data and customer analysis, then began building other internal tools on it. That reuse is why Cooke recommends investing early in a gateway that explains both the tools and the company’s information organization.

One context engine, several uses

Coding workflowsConsumers — Horizon and local coding harnesses use organizational tools and documentation.
Slack analysisConsumers — People query data and customer information through Slack.
Internal MCP gatewayTool connections, system prompts, and guidance on where information lives.
SnowflakeInternal systems — Semantic tables for product utilization and customer conversations.
Project documentationInternal systems — Tickets and supporting documents provide implementation context.
The gateway combines access to internal systems with instructions about their contents and use. Coding and analysis workflows can reuse that knowledge.
Read the diagram as text
  • Coding workflows. Consumers — Horizon and local coding harnesses use organizational tools and documentation.
  • Slack analysis. Consumers — People query data and customer information through Slack.
  • Internal MCP gateway. Tool connections, system prompts, and guidance on where information lives.
  • Snowflake. Internal systems — Semantic tables for product utilization and customer conversations.
  • Project documentation. Internal systems — Tickets and supporting documents provide implementation context.
  • Coding workflows → Internal MCP gateway: Retrieve context and use tools.
  • Slack analysis → Internal MCP gateway: Query through Slack.
  • Internal MCP gateway → Snowflake: Describe tables and guide queries.
  • Internal MCP gateway → Project documentation: Expose documentation through MCP.
11:0311:05
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

11:03 · section reference included

Extend the process to triage, then improve its infrastructure

The same event-driven approach extends beyond planned features:

  • Bug requests: TARS listens through webhooks to requests arriving in Slack, takes a first pass at triage, and can implement fixes and open pull requests.
  • Customer support: Shared customer Slack channels provide support requests. TARS can inspect the code to help identify where a customer may be encountering a product problem.
Source frame: Extend the process to triage, then improve its infrastructureOpen full source frame
Source frame: Extend the process to triage, then improve its infrastructure

WorkOS is also using TARS to build its own sandbox infrastructure. The motivation for moving away from some sandbox services is deeper control over session information and the ability to move workloads among parts of its infrastructure. Owning that layer becomes relevant when the factory needs to inspect how work happens, rather than simply launch an agent and collect its output.

The next planned component is a company-wide memory layer: continually useful context about what people are working on, their teams, the products they own, and how WorkOS does its work. The intended consumers include both the factory and other AI tools. This is a proposed expansion of shared organizational context, with no completed memory implementation described in the talk.

14:1114:14
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

14:06 · section reference included

Measure delivery, reliability and the choice to use it

The closing measurement discussion returns to customer impact. Shipping faster is valuable only if the products remain dependable, and a tool that engineers voluntarily choose offers a different signal from one that merely generates activity. Cooke identifies three areas to watch:

  • Delivery and customer impact: Does the factory help useful work reach customers?
  • Reliability: Track defect rate and time to recovery to watch for instability introduced by the new workflow.
  • Voluntary adoption: Look for engineers choosing TARS and cloud sandboxes over their local harnesses. Cooke treats this as an anecdotal indication that the system helps them work.
Source frame: Measure delivery, reliability and the choice to use itOpen full source frame
Source frame: Measure delivery, reliability and the choice to use it

Infrastructure visibility is meant to feed a further improvement loop. Agents could examine sessions to find gaps in how engineers use the factory, identify mistakes that call for a new skill, and recognize skills that have become obsolete as the code changes. A skill written six months earlier may no longer fit the current code. Better code generation and better engineering practice are goals of this loop, rather than demonstrated self-improvement results.

16:1116:14
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

15:57 · section reference included

The process can advance; authorization remains unresolved

“Sandboxes are great.” Opening a pull request is useful. WorkOS’s larger aim is to encode the engineering practices that carry a project from intention through planning and execution. The Vaults example makes that ambition concrete: a Slack brief creates resources, an engineer refines them, a review ticket records approval, and TARS can react to that event to continue the project.

Source frame: The process can advance; authorization remains unresolvedOpen full source frame
Source frame: The process can advance; authorization remains unresolved

Cooke ends with an unresolved question: authorization. WorkOS has not yet figured out how it should handle authorization for this factory, and he asks other builders how they approach it. That limits what the workflow demonstrates. Approval events can coordinate when work advances, but the talk does not supply a settled model for who may authorize the agent’s actions across its connected systems.

18:0718:09
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

18:02 · section reference included

Read the complete timestamped transcript

15 slide groups · 2 demo milestones. Extracted from the recording; expand builds to follow changes. Timestamps are approximate. 1 additional group was omitted from this pass.

  1. 0:12

    Well, thank you for joining

  2. 0:14

    the final day of the conference here. I

  3. 0:15

    know it's been a long week.

  4. 0:18

    But I'm excited to talk about a topic

  5. 0:21

    here that is very near and dear to me.

  6. No, That's Not a Software Factory

    Ryan Cooke of WorkOS introduces his talk on software factories at AI Engineer World's Fair 2026.

    Text in image
    No, That's Not a Software Factory
    
    WorkOS
    SOFTWARE FACTORIES · AIEW 2026
    
    Ryan Cooke · Product Engineering
    AI Engineer World's Fair 2026
    
    Interface text:
    1 / 16
  7. 0:24

    Software factories.

  8. The Standard Playbook

    Cooke describes a setup where code and an AI agent share a sandbox: a prompt generates a PR, which is then merged. Ramp, Spotify, Stripe and WorkOS have each built a version.

    Text in image
    The Standard Playbook
    
    Sandbox → Model → Repo → PR → Merge
    
    Ramp built Inspect · Spotify built Honk · Stripe built Minions · We built Horizon
    
    You've seen this. You may have built this. So have we.
    
    WorkOS
    
    2 / 16
  9. 0:26

    Um

  10. 0:27

    You this is probably not a new concept

  11. 0:30

    to any of you. I'm guessing if you're

  12. 0:31

    all here, you're very familiar with

  13. 0:33

    software factories. You know, Ramp

  14. 0:35

    blogged about their inspects

  15. 0:38

    several months ago. I think maybe

  16. 0:40

    December last year. I forget exactly

  17. 0:41

    when. It's been a little while. And that

  18. 0:43

    really kind of like excited the entire

  19. 0:45

    industry of thinking like, oh, we can

  20. 0:47

    actually build software very differently

  21. 0:49

    now that AI is extremely capable of

  22. 0:52

    writing code. Um a lot of other

  23. 0:55

    companies have followed suit. Um and

  24. 0:58

    there's kind of like a standard set up

  25. 1:00

    here. Uh you have a sandbox that you put

  26. 1:02

    your code into. Um you put a an AI agent

  27. 1:06

    in there. Maybe a Claude code section or

  28. 1:09

    an open code.

  29. 1:11

    Um and with a prompt, it generates a PR

  30. 1:13

    and you merge it.

  31. 1:15

    Um

  32. 1:15

    You might be building this already

  33. 1:17

    [clears throat] yourself.

  34. 1:18

    We have taken a slightly different

  35. 1:21

    approach at WorkOS.

  36. 1:23

    Um and the motivation for what we are

  37. The Industry Is Measuring Output

    Company PR counts and AI shares measure production. Cooke argues these output metrics can obscure whether the systems actually drive outcomes.

    Text in image
    The Industry Is Measuring Output
    
    >50% — Ramp
    of merged PRs from AI
    
    1,500+ — Spotify
    AI-generated PRs merged
    
    1K+ — Stripe
    merged PRs per week
    
    13% — Abnormal
    of merged PRs from AI
    
    5% — Coinbase
    of merged PRs from AI
    
    These are production rates. Not value-delivered rates.
    
    WorkOS
    
    Interface text:
    3 / 16
  38. 1:26

    building is that we see a lot of the

  39. 1:30

    kind of success metrics um really

  40. 1:33

    focusing on output, right? Like you'll

  41. 1:35

    see posts on X and blogs

  42. 1:38

    talking about the percentage of PRs or

  43. 1:41

    the number of pull requests or how much

  44. 1:43

    code uh is being generated by AI

  45. 1:47

    moving into production. Um and this is

  46. 1:49

    just really output metrics that

  47. 1:53

    um

  48. 1:53

    you know, this can actually disguise how

  49. 1:56

    well these systems are working.

  50. 1:59

    Percentage of PRs or number of PRs

  51. 2:02

    may be lying in overall increase in PRs.

  52. 2:04

    It's very hard to distinguish

  53. 2:06

    whether the output is actually driving

  54. 2:09

    outcomes.

  55. Output vs. Outcomes

    Cooke argues that PR counts and generated code can obscure whether a software factory creates value. He instead tracks outcomes such as feature delivery time, defect rate at ship, and time to resolve issues.

    Text in image
    Output vs. Outcomes
    The industry is optimizing for the wrong variable
    
    Output metrics
    — PRs merged / week
    — % of code written by AI
    — Lines of code generated
    — PR velocity
    
    vs.
    
    Outcome metrics
    + Feature delivery time
    + Defect rate at ship
    + Engineer leverage
    + Time to resolve issues
    
    “More code, faster, is not the same as more value, faster.”
    
    WorkOS
    
    Interface text:
    5 / 16
  56. 2:11

    And so that's kind of where we focus our

  57. 2:14

    efforts when we're thinking about a

  58. 2:15

    software factory. It's like if we're

  59. 2:17

    going to go put engineering time into

  60. 2:20

    building this level of automations and

  61. 2:22

    there's a

  62. 2:23

    bit of work that needs to go into this.

  63. 2:25

    Full-time teams dedicated to this.

  64. 2:27

    How do we want to think about the

  65. 2:30

    success of this and whether this is

  66. 2:32

    actually driving value for our

  67. 2:33

    organization, our engineering

  68. 2:35

    organization?

  69. 2:36

    And so we measure instead of just code

  70. 2:40

    output, we're looking at outcome

  71. 2:42

    metrics.

  72. 2:44

    And that is really about like are we

  73. 2:46

    accelerating our ability to deliver

  74. 2:48

    features?

  75. 2:50

    We think that the dream of the software

  76. 2:51

    factory is that it gives each of our

  77. 2:54

    engineers a small engineering team for

  78. 2:56

    themselves. And so the consequence of

  79. 2:58

    that really needs to be that we're

  80. 3:00

    building more and we're shipping more

  81. 3:02

    and that as we embark on complex

  82. 3:04

    features, those can get built a lot more

  83. 3:07

    a lot more quickly.

  84. 3:11

    So what does this actually look like?

  85. Sandbox + Model + Repo

    WorkOS found its initial sandbox and model setup produced outcomes indistinguishable from engineers using coding tools on their laptops. The team began considering how to embed engineering processes in the factory.

    Text in image
    Sandbox + Model + Repo
    = Necessary. Incomplete.
    
    Every serious team has checked this box. So what's left?
    
    WorkOS
    
    Interface text:
    5 / 16
  86. 3:12

    Well,

  87. 3:14

    we kind of started with the same thing

  88. 3:16

    you've seen in other other

  89. 3:19

    factories.

  90. 3:21

    We start with a sandbox we built on top

  91. 3:22

    of Cloudflare. We put an open code model

  92. 3:26

    router in there. We're feeding it

  93. 3:27

    prompts.

  94. 3:29

    Um,

  95. 3:29

    and we kind of very quickly kind of ran

  96. 3:32

    into this situation where this wasn't

  97. 3:34

    driving more outcomes. This was not an

  98. 3:37

    incremental increase or an exponential

  99. 3:39

    increase over engineers just driving

  100. 3:41

    cloud code on their laptops. It was

  101. 3:43

    actually pretty indistinguishable for

  102. 3:45

    us.

  103. What We Built: Horizon / TARS

    TARS embeds the coding agent in tools such as Slack, Linear and GitHub. Horizon orchestrates the infrastructure, including warm-pooled sandboxes and an event loop from Linear to the repo and back.

    Text in image
    What We Built
    Horizon / TARS
    
    TARS — The Product
    What users interact with. Slack, Linear, GitHub, web UI. Receives instructions, opens PRs, reports status.
    
    Horizon — The Infrastructure
    Cloudflare Containers, webhook-driven orchestration, OpenCode runtime. Warm-pooled sandboxes. Event loop from Linear to repo and back.
    
    WorkOS
    6 / 16
  104. 3:47

    And so we really kind of started to

  105. 3:48

    think about, well,

  106. 3:49

    how can we embed our engineering

  107. 3:52

    processes into the factory itself? It's

  108. 3:56

    not sufficient that the factory is

  109. 3:58

    producing code. We actually want it to

  110. 4:00

    take a lot of the other work that our

  111. 4:02

    engineers do to produce products and

  112. 4:05

    automate that as well.

  113. 4:08

    So, we kind of split this into two

  114. 4:09

    parts.

  115. 4:10

    One is we have the system we call TARS.

  116. 4:13

    This is a way for users to interact with

  117. 4:18

    the coding agent. And it is embedded

  118. 4:21

    into the tools that we use. So, not just

  119. 4:24

    Slack, but also Linear and GitHub.

  120. 4:27

    We subscribe to webhooks through TARS so

  121. 4:29

    that TARS can actually track the

  122. 4:31

    progress of projects

  123. 4:34

    in addition to generating the code

  124. 4:36

    outputs.

  125. 4:38

    And then we built a separate system

  126. 4:39

    called Horizon.

  127. 4:42

    And this is the infrastructure

  128. 4:43

    orchestration layer. This is a lot more

  129. 4:45

    similar to

  130. 4:47

    Inspects and Minions and and some of the

  131. 4:49

    other systems that other companies have

  132. 4:51

    built.

  133. 4:52

    But, it sits in front of an MCP gateway.

  134. 4:56

    And I'm going to talk a little bit more

  135. 4:57

    about why that MCP gateway has been

  136. 5:01

    really transformational for us.

  137. Infrastructure is only half the story

    TARS uses ticket-completion webhooks to pick up the next dependent Linear ticket. It can also reevaluate the project for missing tickets as work progresses.

    Text in image
    Infrastructure is only half the story.
    
    Webhooks, shared MCP surfaces, and reproducible sandboxes plug agents into the systems and processes we already run.
    
    We built an agent that participates in our engineering process
    
    WorkOS
    
    Interface text:
    7 / 16
  138. 5:07

    So, by

  139. 5:08

    feeding our webhooks, activities that

  140. 5:12

    are happening in other uh source code

  141. 5:14

    systems and project tracking systems,

  142. 5:17

    we're starting to get to that level of

  143. 5:18

    autonomy where

  144. 5:20

    our

  145. 5:21

    factory is performing product

  146. 5:23

    engineering work, not just code work.

  147. 5:25

    So, what's an example of this?

  148. 5:27

    In Linear, we can define tickets that

  149. 5:30

    have dependencies. So, one ticket blocks

  150. 5:32

    another ticket. Pretty common for, you

  151. 5:34

    know, breaking down uh large units of

  152. 5:36

    work into smaller ones.

  153. 5:38

    Because

  154. 5:40

    uh TARS is getting webhooks on ticket

  155. 5:42

    completion, it can automatically pick up

  156. 5:44

    the next ticket in a cycle. And so, we

  157. 5:47

    can do through our planning process

  158. 5:50

    construct like a map of how this plan we

  159. 5:53

    think this plan is going to get executed

  160. 5:55

    and TARS can start to execute on that

  161. 5:57

    autonomously. The other thing that we

  162. 5:59

    have is in between those steps when a

  163. 6:01

    ticket is completed, we can ask TARS

  164. 6:04

    "Can you reevaluate the linear project

  165. 6:06

    and let me know if it's missing now

  166. 6:07

    tickets?" Because as you do work, you're

  167. 6:10

    learning about where the gaps in your

  168. 6:12

    plan. And we want to continuously keep

  169. 6:16

    our our plan fresh by using the agent

  170. 6:19

    itself. Because the agent is determining

  171. 6:22

    that there may be missing pieces to what

  172. 6:25

    we initially planned for the project and

  173. 6:27

    the goal that we have in mind.

  174. The Blueprint

    WorkOS gives agents its Hilltop documents to break projects into units of work. Humans weigh trade-offs, while dependency chains highlight blockers and branches.

    Text in image
    The Blueprint
    
    WorkOS engineering culture, made executable
    
    Hilltop Documents
    Write the narrative before writing code.
    
    Small Teams
    Humans weigh trade-offs
    
    Dependency Chains
    Plans highlight blockers and branches
    
    Review-First Loop
    Confident AI reviews are easily merged
    
    WorkOS
    8 / 16
  175. 6:31

    So, we run this product engineering

  176. 6:33

    culture at WorkOS. This is where

  177. 6:35

    engineers are responsible for a lot of

  178. 6:37

    the product functions. We don't have

  179. 6:39

    product managers on teams today.

  180. 6:41

    Um and one of the rituals as part of

  181. 6:45

    this product engineering process is we

  182. 6:46

    create a hilltop document. It's a PRD

  183. 6:49

    and it is intended to

  184. 6:52

    both define what is the purpose of this

  185. 6:54

    project, but also incorporate

  186. 6:58

    um what are customers talking about?

  187. 7:00

    Like where are we seeing the need for

  188. 7:01

    this unit of work? Uh it looks at

  189. 7:04

    competitive analysis. Like are there

  190. 7:06

    similar products out in the market today

  191. 7:08

    that we can draw inspiration from? We

  192. 7:10

    start to bring design early design

  193. 7:12

    screens into this.

  194. 7:13

    Um and we outline like what are the

  195. 7:15

    major milestones. And so, by kind of

  196. 7:18

    consolidating and canonicalizing this

  197. 7:21

    information into a document, this is

  198. 7:23

    something our product engineers have

  199. 7:24

    been doing uh throughout the entire uh

  200. 7:27

    company.

  201. 7:28

    Um

  202. 7:29

    now we can ask give this resource to an

  203. 7:31

    agent and an agent can break this into

  204. 7:33

    units of work.

  205. 7:34

    Uh and so, this has been a really uh

  206. 7:37

    powerful way for us to take existing

  207. 7:39

    processes

  208. 7:40

    and encode them into the factory

  209. 7:42

    themselves. Like I mentioned that it's

  210. 7:45

    listening for web hooks. I'll show an

  211. 7:46

    example of what this looks like, but it

  212. 7:48

    it can see that the hilltop document

  213. 7:51

    through linear tickets has been reviewed

  214. 7:54

    and approved and by virtue of it being

  215. 7:57

    approved can start work on this project

  216. 7:59

    automatically. So we don't need a human

  217. 8:01

    to be shepherding this agent through

  218. 8:03

    every single step of the life cycle.

  219. The PM Agent

    The PM agent turns a Hilltop document into dependent issues. Humans add context and review pull requests; after a merge, Horizon unblocks the next issue.

    Text in image
    The PM Agent
    Encoding the planning process
    
    01 PM agent reads the Hilltop doc
    Divides project into issues with explicit dependency chains
    
    02 Human reviews + adds context
    Issues reflect real decisions; context injected for implementation
    
    03 Implementation agent picks up issues
    Works in order as issues unblock
    
    04 PR opened, human reviews
    Quality gate: correct diff, tests pass, lint clean
    
    05 After merge: Horizon auto-unblocks
    Dependency graph evaluated; next issue starts immediately
    
    WorkOS
    
    Interface text:
    9 / 16
  220. 8:09

    So we created an agent specifically for

  221. 8:12

    this part of the process. We call it the

  222. 8:13

    PM.

  223. 8:14

    And it is doing the first draft of the

  224. 8:17

    hilltop based on the brief specification

  225. 8:20

    that we give it.

  226. 8:21

    It's adding context to that in addition

  227. 8:25

    to reading the human reviews and then it

  228. 8:27

    picks up the implementation and breaking

  229. 8:29

    that into tickets.

  230. 8:31

    And there's an opportunity for humans to

  231. 8:33

    stay in the loop for each part of this

  232. 8:35

    process. I mean it's very common for a

  233. 8:38

    human to intervene or comment on a

  234. 8:39

    ticket that's generated by AI, give it

  235. 8:41

    further guidance or refinements.

  236. 8:44

    Um but it's really about that like cold

  237. 8:46

    start problem where we can kind of get

  238. 8:49

    over the hump of creating all these

  239. 8:50

    different resources. Okay, so what does

  240. 8:52

    this actually look like?

  241. 8:55

    So here's a project I kicked off last

  242. 8:57

    month two months ago.

  243. 8:59

    Um we're adding a new API to products I

  244. 9:01

    lead called Vaults.

  245. 9:03

    And with a command here in

  246. 9:07

    um

  247. 9:08

    in Slack

  248. 9:09

    I can kick off this project with a

  249. 9:11

    simple description, usually a few

  250. 9:12

    sentences of what I'm trying to

  251. 9:14

    accomplish.

  252. 9:16

    Tarsin goes in and creates all these

  253. 9:18

    resources for me. I don't need to go and

  254. 9:20

    create the project in linear. I don't

  255. 9:21

    need to create a draft of the notion

  256. 9:23

    document.

  257. 9:25

    Um

  258. 9:25

    all of the decision logs and the open

  259. 9:28

    questions.

  260. 9:29

    Um Tars is creating a first pass at

  261. 9:31

    that. And so this then gives me an easy

  262. 9:34

    framework for me to step into as the

  263. 9:37

    lead product engineer and start giving

  264. 9:39

    more specification, rounding out areas

  265. 9:42

    that aren't well defined with knowledge

  266. 9:45

    that I had know about what we're trying

  267. 9:46

    to accomplish with the project, and then

  268. 9:49

    hand it back to Tars uh for execution.

  269. 9:53

    So, here's an example of uh the project.

  270. Project issue list

    The project groups work by status, with Hilltop Review still in the backlog. Cooke says Tars will move to the next project stage after the review ticket is completed.

    Text in image
    Vault Internal KEK API
    
    In Progress 1
    PVIT-364 Project Channel — May 8
    
    Backlog 13
    PVIT-352 Close the loop with customers — May 8
    PVIT-353 Product Demo — May 8
    PVIT-354 Changelog & Blog — May 8
    PVIT-358 Update SDKs — May 8
    PVIT-361 Product Tier — May 8
    PVIT-363 Write the hilltop doc — May 8
    PVIT-355 Enablement — May 8
    PVIT-359 Infra self assessment — May 8
    PVIT-356 Testing — May 8
    PVIT-357 Observability — May 8
    PVIT-362 Security self assessment — May 8
    PVIT-351 Announce in #all-shipped — May 8
    PVIT-360 Hilltop Review — May 8
    
    Done 2
    PVIT-366 Write the Brief — May 8
    PVIT-365 Brief review — May 8
    
    Interface text:
    WorkOS
    Pulse 99+
    Inbox 77
    My issues
    Reviews 5
    Drafts 3
    Workspace
    Initiatives
    Projects
    Views
    More
    Favorites
    Vault
    All issues Radar
    Your teams
    Security
    PVIT
    Issues
    Projects
    Views
    Radar
    Triage 1
    Issues
    Projects
    Views
    Infrastructure
    Foundation
    Triage
    Issues
    Overview
    Activity
    Issues
    Search PVIT for KMS keys ticket
    Ask Linear
    https://linear.app/workos/issue/PVIT-360/hilltop-review

    9:54Demo milestone

  271. 9:57

    Um and it's like I said, it sets up

  272. 9:58

    these first

  273. Review issue

    The backlog ticket calls for stakeholder review, a recording, and a security review when the self-assessment is medium or higher. Cooke says Tars will continue implementation once the ticket is complete.

    Text in image
    Hilltop Review
    
    • Present with relevant stakeholders.
    • Be sure to record and share.
    • If security self-assessment was medium or higher then ensure there is a Security Review
    • Post to Hilltop Reviews Log - this will auto update the #epd-hilltop-updates
    
    Add sub-issues
    
    Activity
    service created the issue · 8w ago
    ryancooke changed team from Security to PVIT · 8w ago
    ryancooke moved from Triage to Backlog · 8w ago
    
    Properties
    Backlog
    Set priority
    Assign
    
    Labels
    Add label
    
    Project
    Vault Internal KEK API
    Shaping & Hilltop
    
    Suggestions
    SEC
    Security
    
    Relations
    Related
    Write the hilltop doc
    Security self assessment
    
    Interface text:
    Vault Internal KEK API › PVIT-360 Hilltop Review
    14 / 16
    Subscribe
    Leave a comment...
    WorkOS
    Pulse 99+
    Inbox 77
    My issues
    Reviews 5
    Drafts 3
    Workspace
    Initiatives
    Projects
    Views
    More
    Favorites
    Vault
    All issues Radar
    Your teams
    Security
    PVIT
    Issues
    Projects
    Views
    Radar
    Triage 1
    Issues
    Projects
    Views
    Infrastructure
    Foundation
    Triage
    Issues
    Projects
    Search PVIT for KMS keys ticket
    Ask Linear

    9:59Demo milestone

  274. 10:00

    milestones around our product

  275. 10:02

    engineering process. So, we haven't done

  276. 10:05

    the hilltop review yet here. When that's

  277. 10:07

    done, we'll uh

  278. 10:09

    we'll we'll mark this ticket as complete

  279. 10:12

    and Tars will pick that up and move on

  280. 10:14

    to the next stage of project

  281. 10:15

    implementation.

  282. 10:17

    So,

  283. 10:18

    what we found is like a lot of

  284. 10:21

    teams are now doing more project brief

  285. 10:24

    and hilltop work because our agent can

  286. 10:27

    seed all that information. It's that

  287. 10:29

    blank page problem with writing. If you

  288. 10:32

    can come into a document that already

  289. 10:33

    has information, and you know, these

  290. 10:35

    agents aren't perfect. There are times

  291. 10:37

    where it grossly overestimates what

  292. 10:40

    we're trying to accomplish with this

  293. 10:42

    project, and we have to cut out a lot of

  294. 10:43

    the scope that it comes up with. But,

  295. 10:45

    that's fine. That's a lot simpler for an

  296. 10:47

    engineer to add input into into rather

  297. 10:51

    than them spending time to set up all

  298. 10:52

    these primitives themselves.

  299. 10:54

    And then we can continue to drive this

  300. 10:56

    work, you know, through Slack, through

  301. 10:58

    Linear,

  302. 10:59

    um and ultimately uh results in PRs in

  303. 11:02

    GitHub.

  304. 11:03

    The other thing that this lets us do is

  305. 11:05

    we don't necessarily always need to use

  306. 11:07

    our coding agent to implement uh pieces

  307. 11:11

    of work. Uh Devin is very popular. We

  308. 11:13

    have a lot of folks that really like

  309. 11:14

    using Devin. They can point Devin to

  310. 11:17

    these tickets and the same documentation

  311. 11:20

    to give Devin the context it needs to go

  312. 11:22

    and implement different parts of the

  313. 11:23

    work. Uh same with the local cloud code

  314. 11:26

    if you're just using Opus in a local

  315. 11:28

    harness.

  316. 11:29

    Um it can grab through MCP all of these

  317. 11:33

    uh

  318. 11:34

    all of these pieces of documentation and

  319. 11:38

    use that as context for its work.

  320. 11:41

    And then, of course, we have people that

  321. 11:43

    collaborate in these project channels as

  322. 11:44

    well. You'll notice our security team

  323. 11:46

    will come in and look take a look at new

  324. 11:48

    projects, weigh in on the security

  325. 11:50

    implications, and so forth.

  326. The Context Engine

    WorkOS’s MCP gateway connects internal systems and guides agents through their conventions. Its tool descriptions, for example, explain which Snowflake tables to query.

    Text in image
    The Context Engine
    
    The MCP server isn't data plumbing. It's culture encoding.
    
    Standard tool shapes
    Consistent naming, opinionated schemas — not just data sources but how WorkOS engineers navigate this codebase
    
    Paved paths built in
    Datadog logs, Sentry errors, Slack context — plus the patterns for how to use them. AGENTS.md and CLAUDE.md as first-class artifacts
    
    Convention over exploration
    "Agents can figure it out with minimal context, but it's slow. They spend tokens rediscovering conventions. We keep tightening that loop."
    
    Interface text:
    WorkOS
    10 / 16
  327. 11:59

    So, I alluded to we we kind of early on

  328. 12:03

    in the the development of our factory is

  329. 12:05

    created our own MCP gateway.

  330. 12:07

    Um, we call it our context engine.

  331. 12:10

    Um, this connects into all of our

  332. 12:11

    internal systems, but it also builds

  333. 12:15

    system prompts and context around what

  334. 12:18

    how to navigate these tools and when to

  335. 12:20

    use these tools.

  336. 12:21

    So, it is connected into Snowflake,

  337. 12:25

    which is our main data lake. We have

  338. 12:28

    semantic tables that we've built in

  339. 12:30

    Snowflake that describe product

  340. 12:32

    utilization or customer conversations.

  341. 12:35

    And then, we can provide an agent

  342. 12:38

    through our MCP server in the tool

  343. 12:40

    description

  344. 12:42

    list of here are the tables, this is the

  345. 12:44

    content they

  346. 12:45

    contain. If you're trying to answer

  347. 12:47

    questions about this type of content,

  348. 12:50

    write a query for these tables. And so,

  349. 12:52

    it gives us a little bit of orientation

  350. 12:54

    to an agent to understand how to use how

  351. 12:57

    we use our tools, how we've organized

  352. 12:59

    linear in Snowflake, and give some

  353. 13:03

    guidance on where to find information.

  354. 13:06

    What has been really

  355. 13:08

    surprising about this is we actually now

  356. 13:10

    use this MCP server across a lot of

  357. 13:12

    other different internal tools.

  358. 13:15

    We open it up for people to query

  359. 13:17

    directly from Slack

  360. 13:19

    to do data or customer analysis. And so,

  361. 13:21

    while we initially kind of envisioned

  362. 13:23

    that this would just be a way to connect

  363. 13:25

    our agent or coding agent to all of our

  364. 13:27

    systems. Uh this has been an incredible

  365. 13:30

    piece of leverage for a lot of our

  366. 13:32

    internal teams, and we're building a lot

  367. 13:34

    of other tools on top of this MCP

  368. 13:37

    gateway. So, if you're just getting

  369. 13:38

    started with thinking about a software

  370. 13:40

    factory, it's well worth your time to

  371. 13:43

    invest in an internal MCP gateway server

  372. 13:46

    that both connects all your tools,

  373. 13:49

    has descriptions that can tell the agent

  374. 13:51

    how to use those tools and how you

  375. 13:53

    specifically organize the information in

  376. 13:55

    them, and I think you'll find that that

  377. 13:58

    ends up being useful in a lot of other

  378. 14:00

    use cases.

  379. Infrastructure Alone Doesn't Produce This

    TARS opens PRs for visual bugs reported in Slack and triages customer messages before a human looks. WorkOS also uses a PM agent to build features and is rebuilding its sandbox runtime with both agents.

    Text in image
    Infrastructure alone doesn't produce this.
    Encoding how we build software did.
    
    Bug fixes from Slack
    TARS monitors #ui-nits — when someone reports a visual bug, it opens a PR automatically. No ticket, no assignment.
    
    Customer triage at scale
    Incoming messages in customer Slack channels get a first-pass triage through TARS before a human looks.
    
    Major features shipped
    Released significant product features using the PM agent to bootstrap engineering — Hilltop in, implementation running.
    
    The factory rebuilds itself
    We are rebuilding the sandbox runtime with TARS and the PM agent. The factory is now building its own infrastructure.
    
    WorkOS
    
    Interface text:
    11 / 16
  380. 14:06

    Like I mentioned, we try to automate

  381. 14:09

    other parts of our software development.

  382. 14:11

    Um we have like bug

  383. 14:14

    bug requests that come in through Slack.

  384. 14:17

    Uh so, TARS through webhooks can listen

  385. 14:18

    to those and take a first pass at

  386. 14:21

    triaging and implementing opening PRs to

  387. 14:24

    fix bugs.

  388. 14:25

    Uh we have a lot of our customers uh in

  389. 14:28

    shared channels in Slack, as well.

  390. 14:30

    Uh we found TARS to be pretty useful to

  391. 14:33

    uh triage

  392. 14:34

    support requests that we're getting

  393. 14:36

    through them, because it can look at the

  394. 14:38

    code, it can often understand like where

  395. 14:40

    the customer might be running into

  396. 14:42

    problems with our product uh from the

  397. 14:44

    code perspective.

  398. 14:46

    Um I showed you an example of how we

  399. 14:48

    kind of organize major features around

  400. 14:50

    this.

  401. 14:51

    Uh and then the last place I think is

  402. 14:53

    really exciting, we're all trying to get

  403. 14:55

    to the self-improving software, or the

  404. 14:57

    self-driving software. So, we're using

  405. 14:59

    uh TARS to actually build out our own uh

  406. 15:02

    sandbox infrastructure.

  407. 15:05

    So, we want to move off of some of the

  408. 15:07

    sandboxes as a service and own that

  409. 15:09

    infrastructure layer ourselves. Um

  410. Memory: The Next Layer

    WorkOS plans a memory layer with user, team and organization context, scoped by identity. Cooke wants that context available both in the software factory and in other AI tools.

    Text in image
    Memory: The Next Layer
    
    Learnings compound across the org — scoped by WorkOS identity, not by harness.
    
    Per-User
    What this engineer works on, their preferences, context from past sessions
    
    Per-Team
    How this team scopes work, their conventions, team-level patterns and decisions
    
    Org-Wide
    WorkOS-wide standards, golden principles, company-level judgment calls
    
    Interface text:
    WorkOS
    12 / 16
  411. 15:13

    Some of the reasons we have for that is

  412. 15:15

    we want really deep control over the

  413. 15:18

    session information, and

  414. 15:20

    uh be able to move workloads around

  415. 15:23

    different parts of our infrastructure.

  416. 15:25

    Uh so what we're building out next is

  417. 15:27

    our memory layer and we want this to be

  418. 15:29

    an evergreen context uh about what every

  419. 15:34

    person in the company is working on,

  420. 15:36

    what team do they sit in, what products

  421. 15:38

    are they responsible for, and then at an

  422. 15:40

    organization level, what is the

  423. 15:42

    semantics about Work OS and how we do

  424. 15:44

    our work. And this we want to be able to

  425. 15:46

    plug into both our software factory, but

  426. 15:49

    lift that context out of our factory and

  427. 15:51

    into our other AI tools as well.

  428. 15:57

    So, I think this is kind of our our

  429. 16:00

    major takeaway of where we've seen a lot

  430. 16:03

    of folks invest effort just around

  431. 16:05

    outputs and where we think we can

  432. 16:06

    actually get that human exponential

  433. 16:09

    value out of our factory.

  434. 16:11

    Can we be actually delivering values to

  435. 16:14

    our customers? We think a lot about

  436. 16:16

    shipping and customer impact and so we

  437. 16:18

    want to encode that into their our

  438. 16:20

    software factory itself. Um certainly

  439. 16:24

    worried about, you know, introducing

  440. 16:26

    instability into our products. So, all

  441. 16:28

    right, can we measure

  442. 16:30

    uh defect rate and other

  443. 16:32

    um

  444. 16:33

    you know, time to recovery uh metrics?

  445. 16:36

    Um and then a lot of anecdotal, like we

  446. 16:38

    want to see our engineers using TARS as

  447. 16:42

    a sign that this is giving them value

  448. 16:44

    and accelerating their work. We want to

  449. 16:47

    see that they're moving off electing to

  450. 16:48

    move out of their local harness and into

  451. 16:51

    a cloud sandbox.

  452. Engineering Process as the Blueprint

    Cooke describes using agents to examine sessions for mistakes and obsolete skills, feeding those findings into a factory designed to improve with each run.

    Text in image
    "Every run ships work and produces the next set of fixes: better verification, clearer guidelines, tighter paved paths, so the platform learns faster than the failures repeat."
    
    Your product engineering process
    is the blueprint for every agent workflow you build.
    
    Interface text:
    WorkOS
    14 / 16
  453. 16:58

    And then the real goal is we can use

  454. 17:00

    this information because we own the

  455. 17:01

    infrastructure, we can see what's

  456. 17:03

    happening in the infrastructure. We use

  457. 17:05

    this information to self-improve the

  458. 17:06

    factory.

  459. 17:08

    We want it to learn, we want it to get

  460. 17:09

    better about how it writes code.

  461. 17:13

    We want to see where um our engineers

  462. 17:17

    can improve their skills. There's so

  463. 17:19

    much moving quickly in AI. It's kind of

  464. 17:22

    like a constant race to keep up with the

  465. 17:24

    latest

  466. 17:25

    um

  467. 17:26

    you know, tips and techniques.

  468. 17:28

    We can actually point agents at sessions

  469. 17:30

    and see where are the gaps and how

  470. 17:32

    people are using

  471. 17:34

    our factory. Where is there a skill that

  472. 17:36

    we should be building because the agent

  473. 17:38

    made a mistake. What skills are no

  474. 17:40

    longer relevant? Maybe the code has

  475. 17:43

    changed to a degree where a skill that

  476. 17:45

    we wrote six months ago is now obsolete.

  477. 17:48

    So, that continues verification.

  478. 17:50

    Semi-online

  479. 17:52

    is where we kind of see a big advantage

  480. 17:54

    to actually owning all the

  481. 17:56

    infrastructure ourselves.

  482. A Software Factory Is

    A sandbox, model, and repo are necessary foundations. Cooke argues that teams must also encode their planning, feature scoping, verification, and engineering conventions in automation.

    Text in image
    A Software Factory Is:
    
    Sandbox + Model + Repo
    necessary condition
    
    How you plan work
    Hilltop docs · issues · dependency chains
    
    How you scope features
    Small teams · explicit acceptance criteria
    
    How you verify
    Enforced gates, not prose instructions
    
    Your conventions
    Judgment calls that define your engineering culture
    
    The unlock isn't infrastructure. It's institutional knowledge, made executable.
    
    WorkOS
    
    Interface text:
    15 / 16
  483. 18:02

    So,

  484. 18:04

    say it for the third time, it's worth

  485. 18:05

    repeating.

  486. 18:07

    Sandboxes are great.

  487. 18:09

    It's cool to run an agent and have it

  488. 18:10

    open a PR.

  489. 18:12

    We really think about our software

  490. 18:13

    engineering practices and processes and

  491. 18:15

    we want to encode those in automation.

  492. Ryan Cooke — WorkOS

    WorkOS closing slide naming Ryan Cooke, Product Engineering, and AI Engineer World's Fair 2026.

    Text in image
    WorkOS
    
    Ryan Cooke
    Product Engineering · WorkOS
    AI Engineer World's Fair · 2026
    
    Interface text:
    16 / 16
  493. 18:21

    I'm Ryan. I'm one of the engineers here

  494. 18:22

    at WorkOS. We have a booth right

  495. 18:24

    opposite the speaking area. If you are

  496. 18:26

    building software factories, I would

  497. 18:27

    love to talk to you. I would really love

  498. 18:29

    to hear how you're handling

  499. 18:30

    authorization. This is something I don't

  500. 18:32

    talk about because we haven't figured it

  501. 18:34

    out yet for ourselves, but maybe you all

  502. 18:37

    you all have some insights. So, please

  503. 18:38

    come by the booth, talk to me, would

  504. 18:40

    love to chat. Thank you.

  505. 18:55

    >> [music]