███╗   ███╗ ██╗   ██╗  ██████╗ ███████╗ ██╗
████╗ ████║ ╚██╗ ██╔╝ ██╔════╝ ██╔════╝ ██║
██╔████╔██║  ╚████╔╝  ██║      █████╗   ██║
██║╚██╔╝██║   ╚██╔╝   ██║      ██╔══╝   ██║
██║ ╚═╝ ██║    ██║    ╚██████╗ ███████╗ ███████╗
╚═╝     ╚═╝    ╚═╝     ╚═════╝ ╚══════╝ ╚══════╝
DemoAcademyPricing
Sign inBook a meeting

Building the harness · August 21, 2026 · 8 min

Fulfilment is not one shot

Real service work is not a single prompt. A weekly visibility report is twelve independent measurements and one aggregation; a month-end close is strictly sequential and stops dead without a bank statement. Both need a run that can suspend itself as a row and resume days later.

By Islam Hachimi, Founder

Watch a real accountant close a month and you will notice something. They do not sit down and do it in one go. They start, discover the bank statement has not arrived, email you, and move on to another client. Three days later your statement lands and they pick it back up.

That is what real work looks like. It stops. It waits. It comes back.

Almost every AI demo assumes the opposite: one prompt in, one answer out, everything needed already on the table. That gap is the main reason demos do not become businesses.

A job splitting into smaller jobs and picking back up when they finish
A job that stops is not a job that failed. It is waiting, and it knows what it is waiting for.

Two ways work refuses to be one thing

Some work splits

Checking whether a business gets mentioned by AI assistants means asking a lot of different questions across a few different places. Each question is independent. None depends on another.

Doing all twelve in one go means one enormous conversation where a single failure loses everything. So the main job splits into twelve small ones, goes to sleep, and wakes up when they are all done.

Whether it waits for all of them or just enough of them matters more than it sounds. A report should wait for everything — a percentage worked out from four of twelve questions is not a smaller answer, it is a wrong one. But a job that just needs three decent candidates should not sit around waiting on a fourth source that has gone quiet.

Some work waits

The other shape is a job that cannot continue until something happens in the real world. The client sends the statement. The owner approves the draft. Someone replies.

This is not the computer trying again every few minutes. The job writes down what it is waiting for and genuinely stops. Days later, when that thing happens, fresh work starts with the answer already in hand.

The key decision: a paused job is a note in a filing cabinet, not a person standing in a corridor. If waiting means holding a process open, then shipping an update becomes a thing that destroys work — and a company that cannot ship during the day stops improving.

A mistake worth stealing

Early on, a job could only wait for one thing at a time. Reasonable rule. It caused a bad problem.

When the system needed four missing receipts from a client, it asked for the first, started waiting, and the other three requests were quietly dropped. The first receipt arrived, work resumed, and it filed a quarter of the month — on time, looking completely normal, and wrong.

The fix is not four separate waits. It is one wait with four items on it, each written in the customer's own words, so the outstanding list is readable and work resumes when the last one arrives.

What this actually buys a customer

  • Work can be big. Forty questionnaire answers, a long list of candidates reviewed one at a time — each with its own budget and its own second chance.
  • Waiting on you is not a failure. A job paused for three days because it needs your bank statement is in a perfectly normal state with a name, not an error someone has to clean up.
  • One thing going wrong stays one thing. A single failed question costs one measurement, and the report says so. It does not cost the report.

The thing to decide early

Are your AI jobs running programs or rows in a filing cabinet?

Programs are easier for about six weeks. Then you want to ship an update, or handle more volume, or serve a client who replies on Thursday — and every one of those is a rebuild if you picked programs.

Everything described here is in the kernel that runs Mycel — the scheduler, the wedges, the guards, and the tests that hold them.

Read the kernel →More writing →

Read next

  • Services are data, not codeA bookkeeping service in our system is a JSON manifest, a folder of markdown, and an output schema. No module, no deploy, no engineer. The consequence that matters is not speed — it is that domain expertise stops being something only a programmer can add.
  • Output schemas are completion contractsMost agent frameworks treat a schema as validation applied after the fact. Treat it instead as the definition of done — the run ends the moment a valid result is written — and three unrelated problems disappear at once: unbounded loops, unresumable runs, and work nobody can grade.
  • One config for every task is the original sin"Build a website for this business" and "decide the next step on this overdue invoice" are not the same job, and giving them the same tools, permissions and credentials is how an agent system becomes unsafe. Three shapes, and a build run that can never hold a send token.

Take the client you turned down last month.

Describe what you deliver and the first draft exists before you have finished your coffee.

Start 7 days free

The first AI delivery firm. You sign.

All systems operational

Ask an AI about us

  • Claude
  • ChatGPT
  • Perplexity

It reads the site and answers on its own. We do not get to edit what it says.

Product

  • What you get
  • Pricing
  • Changelog
  • What it runs
  • Free reports
  • Product map
  • Team
  • Blog
  • Glossary
  • AI Visibility Index
  • Sign in
  • Docs

Compare

  • vs ChatGPT, Claude, or whichever tab is already open
  • vs Grok Bot and the AI-employee platforms
  • vs Hiring an account manager
  • vs Profound
  • vs Otterly
  • vs Building it yourself
  • vs Zapier & n8n
  • vs Temporal
  • vs LangGraph
  • vs CrewAI & AutoGen
  • All comparisons

Legal

  • Privacy
  • Sub-processors
  • Terms
  • DPA
  • Security
███╗   ███╗ ██╗   ██╗  ██████╗ ███████╗ ██╗
████╗ ████║ ╚██╗ ██╔╝ ██╔════╝ ██╔════╝ ██║
██╔████╔██║  ╚████╔╝  ██║      █████╗   ██║
██║╚██╔╝██║   ╚██╔╝   ██║      ██╔══╝   ██║
██║ ╚═╝ ██║    ██║    ╚██████╗ ███████╗ ███████╗
╚═╝     ╚═╝    ╚═╝     ╚═════╝ ╚══════╝ ╚══════╝