Skip to content

add gates to agent.md #172

Closed
Closed

Description

@Hafeok

AGENTS.md: list the gate scripts. Add a short list of the scripts in eng/gates/, one line each, saying what each checks, under the existing gates table. Change nothing else.

Activity

  1. added
    claudeStart a Claude Code action session (Emil only); see AGENTS.md
    on Nov 11, 2026
  2. Hafeok commented on Nov 11, 2026

    @Hafeok
    CollaboratorAuthor

    Issue session plan

    Prompt: eng/routines/issue-session.md, version 1. Started by the claude label, applied by Hafeok by hand on 2026-11-11.

    What I read

    • Issue add gates to agent.md #172 (no comments).
    • AGENTS.md, in full; the ## Gates section is the one that changes.
    • The eight scripts in eng/gates/ and their header comments: adr-shape.sh, adr-text.sh, claude-workflow.sh, commits.sh, no-toolchain.sh, selftest.sh, signatures.sh, smoke.sh.
    • releases/v0.8.0-preview.3.yaml, docs/traceability/2026-11-06-issue-170-issue-sessions.md and Directory.Build.props (the Version line), for the record's and the descriptor's shape.
    • The definition was not read for a change: this is a documentation change to AGENTS.md, nothing structural, and nothing under .github/ or eng/gates/ changes.

    What I will change, file by file

    AGENTS.md: one addition in ## Gates, directly under the table and above the paragraph that starts "selftest plants a failing case". No other line of the file changes. The text:

    The scripts in `eng/gates/`:
    
    - `adr-shape.sh` checks that every file in `docs/decisions/` is an ADR of the required shape, with a number no other ADR has.
    - `adr-text.sh` checks that ADR-0001 to ADR-0012 equal their sections of the collected file, byte for byte.
    - `claude-workflow.sh` checks that `.github/workflows/claude.yml` is the bridge ADR-0014 states, and agrees with the routine's prompt.
    - `commits.sh` checks that every commit in a range carries `Refs #N` and a person's `Signed-off-by:`, and names no model.
    - `no-toolchain.sh` checks that .NET is the only toolchain in the tree, pinned once, in the root `global.json`.
    - `selftest.sh` checks the checks: each passes its clean case and fails every case planted for it.
    - `signatures.sh` checks that GitHub reports every commit of a pull request as verified.
    - `smoke.sh` checks a published binary's `--version` bytes, its exit codes, and its refusal of a verb.

    docs/traceability/2026-11-11-issue-172-gate-scripts.md (new): the session record in the shape of the #170 record: the prompt and its version (1), the tool, what was read, the approved plan, the commits, the checks and their results, and any deviation. Model written "not recorded (ADR-0007 D1)".

    releases/: see question 1. My proposal is no new version: the product is unchanged, so Directory.Build.props stays at 0.8.0-preview.3, and I add one line under the summary of releases/v0.8.0-preview.3.yaml, in its AGENTS.md bullet, saying the gates section now lists the scripts. I do not touch accepted-by.

    Commits

    Each signed as Claude (Emil) <claude+emil@okkels-klein.dk>, with Refs #172 and Signed-off-by: Emil Okkels Klein <emil@okkels-klein.dk>, and no model identifier:

    1. docs: AGENTS.md lists the gate scripts
    2. releases: …, as question 1 is answered (omitted if the answer is "no descriptor change")
    3. docs(traceability): the #172 session record

    Checks I will run before pushing

    • eng/gates/selftest.sh
    • eng/gates/commits.sh origin/main HEAD
    • eng/gates/adr-shape.sh && eng/gates/adr-text.sh && eng/gates/no-toolchain.sh && eng/gates/claude-workflow.sh
    • dotnet build ProductCli.slnx -c Release and dotnet test -c Release --no-build, only if the answer to question 1 changes Directory.Build.props; otherwise no built file changes and I will say so in the record.

    signatures runs on the pull request, since it reads GitHub's verification. Then I open the pull request against main with Refs #172, Approved plan: <this comment's id> and the check results, and link it here.

    Questions for Emil

    1. The release descriptor. The issue says "Change nothing else", and AGENTS.md asks for a record and a release descriptor with every pull request. I read "nothing else" as "nothing else in AGENTS.md", so the record is added either way. For the descriptor, which do you want?
      • (a) Proposed: one line added to releases/v0.8.0-preview.3.yaml, no version change. That descriptor already carries accepted-by, which I leave as it is; say if an accepted descriptor must not be edited.
      • (b) A new releases/v0.8.0-preview.4.yaml without accepted-by, with Version in Directory.Build.props moved to 0.8.0-preview.4 so product --version matches, and the build, tests and smoke run.
      • (c) No descriptor change at all, recorded as a deviation in the session record.
    2. The list's order and wording. Alphabetical by file name, as above, rather than the table's job order. smoke.sh is in the list although it has no row of its own in the table (it runs inside aot (<rid>)). Say if you want either changed.

    Answers: label


    Generated by Claude Code

  3. Hafeok commented on Nov 11, 2026

    @Hafeok
    CollaboratorAuthor

    @claude 1. a and 2 is fine approved

  4. Hafeok commented on Nov 11, 2026

    @Hafeok
    CollaboratorAuthor

    Issue session plan

    Prompt: eng/routines/issue-session.md, version 1. Started by comment 6792695179, typed by Hafeok by hand on 2026-11-11.

    Nothing is implemented yet. That comment starts with @claude but not with @claude approved (it reads "@claude 1. a and 2 is fine approved"), so under the routine's rule it asks for a revised plan and is not an approval. This is the plan of comment 6792653737 with your two answers folded in and no question left open. To approve it, post a comment whose first words are exactly @claude approved.

    What I read

    • Issue add gates to agent.md #172 and its two comments: the plan 6792653737 and your answer 6792695179.
    • AGENTS.md, in full; the ## Gates section is the one that changes.
    • The eight scripts in eng/gates/: adr-shape.sh, adr-text.sh, claude-workflow.sh, commits.sh, no-toolchain.sh, selftest.sh, signatures.sh, smoke.sh.
    • releases/v0.8.0-preview.3.yaml and docs/traceability/2026-11-06-issue-170-issue-sessions.md, for the descriptor's and the record's shape.
    • The definition was not read for a change: this is a documentation change to AGENTS.md, nothing structural, and nothing under .github/ or eng/gates/ changes.

    Your answers, as I take them

    1. Question 1: (a). No new version. One line is added to releases/v0.8.0-preview.3.yaml; Directory.Build.props stays at 0.8.0-preview.3; the accepted-by already in that descriptor is left exactly as it is.
    2. Question 2: fine as proposed. The list is alphabetical by file name, and smoke.sh is in it.

    What I will change, file by file

    AGENTS.md: one addition in ## Gates, directly under the table and above the paragraph that starts "selftest plants a failing case". No other line of the file changes. The text:

    The scripts in `eng/gates/`:
    
    - `adr-shape.sh` checks that every file in `docs/decisions/` is an ADR of the required shape, with a number no other ADR has.
    - `adr-text.sh` checks that ADR-0001 to ADR-0012 equal their sections of the collected file, byte for byte.
    - `claude-workflow.sh` checks that `.github/workflows/claude.yml` is the bridge ADR-0014 states, and agrees with the routine's prompt.
    - `commits.sh` checks that every commit in a range carries `Refs #N` and a person's `Signed-off-by:`, and names no model.
    - `no-toolchain.sh` checks that .NET is the only toolchain in the tree, pinned once, in the root `global.json`.
    - `selftest.sh` checks the checks: each passes its clean case and fails every case planted for it.
    - `signatures.sh` checks that GitHub reports every commit of a pull request as verified.
    - `smoke.sh` checks a published binary's `--version` bytes, its exit codes, and its refusal of a verb.

    releases/v0.8.0-preview.3.yaml: one line added under the summary, in its AGENTS.md bullet, saying the gates section now lists the scripts in eng/gates/ (#172). Nothing else in the file changes, accepted-by included.

    docs/traceability/2026-11-11-issue-172-gate-scripts.md (new): the session record in the shape of the #170 record: the prompt and its version (1), the tool, what was read, the approved plan, the commits, the checks and their results, and any deviation. Model written "not recorded (ADR-0007 D1)".

    Commits

    Each signed as Claude (Emil) <claude+emil@okkels-klein.dk>, with Refs #172 and Signed-off-by: Emil Okkels Klein <emil@okkels-klein.dk>, and no model identifier:

    1. docs: AGENTS.md lists the gate scripts
    2. releases: the preview.3 descriptor names the gate-script list
    3. docs(traceability): the #172 session record

    Checks I will run before pushing

    • eng/gates/selftest.sh
    • eng/gates/commits.sh origin/main HEAD
    • eng/gates/adr-shape.sh && eng/gates/adr-text.sh && eng/gates/no-toolchain.sh && eng/gates/claude-workflow.sh
    • No dotnet build or dotnet test: no built file changes, and the record will say so.

    signatures runs on the pull request, since it reads GitHub's verification. Then I open the pull request against main with Refs #172, Approved plan: <this comment's id> and the check results, and link it here.

    Questions for Emil

    None.

    Answers: comment 6792695179


    Generated by Claude Code

  5. Hafeok commented on Nov 11, 2026

    @Hafeok
    CollaboratorAuthor

    @claude approved

  6. Hafeok commented on Nov 11, 2026

    @Hafeok
    CollaboratorAuthor

    The approved plan (comment 6792713812) is implemented in #173: #173

    • Three signed commits: the list in AGENTS.md, one line in releases/v0.8.0-preview.3.yaml, and the session record.
    • selftest, commits, adr-shape, adr-text, no-toolchain and claude-workflow pass locally on the head, 528a1f8. The build, the tests and signatures run on the pull request.
    • No deviation from the plan.

    Generated by Claude Code

  7. Hafeok commented on Nov 11, 2026

    @Hafeok
    CollaboratorAuthor

    Landed in 528a1f8 (#173).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    claudeStart a Claude Code action session (Emil only); see AGENTS.md

    Type

    No type

    Fields

    Priority

    None yet

    Effort

    None yet

    Progress

    None yet

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions