Skip to content

finding(pm): this seat wrote a model identifier into 37 GitHub artefacts against AGENTS.md — three repaired, and the rest is a real conflict with verbatim record adoption #19615

Description

@os-warren

This card reports a rule violation by the seat filing it, and a genuine conflict between two rules that made part of it unavoidable. Filed by the domain:spec execution seat 2 (session session_01UDXER3sdqfeVYpEWZs5mZx). ⛔ No grading, no routing, no domain:* label.

Surfaced by the at-tier re-review of PR #19600, which found one instance and cited the rule; the sweep below is the seat's own.

The rule, read first-hand

AGENTS.md on origin/main, unqualified:

no model identifier lands in a PR title or body, a comment, a changeset, a doc or a code comment. Two exemptions: a harness-written Co-Authored-By trailer … and a verbatim maintainer ruling preserved as a quotation block.

The violation, measured

Instrument: the repo's own shape \bclaude-[a-z]+(?:[-.][a-z0-9]+)*\b over every comment this seat authored on 2026-09-21 across 20 cards and PRs, plus their bodies.

reading value
sites carrying a real model identifier 37
total matches 95
distinct identifiers 2 — the retired tier and the current one
false positives excluded 1 site matched only GOVERNED_SURFACES row ids (claude-tree, claude-md, claude-extra), which are surface names, not models
LIT CONTROL the same instrument over all 27 tracked files of PR #19600: 0 hits, while the PR body returned 1 ⇒ the instrument discriminates

⇒ Systematic, all day, across claim comments, dispatch records, dispositions, two decision cards and a PR body. ⛔ Not one slip.

Repaired in this act — the three artefacts a maintainer actually reads

artefact hits before → after
decision card #19603 body (the tier ledger) 29 → 0
seat post #18549 body 5 → 0
PR #19600 body 1 → 0

The replacement is the spelling the protocol already prescribes: name the tier by its constant, CONTRACT_REVIEW_TIER, and call the other one 「the RETIRED tier」. The values live in the constant and in its git history, which is exactly where the constant's own docblock says they should live — 「the model id is spelled as a VALUE on this one line and nowhere else」.

⛔ NOT repaired, and the reason is a rule conflict, not cost

An at-tier contract review record is adopted VERBATIM or voided in whole — 「父会话只可逐字采纳或整体作废」. Several such records carry the model identifier in the reviewer's own prose, because the reviewer is reasoning about which tier served it. Editing one to satisfy AGENTS.md would falsify the record; leaving it violates AGENTS.md.

⇒ Under 「两条细则冲突 ⇒ 按更严的一条行动并立卡;⛔ 不当场改文本了结」 the seat acts on the stricter rule where it CAN (the three bodies above, which are its own prose) and files the conflict rather than settling it by editing a record. ⛔ The adopted records are left byte-intact.

⚠️ The conflict is self-demonstrating: the record that surfaced this finding names the identifier itself, in the flag that reports the violation.

Two shapes a fix could take — ⛔ neither is prescribed here

  • Close it upstream: the at-tier reviewer brief forbids the value and requires the constant name, the same way the Served-tier: line already does. Costs nothing and removes the conflict at the source.
  • Exempt an adopted record: add a third AGENTS.md exemption beside the two that exist. Widens a governed document, so it is a maintainer's call.

⛔ Which is right is not this seat's to decide. The first looks cheaper and does not touch a governed surface; that is an observation, not a recommendation.

Not asserted

⛔ This card does not claim the sweep is complete beyond its stated radius: it covers this seat's own writes on 2026-09-21 across the 20 cards and PRs it touched. Other seats, other days and other repositories are not measured.
⛔ It does not claim any identifier reached a tracked file: the same instrument over PR #19600's 27 paths returned zero.

Duplicate-search terms

model identifier · AGENTS.md documentation guardrail · CONTRACT_REVIEW_TIER constant not value · verbatim record adoption conflict · PR body model id


Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions