Notes on the software factory
From Leadership in Tech · subscribed via aiste.ulozaite@gmail.com · original ↗ · unsubscribe
AI coding agents work best when given real tools like browser access, deployment pipelines, and test runners. Adding a critic agent to review work improves quality, and pairing that with more thinking time on hard problems helps further. Memory and long-running workflows are still weak points. The whole stack, from cloud infrastructure to IDEs, needs to be rebuilt around agents rather than adapted from human-centered tools.
| Notes on the Software Factory | Benedict Brady |
{“@context”:”https://schema.org”,”@type”:”BlogPosting”,”headline”:”Notes on the Software Factory”,”description”:”Notes from a talk on vibe coding: giving agents tools, speeding up the bottleneck, critics, memory, skills, integration tests, and the agent native stack.”,”datePublished”:”2026-07-08”,”author”:{“@type”:”Person”,”name”:”Benedict Brady”,”url”:”https://benedict.dev”},”publisher”:{“@type”:”Person”,”name”:”Benedict Brady”},”mainEntityOfPage”:{“@type”:”WebPage”,”@id”:”https://benedict.dev/software-factory”}}
Notes on the Software Factory
These notes are adapted from a talk I gave at the Ellipsis Labs office about vibe coding and the software factory.
July 8, 2026
Give the Model Tools
The number one piece of advice is always the same: give the models tools to check their own work. That said, they are becoming much better at this naturally.
To the extent you can, you want to do things like this:
- Give the agent CLI access to deployments so that it can deploy and check for bugs
- Give the agent browser access for frontend (I think this comes out of the box now)
- Give the agent powerful machines to run tests/simulations etc. (I use Modal for this)
- Give the agent a Solana wallet with real money in it
Agent + Tools
AgentDeploy CLIship and check for bugsBrowsersee the frontendBig Computetests and sims on ModalSolana Walletyes, with real money
Give the agent the same toolkit a software engineer has
The goal is to complete the longest-running tasks, and this often requires them to have the tools that software developers have. Often there is one person on the team who sets this up correctly and can export their setup to the rest of the team.
There is a broader notion here that the interesting businesses to build are in the bottleneck space. Build a lab where you can parallelize experiments. Buy a lot of robotic arms.
Speed Up the Bottleneck
Identify what part of the workflow is slow and try to make it faster. This is a top annoyance for me. I often use loops for this purpose. I’ll kick off a monitoring loop that checks in on the current run and makes sure things are going smoothly.
Make Thinking the Bottleneck
BadBetterBestThinkingEverything else
Everything around the thinking step should be fast and parallelizable
Add a Critic
An idea that I have been partial to for a while is that the agent loop needs a critic to validate the result. Often this task is undertaken by the human monitoring the loop, but there are ideas around putting an agent in the loop as the critic. The critic’s clean context allows it to look more objectively at the work being done and propose both meta improvements and new directions.
The Critic Loop
Critic Agentvalidate the result,not just the diffimprove theprocess itself
A clean context watches from a distance and improves the process
The common riff on this idea is /goal. Goal is used to define a rubric in text space. Then the model iterates in a loop until the goal is deemed complete. This solves some of the problems around long-horizon coherency.
Quality Scales with Thinking Effort
There is now pretty robust data that benchmark scores scale with thinking time. This means you should really toggle the thinking up for harder problems.
Measure Twice, Cut Once
The common conventional wisdom used to be to add a planning step explicitly. A lot of the mechanics around how planning was implemented were related to context window limitations that have started to ease. Nowadays I would consider just skipping plan mode but keeping the principle in mind.
Plan Mode
Plan firstplanone clean buildDive in…
Keep the principle even if you skip the mode
Workflows and Subagents
The models have become quite smart orchestrators of the lower-level models. This means that we are now able to speed up work a lot by having one higher-level model manage a bunch of lower ones. This doesn’t impact the overall model intelligence much, but it does impact the speed at which tasks get completed. Dynamic workflows are a riff on subagents where the task list is specified as a DAG. This seems to be quite elegant and flexible but consumes a ton of tokens.
Orchestration
Big Modelplans, delegates, reviewssmall modelsmall modelsmall modelsmall modelsmall model
One big model managing many small ones
Memory Is Weird but Improving
The ideal version of memory would be something that runs in the background silently and learns your preferences. In reality the harness doesn’t do this well yet. It will write or delete things from the memory file, but it is not trained well on the wide range of human preferences. I assume this will be solved eventually along with a host of other continual learning ideas.
Memory Across Sessions
What it knowsSessionsdeleted the wrong thingidealtoday
The gap between ideal memory and what the model does today
There are ideas around dreaming and reflecting that may make the memory stack more reliable.
Skills vs. The Bitter Lesson
One way to think about skills is as documentation of a workflow or idiosyncrasy of your setup vs. the baseline. At this point the models are basically smart enough to figure anything out, but it is frustrating to have them relearn everything from scratch every session. So skills abbreviate this process since the models are trained to look at them first. As the models get bigger and smarter I would expect skills to fall away.
Skills Skip the Ramp-Up
Contextproductivesession 1session 2session 3session 4with skillsfrom scratch
Skills start each session closer to productive
Moving Up the Abstraction Ladder
The current harnesses have too many bells and whistles. Given that the models are generally smart, we should expect the knobs to live one level below the UI and the models should just learn to change their own settings. In a perfect world, the harnesses actually get simpler as they get more advanced. This is related to the idea of the meta-harness, which you can read more about here.
Integration Tests
The correct way to validate changes in the new coding regime is by having a robust set of integration tests. This is how Bun and other teams have completed large buildouts in record time. Anything in your system that is not end-to-end testable is a massive liability. At Meridian, we rewrote our entire stack into modular TypeScript to make this process easier and review more streamlined.
The Integration Loop
agent writes codeintegration suiteship itfail: fix and retry, no human neededyour systemend to end testableliability
Anything not end-to-end testable is a liability
Replacing GitHub
If we want agents critiquing all PRs and full integration suites that our agents can easily run against, you can imagine why GitHub feels like a little bit of a relic. There is also some sense in which the output of code is kind of a compression of the work put into it. It would be nice if agents could communicate in a higher bandwidth way (traces, etc.). So many folks are thinking about what the next generation looks like here for enterprises.
Communication Bandwidth
Todayagentthe diffagentNextagentskills · traces · contextagent
Agents want to share more than a diff
The Agent Native Stack
This is basically true for all parts of the stack from AWS up through the IDE. I imagine we will end up with a fully vertically integrated cloud solution that is designed custom for agents and not humans. Some qualities this needs:
- Fast deployment loop
- Agent native traces
- Easy to test and roll back
- Tiered permissioning
- Alerting callbacks for agents
The Agent Native Stack
awsvercel + railwayapp layeragent plugins
Is Typing Too Slow?
Typing is a pretty low bandwidth way to communicate ideas. It is hard to imagine that we will still be typing into our computers in a few years. The intermediate solution is voice-to-text transcription, but the future probably looks more like a fluid conversation with an assistant, an always-on microphone capturing casual conversations for context, and some sort of live video input. The Thinking Machines interaction models are a nice take on this idea.
Input Bandwidth
todaythe next generationTypingVoiceConversation CaptureLive Video
Voice, ambient capture, and video carry more context than typing
Local vs. Cloud
One of the biggest debates around the dev stack is whether the agent should be primarily housed on a local machine or in the cloud. It is much easier to get started on a local machine and it is easier to model the permissions of the agent. But as many have noticed, local development does not scale well and is not natively multiplayer. For this reason, cloud has been on the rise recently and many products are ending up in an awkward spot, split between the two.
Local vs. Cloud
LocalCloudproductsawkwardly split
Current Weaknesses
- Extremely long-running workflows are hard to manage
- Extracting business context is painful
- Continual learning / sample efficiency
- Computer use / restricted platforms
- Always-on agents is unsolved
| (self.__next_f=self.__next_f | []).push([0])self.__next_f.push([1,”1:\“$Sreact.fragment\”\n2:I[65901,[\”/_next/static/chunks/bba5bc417e727e10.js\”],\“NavDepthTracker\”]\n3:I[39756,[\”/_next/static/chunks/ff1a16fafef87110.js\”,\”/_next/static/chunks/7340adf74ff47ec0.js\”],\“default\”]\n4:I[37457,[\”/_next/static/chunks/ff1a16fafef87110.js\”,\”/_next/static/chunks/7340adf74ff47ec0.js\”],\“default\”]\n5:I[43880,[\”/_next/static/chunks/bba5bc417e727e10.js\”],\“Analytics\”]\n6:I[57215,[\”/_next/static/chunks/bba5bc417e727e10.js\”],\“SpeedInsights\”]\n7:I[41596,[\”/_next/static/chunks/bba5bc417e727e10.js\”,\”/_next/static/chunks/684bfa6e943b1d1e.js\”],\“BackLink\”]\n3a:I[68027,[],\“default\”]\n:HL[\”/_next/static/chunks/ad91700cee83fdb1.css\”,\“style\”]\n:HL[\”/_next/static/media/115e7a2565b70400-s.p.e440a306.woff2\”,\“font\”,{\“crossOrigin\”:\”\”,\“type\”:\“font/woff2\”}]\n:HL[\”/_next/static/chunks/42f679cbdfc61c13.css\”,\“style\”]\n”])self.__next_f.push([1,”0:{\“P\“:null,\“b\”:\“fHAoTyZAiMtCRG37rSe8d\”,\“c\”:[\”\”,\“software-factory\”],\“q\”:\”\”,\“i\“:false,\“f\”:[[[\”\”,{\“children\”:[\“software-factory\”,{\“children\”:[\“__PAGE__\”,{}]}]},\“$undefined\”,\“$undefined\“,true],[[\”$\”,\“$1\”,\“c\”,{\“children\”:[[[\”$\”,\“link\”,\“0\”,{\“rel\”:\“stylesheet\”,\“href\”:\”/_next/static/chunks/ad91700cee83fdb1.css\”,\“precedence\”:\“next\”,\“crossOrigin\”:\“$undefined\”,\“nonce\”:\“$undefined\”}],[\”$\”,\“script\”,\“script-0\”,{\“src\”:\”/_next/static/chunks/bba5bc417e727e10.js\”,\“async\“:true,\“nonce\”:\“$undefined\”}]],[\”$\”,\“html\“,null,{\“lang\”:\“en\”,\“children\”:[\”$\”,\“body\“,null,{\“className\”:\“crimson_pro_a17336ae-module__uUxpHq__className\”,\“children\”:[[\”$\”,\“$L2\“,null,{}],[\”$\”,\“$L3\“,null,{\“parallelRouterKey\”:\“children\”,\“error\”:\“$undefined\”,\“errorStyles\”:\“$undefined\”,\“errorScripts\”:\“$undefined\”,\“template\”:[\”$\”,\“$L4\“,null,{}],\“templateStyles\”:\“$undefined\”,\“templateScripts\”:\“$undefined\”,\“notFound\”:[[[\”$\”,\“title\“,null,{\“children\”:\“404: This page could not be found.\”}],[\”$\”,\“div\“,null,{\“style\”:{\“fontFamily\”:\“system-ui,\\\“Segoe UI\\\“,Roboto,Helvetica,Arial,sans-serif,\\\“Apple Color Emoji\\\”,\\\“Segoe UI Emoji\\\”\”,\“height\”:\“100vh\”,\“textAlign\”:\“center\”,\“display\”:\“flex\”,\“flexDirection\”:\“column\”,\“alignItems\”:\“center\”,\“justifyContent\”:\“center\”},\“children\”:[\”$\”,\“div\“,null,{\“children\”:[[\”$\”,\“style\“,null,{\“dangerouslySetInnerHTML\”:{\“__html\”:\“body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\”}}],[\”$\”,\“h1\“,null,{\“className\”:\“next-error-h1\”,\“style\”:{\“display\”:\“inline-block\”,\“margin\”:\“0 20px 0 0\”,\“padding\”:\“0 23px 0 0\”,\“fontSize\“:24,\“fontWeight\“:500,\“verticalAlign\”:\“top\”,\“lineHeight\”:\“49px\”},\“children\“:404}],[\”$\”,\“div\“,null,{\“style\”:{\“display\”:\“inline-block\”},\“children\”:[\”$\”,\“h2\“,null,{\“style\”:{\“fontSize\“:14,\“fontWeight\“:400,\“lineHeight\”:\“49px\”,\“margin\“:0},\“children\”:\“This page could not be found.\”}]}]]}]}]],[]],\“forbidden\”:\“$undefined\”,\“unauthorized\”:\“$undefined\”}],[\”$\”,\“$L5\“,null,{}],[\”$\”,\“$L6\“,null,{}]]}]}]]}],{\“children\”:[[\”$\”,\“$1\”,\“c\”,{\“children\”:[null,[\”$\”,\“$L3\“,null,{\“parallelRouterKey\”:\“children\”,\“error\”:\“$undefined\”,\“errorStyles\”:\“$undefined\”,\“errorScripts\”:\“$undefined\”,\“template\”:[\”$\”,\“$L4\“,null,{}],\“templateStyles\”:\“$undefined\”,\“templateScripts\”:\“$undefined\”,\“notFound\”:\“$undefined\”,\“forbidden\”:\“$undefined\”,\“unauthorized\”:\“$undefined\”}]]}],{\“children\”:[[\”$\”,\“$1\”,\“c\”,{\“children\”:[[[\”$\”,\“script\“,null,{\“type\”:\“application/ld+json\”,\“dangerouslySetInnerHTML\”:{\“__html\”:\”{\\\“@context\\\”:\\\“https://schema.org\\\”,\\\“@type\\\”:\\\“BlogPosting\\\”,\\\“headline\\\”:\\\“Notes on the Software Factory\\\”,\\\“description\\\”:\\\“Notes from a talk on vibe coding: giving agents tools, speeding up the bottleneck, critics, memory, skills, integration tests, and the agent native stack.\\\”,\\\“datePublished\\\”:\\\“2026-07-08\\\”,\\\“author\\\”:{\\\“@type\\\”:\\\“Person\\\”,\\\“name\\\”:\\\“Benedict Brady\\\”,\\\“url\\\”:\\\“https://benedict.dev\\\”},\\\“publisher\\\”:{\\\“@type\\\”:\\\“Person\\\”,\\\“name\\\”:\\\“Benedict Brady\\\”},\\\“mainEntityOfPage\\\”:{\\\“@type\\\”:\\\“WebPage\\\”,\\\“@id\\\”:\\\“https://benedict.dev/software-factory\\\”}}\”}}],[\”$\”,\“div\“,null,{\“id\”:\“preamble\”,\“children\”:[[\”$\”,\“p\“,null,{\“children\”:[\”$\”,\“$L7\“,null,{}]}],[\”$\”,\“h1\“,null,{\“className\”:\“title\”,\“children\”:\“Notes on the Software Factory\”}],[\”$\”,\“p\“,null,{\“className\”:\“factory-module__WoZh8q__subtitle\”,\“children\”:[\“These notes are adapted from a talk I gave at the\”,\” \”,[\”$\”,\“a\“,null,{\“href\”:\“https://www.ellipsislabs.xyz/\”,\“target\”:\“_blank\”,\“rel\”:\“noopener noreferrer\”,\“children\”:\“Ellipsis Labs\”}],\” \”,\“office about vibe coding and the software factory.\”]}],[\”$\”,\“p\“,null,{\“className\”:\“date\”,\“children\”:\“July 8, 2026\”}],[\”$\”,\“h2\“,null,{\“children\”:\“Give the Model Tools\”}],[\”$\”,\“p\“,null,{\“children\”:\“The number one piece of advice is always the same: give the models tools to check their own work. That said, they are becoming much better at this naturally.\”}],[\”$\”,\“p\“,null,{\“children\”:\“To the extent you can, you want to do things like this:\”}],[\”$\”,\“ul\“,null,{\“children\”:[[\”$\”,\“li\“,null,{\“children\”:\“Give the agent CLI access to deployments so that it can deploy and check for bugs\”}],[\”$\”,\“li\“,null,{\“children\”:\“Give the agent browser access for frontend (I think this comes out of the box now)\”}],[\”$\”,\“li\“,null,{\“children\”:\“Give the agent powerful machines to run tests/simulations etc. (I use Modal for this)\”}],[\”$\”,\“li\“,null,{\“children\”:\“Give the agent a Solana wallet with real money in it\”}]]}],[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramWrapper\”,\“children\”:[[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramTitle\”,\“children\”:\“Agent + Tools\”}],\“$L8\”,\“$L9\”]}],\“$La\”,\“$Lb\”,\“$Lc\”,\“$Ld\”,\“$Le\”,\“$Lf\”,\“$L10\”,\“$L11\”,\“$L12\”,\“$L13\”,\“$L14\”,\“$L15\”,\“$L16\”,\“$L17\”,\“$L18\”,\“$L19\”,\“$L1a\”,\“$L1b\”,\“$L1c\”,\“$L1d\”,\“$L1e\”,\“$L1f\”,\“$L20\”,\“$L21\”,\“$L22\”,\“$L23\”,\“$L24\”,\“$L25\”,\“$L26\”,\“$L27\”,\“$L28\”,\“$L29\”,\“$L2a\”,\“$L2b\”,\“$L2c\”,\“$L2d\”,\“$L2e\”,\“$L2f\”,\“$L30\”,\“$L31\”,\“$L32\”,\“$L33\”,\“$L34\”,\“$L35\”]}]],[\“$L36\”,\“$L37\”],\“$L38\”]}],{},null,false,false]},null,false,false]},null,false,false],\“$L39\“,false]],\“m\”:\“$undefined\”,\“G\”:[\“$3a\”,[]],\“S\“:true}\n”])self.__next_f.push([1,”4f:I[97367,[\”/_next/static/chunks/ff1a16fafef87110.js\”,\”/_next/static/chunks/7340adf74ff47ec0.js\”],\“OutletBoundary\”]\n50:\“$Sreact.suspense\”\n52:I[97367,[\”/_next/static/chunks/ff1a16fafef87110.js\”,\”/_next/static/chunks/7340adf74ff47ec0.js\”],\“ViewportBoundary\”]\n54:I[97367,[\”/_next/static/chunks/ff1a16fafef87110.js\”,\”/_next/static/chunks/7340adf74ff47ec0.js\”],\“MetadataBoundary\”]\n”])self.__next_f.push([1,”8:[\”$\”,\“svg\“,null,{\“className\”:\“factory-module__WoZh8q__diagramSvg\”,\“viewBox\”:\“0 0 460 224\”,\“preserveAspectRatio\”:\“xMidYMid meet\”,\“children\”:[[\”$\”,\“circle\“,null,{\“cx\”:\“230\”,\“cy\”:\“105\”,\“r\”:\“38\”,\“fill\”:\“none\”,\“stroke\”:\“#2e7ab8\”,\“strokeWidth\”:\“1\”,\“opacity\”:\“0.15\”}],[\”$\”,\“circle\“,null,{\“cx\”:\“230\”,\“cy\”:\“105\”,\“r\”:\“27\”,\“fill\”:\“none\”,\“stroke\”:\“#2e7ab8\”,\“strokeWidth\”:\“1.2\”,\“opacity\”:\“0.35\”}],[\”$\”,\“circle\“,null,{\“cx\”:\“230\”,\“cy\”:\“105\”,\“r\”:\“16\”,\“fill\”:\“#2e7ab8\”}],[\”$\”,\“text\“,null,{\“x\”:\“230\”,\“y\”:\“105\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“7.5px\”,\“fontWeight\“:700,\“fill\”:\“#f5f0e6\”,\“textAnchor\”:\“middle\”},\“children\”:\“Agent\”}],[\”$\”,\“line\“,null,{\“x1\”:\“190\”,\“y1\”:\“88\”,\“x2\”:\“118\”,\“y2\”:\“58\”,\“stroke\”:\“#999\”,\“strokeWidth\”:\“1.5\”}],[\”$\”,\“line\“,null,{\“x1\”:\“270\”,\“y1\”:\“88\”,\“x2\”:\“342\”,\“y2\”:\“58\”,\“stroke\”:\“#999\”,\“strokeWidth\”:\“1.5\”}],[\”$\”,\“line\“,null,{\“x1\”:\“190\”,\“y1\”:\“122\”,\“x2\”:\“118\”,\“y2\”:\“152\”,\“stroke\”:\“#999\”,\“strokeWidth\”:\“1.5\”}],[\”$\”,\“line\“,null,{\“x1\”:\“270\”,\“y1\”:\“122\”,\“x2\”:\“342\”,\“y2\”:\“152\”,\“stroke\”:\“#999\”,\“strokeWidth\”:\“1.5\”}],[\”$\”,\“rect\“,null,{\“x\”:\“52\”,\“y\”:\“24\”,\“width\”:\“56\”,\“height\”:\“36\”,\“rx\”:\“5\”,\“fill\”:\“none\”,\“stroke\”:\“#555\”,\“strokeWidth\”:\“1.8\”}],[\”$\”,\“polyline\“,null,{\“points\”:\“60,36 67,42 60,48\”,\“fill\”:\“none\”,\“stroke\”:\“#555\”,\“strokeWidth\”:\“2\”,\“strokeLinecap\”:\“round\”,\“strokeLinejoin\”:\“round\”}],[\”$\”,\“line\“,null,{\“x1\”:\“72\”,\“y1\”:\“48\”,\“x2\”:\“82\”,\“y2\”:\“48\”,\“stroke\”:\“#555\”,\“strokeWidth\”:\“2\”,\“strokeLinecap\”:\“round\”}],[\”$\”,\“text\“,null,{\“x\”:\“80\”,\“y\”:\“74\”,\“style\”:{\“fontSize\”:\“9px\”,\“fontWeight\“:600,\“fill\”:\“#333\”,\“textAnchor\”:\“middle\”},\“children\”:\“Deploy CLI\”}],[\”$\”,\“text\“,null,{\“x\”:\“80\”,\“y\”:\“85\”,\“style\”:{\“fontSize\”:\“7px\”,\“fill\”:\“#888\”,\“textAnchor\”:\“middle\”},\“children\”:\“ship and check for bugs\”}],[\”$\”,\“rect\“,null,{\“x\”:\“352\”,\“y\”:\“24\”,\“width\”:\“56\”,\“height\”:\“36\”,\“rx\”:\“5\”,\“fill\”:\“none\”,\“stroke\”:\“#555\”,\“strokeWidth\”:\“1.8\”}],[\”$\”,\“line\“,null,{\“x1\”:\“352\”,\“y1\”:\“34\”,\“x2\”:\“408\”,\“y2\”:\“34\”,\“stroke\”:\“#555\”,\“strokeWidth\”:\“1.5\”}],[\”$\”,\“circle\“,null,{\“cx\”:\“358\”,\“cy\”:\“29\”,\“r\”:\“1.6\”,\“fill\”:\“#555\”}],[\”$\”,\“circle\“,null,{\“cx\”:\“364\”,\“cy\”:\“29\”,\“r\”:\“1.6\”,\“fill\”:\“#555\”}],[\”$\”,\“line\“,null,{\“x1\”:\“359\”,\“y1\”:\“42\”,\“x2\”:\“390\”,\“y2\”:\“42\”,\“stroke\”:\“#999\”,\“strokeWidth\”:\“1.5\”,\“strokeLinecap\”:\“round\”}],[\”$\”,\“line\“,null,{\“x1\”:\“359\”,\“y1\”:\“50\”,\“x2\”:\“378\”,\“y2\”:\“50\”,\“stroke\”:\“#999\”,\“strokeWidth\”:\“1.5\”,\“strokeLinecap\”:\“round\”}],[\”$\”,\“text\“,null,{\“x\”:\“380\”,\“y\”:\“74\”,\“style\”:{\“fontSize\”:\“9px\”,\“fontWeight\“:600,\“fill\”:\“#333\”,\“textAnchor\”:\“middle\”},\“children\”:\“Browser\”}],[\”$\”,\“text\“,null,{\“x\”:\“380\”,\“y\”:\“85\”,\“style\”:{\“fontSize\”:\“7px\”,\“fill\”:\“#888\”,\“textAnchor\”:\“middle\”},\“children\”:\“see the frontend\”}],[\”$\”,\“rect\“,null,{\“x\”:\“62\”,\“y\”:\“150\”,\“width\”:\“36\”,\“height\”:\“36\”,\“rx\”:\“4\”,\“fill\”:\“none\”,\“stroke\”:\“#555\”,\“strokeWidth\”:\“1.8\”}],[\”$\”,\“rect\“,null,{\“x\”:\“71\”,\“y\”:\“159\”,\“width\”:\“18\”,\“height\”:\“18\”,\“rx\”:\“2\”,\“fill\”:\“#555\”,\“opacity\”:\“0.18\”,\“stroke\”:\“#555\”,\“strokeWidth\”:\“1.2\”}],[[\”$\”,\“g\”,\“68\”,{\“children\”:[[\”$\”,\“line\“,null,{\“x1\“:68,\“y1\”:\“150\”,\“x2\“:68,\“y2\”:\“144\”,\“stroke\”:\“#555\”,\“strokeWidth\”:\“1.5\”}],[\”$\”,\“line\“,null,{\“x1\“:68,\“y1\”:\“186\”,\“x2\“:68,\“y2\”:\“192\”,\“stroke\”:\“#555\”,\“strokeWidth\”:\“1.5\”}]]}],[\”$\”,\“g\”,\“80\”,{\“children\”:[[\”$\”,\“line\“,null,{\“x1\“:80,\“y1\”:\“150\”,\“x2\“:80,\“y2\”:\“144\”,\“stroke\”:\“#555\”,\“strokeWidth\”:\“1.5\”}],[\”$\”,\“line\“,null,{\“x1\“:80,\“y1\”:\“186\”,\“x2\“:80,\“y2\”:\“192\”,\“stroke\”:\“#555\”,\“strokeWidth\”:\“1.5\”}]]}],[\”$\”,\“g\”,\“92\”,{\“children\”:[[\”$\”,\“line\“,null,{\“x1\“:92,\“y1\”:\“150\”,\“x2\“:92,\“y2\”:\“144\”,\“stroke\”:\“#555\”,\“strokeWidth\”:\“1.5\”}],[\”$\”,\“line\“,null,{\“x1\“:92,\“y1\”:\“186\”,\“x2\“:92,\“y2\”:\“192\”,\“stroke\”:\“#555\”,\“strokeWidth\”:\“1.5\”}]]}]],[[\”$\”,\“g\”,\“156\”,{\“children\”:[[\”$\”,\“line\“,null,{\“x1\”:\“62\”,\“y1\“:156,\“x2\”:\“56\”,\“y2\“:156,\“stroke\”:\“#555\”,\“strokeWidth\”:\“1.5\”}],[\”$\”,\“line\“,null,{\“x1\”:\“98\”,\“y1\“:156,\“x2\”:\“104\”,\“y2\“:156,\“stroke\”:\“#555\”,\“strokeWidth\”:\“1.5\”}]]}],[\”$\”,\“g\”,\“168\”,{\“children\”:[[\”$\”,\“line\“,null,{\“x1\”:\“62\”,\“y1\“:168,\“x2\”:\“56\”,\“y2\“:168,\“stroke\”:\“#555\”,\“strokeWidth\”:\“1.5\”}],[\”$\”,\“line\“,null,{\“x1\”:\“98\”,\“y1\“:168,\“x2\”:\“104\”,\“y2\“:168,\“stroke\”:\“#555\”,\“strokeWidth\”:\“1.5\”}]]}],[\”$\”,\“g\”,\“180\”,{\“children\”:[[\”$\”,\“line\“,null,{\“x1\”:\“62\”,\“y1\“:180,\“x2\”:\“56\”,\“y2\“:180,\“stroke\”:\“#555\”,\“strokeWidth\”:\“1.5\”}],[\”$\”,\“line\“,null,{\“x1\”:\“98\”,\“y1\“:180,\“x2\”:\“104\”,\“y2\“:180,\“stroke\”:\“#555\”,\“strokeWidth\”:\“1.5\”}]]}]],[\”$\”,\“text\“,null,{\“x\”:\“80\”,\“y\”:\“206\”,\“style\”:{\“fontSize\”:\“9px\”,\“fontWeight\“:600,\“fill\”:\“#333\”,\“textAnchor\”:\“middle\”},\“children\”:\“Big Compute\”}],[\”$\”,\“text\“,null,{\“x\”:\“80\”,\“y\”:\“217\”,\“style\”:{\“fontSize\”:\“7px\”,\“fill\”:\“#888\”,\“textAnchor\”:\“middle\”},\“children\”:\“tests and sims on Modal\”}],[\”$\”,\“circle\“,null,{\“cx\”:\“380\”,\“cy\”:\“168\”,\“r\”:\“19\”,\“fill\”:\“none\”,\“stroke\”:\“#b8862e\”,\“strokeWidth\”:\“2\”}],[\”$\”,\“polygon\“,null,{\“points\”:\“374,159 389,159 386,163 371,163\”,\“fill\”:\“#b8862e\”}],[\”$\”,\“polygon\“,null,{\“points\”:\“371,166 386,166 389,170 374,170\”,\“fill\”:\“#b8862e\”}],[\”$\”,\“polygon\“,null,{\“points\”:\“374,173 389,173 386,177 371,177\”,\“fill\”:\“#b8862e\”}],[\”$\”,\“text\“,null,{\“x\”:\“380\”,\“y\”:\“206\”,\“style\”:{\“fontSize\”:\“9px\”,\“fontWeight\“:600,\“fill\”:\“#333\”,\“textAnchor\”:\“middle\”},\“children\”:\“Solana Wallet\”}],[\”$\”,\“text\“,null,{\“x\”:\“380\”,\“y\”:\“217\”,\“style\”:{\“fontSize\”:\“7px\”,\“fill\”:\“#888\”,\“textAnchor\”:\“middle\”},\“children\”:\“yes, with real money\”}]]}]\n”])self.__next_f.push([1,”9:[\”$\”,\“p\“,null,{\“className\”:\“factory-module__WoZh8q__diagramCaption\”,\“children\”:\“Give the agent the same toolkit a software engineer has\”}]\na:[\”$\”,\“p\“,null,{\“children\”:\“The goal is to complete the longest-running tasks, and this often requires them to have the tools that software developers have. Often there is one person on the team who sets this up correctly and can export their setup to the rest of the team.\”}]\nb:[\”$\”,\“p\“,null,{\“children\”:\“There is a broader notion here that the interesting businesses to build are in the bottleneck space. Build a lab where you can parallelize experiments. Buy a lot of robotic arms.\”}]\nc:[\”$\”,\“h2\“,null,{\“children\”:\“Speed Up the Bottleneck\”}]\nd:[\”$\”,\“p\“,null,{\“children\”:\“Identify what part of the workflow is slow and try to make it faster. This is a top annoyance for me. I often use loops for this purpose. I’ll kick off a monitoring loop that checks in on the current run and makes sure things are going smoothly.\”}]\n”])self.__next_f.push([1,”e:[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramWrapper\”,\“children\”:[[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramTitle\”,\“children\”:\“Make Thinking the Bottleneck\”}],[\”$\”,\“svg\“,null,{\“className\”:\“factory-module__WoZh8q__diagramSvg\”,\“viewBox\”:\“0 0 460 230\”,\“preserveAspectRatio\”:\“xMidYMid meet\”,\“children\”:[[\”$\”,\“text\“,null,{\“x\”:\“42\”,\“y\”:\“30\”,\“className\”:\“factory-module__WoZh8q__svgSideLabel\”,\“children\”:\“Bad\”}],[\”$\”,\“rect\“,null,{\“x\”:\“52\”,\“y\”:\“16\”,\“width\”:\“30\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“rect\“,null,{\“x\”:\“82\”,\“y\”:\“16\”,\“width\”:\“120\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}],[\”$\”,\“rect\“,null,{\“x\”:\“202\”,\“y\”:\“16\”,\“width\”:\“30\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“rect\“,null,{\“x\”:\“232\”,\“y\”:\“16\”,\“width\”:\“120\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}],[\”$\”,\“rect\“,null,{\“x\”:\“352\”,\“y\”:\“16\”,\“width\”:\“30\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“rect\“,null,{\“x\”:\“382\”,\“y\”:\“16\”,\“width\”:\“68\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}],[\”$\”,\“text\“,null,{\“x\”:\“42\”,\“y\”:\“85\”,\“className\”:\“factory-module__WoZh8q__svgSideLabel\”,\“children\”:\“Better\”}],[[\”$\”,\“g\”,\“0\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:52,\“y\”:\“71\”,\“width\”:\“28\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“rect\“,null,{\“x\“:80,\“y\”:\“71\”,\“width\”:\“24\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}]]}],[\”$\”,\“g\”,\“1\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:104,\“y\”:\“71\”,\“width\”:\“28\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“rect\“,null,{\“x\“:132,\“y\”:\“71\”,\“width\”:\“24\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}]]}],[\”$\”,\“g\”,\“2\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:156,\“y\”:\“71\”,\“width\”:\“28\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“rect\“,null,{\“x\“:184,\“y\”:\“71\”,\“width\”:\“24\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}]]}],[\”$\”,\“g\”,\“3\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:208,\“y\”:\“71\”,\“width\”:\“28\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“rect\“,null,{\“x\“:236,\“y\”:\“71\”,\“width\”:\“24\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}]]}],[\”$\”,\“g\”,\“4\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:260,\“y\”:\“71\”,\“width\”:\“28\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“rect\“,null,{\“x\“:288,\“y\”:\“71\”,\“width\”:\“24\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}]]}],[\”$\”,\“g\”,\“5\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:312,\“y\”:\“71\”,\“width\”:\“28\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“rect\“,null,{\“x\“:340,\“y\”:\“71\”,\“width\”:\“24\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}]]}],[\”$\”,\“g\”,\“6\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:364,\“y\”:\“71\”,\“width\”:\“28\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“rect\“,null,{\“x\“:392,\“y\”:\“71\”,\“width\”:\“24\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}]]}]],[\”$\”,\“rect\“,null,{\“x\”:\“416\”,\“y\”:\“71\”,\“width\”:\“28\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“text\“,null,{\“x\”:\“42\”,\“y\”:\“152\”,\“className\”:\“factory-module__WoZh8q__svgSideLabel\”,\“children\”:\“Best\”}],[[\”$\”,\“g\”,\“0\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:52,\“y\”:\“138\”,\“width\”:\“28\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“line\“,null,{\“x1\“:80,\“y1\”:\“145\”,\“x2\“:88,\“y2\”:\“130\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“line\“,null,{\“x1\“:80,\“y1\”:\“151\”,\“x2\“:88,\“y2\”:\“151\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“line\“,null,{\“x1\“:80,\“y1\”:\“157\”,\“x2\“:88,\“y2\”:\“172\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“rect\“,null,{\“x\“:88,\“y\”:\“122\”,\“width\”:\“35\”,\“height\”:\“16\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}],[\”$\”,\“rect\“,null,{\“x\“:88,\“y\”:\“143\”,\“width\”:\“35\”,\“height\”:\“16\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}],[\”$\”,\“rect\“,null,{\“x\“:88,\“y\”:\“164\”,\“width\”:\“35\”,\“height\”:\“16\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}],[[\”$\”,\“line\“,null,{\“x1\“:123,\“y1\”:\“130\”,\“x2\“:131,\“y2\”:\“145\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“line\“,null,{\“x1\“:123,\“y1\”:\“151\”,\“x2\“:131,\“y2\”:\“151\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“line\“,null,{\“x1\“:123,\“y1\”:\“172\”,\“x2\“:131,\“y2\”:\“157\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}]]]}],[\”$\”,\“g\”,\“1\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:131,\“y\”:\“138\”,\“width\”:\“28\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“line\“,null,{\“x1\“:159,\“y1\”:\“145\”,\“x2\“:167,\“y2\”:\“130\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“line\“,null,{\“x1\“:159,\“y1\”:\“151\”,\“x2\“:167,\“y2\”:\“151\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“line\“,null,{\“x1\“:159,\“y1\”:\“157\”,\“x2\“:167,\“y2\”:\“172\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“rect\“,null,{\“x\“:167,\“y\”:\“122\”,\“width\”:\“35\”,\“height\”:\“16\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}],\“$L3b\”,\“$L3c\”,\“$L3d\”]}],\“$L3e\”,\“$L3f\”,\“$L40\”],\“$L41\”,\“$L42\”,\“$L43\”,\“$L44\”]}],\“$L45\”]}]\n”])self.__next_f.push([1,”f:[\”$\”,\“h2\“,null,{\“children\”:\“Add a Critic\”}]\n10:[\”$\”,\“p\“,null,{\“children\”:\“An idea that I have been partial to for a while is that the agent loop needs a critic to validate the result. Often this task is undertaken by the human monitoring the loop, but there are ideas around putting an agent in the loop as the critic. The critic’s clean context allows it to look more objectively at the work being done and propose both meta improvements and new directions.\”}]\n”])self.__next_f.push([1,”11:[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramWrapper\”,\“children\”:[[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramTitle\”,\“children\”:\“The Critic Loop\”}],[\”$\”,\“svg\“,null,{\“className\”:\“factory-module__WoZh8q__diagramSvg\”,\“viewBox\”:\“0 0 460 130\”,\“preserveAspectRatio\”:\“xMidYMid meet\”,\“children\”:[[\”$\”,\“defs\“,null,{\“children\”:[\”$\”,\“marker\“,null,{\“id\”:\“arrowBlueSF\”,\“viewBox\”:\“0 0 10 10\”,\“refX\”:\“10\”,\“refY\”:\“5\”,\“markerWidth\”:\“8\”,\“markerHeight\”:\“8\”,\“orient\”:\“auto-start-reverse\”,\“children\”:[\”$\”,\“path\“,null,{\“d\”:\“M 0 0 L 10 5 L 0 10 z\”,\“fill\”:\“#2e7ab8\”}]}]}],[\”$\”,\“rect\“,null,{\“x\”:\“170\”,\“y\”:\“6\”,\“width\”:\“120\”,\“height\”:\“30\”,\“rx\”:\“6\”,\“className\”:\“factory-module__WoZh8q__svgNodeAccent\”}],[\”$\”,\“text\“,null,{\“x\”:\“230\”,\“y\”:\“21\”,\“dy\”:\“0.35em\”,\“className\”:\“factory-module__WoZh8q__svgLabel\”,\“children\”:\“Critic Agent\”}],[\”$\”,\“line\“,null,{\“x1\”:\“200\”,\“y1\”:\“36\”,\“x2\”:\“180\”,\“y2\”:\“68\”,\“className\”:\“factory-module__WoZh8q__svgArrowAccent\”,\“markerEnd\”:\“url(#arrowBlueSF)\”}],[\”$\”,\“line\“,null,{\“x1\”:\“260\”,\“y1\”:\“36\”,\“x2\”:\“336\”,\“y2\”:\“68\”,\“className\”:\“factory-module__WoZh8q__svgArrowAccent\”,\“markerEnd\”:\“url(#arrowBlueSF)\”}],[[\”$\”,\“g\”,\“a0\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:22,\“y\”:\“72\”,\“width\”:\“28\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“rect\“,null,{\“x\“:50,\“y\”:\“72\”,\“width\”:\“24\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}]]}],[\”$\”,\“g\”,\“a1\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:74,\“y\”:\“72\”,\“width\”:\“28\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“rect\“,null,{\“x\“:102,\“y\”:\“72\”,\“width\”:\“24\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}]]}],[\”$\”,\“g\”,\“a2\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:126,\“y\”:\“72\”,\“width\”:\“28\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“rect\“,null,{\“x\“:154,\“y\”:\“72\”,\“width\”:\“24\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}]]}]],[\”$\”,\“rect\“,null,{\“x\”:\“178\”,\“y\”:\“70\”,\“width\”:\“4\”,\“height\”:\“30\”,\“rx\”:\“1\”,\“fill\”:\“#2e7ab8\”,\“opacity\”:\“0.25\”}],[[\”$\”,\“g\”,\“b0\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:182,\“y\”:\“72\”,\“width\”:\“28\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“rect\“,null,{\“x\“:210,\“y\”:\“72\”,\“width\”:\“24\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}]]}],[\”$\”,\“g\”,\“b1\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:234,\“y\”:\“72\”,\“width\”:\“28\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“rect\“,null,{\“x\“:262,\“y\”:\“72\”,\“width\”:\“24\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}]]}],[\”$\”,\“g\”,\“b2\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:286,\“y\”:\“72\”,\“width\”:\“28\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“rect\“,null,{\“x\“:314,\“y\”:\“72\”,\“width\”:\“24\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}]]}]],[\”$\”,\“rect\“,null,{\“x\”:\“334\”,\“y\”:\“70\”,\“width\”:\“4\”,\“height\”:\“30\”,\“rx\”:\“1\”,\“fill\”:\“#2e7ab8\”,\“opacity\”:\“0.25\”}],[[\”$\”,\“g\”,\“c0\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:338,\“y\”:\“72\”,\“width\”:\“28\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“rect\“,null,{\“x\“:366,\“y\”:\“72\”,\“width\”:\“24\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}]]}],[\”$\”,\“g\”,\“c1\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:390,\“y\”:\“72\”,\“width\”:\“28\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“rect\“,null,{\“x\“:418,\“y\”:\“72\”,\“width\”:\“24\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}]]}]],[\”$\”,\“text\“,null,{\“x\”:\“180\”,\“y\”:\“112\”,\“style\”:{\“fontSize\”:\“8px\”,\“fill\”:\“#2e7ab8\”,\“fontStyle\”:\“italic\”,\“textAnchor\”:\“middle\”},\“children\”:\“validate the result,\”}],[\”$\”,\“text\“,null,{\“x\”:\“180\”,\“y\”:\“121\”,\“style\”:{\“fontSize\”:\“8px\”,\“fill\”:\“#2e7ab8\”,\“fontStyle\”:\“italic\”,\“textAnchor\”:\“middle\”},\“children\”:\“not just the diff\”}],[\”$\”,\“text\“,null,{\“x\”:\“336\”,\“y\”:\“112\”,\“style\”:{\“fontSize\”:\“8px\”,\“fill\”:\“#2e7ab8\”,\“fontStyle\”:\“italic\”,\“textAnchor\”:\“middle\”},\“children\”:\“improve the\”}],[\”$\”,\“text\“,null,{\“x\”:\“336\”,\“y\”:\“121\”,\“style\”:{\“fontSize\”:\“8px\”,\“fill\”:\“#2e7ab8\”,\“fontStyle\”:\“italic\”,\“textAnchor\”:\“middle\”},\“children\”:\“process itself\”}]]}],[\”$\”,\“p\“,null,{\“className\”:\“factory-module__WoZh8q__diagramCaption\”,\“children\”:\“A clean context watches from a distance and improves the process\”}]]}]\n”])self.__next_f.push([1,”12:[\”$\”,\“p\“,null,{\“children\”:[\“The common riff on this idea is\”,\” \”,[\”$\”,\“code\“,null,{\“className\”:\“factory-module__WoZh8q__inlineCode\”,\“children\”:\“/goal\”}],\”. Goal is used to define a rubric in text space. Then the model iterates in a loop until the goal is deemed complete. This solves some of the problems around long-horizon coherency.\”]}]\n13:[\”$\”,\“h2\“,null,{\“children\”:\“Quality Scales with Thinking Effort\”}]\n14:[\”$\”,\“p\“,null,{\“children\”:\“There is now pretty robust data that benchmark scores scale with thinking time. This means you should really toggle the thinking up for harder problems.\”}]\n15:[\”$\”,\“h2\“,null,{\“children\”:\“Measure Twice, Cut Once\”}]\n16:[\”$\”,\“p\“,null,{\“children\”:\“The common conventional wisdom used to be to add a planning step explicitly. A lot of the mechanics around how planning was implemented were related to context window limitations that have started to ease. Nowadays I would consider just skipping plan mode but keeping the principle in mind.\”}]\n”])self.__next_f.push([1,”17:[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramWrapper\”,\“children\”:[[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramTitle\”,\“children\”:\“Plan Mode\”}],[\”$\”,\“svg\“,null,{\“className\”:\“factory-module__WoZh8q__diagramSvg\”,\“viewBox\”:\“0 0 460 150\”,\“preserveAspectRatio\”:\“xMidYMid meet\”,\“children\”:[[\”$\”,\“text\“,null,{\“x\”:\“78\”,\“y\”:\“46\”,\“className\”:\“factory-module__WoZh8q__svgSideLabel\”,\“children\”:\“Plan first\”}],[\”$\”,\“rect\“,null,{\“x\”:\“88\”,\“y\”:\“28\”,\“width\”:\“70\”,\“height\”:\“28\”,\“rx\”:\“3\”,\“fill\”:\“none\”,\“stroke\”:\“#2e7ab8\”,\“strokeWidth\”:\“1.5\”,\“strokeDasharray\”:\“4,3\”}],[\”$\”,\“text\“,null,{\“x\”:\“123\”,\“y\”:\“42\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“8px\”,\“fill\”:\“#2e7ab8\”,\“fontWeight\“:600,\“textAnchor\”:\“middle\”},\“children\”:\“plan\”}],[\”$\”,\“rect\“,null,{\“x\”:\“166\”,\“y\”:\“28\”,\“width\”:\“184\”,\“height\”:\“28\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“text\“,null,{\“x\”:\“258\”,\“y\”:\“42\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“8px\”,\“fill\”:\“#f5f0e6\”,\“fontWeight\“:600,\“textAnchor\”:\“middle\”},\“children\”:\“one clean build\”}],[\”$\”,\“circle\“,null,{\“cx\”:\“382\”,\“cy\”:\“42\”,\“r\”:\“12\”,\“fill\”:\“none\”,\“stroke\”:\“#2e7ab8\”,\“strokeWidth\”:\“1.5\”}],[\”$\”,\“polyline\“,null,{\“points\”:\“376,42 380,47 388,37\”,\“fill\”:\“none\”,\“stroke\”:\“#2e7ab8\”,\“strokeWidth\”:\“2\”,\“strokeLinecap\”:\“round\”,\“strokeLinejoin\”:\“round\”}],[\”$\”,\“text\“,null,{\“x\”:\“78\”,\“y\”:\“110\”,\“className\”:\“factory-module__WoZh8q__svgSideLabel\”,\“children\”:\“Dive in\”}],[\”$\”,\“rect\“,null,{\“x\”:\“88\”,\“y\”:\“92\”,\“width\”:\“70\”,\“height\”:\“28\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}],[\”$\”,\“line\“,null,{\“x1\”:\“164\”,\“y1\”:\“100\”,\“x2\”:\“174\”,\“y2\”:\“112\”,\“stroke\”:\“#c47a6a\”,\“strokeWidth\”:\“2\”,\“strokeLinecap\”:\“round\”}],[\”$\”,\“line\“,null,{\“x1\”:\“174\”,\“y1\”:\“100\”,\“x2\”:\“164\”,\“y2\”:\“112\”,\“stroke\”:\“#c47a6a\”,\“strokeWidth\”:\“2\”,\“strokeLinecap\”:\“round\”}],[\”$\”,\“rect\“,null,{\“x\”:\“180\”,\“y\”:\“92\”,\“width\”:\“70\”,\“height\”:\“28\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}],[\”$\”,\“line\“,null,{\“x1\”:\“256\”,\“y1\”:\“100\”,\“x2\”:\“266\”,\“y2\”:\“112\”,\“stroke\”:\“#c47a6a\”,\“strokeWidth\”:\“2\”,\“strokeLinecap\”:\“round\”}],[\”$\”,\“line\“,null,{\“x1\”:\“266\”,\“y1\”:\“100\”,\“x2\”:\“256\”,\“y2\”:\“112\”,\“stroke\”:\“#c47a6a\”,\“strokeWidth\”:\“2\”,\“strokeLinecap\”:\“round\”}],[\”$\”,\“rect\“,null,{\“x\”:\“272\”,\“y\”:\“92\”,\“width\”:\“70\”,\“height\”:\“28\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}],[\”$\”,\“line\“,null,{\“x1\”:\“348\”,\“y1\”:\“100\”,\“x2\”:\“358\”,\“y2\”:\“112\”,\“stroke\”:\“#c47a6a\”,\“strokeWidth\”:\“2\”,\“strokeLinecap\”:\“round\”}],[\”$\”,\“line\“,null,{\“x1\”:\“358\”,\“y1\”:\“100\”,\“x2\”:\“348\”,\“y2\”:\“112\”,\“stroke\”:\“#c47a6a\”,\“strokeWidth\”:\“2\”,\“strokeLinecap\”:\“round\”}],[\”$\”,\“text\“,null,{\“x\”:\“372\”,\“y\”:\“106\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“12px\”,\“fill\”:\“#999\”,\“textAnchor\”:\“start\”},\“children\”:\“…\”}]]}],[\”$\”,\“p\“,null,{\“className\”:\“factory-module__WoZh8q__diagramCaption\”,\“children\”:\“Keep the principle even if you skip the mode\”}]]}]\n”])self.__next_f.push([1,”18:[\”$\”,\“h2\“,null,{\“children\”:\“Workflows and Subagents\”}]\n19:[\”$\”,\“p\“,null,{\“children\”:\“The models have become quite smart orchestrators of the lower-level models. This means that we are now able to speed up work a lot by having one higher-level model manage a bunch of lower ones. This doesn’t impact the overall model intelligence much, but it does impact the speed at which tasks get completed. Dynamic workflows are a riff on subagents where the task list is specified as a DAG. This seems to be quite elegant and flexible but consumes a ton of tokens.\”}]\n”])self.__next_f.push([1,”1a:[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramWrapper\”,\“children\”:[[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramTitle\”,\“children\”:\“Orchestration\”}],[\”$\”,\“svg\“,null,{\“className\”:\“factory-module__WoZh8q__diagramSvg\”,\“viewBox\”:\“0 0 460 140\”,\“preserveAspectRatio\”:\“xMidYMid meet\”,\“children\”:[[\”$\”,\“defs\“,null,{\“children\”:[\”$\”,\“marker\“,null,{\“id\”:\“arrowGraySF\”,\“viewBox\”:\“0 0 10 10\”,\“refX\”:\“10\”,\“refY\”:\“5\”,\“markerWidth\”:\“7\”,\“markerHeight\”:\“7\”,\“orient\”:\“auto-start-reverse\”,\“children\”:[\”$\”,\“path\“,null,{\“d\”:\“M 0 0 L 10 5 L 0 10 z\”,\“fill\”:\“#999\”}]}]}],[\”$\”,\“rect\“,null,{\“x\”:\“165\”,\“y\”:\“12\”,\“width\”:\“130\”,\“height\”:\“38\”,\“rx\”:\“6\”,\“className\”:\“factory-module__WoZh8q__svgNodeAccent\”}],[\”$\”,\“text\“,null,{\“x\”:\“230\”,\“y\”:\“27\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“11px\”,\“fontWeight\“:600,\“fill\”:\“#333\”,\“textAnchor\”:\“middle\”},\“children\”:\“Big Model\”}],[\”$\”,\“text\“,null,{\“x\”:\“230\”,\“y\”:\“41\”,\“style\”:{\“fontSize\”:\“7px\”,\“fill\”:\“#888\”,\“textAnchor\”:\“middle\”},\“children\”:\“plans, delegates, reviews\”}],[[\”$\”,\“line\”,\“0\”,{\“x1\“:230,\“y1\“:50,\“x2\“:90,\“y2\“:100,\“className\”:\“factory-module__WoZh8q__svgArrow\”,\“markerEnd\”:\“url(#arrowGraySF)\”}],[\”$\”,\“line\”,\“1\”,{\“x1\“:230,\“y1\“:50,\“x2\“:175,\“y2\“:100,\“className\”:\“factory-module__WoZh8q__svgArrow\”,\“markerEnd\”:\“url(#arrowGraySF)\”}],[\”$\”,\“line\”,\“2\”,{\“x1\“:230,\“y1\“:50,\“x2\“:260,\“y2\“:100,\“className\”:\“factory-module__WoZh8q__svgArrow\”,\“markerEnd\”:\“url(#arrowGraySF)\”}],[\”$\”,\“line\”,\“3\”,{\“x1\“:230,\“y1\“:50,\“x2\“:345,\“y2\“:100,\“className\”:\“factory-module__WoZh8q__svgArrow\”,\“markerEnd\”:\“url(#arrowGraySF)\”}],[\”$\”,\“line\”,\“4\”,{\“x1\“:230,\“y1\“:50,\“x2\“:430,\“y2\“:100,\“className\”:\“factory-module__WoZh8q__svgArrow\”,\“markerEnd\”:\“url(#arrowGraySF)\”}]],[[\”$\”,\“g\”,\“0\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:60,\“y\”:\“102\”,\“width\”:\“60\”,\“height\”:\“30\”,\“rx\”:\“5\”,\“fill\”:\“none\”,\“stroke\”:\“#bbb\”,\“strokeWidth\”:\“1.5\”}],[\”$\”,\“text\“,null,{\“x\“:90,\“y\”:\“117\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“8px\”,\“fontWeight\“:600,\“fill\”:\“#555\”,\“textAnchor\”:\“middle\”},\“children\”:\“small model\”}]]}],[\”$\”,\“g\”,\“1\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:145,\“y\”:\“102\”,\“width\”:\“60\”,\“height\”:\“30\”,\“rx\”:\“5\”,\“fill\”:\“none\”,\“stroke\”:\“#bbb\”,\“strokeWidth\”:\“1.5\”}],[\”$\”,\“text\“,null,{\“x\“:175,\“y\”:\“117\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“8px\”,\“fontWeight\“:600,\“fill\”:\“#555\”,\“textAnchor\”:\“middle\”},\“children\”:\“small model\”}]]}],[\”$\”,\“g\”,\“2\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:230,\“y\”:\“102\”,\“width\”:\“60\”,\“height\”:\“30\”,\“rx\”:\“5\”,\“fill\”:\“none\”,\“stroke\”:\“#bbb\”,\“strokeWidth\”:\“1.5\”}],[\”$\”,\“text\“,null,{\“x\“:260,\“y\”:\“117\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“8px\”,\“fontWeight\“:600,\“fill\”:\“#555\”,\“textAnchor\”:\“middle\”},\“children\”:\“small model\”}]]}],[\”$\”,\“g\”,\“3\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:315,\“y\”:\“102\”,\“width\”:\“60\”,\“height\”:\“30\”,\“rx\”:\“5\”,\“fill\”:\“none\”,\“stroke\”:\“#bbb\”,\“strokeWidth\”:\“1.5\”}],[\”$\”,\“text\“,null,{\“x\“:345,\“y\”:\“117\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“8px\”,\“fontWeight\“:600,\“fill\”:\“#555\”,\“textAnchor\”:\“middle\”},\“children\”:\“small model\”}]]}],[\”$\”,\“g\”,\“4\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:400,\“y\”:\“102\”,\“width\”:\“60\”,\“height\”:\“30\”,\“rx\”:\“5\”,\“fill\”:\“none\”,\“stroke\”:\“#bbb\”,\“strokeWidth\”:\“1.5\”}],[\”$\”,\“text\“,null,{\“x\“:430,\“y\”:\“117\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“8px\”,\“fontWeight\“:600,\“fill\”:\“#555\”,\“textAnchor\”:\“middle\”},\“children\”:\“small model\”}]]}]]]}],[\”$\”,\“p\“,null,{\“className\”:\“factory-module__WoZh8q__diagramCaption\”,\“children\”:\“One big model managing many small ones\”}]]}]\n”])self.__next_f.push([1,”1b:[\”$\”,\“h2\“,null,{\“children\”:\“Memory Is Weird but Improving\”}]\n1c:[\”$\”,\“p\“,null,{\“children\”:\“The ideal version of memory would be something that runs in the background silently and learns your preferences. In reality the harness doesn’t do this well yet. It will write or delete things from the memory file, but it is not trained well on the wide range of human preferences. I assume this will be solved eventually along with a host of other continual learning ideas.\”}]\n”])self.__next_f.push([1,”1d:[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramWrapper\”,\“children\”:[[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramTitle\”,\“children\”:\“Memory Across Sessions\”}],[\”$\”,\“svg\“,null,{\“className\”:\“factory-module__WoZh8q__diagramSvg\”,\“viewBox\”:\“0 0 460 160\”,\“preserveAspectRatio\”:\“xMidYMid meet\”,\“children\”:[[\”$\”,\“line\“,null,{\“x1\”:\“50\”,\“y1\”:\“12\”,\“x2\”:\“50\”,\“y2\”:\“125\”,\“stroke\”:\“#bbb\”,\“strokeWidth\”:\“1\”}],[\”$\”,\“text\“,null,{\“x\”:\“22\”,\“y\”:\“68\”,\“style\”:{\“fontSize\”:\“9px\”,\“fill\”:\“#555\”,\“fontWeight\“:600,\“textAnchor\”:\“middle\”},\“transform\”:\“rotate(-90, 22, 68)\”,\“children\”:\“What it knows\”}],[\”$\”,\“line\“,null,{\“x1\”:\“50\”,\“y1\”:\“125\”,\“x2\”:\“435\”,\“y2\”:\“125\”,\“stroke\”:\“#bbb\”,\“strokeWidth\”:\“1\”}],[\”$\”,\“text\“,null,{\“x\”:\“242\”,\“y\”:\“143\”,\“style\”:{\“fontSize\”:\“10px\”,\“fill\”:\“#555\”,\“fontWeight\“:600,\“textAnchor\”:\“middle\”},\“children\”:\“Sessions\”}],[\”$\”,\“polyline\“,null,{\“points\”:\“55,115 130,95 205,72 280,52 355,37 430,27\”,\“fill\”:\“none\”,\“stroke\”:\“#2e7ab8\”,\“strokeWidth\”:\“1.8\”,\“strokeDasharray\”:\“5,4\”,\“opacity\”:\“0.55\”}],[\”$\”,\“polyline\“,null,{\“points\”:\“55,120 100,120 100,105 150,105 150,112 190,112 190,92 250,92 250,98 300,98 300,80 360,80 360,84 430,84\”,\“fill\”:\“none\”,\“stroke\”:\“#6b6356\”,\“strokeWidth\”:\“2\”}],[\”$\”,\“line\“,null,{\“x1\”:\“252\”,\“y1\”:\“95\”,\“x2\”:\“262\”,\“y2\”:\“106\”,\“stroke\”:\“#c47a6a\”,\“strokeWidth\”:\“0.8\”}],[\”$\”,\“text\“,null,{\“x\”:\“264\”,\“y\”:\“110\”,\“style\”:{\“fontSize\”:\“7px\”,\“fill\”:\“#c47a6a\”,\“fontStyle\”:\“italic\”,\“textAnchor\”:\“start\”},\“children\”:\“deleted the wrong thing\”}],[\”$\”,\“line\“,null,{\“x1\”:\“62\”,\“y1\”:\“22\”,\“x2\”:\“80\”,\“y2\”:\“22\”,\“stroke\”:\“#2e7ab8\”,\“strokeWidth\”:\“1.8\”,\“strokeDasharray\”:\“5,4\”,\“opacity\”:\“0.55\”}],[\”$\”,\“text\“,null,{\“x\”:\“85\”,\“y\”:\“22\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“8px\”,\“fill\”:\“#555\”,\“textAnchor\”:\“start\”},\“children\”:\“ideal\”}],[\”$\”,\“line\“,null,{\“x1\”:\“62\”,\“y1\”:\“36\”,\“x2\”:\“80\”,\“y2\”:\“36\”,\“stroke\”:\“#6b6356\”,\“strokeWidth\”:\“2\”}],[\”$\”,\“text\“,null,{\“x\”:\“85\”,\“y\”:\“36\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“8px\”,\“fill\”:\“#555\”,\“textAnchor\”:\“start\”},\“children\”:\“today\”}]]}],[\”$\”,\“p\“,null,{\“className\”:\“factory-module__WoZh8q__diagramCaption\”,\“children\”:\“The gap between ideal memory and what the model does today\”}]]}]\n”])self.__next_f.push([1,”1e:[\”$\”,\“p\“,null,{\“children\”:\“There are ideas around dreaming and reflecting that may make the memory stack more reliable.\”}]\n1f:[\”$\”,\“h2\“,null,{\“children\”:\“Skills vs. The Bitter Lesson\”}]\n20:[\”$\”,\“p\“,null,{\“children\”:\“One way to think about skills is as documentation of a workflow or idiosyncrasy of your setup vs. the baseline. At this point the models are basically smart enough to figure anything out, but it is frustrating to have them relearn everything from scratch every session. So skills abbreviate this process since the models are trained to look at them first. As the models get bigger and smarter I would expect skills to fall away.\”}]\n”])self.__next_f.push([1,”21:[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramWrapper\”,\“children\”:[[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramTitle\”,\“children\”:\“Skills Skip the Ramp-Up\”}],[\”$\”,\“svg\“,null,{\“className\”:\“factory-module__WoZh8q__diagramSvg\”,\“viewBox\”:\“0 0 460 160\”,\“preserveAspectRatio\”:\“xMidYMid meet\”,\“children\”:[[\”$\”,\“line\“,null,{\“x1\”:\“50\”,\“y1\”:\“12\”,\“x2\”:\“50\”,\“y2\”:\“125\”,\“stroke\”:\“#bbb\”,\“strokeWidth\”:\“1\”}],[\”$\”,\“text\“,null,{\“x\”:\“22\”,\“y\”:\“68\”,\“style\”:{\“fontSize\”:\“9px\”,\“fill\”:\“#555\”,\“fontWeight\“:600,\“textAnchor\”:\“middle\”},\“transform\”:\“rotate(-90, 22, 68)\”,\“children\”:\“Context\”}],[\”$\”,\“line\“,null,{\“x1\”:\“50\”,\“y1\”:\“125\”,\“x2\”:\“435\”,\“y2\”:\“125\”,\“stroke\”:\“#bbb\”,\“strokeWidth\”:\“1\”}],[\”$\”,\“line\“,null,{\“x1\”:\“50\”,\“y1\”:\“45\”,\“x2\”:\“435\”,\“y2\”:\“45\”,\“stroke\”:\“#999\”,\“strokeWidth\”:\“0.8\”,\“strokeDasharray\”:\“4,4\”,\“opacity\”:\“0.6\”}],[\”$\”,\“text\“,null,{\“x\”:\“433\”,\“y\”:\“38\”,\“style\”:{\“fontSize\”:\“7px\”,\“fill\”:\“#888\”,\“fontStyle\”:\“italic\”,\“textAnchor\”:\“end\”},\“children\”:\“productive\”}],[[\”$\”,\“g\”,\“0\”,{\“children\”:[[\”$\”,\“polyline\“,null,{\“points\”:\“58,123 88,98 118,72 140,58\”,\“fill\”:\“none\”,\“stroke\”:\“#9a917e\”,\“strokeWidth\”:\“1.8\”}],[\”$\”,\“polyline\“,null,{\“points\”:\“58,70 83,52 108,44 140,41\”,\“fill\”:\“none\”,\“stroke\”:\“#2e7ab8\”,\“strokeWidth\”:\“1.8\”}],[\”$\”,\“text\“,null,{\“x\“:99,\“y\”:\“138\”,\“style\”:{\“fontSize\”:\“7.5px\”,\“fill\”:\“#888\”,\“textAnchor\”:\“middle\”},\“children\”:[\“session \“,1]}]]}],[\”$\”,\“g\”,\“1\”,{\“children\”:[[\”$\”,\“polyline\“,null,{\“points\”:\“153,123 183,98 213,72 235,58\”,\“fill\”:\“none\”,\“stroke\”:\“#9a917e\”,\“strokeWidth\”:\“1.8\”}],[\”$\”,\“polyline\“,null,{\“points\”:\“153,70 178,52 203,44 235,41\”,\“fill\”:\“none\”,\“stroke\”:\“#2e7ab8\”,\“strokeWidth\”:\“1.8\”}],[\”$\”,\“text\“,null,{\“x\“:194,\“y\”:\“138\”,\“style\”:{\“fontSize\”:\“7.5px\”,\“fill\”:\“#888\”,\“textAnchor\”:\“middle\”},\“children\”:[\“session \“,2]}]]}],[\”$\”,\“g\”,\“2\”,{\“children\”:[[\”$\”,\“polyline\“,null,{\“points\”:\“248,123 278,98 308,72 330,58\”,\“fill\”:\“none\”,\“stroke\”:\“#9a917e\”,\“strokeWidth\”:\“1.8\”}],[\”$\”,\“polyline\“,null,{\“points\”:\“248,70 273,52 298,44 330,41\”,\“fill\”:\“none\”,\“stroke\”:\“#2e7ab8\”,\“strokeWidth\”:\“1.8\”}],[\”$\”,\“text\“,null,{\“x\“:289,\“y\”:\“138\”,\“style\”:{\“fontSize\”:\“7.5px\”,\“fill\”:\“#888\”,\“textAnchor\”:\“middle\”},\“children\”:[\“session \“,3]}]]}],[\”$\”,\“g\”,\“3\”,{\“children\”:[[\”$\”,\“polyline\“,null,{\“points\”:\“343,123 373,98 403,72 425,58\”,\“fill\”:\“none\”,\“stroke\”:\“#9a917e\”,\“strokeWidth\”:\“1.8\”}],[\”$\”,\“polyline\“,null,{\“points\”:\“343,70 368,52 393,44 425,41\”,\“fill\”:\“none\”,\“stroke\”:\“#2e7ab8\”,\“strokeWidth\”:\“1.8\”}],[\”$\”,\“text\“,null,{\“x\“:384,\“y\”:\“138\”,\“style\”:{\“fontSize\”:\“7.5px\”,\“fill\”:\“#888\”,\“textAnchor\”:\“middle\”},\“children\”:[\“session \“,4]}]]}]],[\”$\”,\“line\“,null,{\“x1\”:\“62\”,\“y1\”:\“18\”,\“x2\”:\“80\”,\“y2\”:\“18\”,\“stroke\”:\“#2e7ab8\”,\“strokeWidth\”:\“1.8\”}],[\”$\”,\“text\“,null,{\“x\”:\“85\”,\“y\”:\“18\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“8px\”,\“fill\”:\“#555\”,\“textAnchor\”:\“start\”},\“children\”:\“with skills\”}],[\”$\”,\“line\“,null,{\“x1\”:\“140\”,\“y1\”:\“18\”,\“x2\”:\“158\”,\“y2\”:\“18\”,\“stroke\”:\“#9a917e\”,\“strokeWidth\”:\“1.8\”}],[\”$\”,\“text\“,null,{\“x\”:\“163\”,\“y\”:\“18\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“8px\”,\“fill\”:\“#555\”,\“textAnchor\”:\“start\”},\“children\”:\“from scratch\”}]]}],[\”$\”,\“p\“,null,{\“className\”:\“factory-module__WoZh8q__diagramCaption\”,\“children\”:\“Skills start each session closer to productive\”}]]}]\n”])self.__next_f.push([1,”22:[\”$\”,\“h2\“,null,{\“children\”:\“Moving Up the Abstraction Ladder\”}]\n23:[\”$\”,\“p\“,null,{\“children\”:[\“The current harnesses have too many bells and whistles. Given that the models are generally smart, we should expect the knobs to live one level below the UI and the models should just learn to change their own settings. In a perfect world, the harnesses actually get simpler as they get more advanced. This is related to the idea of the meta-harness, which you can read more about\”,\” \”,[\”$\”,\“a\“,null,{\“href\”:\“https://lilianweng.github.io/posts/2026-07-04-harness/\”,\“target\”:\“_blank\”,\“rel\”:\“noopener noreferrer\”,\“children\”:\“here\”}],\”.\”]}]\n24:[\”$\”,\“h2\“,null,{\“children\”:\“Integration Tests\”}]\n25:[\”$\”,\“p\“,null,{\“children\”:\“The correct way to validate changes in the new coding regime is by having a robust set of integration tests. This is how Bun and other teams have completed large buildouts in record time. Anything in your system that is not end-to-end testable is a massive liability. At Meridian, we rewrote our entire stack into modular TypeScript to make this process easier and review more streamlined.\”}]\n”])self.__next_f.push([1,”26:[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramWrapper\”,\“children\”:[[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramTitle\”,\“children\”:\“The Integration Loop\”}],[\”$\”,\“svg\“,null,{\“className\”:\“factory-module__WoZh8q__diagramSvg\”,\“viewBox\”:\“0 0 460 160\”,\“preserveAspectRatio\”:\“xMidYMid meet\”,\“children\”:[[\”$\”,\“defs\“,null,{\“children\”:[[\”$\”,\“marker\“,null,{\“id\”:\“arrowGraySFIT\”,\“viewBox\”:\“0 0 10 10\”,\“refX\”:\“10\”,\“refY\”:\“5\”,\“markerWidth\”:\“7\”,\“markerHeight\”:\“7\”,\“orient\”:\“auto-start-reverse\”,\“children\”:[\”$\”,\“path\“,null,{\“d\”:\“M 0 0 L 10 5 L 0 10 z\”,\“fill\”:\“#999\”}]}],[\”$\”,\“marker\“,null,{\“id\”:\“arrowBlueSFIT\”,\“viewBox\”:\“0 0 10 10\”,\“refX\”:\“10\”,\“refY\”:\“5\”,\“markerWidth\”:\“7\”,\“markerHeight\”:\“7\”,\“orient\”:\“auto-start-reverse\”,\“children\”:[\”$\”,\“path\“,null,{\“d\”:\“M 0 0 L 10 5 L 0 10 z\”,\“fill\”:\“#2e7ab8\”}]}]]}],[\”$\”,\“rect\“,null,{\“x\”:\“30\”,\“y\”:\“16\”,\“width\”:\“110\”,\“height\”:\“36\”,\“rx\”:\“5\”,\“fill\”:\“none\”,\“stroke\”:\“#bbb\”,\“strokeWidth\”:\“1.5\”}],[\”$\”,\“text\“,null,{\“x\”:\“85\”,\“y\”:\“34\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“9px\”,\“fontWeight\“:600,\“fill\”:\“#333\”,\“textAnchor\”:\“middle\”},\“children\”:\“agent writes code\”}],[\”$\”,\“line\“,null,{\“x1\”:\“140\”,\“y1\”:\“34\”,\“x2\”:\“172\”,\“y2\”:\“34\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”,\“markerEnd\”:\“url(#arrowGraySFIT)\”}],[\”$\”,\“rect\“,null,{\“x\”:\“175\”,\“y\”:\“16\”,\“width\”:\“110\”,\“height\”:\“36\”,\“rx\”:\“5\”,\“className\”:\“factory-module__WoZh8q__svgNodeAccent\”}],[\”$\”,\“text\“,null,{\“x\”:\“230\”,\“y\”:\“34\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“9px\”,\“fontWeight\“:600,\“fill\”:\“#333\”,\“textAnchor\”:\“middle\”},\“children\”:\“integration suite\”}],[\”$\”,\“line\“,null,{\“x1\”:\“285\”,\“y1\”:\“34\”,\“x2\”:\“317\”,\“y2\”:\“34\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”,\“markerEnd\”:\“url(#arrowGraySFIT)\”}],[\”$\”,\“rect\“,null,{\“x\”:\“320\”,\“y\”:\“16\”,\“width\”:\“110\”,\“height\”:\“36\”,\“rx\”:\“5\”,\“fill\”:\“none\”,\“stroke\”:\“#bbb\”,\“strokeWidth\”:\“1.5\”}],[\”$\”,\“text\“,null,{\“x\”:\“375\”,\“y\”:\“34\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“9px\”,\“fontWeight\“:600,\“fill\”:\“#333\”,\“textAnchor\”:\“middle\”},\“children\”:\“ship it\”}],[\”$\”,\“path\“,null,{\“d\”:\“M 230 52 L 230 76 L 85 76 L 85 55\”,\“fill\”:\“none\”,\“stroke\”:\“#2e7ab8\”,\“strokeWidth\”:\“1.2\”,\“strokeDasharray\”:\“4,3\”,\“markerEnd\”:\“url(#arrowBlueSFIT)\”}],[\”$\”,\“text\“,null,{\“x\”:\“158\”,\“y\”:\“71\”,\“style\”:{\“fontSize\”:\“7.5px\”,\“fill\”:\“#2e7ab8\”,\“fontStyle\”:\“italic\”,\“textAnchor\”:\“middle\”},\“children\”:\“fail: fix and retry, no human needed\”}],[\”$\”,\“text\“,null,{\“x\”:\“40\”,\“y\”:\“122\”,\“style\”:{\“fontSize\”:\“8px\”,\“fill\”:\“#888\”,\“textAnchor\”:\“start\”},\“children\”:\“your system\”}],[\”$\”,\“rect\“,null,{\“x\”:\“40\”,\“y\”:\“128\”,\“width\”:\“290\”,\“height\”:\“26\”,\“rx\”:\“4\”,\“fill\”:\“rgba(46,122,184,0.3)\”}],[\”$\”,\“text\“,null,{\“x\”:\“185\”,\“y\”:\“141\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“8.5px\”,\“fontWeight\“:600,\“fill\”:\“#1d5687\”,\“textAnchor\”:\“middle\”},\“children\”:\“end to end testable\”}],[\”$\”,\“rect\“,null,{\“x\”:\“332\”,\“y\”:\“128\”,\“width\”:\“88\”,\“height\”:\“26\”,\“rx\”:\“4\”,\“fill\”:\“rgba(196,122,106,0.55)\”}],[\”$\”,\“text\“,null,{\“x\”:\“376\”,\“y\”:\“141\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“8.5px\”,\“fontWeight\“:600,\“fill\”:\“#7a3226\”,\“textAnchor\”:\“middle\”},\“children\”:\“liability\”}]]}],[\”$\”,\“p\“,null,{\“className\”:\“factory-module__WoZh8q__diagramCaption\”,\“children\”:\“Anything not end-to-end testable is a liability\”}]]}]\n”])self.__next_f.push([1,”27:[\”$\”,\“h2\“,null,{\“children\”:\“Replacing GitHub\”}]\n28:[\”$\”,\“p\“,null,{\“children\”:\“If we want agents critiquing all PRs and full integration suites that our agents can easily run against, you can imagine why GitHub feels like a little bit of a relic. There is also some sense in which the output of code is kind of a compression of the work put into it. It would be nice if agents could communicate in a higher bandwidth way (traces, etc.). So many folks are thinking about what the next generation looks like here for enterprises.\”}]\n”])self.__next_f.push([1,”29:[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramWrapper\”,\“children\”:[[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramTitle\”,\“children\”:\“Communication Bandwidth\”}],[\”$\”,\“svg\“,null,{\“className\”:\“factory-module__WoZh8q__diagramSvg\”,\“viewBox\”:\“0 0 460 170\”,\“preserveAspectRatio\”:\“xMidYMid meet\”,\“children\”:[[\”$\”,\“text\“,null,{\“x\”:\“56\”,\“y\”:\“47\”,\“className\”:\“factory-module__WoZh8q__svgSideLabel\”,\“children\”:\“Today\”}],[\”$\”,\“rect\“,null,{\“x\”:\“70\”,\“y\”:\“26\”,\“width\”:\“80\”,\“height\”:\“34\”,\“rx\”:\“5\”,\“fill\”:\“none\”,\“stroke\”:\“#bbb\”,\“strokeWidth\”:\“1.5\”}],[\”$\”,\“text\“,null,{\“x\”:\“110\”,\“y\”:\“43\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“9px\”,\“fontWeight\“:600,\“fill\”:\“#555\”,\“textAnchor\”:\“middle\”},\“children\”:\“agent\”}],[\”$\”,\“line\“,null,{\“x1\”:\“150\”,\“y1\”:\“43\”,\“x2\”:\“310\”,\“y2\”:\“43\”,\“stroke\”:\“#999\”,\“strokeWidth\”:\“1.2\”}],[\”$\”,\“text\“,null,{\“x\”:\“230\”,\“y\”:\“34\”,\“style\”:{\“fontSize\”:\“8px\”,\“fill\”:\“#888\”,\“fontStyle\”:\“italic\”,\“textAnchor\”:\“middle\”},\“children\”:\“the diff\”}],[\”$\”,\“rect\“,null,{\“x\”:\“310\”,\“y\”:\“26\”,\“width\”:\“80\”,\“height\”:\“34\”,\“rx\”:\“5\”,\“fill\”:\“none\”,\“stroke\”:\“#bbb\”,\“strokeWidth\”:\“1.5\”}],[\”$\”,\“text\“,null,{\“x\”:\“350\”,\“y\”:\“43\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“9px\”,\“fontWeight\“:600,\“fill\”:\“#555\”,\“textAnchor\”:\“middle\”},\“children\”:\“agent\”}],[\”$\”,\“text\“,null,{\“x\”:\“56\”,\“y\”:\“127\”,\“className\”:\“factory-module__WoZh8q__svgSideLabel\”,\“children\”:\“Next\”}],[\”$\”,\“rect\“,null,{\“x\”:\“70\”,\“y\”:\“106\”,\“width\”:\“80\”,\“height\”:\“34\”,\“rx\”:\“5\”,\“className\”:\“factory-module__WoZh8q__svgNodeAccent\”}],[\”$\”,\“text\“,null,{\“x\”:\“110\”,\“y\”:\“123\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“9px\”,\“fontWeight\“:600,\“fill\”:\“#333\”,\“textAnchor\”:\“middle\”},\“children\”:\“agent\”}],[\”$\”,\“rect\“,null,{\“x\”:\“150\”,\“y\”:\“109\”,\“width\”:\“160\”,\“height\”:\“28\”,\“fill\”:\“rgba(46,122,184,0.22)\”}],[\”$\”,\“text\“,null,{\“x\”:\“230\”,\“y\”:\“123\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“8px\”,\“fontWeight\“:600,\“fill\”:\“#1d5687\”,\“textAnchor\”:\“middle\”},\“children\”:\“skills · traces · context\”}],[\”$\”,\“rect\“,null,{\“x\”:\“310\”,\“y\”:\“106\”,\“width\”:\“80\”,\“height\”:\“34\”,\“rx\”:\“5\”,\“className\”:\“factory-module__WoZh8q__svgNodeAccent\”}],[\”$\”,\“text\“,null,{\“x\”:\“350\”,\“y\”:\“123\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“9px\”,\“fontWeight\“:600,\“fill\”:\“#333\”,\“textAnchor\”:\“middle\”},\“children\”:\“agent\”}]]}],[\”$\”,\“p\“,null,{\“className\”:\“factory-module__WoZh8q__diagramCaption\”,\“children\”:\“Agents want to share more than a diff\”}]]}]\n”])self.__next_f.push([1,”2a:[\”$\”,\“h2\“,null,{\“children\”:\“The Agent Native Stack\”}]\n2b:[\”$\”,\“p\“,null,{\“children\”:\“This is basically true for all parts of the stack from AWS up through the IDE. I imagine we will end up with a fully vertically integrated cloud solution that is designed custom for agents and not humans. Some qualities this needs:\”}]\n2c:[\”$\”,\“ul\“,null,{\“children\”:[[\”$\”,\“li\“,null,{\“children\”:\“Fast deployment loop\”}],[\”$\”,\“li\“,null,{\“children\”:\“Agent native traces\”}],[\”$\”,\“li\“,null,{\“children\”:\“Easy to test and roll back\”}],[\”$\”,\“li\“,null,{\“children\”:\“Tiered permissioning\”}],[\”$\”,\“li\“,null,{\“children\”:\“Alerting callbacks for agents\”}]]}]\n”])self.__next_f.push([1,”2d:[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramWrapper\”,\“children\”:[[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramTitle\”,\“children\”:\“The Agent Native Stack\”}],[\”$\”,\“svg\“,null,{\“className\”:\“factory-module__WoZh8q__diagramSvg\”,\“viewBox\”:\“0 0 460 180\”,\“preserveAspectRatio\”:\“xMidYMid meet\”,\“children\”:[[\”$\”,\“polygon\“,null,{\“points\”:\“90,164 370,164 340,122 120,122\”,\“fill\”:\“#c2b8a0\”,\“stroke\”:\“#8a8170\”,\“strokeWidth\”:\“1\”}],[\”$\”,\“text\“,null,{\“x\”:\“230\”,\“y\”:\“143\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“11px\”,\“fontWeight\“:600,\“fill\”:\“#333\”,\“textAnchor\”:\“middle\”},\“children\”:\“aws\”}],[\”$\”,\“polygon\“,null,{\“points\”:\“123,116 337,116 307,74 153,74\”,\“fill\”:\“#d8d0bf\”,\“stroke\”:\“#8a8170\”,\“strokeWidth\”:\“1\”}],[\”$\”,\“text\“,null,{\“x\”:\“230\”,\“y\”:\“95\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“11px\”,\“fontWeight\“:600,\“fill\”:\“#333\”,\“textAnchor\”:\“middle\”},\“children\”:\“vercel + railway\”}],[\”$\”,\“polygon\“,null,{\“points\”:\“156,68 304,68 274,26 186,26\”,\“fill\”:\“#ebe6dc\”,\“stroke\”:\“#8a8170\”,\“strokeWidth\”:\“1\”}],[\”$\”,\“text\“,null,{\“x\”:\“230\”,\“y\”:\“47\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“11px\”,\“fontWeight\“:600,\“fill\”:\“#333\”,\“textAnchor\”:\“middle\”},\“children\”:\“app layer\”}],[[\”$\”,\“g\”,\“134\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:356,\“y\“:138,\“width\”:\“8\”,\“height\”:\“4\”,\“fill\”:\“#b8862e\”}],[\”$\”,\“rect\“,null,{\“x\“:356,\“y\“:146,\“width\”:\“8\”,\“height\”:\“4\”,\“fill\”:\“#b8862e\”}],[\”$\”,\“rect\“,null,{\“x\“:364,\“y\“:134,\“width\”:\“26\”,\“height\”:\“20\”,\“rx\”:\“4\”,\“fill\”:\“#b8862e\”}]]}],[\”$\”,\“g\”,\“86\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:322,\“y\“:90,\“width\”:\“8\”,\“height\”:\“4\”,\“fill\”:\“#b8862e\”}],[\”$\”,\“rect\“,null,{\“x\“:322,\“y\“:98,\“width\”:\“8\”,\“height\”:\“4\”,\“fill\”:\“#b8862e\”}],[\”$\”,\“rect\“,null,{\“x\“:330,\“y\“:86,\“width\”:\“26\”,\“height\”:\“20\”,\“rx\”:\“4\”,\“fill\”:\“#b8862e\”}]]}],[\”$\”,\“g\”,\“38\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:290,\“y\“:42,\“width\”:\“8\”,\“height\”:\“4\”,\“fill\”:\“#b8862e\”}],[\”$\”,\“rect\“,null,{\“x\“:290,\“y\“:50,\“width\”:\“8\”,\“height\”:\“4\”,\“fill\”:\“#b8862e\”}],[\”$\”,\“rect\“,null,{\“x\“:298,\“y\“:38,\“width\”:\“26\”,\“height\”:\“20\”,\“rx\”:\“4\”,\“fill\”:\“#b8862e\”}]]}]],[\”$\”,\“text\“,null,{\“x\”:\“356\”,\“y\”:\“14\”,\“style\”:{\“fontSize\”:\“8px\”,\“fill\”:\“#888\”,\“fontStyle\”:\“italic\”,\“textAnchor\”:\“middle\”},\“children\”:\“agent plugins\”}],[\”$\”,\“line\“,null,{\“x1\”:\“342\”,\“y1\”:\“19\”,\“x2\”:\“326\”,\“y2\”:\“36\”,\“stroke\”:\“#bbb\”,\“strokeWidth\”:\“0.8\”}]]}]]}]\n”])self.__next_f.push([1,”2e:[\”$\”,\“h2\“,null,{\“children\”:\“Is Typing Too Slow?\”}]\n2f:[\”$\”,\“p\“,null,{\“children\”:\“Typing is a pretty low bandwidth way to communicate ideas. It is hard to imagine that we will still be typing into our computers in a few years. The intermediate solution is voice-to-text transcription, but the future probably looks more like a fluid conversation with an assistant, an always-on microphone capturing casual conversations for context, and some sort of live video input. The Thinking Machines interaction models are a nice take on this idea.\”}]\n”])self.__next_f.push([1,”30:[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramWrapper\”,\“children\”:[[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramTitle\”,\“children\”:\“Input Bandwidth\”}],[\”$\”,\“svg\“,null,{\“className\”:\“factory-module__WoZh8q__diagramSvg\”,\“viewBox\”:\“0 0 460 160\”,\“preserveAspectRatio\”:\“xMidYMid meet\”,\“children\”:[[\”$\”,\“text\“,null,{\“x\”:\“77\”,\“y\”:\“34\”,\“style\”:{\“fontSize\”:\“8px\”,\“fill\”:\“#999\”,\“fontStyle\”:\“italic\”,\“textAnchor\”:\“middle\”},\“children\”:\“today\”}],[\”$\”,\“text\“,null,{\“x\”:\“300\”,\“y\”:\“34\”,\“style\”:{\“fontSize\”:\“8px\”,\“fill\”:\“#b8862e\”,\“fontStyle\”:\“italic\”,\“textAnchor\”:\“middle\”},\“children\”:\“the next generation\”}],[\”$\”,\“line\“,null,{\“x1\”:\“145\”,\“y1\”:\“30\”,\“x2\”:\“145\”,\“y2\”:\“126\”,\“stroke\”:\“#bbb\”,\“strokeWidth\”:\“0.8\”,\“strokeDasharray\”:\“4,4\”,\“opacity\”:\“0.7\”}],[\”$\”,\“g\“,null,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\”:\“35\”,\“y\”:\“78\”,\“width\”:\“84\”,\“height\”:\“44\”,\“rx\”:\“4\”,\“fill\”:\“none\”,\“stroke\”:\“#999\”,\“strokeWidth\”:\“1.8\”}],[[[\”$\”,\“rect\”,\“0-0\”,{\“x\“:41,\“y\“:84,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“0-1\”,{\“x\“:49,\“y\“:84,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“0-2\”,{\“x\“:57,\“y\“:84,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“0-3\”,{\“x\“:65,\“y\“:84,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“0-4\”,{\“x\“:73,\“y\“:84,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“0-5\”,{\“x\“:81,\“y\“:84,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“0-6\”,{\“x\“:89,\“y\“:84,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“0-7\”,{\“x\“:97,\“y\“:84,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“0-8\”,{\“x\“:105,\“y\“:84,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}]],[[\”$\”,\“rect\”,\“1-0\”,{\“x\“:44,\“y\“:93,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“1-1\”,{\“x\“:52,\“y\“:93,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“1-2\”,{\“x\“:60,\“y\“:93,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“1-3\”,{\“x\“:68,\“y\“:93,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“1-4\”,{\“x\“:76,\“y\“:93,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“1-5\”,{\“x\“:84,\“y\“:93,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“1-6\”,{\“x\“:92,\“y\“:93,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“1-7\”,{\“x\“:100,\“y\“:93,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“1-8\”,{\“x\“:108,\“y\“:93,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}]],[[\”$\”,\“rect\”,\“2-0\”,{\“x\“:41,\“y\“:102,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“2-1\”,{\“x\“:49,\“y\“:102,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“2-2\”,{\“x\“:57,\“y\“:102,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“2-3\”,{\“x\“:65,\“y\“:102,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“2-4\”,{\“x\“:73,\“y\“:102,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“2-5\”,{\“x\“:81,\“y\“:102,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“2-6\”,{\“x\“:89,\“y\“:102,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“2-7\”,{\“x\“:97,\“y\“:102,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“rect\”,\“2-8\”,{\“x\“:105,\“y\“:102,\“width\”:\“5.5\”,\“height\”:\“5.5\”,\“rx\”:\“1\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}]]],[\”$\”,\“rect\“,null,{\“x\”:\“57\”,\“y\”:\“112\”,\“width\”:\“40\”,\“height\”:\“5.5\”,\“rx\”:\“1.5\”,\“fill\”:\“#999\”,\“opacity\”:\“0.55\”}],[\”$\”,\“line\“,null,{\“x1\”:\“30\”,\“y1\”:\“130\”,\“x2\”:\“125\”,\“y2\”:\“130\”,\“stroke\”:\“#bbb\”,\“strokeWidth\”:\“1\”}]]}],[\”$\”,\“g\“,null,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\”:\“181\”,\“y\”:\“54\”,\“width\”:\“20\”,\“height\”:\“38\”,\“rx\”:\“10\”,\“fill\”:\“#6b6356\”}],[\”$\”,\“path\“,null,{\“d\”:\“M 174 80 a 17 17 0 0 0 34 0\”,\“fill\”:\“none\”,\“stroke\”:\“#6b6356\”,\“strokeWidth\”:\“3\”,\“strokeLinecap\”:\“round\”}],[\”$\”,\“line\“,null,{\“x1\”:\“191\”,\“y1\”:\“97\”,\“x2\”:\“191\”,\“y2\”:\“110\”,\“stroke\”:\“#6b6356\”,\“strokeWidth\”:\“3\”,\“strokeLinecap\”:\“round\”}],[\”$\”,\“line\“,null,{\“x1\”:\“182\”,\“y1\”:\“110\”,\“x2\”:\“200\”,\“y2\”:\“110\”,\“stroke\”:\“#6b6356\”,\“strokeWidth\”:\“3\”,\“strokeLinecap\”:\“round\”}],[\”$\”,\“path\“,null,{\“d\”:\“M 212 62 a 14 14 0 0 1 0 24\”,\“fill\”:\“none\”,\“stroke\”:\“#b8862e\”,\“strokeWidth\”:\“2\”,\“strokeLinecap\”:\“round\”}],[\”$\”,\“path\“,null,{\“d\”:\“M 219 55 a 22 22 0 0 1 0 38\”,\“fill\”:\“none\”,\“stroke\”:\“#b8862e\”,\“strokeWidth\”:\“2\”,\“strokeLinecap\”:\“round\”,\“opacity\”:\“0.6\”}],[\”$\”,\“line\“,null,{\“x1\”:\“165\”,\“y1\”:\“130\”,\“x2\”:\“235\”,\“y2\”:\“130\”,\“stroke\”:\“#bbb\”,\“strokeWidth\”:\“1\”}]]}],[\”$\”,\“g\“,null,{\“children\”:[[\”$\”,\“circle\“,null,{\“cx\”:\“264\”,\“cy\”:\“54\”,\“r\”:\“4.5\”,\“fill\”:\“#b8862e\”}],[\”$\”,\“circle\“,null,{\“cx\”:\“264\”,\“cy\”:\“54\”,\“r\”:\“8.5\”,\“fill\”:\“none\”,\“stroke\”:\“#b8862e\”,\“strokeWidth\”:\“1.2\”,\“opacity\”:\“0.45\”}],[[\”$\”,\“rect\”,\“0\”,{\“x\“:273,\“y\“:77,\“width\”:\“4.5\”,\“height\“:14,\“rx\”:\“2.25\”,\“fill\”:\“#6b6356\”}],[\”$\”,\“rect\”,\“1\”,{\“x\“:282,\“y\“:71,\“width\”:\“4.5\”,\“height\“:26,\“rx\”:\“2.25\”,\“fill\”:\“#6b6356\”}],[\”$\”,\“rect\”,\“2\”,{\“x\“:291,\“y\“:64,\“width\”:\“4.5\”,\“height\“:40,\“rx\”:\“2.25\”,\“fill\”:\“#6b6356\”}],[\”$\”,\“rect\”,\“3\”,{\“x\“:300,\“y\“:58,\“width\”:\“4.5\”,\“height\“:52,\“rx\”:\“2.25\”,\“fill\”:\“#6b6356\”}],[\”$\”,\“rect\”,\“4\”,{\“x\“:309,\“y\“:64,\“width\”:\“4.5\”,\“height\“:40,\“rx\”:\“2.25\”,\“fill\”:\“#6b6356\”}],[\”$\”,\“rect\”,\“5\”,{\“x\“:318,\“y\“:71,\“width\”:\“4.5\”,\“height\“:26,\“rx\”:\“2.25\”,\“fill\”:\“#6b6356\”}],[\”$\”,\“rect\”,\“6\”,{\“x\“:327,\“y\“:77,\“width\”:\“4.5\”,\“height\“:14,\“rx\”:\“2.25\”,\“fill\”:\“#6b6356\”}]],[\”$\”,\“line\“,null,{\“x1\”:\“252\”,\“y1\”:\“130\”,\“x2\”:\“342\”,\“y2\”:\“130\”,\“stroke\”:\“#bbb\”,\“strokeWidth\”:\“1\”}]]}],[\”$\”,\“g\“,null,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\”:\“366\”,\“y\”:\“64\”,\“width\”:\“44\”,\“height\”:\“34\”,\“rx\”:\“5\”,\“fill\”:\“#6b6356\”}],[\”$\”,\“polygon\“,null,{\“points\”:\“412,72 430,62 430,100 412,90\”,\“fill\”:\“#6b6356\”}],\“$L46\”,\“$L47\”,\“$L48\”,\“$L49\”]}],\“$L4a\”,\“$L4b\”,\“$L4c\”,\“$L4d\”]}],\“$L4e\”]}]\n”])self.__next_f.push([1,”31:[\”$\”,\“h2\“,null,{\“children\”:\“Local vs. Cloud\”}]\n32:[\”$\”,\“p\“,null,{\“children\”:\“One of the biggest debates around the dev stack is whether the agent should be primarily housed on a local machine or in the cloud. It is much easier to get started on a local machine and it is easier to model the permissions of the agent. But as many have noticed, local development does not scale well and is not natively multiplayer. For this reason, cloud has been on the rise recently and many products are ending up in an awkward spot, split between the two.\”}]\n”])self.__next_f.push([1,”33:[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramWrapper\”,\“children\”:[[\”$\”,\“div\“,null,{\“className\”:\“factory-module__WoZh8q__diagramTitle\”,\“children\”:\“Local vs. Cloud\”}],[\”$\”,\“svg\“,null,{\“className\”:\“factory-module__WoZh8q__diagramSvg\”,\“viewBox\”:\“0 0 460 135\”,\“preserveAspectRatio\”:\“xMidYMid meet\”,\“children\”:[[\”$\”,\“line\“,null,{\“x1\”:\“230\”,\“y1\”:\“16\”,\“x2\”:\“230\”,\“y2\”:\“120\”,\“stroke\”:\“#bbb\”,\“strokeWidth\”:\“0.8\”,\“strokeDasharray\”:\“4,4\”,\“opacity\”:\“0.7\”}],[\”$\”,\“g\“,null,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\”:\“85\”,\“y\”:\“42\”,\“width\”:\“60\”,\“height\”:\“40\”,\“rx\”:\“3\”,\“fill\”:\“none\”,\“stroke\”:\“#555\”,\“strokeWidth\”:\“1.8\”}],[\”$\”,\“rect\“,null,{\“x\”:\“90\”,\“y\”:\“47\”,\“width\”:\“50\”,\“height\”:\“30\”,\“rx\”:\“1.5\”,\“fill\”:\“#555\”,\“opacity\”:\“0.15\”}],[\”$\”,\“polygon\“,null,{\“points\”:\“76,86 154,86 162,95 68,95\”,\“fill\”:\“#555\”,\“opacity\”:\“0.8\”}],[\”$\”,\“text\“,null,{\“x\”:\“115\”,\“y\”:\“122\”,\“style\”:{\“fontSize\”:\“10px\”,\“fontWeight\“:600,\“fill\”:\“#333\”,\“textAnchor\”:\“middle\”},\“children\”:\“Local\”}]]}],[\”$\”,\“g\“,null,{\“children\”:[[\”$\”,\“circle\“,null,{\“cx\”:\“325\”,\“cy\”:\“72\”,\“r\”:\“15\”,\“fill\”:\“#8a8170\”}],[\”$\”,\“circle\“,null,{\“cx\”:\“346\”,\“cy\”:\“62\”,\“r\”:\“19\”,\“fill\”:\“#8a8170\”}],[\”$\”,\“circle\“,null,{\“cx\”:\“368\”,\“cy\”:\“72\”,\“r\”:\“14\”,\“fill\”:\“#8a8170\”}],[\”$\”,\“rect\“,null,{\“x\”:\“322\”,\“y\”:\“68\”,\“width\”:\“52\”,\“height\”:\“18\”,\“rx\”:\“9\”,\“fill\”:\“#8a8170\”}],[\”$\”,\“text\“,null,{\“x\”:\“346\”,\“y\”:\“122\”,\“style\”:{\“fontSize\”:\“10px\”,\“fontWeight\“:600,\“fill\”:\“#333\”,\“textAnchor\”:\“middle\”},\“children\”:\“Cloud\”}]]}],[\”$\”,\“rect\“,null,{\“x\”:\“202\”,\“y\”:\“52\”,\“width\”:\“56\”,\“height\”:\“26\”,\“rx\”:\“4\”,\“fill\”:\“#ebe6dc\”,\“stroke\”:\“#999\”,\“strokeWidth\”:\“1.2\”}],[\”$\”,\“text\“,null,{\“x\”:\“230\”,\“y\”:\“65\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“8px\”,\“fontWeight\“:600,\“fill\”:\“#555\”,\“textAnchor\”:\“middle\”},\“children\”:\“products\”}],[\”$\”,\“text\“,null,{\“x\”:\“230\”,\“y\”:\“92\”,\“style\”:{\“fontSize\”:\“7px\”,\“fill\”:\“#999\”,\“fontStyle\”:\“italic\”,\“textAnchor\”:\“middle\”},\“children\”:\“awkwardly split\”}]]}]]}]\n”])self.__next_f.push([1,”34:[\”$\”,\“h2\“,null,{\“children\”:\“Current Weaknesses\”}]\n35:[\”$\”,\“ul\“,null,{\“children\”:[[\”$\”,\“li\“,null,{\“children\”:\“Extremely long-running workflows are hard to manage\”}],[\”$\”,\“li\“,null,{\“children\”:\“Extracting business context is painful\”}],[\”$\”,\“li\“,null,{\“children\”:\“Continual learning / sample efficiency\”}],[\”$\”,\“li\“,null,{\“children\”:\“Computer use / restricted platforms\”}],[\”$\”,\“li\“,null,{\“children\”:\“Always-on agents is unsolved\”}]]}]\n36:[\”$\”,\“link\”,\“0\”,{\“rel\”:\“stylesheet\”,\“href\”:\”/_next/static/chunks/42f679cbdfc61c13.css\”,\“precedence\”:\“next\”,\“crossOrigin\”:\“$undefined\”,\“nonce\”:\“$undefined\”}]\n37:[\”$\”,\“script\”,\“script-0\”,{\“src\”:\”/_next/static/chunks/684bfa6e943b1d1e.js\”,\“async\“:true,\“nonce\”:\“$undefined\”}]\n38:[\”$\”,\“$L4f\“,null,{\“children\”:[\”$\”,\“$50\“,null,{\“name\”:\“Next.MetadataOutlet\”,\“children\”:\”$@51\”}]}]\n39:[\”$\”,\“$1\”,\“h\”,{\“children\”:[null,[\”$\”,\“$L52\“,null,{\“children\”:\“$L53\”}],[\”$\”,\“div\“,null,{\“hidden\“:true,\“children\”:[\”$\”,\“$L54\“,null,{\“children\”:[\”$\”,\“$50\“,null,{\“name\”:\“Next.Metadata\”,\“children\”:\“$L55\”}]}]}],[\”$\”,\“meta\“,null,{\“name\”:\“next-size-adjust\”,\“content\”:\”\”}]]}]\n”])self.__next_f.push([1,”3b:[\”$\”,\“rect\“,null,{\“x\“:167,\“y\”:\“143\”,\“width\”:\“35\”,\“height\”:\“16\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}]\n3c:[\”$\”,\“rect\“,null,{\“x\“:167,\“y\”:\“164\”,\“width\”:\“35\”,\“height\”:\“16\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}]\n3d:[[\”$\”,\“line\“,null,{\“x1\“:202,\“y1\”:\“130\”,\“x2\“:210,\“y2\”:\“145\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“line\“,null,{\“x1\“:202,\“y1\”:\“151\”,\“x2\“:210,\“y2\”:\“151\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“line\“,null,{\“x1\“:202,\“y1\”:\“172\”,\“x2\“:210,\“y2\”:\“157\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}]]\n3e:[\”$\”,\“g\”,\“2\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:210,\“y\”:\“138\”,\“width\”:\“28\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“line\“,null,{\“x1\“:238,\“y1\”:\“145\”,\“x2\“:246,\“y2\”:\“130\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“line\“,null,{\“x1\“:238,\“y1\”:\“151\”,\“x2\“:246,\“y2\”:\“151\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“line\“,null,{\“x1\“:238,\“y1\”:\“157\”,\“x2\“:246,\“y2\”:\“172\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“rect\“,null,{\“x\“:246,\“y\”:\“122\”,\“width\”:\“35\”,\“height\”:\“16\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}],[\”$\”,\“rect\“,null,{\“x\“:246,\“y\”:\“143\”,\“width\”:\“35\”,\“height\”:\“16\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}],[\”$\”,\“rect\“,null,{\“x\“:246,\“y\”:\“164\”,\“width\”:\“35\”,\“height\”:\“16\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}],[[\”$\”,\“line\“,null,{\“x1\“:281,\“y1\”:\“130\”,\“x2\“:289,\“y2\”:\“145\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“line\“,null,{\“x1\“:281,\“y1\”:\“151\”,\“x2\“:289,\“y2\”:\“151\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“line\“,null,{\“x1\“:281,\“y1\”:\“172\”,\“x2\“:289,\“y2\”:\“157\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}]]]}]\n3f:[\”$\”,\“g\”,\“3\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:289,\“y\”:\“138\”,\“width\”:\“28\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“line\“,null,{\“x1\“:317,\“y1\”:\“145\”,\“x2\“:325,\“y2\”:\“130\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“line\“,null,{\“x1\“:317,\“y1\”:\“151\”,\“x2\“:325,\“y2\”:\“151\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“line\“,null,{\“x1\“:317,\“y1\”:\“157\”,\“x2\“:325,\“y2\”:\“172\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“rect\“,null,{\“x\“:325,\“y\”:\“122\”,\“width\”:\“35\”,\“height\”:\“16\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}],[\”$\”,\“rect\“,null,{\“x\“:325,\“y\”:\“143\”,\“width\”:\“35\”,\“height\”:\“16\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}],[\”$\”,\“rect\“,null,{\“x\“:325,\“y\”:\“164\”,\“width\”:\“35\”,\“height\”:\“16\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}],[[\”$\”,\“line\“,null,{\“x1\“:360,\“y1\”:\“130\”,\“x2\“:368,\“y2\”:\“145\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“line\“,null,{\“x1\“:360,\“y1\”:\“151\”,\“x2\“:368,\“y2\”:\“151\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“line\“,null,{\“x1\“:360,\“y1\”:\“172\”,\“x2\“:368,\“y2\”:\“157\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}]]]}]\n40:[\”$\”,\“g\”,\“4\”,{\“children\”:[[\”$\”,\“rect\“,null,{\“x\“:368,\“y\”:\“138\”,\“width\”:\“28\”,\“height\”:\“26\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}],[\”$\”,\“line\“,null,{\“x1\“:396,\“y1\”:\“145\”,\“x2\“:404,\“y2\”:\“130\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“line\“,null,{\“x1\“:396,\“y1\”:\“151\”,\“x2\“:404,\“y2\”:\“151\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“line\“,null,{\“x1\“:396,\“y1\”:\“157\”,\“x2\“:404,\“y2\”:\“172\”,\“className\”:\“factory-module__WoZh8q__svgArrow\”}],[\”$\”,\“rect\“,null,{\“x\“:404,\“y\”:\“122\”,\“width\”:\“35\”,\“height\”:\“16\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}],[\”$\”,\“rect\“,null,{\“x\“:404,\“y\”:\“143\”,\“width\”:\“35\”,\“height\”:\“16\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}],[\”$\”,\“rect\“,null,{\“x\“:404,\“y\”:\“164\”,\“width\”:\“35\”,\“height\”:\“16\”,\“rx\”:\“3\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}],false]}]\n41:[\”$\”,\“rect\“,null,{\“x\”:\“110\”,\“y\”:\“204\”,\“width\”:\“16\”,\“height\”:\“12\”,\“rx\”:\“2\”,\“className\”:\“factory-module__WoZh8q__svgBarThink\”}]\n42:[\”$\”,\“text\“,null,{\“x\”:\“134\”,\“y\”:\“210\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“10px\”,\“fill\”:\“#555\”,\“textAnchor\”:\“start\”},\“children\”:\“Thinking\”}]\n43:[\”$\”,\“rect\“,null,{\“x\””])self.__next_f.push([1,”:\“240\”,\“y\”:\“204\”,\“width\”:\“16\”,\“height\”:\“12\”,\“rx\”:\“2\”,\“className\”:\“factory-module__WoZh8q__svgBarHarness\”}]\n44:[\”$\”,\“text\“,null,{\“x\”:\“264\”,\“y\”:\“210\”,\“dy\”:\“0.35em\”,\“style\”:{\“fontSize\”:\“10px\”,\“fill\”:\“#555\”,\“textAnchor\”:\“start\”},\“children\”:\“Everything else\”}]\n45:[\”$\”,\“p\“,null,{\“className\”:\“factory-module__WoZh8q__diagramCaption\”,\“children\”:\“Everything around the thinking step should be fast and parallelizable\”}]\n46:[\”$\”,\“circle\“,null,{\“cx\”:\“376\”,\“cy\”:\“72\”,\“r\”:\“3\”,\“fill\”:\“#b8862e\”}]\n47:[\”$\”,\“path\“,null,{\“d\”:\“M 436 68 a 13 13 0 0 1 0 26\”,\“fill\”:\“none\”,\“stroke\”:\“#b8862e\”,\“strokeWidth\”:\“2\”,\“strokeLinecap\”:\“round\”}]\n48:[\”$\”,\“path\“,null,{\“d\”:\“M 442 61 a 21 21 0 0 1 0 40\”,\“fill\”:\“none\”,\“stroke\”:\“#b8862e\”,\“strokeWidth\”:\“2\”,\“strokeLinecap\”:\“round\”,\“opacity\”:\“0.6\”}]\n49:[\”$\”,\“line\“,null,{\“x1\”:\“358\”,\“y1\”:\“130\”,\“x2\”:\“448\”,\“y2\”:\“130\”,\“stroke\”:\“#bbb\”,\“strokeWidth\”:\“1\”}]\n4a:[\”$\”,\“text\“,null,{\“x\”:\“77\”,\“y\”:\“150\”,\“style\”:{\“fontSize\”:\“10px\”,\“fontWeight\“:600,\“fill\”:\“#888\”,\“textAnchor\”:\“middle\”},\“children\”:\“Typing\”}]\n4b:[\”$\”,\“text\“,null,{\“x\”:\“197\”,\“y\”:\“150\”,\“style\”:{\“fontSize\”:\“10px\”,\“fontWeight\“:600,\“fill\”:\“#333\”,\“textAnchor\”:\“middle\”},\“children\”:\“Voice\”}]\n4c:[\”$\”,\“text\“,null,{\“x\”:\“298\”,\“y\”:\“150\”,\“style\”:{\“fontSize\”:\“10px\”,\“fontWeight\“:600,\“fill\”:\“#333\”,\“textAnchor\”:\“middle\”},\“children\”:\“Conversation Capture\”}]\n4d:[\”$\”,\“text\“,null,{\“x\”:\“403\”,\“y\”:\“150\”,\“style\”:{\“fontSize\”:\“10px\”,\“fontWeight\“:600,\“fill\”:\“#333\”,\“textAnchor\”:\“middle\”},\“children\”:\“Live Video\”}]\n4e:[\”$\”,\“p\“,null,{\“className\”:\“factory-module__WoZh8q__diagramCaption\”,\“children\”:\“Voice, ambient capture, and video carry more context than typing\”}]\n”])self.__next_f.push([1,”53:[[\”$\”,\“meta\”,\“0\”,{\“charSet\”:\“utf-8\”}],[\”$\”,\“meta\”,\“1\”,{\“name\”:\“viewport\”,\“content\”:\“width=device-width, initial-scale=1\”}]]\n”])self.__next_f.push([1,”56:I[27201,[\”/_next/static/chunks/ff1a16fafef87110.js\”,\”/_next/static/chunks/7340adf74ff47ec0.js\”],\“IconMark\”]\n51:null\n”])self.__next_f.push([1,”55:[[\”$\”,\“title\”,\“0\”,{\“children\”:\“Notes on the Software Factory | Benedict Brady\”}],[\”$\”,\“meta\”,\“1\”,{\“name\”:\“description\”,\“content\”:\“Notes from a talk on vibe coding: giving agents tools, speeding up the bottleneck, critics, memory, skills, integration tests, and the agent native stack.\”}],[\”$\”,\“meta\”,\“2\”,{\“name\”:\“author\”,\“content\”:\“Benedict Brady\”}],[\”$\”,\“meta\”,\“3\”,{\“name\”:\“keywords\”,\“content\”:\“Benedict Brady,language models,AI benchmarks,market structure,sports analytics\”}],[\”$\”,\“meta\”,\“4\”,{\“name\”:\“creator\”,\“content\”:\“Benedict Brady\”}],[\”$\”,\“meta\”,\“5\”,{\“name\”:\“robots\”,\“content\”:\“index, follow\”}],[\”$\”,\“link\”,\“6\”,{\“rel\”:\“canonical\”,\“href\”:\“https://benedict.dev/software-factory\”}],[\”$\”,\“meta\”,\“7\”,{\“property\”:\“og:title\”,\“content\”:\“Notes on the Software Factory\”}],[\”$\”,\“meta\”,\“8\”,{\“property\”:\“og:description\”,\“content\”:\“Notes from a talk on vibe coding: giving agents tools, speeding up the bottleneck, critics, memory, skills, integration tests, and the agent native stack.\”}],[\”$\”,\“meta\”,\“9\”,{\“property\”:\“og:url\”,\“content\”:\“https://benedict.dev/software-factory\”}],[\”$\”,\“meta\”,\“10\”,{\“property\”:\“og:image:alt\”,\“content\”:\“Notes on the Software Factory | Benedict Brady\”}],[\”$\”,\“meta\”,\“11\”,{\“property\”:\“og:image:type\”,\“content\”:\“image/png\”}],[\”$\”,\“meta\”,\“12\”,{\“property\”:\“og:image\”,\“content\”:\“https://benedict.dev/software-factory/opengraph-image?9e8376fec7bce942\”}],[\”$\”,\“meta\”,\“13\”,{\“property\”:\“og:image:width\”,\“content\”:\“1200\”}],[\”$\”,\“meta\”,\“14\”,{\“property\”:\“og:image:height\”,\“content\”:\“630\”}],[\”$\”,\“meta\”,\“15\”,{\“property\”:\“og:type\”,\“content\”:\“article\”}],[\”$\”,\“meta\”,\“16\”,{\“property\”:\“article:published_time\”,\“content\”:\“2026-07-08T00:00:00Z\”}],[\”$\”,\“meta\”,\“17\”,{\“property\”:\“article:author\”,\“content\”:\“Benedict Brady\”}],[\”$\”,\“meta\”,\“18\”,{\“name\”:\“twitter:card\”,\“content\”:\“summary\”}],[\”$\”,\“meta\”,\“19\”,{\“name\”:\“twitter:title\”,\“content\”:\“Notes on the Software Factory\”}],[\”$\”,\“meta\”,\“20\”,{\“name\”:\“twitter:description\”,\“content\”:\“Notes from a talk on vibe coding: giving agents tools, speeding up the bottleneck, critics, memory, skills, integration tests, and the agent native stack.\”}],[\”$\”,\“meta\”,\“21\”,{\“name\”:\“twitter:image:alt\”,\“content\”:\“Notes on the Software Factory | Benedict Brady\”}],[\”$\”,\“meta\”,\“22\”,{\“name\”:\“twitter:image:type\”,\“content\”:\“image/png\”}],[\”$\”,\“meta\”,\“23\”,{\“name\”:\“twitter:image\”,\“content\”:\“https://benedict.dev/software-factory/opengraph-image?9e8376fec7bce942\”}],[\”$\”,\“meta\”,\“24\”,{\“name\”:\“twitter:image:width\”,\“content\”:\“1200\”}],[\”$\”,\“meta\”,\“25\”,{\“name\”:\“twitter:image:height\”,\“content\”:\“630\”}],[\”$\”,\“link\”,\“26\”,{\“rel\”:\“icon\”,\“href\”:\“/icon.svg\”}],[\”$\”,\“link\”,\“27\”,{\“rel\”:\“apple-touch-icon\”,\“href\”:\“/apple-icon.svg\”}],[\”$\”,\“$L56\”,\“28\”,{}]]\n”]) |