The report goes back to the model
Runs todayA model's loop on GrailAOS: it describes the solution, compiles it, tests it, publishes it, operates it, and fixes it with what the compiler returns.
LLM-first
In GrailAOS™, the Agent Operating System by Omniatix™, “LLM-first” means something specific: the model writes the solution, reads what the system returns to it and operates it.
The origin
GrailAOS started with a question: what a model needs in order to understand a business solution, write it, test it and operate it without guessing.
GrailAOS was born to make life easy for models: so that a model can understand, write, test, and operate a business solution without having to guess.
Limit It is the founder's account of how the project began: it describes an intention, not a measured result.
What already runs in GrailAOS from that idea
This site does the same
This site does the same for whoever reads it: every page in , an index for models, a read-only and the status of every claim.
The thesis
Each of the model's three roles has a part of the system designed for it.
Every design decision in GrailAOS is made with one question: which option makes it easier for a model to understand it, generate it right on the first try and fix it when it fails.
The cycle
The compiler and the tests answer the model, and the model keeps fixing until the solution compiles and passes its tests.
The diagram as text
A model's loop on GrailAOS: it describes the solution, compiles it, tests it, publishes it, operates it, and fixes it with what the compiler returns.
The same model designs and writes the solution: the compiler returns what is wrong, the model corrects it, exact tests and a judge model tell it what fails, and the loop repeats until it compiles and passes its tests. That is how any solution the can express is programmed.
Limit By default, an agent test case runs in simulated mode and does not test the model; the judge has to be requested in the tests.
Some common errors have an automatic, deterministic fix; for the rest, the model makes corrections from what the compiler returns, and the compiler checks the solution again.
Limit The assisted loop runs only on the command line.
Diagnostics
An error message meant for a person can be brief and take the context for granted. One meant for a model has to carry everything needed to fix the problem without guessing. Every diagnostic from the GrailAOS compiler is designed that way.
What it does
The report lists every error in the solution, not just the first one.
Why it helps a model
The model fixes the whole list in one round.
What it does
Each diagnostic carries the rule, the exact location and the fix, with its confidence.
Why it helps a model
It does not have to guess the rule or search for the location.
What it does
Compiling spends no , depends on no other service and always produces the same report.
Why it helps a model
It can compile after every change and compare two runs.
What it does
Diagnostic codes are added, not reused.
Why it helps a model
What a model automates today still holds tomorrow.
Limit The test that protects them covers only some of the codes.
On the first try
Fixing is part of the cycle, but every round has a cost. That is why the pieces are designed so a model writes them correctly from the start, and so that whatever comes out half done can be fixed.
How it works
The solution is written as text, with no visual editor, and the diagram a dashboard shows comes from the compiler.
Why it helps a model
Text is where a language model is most at home, and a diagram that comes from the compiler cannot contradict the documents.
How it works
Text first, self-contained, testable by default and with predictable shapes, and no change may make it harder for a model to write a solution correctly.
Why it helps a model
Anything added to the language is judged first by how a model writes it.
How it works
An agent names its tools; a workflow, its agents; a scheduled task, its workflow.
Why it helps a model
A broken name fails at compile time, not in a conversation.
How it works
The tells the builder model which pieces and capabilities it has.
Why it helps a model
It writes with what exists, not with what it assumes.
How it works
Test cases live inside the agents and workflows, with everything external simulated.
Why it helps a model
It writes the piece and its test together.
Limit A workflow that runs on its own is not tested as a whole in one test case: its agents are.
Limit By default, an agent test case runs in simulated mode.
The evidence
GrailAOS is not only designed for models: it is built with coding agents, and so are the solutions.
Share of with attribution to Claude, measured in the repositories
How it is measured: the percentage of commits on the main branch, excluding merges, whose message carries an attribution to Claude. It measures how much of the work was declared as done with a coding agent, not who made the decisions.
GrailAOS is built with coding agents: excluding merges, 72.5% of the commits to the specification and the runtime carry attribution to Claude.
Solutions are also built and operated with coding agents, from the requirements to publishing, operation, and version changes.
The difference
Visual builders, automation tools, agent and conversational platforms have different design centers, and each one fits its own case.
What changes the design center
When another tool fits better: if what you need is a large catalog of ready-made integrations, a visual editor or public source code.
Determinism
A model does not always answer the same way, and the design accounts for that: what has to be deterministic is, and the tests separate what was validated from what was simulated.
What is deterministic is bounded: the compiler, contact identity, and canary assignment give the same result for the same input; the model's responses do not.
In tests, everything external is simulated, and a case runs with the real model or in simulated mode: the report separates what validated the agent from what was only simulated.
Limit By default, an agent test case runs in simulated mode.
Questions
The compiler, the contact's identity and the canary assignment give the same result for the same input. The model's answers do not: agents run with a nonzero temperature, so two answers to the same question can differ.