Claude-skill-registry concurrency-async

並行処理や非同期操作を実装する際に使用。

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.md
source 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漏れ
  • エラーハンドリング忘れ