mcpField
L
ln-629-lifecycle-auditor

ln-629-lifecycle-auditor

github.com/levnikolaevichテスト・品質584313 回インストール2 日前に更新
リポジトリ

ln-629-lifecycle-auditor について

ln-629-lifecycle-auditorは、アプリケーションのライフサイクルを対象とするコードベース監査スキルです。起動順序、終了処理、シグナル処理、リソース解放、ヘルスプローブを確認し、監査担当者向けに採点レポートを作成します。

主な機能

  1. 01起動順序の確認
  2. 02正常終了処理のレビュー
  3. 03シグナル処理の確認
  4. 04リソース解放のレビュー
  5. 05デプロイ形態に応じたプローブ確認
  6. 06採点付き Markdown レポート

活用シーン

  1. 01サービスコードベースのライフサイクル処理のレビュー
  2. 02デプロイ前の終了時クリーンアップ確認
  3. 03コンテナアプリのヘルスプローブ監査

MCP 対応

ホストの MCP 設定に従い、ライフサイクル追跡やコード読み取りに hex-graph または hex-line を利用できます。MCP が利用できない場合や適さない場合は、組み込みツールに切り替えます。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-629-lifecycle-auditor

インストール後、Claude Code で/ln-629-lifecycle-auditorを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
audit_output_schema.md
audit_scoring.md
audit_summary_contract.md
audit_worker_core_contract.md
mcp_integration_patterns.md
mcp_tool_preferences.md
two_layer_detection.md
references/templates/
audit_worker_report_template.md

詳細

パス: ファイルパス(references/、../ln-*)は、このスキルディレクトリからの相対パスです。

ライフサイクル監査(L3 ワーカー)

タイプ: L3 ワーカー

アプリケーションのライフサイクルとエントリーポイントを監査する専門ワーカーです。

目的と範囲

  • ライフサイクルを監査します(カテゴリ 12:中優先度)
  • ブートストラップ、シャットダウン、シグナル処理、プローブを確認します
  • コンプライアンススコア(X/10)を算出します

入力

必ず読み込むこと: references/audit_worker_core_contract.md を読み込みます。 ツールポリシー:ホストの AGENTS.md にある MCP の設定に従います。ホストポリシーがない場合、または MCP の動作が不明確な場合に限り、references/mcp_tool_preferences.md と references/mcp_integration_patterns.md を読み込みます。

技術スタック、デプロイタイプ、コードベースのルート、output_dir を含む contextStore を受け取ります。

ライフサイクルの追跡によって確信度が大きく向上する場合は、まず hex-graph を使用します。利用可能な場合は、ローカルコードの読み取りに hex-line を優先します。MCP が利用できない、サポートされていない、またはインデックス化されていない場合は、組み込みの Read/Grep/Glob/Bash を使用して続行し、レポートにフォールバックを明記します。

ワークフロー

検出ポリシー:2 層検出(候補のスキャン、続いてコンテキストの検証)を使用します。検証方法が曖昧な場合に限り、references/two_layer_detection.md を読み込みます。

  1. コンテキストと output_dir を解析します
  2. ライフサイクルのパターンを確認します(レイヤー 1:SIGTERM、シャットダウンハンドラー、プローブを grep します)
  3. 候補ごとにコンテキストを分析します(レイヤー 2):
    • ブートストラップの順序:メインファイルを読み取ります。実際の初期化順序を追跡し、依存関係が使用前に満たされていることを確認します
    • グレースフルシャットダウン:シグナルハンドラーを読み取ります。すべてのリソースを実際に閉じていますか?それともログを出力して終了するだけですか?
    • リソースのクリーンアップ:シャットダウンハンドラーを読み取ります。開いたすべてのリソース(DB、Redis、キュー)が閉じられていますか?
    • プローブ:デプロイ設定(Dockerfile、k8s マニフェスト)を確認します。このアプリケーションはコンテナ化されていますか?
  4. 確認済みの検出結果を収集します
  5. スコアを算出します
  6. レポートの作成: references/templates/audit_worker_report_template.md に従って完全な Markdown レポートをメモリ上に作成し、単一の Write 呼び出しで {output_dir}/ln-629--global.md に書き込みます
  7. 概要の返却: 最小限の概要をコーディネーターに返します

監査ルール

1. ブートストラップの初期化順序

検出:

  • メインファイル/インデックスファイルで初期化順序を確認します
  • 依存関係が使用前に読み込まれていることを確認します(ルートより先に DB)

深刻度:

  • 高: 順序が不適切だと起動に失敗します

