mcpField
L
ln-641-pattern-analyzer

ln-641-pattern-analyzer

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

ln-641-pattern-analyzer について

1回の実行で1つのアーキテクチャパターンを調べ、実装を特定して提示されたベストプラクティスに照らして評価するコード監査スキルです。適合性、完全性、品質、実装の4項目を採点し、問題と改善案を報告します。

主な機能

  1. 01実行ごとに1つのパターンを分析
  2. 02コード検索で実装を特定
  3. 034つの診断スコアを算出
  4. 04重大度別に問題と不足を整理
  5. 05工数見積もり付きの修正案を提示

活用シーン

  1. 01コード内のパターン実装を評価
  2. 02実装に不足している要素を発見
  3. 03パターン改善の問題に優先順位を付与

MCP 対応

実装の発見によって確度が高まる場合は hex-graph、コードの読み取りには hex-line を優先して利用できます。MCP が利用できない場合や未インデックスの場合は、組み込みツールを使います。

インストール

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

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-641-pattern-analyzer

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

同梱ファイル

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

references/
audit_scoring.md
audit_summary_contract.md
audit_worker_core_contract.md
epistemic_protocol.md
mcp_integration_patterns.md
mcp_tool_preferences.md
pattern_library.md
research_tool_fallback.md
scoring_rules.md
two_layer_detection.md
references/templates/
audit_worker_report_template.md

詳細

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

パターンアナライザー

タイプ: L3 ワーカー

単一のアーキテクチャパターンをベストプラクティスに照らして分析し、4 つのスコアを算出する L3 ワーカーです。

目的と範囲

  • 1 回の実行につき 1 つのパターンを分析します(コーディネーターからパターン名、場所、ベストプラクティスを受け取ります)
  • コードベース内のすべての実装を検索します(Glob/Grep)
  • 実装が存在し、動作することを検証します
  • 4 つのスコアを算出します:準拠度、完全性、品質、実装
  • ギャップと問題を特定し、深刻度と工数を見積もります
  • 構造化された分析結果をコーディネーターに返します

対象外(ln-624-code-quality-auditor が担当):

  • 循環的複雑度のしきい値(>10、>20)
  • メソッド/クラスの長さのしきい値(>50、>100、>500 行)
  • 品質スコアでは、一般的なコードメトリクスではなく、パターン固有の品質(パターン内の SOLID、パターンレベルのコードのにおい)に重点を置きます

入力

- pattern: string          # Pattern name (e.g., "Job Processing")
- locations: string[]      # Known file paths/directories
- bestPractices: object    # Best practices from MCP Ref/Context7/WebSearch
- output_dir: string       # e.g., ".hex-skills/runtime-artifacts/runs/{run_id}/audit-report"

注: すべてのパターンは事前に検証済みです(ln-640 Phase 1d の適用可能性ゲートを通過し、2 つ以上の構造コンポーネントが確認されています)。

ワークフロー

検出ポリシー:2 層の検出(候補のスキャン後、コンテキストを検証)を使用します。検証方法が曖昧な場合に限り、references/two_layer_detection.md を読み込みます。 ツールポリシー:ホストの AGENTS.md にある MCP の設定に従います。ホストポリシーがない場合、または MCP の動作が不明確な場合に限り、references/mcp_tool_preferences.md と references/mcp_integration_patterns.md を読み込みます。

実装の検出精度を大きく高められる場合は、まず hex-graph を使用します。利用可能な場合は、ローカルコードの読み取りにまず hex-line を使用します。MCP が利用できない場合、サポートされていない場合、またはインデックス化されていない場合は、組み込みの Read/Grep/Glob/Bash を使用して続行し、レポートにフォールバックしたことを記載します。

フェーズ 1:実装を検索

必ず読み込む: references/pattern_library.md を読み込み、各パターンの検出キーワードについて「Pattern Detection (Grep)」テーブルを使用します。

IF pattern.source == "adaptive":
  # Pattern discovered by coordinator Phase 1b -- evidence already provided
  files = pattern.evidence.files
  SKIP detection keyword search (already done in Phase 1b)
ELSE:
  # Baseline pattern -- use library detection keywords
  files = Glob(locations)
  additional = Grep("{pattern_keywords}", "**/*.{ts,js,py,rb,cs,java}")
  files = deduplicate(files + additional)
