mcpField
C
checkpoint

checkpoint

github.com/petekpエージェントワークフロー1043 回インストール21 週間前に更新
リポジトリ

checkpoint について

Checkpointは、作業の節目や不確実性、範囲拡大、当初の目的からのずれが生じた際に、次の行動を選ぶエージェントスキルです。進捗とリスクを評価し、状況に合った選択肢と推奨案を提示します。

主な機能

  1. 01重要な判断のタイミングを検出
  2. 02進捗・品質・リスクの評価
  3. 03状況に応じた次の手順の作成
  4. 04推奨案の提示
  5. 05AskUserQuestionによる選択の確認

活用シーン

  1. 01機能完成後の次の作業を選択
  2. 02先に進む前に高リスク変更を検証
  3. 03要件が不明確なときに方針を再評価
  4. 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個に絞ってください
  • 状況が明確なときに「ユーザーに聞く」ことを推奨しない:明確な見解を示してください
  • 頻繁に実行しすぎない:細かな手順ごとではなく、本当に判断が必要な場面に限ってください
  • 評価プロセスを説明しない:選択肢だけを自然に提示してください

コメント