推奨事項: 正しい順序で初期化します:config -> DB -> routes -> server

作業量: M(起動処理のリファクタリング)

2. グレースフルシャットダウン

検出:

  • SIGTERM、SIGINT ハンドラーを grep します
  • process.on('SIGTERM')(Node.js)を確認します
  • signal.Notify(Go)を確認します

深刻度:

  • 高: シャットダウンハンドラーがありません(突然終了します)

推奨事項: SIGTERM ハンドラーを追加し、接続を正常に閉じます

作業量: M(シャットダウン処理の追加)

3. 終了時のリソースのクリーンアップ

検出:

  • シャットダウン時に DB 接続が閉じられているか確認します
  • ファイルハンドルが解放されていることを確認します
  • ワーカースレッドが停止しているか確認します

深刻度:

  • 中: シャットダウン時にリソースリークが発生します

推奨事項: シャットダウンハンドラーですべてのリソースを閉じます

作業量: S-M(クリーンアップ呼び出しの追加)

4. シグナル処理

検出:

  • SIGTERM、SIGINT、SIGHUP のハンドラーを確認します
  • 子プロセスへのシグナル伝播が適切か確認します

深刻度:

  • 中: シグナルハンドラーが不足しています

推奨事項: すべての標準シグナルを処理します

作業量: S(シグナルハンドラーの追加)

5. ライブネス/レディネスプローブ

検出(コンテナ化されたアプリケーションの場合):

  • /live、/ready エンドポイントを確認します
  • Kubernetes のプローブ設定を確認します

深刻度:

  • 中: プローブがありません(Kubernetes がヘルス状態を検出できません)

推奨事項: /live(実行中かどうか)と /ready(トラフィックを受け入れる準備ができているかどうか)を追加します

作業量: S(エンドポイントの追加)

スコアリングアルゴリズム

必ず読み込むこと: references/audit_scoring.md を読み込みます。

出力形式

必ずお読みください: references/templates/audit_worker_report_template.md を読み込んでください。

references/audit_summary_contract.md に従って JSON サマリーを作成してください。管理モードでは、呼び出し元から runId と summaryArtifactPath の両方が渡されます。スタンドアロンモードでは、共有コントラクトに従って、ワーカーが実行単位のアーティファクトパスを生成します。

{output_dir}/ln-629--global.md に、category: "Lifecycle" および次のチェック項目を含むレポートを作成してください:bootstrap_order、graceful_shutdown、resource_cleanup、signal_handling、probes。

references/audit_summary_contract.md に従ってサマリーを返してください。

summaryArtifactPath がない場合は、スタンドアロンの実行時サマリーを .hex-skills/runtime-artifacts/runs/{run_id}/evaluation-worker/{worker}--{identifier}.json に書き込み、同じサマリーを構造化出力にも任意で含めてください。

Report written: .hex-skills/runtime-artifacts/runs/{run_id}/audit-report/ln-629--global.md
Score: X.X/10 | Issues: N (C:N H:N M:N L:N)

参照ファイル

  • 監査出力スキーマ: references/audit_output_schema.md

重要なルール

すでに読み込まれている references/audit_worker_core_contract.md を適用してください。

  • 自動修正は禁止: 報告のみを行ってください。ライフサイクルの変更はダウンタイムのリスクがあります
  • デプロイ環境を考慮: デプロイ種別に応じてプローブのチェックを調整してください(Kubernetes ではプローブが必須、ベアメタルでは任意)
  • 工数の現実性: S = 1 時間未満、M = 1~4 時間、L = 4 時間超
  • 除外対象: CLI ツールとスクリプトは除外してください(長時間実行されるライフサイクルがないため)。サーバーレス関数も除外してください(ライフサイクルがプラットフォームによって管理されるため)
  • 初期化順序は重要: コンテキストにかかわらず、DB の初期化前の DB 使用は HIGH として指摘してください

完了の定義

すでに読み込まれている references/audit_worker_core_contract.md を適用してください。

  • contextStore を解析済み(デプロイ種別、output_dir)
  • 5 つすべてのチェックを完了済み(ブートストラップ順序、グレースフルシャットダウン、リソースのクリーンアップ、シグナル処理、プローブ)
  • 深刻度、場所、工数、推奨事項を含む指摘事項を収集済み
  • references/audit_scoring.md に従ってスコアを算出済み
  • {output_dir}/ln-629--global.md にレポートを書き込み済み(単一の Write 呼び出しでアトミックに書き込み)
  • コントラクトに従ってサマリーを書き込み済み

バージョン: 3.0.0 最終更新日: 2025-12-23

コメント