mcpField
L
ln-647-configuration-boundary-auditor

ln-647-configuration-boundary-auditor

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

ln-647-configuration-boundary-auditor について

設定アクセスに明確なアーキテクチャ境界があるかを確認するコード監査スキルです。リポジトリのレビュー担当者向けで、設定やコードを変更せず、検証済みの問題を報告します。

主な機能

  1. 01環境変数の分散読み取りを検出
  2. 02型付き設定コントラクトの確認
  3. 03設定の所有範囲をレビュー
  4. 04アーキテクチャ層ごとに指摘を検証
  5. 05監査結果の採点と報告

活用シーン

  1. 01アプリケーション層全体の環境変数アクセスを確認
  2. 02サービス間で渡される型なし設定の特定
  3. 03ドメインやリポジトリコードでの設定読み込みを評価

MCP 対応

ローカルのコードや設定の読み取りには hex-line を優先し、シンボルや参照の分析が有用な場合は hex-graph を使います。MCP が利用できない、または未対応の場合は組み込みのリポジトリツールに切り替えます。

インストール

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

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-647-configuration-boundary-auditor

インストール後、Claude Code で/ln-647-configuration-boundary-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 ワーカー

設定アクセスに明確なアーキテクチャ上の境界があるかを監査する専門ワーカーです。

目的と対象範囲

  • 型付き設定の境界、散在する環境変数の読み取り、レイヤー間での設定の漏えい、設定の所有権を監査します
  • 設定の契約に依存せず、コードが環境変数や設定を直接読み取るアーキテクチャ上の問題を特定します
  • ADD_SETTINGS_BOUNDARY、STOP_SCATTERED_ENV_READS、または TYPE_CONFIG_CONTRACT を出力します
  • 適合スコア(X/10)を算出します

対象外:

  • .env の一覧、.env.example の完全性、コミットされた環境変数ファイル、またはシークレットの衛生管理
  • パッケージのセキュリティ、ビルドゲート、実行時の起動検証、ライフサイクルの準備状況
  • 環境変数ファイルの生成または設定の変更

入力

必須の読み込み: references/audit_worker_core_contract.md と references/mcp_tool_preferences.md を読み込みます。 ツールポリシー:ホストの AGENTS.md が対象範囲外の独立したサブエージェントとして実行される場合があるため、ファイルの読み取り、検索、編集には、まず hex-line MCP を使用してください。MCP の動作が不明確な場合に限り、references/mcp_integration_patterns.md を読み込みます。

tech stack、codebase root、output_dir、domain_mode、scan_path を含む contextStore を受け取ります。

シンボルや参照の分析によって設定境界に関する検出結果が大きく改善される場合は、まず hex-graph を使用します。ローカルのコードや設定ファイルの読み取りには、利用可能であればまず hex-line を使用します。MCP が利用できない、未対応、またはインデックス化されていない場合は、組み込みの Read/Grep/Glob/Bash を使用して続行し、レポートにフォールバックしたことを記載します。

ワークフロー

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

  1. コンテキストを解析 -- ドメインに対応したスコープまたはコードベースのルートから scan_root を決定します
  2. 設定アクセスを検出(第 1 層)
    • アプリケーション層、ドメイン層、サービス層での生の環境変数の読み取り
    • 同じ関心事に対する複数の設定クラス
    • サービス境界を通過する型なし設定辞書
    • コンポジション/ブートストラップ境界ではなく、下位のリーフ関数内での設定値の読み取り
  3. アーキテクチャのコンテキストを検証(第 2 層)
    • ブートストラップ時のフレームワーク管理下の設定アクセス -> スキップ
    • テストのみでの環境変数の読み取り -> スキップ
    • レイヤー化されたアーキテクチャを持たない小規模なスクリプト/CLI -> 重要度を下げるかスキップ
    • 境界を通過する型付き設定オブジェクト -> スキップ
  4. 検出結果を収集し、重要度、場所、アクション、工数、推奨事項を記録します
  5. references/audit_scoring.md を使用してスコアを算出します
  6. {output_dir}/ln-647--{identifier}.md にレポートを書き込みます
  7. references/audit_summary_contract.md に従って概要を返します

