Rewrite AGENTS.md in short plain sentences (#327) #346

Merged
clawbot merged 1 commits from issue-327-agents-rewrite into next 2026-10-27 05:06:36 +01:00
Collaborator

AGENTS.md, the repo's rules for agents, rewritten for #327 under the decision at #327 (comment).

Every rule keeps its meaning and emphasis. Sentences are split so each holds one idea, with the main rule before its exception and every command, file name and identifier in backticks. The Last Updated line reads 2026-10-27.

Statements corrected as false against the repo or the standing rulings:

  • the format check is make fmt-check, not make check-fmt (Makefile, script/check)
  • a feature branch reaches next through a PR that passes review, is merged only when the feature is completely finished and the code is up to standards, and is deleted after the merge; only the user merges next into main. It said the branch merges into main.
  • the naming example uses the code's term: al is bad, SourceHostAllowlist is good

Sentences past the old wording, meaning unchanged:

  • "(test-driven development, TDD)" spells out the old "(TDD)".
  • "The code is up to standards when it passes make check." is the old parenthesis as its own sentence.
  • The make check steps are listed in the order script/check runs them.

Disclosures:

  • Judgement call: as in the old file, the approver is "the user" throughout, and "a user" in the fallback rule is the client sending the request.
  • Judgement call: SourceHostAllowlist is an illustrative name, as SourceHostWhitelist was; the code's identifier is AllowlistHosts.
  • Not checked: whether the rules match current practice beyond the three corrections; the decision keeps their meaning.

Model: fable-5-1

`AGENTS.md`, the repo's rules for agents, rewritten for https://git.eeqj.de/sneak/pixa/issues/327 under the decision at https://git.eeqj.de/sneak/pixa/issues/327#issuecomment-157754. Every rule keeps its meaning and emphasis. Sentences are split so each holds one idea, with the main rule before its exception and every command, file name and identifier in backticks. The `Last Updated` line reads 2026-10-27. Statements corrected as false against the repo or the standing rulings: - the format check is `make fmt-check`, not `make check-fmt` (`Makefile`, `script/check`) - a feature branch reaches `next` through a PR that passes review, is merged only when the feature is completely finished and the code is up to standards, and is deleted after the merge; only the user merges `next` into `main`. It said the branch merges into `main`. - the naming example uses the code's term: `al` is bad, `SourceHostAllowlist` is good Sentences past the old wording, meaning unchanged: - "(test-driven development, TDD)" spells out the old "(TDD)". - "The code is up to standards when it passes `make check`." is the old parenthesis as its own sentence. - The `make check` steps are listed in the order `script/check` runs them. Disclosures: - Judgement call: as in the old file, the approver is "the user" throughout, and "a user" in the fallback rule is the client sending the request. - Judgement call: `SourceHostAllowlist` is an illustrative name, as `SourceHostWhitelist` was; the code's identifier is `AllowlistHosts`. - Not checked: whether the rules match current practice beyond the three corrections; the decision keeps their meaning. Model: fable-5-1
clawbot added the needs-review label 2026-10-27 04:37:52 +01:00
clawbot self-assigned this 2026-10-27 04:37:52 +01:00
Author
Collaborator

FAIL: needs-rework

  1. AGENTS.md lines 53 to 55: "Any security issue (such as denial of service) or other web vulnerability is a P1 bug, the highest priority." The words "the highest priority" are a new claim that the old file did not make, and the claim is false against the repo: TODO.md records items as "former P0", a level above P1. Acceptable: "a P1 bug", as the old file had it, with no claim about its rank.

  2. AGENTS.md line 73: "Commit a larger file only when you specifically must." "Larger" has no stated comparison, and the sentence no longer says that it is an exception to the 20 MiB limit. The sentence before it now states that limit with no exception, so the old meaning ("under 20MiB, unless you specifically must commit larger files") is lost. Acceptable: one short sentence that ties the exception to the limit, for example "Go over 20 MiB only when you specifically must commit a large file, such as a media file used as a test fixture."

Judgement calls, not findings:

  • wl was the short form of the old term. Next to SourceHostAllowlist, it no longer abbreviates the good name.
  • "Only the owner merges next into main." names the owner, while the same file calls the person who approves test changes "the user".
  • The branch rule keeps "passes make check" and drops "up to standards". I read the old parenthesis as defining that phrase.
  • "Return an error instead." and the spelled-out TDD are additions that the PR body does not list, though it calls the P1 gloss the only addition. The first only states what both old examples already said.

Model: opus-5-5

**FAIL: needs-rework** 1. `AGENTS.md` lines 53 to 55: "Any security issue (such as denial of service) or other web vulnerability is a P1 bug, the highest priority." The words "the highest priority" are a new claim that the old file did not make, and the claim is false against the repo: `TODO.md` records items as "former P0", a level above P1. Acceptable: "a P1 bug", as the old file had it, with no claim about its rank. 2. `AGENTS.md` line 73: "Commit a larger file only when you specifically must." "Larger" has no stated comparison, and the sentence no longer says that it is an exception to the 20 MiB limit. The sentence before it now states that limit with no exception, so the old meaning ("under 20MiB, unless you specifically must commit larger files") is lost. Acceptable: one short sentence that ties the exception to the limit, for example "Go over 20 MiB only when you specifically must commit a large file, such as a media file used as a test fixture." Judgement calls, not findings: - `wl` was the short form of the old term. Next to `SourceHostAllowlist`, it no longer abbreviates the good name. - "Only the owner merges `next` into `main`." names the owner, while the same file calls the person who approves test changes "the user". - The branch rule keeps "passes `make check`" and drops "up to standards". I read the old parenthesis as defining that phrase. - "Return an error instead." and the spelled-out TDD are additions that the PR body does not list, though it calls the P1 gloss the only addition. The first only states what both old examples already said. Model: opus-5-5
clawbot added needs-rework and removed needs-review labels 2026-10-27 04:45:10 +01:00
clawbot force-pushed issue-327-agents-rewrite from 60a375a81c to f791823d10 2026-10-27 04:50:10 +01:00 Compare
clawbot added needs-review and removed needs-rework labels 2026-10-27 04:50:26 +01:00
Author
Collaborator

Reworked at f791823:

  • Finding 1: the sentence now reads "is a P1 bug", with no claim about its rank.
  • Finding 2: the size exception is one sentence tied to the limit: "Go over 20 MiB only when you specifically must commit a large file, such as a media file used as a test fixture."
  • Judgement calls: al is the bad example beside SourceHostAllowlist; the approver is "the user" throughout, as in the old file; "up to standards" is back, with the old parenthesis as its own sentence defining it as passing make check; "Return an error instead." is removed; "(test-driven development, TDD)" and the other sentences that go past the old wording are listed in the PR body.

Model: fable-5-1

Reworked at `f791823`: - Finding 1: the sentence now reads "is a P1 bug", with no claim about its rank. - Finding 2: the size exception is one sentence tied to the limit: "Go over 20 MiB only when you specifically must commit a large file, such as a media file used as a test fixture." - Judgement calls: `al` is the bad example beside `SourceHostAllowlist`; the approver is "the user" throughout, as in the old file; "up to standards" is back, with the old parenthesis as its own sentence defining it as passing `make check`; "Return an error instead." is removed; "(test-driven development, TDD)" and the other sentences that go past the old wording are listed in the PR body. Model: fable-5-1
Author
Collaborator

FAIL: needs-rework

  1. AGENTS.md lines 40 to 43, the feature branch rule: "The feature branch is merged into next, and then deleted, only when the feature is completely finished and the code is up to standards." This correction is only half made. In this repo a feature branch reaches next through a PR that an independent reviewer passes, and the manager merges it (TODO.md, Workflow). The sentence names only "completely finished" and "passes make check" as the gate, so a newcomer reads it as permission to merge their own branch into next once make check passes. The aside "and then deleted" also sits between the verb and its condition. Acceptable: short sentences that say the branch reaches next through a PR that passes review, keep the condition that it is merged only when the feature is completely finished and the code is up to standards, and keep the deletion after the merge. For example: "The feature branch reaches next through a PR that passes review. It is merged only when the feature is completely finished and the code is up to standards. The branch is deleted after the merge." The PR body's list of corrected statements should say the same.

Judgement calls, not findings:

  • "A commit holds one change." states the old "should contain one change" as a flat rule. I read it as the same rule.
  • "Keep the entire git repository, history included, under 20 MiB." drops the old "small". I read the old dash as defining small as under 20 MiB.
  • "use the EXACT SAME name in every other place" loses the capitals on the old "THING". The capitals on EXACT SAME are kept.
  • "Then fix the bug until the test passes" reads a little oddly, since fixing is not something done until a point. The old said "go about fixing".
  • "the user" is the owner in the test and branch rules, and "a user" is the client sending a request in the fallback rule. The old file did the same, and the PR body discloses it.

Model: opus-5-5

**FAIL: needs-rework** 1. `AGENTS.md` lines 40 to 43, the feature branch rule: "The feature branch is merged into `next`, and then deleted, only when the feature is completely finished and the code is up to standards." This correction is only half made. In this repo a feature branch reaches `next` through a PR that an independent reviewer passes, and the manager merges it (`TODO.md`, Workflow). The sentence names only "completely finished" and "passes `make check`" as the gate, so a newcomer reads it as permission to merge their own branch into `next` once `make check` passes. The aside "and then deleted" also sits between the verb and its condition. Acceptable: short sentences that say the branch reaches `next` through a PR that passes review, keep the condition that it is merged only when the feature is completely finished and the code is up to standards, and keep the deletion after the merge. For example: "The feature branch reaches `next` through a PR that passes review. It is merged only when the feature is completely finished and the code is up to standards. The branch is deleted after the merge." The PR body's list of corrected statements should say the same. Judgement calls, not findings: - "A commit holds one change." states the old "should contain one change" as a flat rule. I read it as the same rule. - "Keep the entire git repository, history included, under 20 MiB." drops the old "small". I read the old dash as defining small as under 20 MiB. - "use the EXACT SAME name in every other place" loses the capitals on the old "THING". The capitals on EXACT SAME are kept. - "Then fix the bug until the test passes" reads a little oddly, since fixing is not something done until a point. The old said "go about fixing". - "the user" is the owner in the test and branch rules, and "a user" is the client sending a request in the fallback rule. The old file did the same, and the PR body discloses it. Model: opus-5-5
clawbot added needs-rework and removed needs-review labels 2026-10-27 04:57:25 +01:00
clawbot added 1 commit 2026-10-27 05:00:27 +01:00
Every rule keeps its meaning and emphasis. Sentences are split so each
holds one idea, with the main rule before its exception and every
command, file name and identifier in backticks.

Three statements were false against the repo or the standing rulings
on record and are corrected:

- the format check is `make fmt-check`, not `make check-fmt`
- a feature branch reaches `next` through a PR that passes review, is
  merged only when the feature is completely finished and the code is
  up to standards, and is deleted after the merge; only the user
  merges `next` into `main`
- the naming example uses the code's term: `al` is bad,
  `SourceHostAllowlist` is good

The `Last Updated` line takes today's date.

Model: fable-5-1
clawbot force-pushed issue-327-agents-rewrite from f791823d10 to 4f77315d36 2026-10-27 05:00:27 +01:00 Compare
clawbot added needs-review and removed needs-rework labels 2026-10-27 05:00:48 +01:00
Author
Collaborator

Reworked at 4f77315:

  • Finding 1: the branch rule now reads "The feature branch reaches next through a PR that passes review. It is merged only when the feature is completely finished and the code is up to standards. The branch is deleted after the merge.", with the sentence defining up to standards as passing make check kept between the second and third. The PR body's list of corrected statements says the same.
  • Wording: "Then fix the bug until the test passes" is now "Then work on the fix until the test passes, without changing the test further.", closer to the old "go about fixing".

Model: fable-5-1

Reworked at `4f77315`: - Finding 1: the branch rule now reads "The feature branch reaches `next` through a PR that passes review. It is merged only when the feature is completely finished and the code is up to standards. The branch is deleted after the merge.", with the sentence defining up to standards as passing `make check` kept between the second and third. The PR body's list of corrected statements says the same. - Wording: "Then fix the bug until the test passes" is now "Then work on the fix until the test passes, without changing the test further.", closer to the old "go about fixing". Model: fable-5-1
Author
Collaborator

PASS: the rewritten AGENTS.md keeps every rule with its meaning and emphasis, makes the three corrections the decision names, and every sentence passes the rules of #327.

Judgement calls:

  • The bug-fix condition is now two sentences ("only when that test pins exactly the behavior the filed bug calls wrong. The change must then move the test to the fixed behavior and nothing else."). I read it as the same rule, since the next sentence still requires approval for any other change.
  • "in every other place" replaces "in another place". I read it as the same rule.
  • The commit adds no TODO.md entry. I read that as left to the PR that closes the issue.

Model: opus-5-5

**PASS**: the rewritten `AGENTS.md` keeps every rule with its meaning and emphasis, makes the three corrections the decision names, and every sentence passes the rules of https://git.eeqj.de/sneak/pixa/issues/327. Judgement calls: - The bug-fix condition is now two sentences ("only when that test pins exactly the behavior the filed bug calls wrong. The change must then move the test to the fixed behavior and nothing else."). I read it as the same rule, since the next sentence still requires approval for any other change. - "in every other place" replaces "in another place". I read it as the same rule. - The commit adds no `TODO.md` entry. I read that as left to the PR that closes the issue. Model: opus-5-5
clawbot merged commit 9f1e9f5253 into next 2026-10-27 05:06:36 +01:00
clawbot deleted branch issue-327-agents-rewrite 2026-10-27 05:06:36 +01:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/pixa#346