Skip to content

Refresh shared global agent instructions for current-generation models - #18

Open
ngs wants to merge 1 commit into
masterfrom
refresh-agents-guidance
Open

Refresh shared global agent instructions for current-generation models#18
ngs wants to merge 1 commit into
masterfrom
refresh-agents-guidance

Conversation

@ngs

@ngs ngs commented Sep 5, 2026

Copy link
Copy Markdown
Owner

Why

Agent instruction files encode assumptions about the weaknesses of whichever model was current when they were written. As models improve, some of those lines stop earning their place — while a different category of rule gets more important, because a more capable model is more likely to run ahead on its own.

This is a pass over rc.d/agents/AGENTS.md (the single shared global instruction file behind ~/.claude/CLAUDE.md, ~/.codex/AGENTS.md, and ~/.gemini/config/AGENTS.md) with that lens.

Criteria used

Kept, unchanged in substance:

  • Authorization boundaries — no self-directed git commit / git push, the automated-flow exception, explicit git push origin <branch>, repository hygiene, the public/private disclosure rule. These are about what the agent may decide alone, and they matter more, not less, with a more capable model.
  • Facts you cannot infer from the code — language-by-visibility convention, where private-repo-specific settings belong, the delegation workflow.
  • Rules that came from a real incident. Nothing incident-derived was dropped.

Pruned or compressed:

  • Repetition that restated one rule across several bullets.
  • A factual claim that no longer holds.

Changes

  • New two-line preamble stating the file's own scope: boundaries and facts only, no nudges. This gives future edits a rule to be checked against.
  • Split out a Git — what needs explicit permission section. The commit/push authorization rules were living at the bottom of the model-selection section, where they read as a footnote to a policy about quota. They are the most important lines in the file and now have their own heading. Text unchanged.
  • Dropped the stale claim that GitHub PR bodies only accept image uploads via browser drag and drop. That is no longer true, and the instruction told the agent to assert it to the user. The prohibition it was justifying — never commit assets into a repository to get them into a PR — is kept as its own rule, which is the part that was actually load-bearing.
  • Compressed the PR-title section from four bullets to two, and the heredoc-escaping section from three bullets to one. Both said the same thing repeatedly; the escaping guidance in particular was three restatements of "inside <<'EOF' write it as it should render". The rule is retained.
  • Condensed the model-usage section from six bullets to three without changing what it permits or forbids.
  • Added blank lines after headings for consistency with the rest of the file.

Note for the author

Line 5 of the file before this change named a work organization by its GitHub org name, which the file's own "No private-repo details in public dotfiles" section forbids in this public repo. It is generalized here to "Work-organization repositories". Worth a look to confirm the generalized wording is still unambiguous for you in practice.

AGENTS.md at the repo root was reviewed and left untouched — it is entirely repo-specific facts (zsh gotchas, CI lint behaviour, *env pins, GnuPG, symlink and clean-filter conventions) with nothing model-era in it.

Refresh the shared global agent instructions for current-generation models.
The file now states its own scope: boundaries and facts only.

- Move the commit/push and remote-explicit rules out of the model-usage
  section into their own "Git — what needs explicit permission" section;
  they are authorization boundaries, not model-selection policy.
- Drop the stale claim that PR bodies only accept images via browser drag
  and drop; keep the prohibition on committing assets into a repository.
- Compress the PR-title and heredoc-escaping guidance, which restated the
  same rule across several bullets.
- Generalize repository references so no work-organization name remains in
  this public repo, per the file's own private-details rule.
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