#3655·gsd-core

docs: the published site serves pre-#1296 review.models content — docs.opengsd.net is built from open-gsd/docs, which has diverged from gsd-core/docs

Author: jaybuidlCreated Aug 19, 2026Updated Sep 21, 2026
Labelsready-for-humanStale

Pre-submission checklist

  • I have searched existing issues and this documentation problem has not already been reported

#1296 fixed this same mislabel in the in-repo surfaces and is closed. #2915 and #2668 are docs-drift reports against files inside this repo. None of them covers the published site, which is a separate corpus and is the subject here.

Issue type

Outdated (no longer matches behavior)

Where is the issue?

https://docs.opengsd.net/core/configuration/integrations#cross-ai-review-cli-routing

Source: open-gsd/docs, file core/configuration/integrations.mdx, lines 33-72 on main.

What's wrong?

The published page documents review.models.<cli> as a shell command. It is a bare model id. This repo already documents it correctly, so the two corpora now contradict each other on the same key.

gsd-core/docs/CONFIGURATION.md:231:

review.models.<cli> maps a reviewer flavor to a bare model id, which is injected into the CLI's own model flag (--model, -m, …) when the reviewer is invoked.

open-gsd/docs, core/configuration/integrations.mdx:35:

Configure which shell command GSD invokes for each AI reviewer when running /gsd-review. Keys under review.models.<cli> map a reviewer flavor to an executable command.

This is the pre-#1296 shape. #1296 (closed 2026-06-15) corrected docs/CONFIGURATION.md, docs/CLI-TOOLS.md, references/planning-config.md and workflows/settings-integrations.md in this repo; the site was never in that issue's blast radius and still serves the superseded text.

Four defects in that one section:

  1. Prose (:35) — "which shell command GSD invokes", "map a reviewer flavor to an executable command".
  2. JSON block (:41-50) — six of nine values are commands, e.g. "codex": "codex exec --model gpt-5.3-codex", "gemini": "gemini -m gemini-2.5-pro". A command-shaped value lands as a single argument after --model and breaks the lane.
  3. Accordion examples (:60-62) — repeat the command shape for codex, gemini and opencode.
  4. Accordion slug table (:63-65) — lists qwen, cursor and coderabbit as settable slugs. None of the three declares a modelConfigKey, so none is settable. This is the one that actually costs time, because the page's own JSON example includes "cursor": "cursor-agent":
$ gsd-tools query config-set review.models.cursor "cursor-grok-4.6-high"
Error: Unknown config key: "review.models.cursor".

kimi-code is also missing from that table although it has a key, and the table's own ollama / lm_studio / llama_cpp rows already say "Value is the model name" — so the page contradicts itself inside a single table, the same internal-contradiction pattern #1296 flagged in CONFIGURATION.md.

To be clear about scope: the ## Custom agent skills injection section on that same page is correct — it shows the array form and states "Each value is an array of directory paths". Only the review-routing section is affected.

Suggested fix

The page-level fix is mechanical, and this repo already contains the correct text to copy from. But the reason the page is stale looks structural rather than editorial, so the more useful question is which corpus is canonical.

open-gsd/docs holds the Mintlify config for the published site (docs.json, "name": "Open GSD", and a navigation entry for core/configuration/integrations matching the live URL). Its history is three commits, the most recent authored through the Mintlify dashboard editor, with three PRs open since 2026-06-16 and no issues ever filed. gsd-core/docs has roughly 850 commits touching docs/, contributed by dozens of authors under an issue-referenced commit convention, and is where #1296 landed. A correction applied to gsd-core/docs therefore does not reach readers, and one applied to open-gsd/docs does not reach this repo.

Options, in rough order of leverage:

  1. Point the published site at the maintained corpus, or generate the site pages from it, so a fix like #1296 propagates automatically.
  2. If the two corpora are intentionally separate, sync the diverged pages and note in CONTRIBUTING.md which one contributors should edit — that is not currently discoverable.
  3. At minimum, correct this section: bare model ids in the prose, JSON and accordion; drop or explicitly mark qwen / cursor / coderabbit as having no model pin; add the missing kimi-code row.

I am happy to send the PR for option 3 against open-gsd/docs if that repo is in fact watched — I held off because of the three PRs sitting there since June, and did not want to add a fourth.

Two related issues filed today, both about the same key from the code side rather than the docs side: #3651 (settings-integrations.md cites a review.models validation pattern that does not exist) and #3653 (add review.models.cursor). If #3653 is approved, the cursor row on this page becomes correct rather than needing removal, which is an argument for marking those rows instead of deleting them.

Verified against gsd-core 1.10.0 and re-checked against next HEAD before filing.