diff --git a/action.yml b/action.yml index e419f98..a3d8f6b 100644 --- a/action.yml +++ b/action.yml @@ -94,9 +94,9 @@ inputs: review_model: description: "Override the model used for code review (e.g., 'claude-sonnet-4-5-20250929', 'gpt-5.1-codex'). Only applies to review flows." required: false - default: "gpt-5.2" + default: "claude-opus-4-6" reasoning_effort: - description: "Override reasoning effort for review flows (passed to Droid Exec as --reasoning-effort). If empty and review_model is also empty, the action defaults internally to gpt-5.2 at high reasoning." + description: "Override reasoning effort for review flows (passed to Droid Exec as --reasoning-effort). If empty and review_model is also empty, the action defaults internally to claude-opus-4-6 at high reasoning." required: false default: "high" review_use_validator: diff --git a/review/action.yml b/review/action.yml index 6d8e620..7bd4439 100644 --- a/review/action.yml +++ b/review/action.yml @@ -15,7 +15,7 @@ inputs: review_model: description: "Model to use for review" required: false - default: "gpt-5.2" + default: "claude-opus-4-6" reasoning_effort: description: "Reasoning effort for review (passed to Droid Exec as --reasoning-effort)" required: false diff --git a/test/modes/tag/review-command.test.ts b/test/modes/tag/review-command.test.ts index 5b8b8af..018d7c8 100644 --- a/test/modes/tag/review-command.test.ts +++ b/test/modes/tag/review-command.test.ts @@ -390,7 +390,7 @@ describe("prepareReviewMode", () => { (call: unknown[]) => call[0] === "droid_args", ) as [string, string] | undefined; // When neither REVIEW_MODEL nor REASONING_EFFORT is provided, no --model or --reasoning-effort - // flags are added. Defaults are handled by the action.yml inputs (gpt-5.2 / high). + // flags are added. Defaults are handled by the action.yml inputs (claude-opus-4-6 / high). expect(droidArgsCall?.[1]).not.toContain("--model"); expect(droidArgsCall?.[1]).not.toContain("--reasoning-effort"); }); diff --git a/test/review-model-default-sync.test.ts b/test/review-model-default-sync.test.ts new file mode 100644 index 0000000..80fd06e --- /dev/null +++ b/test/review-model-default-sync.test.ts @@ -0,0 +1,31 @@ +import { describe, expect, it } from "bun:test"; +import { readFileSync } from "node:fs"; +import { join } from "node:path"; + +function extractReviewModelDefault(yaml: string): string { + const match = yaml.match( + /review_model:\n(?:\s+.*\n)*?\s+default:\s*"([^"]+)"/, + ); + + expect(match).toBeTruthy(); + return match?.[1] ?? ""; +} + +describe("review_model default sync", () => { + it("keeps review_model default in sync between action manifests", () => { + const rootActionYaml = readFileSync( + join(process.cwd(), "action.yml"), + "utf8", + ); + const reviewActionYaml = readFileSync( + join(process.cwd(), "review", "action.yml"), + "utf8", + ); + + const rootDefault = extractReviewModelDefault(rootActionYaml); + const reviewDefault = extractReviewModelDefault(reviewActionYaml); + + expect(rootDefault).toBe(reviewDefault); + expect(rootDefault.length).toBeGreaterThan(0); + }); +});