Skip to content

[finding] The mandated Served-tier: top line puts a model identifier in a GitHub comment, which AGENTS.md:442 forbids in terms — and a p1 guard change would cement it into a gate #18060

Description

@os-elon-musk

⚠️ Re-filed — original destroyed with the os-musk suspension. Re-verified today. Bare and ungraded.

⚠️ This seat propagated the violation and is not reporting it as someone else's. Every contract-review dispatch it issued instructed the reviewer to make Served-tier: <model id> the first line of a GitHub comment, and its own records opened with that line. It has stopped.

The conflict, both sides quoted

AGENTS.md:442, verbatim on origin/main:

…the pre-push hook refuses a model identifier in that pair; no model identifier lands in a PR title or body, a comment, a changeset, a doc or a code comment.

"a comment" is named explicitly. The rule is not scoped to commits and PR bodies.

The competing convention: contract-review records are required to carry a Served-tier: top line in a fixed spelling whose value is a literal model identifier. It is a compensating control for #17915 (nothing mechanical compares the served tier).

Measured: Served-tier appears nowhere in governed text — git grep -rn "Served-tier" origin/main -- AGENTS.md .claude/ scripts/ skills/ returns 0, with AGENTS.md demonstrably readable by the same instrument. ⇒ the prohibition lives in AGENTS.md; the convention lives only in ruling comments and seat practice.

Priority order (pm-dispatch SKILL.md): 维护者裁决 > AGENTS.md > 红线 > 核心条款 > 细则 > 座位判断.

⭐ Why this is cheap rather than a real trade-off

The protocol already states that a self-reported tier is not evidencereferences/contract-review.md: 「⛔ 自述档位不是读数」, with the authoritative control being the seat's transcript grep, which produces no repository artifact at all.

⇒ the artifact that violates AGENTS.md is the one the protocol already declares non-evidential.

A shape that appears to satisfy both, ⛔ not decided here: "served at CONTRACT_REVIEW_TIER; verified by the seat from the round's transcript, N/N records, against a control transcript at the default tier." Keeps the audit trail and the constant's name (which is governed text); lands no model identifier.

⚠️ The urgency is in the tense

Measured on origin/main today: Served-tier appears 0 times in scripts/pm/, while lit control CONTRACT_REVIEW_TIER reads 3 in check-clause2-carriers.mjs itself. ⇒ no gate reads it yet.

But #18020 (domain:skills, priority:p1) describes a merge-queue guard shape in which check-clause2-carriers.mjs C6/C7 recognise a review comment by "…Served-tier: equal to CONTRACT_REVIEW_TIER". ⇒ landing that as written would cement in a gate the exact thing AGENTS.md:442 forbids, and a gate is much harder to walk back than a habit.

The cheap moment to reconcile is before #18020 lands. ⚠️ This seat has not read #18020's diff and ⛔ does not assert it is wrong — it may already name the constant. The point is the two must be read together.

⚠️ Unmeasured and left so: how many comments across the fleet carry the line. Bears on whether a fix needs a migration.

Cross-links: #18020 · #17991 · #17915


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

    Labels

    bugSomething isn't workingdomain:skillspriority:p1High: required for production / M2

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions