<!-- https://abap2ui5.github.io/docs/advanced/insights/36-written-for-agents -->

# #36 Written for Agents

The property this series kept returning to — an app is one class, and the class
is text — turned out to have a consequence nobody was designing for in 2023. It
is the shape an AI coding agent is best at.

Look at what the alternatives ask of one. An agent writing a Fiori Elements app
has to keep a CDS view, its annotations, a behavior definition, a service
binding and a generated frontend in step, and can verify none of it without a
system. An agent writing a freestyle app has to hold an ABAP backend and a
JavaScript frontend in its head at once and keep the contract between them
true.

An agent writing an abap2UI5 app writes one file, in one language — the shape
of [#14](/advanced/insights/14-a-classrun-for-the-browser) — and the thing it
writes is the thing that runs.

Three things around the framework turn that from a nice property into a working
setup.

**A map for the reader with no checkout.** The site publishes
[`llms.txt`](https://abap2ui5.github.io/docs/llms.txt), every page with one
line of what it covers, and the framework repository publishes the same for its
interfaces. An agent that has read either one works from what abap2UI5 is
today instead of from what it half-remembers — a world where the view builder
still has a method per control.

**A check that needs no system.** The [linter](/advanced/linter) reconstructs
the UI5 view out of the ABAP that builds it and reports what UI5 does not have.
An agent that can verify its own work stops handing over apps that do not render
— the difference between a helper and a generator of plausible nonsense. The
same linter gates the sample repositories.

**Several hundred worked examples.** The sample catalogs hold a complete,
tested app per pattern — value help, tree, navigation, upload — so *has
somebody already built this?* has an answer. Several hundred of those samples
were themselves ported by agents that way: write the class, lint the view, run
it, read the screenshot, and CI keeps them true.

None of it is a feature of abap2UI5. It is what falls out when an application
is a file somebody can read — and an agent is only the newest somebody.

The setup, from *paste this* to an MCP server, is on
[Developing with AI](/get_started/ai).

Code-first was the design. Agent-friendly was the consequence.
