mcpField
O
openspec-apply-change

openspec-apply-change

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

openspec-apply-change について

OpenSpec の変更タスクを実装するスキルです。ワークフローの指示とコンテキストファイルを読み、進捗を更新しながら作業し、不明点や障害があれば一時停止します。

主な機能

  1. 01進行中の変更を選択または推定
  2. 02schema と実装手順を確認
  3. 03実装前にコンテキストファイルを確認
  4. 04タスクを実装してチェック欄を更新
  5. 05進捗を報告し障害時に一時停止

活用シーン

  1. 01定義済みの変更タスクを実装
  2. 02進行中の変更作業を再開
  3. 03要件や設計上の問題を確認するため一時停止

インストール

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

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

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

詳細

OpenSpec の変更に基づいてタスクを実装します。

入力:変更名は任意で指定できます。省略した場合は、会話の文脈から推測できるか確認します。曖昧な場合、 または特定できない場合は、利用可能な変更を確認するよう求めてください。

手順

  1. 変更を選択する

    名前が指定されている場合は、それを使用します。指定されていない場合:

    • ユーザーが変更について言及していれば、会話の文脈から推測します
    • アクティブな変更が1つだけの場合は、自動的に選択します
    • 曖昧な場合は、openspec list --json を実行して利用可能な変更を取得し、AskUserQuestion tool を使ってユーザーに選択してもらいます

    必ず「Using change: 」と、変更方法の例(/opsx:apply <other> など)を案内します。

  2. ステータスを確認してスキーマを把握する

    openspec status --change "<name>" --json
    

    JSON を解析して、次の内容を把握します:

    • schemaName:使用されているワークフロー(例:「spec-driven」、「tdd」)
    • タスクを含む成果物(通常、「spec-driven」では「tasks」です。他のスキーマではステータスを確認してください)
  3. 適用手順を取得する

    openspec instructions apply --change "<name>" --json
    

    次の情報が返されます:

    • コンテキストファイルのパス(スキーマによって異なり、proposal/specs/design/tasks や spec/tests/implementation/docs など)
    • 進捗(合計、完了、残り)
    • ステータス付きのタスクリスト
    • 現在の状態に応じた動的な指示

    状態に応じた対応:

    • state: "blocked"(成果物が不足)の場合:メッセージを表示し、openspec-continue-change の使用を提案します
    • state: "all_done" の場合:完了を祝福し、アーカイブを提案します
    • それ以外の場合:実装に進みます
  4. コンテキストファイルを読む

    適用手順の出力にある contextFiles のファイルを読みます。 ファイルは使用中のスキーマによって異なります:

    • spec-driven:proposal、specs、design、tasks
    • tdd:spec、tests、implementation、docs
    • その他のスキーマ:CLI の出力にある contextFiles に従います
  5. 現在の進捗を表示する

    次の内容を表示します:

    • 使用中のスキーマ
    • 進捗:「N/M tasks complete」
    • 残りのタスクの概要
    • CLI からの動的な指示
  6. タスクを実装する(完了またはブロックされるまで繰り返す)

    未完了のタスクごとに:

    • 作業対象のタスクを表示します
    • 必要なコード変更を行います
    • 変更は最小限かつ目的に絞ります
    • tasks ファイルでタスクを完了としてマークします:- [ ] → - [x]
    • 次のタスクに進みます

    次の場合は一時停止します:

    • タスクが不明確な場合 → 確認を求めます
    • 実装によって設計上の問題が判明した場合 → 成果物の更新を提案します
    • エラーまたはブロッカーが発生した場合 → 報告し、指示を待ちます
    • ユーザーが中断した場合
  7. 完了時または一時停止時にステータスを表示する

    次の内容を表示します:

    • 今回のセッションで完了したタスク
    • 全体の進捗:「N/M tasks complete」
    • すべて完了した場合:アーカイブを提案します
    • 一時停止した場合:理由を説明し、指示を待ちます

実装中の出力

## Implementing: <change-name> (schema: <schema-name>)

Working on task 3/7: <task description>
[...implementation happening...]
✓ Task complete

Working on task 4/7: <task description>
[...implementation happening...]
✓ Task complete

完了時の出力

## Implementation Complete

**Change:** <change-name>
**Schema:** <schema-name>
**Progress:** 7/7 tasks complete ✓

### Completed This Session
- [x] Task 1
- [x] Task 2
...

All tasks complete! Ready to archive this change.

一時停止時の出力(問題発生)

## Implementation Paused

**Change:** <change-name>
**Schema:** <schema-name>
**Progress:** 4/7 tasks complete

### Issue Encountered
<description of the issue>

**Options:**
1. <option 1>
2. <option 2>
3. Other approach

What would you like to do?

ガードレール

  • 完了またはブロックされるまでタスクを進めます
  • 必ず作業開始前にコンテキストファイルを読みます(適用手順の出力に基づきます)
  • タスクが曖昧な場合は、一時停止して実装前に確認します
  • 実装によって問題が判明した場合は、一時停止して成果物の更新を提案します
  • コード変更は最小限にし、各タスクの範囲に限定します
  • 各タスクの完了後、すぐにチェックボックスを更新します
  • エラー、ブロッカー、要件の不明確さがある場合は一時停止し、推測で進めないでください
  • CLI の出力にある contextFiles を使い、特定のファイル名を決めつけないでください

柔軟なワークフローとの連携

このスキルは「変更に対するアクション」モデルをサポートします:

  • いつでも実行可能:すべての成果物が完成する前(タスクが存在する場合)、部分的な実装の後、他のアクションと交互に実施する場合にも実行できます
  • 成果物の更新が可能:実装によって設計上の問題が判明した場合、フェーズに縛られず柔軟に作業し、成果物の更新を提案します

コメント