* fix(#4728): stop presenting the retired Gemini CLI as a supported runtime
#1928 removed the Gemini CLI runtime after Google sunset it on 2026-06-18, and
updated the ENGLISH docs. The locale mirrors and the runtime-loaded workflow
prose were not updated in the same change, and no gate asserts the ABSENCE of a
retired runtime, so both drifted quietly for a year.
The finding that shaped this change: English is already correct. docs/
ARCHITECTURE.md, CONFIGURATION.md, USER-GUIDE.md, how-to/install-on-your-runtime.md
and CLI-TOOLS.md carry zero runtime-axis Gemini references; the only English hits
anywhere are a Gemini 2.5 Pro MODEL line, the GEMINI_API_KEY row, and prose that
correctly documents the retirement. So the docs half of this is translation lag,
not a content decision, and every locale edit here is parity with an existing
English line rather than new wording:
- install-on-your-runtime.md English has NO `### Gemini CLI` section -> deleted
- USER-GUIDE.md :843 "…, Antigravity CLI, Kilo)" -> substituted
- ARCHITECTURE.md English has NO Gemini CLI table row -> row deleted
- ARCHITECTURE.md :24 English holds `Kimi CLI` in that slot -> Kimi CLI
- context-monitor.md :3 "`AfterTool` for Antigravity CLI" -> substituted
- spike-and-sketch.md :93 "(Codex, Antigravity CLI, etc.)" -> substituted
- configure-model-profiles "Codex, OpenCode, Antigravity CLI, or Kilo" -> substituted
- COMMANDS.md English keeps only hyphen + Codex bullets -> colon bullet deleted
- FEATURES.md source docs/features/multi-runtime-support.md:10
lists no Gemini CLI -> name removed
ARCHITECTURE.md:24 is the clearest case for reading English rather than
substituting blind: Antigravity ALREADY appears later in that list, so replacing
Gemini CLI with Antigravity would have named it twice. English holds Kimi CLI
there, so that is what the locales get.
The largest single class was hand-duplicated boilerplate. A "Text mode" paragraph
repeated across 34 runtime-loaded workflow files ends "…required for non-Claude
runtimes (OpenAI Codex, Gemini CLI, etc.)". No lint enforces that sentence and no
script syncs it, so every copy was edited. These files are read by the agent at
runtime, so they steer behavior rather than only informing a reader — which is why
this class matters more than its word count suggests.
The slash-command-form section is restructured in all four languages to match
English, which had already dropped its colon-form bullet. That bullet claimed the
colon form is "Gemini CLI only", which was false on its own terms independent of
the retirement: `/gsd:…` is GSD's canonical AUTHORING token, rewritten per runtime
at install time, and NO runtime registers it — VALID_COMMAND_STYLES is
{slash-hyphen, shell-var} and 18 of 19 runtimes declare slash-hyphen. Substituting
the runtime name would have left the claim false with Antigravity's name in it, so
the claim is gone, matching English.
Two anchor regressions were caught and fixed while doing that. zh-CN lost its
explicit {#slash-command-forms-hyphen-vs-colon} anchor while its TOC still linked
it; the anchor is restored. ko-KR and pt-BR never had an explicit anchor and rely
on the slug generated from the heading text, so shortening the heading broke their
own TOC links; those links now point at the new slugs. English's heading lost its
anchor while its TOC still links the old one — that latent English bug is
deliberately NOT copied.
Preserved, because `gemini` is not one thing here and a blanket sweep breaks the
product: ~/.gemini/antigravity{,-ide,-cli} and ~/.gemini as their parent;
~/.gemini/config (#3738); GEMINI.md; hookEvents "gemini"; GEMINI_API_KEY in all
four locales; every gemini-* model id and the Gemini 2.5 Pro references in
ko-KR/pt-BR/zh-CN (ja-JP genuinely lacks that line — the locales have diverged, so
a uniform patch would be wrong); the hook-event dialect notes, which are
RE-ATTRIBUTED rather than deleted because Antigravity inherits that dialect;
reapply-patches.md:93's legacy-install note; host-integration-capability-matrix.md
:27 and :342, which correctly record the sunset and Antigravity's contract;
whats-new-1.7.0.md and FEATURES.md:3506, which document the retirement itself; and
the generated launcher preamble, which belongs to epic #4632 — zero
_GSD_SHIM_NAME lines appear in this diff.
Coverage: a #4728 block in tests/gemini-runtime-removed.test.cjs asserts the
retired name is gone from STRUCTURAL POSITIONS (a level-3 heading, a table row's
first cell, a runtime-example parenthetical) rather than asserting the string is
absent, which would be wrong. It pairs those with positive PRESERVE assertions
over the same files — Antigravity's heading, ~/.gemini/antigravity, GEMINI_API_KEY,
AfterTool — so a patch that deletes too much fails as loudly as one that deletes
too little. The model-axis test pins both the presence in three locales and the
absence in ja-JP, so a later uniform patch that "helpfully" adds it back fails.
The new docs/ reads tripped lint-docs-guard-registration for the first time in
this file, so the test is registered in scripts/docs-guard-registry.cjs.
Not covered here, by design: nothing above would catch a Gemini-as-runtime
reference appearing in a NEW file tomorrow. That is the repo-wide drift guard,
#4729, which must land last — written now it would red on the very references this
change removes.
Fixes #4728
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* fix(#4728): fix four review blockers, including a vacuous test and my own duplicate
A full matrix run on 31f12d7943 FAILED with 3 real failures, and an isolated
adversarial review returned BLOCK on four blockers. All of it was correct.
1. I committed the exact error I claimed to have avoided. The commit message
boasted that ARCHITECTURE.md:24 proved the value of reading English rather
than substituting blind, because Antigravity already appeared later in that
list. Five hundred lines further down the SAME four files, my
`Gemini:` -> `Antigravity:` substitution produced TWO consecutive
`- Antigravity:` bullets, because an Antigravity bullet was already there.
English (ARCHITECTURE.md:827) merges them into one. Now merged in all four
locales, reusing each locale's existing words.
2. `--gemini` survived in the runtime-detection CLI flag list in all four
locale ARCHITECTURE.md files. English:817 holds `--kimi` in that slot and
already lists `--antigravity` later, so this is another place where
substituting Antigravity would have duplicated it. Now `--kimi`.
3. Two runtime-loaded workflow files still enumerated Gemini one line ABOVE the
line I had already corrected -- the "Adaptive (Recommended)" option in
settings.md:192 and new-project/steps/auto-mode-config.md:95.
4. THE NEW TEST WAS VACUOUS for two of its five files. It matched only
`non-Claude runtimes (` and `(e.g. `, and neither regex could reach the two
lines the change actually fixed: health.md:52 reads `non-Claude (Codex, ...)`
without the word "runtimes", and execute-phase.md:1028 has no parenthetical
at all. The reviewer proved it by re-introducing Gemini at both lines and
watching the assertion stay GREEN. That same blind spot is what hid finding 3.
Replaced with a case-sensitive `/\bGemini\b/` walk over every
`gsd-core/workflows/**/*.md`, which works because every LEGITIMATE gemini
reference in that tree is spelled differently and cannot match: Antigravity's
paths are lowercase with a slash (`~/.gemini/antigravity`), Google's model ids
are lowercase and hyphenated (`gemini-3.1-pro-preview`), and the env vars are
uppercase (`GEMINI_CONFIG_DIR`, `GEMINI_SESSION_ID`). A bare capitalised
`Gemini` there means the retired RUNTIME is being named. The walk asserts it
found at least 50 files so an empty walk cannot pass vacuously, and it now
covers the nested `new-project/steps/` directory where finding 3 lived.
Two allowlist entries, both by line CONTENT and both justified:
reapply-patches.md's `Legacy: ... pre-#1928` note, and settings-advanced.md's
`Known provider` menu. The second was escalated by the agent rather than
decided: Section 8 of that file says model policy is defined "independently"
of the runtime, so `(Claude / OpenAI / Gemini / Qwen)` is the PROVIDER axis --
the same axis as the lowercase model ids -- and must keep working.
Proven to fail, not just asserted: the predicate reports 0 offenders on the
real tree and exactly 2 on a /tmp copy with Gemini re-injected at
health.md:52 and execute-phase.md:1028.
Also from the review: a `| Gemini |` COLUMN survived in the locale FEATURES.md
comparison tables (English has none) -- removed from all three, with header,
separator and every body row kept aligned; two ENGLISH runtime-axis sites were
missed by my own parity standard (how-to/execute-a-phase.md:88 and
how-to/verify-and-ship.md:89, the latter doubly stale since #4716 retired the
Gemini reviewer lane); docs/USER-GUIDE.md:12 linked a dead anchor, which I had
found and deliberately left -- record-and-proceed on a known defect is exactly
what the rules forbid, so it is fixed; docs/COMMANDS.md:12 and all four mirrors
still claimed "the hyphen and colon forms are runtime-specific spellings" with
no colon form documented anywhere, so that false sentence is deleted; and ko-KR
had the installer rather than the user doing the targeting.
The other two matrix failures were the compact-content benchmark baseline, which
drifted because this PR changes byte counts, refreshed via the script's own
`--write` path rather than by hand; and this commit's emitted-drift-ack trailers.
Method note on the acks: the failing run measured growth against
origin/next@1110c3b4ee, which is the STALE LOCAL `next` ref -- gsd-test merges
into the local base branch, and this machine's `next` is seven commits behind
origin/next, which is checked out in the main worktree and so cannot be
fast-forwarded from here. The 32 trailers below are computed against the REAL
base (origin/next @ ca8d9d4459) by comparing each tracked file's blob size, which
is one more file than that run reported -- the extra is settings.md, grown again
by fix 3. docs-update.md and map-codebase.md are deliberately NOT acked: they
SHRANK, since there the fix deleted ", Gemini CLI" rather than substituting, and
acking a file no delta consumed is itself an error.
Refs #4728
Emitted-Drift-Ack-Growth: add-tests.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: add-todo.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: ai-integration-phase.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: check-todos.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: cleanup.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: complete-milestone.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: do.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: eval-review.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: execute-phase.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: execute-plan.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: health.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: import.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: inbox.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: manager.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: new-milestone.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: new-workspace.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: note.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: onboard.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: plant-seed.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: profile-user.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: quick.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: remove-workspace.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: secure-phase.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: settings.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: ship.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: smart-entry.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: ui-phase.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: ui-review.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: undo.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: update.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: validate-phase.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Emitted-Drift-Ack-Growth: verify-work.md — retiring the Gemini CLI runtime name; Antigravity is one byte longer
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* chore(#4728): add the changeset fragment
The PR body claimed one was present and it was not — caught by
scripts/changeset/lint.cjs reporting fail_missing_fragment, not by the
checklist, which is exactly why the lint exists.
Type Fixed: the diff is prose, and a docs-only fix uses Fixed since there is
no Documentation type.
Refs #4728
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:
@@ -21,7 +21,7 @@
|
||||
|
||||
## 系统概述
|
||||
|
||||
GSD Core 是一个**元提示框架**,位于用户与 AI 编码 Agent(Claude Code、Gemini CLI、OpenCode、Kilo、Codex、Copilot、Antigravity、Trae、Cline、Augment Code)之间。它提供:
|
||||
GSD Core 是一个**元提示框架**,位于用户与 AI 编码 Agent(Claude Code、Kimi CLI、OpenCode、Kilo、Codex、Copilot、Antigravity、Trae、Cline、Augment Code)之间。它提供:
|
||||
|
||||
1. **上下文工程** — 结构化产物,为每个任务向 AI 提供所需的全部信息(参见[上下文工程](explanation/context-engineering.md))
|
||||
2. **多 Agent 编排** — 轻量级编排器,以全新上下文窗口派生专用 Agent(参见[多 Agent 编排](explanation/multi-agent-orchestration.md))
|
||||
@@ -115,7 +115,6 @@ GSD Core 是一个**元提示框架**,位于用户与 AI 编码 Agent(Claude
|
||||
- **OpenCode / Kilo:** 斜线命令(连字符形式,`/gsd-command-name`)
|
||||
- **Codex:** 技能(`$gsd-command-name`)
|
||||
- **Copilot:** 斜线命令(连字符形式,`/gsd-command-name`)
|
||||
- **Gemini CLI:** 在 `gsd:` 命名空间下的斜线命令(冒号形式,`/gsd:command-name`)——Gemini 将所有自定义命令置于其插件 id 的命名空间下,因此安装路径会将正文中的每个引用改写为冒号形式
|
||||
- **Antigravity:** 技能
|
||||
|
||||
**命令总数:** 请参阅 [`docs/INVENTORY.md`](INVENTORY.md#commands) 获取权威数量及完整列表。
|
||||
@@ -484,7 +483,6 @@ UI-SPEC.md (per phase) ───────────────────
|
||||
|
||||
- **OpenCode:** `~/.config/opencode/` 全局或 `./.opencode/` 本地
|
||||
- **Kilo:** `~/.config/kilo/` 全局或 `./.kilo/` 本地
|
||||
- **Gemini CLI:** `~/.gemini/` 全局或 `./.gemini/` 本地
|
||||
- **Codex:** `~/.codex/` 全局或 `./.codex/` 本地
|
||||
- **Copilot:** `~/.copilot/` 全局或 `./.github/` 本地
|
||||
- **Antigravity:** 自动检测全局根目录(`~/.gemini/antigravity/`、`~/.gemini/antigravity-ide/` 或 `~/.gemini/antigravity-cli/`)或 `./.agent/` 本地
|
||||
@@ -569,7 +567,7 @@ UI-SPEC.md (per phase) ───────────────────
|
||||
|
||||
安装程序(`bin/install.js`,约 10,700 行)处理以下事项:
|
||||
|
||||
1. **运行时检测** — 交互式提示或 CLI 标志(`--claude`、`--opencode`、`--gemini`、`--kilo`、`--codex`、`--copilot`、`--antigravity`、`--cursor`、`--windsurf`、`--augment`、`--trae`、`--qwen`、`--hermes`、`--codebuddy`、`--cline`、`--all`)
|
||||
1. **运行时检测** — 交互式提示或 CLI 标志(`--claude`、`--opencode`、`--kimi`、`--kilo`、`--codex`、`--copilot`、`--antigravity`、`--cursor`、`--windsurf`、`--augment`、`--trae`、`--qwen`、`--hermes`、`--codebuddy`、`--cline`、`--all`)
|
||||
2. **位置选择** — 全局(`--global`)或本地(`--local`)
|
||||
3. **文件部署** — 复制命令、技能、工作流、参考文档、模板、Agent 和 hook
|
||||
4. **运行时适配** — 按运行时转换文件内容:
|
||||
@@ -578,8 +576,7 @@ UI-SPEC.md (per phase) ───────────────────
|
||||
- Kilo:复用 OpenCode 转换流水线,使用 Kilo 配置路径
|
||||
- Codex:从命令生成 TOML 配置 + 技能
|
||||
- Copilot:映射工具名称(Read→read、Bash→execute 等)
|
||||
- Gemini:调整 hook 事件名称(`AfterTool` 而非 `PostToolUse`)
|
||||
- Antigravity:以技能为主,使用 Google 模型等效项
|
||||
- Antigravity:以技能为主,使用 Google 模型等效项;调整 hook 事件名称(`AfterTool` 而非 `PostToolUse`)
|
||||
- Cursor:以技能为主,带 Cursor 规则引用
|
||||
- Windsurf:以技能为主,带 Windsurf 规则引用
|
||||
- Trae:以技能为主安装到 `~/.trae` / `./.trae`,不含 `settings.json` 或 hook 集成
|
||||
@@ -611,7 +608,7 @@ UI-SPEC.md (per phase) ───────────────────
|
||||
### 架构
|
||||
|
||||
```
|
||||
Runtime Engine (Claude Code / Gemini CLI)
|
||||
Runtime Engine (Claude Code / Antigravity CLI)
|
||||
│
|
||||
├── statusLine event ──► gsd-statusline.js
|
||||
│ Reads: stdin (session JSON)
|
||||
@@ -703,7 +700,6 @@ GSD 通过统一的命令/工作流架构支持多种 AI 编码运行时:
|
||||
| Claude Code | `~/.claude` | `./.claude` | 全局 `skills/gsd-*/SKILL.md`;本地 `commands/gsd/*.md` | `agents/gsd-*.md` | `settings.json` hook 和 statusLine 条目 |
|
||||
| OpenCode | `~/.config/opencode` | `./.opencode` | `command/gsd-*.md` | `agents/gsd-*.md` | `opencode.json` 或 `opencode.jsonc`;无 GSD hook |
|
||||
| Kilo | `~/.config/kilo` | `./.kilo` | `command/gsd-*.md` | `agents/gsd-*.md` | `kilo.json` 或 `kilo.jsonc`;无 GSD hook |
|
||||
| Gemini CLI | `~/.gemini` | `./.gemini` | `commands/gsd/*.toml` | `agents/gsd-*.md` | `settings.json` 功能标志、hook 和 statusline |
|
||||
| Codex | `~/.codex` | `./.codex` | `skills/gsd-*/SKILL.md` | `agents/` 源 markdown 加每个 Agent 的 TOML | `config.toml` `[agents.gsd-*]`、`[features].hooks`(规范;遗留别名 `codex_hooks` 在重新安装时被识别并迁移到新版本,#3566)以及 hook 表 |
|
||||
| GitHub Copilot | `~/.copilot` | `./.github` | `skills/gsd-*/SKILL.md` 和 `copilot-instructions.md` | `.agent.md` 文件 | 无 GSD hook 或 statusline |
|
||||
| Antigravity | 自动检测:`~/.gemini/antigravity`、`~/.gemini/antigravity-ide` 或 `~/.gemini/antigravity-cli` | `./.agent` | `skills/gsd-*/SKILL.md` | `agents/gsd-*.md` | GSD 安装时的 Gemini 风格 `settings.json` hook 条目 |
|
||||
@@ -722,7 +718,7 @@ GSD 通过统一的命令/工作流架构支持多种 AI 编码运行时:
|
||||
|
||||
- Claude Code:Anthropic 斜线命令、设置、hook 和子 Agent 文档。
|
||||
- OpenCode 和 Kilo:OpenCode 配置文档和 Kilo 自定义子 Agent 文档。
|
||||
- Gemini CLI 和 Qwen Code:命令/配置文档;Qwen 命令文档最后更新于 2026-05-06。
|
||||
- Qwen Code:命令/配置文档;Qwen 命令文档最后更新于 2026-05-06。
|
||||
- Codex:OpenAI Codex 文档和 `config-schema.json`;安装程序还支持 Codex 0.124.0 的 Agent 表格格式兼容性。
|
||||
- Copilot、Cursor、Cline、Augment、Hermes 和 CodeBuddy:自定义指令、规则、技能或配置的供应商文档。
|
||||
- Antigravity、Windsurf 和 Trae:来源有限的行。安装程序记录了当前的兼容性垫片,迁移前必须刷新这些来源后再重写其配置。
|
||||
@@ -730,7 +726,7 @@ GSD 通过统一的命令/工作流架构支持多种 AI 编码运行时:
|
||||
### 抽象点
|
||||
|
||||
1. **工具名称映射** — 每个运行时有其自己的工具名称(例如 Claude 的 `Bash` → Copilot 的 `execute`)
|
||||
2. **Hook 事件名称** — Claude 使用 `PostToolUse`,Gemini 使用 `AfterTool`
|
||||
2. **Hook 事件名称** — Claude 使用 `PostToolUse`,Antigravity 使用 `AfterTool`
|
||||
3. **Agent 前置元数据** — 每个运行时有其自己的 Agent 定义格式
|
||||
4. **路径约定** — 每个运行时将配置存储在不同的目录中
|
||||
5. **模型引用** — `inherit` 配置文件让 GSD 推迟到运行时的模型选择
|
||||
|
||||
@@ -7,10 +7,9 @@
|
||||
## 命令语法
|
||||
|
||||
- **Claude Code / Copilot / OpenCode / Kilo:** `/gsd-command-name [args]`(连字符形式)
|
||||
- **Gemini CLI:** `/gsd:command-name [args]`(冒号形式 — Gemini 将命令置于 `gsd:` 命名空间下)
|
||||
- **Codex:** `$gsd-command-name [args]`
|
||||
|
||||
连字符形式与冒号形式是*同一命令在不同运行时中的拼写方式*。无论使用哪种运行时,安装程序都会将正确的形式写入该运行时的命令目录。
|
||||
无论使用哪种运行时,安装程序都会将正确的形式写入该运行时的命令目录。
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -835,7 +835,7 @@ gsd-tools query config-set features.thinking_partner false
|
||||
| `"opus"` / `"sonnet"` / `"haiku"` | 标准层级——运行时解析映射到该层级的活跃运行时模型 |
|
||||
| `"inherit"` | 此阶段的 agent 遵循会话模型(与 `model_profile: "inherit"` 语义相同) |
|
||||
|
||||
如果需要完全限定的模型 ID(`"openai/gpt-5"`、`"google/gemini-2.5-pro"`),请改为按 agent 使用 `model_overrides`。`models.*` 有意仅接受层级别名,以便运行时感知映射在 Codex / OpenCode / Gemini CLI 安装上保持正确。
|
||||
如果需要完全限定的模型 ID(`"openai/gpt-5"`、`"google/gemini-2.5-pro"`),请改为按 agent 使用 `model_overrides`。`models.*` 有意仅接受层级别名,以便运行时感知映射在 Codex / OpenCode / Antigravity CLI 安装上保持正确。
|
||||
|
||||
#### 何时使用哪种方式
|
||||
|
||||
@@ -1058,7 +1058,7 @@ minimal < low < medium < high < xhigh < max
|
||||
|
||||
---
|
||||
|
||||
### 非 Claude 运行时(Codex、OpenCode、Gemini CLI、Kilo)
|
||||
### 非 Claude 运行时(Codex、OpenCode、Antigravity CLI、Kilo)
|
||||
|
||||
> **Codex CLI 最低支持版本:`0.130.0`**(issue [#3562](https://github.com/open-gsd/gsd-core/issues/3562))。
|
||||
>
|
||||
@@ -1097,7 +1097,7 @@ minimal < low < medium < high < xhigh < max
|
||||
|-------|----------|----------|
|
||||
| `false`(默认) | 返回 Claude 别名(`opus`、`sonnet`、`haiku`) | 使用原生 Anthropic API 的 Claude Code |
|
||||
| `true` | 将别名映射到完整 Claude 模型 ID(`claude-opus-4-8`) | 使用需要完整 ID 的 API 的 Claude Code |
|
||||
| `"omit"` | 返回空字符串(运行时选择其默认值) | 非 Claude 运行时(Codex、OpenCode、Gemini CLI、Kilo) |
|
||||
| `"omit"` | 返回空字符串(运行时选择其默认值) | 非 Claude 运行时(Codex、OpenCode、Antigravity CLI、Kilo) |
|
||||
|
||||
### 运行时感知配置文件(#2517)
|
||||
|
||||
|
||||
@@ -1013,7 +1013,7 @@ fix(03-01): correct auth token expiry
|
||||
**目的:** 跨多个 AI 编程智能体运行时运行 GSD。
|
||||
|
||||
**需求:**
|
||||
- REQ-RUNTIME-01:系统必须支持 Claude Code、OpenCode、Gemini CLI、Kilo、Codex、Copilot、Antigravity、Trae、Cline、Augment Code、CodeBuddy、Qwen Code
|
||||
- REQ-RUNTIME-01:系统必须支持 Claude Code、OpenCode、Kilo、Codex、Copilot、Antigravity、Trae、Cline、Augment Code、CodeBuddy、Qwen Code
|
||||
- REQ-RUNTIME-02:安装器必须按运行时转换内容(工具名称、路径、前置元数据)
|
||||
- REQ-RUNTIME-03:安装器必须支持交互式和非交互式(`--claude --global`)模式
|
||||
- REQ-RUNTIME-04:安装器必须支持全局和本地安装
|
||||
@@ -1022,12 +1022,12 @@ fix(03-01): correct auth token expiry
|
||||
|
||||
**运行时转换:**
|
||||
|
||||
| 方面 | Claude Code | OpenCode | Gemini | Kilo | Codex | Copilot | Antigravity | Trae | Cline | Augment | CodeBuddy | Qwen Code |
|
||||
|--------|------------|----------|--------|-------|-------|---------|-------------|------|-------|---------|-----------|-----------|
|
||||
| 命令 | 斜杠命令 | 斜杠命令 | 斜杠命令 | 斜杠命令 | Skills (TOML) | 斜杠命令 | Skills | Skills | Rules | Skills | Skills | Skills |
|
||||
| 智能体格式 | Claude 原生 | `mode: subagent` | Claude 原生 | `mode: subagent` | Skills | 工具映射 | Skills | Skills | Rules | Skills | Skills | Skills |
|
||||
| 钩子事件 | `PostToolUse` | N/A | `AfterTool` | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
|
||||
| 配置 | `settings.json` | `opencode.json(c)` | `settings.json` | `kilo.json(c)` | TOML | Instructions | Config | Config | `.clinerules` | Config | Config | Config |
|
||||
| 方面 | Claude Code | OpenCode | Kilo | Codex | Copilot | Antigravity | Trae | Cline | Augment | CodeBuddy | Qwen Code |
|
||||
|--------|------------|----------|-------|-------|---------|-------------|------|-------|---------|-----------|-----------|
|
||||
| 命令 | 斜杠命令 | 斜杠命令 | 斜杠命令 | Skills (TOML) | 斜杠命令 | Skills | Skills | Rules | Skills | Skills | Skills |
|
||||
| 智能体格式 | Claude 原生 | `mode: subagent` | `mode: subagent` | Skills | 工具映射 | Skills | Skills | Rules | Skills | Skills | Skills |
|
||||
| 钩子事件 | `PostToolUse` | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
|
||||
| 配置 | `settings.json` | `opencode.json(c)` | `kilo.json(c)` | TOML | Instructions | Config | Config | `.clinerules` | Config | Config | Config |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -30,14 +30,13 @@ GSD Core 的叙述性辅助指南——从这里开始了解系统全貌,然
|
||||
|
||||
---
|
||||
|
||||
## 斜杠命令形式(连字符 vs 冒号)
|
||||
## 斜杠命令形式 {#slash-command-forms-hyphen-vs-colon}
|
||||
|
||||
GSD 向所有支持的运行时提供**同一套技能**,但有两种斜杠拼写方式:
|
||||
GSD 向所有支持的运行时提供**同一套技能**,使用连字符形式的斜杠拼写:
|
||||
|
||||
- **连字符形式** — `/gsd-command-name` — 供 Claude Code、Copilot、OpenCode、Kilo、Cursor、Windsurf、Augment、Antigravity 和 Trae 使用。
|
||||
- **冒号形式** — `/gsd:command-name` — **仅供 Gemini CLI 使用**。Gemini 将每个插件的命令置于插件 ID 的命名空间下,因此安装时会在 `--gemini` 安装过程中将所有正文引用和命令文件改写为冒号形式。
|
||||
|
||||
无需手动选择——安装器会为您所针对的每个运行时写入正确形式。在 Gemini 终端上阅读演示时,将每个斜杠命令中 `gsd` 后的连字符替换为冒号即可。
|
||||
安装器会将此形式写入您所针对的每个运行时的命令目录。
|
||||
|
||||
## 命名空间路由入门(`gsd:<namespace>`,v1.40)
|
||||
|
||||
@@ -675,7 +674,7 @@ GSD 子 Agent 在单独的上下文窗口中运行——其工作在进行中对
|
||||
|
||||
完整审计、运行时参考及与 `model_profile` 的组合说明,请参阅捆绑的 `context-budget.md` 参考中的 [MCP 工具模式成本](../../gsd-core/references/context-budget.md#mcp-tool-schema-cost-harness-concern)。
|
||||
|
||||
### 使用非 Claude 运行时(Codex、OpenCode、Gemini CLI、Kilo)
|
||||
### 使用非 Claude 运行时(Codex、OpenCode、Antigravity CLI、Kilo)
|
||||
|
||||
> **Codex CLI 最低支持版本:`0.130.0`**(issue [#3562](https://github.com/open-gsd/gsd-core/issues/3562))。
|
||||
|
||||
@@ -752,7 +751,6 @@ WINDSURF_CONFIG_DIR=~/.codeium/windsurf-next npx @opengsd/gsd-core@latest --wind
|
||||
| 运行时 | 稳定默认值 | 覆盖环境变量 |
|
||||
|---|---|---|
|
||||
| Claude Code | `~/.claude` | `CLAUDE_CONFIG_DIR` |
|
||||
| Gemini CLI | `~/.gemini` | `GEMINI_CONFIG_DIR` |
|
||||
| OpenCode | `XDG_CONFIG_HOME/opencode` | `OPENCODE_CONFIG_DIR` |
|
||||
| Codex | (按 Codex CLI) | `--config-dir` 标志 |
|
||||
| Copilot | `~/.copilot` | `COPILOT_CONFIG_DIR` |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 上下文窗口监视器
|
||||
|
||||
一个后置工具钩子(Claude Code 中的 `PostToolUse`,Gemini CLI 中的 `AfterTool`),当上下文窗口使用率较高时向 Agent 发出警告。
|
||||
一个后置工具钩子(Claude Code 中的 `PostToolUse`,Antigravity CLI 中的 `AfterTool`),当上下文窗口使用率较高时向 Agent 发出警告。
|
||||
|
||||
## 问题背景
|
||||
|
||||
@@ -62,7 +62,7 @@ GSD 的 `/gsd-pause-work` 命令用于保存执行状态。WARNING 消息建议
|
||||
|
||||
两个钩子均在执行 `npx @opengsd/gsd-core` 安装时自动注册——正常情况下无需手动操作。有关钩子配置详情、阈值覆盖以及手动注册示例,请参阅[配置文档](CONFIGURATION.md)。
|
||||
|
||||
简要参考:状态栏钩子在 `settings.json` 中注册为 `statusLine`;上下文监视器(`gsd-context-monitor.js`)注册为 `PostToolUse` 钩子(Gemini CLI 中为 `AfterTool`)。两项配置均使用运行安装程序时的 Node 可执行文件绝对路径。在 Windows PowerShell 中,需在带引号的可执行文件路径前添加 `&` 前缀。
|
||||
简要参考:状态栏钩子在 `settings.json` 中注册为 `statusLine`;上下文监视器(`gsd-context-monitor.js`)注册为 `PostToolUse` 钩子(Antigravity CLI 中为 `AfterTool`)。两项配置均使用运行安装程序时的 Node 可执行文件绝对路径。在 Windows PowerShell 中,需在带引号的可执行文件路径前添加 `&` 前缀。
|
||||
|
||||
## 安全性
|
||||
|
||||
|
||||
@@ -154,7 +154,7 @@ npx @opengsd/gsd-core@latest --codex --global # or --opencode, --kilo, etc.
|
||||
|
||||
## 在非 Anthropic 运行时上使用 GSD Core
|
||||
|
||||
如果您为 Codex、OpenCode、Gemini CLI 或 Kilo 安装了 GSD Core,安装程序已在您的配置中设置了 `resolve_model_ids: "omit"`。这告知 GSD Core 跳过 Anthropic 模型 ID 解析,让运行时选择其自己的默认模型。基本情况下无需手动设置。
|
||||
如果您为 Codex、OpenCode、Antigravity CLI 或 Kilo 安装了 GSD Core,安装程序已在您的配置中设置了 `resolve_model_ids: "omit"`。这告知 GSD Core 跳过 Anthropic 模型 ID 解析,让运行时选择其自己的默认模型。基本情况下无需手动设置。
|
||||
|
||||
**如果您希望在 Codex 上使用分层模型:**
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
## 为什么需要安装程序
|
||||
|
||||
GSD Core 以 Claude Code 原生 frontmatter 格式分发代理和命令文件。每个支持的运行时需要不同的 schema、目录结构和命令调用语法。安装程序负责执行必要的转换——例如,为 OpenCode 转换工具列表和颜色值、为 Codex 写入 TOML 代理条目,以及将所有命令体从连字符格式(`/gsd-update`)重写为冒号格式(`/gsd-update`)以适配 Gemini CLI。
|
||||
GSD Core 以 Claude Code 原生 frontmatter 格式分发代理和命令文件。每个支持的运行时需要不同的 schema、目录结构和命令调用语法。安装程序负责执行必要的转换——例如,为 OpenCode 转换工具列表和颜色值、为 Codex 写入 TOML 代理条目。
|
||||
|
||||
**请勿直接从 `agents/` 或 `commands/` 复制文件。** 这样做会绕过转换过程,导致 schema 验证错误或命令缺失。
|
||||
|
||||
@@ -46,22 +46,6 @@ CLAUDE_CONFIG_DIR=~/.claude-alt npx @opengsd/gsd-core@latest --claude --global
|
||||
|
||||
---
|
||||
|
||||
### Gemini CLI
|
||||
|
||||
```bash
|
||||
npx @opengsd/gsd-core@latest --gemini --global
|
||||
```
|
||||
|
||||
技能文件存放于 `~/.gemini/`。安装程序将所有命令体重写为 Gemini 的冒号命名空间格式(`/gsd-update`、`/gsd-config` 等)。安装后重启 Gemini CLI。
|
||||
|
||||
**覆盖安装目录:**
|
||||
|
||||
```bash
|
||||
GEMINI_CONFIG_DIR=~/.gemini-alt npx @opengsd/gsd-core@latest --gemini --global
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### OpenCode
|
||||
|
||||
```bash
|
||||
|
||||
@@ -90,7 +90,7 @@ GSD 会开启一段简短对话,在编写任何代码之前探索感觉、视
|
||||
|
||||
`--quick` 完全跳过引导对话,直接使用参数作为设计方向。
|
||||
|
||||
### 非 Claude 运行时(Codex、Gemini CLI 等)
|
||||
### 非 Claude 运行时(Codex、Antigravity CLI 等)
|
||||
|
||||
```bash
|
||||
/gsd-sketch --text "onboarding flow"
|
||||
|
||||
Reference in New Issue
Block a user