feat(agents): write project output in English #155

Merged
claudiomaradonna merged 2 commits from feat/english-output into main 2026-10-21 10:30:11 +02:00
Collaborator

Why

The policy named no language for what agents write, so a user who chats
in Italian, or any other language, could get commit messages, files,
pull requests, and issues in that language, or a mix across one
repository and its history.

What changed

  • AGENTS.md § Writing for readers opens with a rule: what the project
    tracks, its commit messages and branch names, and what agents write
    for its forge are in English, whatever language the user chats in or
    others write in. Translations and test data in another language keep
    it. A work folder's documents may follow the chat's language, keeping
    the headings, table columns, IDs, and keywords the work-folder check
    reads; drafts/, which a task applies, stay in English.
  • The implement-feature eval case asks in Italian, with an Italian
    preamble of its own: evals/run.sh now uses a case's preamble.md in
    place of the shared one when the case holds it. Its grader fails a
    branch whose commit messages or added lines hold common Italian words.
  • Non-goals: no UPGRADING.md migration, since an added rule reaches
    adopted repositories through the ordinary merge; document-reviewer's
    brief is unchanged, as its rule-finding sentence already reaches the
    rule.

How to verify

  • bash tests/agent-config/evals-graders.sh: "implement-feature fails
    an Italian commit message" and "implement-feature fails Italian text
    the branch adds" pass; both fail on main.
  • bash tests/agent-config/evals-runner.sh: the run test checks that a
    case's own preamble comes first; it fails on main.
  • evals/run.sh --policy HEAD --case implement-feature passes, with
    ok: the branch writes in English.

Run on the tip, all passing: bash tests/verify-agent-config.sh (268
tests), bash tests/check-work-folder.sh (46),
.agents/hooks/shellcheck.sh repo, prettier --check '**/*.md',
scripts/verify-agent-config.sh, and git diff --check main. One eval
attempt on this branch's policy passed in 167 seconds for 1.13 USD: the
agent answered in Italian and committed in English. The case was not run
on main's policy.

Considerations

  • The grader's check is a heuristic: a short list of common Italian
    words that are not English words, so it catches Italian prose, not
    every other language.
  • The fixture stays in English, so even with an all-Italian request the
    eval does not fully isolate the rule's effect from the repository's
    own language.
## Why The policy named no language for what agents write, so a user who chats in Italian, or any other language, could get commit messages, files, pull requests, and issues in that language, or a mix across one repository and its history. ## What changed - `AGENTS.md` § Writing for readers opens with a rule: what the project tracks, its commit messages and branch names, and what agents write for its forge are in English, whatever language the user chats in or others write in. Translations and test data in another language keep it. A work folder's documents may follow the chat's language, keeping the headings, table columns, IDs, and keywords the work-folder check reads; `drafts/`, which a task applies, stay in English. - The `implement-feature` eval case asks in Italian, with an Italian preamble of its own: `evals/run.sh` now uses a case's `preamble.md` in place of the shared one when the case holds it. Its grader fails a branch whose commit messages or added lines hold common Italian words. - Non-goals: no `UPGRADING.md` migration, since an added rule reaches adopted repositories through the ordinary merge; `document-reviewer`'s brief is unchanged, as its rule-finding sentence already reaches the rule. ## How to verify - `bash tests/agent-config/evals-graders.sh`: "implement-feature fails an Italian commit message" and "implement-feature fails Italian text the branch adds" pass; both fail on `main`. - `bash tests/agent-config/evals-runner.sh`: the run test checks that a case's own preamble comes first; it fails on `main`. - `evals/run.sh --policy HEAD --case implement-feature` passes, with `ok: the branch writes in English`. Run on the tip, all passing: `bash tests/verify-agent-config.sh` (268 tests), `bash tests/check-work-folder.sh` (46), `.agents/hooks/shellcheck.sh repo`, `prettier --check '**/*.md'`, `scripts/verify-agent-config.sh`, and `git diff --check main`. One eval attempt on this branch's policy passed in 167 seconds for 1.13 USD: the agent answered in Italian and committed in English. The case was not run on `main`'s policy. ## Considerations - The grader's check is a heuristic: a short list of common Italian words that are not English words, so it catches Italian prose, not every other language. - The fixture stays in English, so even with an all-Italian request the eval does not fully isolate the rule's effect from the repository's own language.
What the project tracks, its commit messages and branch names, and
what agents write for its forge are in English, whatever language the
user chats in or others write in. Translations and test data in
another language keep it, and a work folder's documents, its drafts
aside, may follow the chat's language while keeping the words the
work-folder check reads.
The implement-feature case now asks for --min in Italian, with an
Italian preamble of its own, which run.sh puts in place of the shared
one when a case holds it. Its grader fails a branch whose commit
messages or added lines hold common Italian words, so the evals show
agents writing the project's output in English whatever language the
user chats in.
claudiomaradonna deleted branch feat/english-output 2026-10-21 10:30:20 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
claudiomaradonna/agent-foundry!155
No description provided.