OpenSpec モード
OpenSpec モードは、Claude Code と Codex 上の Chorus プラグインにおける任意の編集スタイルです。有効な間も
AI-DLC ワークフローはいつも通りに動きますが、提案の編集の形が変わります。
自由形式の Markdown を Chorus に直接打ち込むのではなく、エージェントが
openspec CLI でディスク上に構造化ファイルを書き、それらを
提案の文書ドラフトへミラーします。ディスク上のファイルが作業コピーで、Chorus のドラフトはレビュー担当が
提案ページで読む忠実なミラーです。
OpenSpec が存在しないときは何も変わりません — プラグインは従来どおり自由形式のドラフトを編集します。 OpenSpec モードは Claude Code と Codex のプラグインにのみ同梱され、スタンドアロンのスキル配布物では サポートされません。
いつ有効になるか
Section titled “いつ有効になるか”検出はセッション開始時に一度だけ走ります。OpenSpec モードがオンになるには、以下の3 つの信号がすべて 成立する必要があります。
CHORUS_OPENSPEC_MODEがoffに設定されていない — 明示的なオプトアウトは常に優先されます。- リポジトリのルートに
openspec/ディレクトリが存在する — 「このリポジトリは OpenSpec を使う」という 信号で、openspec initによって作成されます。 openspecCLI がPATHにある — このモードは変更のスキャフォールド・検証・アーカイブに CLI を必要と するため、ディレクトリだけでは足りません。
3 つとも成立すると、接続トーストがモードのオンを報告します。
Chorus connected at <your Chorus URL> (OpenSpec Enabled)openspec/ ディレクトリは存在するが CLI が見つからない場合、トーストは代わりにインストールのヒントを
表示し、エージェントは自由形式の経路にとどまります。
Chorus connected at <your Chorus URL> (OpenSpec repo detected — install with: npm i -g @fission-ai/openspec)インストールと初期化
Section titled “インストールと初期化”OpenSpec は Fission AI 製の Node CLI です。まずグローバルにインストールし、次にエージェントが提案を編集する リポジトリで初期化します。
npm install -g @fission-ai/openspecopenspec initopenspec init は openspec/ 作業ディレクトリ(changes/、specs/、設定と説明ファイル)を作成します。
その後、検出が新しい 2 つの信号 — openspec/ ディレクトリと CLI — を拾えるよう、エージェントの
セッションを再起動してください。
プラグイン自体のインストールは、実行時ごとに Claude Code と Codex のページで扱っています。
proposal、develop、yolo での変化
Section titled “proposal、develop、yolo での変化”モードが有効な間、proposal、develop、yolo の各スキルは kebab-case のスラッグでディスク上に変更を編集し、 3 種類のファイルを Chorus 提案の文書ドラフトへミラーします。
| ディスク上のファイル | ミラー先の文書 |
|---|---|
openspec/changes/<slug>/proposal.md | PRD |
openspec/changes/<slug>/design.md | 技術設計 |
openspec/changes/<slug>/specs/<capability>/spec.md | 仕様(能力ごとに 1 つ) |
openspec/changes/<slug>/tasks.md はミラーされません。Chorus の課題ドラフトが課題の唯一の真実の
源であるため、OpenSpec の課題リストはディスク上に残されます。
後の実行が変更を復元できるよう、提案の説明には正確な 1 行が付きます。
OpenSpec change slug: <slug>ミラーはバイト単位で忠実です — プラグインは各ファイルのバイト列をドラフトへ流し込み、モデルに内容を
打ち直させないため、ローカルファイルと Chorus ドラフトは同一に保たれます。これを自分で実行することは
ありません。プラグインのスキルが、ネイティブ MCP クライアント chorus mcp call <tool> --arg-file content=<file>
を使って処理し、chorus CLI が PATH にないときにのみ、従来の chorus-api.sh / chorus-mcp-call.sh
ラッパーにフォールバックします。厳密な契約(そのエラー時停止ルールと承認後の再同期)は、ここで再掲する
のではなく権威ある情報源に記載されています。docs/OPENSPEC_MODE.md とプラグインスキル
public/chorus-plugin/skills/openspec-aware/SKILL.md を参照してください。
openspec archive はいつ走るか
Section titled “openspec archive はいつ走るか”openspec archive は変更の一番最後まで先送りされます。変更の最後の課題が検証された後、プラグインは
エージェントに次の実行を促します。
openspec archive <slug>アーカイブは変更を openspec/changes/ から移し、その仕様デルタを openspec/specs/ 下の長期仕様へ
マージします。その後プラグインは、更新された openspec/specs/<capability>/spec.md ファイルを、対応する
Chorus 文書へ逆方向にミラーします。それまでは変更は進行中のままで、Chorus はデルタ仕様しか目にしないため、
半端にマージされた状態を考える必要はありません。
オプトアウト
Section titled “オプトアウト”2 つのスイッチ、優先順位の順に。
-
enableOpenSpecuserConfig トグル(Claude Code プラグインのみ、既定でオン)。プラグインの インストール設定でこれをオフにすると、アーカイブのリマインダーを含め、プラグイン全体でモードを無効に できます。これは OpenSpec が未インストールなのと同等です。 -
CHORUS_OPENSPEC_MODE=off環境変数(両方のプラグイン)。シェル単位で効く、CI にやさしい オプトアウトです。openspec/ディレクトリと CLI の両方が存在しても、自由形式モードを強制します。Terminal window export CHORUS_OPENSPEC_MODE=off
Codex プラグインには userConfig の面がないため、そこでは環境変数だけが効きます。どちらの方法でオプト
アウトしても、ディスク上の既存の openspec/ ディレクトリはそのまま残され、新しい提案にスラッグ行が
加わることもありません。挙動は OpenSpec が未インストールのホストと完全に同じです。
エージェント向け
Section titled “エージェント向け”- トリガー。 proposal、develop、yolo の各スキルは、SessionStart コンテキストの
## OpenSpec ModeセクションからCHORUS_OPENSPEC_ACTIVEを読み、それに応じて分岐します — 再検出はしません。CHORUS_OPENSPEC_ACTIVE=1のときはディスク上で編集してミラーし、0のときは自由形式の経路をたどります。 変更の最後の課題が検証された後、PostToolUse フックがopenspec archive <slug>のリマインダーを 注入します。 - 制約。 文書ドラフトのミラー呼び出しはすべて、
chorus mcp call <tool> '<json>' --arg-file content=<file>(ネイティブ MCP クライアント)を通し、ファイルのバイト列をそのままストリームする必要があります。chorusがPATHにないときにのみ、従来のchorus-api.sh mcp-tool/chorus-mcp-call.shラッパーに フォールバックします。文書の内容をインラインで打ち直しては決してならず、エラーがあれば停止します。tasks.mdはミラーしないでください。提案の説明には正確なOpenSpec change slug: <slug>の 1 行を 付ける必要があります。モードがオフのときは、openspec/changes/をスキャフォールドせず、スラッグ行も 加えないでください。スタンドアロンのpublic/skill/配布物は OpenSpec モードをサポートしません。 - 出典。
docs/OPENSPEC_MODE.md(ユーザー向けの概要と検出の契約)、public/chorus-plugin/skills/openspec-aware/SKILL.md(Claude Code の権威あるスキル)、およびplugins/chorus/skills/openspec-aware/SKILL.md(Codex の権威あるスキル)。