用途:harden 用于主动安全加固,扫描现有仓库中的漏洞与面向外部的威胁,并提出可由用户批准、延后或归档的具体修复方案。它补充 Claude Code 内置的 /security-review(只扫描待提交 diff),而是对整个仓库执行有引用依据的检查。适用场景包括季度安全态势审计、发布涉及敏感代码路径的版本前、语言生态出现已公布公告后、接入新仓库建立基线时、以及集成新依赖或上游服务后。不适用于单个 PR 的 pending-diff 审查、架构级威胁建模、密码协议审查和一次性缺陷查找。
主要能力与流程:通过 TodoWrite 项组织流程,包括发现(清点语言、构建文件、钩子、CI 工作流)、按语言运行检测器(Python 用 python-checks.md,Rust 用 rust-checks.md)、跨切面检查(依赖、密钥、SBOM、CI)、前沿检查(PQC、LLM 供应链、沙箱)、映射到 NIST SSDF 实践、生成具体提案、审批门、应用并验证、确认引用、生成报告。根据发现结果渐进加载模块,使 SKILL.md 保持在约 1100 token 预算内。引用为强制项,无 NIST/CWE/RustSec 引用的发现降级为 advisory,不能进入主动提案阶段。
使用方式:发现阶段用只读命令清点仓库,如 find 与 ls 检查构建清单,CI 工作流和 pre-commit 配置;若源文件超过 5000 个则先派发 /discovery-prefilter。审批门通过 AskUserQuestion 逐个呈现提案,默认可选 apply、file as issue、defer to backlog、reject,自动应用需 --auto-apply 显式启用并遵守严重度阈值。应用时每个提案作为独立提交,格式为 git commit -m "harden: <finding-id> <one-line summary>",随后重跑 make test --quiet && make lint && make type-check,任一失败则 git revert HEAD --no-edit 并降级为需要人工设计。报告写入 reviews/harden-<date>.md。
限制与安全护栏:未经批准绝不应用,即使使用 --auto-apply,CRITICAL 发现也始终提示;每个提交只含一个发现,回滚按单个发现进行;应用后必须重跑门禁;首次运行默认 --report-only,直到用户审阅至少一份报告并明确选择启用提案;对密码协议只标记可疑而不提出协议修复;发现需经 citation_verifier.py 验证,未通过者丢弃或标记为 UNVERIFIED。