From a031b5cbad714afc1d37b4d064763c7d4a27ac5b Mon Sep 17 00:00:00 2001 From: Tanisha Aberdeen <32620895+aliasunder@users.noreply.github.com> Date: Mon, 7 Sep 2026 15:40:27 -0400 Subject: [PATCH] feat(ship-check): add --model flag, default agents to inherit session model MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Agent definitions change from `model: opus` to `model: inherit` so phase agents match the session's model by default — enabling cost-effective runs on OpenRouter/ORI with non-Anthropic models like DeepSeek. The new --model flag (sonnet/opus/haiku/fable) overrides when a specific Anthropic tier is needed (e.g. `--model opus` for thoroughness on a cheaper session model). Co-Authored-By: Claude Opus 4.6 (1M context) --- plugins/ship-check/agents/bug-checker.md | 2 +- plugins/ship-check/agents/code-quality-reviewer.md | 2 +- plugins/ship-check/agents/pr-reviewer.md | 2 +- plugins/ship-check/agents/test-auditor.md | 2 +- plugins/ship-check/skills/ship-check/SKILL.md | 9 +++++++++ 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/plugins/ship-check/agents/bug-checker.md b/plugins/ship-check/agents/bug-checker.md index 09c6eaa..104add1 100644 --- a/plugins/ship-check/agents/bug-checker.md +++ b/plugins/ship-check/agents/bug-checker.md @@ -7,7 +7,7 @@ description: > a deep correctness check or to look for subtle bugs, and verifying that tool descriptions match their implementations after changes. See "When to invoke" in the agent body for worked scenarios. -model: opus +model: inherit color: red tools: - Read diff --git a/plugins/ship-check/agents/code-quality-reviewer.md b/plugins/ship-check/agents/code-quality-reviewer.md index 75f4559..86f03c2 100644 --- a/plugins/ship-check/agents/code-quality-reviewer.md +++ b/plugins/ship-check/agents/code-quality-reviewer.md @@ -7,7 +7,7 @@ description: > conventions), a user asking for a convention-grounded code quality pass, and reviewing changed files against project-specific naming and immutability rules. See "When to invoke" in the agent body for worked scenarios. -model: opus +model: inherit color: green tools: - Read diff --git a/plugins/ship-check/agents/pr-reviewer.md b/plugins/ship-check/agents/pr-reviewer.md index 1755ea3..85b8d3d 100644 --- a/plugins/ship-check/agents/pr-reviewer.md +++ b/plugins/ship-check/agents/pr-reviewer.md @@ -7,7 +7,7 @@ description: > convention-aware PR review rather than a generic one, and reviewing a PR against project-specific TDQS scoring or feature surface doc requirements. See "When to invoke" in the agent body for worked scenarios. -model: opus +model: inherit color: cyan tools: - Read diff --git a/plugins/ship-check/agents/test-auditor.md b/plugins/ship-check/agents/test-auditor.md index a1b9c81..a2112f3 100644 --- a/plugins/ship-check/agents/test-auditor.md +++ b/plugins/ship-check/agents/test-auditor.md @@ -6,7 +6,7 @@ description: > for Phase 3, a user asking to audit tests or check test quality against conventions, and checking whether production code changes have adequate test coverage. See "When to invoke" in the agent body for worked scenarios. -model: opus +model: inherit color: yellow tools: - Read diff --git a/plugins/ship-check/skills/ship-check/SKILL.md b/plugins/ship-check/skills/ship-check/SKILL.md index 463a7a6..b9982d9 100644 --- a/plugins/ship-check/skills/ship-check/SKILL.md +++ b/plugins/ship-check/skills/ship-check/SKILL.md @@ -278,6 +278,7 @@ Dispatch the `pr-reviewer` agent type from the ship-check plugin: ``` Agent({ subagent_type: "ship-check:pr-reviewer", + model: "", // include ONLY when --model is specified description: "PR review — correctness, security, conditional checks", prompt: "Review the PR on branch (PR #) against main. This is Phase 1 of the ship-check pipeline — focus on dimensions 1 (correctness), 4 (security/performance), and conditional dimensions 5-7 (TDQS, feature surface docs, stale path references). Skip dimensions 2 (conventions) and 3 (test quality) — dedicated agents handle those next. Fix all high/medium confidence findings directly. For low-confidence findings: fix if the change is trivial and safe (< 5 lines, no interface change); only flag when the fix itself is uncertain, risky, or needs a design decision. When flagging, categorize as: 'uncertain diagnosis', 'complex fix', or 'needs design decision'. Commit and push." }) @@ -295,6 +296,7 @@ Dispatch the `code-quality-reviewer` agent type: ``` Agent({ subagent_type: "ship-check:code-quality-reviewer", + model: "", // include ONLY when --model is specified description: "Code quality — conventions, readability", prompt: "Run a code quality pass on branch (PR #) against main. Review all changed files (source, CI/CD, IaC, config — everything except test files) for naming, structure, comments, simplicity, and module conventions; changed markdown docs get the docs & comment concision dimension. Fix every finding, commit, and push. Prior-phase context: ." }) @@ -310,6 +312,7 @@ Dispatch the `test-auditor` agent type: ``` Agent({ subagent_type: "ship-check:test-auditor", + model: "", // include ONLY when --model is specified description: "Test audit — quality + coverage gaps", prompt: "Audit tests on branch (PR #) against main. Audit all changed test files against convention dimensions AND run coverage gap analysis on changed non-test files. Write missing tests for coverage gaps. Fix test quality issues. Commit and push. Prior-phase context: ." }) @@ -325,6 +328,7 @@ Dispatch the `bug-checker` agent type: ``` Agent({ subagent_type: "ship-check:bug-checker", + model: "", // include ONLY when --model is specified description: "Bug check — 7-dimension systematic hunt", prompt: "Run a systematic bug check on branch (PR #) against main. Read every changed file in full (source, CI/CD, IaC, config — all non-test files). Apply all 7 dimensions — especially dimension 1 (description-vs-implementation, quote verbatim). Fix high-confidence bugs directly. For medium/low-confidence findings: fix if the change is trivial and safe (< 5 lines, no interface change); only flag when the fix itself is uncertain, risky, or needs a design decision. When flagging, categorize as: 'uncertain diagnosis', 'complex fix', or 'needs design decision'. Commit and push. Prior-phase context: ." }) @@ -423,6 +427,11 @@ The user can customize the pipeline: - `/ship-check --comment` — post findings as inline PR review comments instead of fixing. Implies --no-fix. Phase 5 (pr-monitor) is skipped — the pipeline is reviewing a PR it isn't responsible for. Composable with --skip, --only, --inline, --fork. +- `/ship-check --model ` — override the model for all phase agents. Valid values: + `sonnet`, `opus`, `haiku`, `fable`. Overrides the agent definition's `model:` frontmatter + for this run only. Useful for forcing a specific tier (`--model opus` for thoroughness) + when the session is on a different model. Ignored with `--inline` (inline phases use + the session's model). Default: `inherit` (agents use the session's model). - `/ship-check --inline` — run all phases in the current context (no agents, no fresh eyes — useful when context from prior work is actually helpful) - `/ship-check --fork` — use forks instead of agents (legacy behavior — spawns forks