Agent skill

optimistic-updates

楽観的更新(Optimistic Updates)パターンの実装スキル。サーバーレスポンス前にUIを即座更新し、失敗時のロールバック機構を提供することで、レスポンシブなユーザー体験を実現します。 Anchors: • Designing Data-Intensive Applications (Martin Kleppmann) / 適用: 分散システムにおける楽観的並行制御 / 目的: 競合検出とロールバック戦略の設計 • React Query (TanStack) / 適用: onMutate/onError/onSettledフック / 目的: 楽観的更新とロールバックの自動化 • SWR Documentation (Vercel) / 適用: optimisticDataとrollbackOnError / 目的: 宣言的な楽観的更新の実装 Trigger: Use when implementing instant UI feedback before server response, hiding CRUD latency, implementing optimistic updates with React Query/SWR, designing rollback strategies, or handling conflict states. optimistic update, UI feedback, rollback, React Query, SWR, mutation, conflict resolution

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/optimistic-updates-daishiman-aiworkfloworchestrat

SKILL.md

楽観的更新パターンスキル

概要

楽観的更新(Optimistic Updates)は、サーバーからの応答を待たずにUIを即座に更新するパターンです。ユーザー体験を大幅に向上させますが、失敗時の適切なロールバック処理と競合制御が必要です。

本スキルは、React Query、SWR、その他の状態管理ライブラリを使用した楽観的更新の実装、エラーハンドリング、テスト戦略を包括的にカバーします。

詳細な実装手順は references/basics.md を参照してください。

ワークフロー

Phase 1: 要件分析と設計

目的: 楽観的更新の適用可否を判断し、設計方針を決定する

アクション:

  1. references/basics.md で楽観的更新の基礎概念を確認
  2. 対象操作の成功率、重要度、可逆性を評価
  3. ロールバック戦略(即座 vs 遅延、完全 vs 部分)を決定
  4. 競合制御の必要性を判定

Task: agents/analyze-requirements.md を参照

判断ポイント:

  • 成功率が99%以上? → 楽観的更新適用候補
  • 金融トランザクションや不可逆操作? → 楽観的更新は避ける
  • 複数ユーザーの同時編集? → 競合制御が必須

Phase 2: 実装

目的: 要件に基づいて楽観的更新を実装する

アクション:

  1. references/basics.md で実装パターンを確認
  2. React Query/SWRのフックを使用して楽観的更新を実装
  3. エラーハンドリングとロールバック機構を実装
  4. 競合制御を実装(必要な場合)

Task: agents/implement-optimistic-update.md を参照

Phase 3: テストと検証

目的: 実装の品質を確保し、エッジケースをカバーする

アクション:

  1. 正常系のテスト実装(即座更新、サーバー確認)
  2. 異常系のテスト実装(ロールバック、エラー通知)
  3. 競合状態のテスト(複数ミューテーション同時実行)

Task: agents/validate-and-test.md を参照

Task仕様(ナビゲーション)

Task 起動タイミング 入力 出力
analyze-requirements Phase 1開始時 対象操作仕様 適用可否レポート
implement-optimistic-update Phase 2開始時 設計方針 実装済みコード
validate-and-test Phase 3開始時 実装済みコード 検証済みシステム

詳細仕様: 各Taskの詳細は agents/ ディレクトリの対応ファイルを参照

ベストプラクティス

すべきこと ✓

  • 適用基準の遵守: 成功率99%以上、可逆性のある操作にのみ適用
  • 完全なロールバック: 失敗時は完全に元の状態に戻す
  • 明確なフィードバック: 成功、失敗、ロールバックを明確にユーザーに通知
  • 競合状態の考慮: 複数ミューテーションの同時実行をキャンセル/制御
  • 段階的な詳細化: Level1から段階的により複雑なシナリオへ
  • 一貫性の維持: サーバーの真実(Source of Truth)との同期を確保
  • エラーログの記録: 失敗時のコンテキストとスタックトレースを記録
  • テストの包括性: 正常系、異常系、競合状態をすべてカバー

避けるべきこと ✗

  • 重要トランザクションへの適用: 金融、医療、法的な重要操作には使用しない
  • 不可逆操作への適用: 削除、課金、送信など取り消せない操作は慎重に
  • 不完全なロールバック: 部分的なロールバックで矛盾状態を作らない
  • エラーの無視: ロールバック失敗時のフォールバック処理を省略しない
  • 過度な楽観性: 成功率が低い(<95%)操作には適用しない
  • 競合制御の省略: 複数ユーザー環境で競合検出を実装しない
  • テストの不足: ロールバックやエラーケースのテストを省略しない
  • フィードバックの欠如: ユーザーに状態変化を通知しない

リソース参照

references/(詳細知識)

リソース パス 用途
基礎知識 See references/basics.md 概念とパターン

agents/(Task仕様)

Task 用途
analyze-requirements 適用可否判断
implement-optimistic-update 楽観的更新の実装
validate-and-test テストと検証

assets/(テンプレート)

テンプレート パス 用途
React Query assets/react-query-optimistic-template.ts React Query実装例
SWR assets/swr-optimistic-template.ts SWR実装例

scripts/(決定論的処理)

スクリプト パス 用途
実装検証 scripts/validate-optimistic-update.mjs パターン検証
使用記録 scripts/log_usage.mjs フィードバック記録

変更履歴

Version Date Changes
1.2.0 2026-01-02 assets/scripts追加、リソース参照完備
1.1.0 2026-01-02 description形式更新、basics.md追加
1.0.0 2025-12-31 初期実装

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results