simplify-and-harden

🛡️ 编码代理任务后自检与加固

编码代理的任务后自检工具,执行简化、加固和微文档三重审查,利用峰值上下文在信号完成前进行有界质量与安全扫描

收藏
6.9k
安装
2.3k
版本
1.0.1
CLS 安全性认证2026-08-10
点击查看完整报告 >

使用说明

核心用法

Simplify & Harden 是一个面向编码代理的后置自检技能,在任务完成信号发出前自动触发三阶段审查:

1. Simplify(简化):清理死代码、未使用导入、优化命名、扁平化控制流、降低不必要的公开 API 表面。默认姿态是轻量清理而非重构——重构仅在代码"明显错误"或收益显著时才提出,且必须经人工批准。

2. Harden(加固):检查输入验证、注入向量、认证授权、密钥泄露、数据暴露、竞态条件等安全缺口。简单补丁自动应用,结构性安全重构需人工批准。

3. Document(微文档):为需要超过5秒理解的逻辑、临时方案、性能敏感选择添加最多5条注释,捕获决策上下文。

触发条件:任务完成 + 非平凡代码变更(≥10行可执行代码变更或含高影响逻辑变更)+ 未显式跳过。严格限定仅修改当前任务涉及的代码,禁止"顺便"重构相邻代码。

预算约束:额外变更不超过原 diff 的20%,执行时间不超过60秒。超限则停止并标记 budget_exceeded

显著优点

  • 峰值上下文利用:在代理对问题、方案、权衡记忆最清晰时执行审查,避免上下文流失后的低质量回顾
  • 有界改进:20%预算硬约束防止审查滑向无限制重构
  • 分层决策机制:化妆品级修复自动执行,结构性重构必须人工批准,平衡效率与控制
  • 安全优先排序:预算紧张时优先处理安全补丁
  • 学习循环集成:将重复发现的模式输出到 self-improvement 技能,促进跨任务记忆积累
  • 代理无关设计:支持 Claude Code、Copilot、Cursor、Aider 等任何遵循任务工作流的编码代理

潜在缺点与局限性

  • 人工阻塞点:重构和安全重构的停止钩子需要人工响应,在高自动化场景可能造成延迟
  • 上下文窗口依赖:对超大 diff 可能超出上下文限制,需依赖"仅加载相关文件"的优化
  • CI 场景限制:交互式停止钩子在 CI/无头环境中不可用,需使用配套的 simplify-and-harden-ci 变体
  • 非平凡定义盲区:配置/文档/纯测试变更被排除,可能漏过配置驱动逻辑的安全问题
  • 学习循环延迟:模式需30天内≥3次出现且跨≥2个任务才晋升,冷启动期无历史积累

适合人群

  • 使用 AI 编码代理进行生产级开发的团队,需要结构化质量门禁
  • 安全敏感型项目(金融、医疗、基础设施)在合并前需要代理自检
  • 希望将代理的"完成"升级为"完成良好"的工程师,而非接受首次输出
  • 有多代理协作或人机协作流程的组织,需要可解析的结构化审查输出

常规风险

  • 自主性误判:部分代理在高自主性模式下可能不可靠地暂停等待批准,需生产前验证
  • 范围蔓延诱惑:尽管有硬规则,代理仍可能尝试"顺便改进"相邻代码,需监控输出中的 flagged
  • 超时处理:5分钟人工超时后默认"标记而非丢弃",可能堆积待处理项
  • 模式过度泛化:学习循环晋升的规则若未仔细审核,可能将项目特定模式误灌为通用规则
  • 与独立审查的关系:该技能明确不替代人工代码审查,仅作为第一道自检,团队仍需执行独立审查

安全解读

核心用法

Simplify & Harden 是一个后完成自审查技能,专为编码 Agent 设计。它并非持续运行的代码检查工具,而是在 Agent 完成主要编码任务后、上下文窗口尚未衰退前,触发一次聚焦的质量与安全扫描。

