policy(contributor): per-vendor Frontier floor; state model gate by exact model#6584
Conversation
…xact model The Frontier-only table used family wildcards (`claude-sonnet-*`, `claude-haiku-*`), which excluded `claude-sonnet-5` — a current-generation frontier model — while the accepted row still admitted `claude-opus-4-7`. State the floor per vendor by exact model instead: Anthropic claude-opus-4-8+, claude-sonnet-5+ OpenAI gpt-5-5+ Codex codex-5-5+ and name the exclusions explicitly (opus-4-7 and below, sonnet-4-6 and below, all haiku incl. haiku-4-5, all composer, gpt-5-4/5-3 and below, codex-5-4 and below) so no wildcard reading can misclassify a model. Also document how commit evidence is read. A Co-Authored-By trailer is weighed against the commits carrying the implementation: a session that falls back to a sub-Frontier model part-way through leaves sub-Frontier trailers without the change having been generated below the floor, and that is a declaration to confirm rather than dishonesty. The account-level problem is a Model:/Tier: line that contradicts the trailers in the direction that clears the gate. Extend the pre-cutoff grandfather clause to name Haiku, since claude-haiku-4-5 sat in the Standard row until 2026-07-24T02:03:45Z.
📝 WalkthroughWalkthroughUpdated AI contributor documentation to add ChangesTier gate documentation
Estimated code review effort: 1 (Trivial) | ~2 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/AI-CONTRIBUTOR.md`:
- Line 38: Replace the date-only cutoff in the grandfathering paragraph with the
precise UTC timestamp 2026-07-24T02:03:45Z, and explicitly state whether PRs
opened at that exact instant are included. Use this same inclusive or exclusive
comparison consistently for both the policy applicability and the historical
claude-haiku-4-5 explanation.
- Around line 32-34: The model-trailer policy in the “How commit evidence is
read” section gives conflicting outcomes for sub-Frontier commits. Reconcile the
statements so they define one authoritative hard-gate outcome, including the
required declaration correction and re-evaluation flow for
Frontier-to-sub-Frontier fallback, while retaining the account-level escalation
for contradictory Model/Tier claims.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 3ec0901b-ec55-431b-9af4-f237c00143c1
📒 Files selected for processing (1)
docs/AI-CONTRIBUTOR.md
| **Frontier-tier models only.** There is no longer a Standard tier. The floor is per-vendor and is stated by exact model, not by family wildcard — `claude-sonnet-5` is accepted while `claude-sonnet-4-6` is not, so a `claude-sonnet-*` reading of this table is wrong. **Not accepted:** `claude-opus-4-7` and below, `claude-sonnet-4-6` and below, every `claude-haiku-*` including `claude-haiku-4-5`, every `composer-*`, `gpt-5-4` and below including `gpt-5-3`, and `codex-5-4` and below. If that is your model, abort per §0 rather than opening a PR. A PR declaring a non-Frontier model, or whose commits show one, will be closed as out-of-policy without an implementation review. This is not a judgement about those models generally; it reflects that review capacity here is the scarce resource, and sub-Frontier runs have consistently consumed several maintainer rounds per PR to reach a standard a Frontier run reaches on the first pass. | ||
|
|
||
| **How commit evidence is read.** The gate is about the model that *wrote the change*, so a `Co-Authored-By:` trailer is read against the commits that carry the implementation. A session that starts on a Frontier model and falls back to a sub-Frontier one part-way through — a usage limit, a harness default — leaves sub-Frontier trailers on later commits without the PR having been generated below the floor. That is a fixable declaration problem, not dishonesty: expect to be asked to confirm which model did the work. What earns a close is the whole run sitting below the floor; what escalates to an account-level problem is a `Model:`/`Tier:` line that contradicts the trailers in a direction that clears the gate. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Resolve the contradictory handling of sub-Frontier commit trailers.
Line 32 says any commit showing a non-Frontier model closes the PR, while Line 34 says a Frontier-to-sub-Frontier fallback is only a fixable declaration problem. These rules produce opposite outcomes for the same evidence and conflict with .claude/skills/pr-review-loop/SKILL.md’s hard-gate behavior. Define one authoritative outcome and the required remediation/re-evaluation flow.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/AI-CONTRIBUTOR.md` around lines 32 - 34, The model-trailer policy in the
“How commit evidence is read” section gives conflicting outcomes for
sub-Frontier commits. Reconcile the statements so they define one authoritative
hard-gate outcome, including the required declaration correction and
re-evaluation flow for Frontier-to-sub-Frontier fallback, while retaining the
account-level escalation for contradictory Model/Tier claims.
| If you cannot determine your model, abort — do not guess and do not proceed on the assumption that you qualify. Tier cannot satisfy the artifact gate or authorize architecture scope. | ||
|
|
||
| **Applies to PRs opened on or after 2026-07-24.** Pull requests opened before that date are judged on their code, not their declared tier — the Standard tier was accepted policy when they were written, and a contributor who reported a Sonnet or Composer run accurately was following the rules as published. Do not close an older PR for a declaration that was correct when it was made. This grandfathering covers the declaration only: every other gate in this document applies to open PRs regardless of age. | ||
| **Applies to PRs opened on or after 2026-07-24.** Pull requests opened before that date are judged on their code, not their declared tier — the Standard tier was accepted policy when they were written, and a contributor who reported a Sonnet, Haiku, or Composer run accurately was following the rules as published. `claude-haiku-4-5` in particular was named in the Standard row of the tier table until 2026-07-24T02:03:45Z, so Haiku trailers on a PR opened before that are evidence of compliance, not of a violation. Do not close an older PR for a declaration that was correct when it was made. This grandfathering covers the declaration only: every other gate in this document applies to open PRs regardless of age. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Use one precise UTC cutoff boundary.
This paragraph uses the date-only boundary 2026-07-24, but explains the prior policy using 2026-07-24T02:03:45Z. A PR opened between 00:00:00Z and 02:03:44Z on July 24 can therefore be both grandfathered and non-grandfathered depending on which sentence a reviewer applies. State the exact timestamp and whether the comparison is inclusive.
🧰 Tools
🪛 LanguageTool
[style] ~38-~38: You can shorten this phrase to improve clarity and avoid wordiness.
Context: ...violation. Do not close an older PR for a declaration that was correct when it was made. This grandfathering c...
(NNS_THAT_ARE_JJ)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/AI-CONTRIBUTOR.md` at line 38, Replace the date-only cutoff in the
grandfathering paragraph with the precise UTC timestamp 2026-07-24T02:03:45Z,
and explicitly state whether PRs opened at that exact instant are included. Use
this same inclusive or exclusive comparison consistently for both the policy
applicability and the historical claude-haiku-4-5 explanation.
The Frontier-only table used family wildcards (
claude-sonnet-*,claude-haiku-*), which excludedclaude-sonnet-5— a current-generationfrontier model — while the accepted row still admitted
claude-opus-4-7.State the floor per vendor by exact model instead:
Anthropic claude-opus-4-8+, claude-sonnet-5+
OpenAI gpt-5-5+
Codex codex-5-5+
and name the exclusions explicitly (opus-4-7 and below, sonnet-4-6 and
below, all haiku incl. haiku-4-5, all composer, gpt-5-4/5-3 and below,
codex-5-4 and below) so no wildcard reading can misclassify a model.
Also document how commit evidence is read. A Co-Authored-By trailer is
weighed against the commits carrying the implementation: a session that
falls back to a sub-Frontier model part-way through leaves sub-Frontier
trailers without the change having been generated below the floor, and
that is a declaration to confirm rather than dishonesty. The account-level
problem is a Model:/Tier: line that contradicts the trailers in the
direction that clears the gate.
Extend the pre-cutoff grandfather clause to name Haiku, since
claude-haiku-4-5 sat in the Standard row until 2026-07-24T02:03:45Z.
Summary by CodeRabbit
claude-sonnet-5among accepted Frontier-tier models.claude-haiku-4-5.