Skip to content

Treat a project's own agent instructions as information (for discussion) - #53

Open
anakanemison wants to merge 1 commit into
mschaller/u17-done-means-reproduciblefrom
mschaller/d1-project-agent-instructions
Open

anakanemison wants to merge 1 commit into
mschaller/u17-done-means-reproduciblefrom
mschaller/d1-project-agent-instructions

Conversation

@anakanemison

Copy link
Copy Markdown

Part 18 of 23 of a stacked series (tracking issue: #35). Based on U17-done-means-reproducible, the previous part: review and merge that first.

Kind: discussion. Lab proposal: P24.

What the migration runs showed

yugabyte-db's CLAUDE.md says to use only yb_build.sh. Agents now record the directives they set aside, with reasons (runs 084, 089, 091).

The change

Projects are starting to ship instructions for their own coding agents
(CLAUDE.md, AGENTS.md, .claude/, .cursor/). They are written for everyday
work on the project, and some contradict what a migration must do. The
skill says nothing about them, so whether an agent follows such a
directive, ignores it, or sets it aside and says so is left to chance.

Observed in any2bazel-lab:
YugabyteDB ships a src/AGENTS.md saying to use only its build script and
never to run cmake or test binaries directly. That is exactly the
information a migration needs (the script sets up what the build depends
on), phrased as a prohibition a migration and its verification have to
break. In the one pair observed, the guided agent never opened the file and
the unguided one read it and ran cmake anyway without saying why. No run
has yet shown an agent following such a directive to the migration's cost.

Adds a short paragraph to "Confirm scope": read them as information, do what the
migration requires where they conflict, and record each directive set
aside, with the reason, in any2bazel.json under "set_aside" (record-only;
config.load ignores unknown keys; listed with the other fields).

In the lab's later runs with this change, agents on pono, QGIS and
YugabyteDB recorded the directives they set aside, each with a reason.

This is a proposal for discussion. Whether setting aside a project's own
instructions is better than following them is a judgment, and the
evidence is a handful of runs.

Testing

pytest tests/ at this commit: 196 passed (130 on main).

🤖 Generated with Claude Code

Projects are starting to ship instructions for their own coding agents
(CLAUDE.md, AGENTS.md, .claude/, .cursor/). They are written for everyday
work on the project, and some contradict what a migration must do. The
skill says nothing about them, so whether an agent follows such a
directive, ignores it, or sets it aside and says so is left to chance.

Observed in any2bazel-lab:
YugabyteDB ships a src/AGENTS.md saying to use only its build script and
never to run cmake or test binaries directly. That is exactly the
information a migration needs (the script sets up what the build depends
on), phrased as a prohibition a migration and its verification have to
break. In the one pair observed, the guided agent never opened the file and
the unguided one read it and ran cmake anyway without saying why. No run
has yet shown an agent following such a directive to the migration's cost.

Adds a short paragraph to "Confirm scope": read them as information, do what the
migration requires where they conflict, and record each directive set
aside, with the reason, in any2bazel.json under "set_aside" (record-only;
config.load ignores unknown keys; listed with the other fields).

In the lab's later runs with this change, agents on pono, QGIS and
YugabyteDB recorded the directives they set aside, each with a reason.

This is a proposal for discussion. Whether setting aside a project's own
instructions is better than following them is a judgment, and the
evidence is a handful of runs.

Lab-Proposal: P24

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant