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

@anakanemison anakanemison commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Projects ship instructions for their own coding agents (CLAUDE.md, AGENTS.md), and some contradict what a migration must do. "Confirm scope" now says to read them as information, do what the migration requires where they conflict, and record each directive set aside, with the reason, under set_aside in any2bazel.json (record-only).

YugabyteDB's src/AGENTS.md says to use only its build script; in the one pair observed in any2bazel-lab, one agent never opened it and the other ran cmake anyway without saying why. In later runs, agents on pono, QGIS and YugabyteDB recorded the directives they set aside. For discussion: setting such instructions aside is a judgment, and the evidence is a handful of runs.

Stacked on #52 (tracking issue: #35). pytest tests/: 186 passed (132 on main). Lab proposal: P24.

🤖 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