GxP Groupで2026年夏季リレーブログ企画をスタートすることになりました。
1日目を担当する土田です。
2日目は8/4予定です。一覧は グロースエクスパートナーズ株式会社 記事一覧 からどうぞ。
/speckit.next という発想
遅ればせながらspeckitを初めて使い、あると便利だと思ったカスタム機能を共有する。
speckitとは(ざっくり)
GitHub Spec Kit は、「仕様駆動開発(Spec-Driven Development)」を支援するツールキットで、AIコーディングエージェント向けに /speckit.* というスラッシュコマンド群を提供する。
Claude Codeでは、. が使えないため、/speckit-* というコマンド名に置き換えて利用する。(本記事はClaude Codeでやったことを前提に書いているが、他のエージェントでも同様のことはできるはず。)
主要なコマンドは以下の通り。
-
/speckit-specifyで要件を仕様書に起こし、 - (必要なら)
/speckit-clarifyで曖昧な点を対話しながら潰し、 -
/speckit-planで実装方針・設計に落とし込み、 -
/speckit-tasksでタスクに分解し、 - (必要なら)
/speckit-checklistで品質観点のチェックリストを作り、 -
/speckit-analyzeで仕様・計画・タスク間の整合性を検証し、 -
/speckit-implementで実装する
という順番でコマンドを呼び出していく。
今回は、この一連のコマンドを気持ちよく使うために作った agent skill について書く。
触れてみて思ったこと
スペルも順番も覚えられん。
一応、 /speckit- と入力すれば候補が出ては来るし、コマンドを呼び出した応答の最後に「次は /speckit-plan に進めます」とか案内してくれるのだが、途中で疑問点等を突っ込みやり取りすると、毎応答に次のコマンドを案内してくれるわけではないので、結局「次は何をすればいいんだっけ?」となる。
/speckit.next
そこで、「今の状態から次に何を実行すればいいか」をエージェント自身に案内・実行させるagent skillを作った。名前は speckit-next。
やっていることは大きく2つ。
-
/speckit-*コマンドを実行した際、実行報告の末尾に必ず次に打つべきコマンドを案内させる -
/speckit-nextというコマンドを呼ぶと、直近で案内された「次のコマンド」を、追加の確認なしにそのまま実行する
つまり、コマンド名と実行順序を覚えるのをやめて、常に /speckit-next とだけ打てばワークフローが次へ進むようにした。
SKILL.mdの中身は以下の通り。(一部略)
---
name: "speckit-next"
description: "speckit系コマンド実行時に常に読み込まれ、次に実行すべきコマンドを案内・実行する"
argument-hint: "[番号](省略時は推奨候補を実行)"
user-invocable: true
disable-model-invocation: false
---
## 目的
`/speckit-*` コマンドを実行する際はこのスキルを常に読み込み、以下の規約に従うこと。
## 規約1: 実行結果の末尾に次コマンドを案内する
`/speckit-*` コマンドの実行報告の末尾には、必ず次に実行すべきコマンドを案内する。
候補が1つしかない場合は以下の1行形式:
```
`/speckit-next`: `/speckit-plan`
```
次に進むべき候補が複数考えられる場合(例: チェックリストを挟んでも挟まなくても進められる、analyze で軽微な指摘のみで tasks 直行も checklist 経由も妥当、など)は、番号付きリストで案内する。
**1番目は必ず最も推奨する候補**とする:
```
`/speckit-next`:
1. `/speckit-tasks`(推奨)
2. `/speckit-checklist`
```
- 案内する次コマンドは、spec-kit の標準ワークフローにおける、現在の成果物の状態から見て次に進むべきものを選ぶ。
- 品質チェックリストが未通過、[NEEDS CLARIFICATION] が残っている等、前段階に差し戻すべき場合はそちらを次コマンドとして案内する。
- ユーザーがこの案内を都度読まなくても、次に何をすべきか・どのコマンド名かをここで確定させておく。
## 規約2: `/speckit-next` 呼び出し時の動作
ユーザーが `/speckit-next` を呼び出した場合、会話履歴を遡って規約1の案内を探し、対象コマンドを追加確認なしにそのまま実行する。
番号リスト形式なら1番目(推奨候補)、単一行形式ならそのコマンドが対象。
案内が見つからない場合や、指定した番号の候補が存在しない場合は、実行せずその旨を日本語で伝える。
ポイントは、次に何をすべきかの判断とその根拠をコマンド実行のたびに言語化させておき、/speckit-next は会話履歴からそれを拾って実行するだけ、という役割分担にしたところ。
「次はchecklistか、tasksか」のような分岐判断自体はそのつどエージェントにやらせているので、ワークフローの状態が複雑になっても人間側が状態遷移を覚えておく必要がなくなる。
ただし、SKILL.mdのdescriptionだけではこのスキルを毎回読み込ませる強制力が弱く、/speckit-*系コマンドを実行しても読み込まれないことがあった。
そのため、rulesやCLAUDE.md側にも「/speckit-*系コマンドを実行する際は必ずspeckit-nextスキルを読み込むこと」という指示を別途追記し、確実に読ませるように工夫する必要があった。
あとは /speckit-next と打つだけでspecify→plan→tasks→implementと流れていくようになり、コマンド名や順番を思い出す手間はほぼなくなった。(しかも入力欄で↑を押せば前回のプロンプトが出てくるのでそのまま送信できる!)