关于 ln-622-build-delivery-gate-auditor
用于代码库审计流水线的构建与交付门禁审计技能,检查编译、代码检查、类型、测试和构建配置问题,并生成带评分的报告。
主要功能
- 01检查编译器与代码检查错误
- 02检测类型错误和测试门禁问题
- 03审查构建配置与 CI 反馈
- 04按严重程度记录问题并评分
- 05生成结构化审计报告
适用场景
- 01定位导致构建失败的配置问题
- 02发现被跳过或未阻断 CI 的测试
- 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.mdaudit_scoring.mdaudit_summary_contract.mdaudit_worker_core_contract.mdbuild_rules.mdci_tool_detection.mdresults_log_pattern.mdtwo_layer_detection.mdreferences/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。
- 解析上下文: 从 contextStore 中提取技术栈、构建工具、测试框架和 output_dir
- 运行构建检查(第 1 层): 执行编译器、Linter、类型检查器和测试(见下文的审计规则)
- 分析输出上下文(第 2 层): 对于弃用警告,阅读通知以确定移除是迫在眉睫还是尚远;对于配置问题,检查其是否仅用于开发环境,还是用于生产环境。
- 收集发现: 记录每项违规及其严重程度、位置、工作量和建议
- 计算评分: 按严重程度统计违规数量,计算合规评分(X/10)
- 撰写报告: 按照
references/templates/audit_worker_report_template.md在内存中生成完整的 Markdown 报告,并通过一次 Write 调用写入{output_dir}/ln-622--global.md - 趋势跟踪: 按照
references/results_log_pattern.md将 build_health 指标追加到 results_log。指标:build_health | 0-10 | penalty formula。计算与上次运行相比的变化量和状态(improving/stable/declining)。 - 返回摘要: 返回最简摘要(见输出格式)
审计规则(优先级:关键)
必须读取: 加载 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