Merge branch 'next' into kimi-runtime-support
This commit is contained in:
@@ -42,6 +42,7 @@ GSD uses a multi-agent architecture where thin orchestrators (workflow files) sp
|
||||
| **Parallelism** | 4 instances (stack, features, architecture, pitfalls) |
|
||||
| **Tools** | Read, Write, Bash, Grep, Glob, WebSearch, WebFetch, mcp (context7) |
|
||||
| **Model (balanced)** | Sonnet |
|
||||
| **Color** | Cyan |
|
||||
| **Produces** | `.planning/research/STACK.md`, `FEATURES.md`, `ARCHITECTURE.md`, `PITFALLS.md` |
|
||||
|
||||
**Capabilities:**
|
||||
@@ -61,6 +62,7 @@ GSD uses a multi-agent architecture where thin orchestrators (workflow files) sp
|
||||
| **Parallelism** | 4 instances (same focus areas as project researcher) |
|
||||
| **Tools** | Read, Write, Bash, Grep, Glob, WebSearch, WebFetch, mcp (context7) |
|
||||
| **Model (balanced)** | Sonnet |
|
||||
| **Color** | Cyan |
|
||||
| **Produces** | `{phase}-RESEARCH.md` |
|
||||
|
||||
**Capabilities:**
|
||||
@@ -80,7 +82,7 @@ GSD uses a multi-agent architecture where thin orchestrators (workflow files) sp
|
||||
| **Parallelism** | Single instance |
|
||||
| **Tools** | Read, Write, Bash, Grep, Glob, WebSearch, WebFetch, mcp (context7) |
|
||||
| **Model (balanced)** | Sonnet |
|
||||
| **Color** | `#E879F9` (fuchsia) |
|
||||
| **Color** | Purple |
|
||||
| **Produces** | `{phase}-UI-SPEC.md` |
|
||||
|
||||
**Capabilities:**
|
||||
@@ -268,7 +270,7 @@ GSD uses a multi-agent architecture where thin orchestrators (workflow files) sp
|
||||
| **Parallelism** | Single instance |
|
||||
| **Tools** | Read, Bash, Glob, Grep |
|
||||
| **Model (balanced)** | Sonnet |
|
||||
| **Color** | `#22D3EE` (cyan) |
|
||||
| **Color** | Cyan |
|
||||
| **Produces** | BLOCK/FLAG/PASS verdict |
|
||||
|
||||
---
|
||||
@@ -306,6 +308,7 @@ GSD uses a multi-agent architecture where thin orchestrators (workflow files) sp
|
||||
| **Parallelism** | Single instance |
|
||||
| **Tools** | Read, Write, Edit, Bash, Grep, Glob |
|
||||
| **Model (balanced)** | Sonnet |
|
||||
| **Color** | Purple |
|
||||
| **Produces** | Test files, updated `VALIDATION.md` |
|
||||
|
||||
**Key behaviors:**
|
||||
@@ -325,7 +328,7 @@ GSD uses a multi-agent architecture where thin orchestrators (workflow files) sp
|
||||
| **Parallelism** | Single instance |
|
||||
| **Tools** | Read, Write, Bash, Grep, Glob |
|
||||
| **Model (balanced)** | Sonnet |
|
||||
| **Color** | `#F472B6` (pink) |
|
||||
| **Color** | Pink |
|
||||
| **Produces** | `{phase}-UI-REVIEW.md` with scores |
|
||||
|
||||
**6 Audit Pillars (scored 1-4):**
|
||||
@@ -401,7 +404,7 @@ runs its default whole-repo scan.
|
||||
| **Parallelism** | Single instance |
|
||||
| **Tools** | Read |
|
||||
| **Model (balanced)** | Sonnet |
|
||||
| **Color** | Magenta |
|
||||
| **Color** | Purple |
|
||||
| **Produces** | `USER-PROFILE.md`, `CLAUDE.md` profile section |
|
||||
|
||||
**Behavioral Dimensions:**
|
||||
@@ -467,7 +470,7 @@ Communication style, decision patterns, debugging approach, UX preferences, vend
|
||||
| **Parallelism** | Single instance |
|
||||
| **Tools** | Read, Write, Edit, Bash, Glob, Grep |
|
||||
| **Model (balanced)** | Sonnet |
|
||||
| **Color** | `#EF4444` (red) |
|
||||
| **Color** | Red |
|
||||
| **Produces** | `{phase}-SECURITY.md` |
|
||||
|
||||
**Key behaviors:**
|
||||
@@ -493,7 +496,7 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
|
||||
| **Parallelism** | Single instance |
|
||||
| **Tools** | Read, Bash, Glob, Grep, Write |
|
||||
| **Model (balanced)** | Sonnet |
|
||||
| **Color** | Magenta |
|
||||
| **Color** | Purple |
|
||||
| **Produces** | `PATTERNS.md` in the phase directory |
|
||||
|
||||
**Key behaviors:**
|
||||
@@ -533,7 +536,7 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
|
||||
| **Parallelism** | Typically single instance per review scope |
|
||||
| **Tools** | Read, Write, Bash, Grep, Glob |
|
||||
| **Model (balanced)** | Sonnet |
|
||||
| **Color** | `#F59E0B` (amber) |
|
||||
| **Color** | Orange |
|
||||
| **Produces** | `REVIEW.md` in the phase directory |
|
||||
|
||||
**Key behaviors:**
|
||||
@@ -553,7 +556,7 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
|
||||
| **Parallelism** | Single instance |
|
||||
| **Tools** | Read, Edit, Write, Bash, Grep, Glob |
|
||||
| **Model (balanced)** | Sonnet |
|
||||
| **Color** | `#10B981` (emerald) |
|
||||
| **Color** | Green |
|
||||
| **Produces** | `REVIEW-FIX.md`; one atomic git commit per applied fix |
|
||||
|
||||
**Key behaviors:**
|
||||
@@ -573,7 +576,7 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
|
||||
| **Parallelism** | Single instance (sequential with domain-researcher / eval-planner) |
|
||||
| **Tools** | Read, Write, Bash, Grep, Glob, WebFetch, WebSearch, mcp (context7) |
|
||||
| **Model (balanced)** | Sonnet |
|
||||
| **Color** | `#34D399` (green) |
|
||||
| **Color** | Green |
|
||||
| **Produces** | Sections 3–4b of `AI-SPEC.md` (framework quick reference + implementation guidance) |
|
||||
|
||||
**Key behaviors:**
|
||||
@@ -592,7 +595,7 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
|
||||
| **Parallelism** | Single instance |
|
||||
| **Tools** | Read, Write, Bash, Grep, Glob, WebSearch, WebFetch, mcp (context7) |
|
||||
| **Model (balanced)** | Sonnet |
|
||||
| **Color** | `#A78BFA` (violet) |
|
||||
| **Color** | Purple |
|
||||
| **Produces** | Section 1b of `AI-SPEC.md` |
|
||||
|
||||
**Key behaviors:**
|
||||
@@ -611,7 +614,7 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
|
||||
| **Parallelism** | Single instance (sequential after domain-researcher) |
|
||||
| **Tools** | Read, Write, Bash, Grep, Glob, AskUserQuestion |
|
||||
| **Model (balanced)** | Sonnet |
|
||||
| **Color** | `#F59E0B` (amber) |
|
||||
| **Color** | Orange |
|
||||
| **Produces** | Sections 5–7 of `AI-SPEC.md` (Evaluation Strategy, Guardrails, Production Monitoring) |
|
||||
|
||||
**Required reading:** `gsd-core/references/ai-evals.md` (evaluation framework).
|
||||
@@ -632,7 +635,7 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
|
||||
| **Parallelism** | Single instance |
|
||||
| **Tools** | Read, Write, Bash, Grep, Glob |
|
||||
| **Model (balanced)** | Sonnet |
|
||||
| **Color** | `#EF4444` (red) |
|
||||
| **Color** | Red |
|
||||
| **Produces** | `EVAL-REVIEW.md` with dimension scores, findings, and remediation guidance |
|
||||
|
||||
**Required reading:** `gsd-core/references/ai-evals.md`.
|
||||
@@ -653,7 +656,7 @@ Twelve additional agents ship under `agents/gsd-*.md` and are used by specialty
|
||||
| **Parallelism** | Single instance (interactive) |
|
||||
| **Tools** | Read, Bash, Grep, Glob, WebSearch, AskUserQuestion |
|
||||
| **Model (balanced)** | Sonnet |
|
||||
| **Color** | `#38BDF8` (sky blue) |
|
||||
| **Color** | Cyan |
|
||||
| **Produces** | Scored ranked recommendation (structured return to orchestrator) |
|
||||
|
||||
**Required reading:** `gsd-core/references/ai-frameworks.md` (decision matrix).
|
||||
|
||||
@@ -812,7 +812,7 @@ The migration-specific ownership and source snapshots live in
|
||||
| Trae | `~/.trae` | `./.trae` | `skills/gsd-*/SKILL.md` | `agents/gsd-*.md` | Rule references under `rules/`; no GSD hooks |
|
||||
| Qwen Code | `~/.qwen` | `./.qwen` | `skills/gsd-*/SKILL.md` | `agents/gsd-*.md` | Common GSD settings and hook entries where supported |
|
||||
| Hermes Agent | `~/.hermes` | `./.hermes` | `skills/gsd/DESCRIPTION.md` plus `skills/gsd/gsd-*/SKILL.md` | `agents/gsd-*.md` | Common GSD settings and hook entries where supported |
|
||||
| CodeBuddy | `~/.codebuddy` | `./.codebuddy` | `skills/gsd-*/SKILL.md` | `agents/gsd-*.md` | Common GSD settings and hook entries where supported |
|
||||
| CodeBuddy | `~/.codebuddy` | `./.codebuddy` | `skills/gsd-*/SKILL.md` (`user-invocable: false`) | `agents/gsd-*.md` | `/gsd-*` slash commands under `commands/`; common GSD settings and hook entries where supported |
|
||||
| Cline | `~/.cline` | project root | `.clinerules` | Rules only | No GSD hooks or statusline |
|
||||
|
||||
### Upstream Contract Sources
|
||||
|
||||
@@ -12,6 +12,14 @@
|
||||
|
||||
The hyphen and colon forms are *runtime-specific spellings of the same command*. Whichever runtime you're on, the installer writes the correct form into your runtime's command directory.
|
||||
|
||||
### Skill Runtime Behavior (Claude Code)
|
||||
|
||||
Heavy workflow skills (`/gsd-plan-phase`, `/gsd-execute-phase`, `/gsd-autonomous`) carry `context: fork` in their frontmatter. On Claude Code, this runs each skill in an isolated subagent context window, protecting the main session's context budget. The skills also declare `effort: xhigh`, signalling maximum token budget to the runtime.
|
||||
|
||||
Quick-status skills (`/gsd-progress`, `/gsd-stats`) declare `effort: low`, directing the runtime to use a minimal token budget for fast reads.
|
||||
|
||||
These fields are Claude Code–specific frontmatter. On runtimes that do not recognise them (Gemini, Codex, Cursor, etc.) the fields are silently ignored — existing behaviour is unchanged.
|
||||
|
||||
---
|
||||
|
||||
## Namespace Meta-Skills
|
||||
|
||||
@@ -2290,7 +2290,7 @@ Test suite that scans all agent, workflow, and command files for embedded inject
|
||||
|
||||
**Requirements:**
|
||||
- REQ-CLINE-02: Cline install MUST write `.clinerules` to `~/.cline/` (global) or `./.cline/` (local). No custom slash commands — rules-based integration only. Flag: `--cline`.
|
||||
- REQ-CODEBUDDY-01: CodeBuddy install MUST deploy skills to `~/.codebuddy/skills/gsd-*/SKILL.md`. Flag: `--codebuddy`.
|
||||
- REQ-CODEBUDDY-01: CodeBuddy install MUST deploy skills to `~/.codebuddy/skills/gsd-*/SKILL.md` (emitted `user-invocable: false`), `/gsd-*` slash commands to `~/.codebuddy/commands/gsd-*.md`, and subagents to `~/.codebuddy/agents/gsd-*.md`. The commands surface is the sole `/` menu entry point. No `mcp.json` is written (gsd ships no MCP server). Flag: `--codebuddy`.
|
||||
- REQ-QWEN-01: Qwen Code install MUST deploy skills to `~/.qwen/skills/gsd-*/SKILL.md`, following the open standard used by Claude Code 2.1.88+. `QWEN_CONFIG_DIR` env var overrides the default path. Flag: `--qwen`.
|
||||
|
||||
**Runtime summary:**
|
||||
|
||||
@@ -688,6 +688,16 @@ To assign different models on a non-Claude runtime:
|
||||
}
|
||||
```
|
||||
|
||||
#### Codex skill picker and agent scheduling (#774)
|
||||
|
||||
GSD enriches each Codex install with two additional artifacts:
|
||||
|
||||
- **Skill TUI chip** — each installed `gsd-*` skill directory contains an `agents/openai.yaml` file that populates the Codex `/skills` picker with a human-readable display name and a short description, so you can browse and invoke GSD skills from the Codex TUI without typing the full skill name.
|
||||
|
||||
- **Flex-tier scheduling** — light-tier agents (haiku-equivalent) emit `service_tier = "flex"` and `model_verbosity = "low"` in their agent TOML. The Codex scheduler routes these agents to the flex tier (lower cost, background processing) and suppresses verbose token output.
|
||||
|
||||
Both enrichments are written automatically at install time and require no manual configuration. Requires Codex CLI ≥ 0.130.0.
|
||||
|
||||
#### Switching from Claude to Codex with one config change (#2517)
|
||||
|
||||
```json
|
||||
@@ -699,6 +709,15 @@ To assign different models on a non-Claude runtime:
|
||||
|
||||
See [Runtime-Aware Profiles](CONFIGURATION.md#runtime-aware-profiles-2517).
|
||||
|
||||
#### Per-runtime command enrichment
|
||||
|
||||
When generating artifacts, the installer adapts GSD commands to each runtime's native command schema:
|
||||
|
||||
- **Gemini CLI** — generated TOML commands use Gemini's `{{args}}` placeholder (translated from Claude's `$ARGUMENTS`) so typed arguments interpolate into the prompt, and `/gsd:progress` injects live project state via a fixed `!{cat .planning/STATE.md 2>/dev/null}` shell block (no interpolated input, so no injection risk; Gemini shows its standard confirmation dialog).
|
||||
- **Qwen Code** — main-loop skills carry Qwen's numeric `priority` field so the most-used workflows (e.g. `new-project`, `plan-phase`, `execute-phase`) sort first in the `/skills` list; utility skills are left unset. Higher values sort earlier; the field affects only the `/skills` list order.
|
||||
|
||||
See [How to install GSD Core on your runtime](how-to/install-on-your-runtime.md) for the full per-runtime details.
|
||||
|
||||
### Manual install / no-Node.js setup
|
||||
|
||||
If you cannot run the GSD installer, you cannot use the source files in `agents/` directly — they are in Claude Code's native frontmatter format. For OpenCode, two transformations are required:
|
||||
@@ -727,12 +746,51 @@ npx @opengsd/gsd-core --cline --local # this project only
|
||||
npx @opengsd/gsd-core --codebuddy --global
|
||||
```
|
||||
|
||||
GSD installs four surfaces for CodeBuddy: `/gsd-*` slash commands in `~/.codebuddy/commands/`, subagents in `~/.codebuddy/agents/`, model-invocable skills in `~/.codebuddy/skills/`, and `settings.json` hooks. The skills are emitted with `user-invocable: false` so the slash commands are the single `/` menu surface (no duplicate entries).
|
||||
|
||||
### Installing for Qwen Code
|
||||
|
||||
```bash
|
||||
npx @opengsd/gsd-core --qwen --global
|
||||
```
|
||||
|
||||
### Installing as a Gemini CLI extension (#775)
|
||||
|
||||
GSD ships a `gemini-extension.json` extension manifest at the repository root, so
|
||||
Gemini CLI users can install, update, and remove GSD through Gemini's own
|
||||
extension lifecycle — and have it show up in `gemini extensions list`:
|
||||
|
||||
```bash
|
||||
# Install (Gemini clones the repo and copies the extension)
|
||||
gemini extensions install https://github.com/open-gsd/gsd-core
|
||||
|
||||
# Update to the latest released manifest version
|
||||
gemini extensions update gsd-core
|
||||
|
||||
# Remove
|
||||
gemini extensions uninstall gsd-core
|
||||
```
|
||||
|
||||
For local development against a checkout, symlink it instead of copying:
|
||||
|
||||
```bash
|
||||
gemini extensions link /path/to/gsd-core
|
||||
```
|
||||
|
||||
**What the extension delivers today:** it loads GSD's operating context
|
||||
(`GEMINI.md`) into every Gemini session in the project, and gives you the
|
||||
discoverable install/update/remove lifecycle above. The `/gsd:*` slash commands,
|
||||
agents, and hooks are still installed via the dedicated installer:
|
||||
|
||||
```bash
|
||||
npx @opengsd/gsd-core --gemini --global
|
||||
```
|
||||
|
||||
The two paths are complementary and additive — installing the extension does not
|
||||
change or replace the `npx gsd-core --gemini` install, and either can be used on
|
||||
its own. (Slash-command/agent/hook projection into the extension package itself
|
||||
is a planned follow-up.)
|
||||
|
||||
### Installing for Prerelease Editions
|
||||
|
||||
Set the runtime's `*_CONFIG_DIR` env var to the prerelease directory before running the installer:
|
||||
@@ -780,6 +838,35 @@ See [docs/manual-update.md](manual-update.md) for a step-by-step manual update p
|
||||
|
||||
When a workflow fails in a non-obvious way, run `/gsd-forensics` to generate a diagnostic report covering git history anomalies, artifact integrity, and state inconsistencies. Output goes to `.planning/forensics/`.
|
||||
|
||||
### Pre-populated Permissions (Claude Code)
|
||||
|
||||
Since v1.3.1, the installer pre-populates `~/.claude/settings.json` (or
|
||||
`settings.local.json` for local installs) with the core permissions GSD needs:
|
||||
|
||||
```json
|
||||
{
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"Bash(npx gsd-core *)",
|
||||
"Read(.planning/*)",
|
||||
"Write(.planning/*)",
|
||||
"Read(STATE.md)",
|
||||
"Write(STATE.md)"
|
||||
],
|
||||
"deny": [
|
||||
"Read(.env)",
|
||||
"Read(.env.*)",
|
||||
"Read(.secrets)"
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
These entries eliminate first-run approval prompts for GSD's own tool calls. The
|
||||
merge is non-destructive — your existing permissions are preserved and GSD entries
|
||||
are only appended. Uninstalling GSD removes exactly these entries and preserves
|
||||
any others.
|
||||
|
||||
### Executor Subagent Gets "Permission denied" on Bash Commands
|
||||
|
||||
Add the required patterns to `~/.claude/settings.json`. Core patterns needed for all stacks:
|
||||
|
||||
@@ -96,6 +96,11 @@ npx @opengsd/gsd-core@latest --gemini --global
|
||||
|
||||
Skills land in `~/.gemini/`. The installer rewrites all command bodies to Gemini's colon namespace (`/gsd:update`, `/gsd:config`, etc.). Restart Gemini CLI after install.
|
||||
|
||||
The installer also enriches the generated TOML commands with two native Gemini custom-command features:
|
||||
|
||||
- **`{{args}}` interpolation** — every command that references arguments inline is emitted with Gemini's `{{args}}` placeholder (translated from Claude's `$ARGUMENTS`), so flags and free-text you type after the command name are interpolated into the prompt body rather than ignored.
|
||||
- **`!{...}` live-state injection** — `/gsd:progress` injects the current contents of `.planning/STATE.md` via a fixed `!{cat .planning/STATE.md 2>/dev/null}` shell block, giving Gemini live project state without relying on session memory. The shell block contains no interpolated input, so there is no injection risk; Gemini still shows its standard confirmation dialog the first time the command runs in a session.
|
||||
|
||||
**Override the install directory:**
|
||||
|
||||
```bash
|
||||
@@ -104,6 +109,21 @@ GEMINI_CONFIG_DIR=~/.gemini-alt npx @opengsd/gsd-core@latest --gemini --global
|
||||
|
||||
---
|
||||
|
||||
### Gemini CLI — native extension install (#775)
|
||||
|
||||
GSD also ships a `gemini-extension.json` extension manifest, so you can manage GSD through Gemini's own extension lifecycle and see it in `gemini extensions list`:
|
||||
|
||||
```bash
|
||||
gemini extensions install https://github.com/open-gsd/gsd-core # install
|
||||
gemini extensions update gsd-core # update
|
||||
gemini extensions uninstall gsd-core # remove
|
||||
gemini extensions link /path/to/gsd-core # dev: symlink a checkout
|
||||
```
|
||||
|
||||
The extension loads GSD's operating context (`GEMINI.md`) into every session and gives you the discoverable install/update/remove lifecycle. The `/gsd:*` slash commands, agents, and hooks are installed separately by `npx @opengsd/gsd-core --gemini --global` (above). The two paths are complementary and additive — neither replaces the other, and slash-command projection into the extension is a planned follow-up.
|
||||
|
||||
---
|
||||
|
||||
### OpenCode
|
||||
|
||||
```bash
|
||||
@@ -146,6 +166,19 @@ Skills land in `~/.codex/skills/gsd-*/SKILL.md`. Agents are written with per-age
|
||||
|
||||
**Minimum supported version:** Codex CLI 0.130.0. Earlier versions had additional skill-root scanning that can produce duplicate listings.
|
||||
|
||||
**Hook coverage**
|
||||
|
||||
GSD registers the following Codex hook events automatically on install (requires Codex CLI 0.137.0+ for the stable hook-event schema):
|
||||
|
||||
| Event | Hook | Purpose |
|
||||
|---|---|---|
|
||||
| `SessionStart` | `gsd-check-update.js` | Update check at session open; Windows installs also emit a `commandWindows` field pointing to the `.cmd` shim so Codex picks the correct executor on Windows without requiring per-OS config regeneration |
|
||||
| `SubagentStart` | `gsd-context-monitor.js` | Inject context / GSD_AGENT_NAME awareness at subagent open |
|
||||
| `Stop` | `gsd-context-monitor.js` | Context headroom tracking before model stop |
|
||||
| `PostToolUse` | `gsd-context-monitor.js` | Mirror the context-monitor coverage available in Claude Code |
|
||||
|
||||
All registered hooks are managed by GSD and are removed cleanly on `--uninstall`.
|
||||
|
||||
---
|
||||
|
||||
### Kimi CLI
|
||||
@@ -303,7 +336,7 @@ directory is created for local scope.
|
||||
npx @opengsd/gsd-core@latest --codebuddy --global
|
||||
```
|
||||
|
||||
Skills land in `~/.codebuddy/skills/gsd-*/SKILL.md`.
|
||||
GSD installs four surfaces. Slash command definitions land in `~/.codebuddy/commands/gsd-*.md` and appear as `/gsd-help`, `/gsd-phase`, `/gsd-ship`, etc. in the `/` menu. Subagents land in `~/.codebuddy/agents/gsd-*.md`. Skills land in `~/.codebuddy/skills/gsd-*/SKILL.md` — emitted with `user-invocable: false` so they stay out of the `/` menu (the commands surface is the sole `/` entry point) and remain available for model invocation. CodeBuddy hooks are written to `settings.json`. No `mcp.json` is written: GSD ships no MCP server.
|
||||
|
||||
---
|
||||
|
||||
@@ -317,6 +350,8 @@ npx @opengsd/gsd-core@latest --qwen --global
|
||||
|
||||
Skills land in `~/.qwen/skills/gsd-*/SKILL.md`.
|
||||
|
||||
GSD's main-loop skills are emitted with Qwen's optional numeric `priority` frontmatter field so the most-used workflows surface first in the `/skills` TUI list. Higher values sort earlier (per Qwen's skills spec), so core commands such as `/skills` for `new-project` (100), `plan-phase` (90), and `execute-phase` (85) appear above utility skills, which are left unset (default 0). This affects only the `/skills` list order — slash-command completion and `/help` remain alphabetical.
|
||||
|
||||
**Override the install directory:**
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user