監査ルール

1. 環境変数の読み取りの散在

内容: 生の環境変数/設定の読み取りが、複数のアーキテクチャ層に散在しています

検出方法:

  • JavaScript/TypeScript:process.env
  • Python:os.getenv、os.environ
  • Go:os.Getenv
  • .NET/Java:ブートストラップ/設定モジュール以外での環境変数/設定への直接アクセス

重要度: ドメイン/ビジネスロジックが環境変数を直接読み取る場合は HIGH、サービスでは MEDIUM、アダプターでは LOW

アクション: STOP_SCATTERED_ENV_READS

2. 型付き設定境界の欠如

内容: 型付き設定の契約がないまま、設定が生の辞書、文字列、またはプリミティブとして渡されています

検出方法:

  • サービスのコンストラクターで使われる生の dict、Record<string, string>、Map<String,String>、または型なし設定オブジェクト
  • サービス間で繰り返されるプリミティブ型の設定パラメーター
  • 設定の読み取りが多数あるにもかかわらず、設定/スキーマオブジェクトがない

重要度: デフォルトでは MEDIUM、型なし設定にセキュリティ動作または永続化動作が依存する場合は HIGH

アクション: TYPE_CONFIG_CONTRACT

3. 設定の所有権の漏洩

概要: 下位レイヤーが、コンポジション境界から明示的な設定を受け取るのではなく、デプロイ時や実行時の設定を決定しています

検出方法:

  • リポジトリ、ドメインサービス、またはユーティリティモジュールが環境変数や設定を直接読み込んでいる
  • 複数のモジュールがそれぞれ独自の設定リーダーを構築している
  • ドメインロジックの深い階層で、デプロイ設定に応じて機能の動作を分岐している

重大度: ドメイン/永続化レイヤーの所有権の漏洩は高、サービスレイヤーの漏洩は中

対応: ADD_SETTINGS_BOUNDARY

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

必ず読むこと: references/audit_scoring.md を読み込んでください。

出力形式

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

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

{output_dir}/ln-647--{identifier}.md に、category: "Configuration Boundary" と、scattered_env_reads、typed_settings_boundary、config_ownership_leakage のチェック項目を含むレポートを書き出してください。

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

重要なルール

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

  • 自動修正は禁止: レポートのみを作成し、設定やコードは変更しないでください
  • 独自の監査範囲: 設定アーキテクチャの境界のみを監査してください。.env の衛生状態、コミット済みのシークレット、起動時の検証、パッケージの健全性、ライフサイクルの準備状況は監査しないでください。
  • レイヤー 2 は必須: アーキテクチャ上のレイヤーと目的を確認するまでは、生の環境変数読み込みを指摘事項として扱わないでください。
  • 対応の指定が必須: 各指摘事項には ADD_SETTINGS_BOUNDARY、STOP_SCATTERED_ENV_READS、TYPE_CONFIG_CONTRACT のいずれかを指定してください。

完了条件

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

  • contextStore の解析に成功した
  • scan_root を特定した
  • 環境変数の散在した読み込みを確認した
  • 型付き設定境界を確認した
  • 設定の所有権の漏洩を確認した
  • レイヤー 2 のコンテキスト検証を適用した
  • 重大度、場所、対応、工数、推奨事項を含む指摘事項を収集した
  • references/audit_scoring.md に従ってスコアを算出した
  • {output_dir}/ln-647--{identifier}.md にレポートを書き出した(単一の Write 呼び出しによるアトミックな書き込み)
  • コントラクトに従ってサマリーを書き出した

バージョン: 1.0.0 最終更新: 2026-03-15

コメント