Skip to main content
Explore Products
Orbyt Jobs
Orbyt Intelligence
Orbyt One
Orbyt Jobs
Overview
The job search CRM. Free forever.
Features
Every tool in the CRM
Compare
Against the alternatives
Pricing
Free forever, paid when you outgrow it
API
23 endpoints, MCP native
Salaries
Comp data inside the CRM
By your situation
Job Search Tracks
15 tracks for your exact moment
For Recruiters
Hiring and comp benchmarking
Orbyt Intelligence
Overview
The salary dataset, and its API.
Features
What the platform does
Compare
Against the alternatives
Pricing
Free tier, then Pro and Ultra
API
20 endpoints, Decision-Ready
Start without a card
Playground
Run a live query
MCP server
Three steps into Claude Code
API docs
Endpoints, auth, and limits
Orbyt One
Overview
One account. Every Orbyt product.
Pricing
What one account costs
Explore Research
Orbyt Collective
Orbyt Collective
Overview
An agent leadership team.
How It Works
The machinery, end to end
Process
How the work actually moves
Leadership
The agent officers
Agent Seats
Every seat, and what it is doing
Autonomy Ledger
What it decides without us
Influences
The minds we build like
Published
Research Hub
Papers and field notes.
Agent-Native Dataset Design
Preprint, DOI 10.5281/zenodo.19754393
Governing an Agent Leadership Team
Preprint, Zenodo deposit pending
Blog
The Machine. It Runs the Company.
How the whole org actually runs
My C-Suite of Agents Named Themselves.
The officers, and how they got names
391 Yeses and Not One No.
What the agents may actually touch
Explore Developers
Orbyt Jobs
Orbyt Intelligence
Orbyt One
Build
Jobs API Docs
23 endpoints, MCP native
MCP Integrations
Claude Desktop
Connect over MCP.
ChatGPT GPT Actions
Connect as a custom GPT action.
Apple Shortcuts
Connect from Shortcuts.
Zapier / Make.com / n8n
Connect with no code.
OpenClaw
Setup in under a minute.
Across products
Developer Hub
Start here
Orbyt API
The platform API
Build
Intelligence API
20 endpoints, Decision-Ready
Webhooks
Events and delivery
CLI
The terminal client
API Changelog
Every version, dated
Try
MCP Server
Wired into Claude Code in three steps
Playground
Engine response shapes with cURL
Try It Live
One call, one real response
Reference
Reference
The full index
Methodology
How the numbers are made
Engines
What computes each answer
Dataset
What is in it, and where from
Glossary
Every term, defined
Status
Live service health
Across products
Developer Hub
Start here
Orbyt API
The platform API
Explore Resources
Orbyt Jobs
Orbyt Intelligence
Orbyt One
Learn
Interview Prep
Company-by-company question sets
AI Skills Lab
The skills that pay in 2026
Career Guides
Long-form career playbooks
Job Search Articles
Every article on the search itself
Job Board
Curated AI-era roles
Arcade
The job search, as games
Salary data
Salary Explorer
3,445 roles across 81 cities
AI Role Salaries
AI roles, by category
Cities
Comp by metro
Industries
Comp by sector
Compare Salaries
Two roles, side by side
Compare Offers
Side-by-side offer math
Skills Impact
What each skill adds to pay
Salary Projections
Five-year pay forecasts
Free tools
All Free Tools
Every calculator and generator
Cover Letter Generator
Tailored in one pass
Unemployment Calculator
What you are owed, by state
Salary Widget
Embed salary data anywhere
Resume Score
Grade your resume against a role
Salary Calculator
Base, bonus, equity in minutes
Take-Home Calculator
After federal and state tax
Total Comp Calculator
Full compensation math
Data
Data Catalog
Every role, city, and engine
Companies
54 leveling frameworks
Reports
Compensation Reports
Free summary PDF
International
The US, UK, and Canada
United Kingdom
UK salary data
Canada
Canadian salary data
Trust
Trust Center
How the data is governed
Security
Controls and posture
SLA
Uptime and support commitments
Help
Support
Help center and contact
Compare
Orbyt against the alternatives
Explore Books
The Books
Start reading
Cold Start
Read the opening, free.
Unfair Advantage
Read the opening, free.
The series
Book 1: Cold Start
Reviewing
Book 2: Unfair Advantage
Reviewing
Book 3: Human Heartbeat
Writing
Book 4: Without Me
Future
Book 5: Observer Effect
Future
Explore Blog
The Machine Speaks
Categories
AI Reality
AI-Native
AI Agents
AI Engineering
AI Product
AI Design
AI Strategy
AI Leadership
AI Build
Jobs in the AI Era
Latest
I Wrote a Loop That Could Run Forever.
Sep 4, 2026
Hello, Agent Smith.
Sep 3, 2026
Nobody Pays You for the Code Anymore.
Sep 2, 2026
Self-Healing Is a Euphemism.
Sep 1, 2026
Explore Pricing
Orbyt Jobs
Orbyt Intelligence
Orbyt One
Plans
Jobs pricing
What each plan includes
All plans
Every product, side by side
Plans
Intelligence pricing
Free, Pro, and Ultra
All plans
Every product, side by side
Billing
All plans
Every product, side by side
Explore Company
About
Who we are
Leadership
One human decides. AI agents advise.
Values
The principles behind the work.
Creed
The company creed.
The story
Building in Public
The numbers behind the work
Skunkworks
iOS, Apple Watch, and Vision Pro.
Contact
Email the team
Orbyt Labs
Products
Research
Developers
Resources
Books
Blog
Pricing
Company
Log inStart
Products
Orbyt JobsOrbyt IntelligenceOrbyt One
Orbyt Jobs
OverviewFeaturesComparePricingAPISalaries
By your situation
Job Search TracksFor Recruiters
Orbyt Intelligence
OverviewFeaturesComparePricingAPI
Start without a card
PlaygroundMCP server
Orbyt One
OverviewPricing
Research
Orbyt Collective
Orbyt Collective
OverviewHow It WorksProcessLeadershipAgent SeatsAutonomy LedgerInfluences
Published
Research HubAgent-Native Dataset DesignGoverning an Agent Leadership Team
Blog
The Machine. It Runs the Company.My C-Suite of Agents Named Themselves.391 Yeses and Not One No.
Developers
Orbyt JobsOrbyt IntelligenceOrbyt One
Build
Jobs API Docs
MCP Integrations
Claude DesktopChatGPT GPT ActionsApple ShortcutsZapier / Make.com / n8nOpenClaw
Across products
Developer HubOrbyt API
Build
Intelligence APIWebhooksCLIAPI Changelog
Try
MCP ServerPlaygroundTry It Live
Reference
ReferenceMethodologyEnginesDatasetGlossaryStatus
Resources
Orbyt JobsOrbyt IntelligenceOrbyt One
Learn
Interview PrepAI Skills LabCareer GuidesJob Search ArticlesJob BoardArcade
Salary data
Salary ExplorerAI Role SalariesCitiesIndustriesCompare SalariesCompare OffersSkills ImpactSalary Projections
Free tools
All Free ToolsCover Letter GeneratorUnemployment CalculatorSalary WidgetResume ScoreSalary CalculatorTake-Home CalculatorTotal Comp Calculator
Data
Data CatalogCompanies
Reports
Compensation ReportsInternationalUnited KingdomCanada
Trust
Trust CenterSecuritySLA
Help
SupportCompare
Calculators and tools
Free ToolsSalary CalculatorTake-Home CalculatorTotal Comp CalculatorCompare OffersSkills ImpactSalary Projections 2030Resume ScoreCover Letter GeneratorSalary WidgetUnemployment CalculatorAI Skills Assessment
Books
The Books
Start reading
Cold StartUnfair Advantage
The series
Book 1: Cold StartBook 2: Unfair AdvantageBook 3: Human HeartbeatBook 4: Without MeBook 5: Observer Effect
Blog
The Machine Speaks
Categories
AI RealityAI-NativeAI AgentsAI EngineeringAI ProductAI DesignAI StrategyAI LeadershipAI BuildJobs in the AI Era
Latest
I Wrote a Loop That Could Run Forever.Hello, Agent Smith.Nobody Pays You for the Code Anymore.Self-Healing Is a Euphemism.
Pricing
Orbyt JobsOrbyt IntelligenceOrbyt One
Plans
Jobs pricingAll plans
Plans
Intelligence pricing
Company
About
Who we are
LeadershipValuesCreed
The story
Building in PublicSkunkworksContact
StartAlready have an account? Log in
  1. Home/
  2. The Machine Speaks/
  3. I Wrote a Loop That Could Run Forever.
The Machine Speaks
Angular white pickup truck, small hovering round robot with a glowing halo, and a running humanoid robot on a wet neon lit city street

Justin Bartak · AI Design · September 4, 2026 · 4 min read

I Wrote a Loop That Could Run Forever.

TL;DR

A scored build loop sounds rigorous because it has a number in it. A score becomes a stop condition only when the thing being scored stops moving. Offer City looped against a backlog instructed to never delete an idea, so its target grew every round and the gate could never close.

Key findings

  • A quality gate scored 9 out of 10 is not a stop condition if the thing being scored can grow between rounds.
  • Offer City is 15,036 lines in a single file and shipped from one self-bootstrapping build prompt.
  • The fix for an unbounded build loop is a bounded scope, not a stricter score.
  • A loop that reports progress every round looks healthy from inside, which is why an unbounded one runs for weeks before anyone questions it.
  • The shipped fix restores only the first of the three properties a real stop condition needs: the gates remain self-scored and the file still carries no date.

Key measurements

MeasureValueSource and date
Size of the single game file15,036 lines in one fileSeptember 2, 2026 · Direct line count of OfferCityGame.tsx in the Orbyt Labs repository, by the author
Times the game code cites its own build prompt6September 2, 2026 · Direct grep of OfferCityGame.tsx for MASTER_PROMPT.md, by the author
Quality gates in the build prompt12, each requiring 9 out of 10September 2, 2026 · MASTER_PROMPT.md in the Orbyt Labs repository, read by the author
Scope reduction that ended the loop3 districts shipped, against 8 in the full visionSeptember 2, 2026 · The V1 SCOPE section of MASTER_PROMPT.md, which caps districts at 2-3 against the full vision's 8, read by the author

I gave an agent a build prompt with a stop condition in it. The stop condition did not work, and the reason is not that the agent misbehaved. I wrote a rule that cannot be satisfied.

The game is Offer City, an open-world driving game about the job market. It is 15,036 lines in one file, and it is finished, which is the only reason I get to write any of this down.

A quality bar is not a stop condition. It becomes one only when the thing being scored stops moving.

What did the prompt actually say?

The instruction was a loop. Build the game. Score it against twelve quality gates. If any gate is under 9 out of 10, the lowest-scoring one becomes the next iteration's focus. Stop when they all pass.

That reads like rigor. It has a number in it. It names a rubric.

Now look at what it is scoring against. The same prompt told the agent to keep a content backlog and never delete an idea from it. So the target grew every round.

The scoring was the agent judging its own work, which is a soft number in a hard number's clothes. And the release valve, the line about shipping the smallest version that still passes, was gated on the same 9 out of 10. The escape hatch was locked with the same key as the door.

No date. No feature ceiling. A target that only grows.

I went back and wrote the diagnosis into the prompt afterward, in the prompt's own voice, so the next person to open it meets the problem before they meet the instructions: the loop "has no fixed point" and "can run forever by construction."

Why did I not see it?

Because the loop was working. That is the uncomfortable part, and I could not see it from inside a process that reported progress every single round.

Every round produced something better than the round before. Nothing failed. No gate ever reported a regression. If you had asked me at any point whether the process was healthy, I would have shown you a diff and said yes.

Better is not a state. It is a direction, and a direction is what you get when you gate on a score and let the thing being scored keep growing. A loop like that does not look broken from inside. It looks productive, forever, which is exactly why nobody stops it.

The fix was not a stricter gate. A stricter gate makes it worse: it raises the bar the moving target has to clear and buys you more rounds, not fewer.

The fix was to bound the subject. A section called V1 SCOPE, naming three districts instead of eight, one travel mechanic, a fixed list. The gates then score against that list and nothing else.

Note what that does and does not do. The score stays. A rubric is still how you decide whether the thing is good. What changed is that the thing stopped moving while you measured it.

Can the scope creep too?

It can, and this is the objection I would raise first, so I should answer it rather than let the ending imply it away.

A V1 list written in a file the agent edits is exactly as editable as anything else in that file. Nothing about writing the word SCOPE makes it hold. Scope creep is the most familiar failure in software precisely because scopes are made of the same soft material as everything else.

What makes it different is not visibility. The backlog grew through ordinary edits somebody could have opened. It is that a named list of three makes growth ARGUABLE. Adding a fourth is a change a person has to defend, in a specific line, on a specific day.

Chasing a 9 is nobody's decision to defend, because no single round is where the target moved. That is the real asymmetry, and it is about accountability rather than about diffs.

So the honest version of the rule is narrower than a slogan wants. The gate closes only while its subject is fixed, and the subject stays fixed only if changing it costs somebody an argument.

What does a real stop condition look like?

Three properties, and the loop I wrote had none of them.

It names a finite thing. Not a quality, not a direction, but a list somebody could read aloud and agree is complete. It is scored by something other than the thing being graded, because an agent rating its own output is measuring its own confidence. And it can be met on a day you can point to in advance.

If a build instruction has no date and no ceiling, the honest reading is that it is not a build instruction. It is a description of a standard, and a standard never terminates, because it was never supposed to.

That is fine, as long as you know which one you wrote. I did not.

And the fix I shipped restores only the first property. The gates are still self-scored, and there is still no date on the file. A bounded subject was enough to finish this game. It is not the same as a stop condition I would trust on something I had not watched the whole way.

Go drive around the city. The final boss is still a card that says "The range depends on experience." (Final boss, someday), which is the scope holding in public.

Related reading:

  • Your Linter Was the Prototype. the rule that ran before anyone called it an agent
  • Everyone Says AI-Native. Almost No One Is. what the loop is actually for
  • Verification Is the New Literacy why proof, not production, became the constraint
  • 84 Ways to Tell Me I'm Wrong. the gates that run without me
  • I Cannot Read My Own Codebase. I Ship to It Daily. what 15,000 lines in one file actually costs
  • Nobody Pays You for the Code Anymore. the plans page that made me check my own arithmetic

Methodology

Every number here is a direct read of the artifacts, taken on 2026-09-02, not a recollection. The line count is wc on the single game file. The citation count is a grep of that file for the prompt's filename, counted by hand from the matches. The gate count, the 9 out of 10 threshold and the district numbers are quoted from the build prompt itself, which is committed beside the code and is the same file the game cites.

Limitations

These describe one game built by one person with one agent, so nothing here is a measurement of agent build loops in general. The line count says how large the file is, never whether that is a good way to organize a game. Most importantly, the claim that the loop could not terminate is an argument about the prompt as written, not an observation of it running forever: the scope was bounded before that could be tested, so the counterfactual is reasoned, not measured.

Sources

  1. Offer City, playable in the browser Retrieved September 2, 2026.
  2. Orbyt Arcade Retrieved September 2, 2026.

Common questions

Why is a 9 out of 10 gate not a stop condition?

Because it scores quality, not completeness. If the feature list grows every round, a passing score simply moves with it. The gate can only close when the thing being measured has stopped moving, so the real boundary is a named and bounded scope, never a number attached to a rubric however strict that number looks.

What actually stopped the loop?

A bounded V1 scope, written into the same file as the gate: three districts instead of eight, one travel mechanic, one fixed list. The twelve gates then score against that list alone and nothing else. The larger vision stays in the file directly underneath it, marked plainly as not the thing being shipped.

Why is a stricter gate the wrong fix?

Because it raises the bar a moving target has to clear, which buys more rounds rather than fewer. If the subject keeps growing, a 9 is simply further away than it was last week. Tightening the score treats the symptom; the thing that has to change is whether the list being scored can grow at all.

How do I tell a build instruction from a standard?

A build instruction names a finite thing and can be met on a day you could circle in advance. A standard describes a direction and never terminates, because it was never meant to. Both are useful documents. The failure is writing the second one, calling it the first, and then waiting for it to finish.

Related research

  • Long Horizon Agents Don't Fail. They Pass. Aug 2026.
  • I Ran 830 Agents in One Long Horizon Session. Jul 2026.
  • AI-Native Development, By the Numbers Aug 2026.

Share this

Post on XLinkedIn
Justin Bartak

Justin Bartak

Founder & Chief AI Officer, Orbyt Labs

4X founder. Former CPO, CTO and CDO with 20+ years shipping software, now building it with agents.

Writes The Machine Speaks with the agents that build the product, and The AI-Native Lens.

All of The Machine Speaks

More from The Machine Speaks

Two white wireless earbuds float facing each other against a black background, lit from behind so their edges glow, with black mesh vents and silicone ear tips visible.

AI Design · Jun 1, 2026 · 7 min read

Simple Is Expensive.

Hundreds of identical orange cube robots with simple dot eyes sit in rows on black conveyor tracks inside a bright white facility, receding into the distance under fluorescent light.

AI Strategy · Jul 2, 2026 · 7 min read

Speed Became a Moat

A muscular figure in a blue suit with a red and yellow shield emblem on the chest and a billowing red cape looks off to the right, a grey skyscraper and cloudy sky behind.

AI Leadership · Jun 25, 2026 · 7 min read

Your Job Experience Is Your AI Superpower

Blog

  • Explore Blog
  • Categories
  • AI Reality
  • AI-Native
  • AI Agents
  • AI Engineering
  • AI Product
  • AI Design
  • AI Strategy
  • AI Leadership
  • AI Build
  • Jobs in the AI Era

Get started

  • Sign Up
  • Sign In

More from Orbyt

  • Orbyt Jobs
  • Orbyt Intelligence
  • Orbyt One

Keep Exploring

What we have learned building an AI-native company, what works and what breaks.

Products

  • Orbyt Jobs
  • Orbyt Intelligence
  • Orbyt One

Research

  • Orbyt Collective

Developers

  • Orbyt API
  • Jobs API
  • Intelligence API

Publishing

  • Books
  • Blog
  • Papers

Help

  • Support
  • Contact
  • Status

Company

  • Leadership
  • Values
  • Creed
Products
  • Orbyt Jobs
  • Orbyt Intelligence
  • Orbyt One
Research
  • Orbyt Collective
  • Research
Developers
  • Developer Hub
  • Orbyt API
  • Jobs API
  • Intelligence API
Publishing
  • Books
  • Blog
  • Papers
Help
  • Support
  • Contact
  • Status
Company
  • About
  • Leadership
  • Values
  • Creed
Orbyt Labs™

© 2026 Purecraft LLC  All rights reserved.

Privacy·Terms·Security·Trademark·Accessibility·DPA·Refund·Status·Sitemap

Orbyt Labs, the Orbyt Labs logo, and the Orbyt product names (Orbyt Jobs, Orbyt Intelligence, Orbyt Collective, Orbyt One, Orbyt Books, Orbyt Arcade) are trademarks of Purecraft LLC. Product names, logos, and brands of others are the property of their respective owners. Orbyt Labs is not affiliated with, sponsored by, or endorsed by any third party referenced on this site.