Skip to content

docs: explicit model param on Agent calls + Sonnet default for PR-shipping#10

Closed
cristim wants to merge 1 commit into
mainfrom
docs/explicit-model-rules
Closed

docs: explicit model param on Agent calls + Sonnet default for PR-shipping#10
cristim wants to merge 1 commit into
mainfrom
docs/explicit-model-rules

Conversation

@cristim
Copy link
Copy Markdown
Member

@cristim cristim commented May 3, 2026

Summary

Adds two bullets to CLAUDE.md §"Subagent Strategy" tightening the existing "delegate to the cheapest sufficient tier" rule:

  1. Always pass model explicitly on every Agent call — never rely on inheritance. Omission silently makes Opus the de facto tier for every subagent of an Opus session — a 5–10× cost premium for work that almost always doesn't need it. If you genuinely want the parent's tier, still pass it explicitly so the choice is visible at the call site.

  2. Routine PR-shipping defaults to Sonnet end-to-end. The standard pattern (plan + 3-pass review + worktree + implement + test + push + open-PR + ping-CR + arm-CI-watcher) is Sonnet-tier work even including the plan and review iterations. Empirically clean when the issue's acceptance criteria are clearly enumerated. Escalate to Opus per-fork only when a specific signal during review surfaces real design judgment (shape not pre-decided, competing approaches need weighing, subtle invariant surfaced that no acceptance criterion captured).

Test plan

  • Read CLAUDE.md §"Subagent Strategy" lines 213–217 — the two new bullets sit alongside the "Default: delegate down" rule and the existing rubric, and the three together read as one coherent escalation policy
  • Confirm "explicit model" rule doesn't contradict the "main session's tier set by user" line (line 222) — they're compatible: line 222 governs the main thread, the new rule governs Agent spawns
  • `git diff --stat origin/main` shows exactly one file changed (`CLAUDE.md`), 2 insertions, 0 deletions

Summary by CodeRabbit

  • Chores
    • Updated internal development guidance and workflow documentation.

Note: This release contains no user-facing changes.

…pping

Adds two bullets to CLAUDE.md §"Subagent Strategy" tightening the
existing "delegate to the cheapest sufficient tier" rule:

1. Always pass `model` explicitly on every `Agent` call — never rely
   on inheritance. Omission silently makes Opus the de facto tier for
   every subagent of an Opus session, a 5–10× cost premium for work
   that almost always doesn't need it. If you genuinely want the
   parent's tier, still pass it explicitly so the choice is visible
   at the call site.

2. Routine PR-shipping (plan + 3-pass review + worktree + implement +
   test + push + open-PR + ping-CR + arm-CI-watcher) defaults to
   Sonnet end-to-end — including plan and review iterations.
   Empirically clean when acceptance criteria are clearly enumerated.
   Escalate to Opus per-fork only when a specific signal during
   review surfaces real design judgment (shape not pre-decided,
   competing approaches need weighing, subtle invariant surfaced).
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 3, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 060ba204-4004-457d-9e1e-9177e7c828d6

📥 Commits

Reviewing files that changed from the base of the PR and between 670ee2f and 9bc19dd.

📒 Files selected for processing (1)
  • CLAUDE.md

📝 Walkthrough

Walkthrough

Updated documentation in CLAUDE.md to establish two default guidance rules: always explicitly pass the model parameter on every Agent call to prevent unintended inheritance, and default routine PR shipping to Sonnet tier unless an explicit escalation reason exists.

Changes

Agent Modeling Guidance

Layer / File(s) Summary
Documentation Update
CLAUDE.md
Added guidance requiring explicit model parameter on every Agent call and establishing Sonnet as the default model tier for routine PR-shipping workflows unless escalation is justified.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Possibly related issues

Possibly related PRs

Suggested labels

triaged, type/docs, effort/xs, impact/internal, severity/low, urgency/eventually, priority/p3

Poem

🐰 A model must be named, not guessed with care,
Let Sonnet lead the shipping everywhere!
No silent inheritance—pass it true,
Two lines of wisdom, crystal-clear and new.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly and concisely summarizes the two main changes: adding an explicit model parameter requirement and setting Sonnet as the default for PR-shipping workflows.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/explicit-model-rules
⚔️ Resolve merge conflicts
  • Resolve merge conflict in branch docs/explicit-model-rules

Review rate limit: 4/5 reviews remaining, refill in 12 minutes.

Comment @coderabbitai help to get the list of available commands and usage tips.

@cristim
Copy link
Copy Markdown
Member Author

cristim commented May 3, 2026

Superseded by commit b3f64d6 ("docs(claude): codify model-selection + PR-labeling rules", closes #8) — main already contains the explicit-model-param and Sonnet-default-for-PR-shipping bullets verbatim. Closing rather than rebasing into a no-op merge.

@cristim cristim closed this May 3, 2026
@cristim cristim deleted the docs/explicit-model-rules branch May 3, 2026 22:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant