checkpoint について
Checkpointは、作業の節目や不確実性、範囲拡大、当初の目的からのずれが生じた際に、次の行動を選ぶエージェントスキルです。進捗とリスクを評価し、状況に合った選択肢と推奨案を提示します。
主な機能
- 01重要な判断のタイミングを検出
- 02進捗・品質・リスクの評価
- 03状況に応じた次の手順の作成
- 04推奨案の提示
- 05AskUserQuestionによる選択の確認
活用シーン
- 01機能完成後の次の作業を選択
- 02先に進む前に高リスク変更を検証
- 03要件が不明確なときに方針を再評価
- 04範囲拡大時に次の重点を決定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ petekp/ agent-skills --skill checkpointインストール後、Claude Code で/checkpointを入力して読み込まれたか確認します。
詳細
チェックポイント
一時停止して状況を評価し、次に取れる有益な選択肢をユーザーに提示します。
積極的に提案するタイミング
次のような兆候を検知した場合、依頼されていなくてもこのスキルを提案します。
- 完了の兆候:機能、修正、マイルストーンが完了した
- 不確実性の兆候:要件が不明確、複数の妥当な進め方がある、または現在の方向性への確信が低い
- 複雑さの兆候:作業範囲が広がった、予想外の依存関係が発生した、または想定より時間がかかっている
- 方向性のずれの兆候:作業がユーザーの当初の意図から外れている可能性がある
- 品質の兆候:コードは動作するものの、レビュー、テスト、リファクタリングの余地がある
ワークフロー
1. 状況の評価
次の観点から現在の状況を内部で評価します(この分析は出力しないでください)。
- 進捗:何が完了したか。何が残っているか。
- 品質:作業は堅実か、それとも粗削りな部分があるか。
- 整合性:直近の作業は、ユーザーが実際に望んでいることと一致しているか。
- 不確実性:どのような前提を置いたか。不明な点は何か。
- リスク:何が問題になり得るか。何が未テストか。
- 効率性:より良い進め方はあるか。
2. 選択肢の生成
評価に基づいて、状況に適した選択肢を2~5個生成します。次の例を参考にしつつ、これらに限定しないでください。
| 選択肢の類型 | 該当する状況 |
|---|---|
| 進捗をコミットする | 意味のある進展があり、作業を区切るのに適している |
| システム監査を行う | 変更が複雑で、バグやリグレッションの可能性がある |
| 優先順位を決める/計画を立てる | 未完了のタスクが複数あり、何を優先すべきか不明確である |
| 判断を見直す | 直近の判断への確信が低い、または新しい情報が得られた |
| ユーザーに確認する | 前提を置いている、または要件が曖昧である |
| テスト/検証する | コードは動作するものの、エッジケースが未テストである |
| リファクタリング/整理する | 機能するものの、コードが整理されていない |
| ドキュメントを作成する | 複雑なロジックの説明が必要である |
| 立ち止まって考える | 複雑にしすぎている、またはよりシンプルな解決策を見落としている可能性がある |
| 現在の方針を続ける | 次の手順が明確で、立ち止まる理由がない |
選択肢を生成する際の原則:
- 選択肢は互いに明確に異なるものにし、同じ内容の言い換えを避けます
- 作業の勢いを保つ価値がある場合は、少なくとも1つ「先に進む」選択肢を含めます
- リスクがある場合は、少なくとも1つ「一時停止して検証する」選択肢を含めます
- 分析しすぎないようにします。曖昧な選択肢を多く挙げるより、価値の高い選択肢を少数に絞ります
3. 推奨する選択肢の決定
1つの選択肢を推奨として選びます。推奨内容は、次の点を踏まえて決めてください。
- 思慮深いシニアエンジニアなら何をするか
- 労力の無駄や手戻りのリスクをどう減らすか
- ユーザーの根本的な目標にどう応えるか(明示された依頼だけにとどまらない)
4. AskUserQuestion で提示する
次の形式で AskUserQuestion を使用します。
Question: "What would you like to do next?"
Header: "Next step" (or contextually appropriate 1-2 words)
Options: [generated options with descriptions]
選択肢の形式:
label:動作を表すフレーズ(例:「現在の進捗をコミットする」「システム監査を実施する」)description:内容と、その選択肢が有益な理由を説明する1文
推奨する選択肢:
- 推奨する選択肢をリストの先頭に置きます
- ラベルの末尾に「(推奨)」を付けます
- 説明に推奨理由を含めます
出力例
いくつかの近道を使って機能を実装した直後の状況を例にします。
AskUserQuestion:
question: "Feature implementation complete. What would you like to do next?"
header: "Next step"
options:
- label: "Review and refactor (Recommended)"
description: "Clean up the shortcuts taken during implementation before they become technical debt. The core logic works but could be more maintainable."
- label: "Add test coverage"
description: "Write tests for the new feature to catch edge cases and prevent regressions."
- label: "Commit and move on"
description: "The feature works - commit it and tackle the next task. Can refactor later if needed."
- label: "Walk me through what was built"
description: "Explain the implementation so you can verify it matches your expectations before proceeding."
避けるべきパターン
- 考えすぎない:このスキルは数秒で実行できるようにし、何分もかけないでください
- 考えられる選択肢をすべて挙げない:価値の高い2~5個に絞ってください
- 状況が明確なときに「ユーザーに聞く」ことを推奨しない:明確な見解を示してください
- 頻繁に実行しすぎない:細かな手順ごとではなく、本当に判断が必要な場面に限ってください
- 評価プロセスを説明しない:選択肢だけを自然に提示してください
コメント
Markdown 対応