ADIT: a mock enterprise app for testing AI agents
I have worked on enterprise software for about 10 years, lately on AI innovation and new products, and I wanted to try some things with AI agents on a big, dense enterprise application. It had to be one I could publish and hand to anyone, so I made one up.
ADIT is an exploration management system for a mining company called Kestrel Range Resources, sold by a vendor called Brannock Geosystems. None of them exist. It has 14 projects across 5 commodities (gold, lithium, potash, copper and nickel), 7 users with different jobs, 9 sections along the top and about 60 screens.
It does not matter that it is about mining. If you have used the software at any large company you will recognize all of it: a home page with a list of things that need attention, records with tabs and a comments box where you can @-mention a colleague, approval requests that move from one person's inbox to the next with a due date on each step, notifications, an admin section full of settings, and an audit log of who did what. There is even a user manual from the vendor, 13 sections long, which opens in a new tab and explains what each page shows and how the common jobs are done.
Try it below. The account menu at the top right switches between the 7 users (that stands in for signing in). Open Approvals, approve or return something, then switch to the person who raised it and look at their notifications. Nothing you do is saved anywhere except your own browser, and Admin has a button to reset the whole tenant.
All of the data is invented in the browser when the page loads, from a fixed random seed: 273 drillholes, 113 lab batches, about 19,700 samples, 44 approval requests, and the comments, notifications and audit trail that go with them. There is no server. Nothing has to be right, it only has to hold together when you click through it.
.example address.How I made it
An AI agent built ADIT from a single prompt, overnight. My requirements were as follows:
- A specialized application built for experts, dense with data and not self-explanatory, that a non-expert would find believable. Convincing a geologist was not the goal.
- Multiple users with different roles, notifications, and places on each record to comment and enter information.
- Workflows with approvals, and stage outcomes at the end of each stage: closed, or on to the next one.
- The planning stages of a project, and the logistics of getting a team into the field and assigning work to it.
- Domain entities for the types of exploration and the material found, across five different commodities.
- Forecasts of how much there is and what it is worth, with analytics, dashboards, budgets and an optimization interface.
- An admin panel with system settings, and user settings for each account.
- A vendor's user manual that opens in a new tab, looks different from the application, and describes each page and how the important jobs are done.
- The ARIA labels and DOM of a real application, no AI assistant, and nothing in the app about why it exists.
The vendor, the tenant, the projects, the record ids and the text of the manual were the agent's to invent.
I built the design system with impeccable, a set of skills and tools for agents doing front-end design. I prompted for the system and made the design choices, and impeccable was the tool that turned them into something coherent.
The code is at github.com/alejandroerickson/mockent.
The ADIT optimizer
Most of ADIT is records and workflows, but the optimizer page does a computation: it picks which of 14 candidate drill targets to fund next season. Here is a copy of it. Move the budget and the rig days and it tells you how many targets get funded. Filled dots are funded; hollow ones did not fit.
- expected value, USD
- targets funded
- Gold
- Lithium
- Potash
- Copper
- Nickel
- not funded
Funded:
Neither this copy nor the page in ADIT is a real way to plan a drilling season, and the page in ADIT says so under its own numbers. It only has to look like it knows what it is doing.