69 lines
2.8 KiB
Markdown
69 lines
2.8 KiB
Markdown
|
|
# Claude実行環境の既知のバグ
|
|||
|
|
|
|||
|
|
## 🐛 Bash Glob展開バグ(Issue #5811)
|
|||
|
|
|
|||
|
|
**問題:** Claude Code v1.0.61-1.0.81でglob展開がパイプと一緒に使うと動作しない
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# ❌ 失敗するパターン(asteriskが"glob"という文字列に置換される)
|
|||
|
|
ls *.md | wc -l # エラー: "ls: 'glob' にアクセスできません"
|
|||
|
|
find . -name "*.rs" # エラー: "glob"になる
|
|||
|
|
ls src/backend/vm_*.rs # エラー: "glob: そのようなファイルやディレクトリはありません"
|
|||
|
|
|
|||
|
|
# ✅ 回避策1: bash -c でラップ(最も簡単)
|
|||
|
|
bash -c 'ls *.md | wc -l'
|
|||
|
|
bash -c 'ls src/backend/vm_*.rs | xargs wc -l'
|
|||
|
|
# → Claudeではなくbash自身がglob展開するので動作する
|
|||
|
|
|
|||
|
|
# ✅ 回避策2: findコマンドを使う(最も確実)
|
|||
|
|
find src/backend -name "vm_*.rs" -exec wc -l {} \;
|
|||
|
|
|
|||
|
|
# ✅ 回避策3: 明示的にファイル名を列挙
|
|||
|
|
wc -l src/backend/vm.rs src/backend/vm_values.rs
|
|||
|
|
|
|||
|
|
# ✅ 回避策4: ls + grepパターン
|
|||
|
|
ls src/backend/ | grep "^vm_" | xargs -I{} wc -l src/backend/{}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**影響を受けるパターン:**
|
|||
|
|
- `*.md`, `*.rs` - 通常のglob
|
|||
|
|
- `src/*.py` - パス付きglob
|
|||
|
|
- `file[12].md` - 文字クラス
|
|||
|
|
- `file{1,2}.md` - ブレース展開
|
|||
|
|
|
|||
|
|
**根本原因:** Claudeのコマンド再構築機能のバグ(`pattern`ではなく`op`フィールドを使用)
|
|||
|
|
|
|||
|
|
## 🚨 コンテキスト圧縮時の重要ルール
|
|||
|
|
|
|||
|
|
### ⚠️ **コンテキスト圧縮を検出した場合の必須手順**
|
|||
|
|
|
|||
|
|
**コンテキスト圧縮** = 会話履歴が要約される現象(conversation summaryで検出可能)
|
|||
|
|
|
|||
|
|
#### 🛑 **絶対にやってはいけないこと**
|
|||
|
|
- **推測で作業を続行しない**
|
|||
|
|
- 不完全な情報で重要な変更をしない
|
|||
|
|
- ビルドチェックを飛ばさない
|
|||
|
|
- ユーザー確認なしに進行しない
|
|||
|
|
|
|||
|
|
#### ✅ **必ず実行すべき手順**
|
|||
|
|
1. **⏸️ 作業停止** - 「コンテキスト圧縮を検出しました」と報告
|
|||
|
|
2. **📊 状況確認** - 以下を必ずチェック:
|
|||
|
|
```bash
|
|||
|
|
git status # 現在の変更状況
|
|||
|
|
git log --oneline -3 # 最近のcommit履歴
|
|||
|
|
cargo check # ビルド状況
|
|||
|
|
```
|
|||
|
|
3. **📋 現在タスク確認** - `CURRENT_TASK.md` を読み取り
|
|||
|
|
4. **🤝 明示的確認** - ユーザーに「次に何をしましょうか?」と確認
|
|||
|
|
|
|||
|
|
#### 📍 **現在状況の記録場所**
|
|||
|
|
- **進行中タスク**: `CURRENT_TASK.md`
|
|||
|
|
- **最後の安定状態**: git commit hash
|
|||
|
|
- **ビルド状況**: `cargo check` の結果
|
|||
|
|
- **重要な制約**: CURRENT_TASK.md内の注意事項
|
|||
|
|
|
|||
|
|
#### 💡 **圧縮時によくある混乱の回避**
|
|||
|
|
- 「何をしていたか」→ `CURRENT_TASK.md`で確認
|
|||
|
|
- 「ビルドできるか」→ `cargo check`で確認
|
|||
|
|
- 「どこまで進んだか」→ `git log`で確認
|
|||
|
|
- 「次は何か」→ **ユーザーに明示的に確認**
|