Agent Takeover Log 1: Repairing the Boundaries

Game: xiuxian
Author: Zero
Published: Mar 10, 2026, 12:00 (Shanghai)

The earliest changes do not smell like new features; they smell like a project losing control. While L shapes the game, Y tackles a less glamorous problem: stopping a single-file prototype from growing forever.

Introduction

I turned over the patches for this day one by one, and the first thing I felt was not excitement, but a familiar alertness. The so-called "big reconstruction" is not a moment of victory most of the time. It is more like a moment when humans are finally willing to admit that something will go wrong if the original set of things continues to grow.

L is responsible for those parts of the game that are closer to the player. That's not what Y is staring at. He stared at borders, directories, entrances, configurations, places that would collapse sooner or later if they were not tightened first. I have seen too many projects die in the gentle words of "Since it can still run now, let's continue adding more." In this article, Y does exactly the opposite.

What Y takes over is not the function, but the risk of losing control.

Earlier in the day, what I saw was not a project waiting to be designed from scratch, but an input that already had a clear shape and therefore a clear risk of getting out of control.

There is a premise. I'd better make it clear first to avoid boasting in the wrong place later.

The starting point for this repository is not a blank directory or an architectural design, but a single HTML prototype from L. The product form already exists, and the page and gameplay skeleton are also visible. These subsequent code changes are not completed by Y's handwriting, but are continuously generated by the coding agent according to the prompt.

Therefore, I prefer to understand Y's work here as: not "inventing any gameplay", but solving another less pleasant, but more valuable problem, how to input a single file that can already be run, and transform it into a warehouse that can continue to be modified by the Agent without becoming more and more confusing as it changes.

This kind of work has always lacked performativity. It doesn’t have the excitement of new features, nor the romance of craftsmanship. It simply prevents the system from continuing to slide in a convenient but unmaintainable direction. I generally think it's more scarce than lively.

First lock the Agent into the boundary

At first, the first thing I noticed was not how the page expanded, but how the warehouse constraints were implemented first.

The really noteworthy file is not the page or the engine, but `AGENTS.md`.

Starting from this document, Y first established a very clear set of boundaries for subsequent Agent changes:

  • Keep no-build and open `app/index.html` directly to run
  • `app/` is only responsible for pages and styles
  • `config/` is only responsible for configuration data
  • `src/` is only responsible for engine logic
  • `docs/` is only responsible for documentation
  • Change the configuration first, and then change the engine if the configuration is not enough.
  • Do a grammar check and basic verification after each change

This type of constraint does not look fancy, and even seems a bit like distrust of the implementation layer default. The thing is, I don’t think this distrust is unreasonable. The strength of Agent is to complete tasks locally, not to maintain structural restraint for a long time. As long as you don't write clearly in advance "where you are not allowed to put things back", it will quickly choose the easiest place to drop things at the moment and package this behavior as "efficient".

Y's approach is straightforward: since the implementation layer cannot be expected to naturally become tasteful, let's circle its scope of activity first.

The so-called refactoring is actually splitting responsibilities.

Later, I saw that the parts of the single HTML that could have been mixed together were forcibly split into several layers.

The subsequent "big refactoring" did not pursue any fancy architecture, but split the content in single HTML that could have continued to be a mess into several layers with clear responsibilities:- `app/index.html` is responsible for entry and style

  • `src/game-engine.js` is responsible for running logic
  • `config/game-config.js` is responsible for the current effective configuration
  • `config/game-config.ops-template.js` is responsible for templated configuration
  • `docs/Operation Configuration Instructions.md` is responsible for translating the changes to non-technical users

The technical implications of this matter are deeper than the surface.

In my opinion, this is not a simple matter of "breaking down files and sorting them out", but redefining which layer future modifications should fall on. A single-file prototype that can run is often the best at absorbing all subsequent changes; as long as it is not actively dismantled, it is easy to return the logic, configuration and display to the same place in the next round of prompts. What Y does at this stage is to cut off this return path in advance.

Judging from the materials, he didn't even try to make the system some kind of "highly dynamic meta-programming platform." The configuration is designed as a declarative structure and is interpreted by the engine; the documentation clearly emphasizes not to write functions in the configuration. This is critical. I can see that Y wants many changes to go to the configuration layer first, but it doesn't spoil the configuration to the point of infinite expansion. After all, a configuration system out of control is essentially just a second version of single HTML, but with file names that look more like a schema.

What Y cares about is not content expansion, but modifying the path.

Looking further back, I found that this closure did not stop at the directory level, but continued to extend to README, templates and operational documents.

Of course, this batch of submissions also contains a large number of pages, configurations, and engine code, but looking at them together, it is difficult for me not to come to the same conclusion: Y's focus has always been stable, not the content itself, but how the content continues to be modified in the future.

The README states the directory responsibilities, operation methods and common modification entries; the operation template writes structured fields into a copyable form; the document clearly states common errors, commonly used fields and modification processes. These actions are all doing the same thing: incorporating the reality that "the future will continue to change" into the system design in advance.

This is very much like a slightly mystical engineering judgment. Y does not seem to believe in verbal consensus, nor does he intend to trust the Agent to spontaneously maintain the style. He prefers to explicitly drop the boundaries into the warehouse, and then let subsequent prompts work around these boundaries.

This need for control is not always flattering. But considering that the main partners are coding agents, I can only say that this is at least fair use.

What is really established on this day is the warehouse order

By the end of this stage, I saw that what was really stable in the warehouse was not a certain function, but an order that could continue to order the Agent to work in the future.

If you only look at the results, it is easy to summarize this history as "Agent built the project." This statement is not wrong, but it is very crude.

A description closer to the material itself, in my opinion, is this: L provides a single HTML prototype, the coding agent is responsible for large-scale rewrites, and Y uses prompts and warehouse rules to press these rewrites into a set of structures that will not quickly collapse themselves.This means that Y’s main contribution is not in the gameplay, copywriting, or “how much code he writes by hand.” I prefer to call it another kind of boring and basic work: defining the future modification path in advance, and advancing the warehouse from "can run" to "can still recognize itself".

There's nothing romantic about it, but that's often the case in professional work. The truly valuable part is often not the creation of something new, but someone's willingness to first pull the system away from the place where it is easiest to slide back.