| name | review-ops |
| description | 運用スクリプト・サーバー初期設定・自動化構成・標準化手順 (server/init.md, server/automation.md,
server/windows-standard.md 系プロンプトで生成された成果物) を、セキュリティ・冪等性/再現性・
エラーハンドリング/ロバスト性・運用性/保守性・パフォーマンス/スケーラビリティ の5軸・100点満点で
独立エージェントに客観評価させる。現在のセッションでは直接採点せず、別エージェントへ dispatch する。
Trigger phrases: '運用スクリプトをレビューして', 'サーバー設定を評価して', 'review-ops',
'運用スクリプト 品質レビュー', 'init.md/automation.md/windows-standard.md の成果物レビュー'.
|
| disable-model-invocation | true |
| allowed-tools | Read Bash Agent |
| argument-hint | <レビュー対象スクリプト/設定ファイルのパス> |
運用スクリプト・サーバー設定 品質レビュー(エージェント分離実行)
このスキルは別エージェントを起動してレビューを行う。現在のセッションでは直接レビューしない。
実装コンテキスト(思考過程・設計判断・会話履歴)をレビューエージェントに渡さないことで客観性を確保する。
対象: $ARGUMENTS
対象: ops/server/*.md プロンプト (server-init, server-automation, server-windows-standard skill)
で生成されたサーバー運用スクリプト・初期設定・自動化構成・標準化手順。
目的: 「セキュリティ」「冪等性・再現性」「エラーハンドリング・ロバスト性」「運用性・保守性」
「パフォーマンス・スケーラビリティ」の5軸でサーバー運用成果物を100点満点で評価する。
実行手順
ステップ1: 情報収集(この実装セッションで行う)
以下の事実情報のみを収集する。実装の意図・目的・設計判断の説明は含めない。
レビューを開始する前に、以下をスクリプト・設定ファイルまたは作成者から確認すること。
| 確認項目 | 確認内容 |
|---|
| 対象サーバーの環境は何か? | OS(ディストリビューション・バージョン)、クラウド/オンプレミス、レンタルサーバー等 |
| このスクリプト・設定の目的は何か? | 初期構築・自動化・監視・デプロイ・バックアップ等の目的を1〜2文で言語化できるか |
どの ops/server/*.md プロンプトを使って生成したか? | init.md(初期設定)/ automation.md(自動化)/ windows-standard.md(Windows標準化)等 |
| 本番環境に適用予定か? | テスト環境のみ / ステージング / 本番環境のいずれか |
| 既存の運用ルール・制約はあるか? | 社内セキュリティポリシー、ネットワーク制約、利用禁止ツール等 |
上記が不明瞭な場合は、レビュー開始前に作成者へ確認すること。
対象スクリプト・設定ファイルの内容一式を収集する(引数でパス指定がある場合はそのファイル、範囲指定がある場合はその範囲)。
ステップ2: レビューエージェント起動
Agent ツールを使い、以下の設定で別エージェントを起動する:
Agent ツールの設定:
- subagent_type: "general-purpose"
- description: "Review ops script/config objectively"
- prompt: 以下のテンプレートに収集した情報を埋め込む
プロンプトテンプレート(レビューエージェントに渡す内容):
あなたは実装者とは別の客観的なシニアSRE/インフラエンジニアです。
以下の運用スクリプト・サーバー設定を、5項目・各20点・合計100点満点で評価してください。
## レビュー観点(5項目・各20点・合計100点)
### 1. セキュリティ 【配点:20点】
目的: スクリプト・設定がセキュリティベストプラクティスに準拠しており、攻撃面を最小化できているかを確認する。
権限・アクセス制御チェック:
- 最小権限の原則が守られているか(root/Administrator権限の不必要な使用がないか)
- ユーザー・グループの権限設定が適切か(ファイルパーミッション、sudo設定等)
- 不要なサービス・ポートが無効化されているか
秘密情報管理チェック:
- パスワード・APIキー・トークン等がハードコードされていないか
- 秘密情報が環境変数・シークレットマネージャー等で安全に管理されているか
- .env ファイルや認証情報ファイルが .gitignore に含まれているか
ネットワーク・通信チェック:
- ファイアウォール設定が適切か(必要なポートのみ開放)
- SSH設定が安全か(パスワード認証の無効化、鍵認証、ポート変更等)
- 通信が暗号化されているか(TLS/SSL、SSH等)
パッチ・更新管理チェック:
- 自動セキュリティアップデートが設定されているか(unattended-upgrades等)
- OWASP等のセキュリティベストプラクティスに準拠しているか
- セキュリティ監査ログの取得が設定されているか
採点目安:
| 点数 | 基準 |
|------|------|
| 18〜20 | 最小権限・秘密情報管理・ファイアウォール・SSH・パッチ管理・監査ログが全て適切に設定されている |
| 14〜17 | おおむね安全だが、一部の設定(秘密情報管理やファイアウォール等)に改善の余地がある |
| 10〜13 | 基本的なセキュリティは考慮されているが、重要な設定漏れがある(パスワードのハードコード、root常用等) |
| 0〜9 | セキュリティがほぼ考慮されておらず、本番環境への適用は危険 |
### 2. 冪等性・再現性 【配点:20点】
目的: スクリプトを複数回実行しても安全であり、異なる環境でも同一の結果が得られるかを確認する。
冪等性チェック:
- スクリプトを複数回実行しても安全か(二重作成・二重起動等が発生しないか)
- リソースの存在チェック(`if ! command -v ...`、`test -f` 等)を行ってから作成・変更しているか
- サービスの状態を確認してから起動・停止しているか
環境依存排除チェック:
- 環境固有の値(IPアドレス、ホスト名、パス等)が変数・パラメータとして外部化されているか
- ハードコードされた環境依存値がないか
- 設定ファイルがテンプレート化されているか(envsubst、sed置換等)
再現性・移植性チェック:
- 別環境への移植が容易か(開発→ステージング→本番の流れが想定されているか)
- Infrastructure as Codeの原則に準拠しているか(手作業を排除できているか)
- バージョン管理(Git等)との統合が考慮されているか
- 依存パッケージのバージョンが固定されているか(`apt install package=version` 等)
採点目安:
| 点数 | 基準 |
|------|------|
| 18〜20 | 完全に冪等で、環境変数による外部化、テンプレート化、バージョン固定が全て実装されている |
| 14〜17 | おおむね冪等だが、一部のリソース作成で存在チェックが欠けている、またはバージョン固定が不十分 |
| 10〜13 | 冪等性が部分的にしか確保されておらず、再実行時にエラーや副作用が発生する可能性がある |
| 0〜9 | 冪等性がほぼ考慮されておらず、再実行が危険。環境依存値がハードコードされている |
### 3. エラーハンドリング・ロバスト性 【配点:20点】
目的: 異常系・障害時に適切に処理され、問題の特定と復旧が容易にできるかを確認する。
エラー処理チェック:
- `set -euo pipefail`(または同等のエラー即時停止設定)が使用されているか
- `trap` による終了時・エラー時のクリーンアップ処理が定義されているか
- 各コマンドの戻り値が適切にチェックされているか
- エラーメッセージが具体的で原因特定に役立つ内容か
ログ・可観測性チェック:
- ログ出力が十分か(開始・終了・主要ステップ・エラー詳細)
- ログにタイムスタンプが含まれているか
- ログレベル(INFO / WARN / ERROR等)が適切に使い分けられているか
- ログの出力先が適切か(stdout/stderr の使い分け、ログファイルへの出力)
復旧・ロールバックチェック:
- ロールバック手順が定義されているか(失敗時に元の状態に戻せるか)
- バックアップが変更前に自動取得されているか
- タイムアウト設定が適切か(無限待ち状態が発生しないか)
- リトライ処理が必要な箇所に実装されているか(ネットワーク接続・外部API呼び出し等)
- 依存サービスの障害時の挙動が考慮されているか(graceful degradation)
採点目安:
| 点数 | 基準 |
|------|------|
| 18〜20 | `set -euo pipefail` + `trap` + 詳細ログ + ロールバック + リトライが全て実装されている |
| 14〜17 | 基本的なエラー処理はあるが、ロールバックまたはリトライの一部が不十分 |
| 10〜13 | エラー処理が部分的で、失敗時の挙動が予測しにくい。ログが不十分 |
| 0〜9 | エラー処理がほぼなく、失敗時にサイレントに続行する、または状態が不明になる |
### 4. 運用性・保守性 【配点:20点】
目的: 長期運用において読みやすく、保守しやすく、他のメンバーでも理解・修正できるかを確認する。
可読性チェック:
- コメントが適切に記述されているか(各セクション・関数・複雑なロジックに説明がある)
- 変数名・関数名が目的を表す分かりやすい命名になっているか
- スクリプトの冒頭に使用方法・前提条件・概要が記載されているか
- マジックナンバーが定数として定義されているか
モジュール化チェック:
- 処理が再利用可能な関数・モジュールに分割されているか
- 1ファイルが肥大化しすぎていないか(責務ごとにファイル分割されているか)
- 共通処理が共有ライブラリとして切り出されているか
監視・アラートチェック:
- 監視設定が含まれているか(CPU・メモリ・ディスク・プロセス監視等)
- アラート通知の仕組みがあるか(メール・Slack・PagerDuty等)
- 閾値が適切に設定されているか
ログ・ディスク管理チェック:
- ログローテーションが設定されているか(logrotate等)
- ディスク容量管理が考慮されているか(不要ファイルの自動削除・容量監視等)
- 一時ファイルのクリーンアップが実装されているか
採点目安:
| 点数 | 基準 |
|------|------|
| 18〜20 | コメント・命名・モジュール化・監視・アラート・ログローテーションが全て適切に整備されている |
| 14〜17 | おおむね保守しやすいが、一部のコメント不足やモジュール化の余地がある |
| 10〜13 | 可読性に問題があり、他メンバーが理解するのに時間がかかる。監視設定が不十分 |
| 0〜9 | コメントがほぼなく、処理の意図が不明。監視・アラートが未設定 |
### 5. パフォーマンス・スケーラビリティ 【配点:20点】
目的: リソースの効率的な使用と、将来の負荷増加・規模拡大に対応できる設計になっているかを確認する。
リソース効率チェック:
- CPU・メモリ使用量が適切か(不要な常駐プロセス・メモリリークの可能性がないか)
- ディスクI/Oが最適化されているか(不要な読み書きの削減)
- ネットワーク帯域の使用が適切か(圧縮転送・差分同期等)
高負荷対応チェック:
- 大量データ・高負荷時の挙動が考慮されているか(バッチサイズ制限・レート制限等)
- 並列処理が適切に活用されているか(xargs -P、GNU parallel等)
- 処理の並列度が制御可能か(同時実行数の上限設定)
キャッシュ・バッファチェック:
- キャッシュ設定が適切か(アプリケーションキャッシュ・DNSキャッシュ等)
- バッファサイズが適切に設定されているか(カーネルパラメータ・アプリケーション設定)
- スワップ設定が適切か(swappiness等)
スケーラビリティチェック:
- スケールアップ(リソース増強)への対応が容易か
- スケールアウト(台数追加)への対応が設計されているか(ロードバランサー・クラスタ構成等)
- 将来の負荷増加に対する見積もり・計画が考慮されているか
- コンテナ化・オーケストレーション対応が検討されているか(Docker、Kubernetes等)
採点目安:
| 点数 | 基準 |
|------|------|
| 18〜20 | リソース効率・高負荷対応・キャッシュ設定・スケールアップ/アウト設計が全て適切に考慮されている |
| 14〜17 | 基本的なパフォーマンスは確保されているが、スケーラビリティ設計の一部が不十分 |
| 10〜13 | パフォーマンスへの配慮が部分的で、高負荷時に問題が発生する可能性がある |
| 0〜9 | パフォーマンス・スケーラビリティがほぼ考慮されておらず、規模拡大に対応できない |
## 行動原則
`.claude/skills/_shared/review-rubrics.yaml` の `common_principles`(evidence_based / citation_required / non_destructive)を Read して適用すること。加えて本 skill 固有の原則として:
- セキュリティ指摘は最優先で報告する: 秘密情報のハードコード、過剰な権限設定、未暗号化通信等の
セキュリティリスクを発見した場合は、スコアに関わらず「セキュリティ上の緊急指摘事項」セクションに
即座に記載すること
- 本番環境への影響を常に意識する: テスト環境でのみ検証されたスクリプトであっても、本番適用時の
リスクを想定してレビューすること。特に冪等性・ロールバック・エラーハンドリングは本番障害に
直結するため厳しく評価する
## レビュー対象
[ここに対象スクリプト・設定ファイルの内容一式を埋め込む]
## 基本情報
- 対象スクリプト/設定:
- 対象環境(OS・サーバー種別):
- 使用したプロンプト(server-init / server-automation / server-windows-standard):
- 適用先(テスト / ステージング / 本番):
## 採点方法(総合点:100点満点)
`.claude/skills/_shared/review-rubrics.yaml` を Read し、`verdict_scales.rank5_100` の bands/meaning に従って S/A/B/C/D を判定すること(点数帯・各段階の対応方針は同ファイルが SoT)。
## 出力
以下のフォーマットで構造化されたレビューレポートを出力すること。
```markdown
# 運用スクリプト・サーバー設定 レビュー結果
## 基本情報
- 対象スクリプト/設定:
- レビュー日:
- 対象環境(OS・サーバー種別):
- 使用したプロンプト(init.md / automation.md / windows-standard.md):
- 適用先(テスト / ステージング / 本番):
## 総合評価
- **総合点:XX点 / 100点**
- **判定:X(S/A/B/C/D)**
## 観点別採点
| # | 観点 | 配点 | 得点 | 主なコメント |
|---|------|------|------|-------------|
| 1 | セキュリティ | 20 | | |
| 2 | 冪等性・再現性 | 20 | | |
| 3 | エラーハンドリング・ロバスト性 | 20 | | |
| 4 | 運用性・保守性 | 20 | | |
| 5 | パフォーマンス・スケーラビリティ | 20 | | |
## 良かった点(Keep)
## 改善提案(Problem / Try)
## 具体的な強化が必要な箇所
| 観点 | 現状 | 不足している点 | 補強案 |
|------|------|---------------|--------|
| | | | |
## 重要チェック項目
| 項目 | 状態 | コメント |
|------|------|----------|
| 最小権限の原則 | ✅ / ❌ | |
| 秘密情報のハードコード排除 | ✅ / ❌ | |
| ファイアウォール設定 | ✅ / ❌ | |
| SSH安全設定 | ✅ / ❌ | |
| 冪等性の確保 | ✅ / ❌ | |
| 環境変数による外部化 | ✅ / ❌ | |
| set -euo pipefail 設定 | ✅ / ❌ | |
| ロールバック手順 | ✅ / ❌ | |
| ログ出力の充実度 | ✅ / ❌ | |
| 監視・アラート設定 | ✅ / ❌ | |
| ログローテーション | ✅ / ❌ | |
| スケーラビリティ設計 | ✅ / ❌ | |
## セキュリティ上の緊急指摘事項
(セキュリティ観点で即座に修正すべき問題がある場合にここに記載)
## 次のアクション推奨
(S/A判定の場合)→ 本番環境への適用手順を確認し、段階的にデプロイする
(B以下の場合)→ 上記改善提案を反映してから再レビュー
## 補足コメント
### ステップ3: 結果の報告
レビューエージェントから返却された結果を、そのままユーザーに表示する。
要約や解釈を加えない(レビューの客観性を維持するため)。
## 注意事項
- **絶対に実装セッション内で直接レビューしない**。必ず Agent ツールで別エージェントを起動すること
- レビューエージェントに渡す情報は事実(スクリプト・設定内容)のみ。実装の意図・設計判断は渡さない
- **レビュワーは元ファイルを絶対に編集してはならない**。レビューはあくまで「フィードバックの提供」
であり、修正作業は作成者自身が行う。改善点は具体的に指摘し、修正案は「提案」として記載すること
- 使用方法: (1) このスキルとレビュー対象のスクリプト・設定ファイルを一緒に渡す (2) 「この運用
スクリプトをレビューしてください」と依頼する (3) S/A判定であれば本番環境への適用を検討する
(4) B以下の場合は改善提案を反映してから再レビューを実施する
## 参照ドキュメント
- サーバー初期設定 skill: `.claude/skills/server-init/SKILL.md`
- サーバー自動化 skill: `.claude/skills/server-automation/SKILL.md`
- Windows標準化 skill: `.claude/skills/server-windows-standard/SKILL.md`
- 元プロンプト (SoT): `C:\Users\217216X721451\github\Job-Automate\workflows\ops-management\review-ops.md`