# claude-ops テンプレート(サンプル)

Dev Study「Amazon Bedrock で Claude を使う」の「開発運用で用意するスキル・サブエージェント・フック」で説明しているファイル一式です。
そのまま使うものではなく、チームで議論するための土台です。

## 置き場所(リポジトリにコミットする)
```
.claude/
  settings.json          ← hooks の定義(このフォルダの settings.json)
  hooks/*.sh             ← フックのスクリプト(chmod +x を忘れずに)
  skills/<name>/SKILL.md ← スキル(役割ごとの手順書 9本 + 言語・フレームワーク別の監査 4本 + 共通 5本)
  agents/<name>.md       ← サブエージェント(役割 9本 + 言語・フレームワーク別の監査役 4本)
```
`.claude/audit/` と `.claude/state/` を `.gitignore` に追加してください。

## 役割とスキルの対応
| サブエージェント | 役割 | preload するスキル |
|---|---|---|
| tech-lead | 分解・委任・判定(Agent ツールで他の役割を呼ぶ。`claude --agent tech-lead` で主担当にもできる) | tech-lead-playbook, jp-only-policy |
| implementer | 実装(Edit / Write あり) | implement-task, jp-only-policy |
| reviewer | 差分の点検 | pr-review-rules |
| security-auditor | 秘密情報・入力検証・認可・依存 | security-audit, aws-docs-lookup |
| perf-evaluator | 計測と改善候補 | perf-review |
| code-architect | 境界・依存・ADR(Write は docs/adr/ のみの約束) | architecture-review |
| qa | テスト観点・テスト作成・実行 | qa-test-plan |
| sre | 監視・リリース・障害対応(AWS は読み取りのみ) | sre-ops-review, incident-triage, jp-only-policy(daily-health は disable-model-invocation: true のため preload されない。スケジュールの claude -p から呼ぶ) |
| db-reviewer | マイグレーション・インデックス・バックアップ | db-review |
| angular-reviewer | Angular の書き方とセキュリティ(版は package.json から) | angular-audit, aws-docs-lookup |
| spring-reviewer | Spring Boot 4.x / Framework 7.x の書き方・設定・トランザクション | spring-audit, aws-docs-lookup |
| typescript-reviewer | 型の厳格さ・tsconfig の既定・7.0 への移行 | typescript-audit |
| java-reviewer | JDK の版で使える機能・例外と資源・並行処理・null | java-audit |

言語・フレームワーク別の監査スキルには「2026-10-07 時点の版」を書いてあります。版は変わるので、スキルの先頭の「版を確かめる」に従って公式ページで確かめ直してから使ってください。

共通スキル: incident-triage / daily-health / release-check / aws-docs-lookup / jp-only-policy(pr-review-rules は reviewer 用で、CI や手元でも使う)

## 前提
- jq が入っていること(フックは JSON を jq で読み書きします)。
- フックは「最善努力」の仕組みです。絶対に通したくない操作は permissions.deny(管理設定)に書いてください。
- `claude -p` はフォルダを信頼していなくても、リポジトリの `.claude/settings.json` のフックを実行します。他人のリポジトリで `-p` を回す前に中身を確認するか、`--bare` を使ってください。
- 組織で配るフックは管理設定(managed settings)に置き、`allowManagedHooksOnly` を使うとプロジェクトや個人のフックは動かなくなります。どちらにするかはチームで決めてください。
- サブエージェントは既定で3層まで入れ子にできます(`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` で変更)。点検役には `Agent` を渡していないので、点検役がさらに委任することはありません。
- 「Edit / Write を外した」役割も Bash は持っています。Bash 越しの書き込みまで禁じるなら、permissions.deny で絞ってください。
- `memory: project` は付けていません。公式は memory を有効にすると Read / Write / Edit が自動で有効になると書いており、disallowedTools との優先関係は明記がないため、「Edit / Write なし」の役割に付けると約束が崩れる可能性があります。使うなら実機で確認してください。
- スキルの `allowed-tools` は「スキルを呼び出したターン」の事前許可です。preload(起動時注入)でも効くか、`$ARGUMENTS` が置換されるかは公式に明記がなく未確認です。無人実行では確認が出る操作は失敗しうるので、実機で確かめてください。
- `model: sonnet` は、管理設定の env で `ANTHROPIC_DEFAULT_SONNET_MODEL` を jp. のモデルに固定していればそこに解決されます(未設定だと組み込みの既定になります)。
