mcpField
L
ln-641-pattern-analyzer

ln-641-pattern-analyzer

github.com/levnikolaevich测试与质量584295 次安装2 天前更新
代码仓库

关于 ln-641-pattern-analyzer

用于代码审计的技能,每次针对一个架构模式查找实现并按最佳实践评估。它分别计算合规性、完整性、质量和实现情况,并整理问题与改进建议。

主要功能

  1. 01单次分析一个架构模式
  2. 02通过搜索定位模式实现
  3. 03计算四项诊断评分
  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 Worker

用于针对最佳实践分析单个架构模式并计算 4 项分数的 L3 Worker。

目的与范围

  • 每次调用分析一个模式(由协调器提供模式名称、位置和最佳实践)
  • 查找代码库中的所有实现(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 个结构组件)。

工作流

检测策略:采用两层检测(候选扫描,然后上下文验证);仅在验证方法不明确时加载 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;在独立模式下,Worker 会根据共享契约生成作用域限定于自身运行的工件路径。

# 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。

  • 仅分析一种模式: 只分析协调器传入的模式
  • 先阅读,再评分: 未阅读实际代码时,绝不评分
  • 基于检测结果评分: 使用 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 调用)
  • 按照契约撰写摘要

参考文件

  • 评分规则:references/scoring_rules.md
  • 模式库:references/pattern_library.md
  • 必须阅读: 加载 references/research_tool_fallback.md

版本: 2.0.0 最后更新: 2026-02-08

评论

支持 Markdown