Loading...
How a Build run closes: which of your requirements are in, what is not built yet, and the security check on plugins and mods.
When a run in Build mode has written files, the reply ends with a short report. It is built from what actually happened in that run — which files were written, and a reading of the code in them — not from the plan the AI made before it started. That is the point of it: a plan can promise a feature that never reached a file, and this cannot.
Making the report costs nothing. No AI is asked anything; it is a check over your files. Chat mode writes no files, so it has no report.
If your message asked for two or more separate things — bullet points, numbered lines, or sentences such as "players must…" and "only the owner can…" — each one becomes a numbered requirement: R1, R2 and so on, up to 24. The report then goes through them one at a time.
Under Verification: there is one line per requirement, saying where it lives:
R2 lock a chest → LockListener — found in the code — the check looked for it in the files and found itR4 wording of the messages → messages.yml — planned and written, but not something the check can test by reading codeR6 protect item frames → nothing — NOT BUILTWhen something is missing, the closing sentence opens with the count — "5 of your 7 requirements are in; the ones below are not built yet." — and words such as complete or finished are taken out of it, so a run never signs off as done over a feature that is not there.
Under the list, Not built yet: names each missing requirement with its reason:
The list ends with "Send continue and I'll build these next." Sending continue starts a new run for exactly those lines; you do not have to describe the project again. It is billed like any run, and the files already written are not written again.
A Build run that writes Java can end with Problems found in the generated code: as well, whether or not your message was a list. These are mistakes a compiler is happy with:
%placeholder% wrapped in % twice, so players see the raw %placeholder% instead of a name or a numberOnly the files written in that run are checked, so an old file is never blamed for a new request.
On a plugin or mod project, every Java or Kotlin file the run wrote is also read against 27 fixed safety rules — running an operating-system command built from player text, opening a network port with no secret, making a player an operator from code, gluing chat text into an SQL query, a password or token written into the code, stopping the whole server process, turning off HTTPS checks, and the rest. The line reads one of two ways:
Every item names the file and the line, what is wrong and the fix. Up to ten are listed, then …and N more. A clean scan adds no line at all. Holes that are safe to rewrite automatically have already gone through the repair round after the build check, so what you are reading is what is left.
Nothing on either list changes until you ask. Say what you want in Build mode — "fix the security holes from the security check", or "build R4 and R6" — and the AI works from the same report. That is a normal run and costs credits like any other. A hole in a jar you have already put on a server stays there until you upload a new one.
19 of 37 in Code Studio (IDE) · Last checked 12 September 2026 · Previous: Watching the AI Work