feat: add Kilo CLI runtime support

This commit is contained in:
Alex Alecu
2026-03-31 15:59:31 +03:00
parent 1421dc07bc
commit ac4836d270
38 changed files with 1191 additions and 292 deletions

View File

@@ -21,7 +21,7 @@
## システム概要
GSDは、ユーザーとAIコーディングエージェント(Claude Code、Gemini CLI、OpenCode、Codex、Copilot、Antigravity)の間に位置する**メタプロンプティングフレームワーク**です。以下の機能を提供します:
GSDは、ユーザーとAIコーディングエージェント(Claude Code、Gemini CLI、OpenCode、Kilo、Codex、Copilot、Antigravity)の間に位置する**メタプロンプティングフレームワーク**です。以下の機能を提供します:
1. **コンテキストエンジニアリング** — タスクごとにAIが必要とするすべてを提供する構造化アーティファクト
2. **マルチエージェントオーケストレーション** — 専門エージェントをフレッシュなコンテキストウィンドウで起動する軽量オーケストレーター
@@ -108,7 +108,7 @@ GSDは、ユーザーとAIコーディングエージェント(Claude Code、G
ユーザー向けのエントリーポイントです。各ファイルにはYAMLフロントマター(name、description、allowed-tools)とワークフローをブートストラップするプロンプト本文が含まれています。コマンドは以下の形式でインストールされます:
- **Claude Code:** カスタムスラッシュコマンド(`/gsd:command-name`)
- **OpenCode:** スラッシュコマンド(`/gsd-command-name`)
- **OpenCode / Kilo:** スラッシュコマンド(`/gsd-command-name`)
- **Codex:** スキル(`$gsd-command-name`)
- **Copilot:** スラッシュコマンド(`/gsd:command-name`)
- **Antigravity:** スキル
@@ -362,6 +362,7 @@ UI-SPEC.md (per phase) ───────────────────
他のランタイムでの同等パス:
- **OpenCode:** `~/.config/opencode/` または `~/.opencode/`
- **Kilo:** `~/.config/kilo/` または `~/.kilo/`
- **Gemini CLI:** `~/.gemini/`
- **Codex:** `~/.codex/`(コマンドの代わりにスキルを使用)
- **Copilot:** `~/.github/`
@@ -425,12 +426,13 @@ UI-SPEC.md (per phase) ───────────────────
インストーラー(`bin/install.js`、約3,000行)は以下を処理します:
1. **ランタイム検出** — インタラクティブプロンプトまたはCLIフラグ(`--claude`、`--opencode`、`--gemini`、`--codex`、`--copilot`、`--antigravity`、`--all`)
1. **ランタイム検出** — インタラクティブプロンプトまたはCLIフラグ(`--claude`、`--opencode`、`--gemini`、`--kilo`、`--codex`、`--copilot`、`--antigravity`、`--all`)
2. **インストール先の選択** — グローバル(`--global`)またはローカル(`--local`)
3. **ファイルデプロイ** — コマンド、ワークフロー、リファレンス、テンプレート、エージェント、フックをコピー
4. **ランタイム適応** — ランタイムごとにファイル内容を変換:
- Claude Code: そのまま使用
- OpenCode: エージェントフロントマターを `name:`、`model: inherit`、`mode: subagent` に変換
- OpenCode: コマンド/エージェントをOpenCode互換のフラットコマンド + サブエージェント形式に変換
- Kilo: OpenCode変換パイプラインをKiloの設定パスで再利用
- Codex: コマンドからTOML設定 + スキルを生成
- Copilot: ツール名をマッピング(Read→read、Bash→executeなど)
- Gemini: フックイベント名を調整(`PostToolUse` の代わりに `AfterTool`)
@@ -505,12 +507,13 @@ Runtime Engine (Claude Code / Gemini CLI)
## ランタイム抽象化
GSDは統一されたコマンド/ワークフローアーキテクチャを通じて6つのAIコーディングランタイムをサポートしています:
GSDは統一されたコマンド/ワークフローアーキテクチャを通じて複数のAIコーディングランタイムをサポートしています:
| ランタイム | コマンド形式 | エージェントシステム | 設定場所 |
|---------|---------------|--------------|-----------------|
| Claude Code | `/gsd:command` | Task起動 | `~/.claude/` |
| OpenCode | `/gsd-command` | サブエージェントモード | `~/.config/opencode/` |
| Kilo | `/gsd-command` | サブエージェントモード | `~/.config/kilo/` |
| Gemini CLI | `/gsd:command` | Task起動 | `~/.gemini/` |
| Codex | `$gsd-command` | スキル | `~/.codex/` |
| Copilot | `/gsd:command` | エージェント委譲 | `~/.github/` |

View File

@@ -7,7 +7,7 @@
## コマンド構文
- **Claude Code / Gemini / Copilot:** `/gsd:command-name [args]`
- **OpenCode:** `/gsd-command-name [args]`
- **OpenCode / Kilo:** `/gsd-command-name [args]`
- **Codex:** `$gsd-command-name [args]`
---

View File

@@ -275,7 +275,7 @@ quick タスクのブランチ設定例:
有効なオーバーライド値: `opus`、`sonnet`、`haiku`、`inherit`、または完全修飾モデル ID(例: `"openai/o3"`、`"google/gemini-2.5-pro"`)。
### 非 Claude ランタイム(Codex、OpenCode、Gemini CLI)
### 非 Claude ランタイム(Codex、OpenCode、Gemini CLI、Kilo)
GSD が非 Claude ランタイム向けにインストールされると、インストーラーは自動的に `~/.gsd/defaults.json` に `resolve_model_ids: "omit"` を設定します。これにより GSD はすべてのエージェントに対して空のモデルパラメータを返し、各エージェントはランタイムで設定されたモデルを使用します。デフォルトの場合、追加のセットアップは不要です。
@@ -310,7 +310,7 @@ GSD が非 Claude ランタイム向けにインストールされると、イ
|----|------|---------|
| `false`(デフォルト) | Claude エイリアス(`opus`、`sonnet`、`haiku`)を返す | Claude Code + ネイティブ Anthropic API |
| `true` | エイリアスを完全な Claude モデル ID(`claude-opus-4-0`)にマッピング | 完全な ID が必要な API を使用する Claude Code |
| `"omit"` | 空文字列を返す(ランタイムがデフォルトを選択) | 非 Claude ランタイム(Codex、OpenCode、Gemini CLI) |
| `"omit"` | 空文字列を返す(ランタイムがデフォルトを選択) | 非 Claude ランタイム(Codex、OpenCode、Gemini CLI、Kilo) |
### プロファイルの設計思想

View File

@@ -861,10 +861,10 @@ fix(03-01): correct auth token expiry
### 36. マルチランタイムサポート
**目的:** 6つの異なる AI コーディングエージェントランタイムで GSD を実行します。
**目的:** 複数の AI コーディングエージェントランタイムで GSD を実行します。
**要件:**
- REQ-RUNTIME-01: システムは Claude Code、OpenCode、Gemini CLI、Codex、Copilot、Antigravity をサポートしなければならない
- REQ-RUNTIME-01: システムは Claude Code、OpenCode、Gemini CLI、Kilo、Codex、Copilot、Antigravity をサポートしなければならない
- REQ-RUNTIME-02: インストーラーはランタイムごとにコンテンツを変換しなければならない(ツール名、パス、フロントマター)
- REQ-RUNTIME-03: インストーラーはインタラクティブおよび非インタラクティブ(`--claude --global`)モードをサポートしなければならない
- REQ-RUNTIME-04: インストーラーはグローバルとローカルの両方のインストールをサポートしなければならない
@@ -873,12 +873,12 @@ fix(03-01): correct auth token expiry
**ランタイム変換:**
| 側面 | Claude Code | OpenCode | Gemini | Codex | Copilot | Antigravity |
|------|------------|----------|--------|-------|---------|-------------|
| コマンド | スラッシュコマンド | スラッシュコマンド | スラッシュコマンド | スキル(TOML) | スラッシュコマンド | スキル |
| エージェント形式 | Claude ネイティブ | `mode: subagent` | Claude ネイティブ | スキル | ツールマッピング | スキル |
| フックイベント | `PostToolUse` | N/A | `AfterTool` | N/A | N/A | N/A |
| 設定 | `settings.json` | `opencode.json(c)` | `settings.json` | TOML | Instructions | Config |
| 側面 | Claude Code | OpenCode | Gemini | Kilo | Codex | Copilot | Antigravity |
|------|------------|----------|--------|-------|-------|---------|-------------|
| コマンド | スラッシュコマンド | スラッシュコマンド | スラッシュコマンド | スラッシュコマンド | スキル(TOML) | スラッシュコマンド | スキル |
| エージェント形式 | Claude ネイティブ | `mode: subagent` | Claude ネイティブ | `mode: subagent` | スキル | ツールマッピング | スキル |
| フックイベント | `PostToolUse` | N/A | `AfterTool` | N/A | N/A | N/A | N/A |
| 設定 | `settings.json` | `opencode.json(c)` | `settings.json` | `kilo.json(c)` | TOML | Instructions | Config |
---

View File

@@ -580,7 +580,7 @@ quick タスクのブランチ設定例:
- **quality** -- すべての意思決定エージェントに Opus、読み取り専用の検証に Sonnet。クォータに余裕があり、重要な作業に使用。
- **balanced** -- プランニング(アーキテクチャの決定が行われる場所)にのみ Opus、それ以外は Sonnet。正当な理由があるデフォルト。
- **budget** -- コードを書くものには Sonnet、リサーチと検証には Haiku。大量作業や重要度の低いフェーズに使用。
- **inherit** -- すべてのエージェントが現在のセッションモデルを使用。モデルを動的に切り替える場合(例:OpenCode の `/model`)や、Claude Code を非 Anthropic プロバイダー(OpenRouter、ローカルモデル)で使用する場合に最適で、予期しない API コストを回避できます。非 Claude ランタイム(Codex、OpenCode、Gemini CLI)では、インストーラーが自動的に `resolve_model_ids: "omit"` を設定します -- [非 Claude ランタイムの使用](#非-claude-ランタイムの使用codexopencodegemini-cli)を参照。
- **inherit** -- すべてのエージェントが現在のセッションモデルを使用。モデルを動的に切り替える場合(例:OpenCode または Kilo の `/model`)や、Claude Code を非 Anthropic プロバイダー(OpenRouter、ローカルモデル)で使用する場合に最適で、予期しない API コストを回避できます。非 Claude ランタイム(Codex、OpenCode、Gemini CLI、Kilo)では、インストーラーが自動的に `resolve_model_ids: "omit"` を設定します -- [非 Claude ランタイムの使用](#非-claude-ランタイムの使用codexopencodegemini-clikilo)を参照。
---
@@ -723,7 +723,7 @@ cd ~/gsd-workspaces/feature-b
budget プロファイルに切り替えてください:`/gsd:set-profile budget`。ドメインに慣れている場合(またはClaude が慣れている場合)は、`/gsd:settings` でリサーチエージェントと plan-check エージェントを無効にしてください。
### 非 Claude ランタイムの使用(Codex、OpenCode、Gemini CLI)
### 非 Claude ランタイムの使用(Codex、OpenCode、Gemini CLI、Kilo)
非 Claude ランタイム用に GSD をインストールした場合、インストーラーがモデル解決を設定済みのため、すべてのエージェントがランタイムのデフォルトモデルを使用します。手動設定は不要です。具体的には、インストーラーが設定に `resolve_model_ids: "omit"` を設定し、GSD に Anthropic モデル ID の解決をスキップしてランタイム独自のデフォルトモデルを使用するよう指示します。
@@ -740,9 +740,9 @@ budget プロファイルに切り替えてください:`/gsd:set-profile budg
}
```
インストーラーは Gemini CLI、OpenCode、Codex 用に `resolve_model_ids: "omit"` を自動設定します。非 Claude ランタイムを手動で設定する場合は、`.planning/config.json` に自分で追加してください。
インストーラーは Gemini CLI、OpenCode、Kilo、Codex 用に `resolve_model_ids: "omit"` を自動設定します。非 Claude ランタイムを手動で設定する場合は、`.planning/config.json` に自分で追加してください。
完全な説明は[設定リファレンス](../CONFIGURATION.md#non-claude-runtimes-codex-opencode-gemini-cli)をご覧ください。
完全な説明は[設定リファレンス](../CONFIGURATION.md#non-claude-runtimes-codex-opencode-gemini-cli-kilo)をご覧ください。
### 非 Anthropic プロバイダーでの Claude Code の使用(OpenRouter、ローカル)