安全

AI编码异常处理控制框架

试用

AI编码异常处理控制框架。当用户要求"编写功能"、"实现接口"、"开发模块"、 "写代码"、"编码"、"需求分析"、"设计"、"测试"、"代码审查"、"重构"时触发。 通过七层防御机制(深度调研→需求引导→设计引导→规格书→架构→提示词→测试→审查→弯路闭环), 从调研阶段开始强制AI完整思考异常路径,杜绝"只走...

它能做什么

AI编码异常处理控制框架。当用户要求"编写功能"、"实现接口"、"开发模块"、 "写代码"、"编码"、"需求分析"、"设计"、"测试"、"代码审查"、"重构"时触发。 通过七层防御机制(深度调研→需求引导→设计引导→规格书→架构→提示词→测试→审查→弯路闭环), 从调研阶段开始强制AI完整思考异常路径,杜绝"只走正向流程、异常处理简化"的问题。 包含深度调研引导、引导式需求设计SOP、三维度失败场景穷举法、六层自动化测试框架、 弯路沉淀与持续改进闭环、Audit-Ledger审查交接、可直接复用的12套模板。 适用于任何语言/框架/平台的AI辅助开发项目。

技能文档

AI编码异常处理控制框架

核心问题

AI在编码时存在系统性偏差:只写happy path,异常处理敷衍了事。 根因:训练数据偏科、上下文压缩丢异常、缺乏后果感知、优化"能跑"而非"能扛"。

解决思路:不靠AI自觉,靠机制倒逼。


教训沉淀(为什么存在这个框架)

以下教训来自真实项目开发实践,2026-07总结。

教训1:AI编码天然偏科,不是个别现象

根因表现后果
训练数据偏差开源代码/教程中happy path占80%+,异常处理代码稀疏AI生成的代码天然"偏科"
上下文压缩长代码生成时,AI优先保证主流程跑通,异常处理被"遗忘"越复杂的功能,异常缺失越严重
缺乏后果感知AI不知道异常缺失会导致生产事故try-catch里放个console.log就交差
优化目标偏移AI优化"代码能跑"而非"代码能扛"能过测试 ≠ 能上线

教训:不能指望AI"自觉"处理异常。把"请处理异常"写在提示词里没用,AI会写一个空catch块交差。

教训2:真实项目的典型案例——catch{}静默吞没

全链路审查中发现:多个模块存在 catch (error) {} 空catch块或 catch (error) { console.log(error); return null; } 假处理。这不是某一个开发者的疏忽,而是项目级系统性缺失——所有模块都有这个问题。

教训:异常处理缺失是系统性的,不是个别bug。必须从流程层面解决,而非逐个修复。

教训3:事后审查不够,已经晚了

最初只有L5审查层(代码写完后审查),发现问题时代码已经写完、测试已跑通、甚至已经部署。修复成本极高——要改异常处理意味着改函数签名、改调用链、改测试用例。

教训:异常处理必须从L1规格书阶段就开始控制。越早发现,修复成本越低。规格书里没写失败场景,编码时就不可能处理。

教训4:一次性投入,永久收益

L1规格书模板写一次,每个功能点都复用;L2架构层的统一异常中间件搭一次,所有业务代码都受益。这两层的投入产出比远高于L3-L5的日常执行。

教训:优先把L1+L2做扎实。基础设施层一次到位,后续每个功能都自动受保护。

教训5:方法不固化到skill里,就只是一次性聊天

这次五层框架如果只存在对话里,下次专家团队写代码时该偷懒还是偷懒。只有固化到skill里,让框架在编码时自动触发、在审查时强制执行,才能真正改变行为。

教训:凡是重复出现的问题,必须写成skill;凡是多步骤的流程,必须标准化为SOP。凡是走过的弯路,必须记录、分析、改进、预防——不记录就白走了,不改进就还会再走。


防御体系(L0→L5,从需求到审查全链路)

L0 需求与设计层:引导式质量保障(最前置防线)

完整引导SOP见 references/requirements-design-sop.md(深度调研5方向+七维需求引导+五层设计引导+三道质量门,68步引导)

核心认知:需求阶段的模糊 = 编码阶段的自由发挥 = 测试阶段的无的放矢 = 上线后的事故。 需求和设计阶段的每一分投入,会在后面三个阶段产生3倍回报。

AI在需求设计阶段同样会偷懒(只写happy path / 验收条件模糊 / 非功能需求缺失 / 跳过设计直接编码),必须用引导式流程倒逼。

L0-R 深度调研引导(5方向,20步引导)

在定义需求之前,先搞清楚"别人怎么做的、最好的实践是什么、有什么坑"。AI必须使用WebSearch/WebFetch/Grep/Glob等工具进行实际调研,禁止只凭训练数据编造最佳实践。

方向引导目标核心问题喂给后续
① 同类产品行业标杆长什么样至少3个产品?做得好的/差的?用户痛点?→ 维度三·失败场景
② 技术方案选最合适的技术路线至少2种方案对比?最新最佳实践?现成库/SDK?→ 设计阶段
③ 标准规范遵循行业标准不是自己发明行业标准?安全合规?官方Best Practices?→ 维度四·非功能需求
④ 失败案例别人的坑就是你的预防清单至少3个已知坑?事故复盘?SO高频问题?→ 维度三·失败场景 + 测试·混沌注入
⑤ 参考实现让AI"有样学样"不是从零发明开源实现?官方示例?现有代码库类似实现?→ 设计·异常架构

调研质量门(6项全过才允许进入需求): R1同类产品 / R2技术方案 / R3标准规范 / R4失败案例 / R5参考实现 / 调研-需求映射

L0a 需求引导(七维模型,28步引导)

维度引导目标核心问题
① 用户故事谁+做什么+为什么服务对象具体到画像?不同角色诉求分别是什么?
② 验收条件Given-When-Then格式正常/异常/业务规则限制下分别看到什么?异常AC≥正向AC?
③ 失败场景三维度穷举十大域逐个过?每个参数问8问?状态机非法转换全列出?
④ 非功能需求具体数值+验证方式性能P95是多少?安全覆盖传输/校验/存储?
⑤ 接口契约请求+响应+错误码+降级每个参数有校验规则?每个失败场景有错误码?降级有独立格式?
⑥ 数据模型字段+约束+索引+迁移每个字段有约束?查询字段有索引?迁移向后兼容?
⑦ 依赖地图外部+内部+降级策略每个依赖挂了怎么办?fail-open还是fail-close?

需求质量门(8项全过才允许进入设计): D1用户故事 / D2验收条件 / D3失败场景穷举 / D4非功能需求 / D5接口契约 / D6数据模型 / D7依赖地图 / 整体一致性

L0b 设计引导(五层防御,20步引导)

设计层引导目标核心问题
① 异常架构框架兜底,AI想偷懒都没机会全局中间件存在?降级链4级?每个调用有超时+重试?
② API规范AI只需"填空"不需"发明"统一响应格式?错误码体系复用?分页+认证定义?
③ DB设计事务+索引+迁移全规划事务范围?索引策略?迁移可回滚?
④ 安全设计认证+授权+校验+限流token生命周期?数据级隔离?前后端分离校验?限流分级?
⑤ 测试策略分层+覆盖率+来源映射测试分几层?用例从哪来?CI/CD怎么自动化?

设计质量门(6项全过才允许进入编码): S1异常架构 / S2 API规范 / S3 DB设计 / S4安全设计 / S5测试策略 / 需求-设计一致性

关键衔接:

  • 调研的"失败案例" → 需求的"失败场景清单"(第四维度·经验维度) → 设计的"异常处理架构" → 编码L3的"异常优先模板" → 测试L4的"异常路径测试"+ 混沌注入
  • 调研的"标准规范" → 需求的"非功能需求" → 设计的"安全设计" → 编码的"安全实现" → 测试的"安全测试"
  • 调研的"技术方案" → 需求的"接口契约" → 设计的"API规范" → 编码的"参数校验" → 测试的"参数轴测试"
  • 调研的"参考实现" → 设计的"异常处理架构" → 编码的"实现模式" → 审查的"对比参考"
  • 需求的"状态机" → 设计的"状态机设计" → 编码的"状态校验" → 测试的"非法转换测试"

L1 规格书层:把异常处理写成硬性约束

在工程规格书中,每个功能点必须包含"失败场景清单"表格,异常AC与正向AC同等地位。

核心方法:三维度失败场景穷举法 — 不靠"灵感"想几个,靠"工具"系统化穷举。

完整穷举模板见 references/templates.md 第7节(十大域+参数轴+状态机+合并去重+AI穷举指令)

三维度穷举法

维度方法穷举公式预期场景数
维度一·十大域对10个失败域逐个检查每域2-3个 × 10域20-30个
维度二·参数轴每个参数问8个问题参数数 × 824-40个
维度三·状态机列出所有非法状态转换状态数×(状态数-1) - 合法转换5-15个
合并去重三维度结果合并去重15-50个

十大失败域: 输入层 / 认证授权 / 网络通信 / 数据层 / 并发冲突 / 外部依赖 / 资源耗尽 / 业务逻辑 / 安全攻击 / 环境配置

参数轴8问: 缺失 / 空值 / 格式错 / 类型错 / 超长 / 特殊字符 / 注入 / 边界值

状态机公式: 状态数 × (状态数-1) - 合法转换数 = 非法转换数 = 失败场景数

规格书模板:

## 功能点:[功能名称]

### 正向流程
1. [步骤描述]

### 失败场景清单(三维度穷举,合并去重后)
| # | 来源维度 | 场景 | 异常类型 | 处理方式 | 用户感知 | HTTP状态码 | 优先级 |
|---|---------|------|---------|---------|---------|-----------|--------|
| F1 | D9安全 | SQL注入 | SecurityError | 清洗+400 | "输入不合法" | 400 | P0 |
| F2 | D2认证 | token伪造 | AuthError | 401 | "请重新登录" | 401 | P0 |
| F3 | D5并发 | 重复提交 | ConflictError | 幂等返回 | 无感知 | 200 | P0 |
| F4 | D6外部 | AI服务超时 | TimeoutError | 降级 | "分析中" | 200 | P1 |
| ... | ... | ... | ... | ... | ... | ... | ... |

### 验收标准
- AC-1(正向):[正向验收条件]
- AC-2(异常):[异常验收条件,对应F1]
- 异常AC数量 >= 正向AC数量

关键原则:

  • 每个功能点必须按三维度穷举,不允许"灵感式"列举
  • 合并去重后失败场景数量 ≥ 5个(复杂接口推荐≥15个)
  • 每个场景标注来源维度(D1-D10 / 参数轴 / 状态机)
  • 每个场景标注优先级(P0必须实现+测试 / P1必须 / P2必须 / P3可选测试)
  • 定义标准异常分类:网络/权限/数据/并发/超时/资源不足
  • 禁止"其他错误"这类笼统描述,必须具体到异常类型
  • 异常AC必须可测试、可验证

L2 架构层:用设计模式让异常无法跳过

核心策略:把异常处理从"AI的责任"变成"框架的责任"。

Result/Either模式(强制错误通道)

type Result =
  | { ok: true; value: T }
  | { ok: false; error: E };

// AI写函数时,必须返回Result类型
// 不处理Error分支 → 编译报错 → AI被迫处理
async function login(phone: string, code: string): Promise> {
  // AI必须考虑:验证码错了返回什么?网络超时返回什么?
}

统一异常中间件(AI不需要手写catch)

// 所有异常自动冒泡到中间件统一处理
// AI只管抛异常,不需要在每个函数里写try-catch
app.use(errorHandlerMiddleware);
// AI想偷懒都没机会——框架兜底

其他架构约束

  • 熔断降级:失败超阈值自动降级,而非崩溃
  • 幂等重试:网络失败自动重试,带指数退避
  • 超时控制:所有外部调用必须设置超时
  • 资源清理:使用RAII或finally确保资源释放

L3 提示词层:对抗AI偷懒本能

核心策略:异常优先——先说异常,后说正向。利用AI注意力衰减特性。

编码指令模板:

请实现以下功能,必须按此顺序执行:

