用途
Health Check 是一个无头(headless)代码库诊断技能,用于运行代码库质量门禁(quality gates),覆盖类型检查、测试、Lint、安全扫描、死代码、循环依赖和依赖审计等检查项。它的目标是在一次运行中给出代码库整体健康状况的汇总报告。
主要能力
该技能运行以下门禁检查,并捕获每项的退出码和摘要行:
- TypeCheck(所有工作区):使用
npx tsc --noEmit,对每个工作区运行,捕获退出码和错误数量。 - Tests:使用
npx vitest run --reporter=dot,用 dot reporter 减少输出,捕获退出码和通过/失败数量。 - Lint:使用
npx eslint .,捕获退出码和错误/警告数量。 - Semgrep 安全扫描:使用
semgrep scan --config auto --severity ERROR --severity WARNING --quiet;若未安装 semgrep,则记为 SKIP。 - 循环依赖:使用
npx madge --circular --ts-config tsconfig.json src/;若发现任何循环则记为 FAIL。 - 死代码/未使用导出:使用
npx knip --no-progress;记为 WARN(而非 FAIL),因为 knip 首次运行可能噪音较多。 - 依赖漏洞:使用
npm audit --production(或pnpm audit --prod);低/中危记为 WARN,高/严重记为 FAIL。
所有门禁完成后,打印一张汇总表,状态值包括 PASS、FAIL、SKIP(工具未安装)、WARN(非零但不阻塞)。
使用方式
该技能为无头模式,每一步作为单条 Bash 命令运行,捕获退出码和关键输出行,然后打印汇总表。可使用辅助脚本代替重复输入命令矩阵:
bash scripts/run-health-check.sh
bash scripts/run-health-check.sh --quick
bash scripts/run-health-check.sh --security-only
bash scripts/run-health-check.sh --code-quality
参数说明:
--quick:跳过 Semgrep + knip(节省时间)--security-only:仅运行 Semgrep + audit--code-quality:仅运行 knip + madge + typecheck(跳过安全检查和测试)- 若为空:运行所有门禁
适用场景
适用于需要在代码库中运行质量门禁并获取整体通过/失败概览的场景,例如在开发流程中快速了解类型检查、测试、Lint、安全、依赖健康等方面的状态。
限制与约束
该技能有明确的行为约束:
- 绝不在第一个失败门禁后停止——即使有失败也要报告完整情况。
- 绝不在输出中分析失败或建议修复。
- 绝不生成子代理进行解释。
- 绝不静默跳过缺失的工具——将其标记为 SKIP。
- 绝不使用该技能提交、推送或修改文件。
此外,该技能只打印汇总表,不分析错误、不读取文件、不建议修复。
自定义
项目特定门禁的常见补充包括:
- OpenAPI lint:
npx spectral lint openapi.json - Bundle size check:
npx bundlesize - Package exports:
npx publint && npx attw --pack - Secret scanning:
trufflehog git "file://$(pwd)" --only-verified
关于收费、价格、平台支持等具体信息,资料中暂未提供。