* fix(#4709): retire the Gemini CLI reviewer lane
Google stopped serving Gemini CLI for the free/Pro/Ultra tiers on 2026-06-18 —
the same sunset that removed the gemini RUNTIME in #1928 (shipped 1.8.0). GSD
targets solo developers, so those tiers ARE the user path: the lane spawned
`gemini {{model}} -p -`, a binary that no longer answers for the majority of
users, and five locales documented it as a supported choice.
The lane was re-created after #1928 by the reviewer-lane-as-manifest-data work
(6a9babda69, #2798/#2837, ADR-2782). Per the maintainer that re-creation was an
error in that buildout rather than a considered decision, so this corrects a
mistake and needs no ADR-2782 amendment.
Reviewer roster: 12 lanes / 13 flags -> 11 lanes / 12 flags.
TWO sources of truth had to be removed, not one. Deleting
capabilities/gemini/capability.json left the capability registry at 11 lanes
while src/review-lane-descriptor.cts's hand-maintained REVIEWER_LANES array
still carried its own complete gemini entry at 12 — precisely the disagreement
checkReviewerLaneParity exists to catch. Both are gone; both parity checkers
now run clean against the real tree (lane parity ok/0 violations, docs parity
0 violations).
Surfaces stripped of the dead flag:
- capabilities/gemini/ deleted; registry and capability-matrix regenerated
- src/review-lane-descriptor.cts: REVIEWER_LANES entry, docblock count, and the
three doc comments that used --gemini as a live example
- commands/gsd/{review,plan-review-convergence,autonomous,progress}.md and the
four matching skills/*/SKILL.md: argument-hint frontmatter and flag bullets
- gsd-core/workflows/help/modes/{full,full.compact}.md: /gsd-help signatures,
the detected-CLI list, and the reviewer-title list
- gsd-core/workflows/settings-integrations.md: the integrations wizard no longer
offers "Gemini" as a model option, and the settable-keys list drops it
- gsd-core/workflows/review.md: the `command -v gemini` probe, the --gemini
flag, the roster frontmatter, the install pointer to the sunset repo, and the
jq-less / precedence / self-skip lane lists
- gsd-core/workflows/sync-skills.md: "two runtimes (grok, gemini) resolve to
ANOTHER runtime's skills root" is now one runtime; gemini never aliased
anything, it fell through canonicalizeRuntimeName to a fail-closed default
- docs/{CONFIGURATION,COMMANDS,CLI-TOOLS}.md, docs/reference/capability-matrix.md,
docs/how-to/set-up-cross-ai-review.md — including its `npm install -g
@google/gemini-cli` instruction and the two rows recommending --gemini
- docs/features/{cross-ai-peer-review,opt-in-parallel-reviewer-lanes}.md as the
generator inputs behind docs/FEATURES.md, plus the three locale FEATURES.md
signature lines the docs-parity gate covers (the #2781 class: a flag change
that never reaches the mirrors)
Counts reconciled against measurement rather than arithmetic: 8 timeout keys of
11 lanes, 11 budget keys, 9 model keys, and four hardcoded literals in
tests/reviewer-lane-declarations.test.cjs (NEW_LANE_ONLY_IDS 5->4, LITERAL_ROSTER
12->11, two roster counts 12->11).
BEHAVIOR CHANGE, accepted deliberately: `gsd config-set review.models.gemini`
now errors with "Unknown config key". An existing key already in
.planning/config.json still parses and is simply never read, so no project fails
to load. This is the repo's own documented policy for exactly this case
(docs/CONFIGURATION.md:327 — "a key left over from a removed reviewer validated
silently and was never read. Such a key is now rejected by config-set"), so no
installer migration ships. Note my first measurement of this was WRONG: I tested
config-get, which reads undeclared keys fine, and generalised. Read and write are
different surfaces and gave different answers.
Antigravity is untouched throughout — its --antigravity/--agy flags,
review.models.agy, ~/.gemini/antigravity configHome, ~/.gemini/config global
skills root (#3738), hookEvents "gemini", GEMINI.md instruction file, and every
gemini-* model id it actually runs on.
Refs #4709
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* chore(#4709): changeset for the reviewer-lane retirement
Type Removed: the --gemini flag and its three config keys are user-visible
surface that no longer exists.
Refs #4709
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* fix(#4709): close the 24 test failures and the locale-doc gap the gates found
An adversarial review and a full matrix run between them found substantially
more fallout than inspection had. All of it is this PR's own, and all of it is
fixed rather than waved off.
THE MATRIX RUN FOUND 24 FAILURES ACROSS 6 FILES. Inspection had predicted two.
The dominant class was a test helper that looks up a lane by slug and throws
`no declared lane 'gemini'`:
- tests/feat-2483-review-claude-mds-guard.test.cjs (6) — used gemini as the
"other declared first-party lane" to contrast against claude's env
suppression. Now qwen, verified from source as a lane that declares no `env`
(only claude does), so the contrast still holds.
- tests/review-lane-descriptor.test.cjs (6) — the duplicate-flag and
duplicate-section fixtures deliberately COLLIDED with a real declared lane to
prove the parity checker reports a duplicate. `--gemini`/`Gemini` no longer
collide with anything, so the checker reported
`descriptor_lane_not_in_registry:acme` instead and the tests proved nothing.
Now collide with `--codex`/`Codex`, reproduced against the real checker.
- tests/review-reviewer-selection.test.cjs (3) — these distinguish KNOWN-but-
undetected from UNKNOWN. gemini flipped categories, inverting what they
proved. The known case now uses qwen; `__nope__` stays the unknown fixture.
- tests/review-default-reviewers-resolution.test.cjs (2), and
tests/settings-integrations.test.cjs (3) — the wizard now offers three
reviewer CLIs, not four, so the test and its name say three.
- Two count assertions the earlier sweep missed outright:
reviewer-lane-declarations.test.cjs:359 (`length, 12`) and
reviewer-docs-parity.test.cjs:681 (`>= 12`).
THE LOCALE-DOC GAP, and why the parity gate stayed green over it. All four
locale mirrors still documented `--gemini` as a live reviewer flag. The
docs-parity checker asserts the PRESENCE of every current flag and never the
ABSENCE of a retired one, so "0 violations" was never evidence those files were
clean — my earlier reading of it as such was wrong. This is the #2781
locale-drift class in the opposite direction. Fixed across 12 locale files:
COMMANDS.md flag lists and table rows, CONFIGURATION.md `review.models.gemini`
rows and reviewer prose, CLI-TOOLS.md config examples, and
set-up-cross-ai-review.md including its install block and its
which-reviewer-to-choose row, which now recommends Antigravity.
ALSO FOUND, and instructive about my own method: docs/CONFIGURATION.md:297 still
carried a `review.models.gemini` row. My sweep had missed it because my grep
excluded lines matching `gemini-[0-9]` to spare Google's model ids — and that
row's example value is `"gemini-2.5-pro"` on the same line. The exclusion built
to avoid false positives created a false negative.
Remaining comment/example sites: src/review-reviewer-selection.cts:309 and
src/config.cts:598 named the dead flag and key as examples;
gsd-core/references/planning-config.md:269 likewise; and
review-reviewer-selection.cts:22 claimed in the PRESENT tense that gemini is a
lane-only reviewer capability. Line 38 of that same docblock says "Before this
phase the five non-runtime reviewers (gemini, ...)" and is left exactly as is —
that is past-tense history, and rewriting it would falsify the record.
Deliberately still deferred to Phase 4, because it is the RUNTIME axis rather
than the reviewer lane: the locale install-on-your-runtime.md `--gemini --global`
instructions, the USER-GUIDE colon-form notes, and the ARCHITECTURE
runtime-detection flag lists.
Both parity checkers green against the real tree; lint:ci exit 0.
Refs #4709
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* chore(#4709): backfill the changeset PR number
pr: 0 -> 4716, now that the PR exists. Never guessed ahead of the number.
Refs #4709
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
---------
Co-authored-by: sim <sim@local>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1423,7 +1423,7 @@ User-facing entry point: `/gsd-graphify` (see [Command Reference](COMMANDS.md#gs
|
||||
|
||||
```bash
|
||||
node gsd-tools.cjs config-set review.models.codex "gpt-5"
|
||||
node gsd-tools.cjs config-set review.models.gemini "gemini-2.5-pro"
|
||||
node gsd-tools.cjs config-set review.models.agy "gemini-3.1-pro-preview"
|
||||
node gsd-tools.cjs config-set review.models.opencode "claude-sonnet-4"
|
||||
node gsd-tools.cjs config-set review.models.claude "" # clear — fall back to session model
|
||||
```
|
||||
|
||||
@@ -266,7 +266,7 @@ Cross-AI plan convergence loop — replan with review feedback until no HIGH con
|
||||
| Argument / Flag | Required | Description |
|
||||
|-----------------|----------|-------------|
|
||||
| `N` | **Yes** | Phase number to plan and review |
|
||||
| Reviewer flags | No | Pass through every reviewer lane flag: `--gemini`, `--claude`, `--codex`, `--coderabbit`, `--opencode`, `--qwen`, `--cursor`, `--agy` / `--antigravity`, `--ollama`, `--lm-studio`, `--llama-cpp`, `--kimi-code` |
|
||||
| Reviewer flags | No | Pass through every reviewer lane flag: `--claude`, `--codex`, `--coderabbit`, `--opencode`, `--qwen`, `--cursor`, `--agy` / `--antigravity`, `--ollama`, `--lm-studio`, `--llama-cpp`, `--kimi-code` |
|
||||
| `--all` | No | Run every configured reviewer. Lanes are dispatched **sequentially by default**; set `review.parallel_lanes` to `true` to dispatch them concurrently within a single review pass |
|
||||
| `--max-cycles N` | No | Override cycle cap (default 3) |
|
||||
|
||||
@@ -754,7 +754,7 @@ Show status, next steps, and automatically advance to the next logical workflow
|
||||
| `--next --auto` | Like `--next`, but chains steps automatically until milestone completion or a blocking decision |
|
||||
| `--next --converge` | When the next action is planning, route it through `/gsd-plan-review-convergence`; requires `workflow.plan_review_convergence=true` |
|
||||
| `--cross-ai` | Alias for `--converge` |
|
||||
| Reviewer flags | With `--converge`, pass through every reviewer lane flag: `--gemini`, `--claude`, `--codex`, `--coderabbit`, `--opencode`, `--qwen`, `--cursor`, `--agy` / `--antigravity`, `--ollama`, `--lm-studio`, `--llama-cpp`, `--kimi-code`, `--all`, and `--max-cycles N` |
|
||||
| Reviewer flags | With `--converge`, pass through every reviewer lane flag: `--claude`, `--codex`, `--coderabbit`, `--opencode`, `--qwen`, `--cursor`, `--agy` / `--antigravity`, `--ollama`, `--lm-studio`, `--llama-cpp`, `--kimi-code`, `--all`, and `--max-cycles N` |
|
||||
| `--do "task description"` | Analyze freeform intent and dispatch to the most appropriate GSD command |
|
||||
| `--forensic` | Append a 6-check integrity audit after the standard report (STATE consistency, orphaned handoffs, deferred scope drift, memory-flagged pending work, blocking todos, uncommitted code) |
|
||||
|
||||
@@ -1035,7 +1035,7 @@ Run all remaining phases autonomously.
|
||||
| `--interactive` | Lean context with user input |
|
||||
| `--converge` | Route each planning step through `/gsd-plan-review-convergence`; requires `workflow.plan_review_convergence=true` |
|
||||
| `--cross-ai` | Alias for `--converge` |
|
||||
| Reviewer flags | With `--converge`, pass through every reviewer lane flag: `--gemini`, `--claude`, `--codex`, `--coderabbit`, `--opencode`, `--qwen`, `--cursor`, `--agy` / `--antigravity`, `--ollama`, `--lm-studio`, `--llama-cpp`, `--kimi-code`, `--all`, and `--max-cycles N` |
|
||||
| Reviewer flags | With `--converge`, pass through every reviewer lane flag: `--claude`, `--codex`, `--coderabbit`, `--opencode`, `--qwen`, `--cursor`, `--agy` / `--antigravity`, `--ollama`, `--lm-studio`, `--llama-cpp`, `--kimi-code`, `--all`, and `--max-cycles N` |
|
||||
| `--text` | Replace `AskUserQuestion` prompts with plain numbered lists |
|
||||
|
||||
```bash
|
||||
@@ -1807,7 +1807,6 @@ Reviewers are prompted to verify the plan's claims against the actual repository
|
||||
|
||||
| Flag | Description |
|
||||
|------|-------------|
|
||||
| `--gemini` | Include Gemini CLI review |
|
||||
| `--claude` | Include Claude CLI review (separate session) |
|
||||
| `--codex` | Include Codex CLI review |
|
||||
| `--coderabbit` | Include CodeRabbit review |
|
||||
@@ -1823,7 +1822,7 @@ Reviewers are prompted to verify the plan's claims against the actual repository
|
||||
|
||||
**No `jq`, `curl`, or `timeout` prerequisite.** Reviewer lanes used to shell out to these for JSON parsing, HTTP calls, and wall-clock bounding, which made five lanes unavailable on a stock Windows/Git-Bash host (no `jq`) and left one lane unbounded on stock macOS (no `timeout` or `gtimeout`). GSD now does all three itself, so every lane runs with nothing on your `PATH` but the reviewer's own CLI. A lane that declares an external tool it genuinely needs still reports itself unavailable with an install hint rather than running into an empty review.
|
||||
|
||||
**Unavailable reviewers:** an explicit reviewer flag is an assertion. If you name a reviewer that cannot run on this host — its CLI is not installed, a required external tool is missing, its local server is unreachable, or its egress destination changed (see below) — `/gsd-review` reports an **error** for that reviewer and does not proceed with a reduced set. This holds even when other named reviewers are available: `--gemini --qwen` on a host without `qwen` fails rather than silently becoming a Gemini-only review.
|
||||
**Unavailable reviewers:** an explicit reviewer flag is an assertion. If you name a reviewer that cannot run on this host — its CLI is not installed, a required external tool is missing, its local server is unreachable, or its egress destination changed (see below) — `/gsd-review` reports an **error** for that reviewer and does not proceed with a reduced set. This holds even when other named reviewers are available: `--codex --qwen` on a host without `qwen` fails rather than silently becoming a Codex-only review.
|
||||
|
||||
Reviewers reached through `--all` or `review.default_reviewers` behave differently: an undetected reviewer there is reported as an info note and skipped. Use `--all` for "whatever is available on this host", and `review.default_reviewers` for a preferred subset that may vary by host.
|
||||
|
||||
@@ -1831,7 +1830,7 @@ Reviewers reached through `--all` or `review.default_reviewers` behave different
|
||||
|
||||
**Default reviewer behavior (no flags):**
|
||||
- If `review.default_reviewers` is **unset**, `/gsd-review` runs all detected reviewers (current default behavior).
|
||||
- If `review.default_reviewers` is **set**, `/gsd-review` runs only that subset (for example `["gemini","codex"]`).
|
||||
- If `review.default_reviewers` is **set**, `/gsd-review` runs only that subset (for example `["codex","claude"]`).
|
||||
- `review.default_reviewers` may include names from `review.reviewer_instances`; each instance runs as its own reviewer identity using its configured adapter/model. Instance names are not CLI flags.
|
||||
- `--all` always overrides config and runs the full detected set.
|
||||
- Explicit flags (for example `--cursor`) override both `--all` and config defaults for that run.
|
||||
@@ -1844,11 +1843,11 @@ Its frontmatter records the model each reviewer resolved to, as `models:` (the m
|
||||
|
||||
```bash
|
||||
# set project default reviewers for no-flag /gsd-review runs
|
||||
gsd config-set review.default_reviewers '["gemini","codex"]'
|
||||
gsd config-set review.default_reviewers '["codex","claude"]'
|
||||
|
||||
/gsd-review --phase 2 # runs gemini+codex from config
|
||||
/gsd-review --phase 2 # runs codex+claude from config
|
||||
/gsd-review --phase 3 --all
|
||||
/gsd-review --phase 2 --gemini
|
||||
/gsd-review --phase 2 --codex
|
||||
/gsd-review --phase 2 --cursor # one-off override
|
||||
```
|
||||
|
||||
|
||||
@@ -294,7 +294,6 @@ The key suffix is **not** always the lane slug. Each lane declares the config ke
|
||||
|---------|------|---------|-------------|
|
||||
| `review.models.claude` | string | (session model) | Model id for Claude-flavored review. Defaults to the session model when unset |
|
||||
| `review.models.codex` | string | `null` | Model id for Codex review (injected into --model), e.g. `"gpt-5"` |
|
||||
| `review.models.gemini` | string | `null` | Model id for Gemini review (injected into -m), e.g. `"gemini-2.5-pro"` |
|
||||
| `review.models.opencode` | string | `null` | Model id for OpenCode review (injected into --model), e.g. `"claude-sonnet-4"` |
|
||||
| `review.models.cursor` | string | `null` | Model id for Cursor review (injected into --model), e.g. `"cursor-grok-4.5-high"` |
|
||||
| `review.models.kimi-code` | string | `null` | Model id for Kimi Code review (injected into -m) |
|
||||
@@ -326,7 +325,7 @@ which schema validates them moved.
|
||||
One consequence follows: `<cli>` must now name a **declared reviewer lane**. Previously any slug
|
||||
matching `[a-zA-Z0-9_-]+` was accepted, so a typo or a key left over from a removed reviewer
|
||||
validated silently and was never read. Such a key is now rejected by `config-set`. The declared
|
||||
lanes are `gemini`, `claude`, `codex`, `opencode`, `cursor`, `agy` (the Antigravity lane — its key suffix is
|
||||
lanes are `claude`, `codex`, `opencode`, `cursor`, `agy` (the Antigravity lane — its key suffix is
|
||||
the CLI's own name, not the lane slug), `ollama`, `lm_studio` and `llama_cpp`.
|
||||
|
||||
The same applies to `review.max_prompt_tokens_per_reviewer.<slug>`. `review.max_prompt_tokens`
|
||||
@@ -335,9 +334,9 @@ across lanes rather than one lane's behavior, so they remain central and are una
|
||||
|
||||
### Reviewer lane timeouts (`review.timeouts.*`, #3274)
|
||||
|
||||
Nine of the twelve declared reviewer lanes accept an outer wall-clock timeout override, federated
|
||||
Eight of the eleven declared reviewer lanes accept an outer wall-clock timeout override, federated
|
||||
per-lane exactly like `review.max_prompt_tokens_per_reviewer.<slug>` above — the key is owned by
|
||||
that lane's own capability manifest, not a central schema. Keys are seconds: `review.timeouts.gemini`,
|
||||
that lane's own capability manifest, not a central schema. Keys are seconds:
|
||||
`review.timeouts.claude`, `review.timeouts.codex`, `review.timeouts.opencode`,
|
||||
`review.timeouts.antigravity`, `review.timeouts.kimi-code`, `review.timeouts.ollama`,
|
||||
`review.timeouts.lm_studio`, `review.timeouts.llama_cpp`. Unset (or `0`/negative/non-numeric)
|
||||
@@ -381,7 +380,7 @@ Before #4255 there was no review-specific source at all: every lane's level came
|
||||
prompt-fed, source-grounded review ran at the level chosen for a fast structural verifier, and a
|
||||
large plan set could come back as an empty lane. Effort is now a property of the review.
|
||||
|
||||
The lanes with no effort channel (`gemini`, `cursor`, `antigravity`, `qwen`, `coderabbit`,
|
||||
The lanes with no effort channel (`cursor`, `antigravity`, `qwen`, `coderabbit`,
|
||||
`kimi-code`, `ollama`, `lm_studio`, `llama_cpp`) federate no key and emit no argument, matching the
|
||||
same narrow key-ownership invariant their model and timeout keys already follow.
|
||||
|
||||
@@ -391,14 +390,14 @@ Use `review.default_reviewers` to scope the no-flag `/gsd-review` run to a subse
|
||||
|
||||
| Setting | Type | Default | Description |
|
||||
|---------|------|---------|-------------|
|
||||
| `review.default_reviewers` | string[] \| null | `null` (all detected reviewers) | Optional default subset for no-flag `/gsd-review`, e.g. `["gemini","codex"]`. Entries may be built-in reviewer slugs or configured `review.reviewer_instances` names. Precedence is: explicit reviewer flags > `--all` > `review.default_reviewers` > all detected. Unknown slugs are ignored with a warning when no instances are configured; with `review.reviewer_instances` present, unknown entries are hard errors to catch typoed instance names. Known-but-undetected slugs are ignored with an info note; empty arrays are rejected by `config-set`. This leniency is specific to the configured default: a reviewer named by an explicit CLI flag that cannot run is an error, not an info note. |
|
||||
| `review.default_reviewers` | string[] \| null | `null` (all detected reviewers) | Optional default subset for no-flag `/gsd-review`, e.g. `["codex","claude"]`. Entries may be built-in reviewer slugs or configured `review.reviewer_instances` names. Precedence is: explicit reviewer flags > `--all` > `review.default_reviewers` > all detected. Unknown slugs are ignored with a warning when no instances are configured; with `review.reviewer_instances` present, unknown entries are hard errors to catch typoed instance names. Known-but-undetected slugs are ignored with an info note; empty arrays are rejected by `config-set`. This leniency is specific to the configured default: a reviewer named by an explicit CLI flag that cannot run is an error, not an info note. |
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"review": {
|
||||
"default_reviewers": ["gemini", "codex"]
|
||||
"default_reviewers": ["codex", "claude"]
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -527,7 +526,7 @@ All workflow toggles follow the **absent = enabled** pattern. If a key is missin
|
||||
| `workflow.plan_bounce_script` | string | (none) | Path to the external script invoked for plan bounce validation. Receives the PLAN.md path as its first argument. Required when `plan_bounce` is `true`. Added in v1.36 |
|
||||
| `workflow.plan_bounce_passes` | number | `2` | Number of sequential bounce passes to run. Each pass feeds the previous pass's output back into the validator. Higher values increase rigor at the cost of latency. Added in v1.36 |
|
||||
| `workflow.post_planning_gaps` | boolean | `true` | Unified post-planning gap report (#2493). After all plans are generated and committed, scans REQUIREMENTS.md and CONTEXT.md `<decisions>` against every PLAN.md in the phase directory, then prints one `Source \| Item \| Status` table. Word-boundary matching (REQ-1 vs REQ-10) and natural sort (REQ-02 before REQ-10). Non-blocking — informational report only. Set to `false` to skip Step 13e of plan-phase. |
|
||||
| `workflow.plan_review_convergence` | boolean | `false` | Enable the `/gsd-plan-review-convergence` command. Disabled by default — the command exits with an enable instruction when this key is `false`. The command automates the manual plan→review→replan loop: it spawns configured reviewers (Codex, Gemini, Claude, OpenCode, Ollama, LM Studio, llama.cpp), counts unresolved HIGH concerns and actionable MEDIUM/LOW findings via the CYCLE_SUMMARY contract, replans with `--reviews` feedback, and repeats until converged or max cycles reached. Enable with `gsd config-set workflow.plan_review_convergence true`. Added in v1.39 |
|
||||
| `workflow.plan_review_convergence` | boolean | `false` | Enable the `/gsd-plan-review-convergence` command. Disabled by default — the command exits with an enable instruction when this key is `false`. The command automates the manual plan→review→replan loop: it spawns configured reviewers (Codex, Claude, Antigravity, OpenCode, Ollama, LM Studio, llama.cpp), counts unresolved HIGH concerns and actionable MEDIUM/LOW findings via the CYCLE_SUMMARY contract, replans with `--reviews` feedback, and repeats until converged or max cycles reached. Enable with `gsd config-set workflow.plan_review_convergence true`. Added in v1.39 |
|
||||
| `workflow.plan_chunked` | boolean | `false` | Enable chunked planning mode. When `true` (or when `--chunked` flag is passed to `/gsd-plan-phase`), the orchestrator splits the single long-lived planner Task into a short outline Task followed by N short per-plan Tasks (~3-5 min each). Each plan is committed individually for crash resilience. If a Task hangs and the terminal is force-killed, rerunning with `--chunked` resumes from the last completed plan. Particularly useful on Windows where long-lived Tasks may hang on stdio. See [`planning.chunked_parallel`](#planning-settings) to dispatch the per-plan Tasks concurrently instead of one at a time. Added in v1.38 |
|
||||
| `workflow.code_review_command` | string | (none) | Shell command for external code review integration in `/gsd-ship`. Receives changed file paths via stdin. Non-zero exit blocks the ship workflow. Added in v1.36 |
|
||||
| `workflow.tdd_mode` | boolean | `false` | Enable TDD pipeline as a first-class execution mode. When `true`, the planner aggressively applies `type: tdd` to eligible tasks (business logic, APIs, validations, algorithms) and the executor enforces RED/GREEN/REFACTOR gate sequence. An end-of-phase collaborative review checkpoint verifies gate compliance. Added in v1.36 |
|
||||
@@ -1461,7 +1460,6 @@ Configure per-CLI model selection for `/gsd-review`. When set, overrides the CLI
|
||||
|
||||
| Setting | Type | Default | Description |
|
||||
|---------|------|---------|-------------|
|
||||
| `review.models.gemini` | string | (CLI default) | Model used when `--gemini` reviewer is invoked |
|
||||
| `review.models.claude` | string | (CLI default) | Model used when `--claude` reviewer is invoked |
|
||||
| `review.models.codex` | string | (CLI default) | Model used when `--codex` reviewer is invoked |
|
||||
| `review.models.opencode` | string | (CLI default) | Model used when `--opencode` reviewer is invoked |
|
||||
@@ -1471,9 +1469,9 @@ Configure per-CLI model selection for `/gsd-review`. When set, overrides the CLI
|
||||
| `review.models.ollama` | string | (server default) | Model name passed to Ollama when `--ollama` reviewer is invoked. If unset, the first available model reported by the server is used (e.g. `llama3`). Set to a specific tag: `gsd config-set review.models.ollama codellama` |
|
||||
| `review.models.lm_studio` | string | (server default) | Model name passed to LM Studio when `--lm-studio` reviewer is invoked. If unset, the first available model reported by the server is used. |
|
||||
| `review.models.llama_cpp` | string | (server default) | Model name passed to llama.cpp when `--llama-cpp` reviewer is invoked. If unset, the first model reported by `/v1/models` is used. |
|
||||
| `review.default_reviewers` | string[] \| null | (all detected reviewers) | Default reviewer subset for no-flag `/gsd-review`. Example: `["gemini","codex"]`. May include configured `review.reviewer_instances` names. Explicit flags and `--all` override this setting. |
|
||||
| `review.default_reviewers` | string[] \| null | (all detected reviewers) | Default reviewer subset for no-flag `/gsd-review`. Example: `["codex","claude"]`. May include configured `review.reviewer_instances` names. Explicit flags and `--all` override this setting. |
|
||||
| `review.max_prompt_tokens` | number\|null | null | Default maximum estimated tokens for the assembled review prompt. When set, the prompt is deterministically trimmed before being sent to each reviewer. Per-reviewer overrides via `review.max_prompt_tokens_per_reviewer` take precedence. null = no trim (current behavior). |
|
||||
| `review.max_prompt_tokens_per_reviewer` | object | {} | Per-reviewer token budget overrides. Keys are reviewer slugs. Every declared reviewer lane accepts one (`gemini`, `claude`, `codex`, `coderabbit`, `opencode`, `qwen`, `cursor`, `antigravity`, `kimi-code`, `ollama`, `lm_studio`, `llama_cpp`). A lane's value of `-1` (the default) is unset and inherits `review.max_prompt_tokens`; `0` disables trimming for that lane specifically; any other number is that lane's own budget. |
|
||||
| `review.max_prompt_tokens_per_reviewer` | object | {} | Per-reviewer token budget overrides. Keys are reviewer slugs. Every declared reviewer lane accepts one (`claude`, `codex`, `coderabbit`, `opencode`, `qwen`, `cursor`, `antigravity`, `kimi-code`, `ollama`, `lm_studio`, `llama_cpp`). A lane's value of `-1` (the default) is unset and inherits `review.max_prompt_tokens`; `0` disables trimming for that lane specifically; any other number is that lane's own budget. |
|
||||
| `review.parallel_lanes` | boolean | `false` | Dispatch independent reviewer lanes concurrently within a single `/gsd-review` pass. Default `false` keeps the sequential dispatch that protects against provider rate limits. Opt in only when your providers can accept concurrent requests. Convergence cycles stay sequential either way. |
|
||||
| `review.ollama_host` | string | `http://localhost:11434` | Base URL of the Ollama server. Override when running Ollama on a non-default port or remote host: `gsd config-set review.ollama_host http://192.168.1.10:11434` |
|
||||
| `review.lm_studio_host` | string | `http://localhost:1234` | Base URL of the LM Studio local server. Override when using a non-default port. |
|
||||
|
||||
@@ -1414,9 +1414,9 @@ When verification returns `human_needed`, items are persisted as a trackable HUM
|
||||
|
||||
### 42. Cross-AI Peer Review
|
||||
|
||||
**Command:** `/gsd-review --phase N [--gemini] [--claude] [--codex] [--coderabbit] [--opencode] [--qwen] [--cursor] [--agy] [--antigravity] [--ollama] [--lm-studio] [--llama-cpp] [--kimi-code] [--all]`
|
||||
**Command:** `/gsd-review --phase N [--claude] [--codex] [--coderabbit] [--opencode] [--qwen] [--cursor] [--agy] [--antigravity] [--ollama] [--lm-studio] [--llama-cpp] [--kimi-code] [--all]`
|
||||
|
||||
**Purpose:** Invoke external AI CLIs (Gemini, Claude, Codex, CodeRabbit, OpenCode, Qwen Code, Cursor, Antigravity, Kimi Code) and local OpenAI-compatible servers (Ollama, LM Studio, llama.cpp) to independently review phase plans. Produces structured REVIEWS.md with per-reviewer feedback.
|
||||
**Purpose:** Invoke external AI CLIs (Claude, Codex, CodeRabbit, OpenCode, Qwen Code, Cursor, Antigravity, Kimi Code) and local OpenAI-compatible servers (Ollama, LM Studio, llama.cpp) to independently review phase plans. Produces structured REVIEWS.md with per-reviewer feedback.
|
||||
|
||||
Each reviewer is a **declared lane**: its binary, prompt and output channels, timeout, availability probe, and empty-output policy come from a capability manifest rather than hand-written per-CLI logic, so a reviewer can be shipped as an installable capability instead of a core change.
|
||||
|
||||
@@ -3735,7 +3735,7 @@ See [Resolve verify-command path findings](how-to/resolve-verify-command-path-fi
|
||||
|
||||
**Config key:** `review.parallel_lanes` (default `false`)
|
||||
|
||||
**Purpose:** Reviewer lanes within one review pass have no data dependency on each other — they all inspect the same immutable plan snapshot — but were dispatched strictly one at a time, so a pass with Codex, Gemini and Claude cost roughly the sum of three long reviewer calls. The serialization was a deliberate, unconditional protection against provider rate limits, which made it a global policy imposed on users whose providers could comfortably take concurrent requests, or who run local model servers with no limits at all (#3034).
|
||||
**Purpose:** Reviewer lanes within one review pass have no data dependency on each other — they all inspect the same immutable plan snapshot — but were dispatched strictly one at a time, so a pass with Codex, Antigravity and Claude cost roughly the sum of three long reviewer calls. The serialization was a deliberate, unconditional protection against provider rate limits, which made it a global policy imposed on users whose providers could comfortably take concurrent requests, or who run local model servers with no limits at all (#3034).
|
||||
|
||||
**Behavior:** With the key enabled, the `invoke_reviewers` step dispatches each selected lane as a background job and joins all of them before `REVIEWS.md` and consensus are rendered. Wall-clock cost falls toward the slowest lane rather than the sum. Default remains `false`, preserving the existing sequential dispatch and its rate-limit protection.
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@ title: Cross-AI Peer Review
|
||||
group: v1.27 Features
|
||||
---
|
||||
|
||||
**Command:** `/gsd-review --phase N [--gemini] [--claude] [--codex] [--coderabbit] [--opencode] [--qwen] [--cursor] [--agy] [--antigravity] [--ollama] [--lm-studio] [--llama-cpp] [--kimi-code] [--all]`
|
||||
**Command:** `/gsd-review --phase N [--claude] [--codex] [--coderabbit] [--opencode] [--qwen] [--cursor] [--agy] [--antigravity] [--ollama] [--lm-studio] [--llama-cpp] [--kimi-code] [--all]`
|
||||
|
||||
**Purpose:** Invoke external AI CLIs (Gemini, Claude, Codex, CodeRabbit, OpenCode, Qwen Code, Cursor, Antigravity, Kimi Code) and local OpenAI-compatible servers (Ollama, LM Studio, llama.cpp) to independently review phase plans. Produces structured REVIEWS.md with per-reviewer feedback.
|
||||
**Purpose:** Invoke external AI CLIs (Claude, Codex, CodeRabbit, OpenCode, Qwen Code, Cursor, Antigravity, Kimi Code) and local OpenAI-compatible servers (Ollama, LM Studio, llama.cpp) to independently review phase plans. Produces structured REVIEWS.md with per-reviewer feedback.
|
||||
|
||||
Each reviewer is a **declared lane**: its binary, prompt and output channels, timeout, availability probe, and empty-output policy come from a capability manifest rather than hand-written per-CLI logic, so a reviewer can be shipped as an installable capability instead of a core change.
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ group: v1.7.0 Features
|
||||
|
||||
**Config key:** `review.parallel_lanes` (default `false`)
|
||||
|
||||
**Purpose:** Reviewer lanes within one review pass have no data dependency on each other — they all inspect the same immutable plan snapshot — but were dispatched strictly one at a time, so a pass with Codex, Gemini and Claude cost roughly the sum of three long reviewer calls. The serialization was a deliberate, unconditional protection against provider rate limits, which made it a global policy imposed on users whose providers could comfortably take concurrent requests, or who run local model servers with no limits at all (#3034).
|
||||
**Purpose:** Reviewer lanes within one review pass have no data dependency on each other — they all inspect the same immutable plan snapshot — but were dispatched strictly one at a time, so a pass with Codex, Antigravity and Claude cost roughly the sum of three long reviewer calls. The serialization was a deliberate, unconditional protection against provider rate limits, which made it a global policy imposed on users whose providers could comfortably take concurrent requests, or who run local model servers with no limits at all (#3034).
|
||||
|
||||
**Behavior:** With the key enabled, the `invoke_reviewers` step dispatches each selected lane as a background job and joins all of them before `REVIEWS.md` and consensus are rendered. Wall-clock cost falls toward the slowest lane rather than the sum. Default remains `false`, preserving the existing sequential dispatch and its rate-limit protection.
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ gsd config-set workflow.plan_review_convergence true
|
||||
/gsd-progress --next --auto --converge --codex --max-cycles 4
|
||||
```
|
||||
|
||||
`--cross-ai` is accepted as an alias for `--converge`. Reviewer flags supported by `/gsd-plan-review-convergence` pass through unchanged, including `--codex`, `--gemini`, `--claude`, `--opencode`, `--ollama`, `--lm-studio`, `--llama-cpp`, `--all`, and `--max-cycles N`.
|
||||
`--cross-ai` is accepted as an alias for `--converge`. Reviewer flags supported by `/gsd-plan-review-convergence` pass through unchanged, including `--codex`, `--claude`, `--opencode`, `--ollama`, `--lm-studio`, `--llama-cpp`, `--all`, and `--max-cycles N`.
|
||||
|
||||
If `workflow.plan_review_convergence` is not enabled, the command stops before planning and prints the enable command instead of silently falling back to regular planning.
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
## Decide which reviewers to use
|
||||
|
||||
GSD Core can route review requests to any combination of: Gemini CLI, Claude (separate session), Codex CLI, CodeRabbit, OpenCode, Qwen Code, Cursor, Antigravity CLI, Ollama, LM Studio, llama.cpp, and Kimi Code.
|
||||
GSD Core can route review requests to any combination of: Claude (separate session), Codex CLI, CodeRabbit, OpenCode, Qwen Code, Cursor, Antigravity CLI, Ollama, LM Studio, llama.cpp, and Kimi Code.
|
||||
|
||||
That list is not fixed. Each of those is a declared reviewer lane, and a capability can ship its own — see [Ship a reviewer lane in your capability](ship-a-reviewer-lane.md). To see exactly which lanes your installation has, run `gsd-tools review-lane sections`.
|
||||
|
||||
@@ -17,9 +17,6 @@ Each reviewer runs the same structured prompt against your `PLAN.md` files indep
|
||||
**If you have no external CLIs installed yet**, install at least one:
|
||||
|
||||
```bash
|
||||
# Gemini CLI (free with Google credentials)
|
||||
npm install -g @google/gemini-cli
|
||||
|
||||
# Antigravity CLI (free with Google credentials)
|
||||
curl -fsSL https://antigravity.google/cli/install.sh | bash
|
||||
|
||||
@@ -37,12 +34,12 @@ By default, `/gsd-review` runs all detected CLIs. To pin a subset as project def
|
||||
/gsd-config --integrations
|
||||
```
|
||||
|
||||
The integrations wizard covers API keys, code-review CLI routing, and the `review.default_reviewers` list. Set the list to the reviewers you want as the no-flag default — for example `["gemini","codex"]`.
|
||||
The integrations wizard covers API keys, code-review CLI routing, and the `review.default_reviewers` list. Set the list to the reviewers you want as the no-flag default — for example `["codex","claude"]`.
|
||||
|
||||
Alternatively, set it directly with `gsd-tools`:
|
||||
|
||||
```bash
|
||||
gsd config-set review.default_reviewers '["gemini","codex"]'
|
||||
gsd config-set review.default_reviewers '["codex","claude"]'
|
||||
```
|
||||
|
||||
For the full integration settings schema (API keys, model overrides per reviewer, local server host addresses), see [Configuration](../CONFIGURATION.md).
|
||||
@@ -64,7 +61,7 @@ GSD invokes each reviewer in sequence, collects structured feedback (Summary, St
|
||||
### Select a single reviewer for a one-off run
|
||||
|
||||
```bash
|
||||
/gsd-review --phase 3 --gemini
|
||||
/gsd-review --phase 3 --agy
|
||||
/gsd-review --phase 3 --codex
|
||||
/gsd-review --phase 3 --cursor
|
||||
```
|
||||
@@ -139,7 +136,7 @@ This runs `plan-phase → review → replan → re-review` up to three cycles (d
|
||||
|
||||
```bash
|
||||
/gsd-plan-review-convergence 3 --codex
|
||||
/gsd-plan-review-convergence 3 --gemini
|
||||
/gsd-plan-review-convergence 3 --agy
|
||||
```
|
||||
|
||||
### Convergence with all reviewers and a higher cycle cap
|
||||
@@ -156,13 +153,13 @@ This runs `plan-phase → review → replan → re-review` up to three cycles (d
|
||||
|
||||
| Situation | Recommended approach |
|
||||
|-----------|---------------------|
|
||||
| You have Gemini CLI already installed | `--gemini` is always a good starting reviewer |
|
||||
| You want free multi-reviewer coverage | `--gemini` + `--agy` (both use Google credentials) |
|
||||
| You have Antigravity already installed | `--agy` is always a good starting reviewer |
|
||||
| You want free multi-reviewer coverage | `--agy` (Google credentials) + `--claude` |
|
||||
| Your project is OpenAI-heavy | add `--codex` for an OpenAI-model perspective |
|
||||
| You want GitHub Copilot's model | add `--opencode` |
|
||||
| You want to avoid API costs entirely | configure Ollama with a local model and use `--ollama` |
|
||||
| You need maximum coverage before a release | `/gsd-plan-review-convergence N --all` |
|
||||
| You're iterating quickly and want fast feedback | pick one CLI: `/gsd-review --phase N --gemini` |
|
||||
| You're iterating quickly and want fast feedback | pick one CLI: `/gsd-review --phase N --agy` |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -479,7 +479,7 @@ node gsd-tools.cjs graphify snapshot [name]
|
||||
|
||||
```bash
|
||||
node gsd-tools.cjs config-set review.models.codex "codex exec --model gpt-5"
|
||||
node gsd-tools.cjs config-set review.models.gemini "gemini -m gemini-2.5-pro"
|
||||
node gsd-tools.cjs config-set review.models.agy "gemini-3.1-pro-preview"
|
||||
node gsd-tools.cjs config-set review.models.opencode "opencode run --model claude-sonnet-4"
|
||||
node gsd-tools.cjs config-set review.models.claude "" # クリア — セッションモデルにフォールバック
|
||||
```
|
||||
|
||||
@@ -218,7 +218,7 @@ WebSearch から取得したパッケージは `[ASSUMED]`(`[VERIFIED]` では
|
||||
| 引数 / フラグ | 必須 | 説明 |
|
||||
|-----------------|----------|-------------|
|
||||
| `N` | **Yes** | 計画およびレビューするフェーズ番号 |
|
||||
| レビュアーフラグ | No | すべてのレビュアーレーンフラグをそのまま渡す: `--gemini`、`--claude`、`--codex`、`--coderabbit`、`--opencode`、`--qwen`、`--cursor`、`--agy` / `--antigravity`、`--ollama`、`--lm-studio`、`--llama-cpp`、`--kimi-code` |
|
||||
| レビュアーフラグ | No | すべてのレビュアーレーンフラグをそのまま渡す: `--claude`、`--codex`、`--coderabbit`、`--opencode`、`--qwen`、`--cursor`、`--agy` / `--antigravity`、`--ollama`、`--lm-studio`、`--llama-cpp`、`--kimi-code` |
|
||||
| `--all` | No | 設定済みのすべてのレビュアーを実行。レーンはデフォルトでは**順次**ディスパッチされます。`review.parallel_lanes` を `true` にすると、1 回のレビューパス内で並行してディスパッチされます |
|
||||
| `--max-cycles N` | No | サイクル上限を上書き(デフォルト3) |
|
||||
|
||||
@@ -1238,7 +1238,6 @@ AI システムの構築を含むフェーズの AI-SPEC.md デザインコン
|
||||
|
||||
| フラグ | 説明 |
|
||||
|------|-------------|
|
||||
| `--gemini` | Gemini CLI レビューを含める |
|
||||
| `--claude` | Claude CLI レビューを含める(別のセッション) |
|
||||
| `--codex` | Codex CLI レビューを含める |
|
||||
| `--coderabbit` | CodeRabbit レビューを含める |
|
||||
@@ -1254,7 +1253,7 @@ AI システムの構築を含むフェーズの AI-SPEC.md デザインコン
|
||||
|
||||
**デフォルトレビュアーの動作(フラグなし):**
|
||||
- `review.default_reviewers` が**未設定**の場合、`/gsd-review` は検出されたすべてのレビュアーを実行します(現在のデフォルト動作)。
|
||||
- `review.default_reviewers` が**設定済み**の場合、`/gsd-review` はそのサブセットのみを実行します(例: `["gemini","codex"]`)。
|
||||
- `review.default_reviewers` が**設定済み**の場合、`/gsd-review` はそのサブセットのみを実行します(例: `["codex","claude"]`)。
|
||||
- `--all` は常に設定を上書きし、完全な検出セットを実行します。
|
||||
- 明示的なフラグ(例: `--cursor`)は、そのランの `--all` と設定デフォルトの両方を上書きします。
|
||||
|
||||
@@ -1262,11 +1261,11 @@ AI システムの構築を含むフェーズの AI-SPEC.md デザインコン
|
||||
|
||||
```bash
|
||||
# フラグなしの /gsd-review 実行用のプロジェクトデフォルトレビュアーを設定
|
||||
gsd config-set review.default_reviewers '["gemini","codex"]'
|
||||
gsd config-set review.default_reviewers '["codex","claude"]'
|
||||
|
||||
/gsd-review --phase 2 # 設定から gemini+codex を実行
|
||||
/gsd-review --phase 2 # 設定から codex+claude を実行
|
||||
/gsd-review --phase 3 --all
|
||||
/gsd-review --phase 2 --gemini
|
||||
/gsd-review --phase 2 --codex
|
||||
/gsd-review --phase 2 --cursor # ワンオフの上書き
|
||||
```
|
||||
|
||||
|
||||
@@ -1164,7 +1164,7 @@ fix(03-01): correct auth token expiry
|
||||
|
||||
### 42. クロス AI ピアレビュー
|
||||
|
||||
**コマンド:** `/gsd-review --phase N [--gemini] [--claude] [--codex] [--coderabbit] [--opencode] [--qwen] [--cursor] [--agy] [--antigravity] [--ollama] [--lm-studio] [--llama-cpp] [--kimi-code] [--all]`
|
||||
**コマンド:** `/gsd-review --phase N [--claude] [--codex] [--coderabbit] [--opencode] [--qwen] [--cursor] [--agy] [--antigravity] [--ollama] [--lm-studio] [--llama-cpp] [--kimi-code] [--all]`
|
||||
|
||||
**目的:** 外部の AI CLI(Gemini、Claude、Codex、CodeRabbit、OpenCode、Qwen Code、Cursor、Antigravity、Kimi Code)とローカルの OpenAI 互換サーバー(Ollama、LM Studio、llama.cpp)を呼び出して、フェーズプランを独立してレビューします。レビュアーごとのフィードバックを含む構造化された REVIEWS.md を生成します。
|
||||
|
||||
|
||||
@@ -8,16 +8,13 @@
|
||||
|
||||
## 使用するレビュアーを決める
|
||||
|
||||
GSD Core は Gemini CLI、Claude(別セッション)、Codex CLI、CodeRabbit、OpenCode、Qwen Code、Cursor、Antigravity CLI、Ollama、LM Studio、llama.cpp の任意の組み合わせにレビューリクエストをルーティングできます。
|
||||
GSD Core は Claude(別セッション)、Codex CLI、CodeRabbit、OpenCode、Qwen Code、Cursor、Antigravity CLI、Ollama、LM Studio、llama.cpp の任意の組み合わせにレビューリクエストをルーティングできます。
|
||||
|
||||
各レビュアーは `PLAN.md` ファイルに対して同じ構造化プロンプトを独立して実行します。モデルによって盲点が異なるため、複数レビュアーのコンセンサスは単一レビュアーよりも多くの問題を検出できます。
|
||||
|
||||
**外部 CLI がまだインストールされていない場合**は、少なくとも 1 つをインストールしてください:
|
||||
|
||||
```bash
|
||||
# Gemini CLI(Google 認証情報で無料)
|
||||
npm install -g @google/gemini-cli
|
||||
|
||||
# Antigravity CLI(Google 認証情報で無料)
|
||||
curl -fsSL https://antigravity.google/cli/install.sh | bash
|
||||
|
||||
@@ -35,12 +32,12 @@ npm install -g @openai/codex
|
||||
/gsd-config --integrations
|
||||
```
|
||||
|
||||
インテグレーションウィザードは API キー、コードレビュー CLI のルーティング、`review.default_reviewers` リストをカバーします。フラグなしのデフォルトとして使用したいレビュアーのリストを設定します。例: `["gemini","codex"]`。
|
||||
インテグレーションウィザードは API キー、コードレビュー CLI のルーティング、`review.default_reviewers` リストをカバーします。フラグなしのデフォルトとして使用したいレビュアーのリストを設定します。例: `["codex","claude"]`。
|
||||
|
||||
または `gsd-tools` で直接設定することもできます:
|
||||
|
||||
```bash
|
||||
gsd config-set review.default_reviewers '["gemini","codex"]'
|
||||
gsd config-set review.default_reviewers '["codex","claude"]'
|
||||
```
|
||||
|
||||
インテグレーション設定スキーマの全体(API キー、レビュアーごとのモデルオーバーライド、ローカルサーバーのホストアドレス)については [設定](../CONFIGURATION.md) を参照してください。
|
||||
@@ -60,7 +57,7 @@ GSD は各レビュアーを順番に呼び出し、構造化されたフィー
|
||||
### 1 回限りの実行で特定のレビュアーを選ぶ
|
||||
|
||||
```bash
|
||||
/gsd-review --phase 3 --gemini
|
||||
/gsd-review --phase 3 --agy
|
||||
/gsd-review --phase 3 --codex
|
||||
/gsd-review --phase 3 --cursor
|
||||
```
|
||||
@@ -124,7 +121,7 @@ HIGH 重大度の懸念事項がすべて解決されるまで反復したい場
|
||||
|
||||
```bash
|
||||
/gsd-plan-review-convergence 3 --codex
|
||||
/gsd-plan-review-convergence 3 --gemini
|
||||
/gsd-plan-review-convergence 3 --agy
|
||||
```
|
||||
|
||||
### すべてのレビュアーと高いサイクル上限でのコンバージェンス
|
||||
@@ -141,13 +138,13 @@ HIGH 重大度の懸念事項がすべて解決されるまで反復したい場
|
||||
|
||||
| 状況 | 推奨アプローチ |
|
||||
|-----------|---------------------|
|
||||
| Gemini CLI がすでにインストール済み | `--gemini` は常に良い出発点のレビュアー |
|
||||
| 無料のマルチレビュアーカバレッジが欲しい | `--gemini` + `--agy`(両方とも Google 認証情報を使用) |
|
||||
| Antigravity がすでにインストール済み | `--agy` は常に良い出発点のレビュアー |
|
||||
| 無料のマルチレビュアーカバレッジが欲しい | `--agy`(Google 認証情報) + `--claude` |
|
||||
| プロジェクトが OpenAI 中心 | OpenAI モデルの観点のために `--codex` を追加 |
|
||||
| GitHub Copilot のモデルが欲しい | `--opencode` を追加 |
|
||||
| API コストを完全に避けたい | Ollama にローカルモデルを設定して `--ollama` を使用 |
|
||||
| リリース前に最大限のカバレッジが必要 | `/gsd-plan-review-convergence N --all` |
|
||||
| 素早く反復して高速なフィードバックが欲しい | 1 つの CLI を選ぶ: `/gsd-review --phase N --gemini` |
|
||||
| 素早く反復して高速なフィードバックが欲しい | 1 つの CLI を選ぶ: `/gsd-review --phase N --agy` |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -479,7 +479,7 @@ node gsd-tools.cjs graphify snapshot [name]
|
||||
|
||||
```bash
|
||||
node gsd-tools.cjs config-set review.models.codex "codex exec --model gpt-5"
|
||||
node gsd-tools.cjs config-set review.models.gemini "gemini -m gemini-2.5-pro"
|
||||
node gsd-tools.cjs config-set review.models.agy "gemini-3.1-pro-preview"
|
||||
node gsd-tools.cjs config-set review.models.opencode "opencode run --model claude-sonnet-4"
|
||||
node gsd-tools.cjs config-set review.models.claude "" # clear — fall back to session model
|
||||
```
|
||||
|
||||
@@ -218,7 +218,7 @@ WebSearch에서 가져온 패키지는 `[ASSUMED]`(`[VERIFIED]`가 아님)로
|
||||
| 인수 / 플래그 | 필수 | 설명 |
|
||||
|-----------------|----------|-------------|
|
||||
| `N` | **예** | 계획 및 리뷰할 단계 번호 |
|
||||
| 리뷰어 플래그 | 아니요 | 모든 리뷰어 레인 플래그를 그대로 전달: `--gemini`, `--claude`, `--codex`, `--coderabbit`, `--opencode`, `--qwen`, `--cursor`, `--agy` / `--antigravity`, `--ollama`, `--lm-studio`, `--llama-cpp`, `--kimi-code` |
|
||||
| 리뷰어 플래그 | 아니요 | 모든 리뷰어 레인 플래그를 그대로 전달: `--claude`, `--codex`, `--coderabbit`, `--opencode`, `--qwen`, `--cursor`, `--agy` / `--antigravity`, `--ollama`, `--lm-studio`, `--llama-cpp`, `--kimi-code` |
|
||||
| `--all` | 아니요 | 구성된 모든 리뷰어를 실행합니다. 레인은 기본적으로 **순차적으로** 디스패치되며, `review.parallel_lanes`를 `true`로 설정하면 단일 리뷰 패스 내에서 동시에 디스패치됩니다 |
|
||||
| `--max-cycles N` | 아니요 | 사이클 상한 재정의 (기본값 3) |
|
||||
|
||||
@@ -1244,7 +1244,6 @@ AI 시스템 구축을 포함하는 단계에 대한 AI-SPEC.md 디자인 계약
|
||||
|
||||
| 플래그 | 설명 |
|
||||
|------|-------------|
|
||||
| `--gemini` | Gemini CLI 검토 포함 |
|
||||
| `--claude` | Claude CLI 검토 포함 (별도 세션) |
|
||||
| `--codex` | Codex CLI 검토 포함 |
|
||||
| `--coderabbit` | CodeRabbit 검토 포함 |
|
||||
@@ -1260,7 +1259,7 @@ AI 시스템 구축을 포함하는 단계에 대한 AI-SPEC.md 디자인 계약
|
||||
|
||||
**기본 리뷰어 동작 (플래그 없음):**
|
||||
- `review.default_reviewers`가 **설정되지 않은** 경우, `/gsd-review`는 감지된 모든 리뷰어를 실행합니다 (현재 기본 동작).
|
||||
- `review.default_reviewers`가 **설정된** 경우, `/gsd-review`는 해당 하위 집합만 실행합니다 (예: `["gemini","codex"]`).
|
||||
- `review.default_reviewers`가 **설정된** 경우, `/gsd-review`는 해당 하위 집합만 실행합니다 (예: `["codex","claude"]`).
|
||||
- `--all`은 항상 설정을 재정의하고 전체 감지된 집합을 실행합니다.
|
||||
- 명시적 플래그 (예: `--cursor`)는 해당 실행에 대해 `--all`과 설정 기본값 모두를 재정의합니다.
|
||||
|
||||
@@ -1268,11 +1267,11 @@ AI 시스템 구축을 포함하는 단계에 대한 AI-SPEC.md 디자인 계약
|
||||
|
||||
```bash
|
||||
# 플래그 없는 /gsd-review 실행을 위한 프로젝트 기본 리뷰어 설정
|
||||
gsd config-set review.default_reviewers '["gemini","codex"]'
|
||||
gsd config-set review.default_reviewers '["codex","claude"]'
|
||||
|
||||
/gsd-review --phase 2 # 설정에서 gemini+codex 실행
|
||||
/gsd-review --phase 2 # 설정에서 codex+claude 실행
|
||||
/gsd-review --phase 3 --all
|
||||
/gsd-review --phase 2 --gemini
|
||||
/gsd-review --phase 2 --codex
|
||||
/gsd-review --phase 2 --cursor # 일회성 재정의
|
||||
```
|
||||
|
||||
|
||||
@@ -1068,7 +1068,7 @@ fix(03-01): correct auth token expiry
|
||||
|
||||
### 42. Cross-AI Peer Review
|
||||
|
||||
**명령어:** `/gsd-review --phase N [--gemini] [--claude] [--codex] [--coderabbit] [--opencode] [--qwen] [--cursor] [--agy] [--antigravity] [--ollama] [--lm-studio] [--llama-cpp] [--kimi-code] [--all]`
|
||||
**명령어:** `/gsd-review --phase N [--claude] [--codex] [--coderabbit] [--opencode] [--qwen] [--cursor] [--agy] [--antigravity] [--ollama] [--lm-studio] [--llama-cpp] [--kimi-code] [--all]`
|
||||
|
||||
**목적:** 외부 AI CLI(Gemini, Claude, Codex, CodeRabbit, OpenCode, Qwen Code, Cursor, Antigravity, Kimi Code)와 로컬 OpenAI 호환 서버(Ollama, LM Studio, llama.cpp)를 호출하여 페이즈 계획을 독립적으로 검토합니다. 검토자별 피드백이 담긴 구조화된 REVIEWS.md를 생성합니다.
|
||||
|
||||
|
||||
@@ -8,16 +8,13 @@
|
||||
|
||||
## 어떤 리뷰어를 사용할지 결정
|
||||
|
||||
GSD Core는 Gemini CLI, Claude(별도 세션), Codex CLI, CodeRabbit, OpenCode, Qwen Code, Cursor, Antigravity CLI, Ollama, LM Studio, llama.cpp의 조합으로 리뷰 요청을 라우팅할 수 있습니다.
|
||||
GSD Core는 Claude(별도 세션), Codex CLI, CodeRabbit, OpenCode, Qwen Code, Cursor, Antigravity CLI, Ollama, LM Studio, llama.cpp의 조합으로 리뷰 요청을 라우팅할 수 있습니다.
|
||||
|
||||
각 리뷰어는 `PLAN.md` 파일에 대해 동일한 구조화된 프롬프트를 독립적으로 실행합니다. 서로 다른 모델은 서로 다른 맹점을 가지고 있으므로 멀티 리뷰어 합의가 단일 리뷰어보다 더 많은 문제를 발견합니다.
|
||||
|
||||
**외부 CLI가 아직 설치되지 않은 경우**, 최소 하나를 설치하세요:
|
||||
|
||||
```bash
|
||||
# Gemini CLI (Google 자격 증명으로 무료)
|
||||
npm install -g @google/gemini-cli
|
||||
|
||||
# Antigravity CLI (Google 자격 증명으로 무료)
|
||||
curl -fsSL https://antigravity.google/cli/install.sh | bash
|
||||
|
||||
@@ -35,12 +32,12 @@ npm install -g @openai/codex
|
||||
/gsd-config --integrations
|
||||
```
|
||||
|
||||
통합 마법사는 API 키, 코드 리뷰 CLI 라우팅, `review.default_reviewers` 목록을 다룹니다. 목록을 플래그 없는 기본값으로 사용하려는 리뷰어로 설정하세요. 예: `["gemini","codex"]`.
|
||||
통합 마법사는 API 키, 코드 리뷰 CLI 라우팅, `review.default_reviewers` 목록을 다룹니다. 목록을 플래그 없는 기본값으로 사용하려는 리뷰어로 설정하세요. 예: `["codex","claude"]`.
|
||||
|
||||
또는 `gsd-tools`로 직접 설정하세요:
|
||||
|
||||
```bash
|
||||
gsd config-set review.default_reviewers '["gemini","codex"]'
|
||||
gsd config-set review.default_reviewers '["codex","claude"]'
|
||||
```
|
||||
|
||||
전체 통합 설정 스키마(API 키, 리뷰어별 모델 재정의, 로컬 서버 호스트 주소)에 대해서는 [설정](../CONFIGURATION.md)을 참고하세요.
|
||||
@@ -60,7 +57,7 @@ GSD는 각 리뷰어를 순서대로 호출하고 구조화된 피드백(요약,
|
||||
### 일회성 실행을 위한 단일 리뷰어 선택
|
||||
|
||||
```bash
|
||||
/gsd-review --phase 3 --gemini
|
||||
/gsd-review --phase 3 --agy
|
||||
/gsd-review --phase 3 --codex
|
||||
/gsd-review --phase 3 --cursor
|
||||
```
|
||||
@@ -124,7 +121,7 @@ Ollama 또는 LM Studio를 로컬에서 실행하는 경우 서버에 접근할
|
||||
|
||||
```bash
|
||||
/gsd-plan-review-convergence 3 --codex
|
||||
/gsd-plan-review-convergence 3 --gemini
|
||||
/gsd-plan-review-convergence 3 --agy
|
||||
```
|
||||
|
||||
### 모든 리뷰어로 더 높은 사이클 상한으로 수렴
|
||||
@@ -141,13 +138,13 @@ Ollama 또는 LM Studio를 로컬에서 실행하는 경우 서버에 접근할
|
||||
|
||||
| 상황 | 권장 방법 |
|
||||
|-----------|---------------------|
|
||||
| Gemini CLI가 이미 설치되어 있는 경우 | `--gemini`는 항상 좋은 시작 리뷰어 |
|
||||
| 무료 멀티 리뷰어 커버리지를 원하는 경우 | `--gemini` + `--agy` (둘 다 Google 자격 증명 사용) |
|
||||
| Antigravity가 이미 설치되어 있는 경우 | `--agy`는 항상 좋은 시작 리뷰어 |
|
||||
| 무료 멀티 리뷰어 커버리지를 원하는 경우 | `--agy` (Google 자격 증명) + `--claude` |
|
||||
| OpenAI 중심 프로젝트인 경우 | OpenAI 모델 관점을 위해 `--codex` 추가 |
|
||||
| GitHub Copilot 모델을 원하는 경우 | `--opencode` 추가 |
|
||||
| API 비용을 완전히 피하려는 경우 | 로컬 모델로 Ollama를 설정하고 `--ollama` 사용 |
|
||||
| 릴리스 전 최대 커버리지가 필요한 경우 | `/gsd-plan-review-convergence N --all` |
|
||||
| 빠르게 반복하며 빠른 피드백을 원하는 경우 | CLI 하나 선택: `/gsd-review --phase N --gemini` |
|
||||
| 빠르게 반복하며 빠른 피드백을 원하는 경우 | CLI 하나 선택: `/gsd-review --phase N --agy` |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -482,7 +482,7 @@ Ponto de entrada para o usuário: `/gsd-graphify` (consulte a [Referência de Co
|
||||
|
||||
```bash
|
||||
node gsd-tools.cjs config-set review.models.codex "codex exec --model gpt-5"
|
||||
node gsd-tools.cjs config-set review.models.gemini "gemini -m gemini-2.5-pro"
|
||||
node gsd-tools.cjs config-set review.models.agy "gemini-3.1-pro-preview"
|
||||
node gsd-tools.cjs config-set review.models.opencode "opencode run --model claude-sonnet-4"
|
||||
node gsd-tools.cjs config-set review.models.claude "" # limpa — retorna ao modelo da sessão
|
||||
```
|
||||
|
||||
@@ -218,7 +218,7 @@ Loop de convergência de planos cross-AI — replaneja com feedback de revisão
|
||||
| Argumento / Flag | Obrigatório | Descrição |
|
||||
|------------------|-------------|-----------|
|
||||
| `N` | **Sim** | Número da fase a planejar e revisar |
|
||||
| Flags de revisor | Não | Repassa todas as flags de lane de revisor: `--gemini`, `--claude`, `--codex`, `--coderabbit`, `--opencode`, `--qwen`, `--cursor`, `--agy` / `--antigravity`, `--ollama`, `--lm-studio`, `--llama-cpp`, `--kimi-code` |
|
||||
| Flags de revisor | Não | Repassa todas as flags de lane de revisor: `--claude`, `--codex`, `--coderabbit`, `--opencode`, `--qwen`, `--cursor`, `--agy` / `--antigravity`, `--ollama`, `--lm-studio`, `--llama-cpp`, `--kimi-code` |
|
||||
| `--all` | Não | Executa todos os revisores configurados. As lanes são despachadas **sequencialmente** por padrão; defina `review.parallel_lanes` como `true` para despachá-las simultaneamente em uma única passagem de revisão |
|
||||
| `--max-cycles N` | Não | Substitui o limite de ciclos (padrão 3) |
|
||||
|
||||
@@ -1241,7 +1241,6 @@ Revisão por pares cross-AI de planos de fase a partir de CLIs de IA externas.
|
||||
|
||||
| Flag | Descrição |
|
||||
|------|-----------|
|
||||
| `--gemini` | Inclui revisão pelo Gemini CLI |
|
||||
| `--claude` | Inclui revisão pelo Claude CLI (sessão separada) |
|
||||
| `--codex` | Inclui revisão pelo Codex CLI |
|
||||
| `--coderabbit` | Inclui revisão pelo CodeRabbit |
|
||||
@@ -1257,7 +1256,7 @@ Revisão por pares cross-AI de planos de fase a partir de CLIs de IA externas.
|
||||
|
||||
**Comportamento do revisor padrão (sem flags):**
|
||||
- Se `review.default_reviewers` estiver **não definido**, `/gsd-review` executa todos os revisores detectados (comportamento padrão atual).
|
||||
- Se `review.default_reviewers` estiver **definido**, `/gsd-review` executa somente esse subconjunto (por exemplo `["gemini","codex"]`).
|
||||
- Se `review.default_reviewers` estiver **definido**, `/gsd-review` executa somente esse subconjunto (por exemplo `["codex","claude"]`).
|
||||
- `--all` sempre substitui a configuração e executa o conjunto detectado completo.
|
||||
- Flags explícitas (por exemplo `--cursor`) substituem tanto `--all` quanto os padrões de configuração para aquela execução.
|
||||
|
||||
@@ -1265,11 +1264,11 @@ Revisão por pares cross-AI de planos de fase a partir de CLIs de IA externas.
|
||||
|
||||
```bash
|
||||
# define revisores padrão do projeto para execuções de /gsd-review sem flag
|
||||
gsd config-set review.default_reviewers '["gemini","codex"]'
|
||||
gsd config-set review.default_reviewers '["codex","claude"]'
|
||||
|
||||
/gsd-review --phase 2 # executa gemini+codex da configuração
|
||||
/gsd-review --phase 2 # executa codex+claude da configuração
|
||||
/gsd-review --phase 3 --all
|
||||
/gsd-review --phase 2 --gemini
|
||||
/gsd-review --phase 2 --codex
|
||||
/gsd-review --phase 2 --cursor # substituição avulsa
|
||||
```
|
||||
|
||||
|
||||
@@ -195,7 +195,6 @@ Os campos de chave de API aceitam um valor string (a própria chave). Também po
|
||||
|---------|------|---------|-------------|
|
||||
| `review.models.claude` | string | (modelo da sessão) | Comando para revisão com sabor Claude. Usa o modelo da sessão quando não definido |
|
||||
| `review.models.codex` | string | `null` | Comando para revisão Codex, por exemplo `"codex exec --model gpt-5"` |
|
||||
| `review.models.gemini` | string | `null` | Comando para revisão Gemini, por exemplo `"gemini -m gemini-2.5-pro"` |
|
||||
| `review.models.opencode` | string | `null` | Comando para revisão OpenCode, por exemplo `"opencode run --model claude-sonnet-4"` |
|
||||
|
||||
O slug `<cli>` é validado contra `[a-zA-Z0-9_-]+`. Slugs vazios ou que contenham caminhos são rejeitados pelo `config-set`.
|
||||
@@ -206,14 +205,14 @@ Use `review.default_reviewers` para limitar a execução de `/gsd-review` sem fl
|
||||
|
||||
| Configuração | Tipo | Padrão | Descrição |
|
||||
|---------|------|---------|-------------|
|
||||
| `review.default_reviewers` | string[] \| null | `null` (todos os revisores detectados) | Subconjunto padrão opcional para `/gsd-review` sem flags, por exemplo `["gemini","codex"]`. Precedência: flags de revisor explícitas > `--all` > `review.default_reviewers` > todos detectados. Slugs desconhecidos são ignorados com aviso; slugs conhecidos mas não detectados são ignorados com uma nota informativa; arrays vazios são rejeitados pelo `config-set`. |
|
||||
| `review.default_reviewers` | string[] \| null | `null` (todos os revisores detectados) | Subconjunto padrão opcional para `/gsd-review` sem flags, por exemplo `["codex","claude"]`. Precedência: flags de revisor explícitas > `--all` > `review.default_reviewers` > todos detectados. Slugs desconhecidos são ignorados com aviso; slugs conhecidos mas não detectados são ignorados com uma nota informativa; arrays vazios são rejeitados pelo `config-set`. |
|
||||
|
||||
Exemplo:
|
||||
|
||||
```json
|
||||
{
|
||||
"review": {
|
||||
"default_reviewers": ["gemini", "codex"]
|
||||
"default_reviewers": ["codex", "claude"]
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -254,7 +253,7 @@ Todos os controles de fluxo de trabalho seguem o padrão **ausente = habilitado*
|
||||
| `workflow.plan_bounce_script` | string | (nenhum) | Caminho para o script externo invocado na validação de bounce de plano. Recebe o caminho do PLAN.md como primeiro argumento. Obrigatório quando `plan_bounce` é `true`. Adicionado na v1.36 |
|
||||
| `workflow.plan_bounce_passes` | number | `2` | Número de passagens sequenciais de bounce a executar. Cada passagem alimenta a saída da passagem anterior de volta no validador. Valores maiores aumentam o rigor ao custo de latência. Adicionado na v1.36 |
|
||||
| `workflow.post_planning_gaps` | boolean | `true` | Relatório unificado de lacunas pós-planejamento (#2493). Após todos os planos serem gerados e commitados, verifica REQUIREMENTS.md e as `<decisions>` de CONTEXT.md em relação a cada PLAN.md no diretório da fase, então imprime uma tabela `Source \| Item \| Status`. Correspondência por limite de palavra (REQ-1 vs REQ-10) e ordenação natural (REQ-02 antes de REQ-10). Não bloqueante — apenas relatório informativo. Defina como `false` para pular o Passo 13e da fase de planejamento. |
|
||||
| `workflow.plan_review_convergence` | boolean | `false` | Habilita o comando `/gsd-plan-review-convergence`. Desabilitado por padrão — o comando sai com instrução de habilitação quando esta chave é `false`. O comando automatiza o loop manual de plan→review→replan: gera revisores configurados (Codex, Gemini, Claude, OpenCode, Ollama, LM Studio, llama.cpp), conta preocupações HIGH não resolvidas via contrato CYCLE_SUMMARY, replaneja com feedback `--reviews` e repete até convergir ou atingir o número máximo de ciclos. Habilite com `gsd config-set workflow.plan_review_convergence true`. Adicionado na v1.39 |
|
||||
| `workflow.plan_review_convergence` | boolean | `false` | Habilita o comando `/gsd-plan-review-convergence`. Desabilitado por padrão — o comando sai com instrução de habilitação quando esta chave é `false`. O comando automatiza o loop manual de plan→review→replan: gera revisores configurados (Codex, Claude, OpenCode, Ollama, LM Studio, llama.cpp), conta preocupações HIGH não resolvidas via contrato CYCLE_SUMMARY, replaneja com feedback `--reviews` e repete até convergir ou atingir o número máximo de ciclos. Habilite com `gsd config-set workflow.plan_review_convergence true`. Adicionado na v1.39 |
|
||||
| `workflow.plan_chunked` | boolean | `false` | Habilita o modo de planejamento em chunks. Quando `true` (ou quando a flag `--chunked` é passada para `/gsd-plan-phase`), o orquestrador divide a única Task de planejamento de longa duração em uma Task curta de esboço seguida de N Tasks curtas por plano (~3-5 min cada). Cada plano é commitado individualmente para resiliência a falhas. Se uma Task travar e o terminal for forçado a fechar, reexecutar com `--chunked` retoma a partir do último plano concluído. Particularmente útil no Windows onde Tasks de longa duração podem travar em stdio. Adicionado na v1.38 |
|
||||
| `workflow.code_review_command` | string | (nenhum) | Comando shell para integração de revisão de código externa em `/gsd-ship`. Recebe caminhos de arquivos alterados via stdin. Saída diferente de zero bloqueia o fluxo de trabalho de ship. Adicionado na v1.36 |
|
||||
| `workflow.tdd_mode` | boolean | `false` | Habilita o pipeline TDD como modo de execução de primeira classe. Quando `true`, o planejador aplica agressivamente `type: tdd` a tarefas elegíveis (lógica de negócios, APIs, validações, algoritmos) e o executor impõe a sequência de gate RED/GREEN/REFACTOR. Um ponto de revisão colaborativa ao final da fase verifica a conformidade com o gate. Adicionado na v1.36 |
|
||||
@@ -692,7 +691,6 @@ Configure a seleção de modelo por CLI para `/gsd-review`. Quando definido, sub
|
||||
|
||||
| Configuração | Tipo | Padrão | Descrição |
|
||||
|---------|------|---------|-------------|
|
||||
| `review.models.gemini` | string | (padrão da CLI) | Modelo usado quando o revisor `--gemini` é invocado |
|
||||
| `review.models.claude` | string | (padrão da CLI) | Modelo usado quando o revisor `--claude` é invocado |
|
||||
| `review.models.codex` | string | (padrão da CLI) | Modelo usado quando o revisor `--codex` é invocado |
|
||||
| `review.models.opencode` | string | (padrão da CLI) | Modelo usado quando o revisor `--opencode` é invocado |
|
||||
@@ -701,9 +699,9 @@ Configure a seleção de modelo por CLI para `/gsd-review`. Quando definido, sub
|
||||
| `review.models.ollama` | string | (padrão do servidor) | Nome do modelo passado ao Ollama quando o revisor `--ollama` é invocado. Se não definido, o primeiro modelo disponível reportado pelo servidor é usado (por exemplo `llama3`). Defina para uma tag específica: `gsd config-set review.models.ollama codellama` |
|
||||
| `review.models.lm_studio` | string | (padrão do servidor) | Nome do modelo passado ao LM Studio quando o revisor `--lm-studio` é invocado. Se não definido, o primeiro modelo disponível reportado pelo servidor é usado. |
|
||||
| `review.models.llama_cpp` | string | (padrão do servidor) | Nome do modelo passado ao llama.cpp quando o revisor `--llama-cpp` é invocado. Se não definido, o primeiro modelo reportado por `/v1/models` é usado. |
|
||||
| `review.default_reviewers` | string[] \| null | (todos os revisores detectados) | Subconjunto de revisores padrão para `/gsd-review` sem flags. Exemplo: `["gemini","codex"]`. Flags explícitas e `--all` substituem esta configuração. |
|
||||
| `review.default_reviewers` | string[] \| null | (todos os revisores detectados) | Subconjunto de revisores padrão para `/gsd-review` sem flags. Exemplo: `["codex","claude"]`. Flags explícitas e `--all` substituem esta configuração. |
|
||||
| `review.max_prompt_tokens` | number\|null | null | Máximo padrão de tokens estimados para o prompt de revisão montado. Quando definido, o prompt é cortado deterministicamente antes de ser enviado a cada revisor. Substituições por revisor via `review.max_prompt_tokens_per_reviewer` têm precedência. null = sem corte (comportamento atual). |
|
||||
| `review.max_prompt_tokens_per_reviewer` | object | {} | Substituições de orçamento de tokens por revisor. As chaves são slugs de revisor (ollama, llama_cpp, lm_studio, gemini, claude, codex, opencode, qwen, cursor). Os valores substituem `review.max_prompt_tokens` para aquele revisor. Recomendado para servidores de modelos locais. |
|
||||
| `review.max_prompt_tokens_per_reviewer` | object | {} | Substituições de orçamento de tokens por revisor. As chaves são slugs de revisor (ollama, llama_cpp, lm_studio, claude, codex, opencode, qwen, cursor). Os valores substituem `review.max_prompt_tokens` para aquele revisor. Recomendado para servidores de modelos locais. |
|
||||
| `review.ollama_host` | string | `http://localhost:11434` | URL base do servidor Ollama. Substitua quando executar o Ollama em uma porta não padrão ou host remoto: `gsd config-set review.ollama_host http://192.168.1.10:11434` |
|
||||
| `review.lm_studio_host` | string | `http://localhost:1234` | URL base do servidor local LM Studio. Substitua quando usar uma porta não padrão. |
|
||||
| `review.llama_cpp_host` | string | `http://localhost:8080` | URL base do servidor llama.cpp (`llama-server`). Substitua quando usar uma porta não padrão. |
|
||||
@@ -718,7 +716,7 @@ Servidores de modelos locais (Ollama, llama.cpp, LM Studio) geralmente aceitam m
|
||||
{
|
||||
"review": {
|
||||
"models": {
|
||||
"gemini": "gemini-2.5-pro",
|
||||
"agy": "gemini-3.1-pro-preview",
|
||||
"qwen": "qwen-max"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,16 +8,13 @@
|
||||
|
||||
## Decidir quais revisores usar
|
||||
|
||||
O GSD Core pode encaminhar solicitações de revisão para qualquer combinação de: Gemini CLI, Claude (sessão separada), Codex CLI, CodeRabbit, OpenCode, Qwen Code, Cursor, Antigravity CLI, Ollama, LM Studio e llama.cpp.
|
||||
O GSD Core pode encaminhar solicitações de revisão para qualquer combinação de: Claude (sessão separada), Codex CLI, CodeRabbit, OpenCode, Qwen Code, Cursor, Antigravity CLI, Ollama, LM Studio e llama.cpp.
|
||||
|
||||
Cada revisor executa o mesmo prompt estruturado contra seus arquivos `PLAN.md` de forma independente. Como diferentes modelos têm diferentes pontos cegos, o consenso de múltiplos revisores detecta mais problemas do que qualquer revisor individual.
|
||||
|
||||
**Se você ainda não tem CLIs externos instalados**, instale pelo menos um:
|
||||
|
||||
```bash
|
||||
# Gemini CLI (gratuito com credenciais Google)
|
||||
npm install -g @google/gemini-cli
|
||||
|
||||
# Antigravity CLI (gratuito com credenciais Google)
|
||||
curl -fsSL https://antigravity.google/cli/install.sh | bash
|
||||
|
||||
@@ -35,12 +32,12 @@ Por padrão, `/gsd-review` executa todos os CLIs detectados. Para fixar um subco
|
||||
/gsd-config --integrations
|
||||
```
|
||||
|
||||
O assistente de integrações cobre chaves de API, roteamento de CLIs para revisão de código e a lista `review.default_reviewers`. Defina a lista com os revisores que você deseja como padrão sem flags — por exemplo `["gemini","codex"]`.
|
||||
O assistente de integrações cobre chaves de API, roteamento de CLIs para revisão de código e a lista `review.default_reviewers`. Defina a lista com os revisores que você deseja como padrão sem flags — por exemplo `["codex","claude"]`.
|
||||
|
||||
Como alternativa, defina diretamente com `gsd-tools`:
|
||||
|
||||
```bash
|
||||
gsd config-set review.default_reviewers '["gemini","codex"]'
|
||||
gsd config-set review.default_reviewers '["codex","claude"]'
|
||||
```
|
||||
|
||||
Para o esquema completo de configurações de integração (chaves de API, substituições de modelo por revisor, endereços de servidor local), consulte [Configuração](../CONFIGURATION.md).
|
||||
@@ -60,7 +57,7 @@ O GSD invoca cada revisor em sequência, coleta feedback estruturado (Resumo, Po
|
||||
### Selecionar um único revisor para uma execução pontual
|
||||
|
||||
```bash
|
||||
/gsd-review --phase 3 --gemini
|
||||
/gsd-review --phase 3 --agy
|
||||
/gsd-review --phase 3 --codex
|
||||
/gsd-review --phase 3 --cursor
|
||||
```
|
||||
@@ -124,7 +121,7 @@ Isso executa `plan-phase → review → replan → re-review` por até três cic
|
||||
|
||||
```bash
|
||||
/gsd-plan-review-convergence 3 --codex
|
||||
/gsd-plan-review-convergence 3 --gemini
|
||||
/gsd-plan-review-convergence 3 --agy
|
||||
```
|
||||
|
||||
### Convergência com todos os revisores e um limite maior de ciclos
|
||||
@@ -141,13 +138,13 @@ Isso executa `plan-phase → review → replan → re-review` por até três cic
|
||||
|
||||
| Situação | Abordagem recomendada |
|
||||
|-----------|---------------------|
|
||||
| Você já tem o Gemini CLI instalado | `--gemini` é sempre um bom revisor inicial |
|
||||
| Você quer cobertura gratuita com múltiplos revisores | `--gemini` + `--agy` (ambos usam credenciais Google) |
|
||||
| Você já tem o Antigravity instalado | `--agy` é sempre um bom revisor inicial |
|
||||
| Você quer cobertura gratuita com múltiplos revisores | `--agy` (credenciais Google) + `--claude` |
|
||||
| Seu projeto é fortemente baseado em OpenAI | adicione `--codex` para uma perspectiva de modelo OpenAI |
|
||||
| Você quer o modelo do GitHub Copilot | adicione `--opencode` |
|
||||
| Você quer evitar custos de API completamente | configure o Ollama com um modelo local e use `--ollama` |
|
||||
| Você precisa de cobertura máxima antes de um lançamento | `/gsd-plan-review-convergence N --all` |
|
||||
| Você está iterando rapidamente e quer feedback rápido | escolha um CLI: `/gsd-review --phase N --gemini` |
|
||||
| Você está iterando rapidamente e quer feedback rápido | escolha um CLI: `/gsd-review --phase N --agy` |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -104,7 +104,7 @@ emission), so their extension-point and hook-kind cells are `—`.
|
||||
| `windsurf` | runtime | core | `>=1.6.0` | — | — | first-party |
|
||||
| `zcode` | runtime | core | `>=1.6.0` | — | — | first-party |
|
||||
|
||||
### Reviewer capabilities (role: reviewer) — 5
|
||||
### Reviewer capabilities (role: reviewer) — 4
|
||||
|
||||
Reviewer capabilities declare a cross-AI **reviewer lane** — one external CLI or
|
||||
model endpoint `/gsd-review` hands a plan to (ADR-2782 D3). They are not install
|
||||
@@ -122,7 +122,6 @@ at install like any other — see
|
||||
| id | role | tier | engines.gsd | extension points | hook kinds | source |
|
||||
|---|---|---|---|---|---|---|
|
||||
| `coderabbit` | reviewer | full | `>=1.8.0` | — | — | first-party |
|
||||
| `gemini` | reviewer | full | `>=1.8.0` | — | — | first-party |
|
||||
| `llama-cpp` | reviewer | full | `>=1.8.0` | — | — | first-party |
|
||||
| `lm-studio` | reviewer | full | `>=1.8.0` | — | — | first-party |
|
||||
| `ollama` | reviewer | full | `>=1.8.0` | — | — | first-party |
|
||||
|
||||
@@ -479,7 +479,7 @@ node gsd-tools.cjs graphify snapshot [name]
|
||||
|
||||
```bash
|
||||
node gsd-tools.cjs config-set review.models.codex "codex exec --model gpt-5"
|
||||
node gsd-tools.cjs config-set review.models.gemini "gemini -m gemini-2.5-pro"
|
||||
node gsd-tools.cjs config-set review.models.agy "gemini-3.1-pro-preview"
|
||||
node gsd-tools.cjs config-set review.models.opencode "opencode run --model claude-sonnet-4"
|
||||
node gsd-tools.cjs config-set review.models.claude "" # 清除——回退到会话模型
|
||||
```
|
||||
|
||||
@@ -218,7 +218,7 @@ v1.40 中,六个命名空间路由器作为第一阶段入口点随附发布
|
||||
| 参数 / 标志 | 必填 | 描述 |
|
||||
|-----------------|----------|-------------|
|
||||
| `N` | **是** | 要规划和审查的阶段编号 |
|
||||
| 审查者标志 | 否 | 原样传递所有审查者通道标志:`--gemini`、`--claude`、`--codex`、`--coderabbit`、`--opencode`、`--qwen`、`--cursor`、`--agy` / `--antigravity`、`--ollama`、`--lm-studio`、`--llama-cpp`、`--kimi-code` |
|
||||
| 审查者标志 | 否 | 原样传递所有审查者通道标志:`--claude`、`--codex`、`--coderabbit`、`--opencode`、`--qwen`、`--cursor`、`--agy` / `--antigravity`、`--ollama`、`--lm-studio`、`--llama-cpp`、`--kimi-code` |
|
||||
| `--all` | 否 | 运行所有已配置的审查者。审查通道默认**顺序**分发;将 `review.parallel_lanes` 设为 `true` 可在单次审查中并发分发 |
|
||||
| `--max-cycles N` | 否 | 覆盖循环上限(默认 3) |
|
||||
|
||||
@@ -1238,7 +1238,6 @@ node gsd-tools.cjs intel api-surface # 渲染 api-map.json → API-
|
||||
|
||||
| 标志 | 描述 |
|
||||
|------|-------------|
|
||||
| `--gemini` | 包含 Gemini CLI 审查 |
|
||||
| `--claude` | 包含 Claude CLI 审查(独立会话) |
|
||||
| `--codex` | 包含 Codex CLI 审查 |
|
||||
| `--coderabbit` | 包含 CodeRabbit 审查 |
|
||||
@@ -1254,7 +1253,7 @@ node gsd-tools.cjs intel api-surface # 渲染 api-map.json → API-
|
||||
|
||||
**默认审查者行为(无标志):**
|
||||
- 如果 `review.default_reviewers` **未设置**,`/gsd-review` 运行所有检测到的审查者(当前默认行为)。
|
||||
- 如果 `review.default_reviewers` **已设置**,`/gsd-review` 仅运行该子集(例如 `["gemini","codex"]`)。
|
||||
- 如果 `review.default_reviewers` **已设置**,`/gsd-review` 仅运行该子集(例如 `["codex","claude"]`)。
|
||||
- `--all` 始终覆盖配置并运行完整的检测集。
|
||||
- 显式标志(例如 `--cursor`)在该次运行中覆盖 `--all` 和配置默认值。
|
||||
|
||||
@@ -1262,11 +1261,11 @@ node gsd-tools.cjs intel api-surface # 渲染 api-map.json → API-
|
||||
|
||||
```bash
|
||||
# 设置项目默认审查者,用于无标志的 /gsd-review 运行
|
||||
gsd config-set review.default_reviewers '["gemini","codex"]'
|
||||
gsd config-set review.default_reviewers '["codex","claude"]'
|
||||
|
||||
/gsd-review --phase 2 # 使用配置中的 gemini+codex 运行
|
||||
/gsd-review --phase 2 # 使用配置中的 codex+claude 运行
|
||||
/gsd-review --phase 3 --all
|
||||
/gsd-review --phase 2 --gemini
|
||||
/gsd-review --phase 2 --codex
|
||||
/gsd-review --phase 2 --cursor # 一次性覆盖
|
||||
```
|
||||
|
||||
|
||||
@@ -195,7 +195,6 @@ API 密钥字段接受字符串值(密钥本身)。也可以设置为哨兵
|
||||
|---------|------|---------|-------------|
|
||||
| `review.models.claude` | string | (会话模型) | Claude 风格审查的命令。未设置时默认使用会话模型 |
|
||||
| `review.models.codex` | string | `null` | Codex 审查命令,如 `"codex exec --model gpt-5"` |
|
||||
| `review.models.gemini` | string | `null` | Gemini 审查命令,如 `"gemini -m gemini-2.5-pro"` |
|
||||
| `review.models.opencode` | string | `null` | OpenCode 审查命令,如 `"opencode run --model claude-sonnet-4"` |
|
||||
|
||||
`<cli>` slug 需通过 `[a-zA-Z0-9_-]+` 验证。空值或包含路径的 slug 会被 `config-set` 拒绝。
|
||||
@@ -206,14 +205,14 @@ API 密钥字段接受字符串值(密钥本身)。也可以设置为哨兵
|
||||
|
||||
| 设置 | 类型 | 默认值 | 描述 |
|
||||
|---------|------|---------|-------------|
|
||||
| `review.default_reviewers` | string[] \| null | `null`(所有已检测审查器) | 无标志 `/gsd-review` 的可选默认子集,如 `["gemini","codex"]`。优先级顺序:显式审查器标志 > `--all` > `review.default_reviewers` > 所有已检测。未知 slug 以警告忽略;已知但未检测到的 slug 以信息提示忽略;空数组会被 `config-set` 拒绝。 |
|
||||
| `review.default_reviewers` | string[] \| null | `null`(所有已检测审查器) | 无标志 `/gsd-review` 的可选默认子集,如 `["codex","claude"]`。优先级顺序:显式审查器标志 > `--all` > `review.default_reviewers` > 所有已检测。未知 slug 以警告忽略;已知但未检测到的 slug 以信息提示忽略;空数组会被 `config-set` 拒绝。 |
|
||||
|
||||
示例:
|
||||
|
||||
```json
|
||||
{
|
||||
"review": {
|
||||
"default_reviewers": ["gemini", "codex"]
|
||||
"default_reviewers": ["codex", "claude"]
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -254,7 +253,7 @@ API 密钥字段接受字符串值(密钥本身)。也可以设置为哨兵
|
||||
| `workflow.plan_bounce_script` | string | (无) | 用于计划反弹验证的外部脚本路径。接收 PLAN.md 路径作为第一个参数。当 `plan_bounce` 为 `true` 时必需。v1.36 新增 |
|
||||
| `workflow.plan_bounce_passes` | number | `2` | 顺序执行的反弹轮数。每轮将上一轮的输出反馈给验证器。较高的值提升严格性,但会增加延迟。v1.36 新增 |
|
||||
| `workflow.post_planning_gaps` | boolean | `true` | 统一的规划后差距报告(#2493)。所有计划生成并提交后,扫描 REQUIREMENTS.md 和 CONTEXT.md 的 `<decisions>` 与阶段目录中的每个 PLAN.md,然后打印一个 `Source \| Item \| Status` 表格。单词边界匹配(REQ-1 vs REQ-10)和自然排序(REQ-02 在 REQ-10 之前)。非阻塞——仅为信息性报告。设为 `false` 跳过计划阶段的步骤 13e。 |
|
||||
| `workflow.plan_review_convergence` | boolean | `false` | 启用 `/gsd-plan-review-convergence` 命令。默认禁用——此键为 `false` 时命令以启用说明退出。该命令自动化手动计划→审查→重新规划循环:派生已配置的审查器(Codex、Gemini、Claude、OpenCode、Ollama、LM Studio、llama.cpp),通过 CYCLE_SUMMARY 契约计算未解决的 HIGH 问题,用 `--reviews` 反馈重新规划,并重复直至收敛或达到最大循环次数。通过 `gsd config-set workflow.plan_review_convergence true` 启用。v1.39 新增 |
|
||||
| `workflow.plan_review_convergence` | boolean | `false` | 启用 `/gsd-plan-review-convergence` 命令。默认禁用——此键为 `false` 时命令以启用说明退出。该命令自动化手动计划→审查→重新规划循环:派生已配置的审查器(Codex、Claude、OpenCode、Ollama、LM Studio、llama.cpp),通过 CYCLE_SUMMARY 契约计算未解决的 HIGH 问题,用 `--reviews` 反馈重新规划,并重复直至收敛或达到最大循环次数。通过 `gsd config-set workflow.plan_review_convergence true` 启用。v1.39 新增 |
|
||||
| `workflow.plan_chunked` | boolean | `false` | 启用分块规划模式。为 `true`(或向 `/gsd-plan-phase` 传递 `--chunked` 标志)时,编排器将单个长期规划器任务拆分为一个简短的轮廓任务,后跟 N 个简短的按计划任务(每个约 3-5 分钟)。每个计划单独提交以具备崩溃韧性。如果任务挂起且终端被强制终止,使用 `--chunked` 重新运行将从最后完成的计划处恢复。在长期任务可能在 stdio 上挂起的 Windows 上特别有用。v1.38 新增 |
|
||||
| `workflow.code_review_command` | string | (无) | `/gsd-ship` 中外部代码审查集成的 shell 命令。通过 stdin 接收更改的文件路径。非零退出阻塞发布工作流。v1.36 新增 |
|
||||
| `workflow.tdd_mode` | boolean | `false` | 将 TDD 流水线作为一等执行模式启用。为 `true` 时,规划器积极地将 `type: tdd` 应用于符合条件的任务(业务逻辑、API、验证、算法),执行器强制执行 RED/GREEN/REFACTOR 门禁序列。阶段结束时的协作审查检查点验证门禁合规性。v1.36 新增 |
|
||||
@@ -670,7 +669,6 @@ gsd-tools query config-set features.thinking_partner false
|
||||
|
||||
| 设置 | 类型 | 默认值 | 描述 |
|
||||
|---------|------|---------|-------------|
|
||||
| `review.models.gemini` | string | (CLI 默认) | 调用 `--gemini` 审查器时使用的模型 |
|
||||
| `review.models.claude` | string | (CLI 默认) | 调用 `--claude` 审查器时使用的模型 |
|
||||
| `review.models.codex` | string | (CLI 默认) | 调用 `--codex` 审查器时使用的模型 |
|
||||
| `review.models.opencode` | string | (CLI 默认) | 调用 `--opencode` 审查器时使用的模型 |
|
||||
@@ -679,9 +677,9 @@ gsd-tools query config-set features.thinking_partner false
|
||||
| `review.models.ollama` | string | (服务器默认) | 调用 `--ollama` 审查器时传递给 Ollama 的模型名称。未设置时使用服务器报告的第一个可用模型(如 `llama3`)。设置为特定标签:`gsd config-set review.models.ollama codellama` |
|
||||
| `review.models.lm_studio` | string | (服务器默认) | 调用 `--lm-studio` 审查器时传递给 LM Studio 的模型名称。未设置时使用服务器报告的第一个可用模型。 |
|
||||
| `review.models.llama_cpp` | string | (服务器默认) | 调用 `--llama-cpp` 审查器时传递给 llama.cpp 的模型名称。未设置时使用 `/v1/models` 报告的第一个模型。 |
|
||||
| `review.default_reviewers` | string[] \| null | (所有已检测审查器) | 无标志 `/gsd-review` 的默认审查器子集。示例:`["gemini","codex"]`。显式标志和 `--all` 覆盖此设置。 |
|
||||
| `review.default_reviewers` | string[] \| null | (所有已检测审查器) | 无标志 `/gsd-review` 的默认审查器子集。示例:`["codex","claude"]`。显式标志和 `--all` 覆盖此设置。 |
|
||||
| `review.max_prompt_tokens` | number\|null | null | 组装审查提示词的默认最大预估 token 数。设置后,在发送给每个审查器之前对提示词进行确定性裁剪。按审查器覆盖通过 `review.max_prompt_tokens_per_reviewer` 优先。null = 不裁剪(当前行为)。 |
|
||||
| `review.max_prompt_tokens_per_reviewer` | object | {} | 按审查器的 token 预算覆盖。键为审查器 slug(ollama、llama_cpp、lm_studio、gemini、claude、codex、opencode、qwen、cursor)。值覆盖该审查器的 `review.max_prompt_tokens`。推荐用于本地模型服务器。 |
|
||||
| `review.max_prompt_tokens_per_reviewer` | object | {} | 按审查器的 token 预算覆盖。键为审查器 slug(ollama、llama_cpp、lm_studio、claude、codex、opencode、qwen、cursor)。值覆盖该审查器的 `review.max_prompt_tokens`。推荐用于本地模型服务器。 |
|
||||
| `review.ollama_host` | string | `http://localhost:11434` | Ollama 服务器的基础 URL。在非默认端口或远程主机上运行 Ollama 时覆盖:`gsd config-set review.ollama_host http://192.168.1.10:11434` |
|
||||
| `review.lm_studio_host` | string | `http://localhost:1234` | LM Studio 本地服务器的基础 URL。使用非默认端口时覆盖。 |
|
||||
| `review.llama_cpp_host` | string | `http://localhost:8080` | llama.cpp 服务器(`llama-server`)的基础 URL。使用非默认端口时覆盖。 |
|
||||
@@ -696,7 +694,7 @@ gsd-tools query config-set features.thinking_partner false
|
||||
{
|
||||
"review": {
|
||||
"models": {
|
||||
"gemini": "gemini-2.5-pro",
|
||||
"agy": "gemini-3.1-pro-preview",
|
||||
"qwen": "qwen-max"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1174,7 +1174,7 @@ GSD update available: 1.39.0 → 1.40.0. Run /gsd-update.
|
||||
|
||||
### 42. 跨 AI 同行评审
|
||||
|
||||
**命令:** `/gsd-review --phase N [--gemini] [--claude] [--codex] [--coderabbit] [--opencode] [--qwen] [--cursor] [--agy] [--antigravity] [--ollama] [--lm-studio] [--llama-cpp] [--kimi-code] [--all]`
|
||||
**命令:** `/gsd-review --phase N [--claude] [--codex] [--coderabbit] [--opencode] [--qwen] [--cursor] [--agy] [--antigravity] [--ollama] [--lm-studio] [--llama-cpp] [--kimi-code] [--all]`
|
||||
|
||||
**目的:** 调用外部 AI CLI(Gemini、Claude、Codex、CodeRabbit、OpenCode、Qwen Code、Cursor、Antigravity、Kimi Code)和本地 OpenAI 兼容服务器(Ollama、LM Studio、llama.cpp)独立审查阶段计划。生成包含每位审查者反馈的结构化 REVIEWS.md。
|
||||
|
||||
|
||||
@@ -8,16 +8,13 @@
|
||||
|
||||
## 决定使用哪些评审者
|
||||
|
||||
GSD Core 可将评审请求路由至以下任意组合:Gemini CLI、Claude(独立会话)、Codex CLI、CodeRabbit、OpenCode、Qwen Code、Cursor、Antigravity CLI、Ollama、LM Studio 以及 llama.cpp。
|
||||
GSD Core 可将评审请求路由至以下任意组合:Claude(独立会话)、Codex CLI、CodeRabbit、OpenCode、Qwen Code、Cursor、Antigravity CLI、Ollama、LM Studio 以及 llama.cpp。
|
||||
|
||||
每位评审者会独立地对您的 `PLAN.md` 文件执行相同的结构化提示。由于不同模型存在不同的盲区,多评审者共识能比任何单一评审者发现更多问题。
|
||||
|
||||
**如果您尚未安装任何外部 CLI**,请至少安装一个:
|
||||
|
||||
```bash
|
||||
# Gemini CLI(使用 Google 凭据免费使用)
|
||||
npm install -g @google/gemini-cli
|
||||
|
||||
# Antigravity CLI(使用 Google 凭据免费使用)
|
||||
curl -fsSL https://antigravity.google/cli/install.sh | bash
|
||||
|
||||
@@ -35,12 +32,12 @@ npm install -g @openai/codex
|
||||
/gsd-config --integrations
|
||||
```
|
||||
|
||||
集成向导涵盖 API 密钥、代码评审 CLI 路由以及 `review.default_reviewers` 列表。将该列表设置为您希望作为无标志默认值的评审者——例如 `["gemini","codex"]`。
|
||||
集成向导涵盖 API 密钥、代码评审 CLI 路由以及 `review.default_reviewers` 列表。将该列表设置为您希望作为无标志默认值的评审者——例如 `["codex","claude"]`。
|
||||
|
||||
或者,也可通过 `gsd-tools` 直接设置:
|
||||
|
||||
```bash
|
||||
gsd config-set review.default_reviewers '["gemini","codex"]'
|
||||
gsd config-set review.default_reviewers '["codex","claude"]'
|
||||
```
|
||||
|
||||
完整的集成设置架构(API 密钥、每个评审者的模型覆盖、本地服务器主机地址)请参阅[配置](../CONFIGURATION.md)。
|
||||
@@ -60,7 +57,7 @@ GSD 会依次调用每位评审者,收集结构化反馈(摘要、优点、H
|
||||
### 为一次性运行选择单个评审者
|
||||
|
||||
```bash
|
||||
/gsd-review --phase 3 --gemini
|
||||
/gsd-review --phase 3 --agy
|
||||
/gsd-review --phase 3 --codex
|
||||
/gsd-review --phase 3 --cursor
|
||||
```
|
||||
@@ -124,7 +121,7 @@ GSD 会依次调用每位评审者,收集结构化反馈(摘要、优点、H
|
||||
|
||||
```bash
|
||||
/gsd-plan-review-convergence 3 --codex
|
||||
/gsd-plan-review-convergence 3 --gemini
|
||||
/gsd-plan-review-convergence 3 --agy
|
||||
```
|
||||
|
||||
### 使用所有评审者并提高循环上限进行收敛
|
||||
@@ -141,13 +138,13 @@ GSD 会依次调用每位评审者,收集结构化反馈(摘要、优点、H
|
||||
|
||||
| 场景 | 推荐方式 |
|
||||
|-----------|---------------------|
|
||||
| 已安装 Gemini CLI | `--gemini` 始终是良好的起始评审者 |
|
||||
| 希望免费多评审者覆盖 | `--gemini` + `--agy`(两者均使用 Google 凭据) |
|
||||
| 已安装 Antigravity | `--agy` 始终是良好的起始评审者 |
|
||||
| 希望免费多评审者覆盖 | `--agy`(Google 凭据)+ `--claude` |
|
||||
| 项目以 OpenAI 为主 | 添加 `--codex` 以获取 OpenAI 模型视角 |
|
||||
| 希望使用 GitHub Copilot 的模型 | 添加 `--opencode` |
|
||||
| 希望完全避免 API 费用 | 使用本地模型配置 Ollama 并使用 `--ollama` |
|
||||
| 发布前需要最大覆盖率 | `/gsd-plan-review-convergence N --all` |
|
||||
| 快速迭代并希望获得快速反馈 | 选择一个 CLI:`/gsd-review --phase N --gemini` |
|
||||
| 快速迭代并希望获得快速反馈 | 选择一个 CLI:`/gsd-review --phase N --agy` |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user