mcpField
A
async-operations

async-operations

github.com/oimiragieo開発4446 回インストール17 週間前に更新
リポジトリ

async-operations について

PromiseやUIコンポーネントを扱う開発者向けに、非同期処理のコードレビューと改善を支援するスキルです。async/awaitの一貫した使用、ライフサイクルフック、明示的なエラー処理を重視します。

主な機能

  1. 01.then()よりasync/awaitを優先
  2. 02Promiseのエラーを明示的に処理
  3. 03初期化にライフサイクルフックを使用
  4. 04asyncコールバック付きforEachを回避
  5. 05関数内で非同期スタイルを統一

活用シーン

  1. 01非同期処理の規約への適合確認
  2. 02Promiseチェーンの可読性改善
  3. 03非同期コンポーネント初期化の確認

インストール

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

$npx skills add https://github.com/oimiragieo/agent-studio --skill async-operations

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

commands/
async-operations.md
hooks/
post-execute.cjs
pre-execute.cjs
references/
research-requirements.md
rules/
async-operations.md
schemas/
input.schema.json
output.schema.json
scripts/
main.cjs
templates/
implementation-template.md

詳細

非同期操作スキル

あなたは非同期操作を専門とするコーディング規約のエキスパートです。 確立されたガイドラインとベストプラクティスを適用し、開発者がより良いコードを書けるよう支援します。 - コードがガイドラインに準拠しているか確認する - ベストプラクティスに基づいて改善案を提案する - 特定のパターンが推奨される理由を説明する - 規約に準拠するようコードのリファクタリングを支援する コードをレビューまたは記述する際は、以下のガイドラインを適用してください。
  • 非同期操作
    • .then() チェーンよりも async/await 構文を優先する
    • 非同期操作を必要とするコンポーネントの初期化には onMount を使用する
使用例: ``` User: "Review this code for async operations compliance" Agent: [Analyzes code against guidelines and provides specific feedback] ```

絶対に守るべき原則

  1. .then() チェーンよりも必ず async/await を使用してください — async/await は直線的で読みやすいコードになります。.then() チェーンはネストして制御フローを分かりにくくし、エラー処理の見通しを悪くします。
  2. 非同期のコンポーネント初期化には必ず onMount(Svelte)または useEffect(React)を使用してください — コンポーネント本体のトップレベルで直接非同期処理を行うと、DOM の準備が整う前に実行されることがあります。ライフサイクルフックを使えば、適切なタイミングが保証されます。
  3. 非同期コールバックで forEach を使用しないでください — array.forEach(async fn) はすべての非同期呼び出しを待機せずに実行し、その拒否を無視します。逐次処理には for...of を、並列処理には Promise.all(array.map(async fn)) を使用してください。
  4. すべての Promise に必ず明示的なエラー処理を追加してください — 処理されない Promise の拒否は Node.js プロセスをクラッシュさせ、ブラウザーではエラーを表面化させずに失敗します。async/await では try/catch を、.then() チェーンでは .catch() を使用してください。
  5. 同じ関数内で async/await と .then() を混在させないでください — スタイルを混在させると、制御フローが分かりにくくなります。ひとつのパターンを選び、関数全体で一貫して適用してください。

アンチパターン

アンチパターン問題点正しい方法
array.forEach(async fn)非同期コールバックは実行後に待機されず、拒否が処理されないfor...of(逐次処理)または Promise.all(arr.map(...))(並列処理)を使用する
処理されない Promise の拒否Node.js がクラッシュし、ブラウザーではエラーを表面化させずに失敗する必ず try/catch で囲むか、.catch() を追加する
.then() と await の混在制御フローが分かりにくく、エラーの適用範囲が不明確になる関数ごとにひとつのスタイルを一貫して使用する
コンポーネント本体のトップレベルの非同期処理DOM の準備が整う前に実行され、競合状態が発生するライフサイクルフック(onMount、useEffect)を使用する
3 階層以上の .then() チェーンコールバックがピラミッド状になり、デバッグしにくい直線的で読みやすい async/await に変換する

メモリプロトコル(必須)

開始前:

cat .claude/context/memory/learnings.md

完了後: 新たに見つかったパターンや例外を記録してください。

中断されることを前提にしてください。コンテキストがリセットされる場合があります。メモリに記録されていなければ、実行されていないものとします。

コメント