Skip to content

原文(日本語に翻訳)

多くのスキルファイルが同時に変更された際(例:.claude/skills/ ディレクトリに大量のスキルファイルを持つリポジトリでの git pull)にClaude Codeがフリーズする可能性のあるデッドロックを修正しました。

原文(英語)

Fixed a deadlock that could freeze Claude Code when many skill files changed at once (e.g. during git pull in a repo with a large .claude/skills/ directory)

概要

Claude CodeはスキルファイルをホットリロードするためにClaudeスキルディレクトリ(.claude/skills/)を監視しています。多数のスキルファイルが同時に変更された場合(特にgit pullgit checkoutなどでまとめてファイルが変わるとき)、ファイル監視のイベントが競合してデッドロックが発生し、Claude Codeが応答しなくなる問題がありました。バージョン2.1.73でこの問題が修正され、大規模なスキルリポジトリでも安定して動作するようになりました。

基本的な使い方

修正後は、スキルファイルが大量に変更されても Claude Code は正常に動作し続けます。

bash
# スキルファイルを多数含むリポジトリでの git pull
cd /my-project
git pull origin main  # .claude/skills/ 以下の多数のファイルが更新される場合

# → v2.1.73以前はこの後 Claude Code がフリーズすることがあった
# → v2.1.73以降は正常に動作継続

実践例

チームで共有スキルディレクトリを管理する

大規模チームでは、共有スキルを Git で管理して配布するケースがあります。

bash
# チームのスキルリポジトリ構造の例
.claude/
  skills/
    code-review.md        # コードレビュースキル
    test-generator.md     # テスト生成スキル
    doc-writer.md         # ドキュメント生成スキル
    security-audit.md     # セキュリティ監査スキル
    # ... 多数のスキルファイル

# チームメンバーが最新スキルを取得
git pull origin main
# → すべてのスキルファイルが同時更新されても Claude Code は安定動作

CI/CDパイプラインでのスキル更新

bash
# スキルファイルを含むリポジトリを CI でクローン
git clone https://github.com/company/project.git
cd project

# Claude Code をバックグラウンドで起動しつつスキルを使う
claude --print "テストを実行してください"

スキルディレクトリのサイズを確認する

bash
# スキルファイルの数を確認
find .claude/skills/ -name "*.md" | wc -l

# スキルディレクトリの合計サイズ
du -sh .claude/skills/

注意点

  • この問題は特に .claude/skills/ ディレクトリに多数(目安として10ファイル以上)のスキルファイルがある場合に発生しやすい状況でした
  • git pullgit checkoutgit merge など、複数ファイルを同時に変更する Git 操作後に Claude Code がハングしていた場合、このバグが原因だった可能性があります
  • バージョン2.1.73にアップデートすることで自動的に修正されます(設定変更は不要)
  • スキルのホットリロード機能(ファイル変更の自動検知)は引き続き正常に機能します

関連情報