mcpField
O
openspec-archive-change

openspec-archive-change

github.com/pbh-btn開発6.4k40 回インストール2 日前に更新
リポジトリ

openspec-archive-change について

OpenSpec の変更をアーカイブするスキルです。成果物とタスクの完了状況、差分仕様の同期状態を確認し、警告を報告してから日付付きの名前で移動します。

主な機能

  1. 01変更名がない場合に選択を促す
  2. 02成果物とタスクの完了状況を確認
  3. 03差分仕様の同期状態を評価
  4. 04日付付きの名前でアーカイブ
  5. 05アーカイブ情報と警告を報告

活用シーン

  1. 01完了した変更をアーカイブ
  2. 02未完了項目を確認してからアーカイブ
  3. 03差分仕様を同期するか判断

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/pbh-btn/peerbanhelper --skill openspec-archive-change

インストール後、Claude Code で/openspec-archive-changeを入力して読み込まれたか確認します。

詳細

実験的なワークフローで、完了した変更をアーカイブします。

入力:変更名を任意で指定できます。省略した場合は、会話のコンテキストから推測できるか確認します。曖昧な場合は、 利用可能な変更を必ず提示してください。

手順

  1. 変更名が指定されていない場合は、選択を求める

    openspec list --json を実行して、利用可能な変更を取得します。AskUserQuestion tool を使って、ユーザーに選択してもらいます。

    アクティブな変更(すでにアーカイブされているものを除く)のみを表示します。 利用可能な場合は、各変更で使用されているスキーマも含めます。

    重要:変更を推測したり、自動選択したりしないでください。必ずユーザーに選んでもらってください。

  2. 成果物の完了状況を確認する

    openspec status --change "<name>" --json を実行して、成果物の完了状況を確認します。

    JSON を解析して、以下を把握します。

    • schemaName:使用されているワークフロー
    • artifacts:ステータス(done またはその他)を含む成果物の一覧

    done ではない成果物がある場合:

    • 未完了の成果物を一覧表示して、警告を示します
    • AskUserQuestion tool を使って、続行するかユーザーに確認します
    • ユーザーが確認した場合は続行します
  3. タスクの完了状況を確認する

    タスクファイル(通常は tasks.md)を読み、未完了のタスクがないか確認します。

    - [ ](未完了)と - [x](完了)が付いたタスクの数を数えます。

    未完了のタスクがある場合:

    • 未完了タスクの数を示す警告を表示します
    • AskUserQuestion tool を使って、続行するかユーザーに確認します
    • ユーザーが確認した場合は続行します

    タスクファイルが存在しない場合: タスクに関する警告を出さずに続行します。

  4. 差分仕様の同期状況を評価する

    openspec/changes/<name>/specs/ に差分仕様があるか確認します。存在しない場合は、同期の確認をせずに続行します。

    差分仕様が存在する場合:

    • 各差分仕様を、対応するメイン仕様 openspec/specs/<capability>/spec.md と比較します
    • 適用される変更(追加、変更、削除、名前変更)を判断します
    • 確認を求める前に、変更内容をまとめて表示します

    確認時の選択肢:

    • 変更が必要な場合:「今すぐ同期(推奨)」、「同期せずにアーカイブ」
    • すでに同期されている場合:「今すぐアーカイブ」、「それでも同期」、「キャンセル」

    ユーザーが同期を選んだ場合は、/opsx:sync のロジックを実行します(openspec-sync-specs スキルを使用)。選択にかかわらず、アーカイブに進みます。

  5. アーカイブを実行する

    アーカイブディレクトリが存在しない場合は作成します。

    mkdir -p openspec/changes/archive
    

    現在の日付を使って、移動先の名前を生成します:YYYY-MM-DD-<change-name>

    移動先がすでに存在するか確認します:

    • 存在する場合:エラーで終了し、既存のアーカイブの名前を変更するか、別の日付を使うよう提案します
    • 存在しない場合:変更ディレクトリをアーカイブに移動します
    mv openspec/changes/<name> openspec/changes/archive/YYYY-MM-DD-<name>
    
  6. 概要を表示する

    以下を含むアーカイブ完了の概要を表示します。

    • 変更名
    • 使用したスキーマ
    • アーカイブ先
    • 仕様を同期したかどうか(該当する場合)
    • 警告事項(未完了の成果物/タスク)があれば、その旨

成功時の出力

## 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 の手法(エージェント主導)を使用します
  • 差分仕様が存在する場合は、必ず同期状況を評価し、確認を求める前に変更内容をまとめて表示します

コメント