openspec-archive-change について
OpenSpec の変更をアーカイブするスキルです。成果物とタスクの完了状況、差分仕様の同期状態を確認し、警告を報告してから日付付きの名前で移動します。
主な機能
- 01変更名がない場合に選択を促す
- 02成果物とタスクの完了状況を確認
- 03差分仕様の同期状態を評価
- 04日付付きの名前でアーカイブ
- 05アーカイブ情報と警告を報告
活用シーン
- 01完了した変更をアーカイブ
- 02未完了項目を確認してからアーカイブ
- 03差分仕様を同期するか判断
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ pbh-btn/ peerbanhelper --skill openspec-archive-changeインストール後、Claude Code で/openspec-archive-changeを入力して読み込まれたか確認します。
詳細
実験的なワークフローで、完了した変更をアーカイブします。
入力:変更名を任意で指定できます。省略した場合は、会話のコンテキストから推測できるか確認します。曖昧な場合は、 利用可能な変更を必ず提示してください。
手順
-
変更名が指定されていない場合は、選択を求める
openspec list --jsonを実行して、利用可能な変更を取得します。AskUserQuestion tool を使って、ユーザーに選択してもらいます。アクティブな変更(すでにアーカイブされているものを除く)のみを表示します。 利用可能な場合は、各変更で使用されているスキーマも含めます。
重要:変更を推測したり、自動選択したりしないでください。必ずユーザーに選んでもらってください。
-
成果物の完了状況を確認する
openspec status --change "<name>" --jsonを実行して、成果物の完了状況を確認します。JSON を解析して、以下を把握します。
schemaName:使用されているワークフローartifacts:ステータス(doneまたはその他)を含む成果物の一覧
doneではない成果物がある場合:- 未完了の成果物を一覧表示して、警告を示します
- AskUserQuestion tool を使って、続行するかユーザーに確認します
- ユーザーが確認した場合は続行します
-
タスクの完了状況を確認する
タスクファイル(通常は
tasks.md)を読み、未完了のタスクがないか確認します。- [ ](未完了)と- [x](完了)が付いたタスクの数を数えます。未完了のタスクがある場合:
- 未完了タスクの数を示す警告を表示します
- AskUserQuestion tool を使って、続行するかユーザーに確認します
- ユーザーが確認した場合は続行します
タスクファイルが存在しない場合: タスクに関する警告を出さずに続行します。
-
差分仕様の同期状況を評価する
openspec/changes/<name>/specs/に差分仕様があるか確認します。存在しない場合は、同期の確認をせずに続行します。差分仕様が存在する場合:
- 各差分仕様を、対応するメイン仕様
openspec/specs/<capability>/spec.mdと比較します - 適用される変更(追加、変更、削除、名前変更)を判断します
- 確認を求める前に、変更内容をまとめて表示します
確認時の選択肢:
- 変更が必要な場合:「今すぐ同期(推奨)」、「同期せずにアーカイブ」
- すでに同期されている場合:「今すぐアーカイブ」、「それでも同期」、「キャンセル」
ユーザーが同期を選んだ場合は、/opsx:sync のロジックを実行します(openspec-sync-specs スキルを使用)。選択にかかわらず、アーカイブに進みます。
- 各差分仕様を、対応するメイン仕様
-
アーカイブを実行する
アーカイブディレクトリが存在しない場合は作成します。
mkdir -p openspec/changes/archive現在の日付を使って、移動先の名前を生成します:
YYYY-MM-DD-<change-name>移動先がすでに存在するか確認します:
- 存在する場合:エラーで終了し、既存のアーカイブの名前を変更するか、別の日付を使うよう提案します
- 存在しない場合:変更ディレクトリをアーカイブに移動します
mv openspec/changes/<name> openspec/changes/archive/YYYY-MM-DD-<name> -
概要を表示する
以下を含むアーカイブ完了の概要を表示します。
- 変更名
- 使用したスキーマ
- アーカイブ先
- 仕様を同期したかどうか(該当する場合)
- 警告事項(未完了の成果物/タスク)があれば、その旨
成功時の出力
## Archive Complete
**Change:** <change-name>
**Schema:** <schema-name>
**Archived to:** openspec/changes/archive/YYYY-MM-DD-<name>/
**Specs:** ✓ Synced to main specs (or "No delta specs" or "Sync skipped")
All artifacts complete. All tasks complete.
ガードレール
- 変更名が指定されていない場合は、必ず変更の選択を求めます
- 完了状況の確認には成果物グラフ(openspec status --json)を使用します
- 警告を理由にアーカイブを中断せず、内容を伝えて確認を求めます
- アーカイブへの移動時は .openspec.yaml を保持します(ディレクトリとともに移動します)
- 実行内容を明確にまとめて表示します
- 同期が要求された場合は、openspec-sync-specs の手法(エージェント主導)を使用します
- 差分仕様が存在する場合は、必ず同期状況を評価し、確認を求める前に変更内容をまとめて表示します