AIOps 保管庫 コンパニオンスキル
このスキルは手順レイヤーです。ユーザーの現在の資産は含まれていません。現在の事実はローカルのAIOps保管庫(通常 $AIOPS_ROOT または ~/ai-ops)に保存されています。
真実の源泉契約
以下の分割を使用してください:
README.md: 安定したローカルルール、ファイルの役割、安全性の境界、プロジェクト固有の規約。resources.md: 現在信頼すべき状態。maintenance-log.jsonl: 決定、メンテナンス、チェック、インシデント、修正の追記専用履歴。secrets-location.md: シークレット名、保存場所、アクセス/ローテーションに関するメモのみ。シークレットの値は絶対に含めない。services/<service>/service-card.md: 中央のリソースファイルが大きくなりすぎた場合の、サービスごとのランブックと詳細。scripts/aiops.py: 保管庫に対する低トークンコマンドインターフェース。
このスキルから現在のインフラストラクチャを推測しないでください。保管庫を読み、安全な場合はライブ状態を検査してください。
デフォルトの読み取り順序
- 保管庫パスを解決する:
$AIOPS_ROOTが設定されていればそれを使い、そうでなければ~/ai-opsを使う。 - タスクがファイル、サービス、露出、認証情報、またはバックアップを変更する可能性がある場合は、最初にローカルの保管庫
README.mdを読む。 - 完全な読み取りの前に、コマンドレイヤーを実行する:
python3 "$AIOPS_ROOT/scripts/aiops.py" indexpython3 "$AIOPS_ROOT/scripts/aiops.py" resources --section "<section>"python3 "$AIOPS_ROOT/scripts/aiops.py" service "<name>"python3 "$AIOPS_ROOT/scripts/aiops.py" host "<name>"python3 "$AIOPS_ROOT/scripts/aiops.py" log --tail 20 --summary
- スライスされた出力で不十分な場合にのみ、完全な
resources.md、サービスカード、またはログ行を読む。 - ライブ状態と保管庫のドキュメントで質問に答えられない場合にのみ、セッション履歴を使用する。
安全性の境界
- シークレット値を読み取り、表示、コピー、保存しないでください。
secrets-location.mdはメタデータであり、シークレットダンプではありません。 - シークレットを
resources.md、ログ、サービスカード、プロンプト、Issueコメント、コミット、チャットサマリーに書き込まないでください。 - 不可逆的な操作や露出の高い操作(削除、上書き、ローテーション、復元、公開ポートの開放、DNSの変更、データの移行、バックアップの無効化、サードパーティ/フレンド所有のリソースへのアクセス)を行う前に確認してください。
- リソースプールを明示的にしてください。ユーザーが明示的にそのターゲットを許可しない限り、サードパーティやフレンド所有のインフラストラクチャを操作しないでください。
- 露出を最小限に抑えることを優先する:管理パスにはリバースプロキシまたはプライベートネットワーク経由のlocalhostを、意図的で認証済みの場合にのみ公開HTTPSを使用する。
メンテナンスワークフロー
- ターゲットを分類する:ホスト、サービス、ドメイン/DNS、リバースプロキシ、データ/バックアップ、シークレットの場所、自動化、または保管庫自体。
- リソースプールと権限範囲を特定する。
aiops.pyとサービスカードを通じて最小限の現在のコンテキストを読み込む。- 必要に応じて安全なコマンドでライブ状態を検査する。
- 最小限の可逆的なアクションを計画し、高リスクな手順を明示する。
- 最小権限で実行する。
- 消費側からの実際の出力(ヘルスチェック、ログ、HTTPリクエスト、
systemctl、docker ps、バックアップ一覧など)で検証する。 - 適切なレイヤーを更新する:
- 現在の事実 →
resources.mdまたはサービスカード。 - 重要な履歴 → 1つの追記された
maintenance-log.jsonlオブジェクト。 - シークレットの場所 → 値なしの
secrets-location.md。 - サービスローカルの詳細 → サービスのREADME/カード。
- 現在の事実 →
- 変更がプライベートなローカル事実だけでなく、再利用可能なAIOpsワークフロー/ツールを改善する場合、汎用部分をテンプレートリポジトリ
~/projects/aiops-vault-templateに同期し、そのテスト/チェックを実行し、コミットしてプッシュすることで、ダウンストリームのAIOS Kit利用者が改善を受け取れるようにする。プライベートなリソース、ログ、シークレットを公開テンプレートにコピーしない。 - 保管庫変更後に
python3 "$AIOPS_ROOT/scripts/aiops.py" checkを実行する。 - 変更したファイル、コマンド、検証、スキップ/ブロックされた項目、フォローアップを報告する。
書き戻しルール
- 現在の状態は、履歴ログだけでなく
resources.mdまたはサービスカードに属する。 - 履歴は
maintenance-log.jsonlに属し、1行に1つの有効なJSONオブジェクトとする。 - 修正は新しい
correctionまたはsupersedeエントリとして行う。ユーザーが移行を要求しない限り、履歴を書き換えない。 - 同じ事実をREADME、resources、サービスカード、ログに重複して記述しない。所有するレイヤーを選ぶ。
- 大きな生の証拠は
evidence/下か、保管庫の外部にパス参照とともに保存する。
検証チェックリスト
確定前に行うこと:
python3 "$AIOPS_ROOT/scripts/aiops.py" checkが成功するか、失敗の理由が説明されていること。- JSONLファイルがパースできること。
- 明らかなシークレット値が追加されていないこと。
- 現在の状態の変更がメンテナンスログのみに記録されていないこと。
- レスポンス内の主張が保管庫ファイルまたはライブコマンドの出力によって裏付けられていること。
- 高リスクなアクションが確認されたか、明示的に提案ステップとして残されていること。
保管庫がない場合
AIOps保管庫が存在せず、ユーザーがそれを希望する場合、テンプレートリポジトリをインストールするか、最小限のレイアウトを作成する:
ai-ops/
README.md
resources.md
maintenance-log.jsonl
maintenance-log.schema.md
secrets-location.md # プライベート、Gitで無視
secrets-location.example.md
scripts/aiops.py
その後 python3 scripts/aiops.py check を実行する。