cc-sdd から移行する¶
このページは、既存の.kiroプロジェクトを SpecBind へ移行するための手順です。
SpecBind が自動で変換するのは、意味を機械的に確認できる入力だけです。Milestone の範囲、Design のトレーサビリティ、成果物の言語など、人の判断が要る部分に行き当たった場合、CLI は推測せずに停止します。そこから先は、エージェントに支援してもらう移行に切り替えます。
プレビュー
旧 Spec などの意味判断には、エージェント支援の経路を使います。specbind installは
.kiroを変換しませんが、読み取り専用の計画を確認した後、合意した言語とエージェントに対応する SpecBind の移行先を準備するために使えます。移行完了の判定と旧資産の退役には、
必ずこのページの移行判断の受理と--applyへ戻ってください。
安全境界¶
移行では、次の境界を必ず守ります。
- 最初に、Git の状態と変更内容を確認してから始める。
- 読み取り専用の計画とエージェント支援作業の間は、移行元の
.kiroツリーを削除・移動・ 上書きしない。最終--applyだけが Git 追跡を確認して退役させる。 - cc-sdd の承認を、SpecBind の Gate の承認証拠としてコピーしない。
- 分からない Milestone、リリース履歴、Contract、Requirement の対応関係を作り話で 埋めない。
- 旧
kiro-*のエージェント資産は、変換後の検証とあなたの確認が済むまで残す。 - 最終退役する
.kiro、.cc-sdd.json、旧エージェント資産、移行判断の状態ファイルが Git で追跡されていなければ停止する。無視対象のファイルも削除しない。 - CLI が所有する状態は、対応する SpecBind コマンドがある限り手編集しない。
1. 読み取り専用の計画を取得する¶
対象プロジェクトのルートで実行します。
すべてを一意に変換できる場合、CLI は作成・変換・退役する予定の対象を表示します。--applyは計画を再計算し、コミット済みで未コミットの変更がないことを確認してから、
既知の自動変換だけを適用します。退役対象が Git 未追跡なら、回復できない削除を避けるため適用を停止します。
MANUAL_MIGRATION_REQUIREDが返ったときは、--applyで押し切ろうとしないでください。CLI が表示した診断コード、対象パス、理由を控えて、次の手順へ進みます。
現在の自動適用範囲は、.cc-sdd.jsonからの SpecBind のインストールと、Codex ・ Claude Code の既知のkiro-*スキルおよび Git 追跡済み cc-sdd 移行元の最終退役です。旧 Spec が 1 件でもあれば
MIGRATE_SPEC_CONVERSION_REQUIREDで停止し、Milestone や Gate の承認証拠を推測しません。
2. エージェントに依頼する¶
Codex または Claude Code に、CLI の出力全体とこのページの URL を渡します。
次の公式ガイドを読み、このリポジトリのcc-sdd移行を進めてください。
最初にspecbind migrate cc-sddの診断と対象ファイルを確認し、ガイドの停止条件を
守ってください。証明できない承認・完了状態を作らず、最後にCLI検証へ戻って
ください。
https://huruikagi.github.io/specbind/ja/guide/migrate-from-cc-sdd/
エージェントには、既存のAGENTS.mdやCLAUDE.mdを含むリポジトリ側の指示もそのまま適用されます。この移行ガイドが、そこに書かれた権限や Git の方針を上書きすることはありません。
3. あなたが決めること¶
エージェントは、まずリポジトリから判断できることを自分で調べます。そのうえで、 次のように証拠から決められない事柄だけ、選択肢と影響を添えてあなたに確認します。
- 進行中の複数の Spec を、同じ進行中の Milestone にまとめてよいか
- 言語が混在した成果物を、どちらの言語に揃えるか
- 完了しているように見える旧 Spec を、現在の実装済みの基準として受け入れるか
- カスタマイズされたルールのうち、どの方針を新しいプロジェクト所有のルールへ 引き継ぐか
- 曖昧に書き換えられた旧クイックスタートを、どこまで手作業で取り除くか
確認が取れない場合、エージェントはその箇所で停止します。
4. 成果物を変換する¶
エージェントが手を付けるのは、CLI が検出した項目に対応する範囲だけです。
| cc-sdd 入力 | SpecBind 側 | 境界 |
|---|---|---|
.cc-sdd.json |
.specbind.json |
旧kiroDir、言語、エージェントを検査し、SpecBind の設定として新規作成する |
spec.json |
spec.yaml |
フェーズと承認の組合せを検査する。Gate の承認証拠は作り直さない |
requirements.md |
SpecBind Requirements |
既知の見出しと Acceptance Criteria から Requirement ID を検証する |
design.md |
SpecBind Design |
Front Matter と本文マーカーの Requirement 対応を一致させる |
tasks.md |
tasks.yaml |
既知のタスク記法だけを変換し、証明できる進捗だけを引き継ぎ、(P)は保持せず移行先の順序へ直列化する |
| Implementation Notes | implementation-notes.md |
中身があり、今後も残す価値のあるノートだけを切り出す |
| steering | SpecBind Steering |
文書の責務と、安定したartifact_idを確認する |
| 旧ルール | 新しいプロジェクト所有のルール | 既定値との差分を方針としてレビューする。ファイルを丸ごとコピーしない |
Contract が存在しない場合、エージェントは「影響なし」と決めつけて空の Contract を作ることはしません。現在の Requirements と Design をもとに、通常の SpecBind Design ワークフローで Contract を作り、必要なレビューと承認をやり直します。
5. 移行判断を CLI へ受け渡す¶
まず、合意した言語とエージェントで SpecBind の移行先を準備し、変換した成果物を通常の CLI で検証します。.kiroを入力にした変換処理としてではなく、SpecBind 側の土台を作る操作としてspecbind installを使います。変換結果をレビューし、コミットして未コミットの変更をなくした状態を回復点にしてください。
次に、エージェントは現在の診断項目をすべて正確に列挙した厳密な JSON 候補を、 プロジェクト外の一時ファイルまたは標準入力から CLI へ渡します。
{
"schemaVersion": 1,
"assessment": "旧ルールを比較し、現在も必要な方針だけをSpecBind用に書き直した。",
"target": { "language": "ja", "agents": ["codex"] },
"resolutions": [
{
"code": "MIGRATE_RULE_REVIEW_REQUIRED",
"path": ".kiro/settings/rules",
"disposition": "converted",
"targets": [".specbind/settings/rules/project.md"]
}
]
}
convertedは具体的な移行先を 1 件以上必要とします。意図的に移行しない診断項目は
not_migratedとし、targetsを空にします。候補は現在の意味判断が必要な診断項目を過不足なく含む必要があり、安全性に関する診断項目を判断だけで抑制することはできません。
CLI は移行元と移行先を再検証し、フィンガープリントを自分で計算して
.specbind/state/cc-sdd-migration.yamlへ保存します。このファイルは手編集せず、内容をレビューしてコミットしてください。移行元または移行先が後で変われば移行判断は古くなり、
元の診断項目が再表示されます。この状態ファイルは一時的な受け渡し手段で、最終--applyが
cc-sdd の移行元と一緒に削除します。受理内容は Git 履歴に残ります。
6. CLI 検証へ戻る¶
エージェントによる作業が終わったら、もう一度、読み取り専用の計画を実行します。
診断項目が残っていれば、その対象だけを解消してください。変換して有効になった SpecBind 成果物を、旧入力から再生成して上書きしてはいけません。
移行を完了と見なせるのは、次の 2 つがそろったときだけです。エージェントによる作業を移行実装が認識し、残りの安全な処理だけを計画していること。そして、通常の SpecBind 検証が成功すること。少なくとも、対象に応じて次を確認します。
specbind artifact list <spec>
specbind check traceability <spec>
specbind check contracts
specbind spec status <spec>
specbind milestone status
移行判断の記録をコミットし、未コミットの変更がない状態で、最終切り替えを適用します。 このコマンドの実行が退役の明示確認です。CLI はすべての後片付け対象を再検証し、1 つでも未追跡、無視対象、リンク、変更済みなら何も削除しません。
7. 旧ワークフローを止める¶
成功すると、設定された cc-sdd の移行元ルート、.cc-sdd.json、既知の旧kiro-*スキル、
移行判断の状態ファイルが削除され、SpecBind だけが稼働中のワークフローとして残ります。再実行は
NO_CHANGE CC_SDD_MIGRATION_COMPLETEです。
AGENTS.mdやCLAUDE.mdの編集済み・混在・重複した旧指示は、Git で戻せる場合でも CLI が範囲を推測して消しません。エージェント支援作業中に意味を確認して編集・コミットしてから最終切り替えへ進みます。後片付け中にファイルシステムエラーが起きた場合は、切り替え直前のコミットを
Git で復元してから再実行してください。
診断コード¶
MIGRATE_TARGET_ALREADY_EXISTS¶
.specbind.jsonまたは.specbindがすでにあります。既存の有効な SpecBind 成果物を上書きせず、旧入力と現在の対象状態を照合してください。
MIGRATE_AGENT_SELECTION_REQUIRED / MIGRATE_AGENT_UNSUPPORTED¶
Codex または Claude Code という移行先を一意に決められないか、旧設定のエージェントが SpecBind v1 の対象外です。利用するエージェントを確認してください。
MIGRATE_LANGUAGE_UNSUPPORTED¶
旧設定または Spec のメタデータの言語が、SpecBind v1 の英語・日本語に含まれません。 対象言語と翻訳範囲を確認してください。
MIGRATE_LANGUAGE_SELECTION_REQUIRED¶
旧設定や Spec のメタデータから英語・日本語を決められません。自動適用前に成果物言語を選択してください。
MIGRATE_SPEC_CONVERSION_REQUIRED¶
旧 Spec があります。進行中の Milestone、Requirement 対応、Gate の承認証拠を推測せず、 エージェント支援の手順で成果物を変換してから CLI 検証へ戻ります。
MIGRATE_ACTIVE_SCOPE_AMBIGUOUS¶
進行中に見える旧 Spec が複数あるものの、それらを 1 つの進行中の Milestone として扱ってよい根拠がありません。旧 Roadmap、依存関係、いま進めようとしている作業を調べたうえで、範囲をあなたに確認します。
MIGRATE_DESIGN_TRACEABILITY_REQUIRED¶
旧 Design からは、SpecBind が求める Requirement 対応を機械的に組み立てきれません。 Requirements と Design を読み、各 Design 成果物の Front Matter と本文マーカーが同じ集合を指すように直してから、CLI で検証します。
MIGRATE_LANGUAGE_MIXED¶
旧 Spec の成果物の言語が混在しています。SpecBind は成果物の言語をプロジェクトごとに 1 つへ揃えるため、あなたが言語と翻訳範囲を決めるまで停止します。
MIGRATE_LEGACY_INSTRUCTIONS_AMBIGUOUS¶
AGENTS.mdまたはCLAUDE.mdにある旧案内が、既知のブロックと完全には一致しません。
kiroという語が入っていることだけを根拠に削除せず、まわりのプロジェクト所有の指示を保持したうえで、対象範囲をあなたに確認します。
MIGRATE_RULE_REVIEW_REQUIRED / MIGRATE_TEMPLATE_REVIEW_REQUIRED¶
旧ルールまたはテンプレートがあります。現在の SpecBind 既定値との差分を、プロジェクト所有の方針または上書き設定として残すべきか確認し、手順を丸ごとコピーしません。
MIGRATE_STEERING_REVIEW_REQUIRED¶
旧 steering 文書があります。文書の責務と安定したartifact_idを決め、SpecBind
Steering として検証してください。
MIGRATE_SPEC_DIRECTORY_INVALID / MIGRATE_SPEC_ID_INVALID¶
旧 Spec のパスが通常ディレクトリではないか、正規の kebab-case ID ではありません。 リンクをたどらず、意図した Spec ID と配置を確認してください。
MIGRATE_SPEC_METADATA_MISSING / MIGRATE_SPEC_STATE_INVALID¶
spec.jsonがないか、phase・generated・approvedの組合せが旧 cc-sdd の状態として成立しません。成果物と履歴から状態を調べ、証明できない Gate の承認証拠は作りません。
MIGRATE_LEGACY_AGENT_ASSET_INVALID / MIGRATE_LEGACY_AGENT_ASSET_UNKNOWN / MIGRATE_LEGACY_CONTENT_UNSUPPORTED¶
既知の旧エージェント資産が通常ディレクトリではない、未知のkiro-*資産がある、または
.kiro直下に未対応の内容があります。対象を個別に調べ、変換するか意図的に移行しないかを移行判断へ記録します。最終切り替え後の移行元は Git 履歴に残ります。
MIGRATE_RESOLUTION_STALE / MIGRATE_RESOLUTION_STATE_INVALID¶
受理済みの移行判断に対応する移行元、移行先、診断項目、または選択済みのインストールが変わったか、CLI 所有の状態ファイルが壊れています。状態ファイルを手編集せず、現在の診断項目をもう一度レビューして、
新しい外部候補を--accept-resolutionで受理し直してください。
MIGRATION_CLEANUP_TARGET_UNTRACKED / MIGRATION_CLEANUP_TARGET_UNSAFE¶
最終切り替えの対象に Git 未追跡または無視対象のファイル、リンク、再解析ポイント、不正な対象が含まれています。必要な内容をコミットするか旧資産のルート外へ移動し、未コミットの変更がない状態でやり直してください。CLI は回復できないファイルを削除しません。