Anti-patterns 完全集(試験の誤答選択肢対策)
試験の誤答選択肢は「知識があると選びやすい」anti-pattern で設計されています。ドメイン別に整理します。
Domain 1: Agentic
- 自然言語シグナル(「完了しました」)でエージェンティックループ終了を判定
- 固定の繰り返し回数を主要停止機構にする
- アシスタントのテキストコンテンツ有無を完了指標にする
- prompt 指示だけで金融操作の順序を強制する(非ゼロ失敗率)
- サブエージェント同士を直接通信させる(コーディネーターを経由しない)
- タスク分解が狭すぎてトピックの一部しかカバーしない
- コーディネーターがすべての状況で全パイプラインを通す(動的選択をしない)
- 独立タスクを別ターンで順次実行する(並列化機会の損失)
- サブエージェントが必要な情報をプロンプトに含めない(コンテキスト自動継承の誤想定)
- サブエージェント description が最小限で、コーディネーターが選択を誤る
Domain 2: Tool / MCP
- ツール description が最小限(“Retrieves information” 等)
- 汎用エラー “Operation failed” を返す(構造化情報なし)
- タイムアウト(access failure)を「成功・結果は空」として返す
- 1 エージェントに 18 個のツールを与える
- 合成エージェントに Web 検索ツールを与える(専門外・誤用の原因)
- チーム共有設定を
~/.claude.jsonに置く(個人スコープ) - 1 つの巨大ツールで action 引数で分岐させる(権限管理が不可能)
- 削除操作を含むツールに固有の hook を設定しない(事故の温床)
Domain 3: Claude Code
- チームへのコマンド配布を
~/.claude/commands/に置く - ディレクトリ横断ルールにサブディレクトリ CLAUDE.md を使う(glob パターン不可)
- 単一ファイルのバグ修正に Plan mode を使う(オーバーキル)
- CI/CD で
-pフラグなしに Claude Code を実行(ハングする) CLAUDE_HEADLESS=trueを使う(存在しない)--batchフラグを使う(存在しない)- コードを生成した同じセッションでレビューさせる(認知バイアス)
allowed-toolsでツールをブロックしようとする(事前承認機能であり、ブロック機能ではない)@import path/to/fileと書く(正しくは@path/to/fileのみ)- 「保存後に prettier 実行」を CLAUDE.md に書く(決定論的な PostToolUse hook で実装すべき)
- 個人 override 設定を
.claude/CLAUDE.mdに書く(チームを汚染する。CLAUDE.local.mdを使うべき)
Domain 4: Prompt Engineering
- “be conservative” 等の曖昧な精度指示(効果なし)
- 情報が存在しないかもしれないフィールドを required にする(ハルシネーション (hallucination) の原因)
- pre-merge ブロッキングチェックに Batch API を使う(SLA 保証なし)
- 情報がそもそも存在しない場合にリトライを繰り返す(効果なし)
- 大量ファイルを一度にレビューさせる(注意分散; attention dilution)
- コード生成インスタンスに自分でレビューさせる(認知バイアス)
tool_useを含むワークフローを Batch に投げる(バッチではエージェンティックループが展開できない)
Domain 5: Context
- センチメントスコアでエスカレーション判断する(複雑度と無相関)
- 自己報告型信頼スコアでエスカレーション判断する(キャリブレーション不良)
- ツール出力を全フィールドそのままコンテキストに蓄積する
- エラーを「成功・結果は空」として返す
- 単一サブエージェントの失敗でワークフロー全体を終了させる
- 複数ソースが競合する場合に一方を任意選択する(出所情報 (provenance) が消える)
- 「大きなコンテキストウィンドウ」で注意分散を解決しようとする
/compactに頼って transactional facts(金額・ID・日付)を要約に流す- permission error をリトライする(リトライ可能タイプではない)
- 「情報がドキュメントに存在しない」ケースで何度もリトライする
試験直前の最終確認 — この 10 点を確実に
🎯
stop_reasonの値:"tool_use"→ 継続、"end_turn"→ 終了- CLAUDE.md の 4 階層:user(
~/.claude/)/ project(.claude/)/ project-local(CLAUDE.local.md)/ directory(サブディレクトリ) tool_choiceの 3 設定:auto / any / forced — 違いと使いどころ- プログラマティック強制 vs プロンプト指示の判断基準
- Batch API が適さないワークフロー(ブロッキング・SLA 必要・エージェンティックループ含む)
- サブエージェントはコンテキストを自動継承しない(D1.4)
- センチメントスコアはエスカレーション基準として使えない
- サブエージェント独立タスクは 1 レスポンスで並列実行(D1.3)
allowed-toolsはブロック機能ではなく事前承認機能(実際にブロックするのはpermissions.deny)- Agent SDK Hooks(D1.5)と Claude Code Hooks(D3.3)は別物
Last updated on