08-步骤工程化与审查
步骤工程化与审查——从文字流程到可执行的步骤图
前面几篇把工程变成「过程 → 流程 → 步骤」。这一篇解决最后一个问题:步骤本身怎么定义,才能让流程被人工、程序、AI Agent 一致地执行和审查? 答案是两步:① 步骤 = 一个有明确输入、目标、约束、操作、输出、验证的原子任务;审查 = 对某一个明确对象的某一个明确属性进行验证——每个步骤只做一件事,每个审查只检查一件事;② 用 STEP/REVIEW 关键字把步骤组织成带状态和分支的控制流,让整个工程从「文字描述的流程」变成可执行、可自动审查的步骤图。
一、核心定义
步骤 = 一个有明确输入、目标、约束、动作、输出的原子任务。
审查 = 对某一个明确对象的某一个明确属性进行验证。
把依赖关系加入审查步骤,整个流程就不只是线性 checklist,而是一个带依赖关系和反馈回路的工程系统。
二、一个标准步骤的结构
1 | 步骤 |
例如:
1 | 步骤:确定系统边界 |
审查也是小件
审查不是「审查系统设计」,而是拆成小件:
1 | 审查:系统职责是否覆盖全部功能点 |
1 | 审查:系统之间是否存在反向依赖 |
每个审查只做一件小事。
三、「一个步骤只做一件事」——原子化原则
不要写「设计通信系统」,而应拆成:
1 | 确定通信系统职责 |
每个动作还可以继续拆。例如「确定通信组件」拆成:
1 | 识别网络组件 |
四、审查是流程中的「一等公民」
不是「设计、设计、设计、完成」,而是「设计 → 审查 → 设计 → 审查 …」:
1 | 确定系统划分 |
审查不是最后的 QA,而是设计过程本身的一部分。
五、依赖关系决定步骤顺序
1 | 需求点 → 功能点 → 系统 → 模块 → 组件 → 接口 → 实现 |
后面的东西依赖前面的东西。每个步骤建立:
1 | 前置依赖:S12、S17 |
整个工程就变成一个 DAG(有向无环依赖图),而不是一条流水线。
审查本身也有依赖
「审查接口是否正确」依赖「接口设计完成」;但「审查接口是否覆盖功能」还依赖「功能点 + 接口 + 功能—接口映射」:
1 | A:功能点设计 |
而不是让审查凭「感觉」进行。
六、每个步骤的小闭环
1 | 输入 → 做 → 输出 → 审查 → 通过? |
整个工程不是「流程」,而是「步骤图」:
1 | 需求分析 → 需求点 → 业务流程 → 功能设计 → 功能点 → 系统设计 |
系统设计决定后面走哪条路线——它是一个分流节点。
七、统一描述所有步骤:STEP / REVIEW 结构
STEP 结构
1 | STEP |
各字段规则:
- INPUT:只能读取声明的输入,不能隐式依赖未声明产物
- PRECONDITION:不满足时
→ BLOCK - OBJECTIVE:只描述一件事。正确例「确定通信系统边界」;错误例「设计通信系统并设计协议并设计组件」
- CONSTRAINT:规定不能违反的条件(如
no_new_requirement、single_responsibility) - ACTION:描述真正执行的工作,不负责其他步骤
- OUTPUT:没有可验证的输出,就不应作为独立步骤
- STATE:每个步骤必须有明确状态
步骤状态
1 | PENDING → READY → RUNNING → COMPLETED |
1 | PENDING 等待 |
发生问题:RUNNING → FAILED、RUNNING → BLOCKED;需要审查:COMPLETED → REVIEW → PASSED / REJECTED。
REVIEW 结构
1 | REVIEW |
例如:
1 | REVIEW R001 |
不能写成「审查系统设计是否合理」,应拆成:检查功能覆盖 / 检查职责重复 / 检查职责越界 / 检查系统依赖 / 检查依赖方向。
八、控制流程关键字
1 | START STEP REVIEW |
含义:
1 | STEP = 做一件事 |
标准步骤控制流
1 | START → CHECK → STEP → OUTPUT → REVIEW |
状态控制流
正常执行:
1 | PENDING → CHECK → READY → RUNNING → OUTPUT → COMPLETED → REVIEW → PASSED |
前置条件不满足:
1 | PENDING → CHECK → BLOCKED → WAIT → CHECK |
执行失败:
1 | RUNNING → FAILED → ANALYZE → RETURN |
审查失败:
1 | COMPLETED → REVIEW → REJECTED → RETURN → RUNNING |
条件分支(按系统类型分流)
1 | IF system_type == BUSINESS GOTO MODULE_DESIGN |
各子系统控制流
1 | 业务系统:S100 MODULE_DESIGN → R100 REVIEW_MODULE_COVERAGE |
九、核心原则
1 | 一、一个 STEP 只做一件事 |
这样工程流程就从「文字描述的流程」变成可被人执行、程序执行、Agent 编排和自动审查的控制流程:
1 | 读取当前产物 → 找到满足条件的下一步骤 → 执行一个步骤 → 产生一个产物 |
这也就是「分析 → 编排 → 执行 → 反馈 → 修正」落成的工程结构。
与其他线的关系
- 与 07-工程控制/01:工程控制讲反馈闭环(目标→实际→偏差→检查→修正→再验证);本篇把「检查→修正」落成可执行的 STEP/REVIEW 结构——是反馈闭环的工程化实现
- 与 07-工程控制/02:过程与流程讲步骤组织的概念;本篇给出每个步骤的原子定义与状态机
- 与 06-设计/07:CLI 流程的「API 缺口→阻塞→回跳静态库」就是 STEP 状态机(BLOCKED → RETURN)在 CLI 上的实例
- 与 06-设计/06-七个分析维度:七个维度(结构/调用链/启动链/生命周期/数据流/业务流/状态变化)是步骤图里各步骤的审查对象
- 与 03-建模与逆向/04:模型转为流程(依赖→拓扑排序→步骤)产生步骤图;本篇定义步骤的原子结构与状态机
收束
1 | 步骤 = 输入 + 前置条件 + 目标 + 约束 + 操作 + 输出 + 验证 |
工程流程从「文字描述」变成「可执行步骤图」的关键,不是更多概念,而是每个步骤的原子定义和每个审查的明确对象。
