mcpField
L
ln-622-build-delivery-gate-auditor

ln-622-build-delivery-gate-auditor

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

关于 ln-622-build-delivery-gate-auditor

用于代码库审计流水线的构建与交付门禁审计技能,检查编译、代码检查、类型、测试和构建配置问题,并生成带评分的报告。

主要功能

  1. 01检查编译器与代码检查错误
  2. 02检测类型错误和测试门禁问题
  3. 03审查构建配置与 CI 反馈
  4. 04按严重程度记录问题并评分
  5. 05生成结构化审计报告

适用场景

  1. 01定位导致构建失败的配置问题
  2. 02发现被跳过或未阻断 CI 的测试
  3. 03评估代码库的构建健康状况

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-622-build-delivery-gate-auditor

安装后在 Claude Code 中输入/ln-622-build-delivery-gate-auditor确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
audit_output_schema.md
audit_scoring.md
audit_summary_contract.md
audit_worker_core_contract.md
build_rules.md
ci_tool_detection.md
results_log_pattern.md
two_layer_detection.md
references/templates/
audit_worker_report_template.md

详细介绍

路径: 文件路径(references/、../ln-*)均相对于此技能目录。

构建与交付门禁审计员(L3 Worker)

类型: L3 Worker

专门审计可执行交付门禁以及 CI/构建反馈的 Worker。

目的与范围

  • 代码库审计流水线中的 Worker
  • 审计代码库中的构建与交付门禁问题(类别 2:关键优先级)
  • 检查会阻碍或削弱交付的编译器/Linter/类型检查/测试/CI 故障及构建配置
  • 输出 FIX_DELIVERY_GATE、FAIL_CI_ON_SIGNAL 或 REMOVE_STALE_SKIP
  • 返回包含严重程度、位置、工作量、操作和建议的结构化发现
  • 计算构建健康类别的合规评分(X/10)

输入

必须读取: 加载 references/audit_worker_core_contract.md 和 references/mcp_tool_preferences.md。 工具策略:你可能作为独立子 Agent 运行,此时宿主的 AGENTS.md 不在适用范围内。因此,检查源代码时,默认使用 hex-line MCP(read_file、grep_search、outline),而不是内置的 Read/Grep。只有在 MCP 行为不明确时才加载 references/mcp_integration_patterns.md。

接收包含以下内容的 contextStore:tech_stack(包括 build_tool、test_framework)、best_practices、principles、codebase_root、output_dir。

工作流

检测策略:采用两层检测(候选扫描,然后上下文验证);只有在验证方法不明确时才加载 references/two_layer_detection.md。

  1. 解析上下文: 从 contextStore 中提取技术栈、构建工具、测试框架和 output_dir
  2. 运行构建检查(第 1 层): 执行编译器、Linter、类型检查器和测试(见下文的审计规则)
  3. 分析输出上下文(第 2 层): 对于弃用警告,阅读通知以确定移除是迫在眉睫还是尚远;对于配置问题,检查其是否仅用于开发环境,还是用于生产环境。
  4. 收集发现: 记录每项违规及其严重程度、位置、工作量和建议
  5. 计算评分: 按严重程度统计违规数量,计算合规评分(X/10)
  6. 撰写报告: 按照 references/templates/audit_worker_report_template.md 在内存中生成完整的 Markdown 报告,并通过一次 Write 调用写入 {output_dir}/ln-622--global.md
  7. 趋势跟踪: 按照 references/results_log_pattern.md 将 build_health 指标追加到 results_log。指标:build_health | 0-10 | penalty formula。计算与上次运行相比的变化量和状态(improving/stable/declining)。
  8. 返回摘要: 返回最简摘要(见输出格式)

审计规则(优先级:关键)

必须读取: 加载 references/ci_tool_detection.md,获取各生态系统的构建命令、Linter 命令、类型检查器命令和测试框架命令。

1. 编译器/Linter 错误

内容: 语法错误、编译失败、Linter 规则违规

检测: 使用 ci_tool_detection.md 命令注册表(Build 和 Linters 部分)。检查退出代码,并从 stderr 中解析错误。有结构化输出选项时,使用 JSON 输出标志。

Linters: 使用 ci_tool_detection.md 中的 Linters 表。有结构化输出时,使用 --format json/--output-format json。

严重程度:

  • CRITICAL: 编译失败,无法构建项目
  • HIGH: Linter 错误(非警告)
  • MEDIUM: Linter 警告
  • LOW: 风格类 Linter 警告(格式问题)

建议: 先修复错误再继续,配置 Linter 规则,添加提交前钩子

工作量: S-M(修复语法错误与重构代码结构)

2. 不受支持的 API 警告

内容: 使用不受支持的 API、库或语言功能

检测:

  • 编译器警告:UnsupportedApiWarning,堆栈跟踪中出现 @obsolete
  • 依赖项警告:npm outdated、pip list --outdated
  • 静态分析:搜索 @obsolete 注解

