diff --git a/.changeset/sturdy-goats-parade.md b/.changeset/sturdy-goats-parade.md new file mode 100644 index 000000000..af459e4db --- /dev/null +++ b/.changeset/sturdy-goats-parade.md @@ -0,0 +1,5 @@ +--- +type: Fixed +pr: 2325 +--- +**`/gsd:plan-review-convergence` can now use the Antigravity CLI reviewer** — its reviewer-flag whitelist predated the 1.7.0 Antigravity adapter and silently dropped `--agy`/`--antigravity`, so convergence fell back to `--codex` only and the working adapter was unreachable (especially after Gemini CLI's upstream shutdown). Both flags are now recognized and passed through to `/gsd-review` unchanged. (#2293) diff --git a/commands/gsd/plan-review-convergence.md b/commands/gsd/plan-review-convergence.md index b262304a3..86a9b9086 100644 --- a/commands/gsd/plan-review-convergence.md +++ b/commands/gsd/plan-review-convergence.md @@ -1,7 +1,7 @@ --- name: gsd:plan-review-convergence description: "Cross-AI plan convergence - replan until review concerns are resolved." -argument-hint: " [--codex] [--gemini] [--claude] [--opencode] [--ollama] [--lm-studio] [--llama-cpp] [--text] [--ws ] [--all] [--max-cycles N]" +argument-hint: " [--codex] [--gemini] [--claude] [--opencode] [--ollama] [--lm-studio] [--llama-cpp] [--agy] [--text] [--ws ] [--all] [--max-cycles N]" allowed-tools: - Read - Write @@ -42,6 +42,7 @@ Phase number: extracted from $ARGUMENTS (required) **Flags:** - `--codex` — Use Codex CLI as reviewer (default if no reviewer specified) - `--gemini` — Use Gemini CLI as reviewer +- `--agy` / `--antigravity` — Use Antigravity CLI as reviewer (successor to the discontinued Gemini CLI) - `--claude` — Use Claude CLI as reviewer (separate session) - `--opencode` — Use OpenCode as reviewer - `--ollama` — Use local Ollama server as reviewer (OpenAI-compatible, default host `http://localhost:11434`; configure model via `review.models.ollama`) diff --git a/gsd-core/workflows/plan-review-convergence.md b/gsd-core/workflows/plan-review-convergence.md index 89e250724..4e629db35 100644 --- a/gsd-core/workflows/plan-review-convergence.md +++ b/gsd-core/workflows/plan-review-convergence.md @@ -18,7 +18,7 @@ Read all files referenced by the invoking prompt's execution_context before star ## 1. Parse and Normalize Arguments -Extract from $ARGUMENTS: phase number, reviewer flags (`--codex`, `--gemini`, `--claude`, `--opencode`, `--ollama`, `--lm-studio`, `--llama-cpp`, `--all`), `--max-cycles N`, `--text`, `--ws`. +Extract from $ARGUMENTS: phase number, reviewer flags (`--codex`, `--gemini`, `--agy`/`--antigravity`, `--claude`, `--opencode`, `--ollama`, `--lm-studio`, `--llama-cpp`, `--all`), `--max-cycles N`, `--text`, `--ws`. ```bash PHASE=$(echo "$ARGUMENTS" | grep -oE '[0-9]+\.?[0-9]*' | head -1) @@ -26,6 +26,8 @@ PHASE=$(echo "$ARGUMENTS" | grep -oE '[0-9]+\.?[0-9]*' | head -1) REVIEWER_FLAGS="" echo "$ARGUMENTS" | grep -q '\-\-codex' && REVIEWER_FLAGS="$REVIEWER_FLAGS --codex" echo "$ARGUMENTS" | grep -q '\-\-gemini' && REVIEWER_FLAGS="$REVIEWER_FLAGS --gemini" +echo "$ARGUMENTS" | grep -q '\-\-agy' && REVIEWER_FLAGS="$REVIEWER_FLAGS --agy" +echo "$ARGUMENTS" | grep -q '\-\-antigravity' && REVIEWER_FLAGS="$REVIEWER_FLAGS --antigravity" echo "$ARGUMENTS" | grep -q '\-\-claude' && REVIEWER_FLAGS="$REVIEWER_FLAGS --claude" echo "$ARGUMENTS" | grep -q '\-\-opencode' && REVIEWER_FLAGS="$REVIEWER_FLAGS --opencode" echo "$ARGUMENTS" | grep -q '\-\-ollama' && REVIEWER_FLAGS="$REVIEWER_FLAGS --ollama" diff --git a/skills/gsd-plan-review-convergence/SKILL.md b/skills/gsd-plan-review-convergence/SKILL.md index ae3076227..c82fdb17b 100644 --- a/skills/gsd-plan-review-convergence/SKILL.md +++ b/skills/gsd-plan-review-convergence/SKILL.md @@ -1,7 +1,7 @@ --- name: gsd-plan-review-convergence description: "Cross-AI plan convergence - replan until review concerns are resolved." -argument-hint: " [--codex] [--gemini] [--claude] [--opencode] [--ollama] [--lm-studio] [--llama-cpp] [--text] [--ws ] [--all] [--max-cycles N]" +argument-hint: " [--codex] [--gemini] [--claude] [--opencode] [--ollama] [--lm-studio] [--llama-cpp] [--agy] [--text] [--ws ] [--all] [--max-cycles N]" allowed-tools: - Read - Write @@ -42,6 +42,7 @@ Phase number: extracted from $ARGUMENTS (required) **Flags:** - `--codex` — Use Codex CLI as reviewer (default if no reviewer specified) - `--gemini` — Use Gemini CLI as reviewer +- `--agy` / `--antigravity` — Use Antigravity CLI as reviewer (successor to the discontinued Gemini CLI) - `--claude` — Use Claude CLI as reviewer (separate session) - `--opencode` — Use OpenCode as reviewer - `--ollama` — Use local Ollama server as reviewer (OpenAI-compatible, default host `http://localhost:11434`; configure model via `review.models.ollama`) diff --git a/tests/fixtures/golden-install-parity/antigravity.json b/tests/fixtures/golden-install-parity/antigravity.json index 5b1534d47..9d437f1b6 100644 --- a/tests/fixtures/golden-install-parity/antigravity.json +++ b/tests/fixtures/golden-install-parity/antigravity.json @@ -275,7 +275,7 @@ "gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "4099ef6d0868de60", "gsd-core/workflows/plan-phase/steps/prd-express-path.md": "ab0b22244c3389aa", "gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "e9de7a96bbfff261", - "gsd-core/workflows/plan-review-convergence.md": "d9f71484272b4b70", + "gsd-core/workflows/plan-review-convergence.md": "2d71ce5e1d327b5f", "gsd-core/workflows/plant-seed.md": "6cf726be6427a35a", "gsd-core/workflows/pr-branch.md": "dc5598ae8accdecd", "gsd-core/workflows/profile-user.md": "355af92ac285567f", @@ -398,7 +398,7 @@ "skills/gsd-pause-work/SKILL.md": "9d3cc6bd70b03df1", "skills/gsd-phase/SKILL.md": "00676bbea61410bf", "skills/gsd-plan-phase/SKILL.md": "8439b569426ff621", - "skills/gsd-plan-review-convergence/SKILL.md": "af6ed50b242c64b7", + "skills/gsd-plan-review-convergence/SKILL.md": "e4d52b4473c6234b", "skills/gsd-pr-branch/SKILL.md": "5e050db73988f9a8", "skills/gsd-profile-user/SKILL.md": "10f2ff4be2e7d55f", "skills/gsd-progress/SKILL.md": "df0d06cf9d5963d0", diff --git a/tests/fixtures/golden-install-parity/augment.json b/tests/fixtures/golden-install-parity/augment.json index 4742483ab..fb72f7679 100644 --- a/tests/fixtures/golden-install-parity/augment.json +++ b/tests/fixtures/golden-install-parity/augment.json @@ -80,7 +80,7 @@ "commands/gsd-pause-work.md": "4fb032f72238fe33", "commands/gsd-phase.md": "4920d15d779329eb", "commands/gsd-plan-phase.md": "d467c713ea161e9e", - "commands/gsd-plan-review-convergence.md": "3e4aff8f9ec6f8d8", + "commands/gsd-plan-review-convergence.md": "87def0355116452a", "commands/gsd-pr-branch.md": "e168fcd545d72d0d", "commands/gsd-profile-user.md": "ffd9c2feb4c69f11", "commands/gsd-progress.md": "0b4d5b73a6c5e958", @@ -346,7 +346,7 @@ "gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "b36f77ac7344a072", "gsd-core/workflows/plan-phase/steps/prd-express-path.md": "197c0590326371b2", "gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "49f58c3f75be3eb5", - "gsd-core/workflows/plan-review-convergence.md": "c635ecb8590a724e", + "gsd-core/workflows/plan-review-convergence.md": "8b23bf9142cf7ec7", "gsd-core/workflows/plant-seed.md": "10b92ae08a6fdede", "gsd-core/workflows/pr-branch.md": "c87db7ac8c28be1b", "gsd-core/workflows/profile-user.md": "14263db831230142", @@ -489,7 +489,7 @@ "skills/gsd-ns-workflow/skills/next/SKILL.md": "e7409245f1a0f9de", "skills/gsd-ns-workflow/skills/phase/SKILL.md": "fe5b26417ee466be", "skills/gsd-ns-workflow/skills/plan-phase/SKILL.md": "99a229cf1b4fb7ee", - "skills/gsd-ns-workflow/skills/plan-review-convergence/SKILL.md": "93f68cc6a36de7f2", + "skills/gsd-ns-workflow/skills/plan-review-convergence/SKILL.md": "8181db9842a79620", "skills/gsd-ns-workflow/skills/progress/SKILL.md": "68bda87136db9fb3", "skills/gsd-ns-workflow/skills/quick/SKILL.md": "014dec52d85dcb0e", "skills/gsd-ns-workflow/skills/spec-phase/SKILL.md": "2f88d0fc0c1abefe", diff --git a/tests/fixtures/golden-install-parity/claude-local.json b/tests/fixtures/golden-install-parity/claude-local.json index ca1d0e981..e38d67e4e 100644 --- a/tests/fixtures/golden-install-parity/claude-local.json +++ b/tests/fixtures/golden-install-parity/claude-local.json @@ -79,7 +79,7 @@ "commands/gsd-pause-work.md": "01dbaebfefacd252", "commands/gsd-phase.md": "e8c226d2694692a5", "commands/gsd-plan-phase.md": "ae70b58d4d8550c8", - "commands/gsd-plan-review-convergence.md": "d5a85a50dcff2dd1", + "commands/gsd-plan-review-convergence.md": "c24bc978d9d743dc", "commands/gsd-pr-branch.md": "382c23a6a644c0e4", "commands/gsd-profile-user.md": "adbc5b025b30e836", "commands/gsd-progress.md": "75a6dc71b74c54c2", @@ -345,7 +345,7 @@ "gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "4099ef6d0868de60", "gsd-core/workflows/plan-phase/steps/prd-express-path.md": "b810f9f2374e23a5", "gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "e9de7a96bbfff261", - "gsd-core/workflows/plan-review-convergence.md": "1cabea77790fc16c", + "gsd-core/workflows/plan-review-convergence.md": "71ba7c20f15bd5f6", "gsd-core/workflows/plant-seed.md": "fbe964fcdb244802", "gsd-core/workflows/pr-branch.md": "513f6cff722eff2d", "gsd-core/workflows/profile-user.md": "3b34dcb337d50f4b", diff --git a/tests/fixtures/golden-install-parity/claude.json b/tests/fixtures/golden-install-parity/claude.json index 1f7126836..9c3e777ca 100644 --- a/tests/fixtures/golden-install-parity/claude.json +++ b/tests/fixtures/golden-install-parity/claude.json @@ -274,7 +274,7 @@ "gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "4099ef6d0868de60", "gsd-core/workflows/plan-phase/steps/prd-express-path.md": "197c0590326371b2", "gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "e9de7a96bbfff261", - "gsd-core/workflows/plan-review-convergence.md": "e2e8a0fc1fd49101", + "gsd-core/workflows/plan-review-convergence.md": "b80df3a60c2d3f7c", "gsd-core/workflows/plant-seed.md": "af50e9f10d3cc6e1", "gsd-core/workflows/pr-branch.md": "ab157cd8e49621dd", "gsd-core/workflows/profile-user.md": "ff3820a27731ceb8", @@ -396,7 +396,7 @@ "skills/gsd-pause-work/SKILL.md": "35e8a148e44f5361", "skills/gsd-phase/SKILL.md": "00be96e7ae36c6f0", "skills/gsd-plan-phase/SKILL.md": "a512ac3d14194133", - "skills/gsd-plan-review-convergence/SKILL.md": "c3dd8bfa877eaed5", + "skills/gsd-plan-review-convergence/SKILL.md": "a42e226d17b69108", "skills/gsd-pr-branch/SKILL.md": "c5e26f2c6dff1355", "skills/gsd-profile-user/SKILL.md": "894eb2850ecd2dde", "skills/gsd-progress/SKILL.md": "9b288501db99c7ea", diff --git a/tests/fixtures/golden-install-parity/cline.json b/tests/fixtures/golden-install-parity/cline.json index 90c9bb88d..3ae2ffca5 100644 --- a/tests/fixtures/golden-install-parity/cline.json +++ b/tests/fixtures/golden-install-parity/cline.json @@ -278,7 +278,7 @@ "gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "b36f77ac7344a072", "gsd-core/workflows/plan-phase/steps/prd-express-path.md": "4b0a2cb0f4f28179", "gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "090c31e22b1508fe", - "gsd-core/workflows/plan-review-convergence.md": "96ccbbf9e482ea8d", + "gsd-core/workflows/plan-review-convergence.md": "08de1c65837a8146", "gsd-core/workflows/plant-seed.md": "a2cdd513663226f1", "gsd-core/workflows/pr-branch.md": "9923878a4f6a2d91", "gsd-core/workflows/profile-user.md": "26f74db0a7fcd268", @@ -393,7 +393,7 @@ "skills/gsd-ns-workflow/skills/next/SKILL.md": "3856471d0f64bf09", "skills/gsd-ns-workflow/skills/phase/SKILL.md": "4e1363db6013a1e5", "skills/gsd-ns-workflow/skills/plan-phase/SKILL.md": "643641b45747815e", - "skills/gsd-ns-workflow/skills/plan-review-convergence/SKILL.md": "b7d213288df9aa96", + "skills/gsd-ns-workflow/skills/plan-review-convergence/SKILL.md": "d44c5d4d78cbee13", "skills/gsd-ns-workflow/skills/progress/SKILL.md": "493f467c22d55b6b", "skills/gsd-ns-workflow/skills/quick/SKILL.md": "605e596c680cbb1c", "skills/gsd-ns-workflow/skills/spec-phase/SKILL.md": "19726b83ca2c3d2d", diff --git a/tests/fixtures/golden-install-parity/codebuddy.json b/tests/fixtures/golden-install-parity/codebuddy.json index 5ea483dd8..be00b5ba3 100644 --- a/tests/fixtures/golden-install-parity/codebuddy.json +++ b/tests/fixtures/golden-install-parity/codebuddy.json @@ -80,7 +80,7 @@ "commands/gsd-pause-work.md": "6caa75a7c2b4dd2d", "commands/gsd-phase.md": "e3ca4958ea20a935", "commands/gsd-plan-phase.md": "03e08147bee2e446", - "commands/gsd-plan-review-convergence.md": "4d1b90383514958e", + "commands/gsd-plan-review-convergence.md": "3d8837015534969f", "commands/gsd-pr-branch.md": "f5be514b9f69eaf5", "commands/gsd-profile-user.md": "7a9289910719d828", "commands/gsd-progress.md": "80f75f428fc0949d", @@ -346,7 +346,7 @@ "gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "b36f77ac7344a072", "gsd-core/workflows/plan-phase/steps/prd-express-path.md": "197c0590326371b2", "gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "49f58c3f75be3eb5", - "gsd-core/workflows/plan-review-convergence.md": "c635ecb8590a724e", + "gsd-core/workflows/plan-review-convergence.md": "8b23bf9142cf7ec7", "gsd-core/workflows/plant-seed.md": "10b92ae08a6fdede", "gsd-core/workflows/pr-branch.md": "c87db7ac8c28be1b", "gsd-core/workflows/profile-user.md": "4fa910d15dea5695", @@ -468,7 +468,7 @@ "skills/gsd-pause-work/SKILL.md": "e2de20b7539e78d4", "skills/gsd-phase/SKILL.md": "f87211f779315ced", "skills/gsd-plan-phase/SKILL.md": "262e2e7ff694fc09", - "skills/gsd-plan-review-convergence/SKILL.md": "e76d306ba8883cdb", + "skills/gsd-plan-review-convergence/SKILL.md": "bbad9a21eacdbfcf", "skills/gsd-pr-branch/SKILL.md": "87bb3306488565fb", "skills/gsd-profile-user/SKILL.md": "ee8e8547298006b8", "skills/gsd-progress/SKILL.md": "88c8229b673004e3", diff --git a/tests/fixtures/golden-install-parity/codex.json b/tests/fixtures/golden-install-parity/codex.json index 3c92bb509..2283faaf7 100644 --- a/tests/fixtures/golden-install-parity/codex.json +++ b/tests/fixtures/golden-install-parity/codex.json @@ -44,7 +44,7 @@ ".agents/skills/gsd-pause-work/SKILL.md": "b379469eed78a196", ".agents/skills/gsd-phase/SKILL.md": "25477edc97a90c91", ".agents/skills/gsd-plan-phase/SKILL.md": "c6f734135356faac", - ".agents/skills/gsd-plan-review-convergence/SKILL.md": "f654089c11024027", + ".agents/skills/gsd-plan-review-convergence/SKILL.md": "9a7ce3391c33139d", ".agents/skills/gsd-pr-branch/SKILL.md": "6901da15e321913e", ".agents/skills/gsd-profile-user/SKILL.md": "6259fabfb6afe7be", ".agents/skills/gsd-progress/SKILL.md": "85d76286162b9189", @@ -381,7 +381,7 @@ "gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "d838b87563feedf6", "gsd-core/workflows/plan-phase/steps/prd-express-path.md": "f10975692cbd036e", "gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "f5edc589cab52a7b", - "gsd-core/workflows/plan-review-convergence.md": "acd0b09a302b6773", + "gsd-core/workflows/plan-review-convergence.md": "cfba777405d34c52", "gsd-core/workflows/plant-seed.md": "5b07de07e4593281", "gsd-core/workflows/pr-branch.md": "d13e1cc81de40896", "gsd-core/workflows/profile-user.md": "05828c8cc61ef384", diff --git a/tests/fixtures/golden-install-parity/copilot.json b/tests/fixtures/golden-install-parity/copilot.json index bbd99b7f5..6b55d69de 100644 --- a/tests/fixtures/golden-install-parity/copilot.json +++ b/tests/fixtures/golden-install-parity/copilot.json @@ -276,7 +276,7 @@ "gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "4099ef6d0868de60", "gsd-core/workflows/plan-phase/steps/prd-express-path.md": "bb052483744f0a6d", "gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "e9de7a96bbfff261", - "gsd-core/workflows/plan-review-convergence.md": "9eb16ad0b2d3905b", + "gsd-core/workflows/plan-review-convergence.md": "a258ddcf713699ee", "gsd-core/workflows/plant-seed.md": "21e461cd39e5181b", "gsd-core/workflows/pr-branch.md": "2833905f119b5722", "gsd-core/workflows/profile-user.md": "5cc032206c99ef71", @@ -371,7 +371,7 @@ "skills/gsd-pause-work/SKILL.md": "4f0caa008a8001ff", "skills/gsd-phase/SKILL.md": "d38c7f9b1d0d2360", "skills/gsd-plan-phase/SKILL.md": "7761a2f06ac98b30", - "skills/gsd-plan-review-convergence/SKILL.md": "9338b49ecddd4ae8", + "skills/gsd-plan-review-convergence/SKILL.md": "d6b850077d62d723", "skills/gsd-pr-branch/SKILL.md": "9cd9740db385d95a", "skills/gsd-profile-user/SKILL.md": "052a8e17ecda40f1", "skills/gsd-progress/SKILL.md": "28b94a19f2bccb78", diff --git a/tests/fixtures/golden-install-parity/cursor.json b/tests/fixtures/golden-install-parity/cursor.json index 7c714f059..c325b7048 100644 --- a/tests/fixtures/golden-install-parity/cursor.json +++ b/tests/fixtures/golden-install-parity/cursor.json @@ -80,7 +80,7 @@ "commands/gsd-pause-work.md": "59630f05f95fff68", "commands/gsd-phase.md": "9a073dcd0f934f90", "commands/gsd-plan-phase.md": "462995ee69ba35b4", - "commands/gsd-plan-review-convergence.md": "bded2d831f8ac9de", + "commands/gsd-plan-review-convergence.md": "04d89318e0e23a1b", "commands/gsd-pr-branch.md": "ef2eedb0ed4295da", "commands/gsd-profile-user.md": "0e99de36619c3b7d", "commands/gsd-progress.md": "44a7c784dc98f735", @@ -346,7 +346,7 @@ "gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "e06ccd4d4c0703fb", "gsd-core/workflows/plan-phase/steps/prd-express-path.md": "197c0590326371b2", "gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "3bed01c3c906ac52", - "gsd-core/workflows/plan-review-convergence.md": "b59d9fea4e574025", + "gsd-core/workflows/plan-review-convergence.md": "86e18a63ab7a0a6f", "gsd-core/workflows/plant-seed.md": "7bccd151ce7b69f2", "gsd-core/workflows/pr-branch.md": "c67d90c65da47168", "gsd-core/workflows/profile-user.md": "8c943983241260b5", @@ -446,7 +446,7 @@ "skills/gsd-pause-work/SKILL.md": "10e7531a2cb392ad", "skills/gsd-phase/SKILL.md": "1a2c9b64c1af7ffc", "skills/gsd-plan-phase/SKILL.md": "b7846866b27c6d3f", - "skills/gsd-plan-review-convergence/SKILL.md": "6ffc6592e39f2e8a", + "skills/gsd-plan-review-convergence/SKILL.md": "8e55611cdbd4715c", "skills/gsd-pr-branch/SKILL.md": "725727e3c2b66543", "skills/gsd-profile-user/SKILL.md": "eb6842b23f1f9256", "skills/gsd-progress/SKILL.md": "117243aef3e64b85", diff --git a/tests/fixtures/golden-install-parity/hermes.json b/tests/fixtures/golden-install-parity/hermes.json index 90875b0fe..bfb688fae 100644 --- a/tests/fixtures/golden-install-parity/hermes.json +++ b/tests/fixtures/golden-install-parity/hermes.json @@ -275,7 +275,7 @@ "gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "4099ef6d0868de60", "gsd-core/workflows/plan-phase/steps/prd-express-path.md": "9607e6d03e93c1c2", "gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "62f8e4f3b475fe5f", - "gsd-core/workflows/plan-review-convergence.md": "52c9175d8d04a6de", + "gsd-core/workflows/plan-review-convergence.md": "545fa880b6c3501f", "gsd-core/workflows/plant-seed.md": "f862f77fca983749", "gsd-core/workflows/pr-branch.md": "ecabd55e4eabf229", "gsd-core/workflows/profile-user.md": "de5030437226cf2c", @@ -419,7 +419,7 @@ "skills/gsd/gsd-ns-workflow/skills/next/SKILL.md": "1d30cf6061d15168", "skills/gsd/gsd-ns-workflow/skills/phase/SKILL.md": "610bd06d71198849", "skills/gsd/gsd-ns-workflow/skills/plan-phase/SKILL.md": "cb1cf29451588047", - "skills/gsd/gsd-ns-workflow/skills/plan-review-convergence/SKILL.md": "fddf8bd7b3ae1f10", + "skills/gsd/gsd-ns-workflow/skills/plan-review-convergence/SKILL.md": "87e5f3a0c1f2a6af", "skills/gsd/gsd-ns-workflow/skills/progress/SKILL.md": "6ec0e4715dde7ee2", "skills/gsd/gsd-ns-workflow/skills/quick/SKILL.md": "65e377345e9c49a8", "skills/gsd/gsd-ns-workflow/skills/spec-phase/SKILL.md": "848cec32c341713c", diff --git a/tests/fixtures/golden-install-parity/kilo.json b/tests/fixtures/golden-install-parity/kilo.json index 884ab7106..f6cf859d8 100644 --- a/tests/fixtures/golden-install-parity/kilo.json +++ b/tests/fixtures/golden-install-parity/kilo.json @@ -80,7 +80,7 @@ "command/gsd-pause-work.md": "04e993b1c9f8322b", "command/gsd-phase.md": "8f0e98dc6c223229", "command/gsd-plan-phase.md": "5ef48b00031b341c", - "command/gsd-plan-review-convergence.md": "79a28ef110f9f481", + "command/gsd-plan-review-convergence.md": "45060e2c490fcae7", "command/gsd-pr-branch.md": "68e724607de3c480", "command/gsd-profile-user.md": "9704158b2d79cad2", "command/gsd-progress.md": "cba4805469307416", @@ -346,7 +346,7 @@ "gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "4099ef6d0868de60", "gsd-core/workflows/plan-phase/steps/prd-express-path.md": "f10975692cbd036e", "gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "e9de7a96bbfff261", - "gsd-core/workflows/plan-review-convergence.md": "774e49428f54f0a0", + "gsd-core/workflows/plan-review-convergence.md": "396dd0dbc4d7e405", "gsd-core/workflows/plant-seed.md": "ffa5774304243649", "gsd-core/workflows/pr-branch.md": "ab157cd8e49621dd", "gsd-core/workflows/profile-user.md": "203ebe3f8f3876a8", @@ -442,7 +442,7 @@ "skills/gsd-pause-work/SKILL.md": "34366b18a392a717", "skills/gsd-phase/SKILL.md": "64a241d4f8665aa2", "skills/gsd-plan-phase/SKILL.md": "fd51709d82eb05b6", - "skills/gsd-plan-review-convergence/SKILL.md": "fae05d6ab16cac10", + "skills/gsd-plan-review-convergence/SKILL.md": "fb7355db56f5eaec", "skills/gsd-pr-branch/SKILL.md": "a80da6aa95efc50d", "skills/gsd-profile-user/SKILL.md": "4ac2c5ea45d17a9d", "skills/gsd-progress/SKILL.md": "493f467c22d55b6b", diff --git a/tests/fixtures/golden-install-parity/kimi.json b/tests/fixtures/golden-install-parity/kimi.json index 85eb40534..b6bfa0e76 100644 --- a/tests/fixtures/golden-install-parity/kimi.json +++ b/tests/fixtures/golden-install-parity/kimi.json @@ -339,7 +339,7 @@ "gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "b36f77ac7344a072", "gsd-core/workflows/plan-phase/steps/prd-express-path.md": "197c0590326371b2", "gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "49f58c3f75be3eb5", - "gsd-core/workflows/plan-review-convergence.md": "c635ecb8590a724e", + "gsd-core/workflows/plan-review-convergence.md": "8b23bf9142cf7ec7", "gsd-core/workflows/plant-seed.md": "10b92ae08a6fdede", "gsd-core/workflows/pr-branch.md": "c87db7ac8c28be1b", "gsd-core/workflows/profile-user.md": "5abfae83739fa978", @@ -433,7 +433,7 @@ "skills/gsd-pause-work/SKILL.md": "95017c70ae9dca0d", "skills/gsd-phase/SKILL.md": "31578c329cc2583e", "skills/gsd-plan-phase/SKILL.md": "4c2c6641f59f6496", - "skills/gsd-plan-review-convergence/SKILL.md": "0b549738d41d59b5", + "skills/gsd-plan-review-convergence/SKILL.md": "ab63cb338105d27f", "skills/gsd-pr-branch/SKILL.md": "67f468db29ff2cf1", "skills/gsd-profile-user/SKILL.md": "19a1d3aba57f6c7c", "skills/gsd-progress/SKILL.md": "cc46a92b92b989ce", diff --git a/tests/fixtures/golden-install-parity/opencode.json b/tests/fixtures/golden-install-parity/opencode.json index 12b64cfd1..18c8e6ac7 100644 --- a/tests/fixtures/golden-install-parity/opencode.json +++ b/tests/fixtures/golden-install-parity/opencode.json @@ -80,7 +80,7 @@ "command/gsd-pause-work.md": "bb5bf91a2e3e480e", "command/gsd-phase.md": "6bcda1539f949d5a", "command/gsd-plan-phase.md": "2c673275cb9517fe", - "command/gsd-plan-review-convergence.md": "79e141ca34edba9a", + "command/gsd-plan-review-convergence.md": "88c4284aa8b3dd7e", "command/gsd-pr-branch.md": "31fca4f1d6c4ee62", "command/gsd-profile-user.md": "725c14ae7203b5b6", "command/gsd-progress.md": "001f2754c427a0a9", @@ -346,7 +346,7 @@ "gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "4099ef6d0868de60", "gsd-core/workflows/plan-phase/steps/prd-express-path.md": "3a09141de7f3dedb", "gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "e9de7a96bbfff261", - "gsd-core/workflows/plan-review-convergence.md": "9252897bc8e001da", + "gsd-core/workflows/plan-review-convergence.md": "4d51320e4e3caddc", "gsd-core/workflows/plant-seed.md": "b8dad652e31c2318", "gsd-core/workflows/pr-branch.md": "929b7cb0c99c7b9e", "gsd-core/workflows/profile-user.md": "248d59a31948e0ed", @@ -470,7 +470,7 @@ "skills/gsd-pause-work/SKILL.md": "c7e9ba4f242c4648", "skills/gsd-phase/SKILL.md": "ee78c0c56c814d84", "skills/gsd-plan-phase/SKILL.md": "c9b3b5cb0fbb42a9", - "skills/gsd-plan-review-convergence/SKILL.md": "15ab9274bbb733a7", + "skills/gsd-plan-review-convergence/SKILL.md": "78820e21dd05d5d4", "skills/gsd-pr-branch/SKILL.md": "8fa5a8fa217fe913", "skills/gsd-profile-user/SKILL.md": "3e6155a64523d59f", "skills/gsd-progress/SKILL.md": "1dfd9327510e500c", diff --git a/tests/fixtures/golden-install-parity/pi.json b/tests/fixtures/golden-install-parity/pi.json index ef2dbc2a1..5d466b6d3 100644 --- a/tests/fixtures/golden-install-parity/pi.json +++ b/tests/fixtures/golden-install-parity/pi.json @@ -242,7 +242,7 @@ "gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "b36f77ac7344a072", "gsd-core/workflows/plan-phase/steps/prd-express-path.md": "197c0590326371b2", "gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "49f58c3f75be3eb5", - "gsd-core/workflows/plan-review-convergence.md": "c635ecb8590a724e", + "gsd-core/workflows/plan-review-convergence.md": "8b23bf9142cf7ec7", "gsd-core/workflows/plant-seed.md": "10b92ae08a6fdede", "gsd-core/workflows/pr-branch.md": "c87db7ac8c28be1b", "gsd-core/workflows/profile-user.md": "1bac7f69142801ef", diff --git a/tests/fixtures/golden-install-parity/qwen.json b/tests/fixtures/golden-install-parity/qwen.json index 2149e8638..bc9d18d04 100644 --- a/tests/fixtures/golden-install-parity/qwen.json +++ b/tests/fixtures/golden-install-parity/qwen.json @@ -275,7 +275,7 @@ "gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "4099ef6d0868de60", "gsd-core/workflows/plan-phase/steps/prd-express-path.md": "c22ff5ea46de665a", "gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "d050d8d551ed1756", - "gsd-core/workflows/plan-review-convergence.md": "e2d31d43cbf2aa88", + "gsd-core/workflows/plan-review-convergence.md": "f30e8ce168471fcd", "gsd-core/workflows/plant-seed.md": "0a92ba12993ac261", "gsd-core/workflows/pr-branch.md": "cef0f65b16d500b4", "gsd-core/workflows/profile-user.md": "263c0693563d98da", @@ -418,7 +418,7 @@ "skills/gsd-ns-workflow/skills/next/SKILL.md": "13e394affe675498", "skills/gsd-ns-workflow/skills/phase/SKILL.md": "1ed640e5f06c7be6", "skills/gsd-ns-workflow/skills/plan-phase/SKILL.md": "cdfe074359399099", - "skills/gsd-ns-workflow/skills/plan-review-convergence/SKILL.md": "c3dd8bfa877eaed5", + "skills/gsd-ns-workflow/skills/plan-review-convergence/SKILL.md": "a42e226d17b69108", "skills/gsd-ns-workflow/skills/progress/SKILL.md": "943538c4ac6bde19", "skills/gsd-ns-workflow/skills/quick/SKILL.md": "bd5e4cb79bc41611", "skills/gsd-ns-workflow/skills/spec-phase/SKILL.md": "7e4dfa2070b7d9d1", diff --git a/tests/fixtures/golden-install-parity/trae.json b/tests/fixtures/golden-install-parity/trae.json index c76a555c6..03ebaca70 100644 --- a/tests/fixtures/golden-install-parity/trae.json +++ b/tests/fixtures/golden-install-parity/trae.json @@ -275,7 +275,7 @@ "gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "e06ccd4d4c0703fb", "gsd-core/workflows/plan-phase/steps/prd-express-path.md": "778b73a8db6f7c32", "gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "619946c879f33b9d", - "gsd-core/workflows/plan-review-convergence.md": "85629dd3815dcf64", + "gsd-core/workflows/plan-review-convergence.md": "7a527920ad606595", "gsd-core/workflows/plant-seed.md": "856ad565b2eb0c47", "gsd-core/workflows/pr-branch.md": "79fd55b88ea2db9c", "gsd-core/workflows/profile-user.md": "672821e6b1266645", @@ -390,7 +390,7 @@ "skills/gsd-ns-workflow/skills/next/SKILL.md": "faadd9e2817e7324", "skills/gsd-ns-workflow/skills/phase/SKILL.md": "df3efcd61f7cc796", "skills/gsd-ns-workflow/skills/plan-phase/SKILL.md": "a937c8c42e5eaea3", - "skills/gsd-ns-workflow/skills/plan-review-convergence/SKILL.md": "d67e16a8e28b780d", + "skills/gsd-ns-workflow/skills/plan-review-convergence/SKILL.md": "5c4475320977818f", "skills/gsd-ns-workflow/skills/progress/SKILL.md": "37a37d2cdfba46ea", "skills/gsd-ns-workflow/skills/quick/SKILL.md": "6fd1b96274b23a9f", "skills/gsd-ns-workflow/skills/spec-phase/SKILL.md": "9291f835233fa8da", diff --git a/tests/fixtures/golden-install-parity/windsurf.json b/tests/fixtures/golden-install-parity/windsurf.json index 5e4574392..6e44a10e3 100644 --- a/tests/fixtures/golden-install-parity/windsurf.json +++ b/tests/fixtures/golden-install-parity/windsurf.json @@ -275,7 +275,7 @@ "gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "e06ccd4d4c0703fb", "gsd-core/workflows/plan-phase/steps/prd-express-path.md": "80b1ba493a9a967f", "gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "3fed4740a91d0443", - "gsd-core/workflows/plan-review-convergence.md": "1fd8d6e1a833e700", + "gsd-core/workflows/plan-review-convergence.md": "a7fde3dbf83628cc", "gsd-core/workflows/plant-seed.md": "6cf61f540cdbd8b9", "gsd-core/workflows/pr-branch.md": "acd59f915d018ad4", "gsd-core/workflows/profile-user.md": "c4313672b81b5bcd", diff --git a/tests/fixtures/golden-install-parity/zcode.json b/tests/fixtures/golden-install-parity/zcode.json index 6a2884ca6..36c85cee3 100644 --- a/tests/fixtures/golden-install-parity/zcode.json +++ b/tests/fixtures/golden-install-parity/zcode.json @@ -80,7 +80,7 @@ "commands/gsd-pause-work.md": "40a953fcddbedb5d", "commands/gsd-phase.md": "5dd3d40e3461a973", "commands/gsd-plan-phase.md": "3fd288ea8d4748e2", - "commands/gsd-plan-review-convergence.md": "f8e7ea9c70e59035", + "commands/gsd-plan-review-convergence.md": "551597f2add981cb", "commands/gsd-pr-branch.md": "ab1fcffe92129061", "commands/gsd-profile-user.md": "37c9ef202669bfd3", "commands/gsd-progress.md": "13d7e5ba8acc2605", @@ -346,7 +346,7 @@ "gsd-core/workflows/plan-phase/steps/closed-phase-gate.md": "b36f77ac7344a072", "gsd-core/workflows/plan-phase/steps/prd-express-path.md": "197c0590326371b2", "gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md": "49f58c3f75be3eb5", - "gsd-core/workflows/plan-review-convergence.md": "c635ecb8590a724e", + "gsd-core/workflows/plan-review-convergence.md": "8b23bf9142cf7ec7", "gsd-core/workflows/plant-seed.md": "10b92ae08a6fdede", "gsd-core/workflows/pr-branch.md": "c87db7ac8c28be1b", "gsd-core/workflows/profile-user.md": "e23bea0a69c0bb4b", @@ -461,7 +461,7 @@ "skills/gsd-ns-workflow/skills/next/SKILL.md": "63659cd48a0276f9", "skills/gsd-ns-workflow/skills/phase/SKILL.md": "b377b03d13db8573", "skills/gsd-ns-workflow/skills/plan-phase/SKILL.md": "c7cfcb8f3606e69c", - "skills/gsd-ns-workflow/skills/plan-review-convergence/SKILL.md": "ded70bf0252c6307", + "skills/gsd-ns-workflow/skills/plan-review-convergence/SKILL.md": "12d1696eaaf60043", "skills/gsd-ns-workflow/skills/progress/SKILL.md": "fb24eab4a0e5f6a3", "skills/gsd-ns-workflow/skills/quick/SKILL.md": "48629fef2b9ac5b0", "skills/gsd-ns-workflow/skills/spec-phase/SKILL.md": "052cfb21eb0ee3d4", diff --git a/tests/plan-review-convergence.test.cjs b/tests/plan-review-convergence.test.cjs index 812633b81..6ed6d25c8 100644 --- a/tests/plan-review-convergence.test.cjs +++ b/tests/plan-review-convergence.test.cjs @@ -66,6 +66,20 @@ describe('plan-review-convergence command source (#2306)', () => { assert.ok(command.includes('--llama-cpp'), 'must document --llama-cpp flag for local llama.cpp server'); }); + // #2293: the 1.7.0 Antigravity adapter (successor to the discontinued Gemini + // CLI) was unreachable from convergence because its reviewer whitelist dropped + // --agy/--antigravity. The flag must be documented and in the argument-hint. + test('command documents the --agy / --antigravity reviewer flag (#2293)', () => { + assert.ok(command.includes('--agy'), 'must document --agy flag (Antigravity CLI reviewer)'); + assert.ok(command.includes('--antigravity'), 'must document the --antigravity alias'); + }); + + test('argument-hint advertises --agy (#2293)', () => { + const hint = command.match(/^argument-hint:\s*"(.*)"\s*$/m); + assert.ok(hint, 'command must declare an argument-hint'); + assert.ok(hint[1].includes('--agy'), `argument-hint must list --agy, got: ${hint[1]}`); + }); + test('command references the workflow file via execution_context', () => { assert.ok( command.includes('@$HOME/.claude/gsd-core/workflows/plan-review-convergence.md'), @@ -127,6 +141,57 @@ describe('plan-review-convergence command source (#2306)', () => { }); }); +// ─── #2293: Antigravity reviewer flag reachable from convergence ───────────── + +describe('plan-review-convergence: --agy/--antigravity reviewer whitelist (#2293)', () => { + const workflow = fs.readFileSync(WORKFLOW_PATH, 'utf8'); + const SKILL_PATH = path.join(__dirname, '..', 'skills', 'gsd-plan-review-convergence', 'SKILL.md'); + + test('workflow REVIEWER_FLAGS extraction whitelists --agy and --antigravity', () => { + // The runtime contract is the grep-accumulation block: each recognized flag + // has its own `grep -q '\\-\\-'` line. Absence = the flag is silently dropped. + assert.ok(/grep -q '\\-\\-agy'/.test(workflow), 'workflow must whitelist --agy'); + assert.ok(/grep -q '\\-\\-antigravity'/.test(workflow), 'workflow must whitelist --antigravity'); + }); + + test('generated SKILL.md mirrors the --agy flag (argument-hint parity)', () => { + const skill = fs.readFileSync(SKILL_PATH, 'utf8'); + assert.ok(skill.includes('--agy'), 'generated SKILL.md must document --agy (regenerate via gen:plugin-skills)'); + }); + + // Behavioral: execute the ACTUAL deployed REVIEWER_FLAGS accumulation block and + // assert --antigravity passes through instead of being dropped to the --codex + // default. POSIX-only — the block is /bin/sh-style grep pipework; skip on Windows + // where a bash shim is not guaranteed on PATH. + test('[behavioral] the deployed extraction passes --antigravity through (not the --codex fallback)', (t) => { + if (process.platform === 'win32') { t.skip('POSIX shell extraction; not run on Windows'); return; } + const { execFileSync } = require('node:child_process'); + const startIdx = workflow.indexOf('REVIEWER_FLAGS=""'); + const endMarker = 'if [ -z "$REVIEWER_FLAGS" ]; then REVIEWER_FLAGS="--codex"; fi'; + const endIdx = workflow.indexOf(endMarker); + assert.ok(startIdx !== -1 && endIdx !== -1, 'the REVIEWER_FLAGS accumulation block must exist in the workflow'); + const block = workflow.slice(startIdx, endIdx + endMarker.length) + '\nprintf "%s" "$REVIEWER_FLAGS"'; + const run = (args) => execFileSync('bash', ['-c', block], { + env: { ...process.env, ARGUMENTS: args }, + encoding: 'utf8', + timeout: 5000, + }).trim(); + + const agy = run('5 --antigravity'); + assert.ok(agy.split(/\s+/).includes('--antigravity'), `--antigravity must pass through, got: "${agy}"`); + assert.notStrictEqual(agy, '--codex', 'must NOT collapse to the --codex-only fallback when --antigravity is given'); + + assert.ok(run('5 --agy').split(/\s+/).includes('--agy'), '--agy short form must pass through'); + + // Regressions: default + existing flags unchanged. + assert.strictEqual(run('5'), '--codex', 'no reviewer flag → --codex default preserved'); + const mixed = run('5 --codex --gemini'); + assert.ok(mixed.includes('--codex') && mixed.includes('--gemini'), 'existing flags still recognized'); + // --agy must not be spuriously matched by an unrelated flag (independence). + assert.ok(!run('5 --gemini').includes('--agy'), '--gemini must not trip the --agy whitelist'); + }); +}); + // ─── Workflow: initialization ────────────────────────────────────────────── describe('plan-review-convergence workflow: initialization (#2306)', () => { diff --git a/tests/workflow-size-baseline.json b/tests/workflow-size-baseline.json index a66077edb..94b1850d7 100644 --- a/tests/workflow-size-baseline.json +++ b/tests/workflow-size-baseline.json @@ -54,7 +54,7 @@ "pause-work.md": 14441, "plan-milestone-gaps.md": 11809, "plan-phase.md": 93959, - "plan-review-convergence.md": 23512, + "plan-review-convergence.md": 23713, "plant-seed.md": 11785, "pr-branch.md": 15963, "profile-user.md": 21246,