mcpField
P
principle-make-operations-idempotent

principle-make-operations-idempotent

github.com/poteto開発161103 回インストール22 週間前に更新
リポジトリ

principle-make-operations-idempotent について

再試行、再起動、部分的な失敗の後も、状態変更操作が同じ正しい状態に収束するよう設計するコーディングスキルです。堅牢なコマンド、ライフサイクル操作、処理ループを作る開発者向けです。

主な機能

  1. 01繰り返し実行を同じ状態に収束
  2. 02起動時に既存状態を調整
  3. 03内容の同等性に基づきクリーンアップ
  4. 04PID で古いロックを検出
  5. 05失敗後に処理を再生成

活用シーン

  1. 01コマンドを安全に再試行可能にする
  2. 02クラッシュ後の操作を復旧

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/poteto/plugins --skill principle-make-operations-idempotent

インストール後、Claude Code で/principle-make-operations-idempotentを入力して読み込まれたか確認します。

詳細

オペレーションを冪等にする

実行回数や実行開始時の状態にかかわらず、正しい状態に収束するようにオペレーションを設計します。状態を変更するすべてのオペレーションで、次の点に答えられるようにしてください。「これが2回実行されたらどうなるか? 前回の実行が途中でクラッシュしたらどうなるか?」

理由: コマンド、ライフサイクルオペレーション、処理ループが実行される環境では、クラッシュ、再起動、再試行が日常的に発生します。状態が部分的に変更されたことで次回の実行結果が変わると、再起動のたびにデバッグが必要になります。

パターン:

  • 収束する起動処理:既存の状態をスキャンし、古いアーティファクトをクリーンアップして、稼働中のセッションを引き継ぎます
  • コンテンツに基づくクリーンアップ:作成順ではなく、コンテンツの同等性を比較します
  • 自己修復ロック:PID に基づいて古いロックを検出します
  • 冪等なスケジューリング:失敗した処理を適切に再生成し、各サイクル後に新しい入力を再生成します

テスト:

  1. これが連続して2回実行されたらどうなるか?
  2. 前回の実行があらゆる可能な時点でクラッシュしたらどうなるか?
  3. 再実行すると、同じ最終状態に収束するか?

いずれかの答えが「残された状態によります」であれば、そのオペレーションには調整ステップが必要です。

コメント