严重性:

  • CRITICAL: 不受支持的 API 将在下一个主版本中移除(即将导致故障)
  • HIGH: 不受支持,但已有迁移路径
  • MEDIUM: 不受支持,但至少在 1 年内仍受支持
  • LOW: 软弃用(没有移除时间表)

建议: 迁移到推荐的 API,更新依赖项,重构代码

工作量: M-L(取决于 API 的复杂性和使用频率)

3. 类型错误

内容: 类型不匹配、缺少类型注解、类型检查器失败

检测: 使用 ci_tool_detection.md 命令注册表(类型检查器部分)。

严重性:

  • CRITICAL: 类型错误导致无法编译(tsc 失败、cargo check 失败)
  • HIGH: 很可能出现运行时类型错误(隐式 any、缺少类型守卫)
  • MEDIUM: 缺少类型注解(代码可以运行,但没有类型)
  • LOW: 类型过于宽泛(any、未收窄的 unknown)

建议: 添加类型注解,启用严格模式,使用类型守卫

工作量: S-M(为单个文件添加类型,或重构整个模块)

4. 测试门禁失败或跳过

内容: 测试命令失败、过时的跳过标记,或允许已知失败通过的 CI 配置

检测: 使用 ci_tool_detection.md 命令注册表(测试框架部分)。使用 JSON 输出标志进行结构化解析。

严重性:

  • CRITICAL: CI/生产代码中的测试失败
  • HIGH: 关键功能(支付、身份验证)的测试被跳过
  • MEDIUM: 非关键功能的测试被跳过
  • LOW: 带有 “TODO” 注释的跳过测试(已确认的技术债务)

建议: 修复失败的测试,移除过时的跳过标记,或让 CI 在检测到此信号时失败。请勿在此处评估测试组合的价值。

工作量: S-M(更新测试断言,或重新设计测试策略)

5. 构建配置问题

内容: 构建工具配置错误、缺少脚本、路径不正确

检测:

  • package.json、Makefile、build.gradle 中缺少构建脚本
  • tsconfig.json、webpack.config.js、Cargo.toml 中的路径不正确
  • 缺少环境专用配置(dev、staging、prod)
  • 未使用或冲突的构建依赖项

严重性:

  • CRITICAL: 因配置错误导致构建失败
  • HIGH: 构建成功,但生成的产物不正确(目标错误、资源缺失)
  • MEDIUM: 配置未优化(未压缩、缺少源映射)
  • LOW: 未使用的配置选项

建议: 修正配置路径,添加缺少的构建脚本,优化构建设置

工作量: S-M(更新配置文件,或重新设计构建流水线)

评分算法

必须阅读: 加载 references/audit_scoring.md。

输出格式

必须阅读: 加载 references/templates/audit_worker_report_template.md。

按照 references/audit_summary_contract.md 编写 JSON 摘要。在托管模式下,调用方会同时传入 runId 和 summaryArtifactPath;在独立模式下,工作器会按照共享约定生成自己的运行专属产物路径。

将报告写入 {output_dir}/ln-622--global.md,并设置 category: "Build & Delivery Gate",包含以下检查项:compilation_errors、linter_warnings、type_errors、test_gate_failures、build_config。

按照 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-622--global.md
Score: X.X/10 | Issues: N (C:N H:N M:N L:N)

关键规则

遵循已加载的 references/audit_worker_core_contract.md。

  • 不要自动修复: 仅报告违规
  • 了解技术栈: 使用 contextStore 运行适当的构建命令(npm、cargo 或 gradle)
  • 检查退出代码: 始终检查退出代码(0 = 成功,非零 = 失败)
  • 处理超时: 为构建/测试命令设置超时时间(默认 5 分钟)
  • 了解环境: 如果检测到 CI,则在 CI 模式下运行(不显示交互式提示)
  • 独特侧重点: 仅审计可执行的交付门禁。不要审计测试组合质量或依赖项新鲜度。
  • 必须采取行动: 每项发现都使用 FIX_DELIVERY_GATE、FAIL_CI_ON_SIGNAL 或 REMOVE_STALE_SKIP。

Monitor(2.1.98+): 对于预计耗时超过 30 秒的构建/ lint /类型检查/测试命令,使用 Monitor。备用方案:Bash(run_in_background=true)。

完成定义

遵循已加载的 references/audit_worker_core_contract.md。

  • contextStore 已成功解析(包括 output_dir)
  • 已完成全部 5 项交付门禁检查(编译器、linter、类型检查器、测试门禁、配置)
  • 已收集包含严重性、位置、工作量、操作和建议的发现
  • 已使用惩罚算法计算评分
  • 报告已写入 {output_dir}/ln-622--global.md(通过单次 Write 调用原子写入)
  • build_health 指标已追加到 results_log,并附带趋势状态
  • 已根据契约撰写摘要

参考文件

  • 审计输出架构: references/audit_output_schema.md
  • CI 工具检测: references/ci_tool_detection.md
  • 结果日志模式: references/results_log_pattern.md
  • 构建审计规则:references/build_rules.md

版本: 3.0.0 最后更新: 2025-12-23

评论

支持 Markdown