openspec-apply-change について
OpenSpec の変更タスクを実装するスキルです。ワークフローの指示とコンテキストファイルを読み、進捗を更新しながら作業し、不明点や障害があれば一時停止します。
主な機能
- 01進行中の変更を選択または推定
- 02schema と実装手順を確認
- 03実装前にコンテキストファイルを確認
- 04タスクを実装してチェック欄を更新
- 05進捗を報告し障害時に一時停止
活用シーン
- 01定義済みの変更タスクを実装
- 02進行中の変更作業を再開
- 03要件や設計上の問題を確認するため一時停止
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pbh-btn/ peerbanhelper --skill openspec-apply-changeインストール後、Claude Code で/openspec-apply-changeを入力して読み込まれたか確認します。
詳細
OpenSpec の変更に基づいてタスクを実装します。
入力:変更名は任意で指定できます。省略した場合は、会話の文脈から推測できるか確認します。曖昧な場合、 または特定できない場合は、利用可能な変更を確認するよう求めてください。
手順
-
変更を選択する
名前が指定されている場合は、それを使用します。指定されていない場合:
- ユーザーが変更について言及していれば、会話の文脈から推測します
- アクティブな変更が1つだけの場合は、自動的に選択します
- 曖昧な場合は、
openspec list --jsonを実行して利用可能な変更を取得し、AskUserQuestion tool を使ってユーザーに選択してもらいます
必ず「Using change: 」と、変更方法の例(
/opsx:apply <other>など)を案内します。 -
ステータスを確認してスキーマを把握する
openspec status --change "<name>" --jsonJSON を解析して、次の内容を把握します:
schemaName:使用されているワークフロー(例:「spec-driven」、「tdd」)- タスクを含む成果物(通常、「spec-driven」では「tasks」です。他のスキーマではステータスを確認してください)
-
適用手順を取得する
openspec instructions apply --change "<name>" --json次の情報が返されます:
- コンテキストファイルのパス(スキーマによって異なり、proposal/specs/design/tasks や spec/tests/implementation/docs など)
- 進捗(合計、完了、残り)
- ステータス付きのタスクリスト
- 現在の状態に応じた動的な指示
状態に応じた対応:
state: "blocked"(成果物が不足)の場合:メッセージを表示し、openspec-continue-change の使用を提案しますstate: "all_done"の場合:完了を祝福し、アーカイブを提案します- それ以外の場合:実装に進みます
-
コンテキストファイルを読む
適用手順の出力にある
contextFilesのファイルを読みます。 ファイルは使用中のスキーマによって異なります:- spec-driven:proposal、specs、design、tasks
- tdd:spec、tests、implementation、docs
- その他のスキーマ:CLI の出力にある contextFiles に従います
-
現在の進捗を表示する
次の内容を表示します:
- 使用中のスキーマ
- 進捗:「N/M tasks complete」
- 残りのタスクの概要
- CLI からの動的な指示
-
タスクを実装する(完了またはブロックされるまで繰り返す)
未完了のタスクごとに:
- 作業対象のタスクを表示します
- 必要なコード変更を行います
- 変更は最小限かつ目的に絞ります
- tasks ファイルでタスクを完了としてマークします:
- [ ]→- [x] - 次のタスクに進みます
次の場合は一時停止します:
- タスクが不明確な場合 → 確認を求めます
- 実装によって設計上の問題が判明した場合 → 成果物の更新を提案します
- エラーまたはブロッカーが発生した場合 → 報告し、指示を待ちます
- ユーザーが中断した場合
-
完了時または一時停止時にステータスを表示する
次の内容を表示します:
- 今回のセッションで完了したタスク
- 全体の進捗:「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 を使い、特定のファイル名を決めつけないでください
柔軟なワークフローとの連携
このスキルは「変更に対するアクション」モデルをサポートします:
- いつでも実行可能:すべての成果物が完成する前(タスクが存在する場合)、部分的な実装の後、他のアクションと交互に実施する場合にも実行できます
- 成果物の更新が可能:実装によって設計上の問題が判明した場合、フェーズに縛られず柔軟に作業し、成果物の更新を提案します
コメント
Markdown 対応