フェーズ 2:コードを読み取り、分析
FOR EACH file IN files (limit: 10 key files):
  Read(file)
  Extract: components, patterns, error handling, logging, tests
フェーズ 3:4 つのスコアを算出

必ず読み込む: references/scoring_rules.md を読み込み、各評価基準の Detection 列に従います。

スコアscoring_rules.md 内の参照先最大値
準拠度「Compliance Score」セクション — 業界標準、命名規則、規約、アンチパターン100
完全性「Completeness Score」セクション — 必須コンポーネントの表(パターンごと)、エラー処理、テスト100
品質「Quality Score」セクション — メソッドの長さ、複雑度、コードのにおい、SOLID100
実装「Implementation Score」セクション — コンパイル、本番環境での使用、統合、監視100

各評価基準の採点手順:

  1. scoring_rules.md に記載された Detection の Grep/Glob を実行します
  2. 一致が見つかった場合は、評価基準に従って点数を加算します
  3. アンチパターン/コードのにおいが検出された場合は、減点表に従って点数を差し引きます
  4. 各スコアの根拠となる証拠(ファイルパスと行番号)を記録します
フェーズ 4:問題とギャップを特定
FOR EACH bestPractice NOT implemented:
  issues.append({
    severity: "HIGH" | "MEDIUM" | "LOW",
    category: "compliance" | "completeness" | "quality" | "implementation",
    issue: description,
    suggestion: how to fix,
    effort: "S" | "M" | "L"
  })

# Layer 2 context check (MANDATORY):
# Deviation documented in code comment or ADR? -> downgrade to LOW
# Pattern intentionally simplified for project scale? -> skip


gaps = {
  missingComponents: required components not found in code,
  inconsistencies: conflicting or incomplete implementations
}
フェーズ 5:スコアを算出

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

診断用サブスコア(各 0~100)は別途算出し、診断目的に限り AUDIT-META で報告します:

  • 準拠度、完全性、品質、実装
フェーズ 6:レポートを作成

必ず読み込む: references/templates/audit_worker_report_template.md を読み込みます。

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

# Build pattern name slug: "Job Processing" -> "job-processing"
slug = pattern.name.lower().replace(" ", "-")

# Build markdown report in memory with:
# - AUDIT-META (extended: score [penalty-based] + diagnostic score_compliance/completeness/quality/implementation)
# - Checks table (compliance_check, completeness_check, quality_check, implementation_check)
# - Findings table (issues sorted by severity)
# - DATA-EXTENDED: {pattern, codeReferences, gaps, recommendations}

Write to {output_dir}/ln-641--{slug}.md (atomic single Write call)
フェーズ 7:サマリーを返す
Report written: .hex-skills/runtime-artifacts/runs/{run_id}/audit-report/ln-641--job-processing.md
Score: 7.9/10 (C:72 K:85 Q:68 I:90) | Issues: 3 (H:1 M:2 L:0)

重要なルール

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

  • パターンは1つのみ: コーディネーターから渡されたパターンのみを分析してください
  • スコアを付ける前に読む: 実際のコードを読まずにスコアを付けないでください
  • 検出に基づくスコアリング: 推測ではなく、scoring_rules.md の Grep/Glob パターンを使用してください
  • 工数の見積もり: 各問題に必ず S/M/L を提示してください
  • コード参照: 指摘には必ずファイルパスを含めてください

完了の定義

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

  • pattern_library.md のキーワードまたは適応的な証拠を使い、Glob/Grep で実装をすべて見つける
  • 主要なファイルを読み、分析する
  • scoring_rules.md の検出パターンを使って4つのスコアを算出する
  • 重要度、カテゴリ、提案、工数を含めて問題を特定する
  • 不足点(欠落しているコンポーネント、矛盾点)を記録する
  • 推奨事項を提示する
  • {output_dir}/ln-641--{slug}.md にレポートを書き込む(Write 呼び出し1回でアトミックに書き込む)
  • 契約に従って概要を書き込む

参照ファイル

  • スコアリングルール:references/scoring_rules.md
  • パターンライブラリ:references/pattern_library.md
  • 必ず読む: references/research_tool_fallback.md を読み込んでください

バージョン: 2.0.0 最終更新日: 2026-02-08

コメント