第一步:列出所有可能的失败场景(至少5个)
- 网络异常、权限不足、数据不存在、并发冲突、超时、资源不足...

第二步:为每个失败场景定义处理策略
- 返回什么错误码?用户看到什么提示?是否重试?是否降级?

第三步:先编写所有异常处理代码
第四步:最后才编写正向流程代码

约束:
- 禁止空catch块
- 禁止catch中仅console.log
- 每个catch必须有明确的恢复策略或向上传播
- 异常日志必须包含上下文(请求参数、用户ID、时间戳)
- 错误提示对用户友好,不暴露技术细节

填空式模板(比自由式更可控):

请填充以下代码骨架中的异常处理部分:

[提供已标好异常处理位置的代码骨架]
[每个位置标注:// TODO: 处理[具体异常场景]

L4 测试层:用测试倒逼异常处理

核心策略:异常没处理,测试就过不了。

完整测试SOP见 references/testing-sop.md(六层框架30+项检查,含用例生成指令、一键测试脚本、异常用例模板、混沌注入矩阵、覆盖率验证、结构化报告)。

AI全量自动化测试六层框架

AI测试同样会偷懒(只测happy path/断言敷衍/不验证覆盖率/报告太简),必须用六层流水线倒逼:

目标核心手段
L1 用例生成从规格书自动派生测试用例失败场景→测试用例映射,边界值自动枚举,异常用例≥正向
L2 自动执行CI/CD管线一键跑全部run-all-tests.sh一键脚本,覆盖率阈值80%自动卡
L3 异常路径测"不该发生的事"断言四要素(状态码+错误信息+降级行为+副作用),安全测试
L4 覆盖率验证证明"测够了"行覆盖>80% + 异常分支覆盖>80% + 未覆盖代码风险分析
L5 混沌注入模拟"世界崩溃"DB断连/Redis不可用/第三方超时/磁盘满,验证降级而非崩溃
L6 测试报告结构化输出覆盖率矩阵+未覆盖代码清单+混沌结果+通过/不通过判定

核心原则:AI不能只"跑测试" → 必须证明"测够了" → 必须报告"哪里没测到"。

测试指令模板:

请为本功能编写测试,要求:
1. 异常用例数量 >= 正向用例
2. 覆盖以下异常场景(必须全部通过):
   - [场景1]: 期望返回 [错误码]
   - [场景2]: 期望触发 [降级策略]
   - [场景3]: 期望 [重试] 后成功
3. 每个异常用例必须验证四要素:状态码 + 错误信息 + 降级行为 + 副作用
4. 混沌注入:mock DB断连/Redis不可用/第三方API超时,验证降级行为
5. 运行测试,如果异常用例失败,先修复异常处理代码
6. 报告异常分支覆盖率,目标 > 80%

L5 审查层:AI审查AI

核心策略:用第二个AI角色专做异常审计,找第一个AI写的代码中的异常漏洞。

异常处理审计清单:

□ 所有外部调用(网络/DB/文件)是否有异常处理?
□ catch块是否有具体处理(非空、非仅console.log)?
□ 异常信息是否包含足够的调试上下文?
□ 是否有降级策略(而非直接崩溃)?
□ 是否有重试机制(对可重试异常)?
□ 并发场景是否考虑了竞态条件?
□ 超时是否被正确处理?
□ 用户看到的错误提示是否友好(非堆栈信息)?
□ 异常是否被正确分类和传播?
□ 是否有"静默吞异常"的情况?

审计员提示词:

你是一个严格的异常处理审计员。请审查以下代码,仅关注异常处理:
1. 找出所有缺少异常处理的外部调用
2. 找出所有"假处理"的catch块(空catch、仅console.log、仅return null)
3. 找出所有可能导致崩溃的未处理路径
4. 列出缺失的异常场景

输出格式:
- 严重问题:[文件:行号] 问题描述 → 修复建议
- 一般问题:[文件:行号] 问题描述 → 修复建议

L6 反馈闭环层:弯路沉淀与持续改进(贯穿全链路的反馈回路)

完整闭环SOP见 references/lessons-feedback-loop.md(四阶段:实时记录→定期分析→改进闭环→预防注入) 弯路记录模板见 references/templates.md 第11节

核心认知:静态的教训沉淀(写死在skill里的5条)解决不了动态的问题。每次开发都会遇到新的坑,不记录就白走了,不分析就还会再走,不改进就永远在原地打转。

AI同样会走弯路(选错方案/调试方向错误/实现路径绕路/异常遗漏),而且AI走弯路不自知、不记录、不学习。必须用机制倒逼。

弯路分类(6大类)

类型代号典型场景改进到哪个文件
技术选型弯路T-SELECT选了库A踩坑后换库Brequirements-design-sop.md 调研方向②
调试方向弯路D-DIRECT以为是前端bug实际是后端coding-sop.md 阶段三
实现路径弯路I-PATH先方案X后改方案Ycoding-sop.md 阶段一
异常处理弯路E-MISS漏处理某异常场景templates.md 第7节·经验维度
测试弯路T-WRONG测试本身有bugtesting-sop.md L3层
架构弯路A-DESIGN设计漏了某约束requirements-design-sop.md 设计阶段

四阶段闭环

阶段目标触发时机产出
① 实时记录走弯路后立即记录调试中/编码自检/审查发现/测试暴露单条弯路记录→lessons-learned.md
② 定期分析聚类找模式每功能/每周/里程碑/累计≥10条分析报告+Top3高频+重复模式+改进优先级
③ 改进闭环高频弯路→skill/SOP规则每次分析后立即执行更新对应文件+标注来源弯路编号
④ 预防注入下次编码时自动预防编码前加载skill时历史弯路检查+预防措施确认

弯路记录文件

  • 项目级.workbuddy/memory/lessons-learned.md(当前项目,追加不修改)
  • 跨项目通用:提炼后追加到本文件"教训沉淀"部分

关键约束:每条弯路必须有根因分析(不允许"粗心")+ 预防措施(不允许"注意",必须是检查项或规则)。


执行顺序(每次功能任务必走)

  1. 调研阶段 → 5方向深度调研(同类产品/技术方案/标准规范/失败案例/参考实现),通过调研质量门(6项)
  2. 需求阶段 → 七维引导式走完,基于调研结果填充,通过需求质量门(8项)
  3. 设计阶段 → 五层防御引导式走完,基于调研结果设计,通过设计质量门(6项)
  4. 规格书阶段 → 三维度穷举失败场景(十大域+参数轴+状态机),定义异常AC
  5. 架构阶段 → 确认Result模式/中间件/熔断等基础设施就位
  6. 编码阶段 → 使用"异常优先"提示词模板,先异常后正向
  7. 测试阶段 → 六层框架:用例生成→自动执行→异常路径→覆盖率→混沌注入→报告
  8. 审查阶段 → 用审计清单做异常专项审查,AI审查AI
  9. 弯路记录 → 编码/调试中走的弯路记录到 lessons-learned.md,定期分析改进skill/SOP

与其他skill的配合

需求与设计阶段(L0)

  • references/requirements-design-sop.md:引导式需求设计SOP(深度调研5方向20步+七维需求28步+五层设计20步+三道质量门20项检查)
  • product-manager:需求定义时引用L0-R调研引导→L0a七维模型引导
  • engineering-software-architect:架构设计时引用L0-R调研结果→L0b五层防御引导
  • engineering-backend-architect:后端架构设计时引用L0b异常处理架构

编码阶段(L1-L3)

  • engineering-backend-architect:架构设计时引用L2架构约束(Result模式/中间件/熔断)
  • engineering-frontend-developer:前端编码时引用L3提示词模板
  • engineering-senior-developer:全栈开发时遵循L1-L4执行顺序
  • engineering-wechat-mini-program-developer:小程序开发时引用L3异常优先模板
  • ponytail:懒人模式下也必须遵守异常处理铁律(不可省略)

测试阶段(L4)— 六层自动化测试框架

  • references/testing-sop.md:完整测试SOP(六层框架30+项检查,含用例生成/自动执行/异常路径/覆盖率/混沌注入/结构化报告)
  • 项目级全链路审查skill:执行六层框架全部检查(用户可基于本框架创建项目专属审查skill)
  • 部署验证skill:部署后异常路径API测试,验证错误码/降级/泄露(用户可基于本框架创建项目专属部署验证skill)

审查阶段(L5)

  • engineering-code-reviewer:每次PR审查执行🛡️12项异常专项审计
  • 项目级全链路审查skill:全链路审查时包含L5异常审计+项目级教训(用户可基于本框架创建)

SOP文档

  • references/requirements-design-sop.md — 引导式需求设计SOP(深度调研5方向20步+七维需求引导28步+五层设计引导20步+三道质量门20项检查)
  • references/coding-sop.md — 完整编码SOP(需求设计前置+开发前8项+架构4项+编码6项+测试10项+审查12项+弯路记录)
  • references/testing-sop.md — 完整测试SOP(六层框架30+项检查)
  • references/lessons-feedback-loop.md — 弯路沉淀与持续改进闭环SOP(四阶段:实时记录+定期分析+改进闭环+预防注入)
  • references/audit-ledger-spec.mdAudit-Ledger 文件系统交接规范(编码者↔审查者结构化交接面,Ralph模式物理实现层)

参考文件

  • references/templates.md — 完整模板集合(规格书/提示词/骨架/测试/审计清单/异常分类表/三维度穷举/需求模板/设计模板/调研模板/弯路记录模板)
  • references/requirements-design-sop.md — 引导式需求设计SOP(深度调研5方向+七维需求引导+五层设计引导+三道质量门+AI引导指令)
  • references/coding-sop.md — 编码SOP(阶段零需求设计+开发前8项+架构4项+编码6项+测试10项+审查12项+弯路记录)
  • references/testing-sop.md — 测试SOP(六层框架:用例生成/自动执行/异常路径/覆盖率/混沌注入/报告,30+项检查)
  • references/lessons-feedback-loop.md — 弯路沉淀SOP(四阶段闭环:实时记录+定期分析+改进闭环+预防注入,6大弯路分类+改进映射表)
  • references/audit-ledger-spec.mdAudit-Ledger 交接规范(编码者↔审查者结构化交接面,5文件格式+状态流转+权限约定+Ralph模式集成)
  • references/reverse-requirements.md逆向需求规格(本体系自验证产出,28个失败场景+18条AC,可作为使用范例)
  • references/reverse-design.md逆向技术设计(本体系自验证产出,5层设计+3状态机,可作为使用范例)

相关技能

用AI写代码一时爽,项目越写越乱火葬场?Superpowers方法论5道Gate卡住质量:设计没想清楚不准动手、没写测试不准提交。把「能跑就行」升级成工程级交付,让AI帮你写出可维护的代码。支持全栈项目(Web/移动端/API/数据)、团队协作规范、CI/CD集成指南。从需求到上线的完整工程化流水线,杜绝"AI生...

3 次安装

用AI写代码一时爽,项目越写越乱火葬场?Superpowers方法论5道Gate卡住质量:设计没想清楚不准动手、没写测试不准提交。把「能跑就行」升级成工程级交付,让AI帮你写出可维护的代码。支持全栈项目(Web/移动端/API/数据)、团队协作规范、CI/CD集成指南。从需求到上线的完整工程化流水线,杜绝"AI生...

4 次安装

Route and sequence coding tasks by selecting and orchestrating code exploration, planning, writing, debugging, refactoring, security, safe commands, and Git...

15 次安装

Engineering discipline for AI coding agents working on maintained code. Apply when implementing features, fixing bugs, refactoring, reviewing code, or designing and evaluating tests or coverage. Calibrates scope, abstraction, contracts, risk-based test strategy, and hard safety limits; requires verified APIs and executed checks instead of guesses.

5 次安装

Use when an AI coding agent needs bounded development loops, persistent project-local Docs/ state, context budgeting, environment escalation rules, safe stop...

作者 EnglandTong

AI 代码审查门禁 — 对 git diff 执行全面的静态分析,覆盖功能正确性、安全性、 性能、可读性、可维护性、测试覆盖、文档同步 7 个维度。按 Critical / Important / Minor 三级严重度输出结构化报告,存在 Critical 问题时门禁阻塞(exit code 1)。

1 星标