技能采用三阶段流水线设计:

阶段一:Simplify(简化) —— 以"清理优先、重构例外"为原则,移除死代码、未使用的导入、修复命名问题、收紧控制流,将代码打磨至最简洁表达。重构类改动(如合并重复逻辑)需显式人工批准。

阶段二:Harden(加固) —— 切换至安全视角,检查输入验证、注入漏洞、认证授权、密钥泄露、错误处理等安全缺口。简单补丁自动应用,结构性安全重构需人工决策。

阶段三:Document(微文档) —— 用最多5条注释捕获"为什么这样做"的非显而易见决策,避免未来维护者的认知摩擦。

技能通过严格的范围锁定(仅修改本次任务的文件)和预算控制(额外改动不超过原 diff 的 20%)确保审查的聚焦性。

显著优点

1. 峰值上下文利用:Agent 在完成任务瞬间对代码意图的理解最为深刻,技能抓住这一窗口期进行审查,避免"冷却后重读"的认知损耗。

2. 双思维模式分离:Simplify 与 Harden 分阶段执行,避免"简化代码时忽视安全"或"加固时过度复杂化"的认知冲突,且允许在预算紧张时优先保障安全修复。

3. 人机协作的安全设计:重构类改动强制触发交互式确认,防止 Agent 的"重构冲动"导致意外破坏,将高风险决策权交还人类。

4. 自学习闭环:通过与 self-improvement 技能的集成,重复出现的模式(如"未验证输入")可被提炼为持久化提示规则,实现 Agent 能力的持续进化。

5. 广泛的 Agent 兼容性:支持 Claude Code、GitHub Copilot、Cursor、Aider 等主流编码 Agent,既可作为程序化 Hook 集成,也可作为纯提示词注入使用。

潜在缺点与局限性

1. 不替代独立审查:技能明确定位为"自审查"而非"代码审查替代方案",复杂安全漏洞仍需人工安全审计。

2. 预算限制的双刃剑:20% 改动上限在大型重构场景下可能成为瓶颈,超出预算时部分优化建议会被搁置。

3. Agent 自主性依赖:部分 Agent 在高自治模式下可能无法可靠暂停等待人类批准,存在"自动批准"风险。

4. 仅覆盖非平凡改动:文档、测试、配置文件等变更不会触发审查,可能遗漏这些领域的质量问题。

5. 学习循环的延迟反馈:模式升级为持久规则需要跨多个任务的累积(3次出现/2个任务/30天),短期重复问题可能持续存在。

适合的目标群体

  • 个人开发者:希望在 AI 辅助编码后获得自动化的"第一道质量关卡"
  • 小型技术团队:缺乏专职代码审查资源,需要结构化的 Agent 自审查流程
  • AI 驱动开发工作流:已在使用 Claude Code、Cursor 等 Agent 工具,希望提升输出质量的团队
  • 安全敏感项目:需要内置安全视角的编码流程,但尚无力部署完整 DevSecOps 体系的团队

使用风险

1. 版本控制依赖:Skill 指导 Agent 直接修改代码,强烈建议在 Git 等版本控制环境下使用,以便回滚意外改动。

2. 重构批准的认知负担:频繁的重构提议可能打断开发流,建议根据团队成熟度调整交互频率。

3. CI 模式的行为差异simplify-and-harden-ci 变体移除了交互确认,适合自动化流水线但失去了人机协作的安全网。

4. 学习循环的持久化文件:Skill 建议写入 .learnings/LEARNINGS.md 等文件,虽非强制,但用户应审查自动生成的规则再纳入 Agent 上下文,避免污染系统提示。

5. 性能开销:60 秒的执行时间上限在大型代码库中可能成为约束,极大型任务可能需要分块处理。

simplify-and-harden 内容

references文件夹
手动下载zip · 15.1 kB
agent-context-snippets.mdtext/markdown
请选择文件