Purpose
「リトライしたら二重に請求された」「同じデータが2行挿入された」を防ぐ。 べき等性の有無を確認し、リトライが安全に行えるフロー設計を保証する。
Use When
- Webhook / API 呼び出しを含む自動化フローを設計する前
- Stripe Webhook の処理ロジックを設計・レビューする場合
- trigger-action-map の後に、リトライ安全性を確認したい場合
- 「このフロー、二重実行されたらどうなる?」が気になる場合
Inputs
- 対象フロー・処理: べき等性を確認する処理の説明
- リトライのトリガー: どのような条件でリトライが発生するか
- 外部 API: 呼び出す外部サービス(Stripe / Supabase / n8n 等)
- データ変更の有無: DB への INSERT / UPDATE / DELETE が含まれるか
Output Contract
- 論点: このフローのべき等性で最も危険な箇所
- 根拠: その論点をそう判断した理由
- べき等性評価: 処理ステップ別の安全性確認
- 含意: べき等性の欠如が引き起こすビジネス・データへの影響
- 改善案: べき等キー・冪等性保証の実装方針
- 代替案: 別のリトライ設計・フォールバック方式
- 判断材料: リトライ設計の確定に必要な人間の判断事項
べき等性評価 フォーマット
| ステップ | 処理内容 | べき等か | リトライ安全か | 対応が必要な理由 |
|---|---|---|---|---|
| 1 | Yes/No/条件付き | Yes/No |
Review Lens
- 目的妥当性: べき等性確認が本来の安全性目的に対して有効か
- 範囲の過不足: 外部APIへの副作用(メール送信・決済等)を全て確認したか
- 中長期リスク: べき等キーの衝突・有効期限切れのリスク
- LAB全体との整合性: Stripe Webhook のべき等性設計を含んでいるか
- 非エンジニア理解可能性: 「同じ処理が2回起きても安全か」を説明できるか
- 他LLM移植耐性: 設計が Claude 固有に依存していないか
Instructions
- フローの各ステップを「読み取り / 書き込み / 外部API呼び出し」に分類する
- 書き込み・外部API の各ステップにべき等性があるか確認する
- べき等キー(idempotency key)が必要な箇所を特定する
- Stripe Webhook は
idempotency_keyの実装を必ず確認する - DB への INSERT は
ON CONFLICT DO NOTHINGまたはUPSERTを検討する - リトライ回数・バックオフ方針を定義する(無限リトライは禁止)
- リトライが安全でない処理(メール送信等)の重複防止策を設計する
Guardrails
- 「リトライしない」をフォールバックとして採用する場合は、失敗の検知方法を必ず含める
- べき等キーの有効期限を「無期限」にしない
- Stripe の二重請求は特に慎重に確認する(テスト環境で必ず検証)
- 「おそらく大丈夫」でべき等性を確認済みにしない
LAB Cross-Check
| 観点 | 状態 | 備考 |
|---|---|---|
| 自動化フロー | — | n8n のリトライ設定と整合しているか |
| データ / 認証 / ログ | — | 重複挿入・更新のリスクを DB 設計で防げているか |
| 実装 / 運用フロー | — | リトライ失敗の検知・対応手順が存在するか |
| 非エンジニア理解可能性 | — | 「安全に再試行できる」を説明できるか |
| 会員共有 / 再利用耐性 | — | べき等性チェックの枠組みが他フローに転用できるか |
| 他LLM移植耐性 | — | 設計が Claude 固有に依存していないか |
状態は OK / 注意 / NG / 対象外 で記入すること。
Handoff Notes
- 要件: べき等性を保証する実装仕様(べき等キー・UPSERT 設計等)
- 成功条件: 同一フローが2回実行されてもデータが重複しない状態
- 失敗条件: 重複データ・二重請求が発生した場合の検知基準
- 実行範囲: 修正してよいワークフロー・API ハンドラー・DB テーブル
- 影響範囲: べき等性変更が波及する他の処理・テスト
- ロールバック方針: 実装変更が失敗した場合の戻し方
- コスト比較: べき等キー実装の工数 vs 二重実行リスクのコスト
Further Reading
trigger-action-mapskill — フロー全体のリトライポイント確認failure-point-reviewskill — リトライ失敗の障害パターンmonitoring-alert-designskill — リトライ失敗の監視・アラート