install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/concurrency-async" ~/.claude/skills/majiayu000-claude-skill-registry-concurrency-async && rm -rf "$T"
manifest:
skills/data/concurrency-async/SKILL.mdsource content
Concurrency and Async
📋 実行前チェック(必須)
このスキルを使うべきか?
- 並列処理を実装する?
- async/awaitを使用する?
- 競合状態の懸念がある?
- Promise.all等で並列実行する?
前提条件
- 各タスクが独立しているか確認したか?
- 順序依存性を把握しているか?
- エラーハンドリングを検討したか?
禁止事項の確認
- 独立タスクを順次実行しようとしていないか?
- 競合状態を無視しようとしていないか?
- await漏れがないか確認したか?
- Promise.allでの1つの失敗で全体が失敗することを考慮したか?
トリガー
- 並列処理実装時
- async/await使用時
- 競合状態の懸念がある時
- Promise.all等の並列実行時
🚨 鉄則
競合状態を常に意識。シンプルに保つ。
並列実行
// ✅ 独立タスクは並列 const [users, products] = await Promise.all([ fetchUsers(), fetchProducts() ]); // ❌ 不要な順次実行 const users = await fetchUsers(); const products = await fetchProducts();
エラーハンドリング
// Promise.allは1つ失敗で全体失敗 // 個別にエラーハンドリングしたい場合 const results = await Promise.allSettled([ fetchUsers(), fetchProducts() ]); results.forEach(result => { if (result.status === 'fulfilled') { console.log(result.value); } else { console.error(result.reason); } });
🚫 禁止事項まとめ
- 独立タスクの順次実行
- 競合状態の無視
- await漏れ
- エラーハンドリング忘れ