> 版本:4.6.10
> 架构:orchestrator代码硬控 + Agent只填内容 + 6段确认模式 + HMAC签名防伪造 + P2/P5/P7代码路径 + P6统一流程+prompt瘦身+子任务防护
此检查在技能触发后、任何其他操作之前执行。不通过则立即终止,禁止进入Onboarding。
| 用户输入 | 为何不算 | 正确响应 |
|---|---|---|
| --------- | --------- | --------- |
| "我等会发"、"稍后发"、"等一下发" | 未来时态,需求未实际到达 | 停止,等待 |
| "分析这个需求"(无附件/无正文) | 模糊引用,无实际载荷 | 停止,等待 |
| "用qc-req2testcase-generator"(无需求材料) | 仅提及技能名 | 停止,等待 |
| "帮我生成测试用例"(无上下文) | 仅触发词,无载荷 | 停止,等待 |
| 用户引用了不存在或无法检索的需求 | 无实际内容 | 停止,等待 |
📋 请先发送需求正文或需求文档(.docx / .txt / 粘贴文字均可),收到后立即开始分析。
💡 提示:仅说"等会发"、"稍后发"不算已收到需求,必须实际发送文档后才能开始分析。
✅ 需求载荷已收到 | 格式:{docx/txt/paste} | 大小:{字数/KB}
📋 即将进入初始化流程...
🔴 此检查必须在技能触发的第一个动作执行,绝对禁止跳过。
| 用户输入 | 正确判断 |
|---|---|
| --------- | --------- |
| "帮我分析需求,文档等会发" | ❌ 停止,等待文档 |
| "用qc-req2testcase-generator分析" | ❌ 停止,等待文档 |
| "分析这个需求"(无附件无正文) | ❌ 停止,等待文档 |
| "分析需求" + 附了docx文件 | ✅ 通过,进入流程 |
| "分析需求" + 粘贴了大段文字 | ✅ 通过,进入流程 |
| "用上次task_20260515的需求再生成一次" | ✅ 通过(可检索到历史任务) |
核心原则:orchestrator.py控制流程,Agent只负责执行prompt返回JSON。
参数自动化:orchestrator自动发现skill_dir、自动回填data_dir/task_id,Agent几乎不需要传参。
6段确认模式:流程分6段执行,P2/P5为自动执行步骤(无需用户确认),用户实际只需回复5次「继续」。用户始终知道流程在哪一步。
🔴🔴🔴 段落编号严格对应(绝对禁止合并段落):
每段结束时必须输出状态提示行,不允许把多个段落合并成一个。
| Step | Agent角色 | 唯一正确命令 |
|---|---|---|
| ------ | ---------- | ------------ |
| P0 | 执行者 | prep_prompt → 生成JSON → step_run |
| P1 | 执行者 | prep_prompt → 生成JSON → step_run |
| P2 | 观察者 | python3 "$ORCH" --action p2_code_generate |
| P3 | 执行者 | prep_prompt → 生成JSON → step_run |
| P4 | 执行者 | prep_prompt → 生成JSON → step_run |
| P5 | 观察者 | python3 "$ORCH" --action p5_code_merge |
| P6 | 执行者(主会话) | p6_batch_info → 循环(prep_prompt+p6_save_batch) → p6_merge |
| P7 | 观察者 | python3 "$ORCH" --action p7_code_check |
观察者步骤:Agent只执行一条命令等待结果。不调用prep_prompt,不生成JSON,不写agent_output文件。
执行者步骤:Agent读取prompt,用推理能力生成高质量JSON,写入文件,调用orchestrator校验。
Agent在本技能中只做3类事情:
禁止Agent自行:
gates/*.pass.json 只能由orchestrator action内部创建,Agent不得以任何方式创建/修改gate文件p{N}_output.json 只能通过 step_run/p2_code_generate/p5_code_merge 等action写入,Agent不得直接writeorchestrator_state.json 只能由orchestrator内部修改import orchestrator、from orchestrator import、exec(open("orchestrator.py"))python3 "$ORCH" --action XXX 执行,不得用Python脚本直接调用内部函数违反以上任何规则的执行结果将被代码层检测并拒绝导出。step7_export会审计全链路gate来源,非法来源的gate将被拒绝。
对话输出规则:每段只输出1行状态+确认提示。
「ai用例生成」「ai需求分析」「ai测试用例」「ai测试用例生成」「req2testcase」
「生成测试用例」「分析需求」「拆解功能点」「输出测试点」「需求评审」「帮我写用例」「这个需求怎么测」「PRD转测试用例」
⚠️ 需求载荷前置(强制规则):
📋 请先发送需求正文或需求文档(.docx/.txt/粘贴文字),收到后立即开始分析。收到需求后,按以下6段执行(P2/P5自动执行,用户只需回复5次「继续」):
首先定位orchestrator(只需执行一次,后续复用$ORCH变量):
exec: ORCH=$(find ~/.openclaw ~/.local ~/skills /app/skills -name orchestrator.py -path "*/qc-req2testcase-generator/*" -print -quit 2>/dev/null) && echo "ORCH=$ORCH"
如果找到,后续所有命令使用 python3 "$ORCH" 调用。如果未找到,输出错误。
exec: python3 "$ORCH" --action init
→ 获得 task_id
exec: python3 "$ORCH" --action onboarding
→ 环境检查结果(返回next_action字段,必须遵循)
🔴🔴🔴 onboarding返回后,段落1还没完成!必须继续执行以下3步交互,每步等用户回复后才展示下一步:
🔴 第1步:PRD审查(必须单独展示,等用户回复)
📋 PRD审查可在生成用例前检查需求文档质量。
请选择:
• 回复「开启」→ 启动PRD审查(不到合格分会中断并输出问题清单)
• 回复「跳过」→ 直接生成用例
用户回复后执行: exec: python3 "$ORCH" --action set_prd_review --enabled {true或false}
(用户选"开启"→ --enabled true,选"跳过"→ --enabled false)
🔴 必须等用户回复后,才能展示第2步。不允许和其他选项一起展示。
🔴 第2步:L5知识库(等第1步用户回复后才展示)
📚 L5知识库可注入历史测试经验,提升用例质量。
请选择:
• 上传知识库文件 → 解析入库
• 回复「跳过」→ 不使用知识库
🔴 必须等用户回复后,才能展示第3步。
🔴 第3步:图片理解API密码(等第2步用户回复后才展示)
(见下方检查4B详细流程)
检查4B:图片理解 + 评审工具密码
i️ 图片理解API可自动解析需求文档中的原型图/流程图/截图,提升用例质量。
🔗 评审工具可将生成的用例推送到在线评审平台,支持可视化评审与经验闭环。
请输入密码(图片API + 评审工具共用同一密码):
• 回复密码 → 同时启用图片理解 + 在线评审推送(密码验证后启用,不会保存到任何文件)
• 回复「跳过」→ 纯文本模式,图片信息仅通过前后文推断,不推送评审工具
用户输入密码时:
密码验证失败时的处理流程:
用户选择「跳过」→纯文本降级模式(caption_only)
⚠️ 密码安全:不写入任何文件,不保存到preferences/environment,仅在当前会话内存中持有
完成后输出:
✅ 段落1完成 | Onboarding通过 | task_id=xxx
🔴🔴🔴 段落1必须执行以下收尾动作(缺一不可):
→ 如果用户已在段落1之前发送了需求文档 → 立即自动执行:
```
exec: python3 "$ORCH" --action step0 --requirement-file "{data_dir}/requirement.docx"
```
→ 如果用户尚未发送需求文档 → 必须输出以下提示并等待:
```
📋 请发送需求正文(.docx/.txt文件或直接粘贴文字),收到后立即开始分析
```
→ 禁止跳过段间判断直接进入段落2,必须根据用户是否已发送需求来决定下一步
用户回复"继续"/"好的"/"下一步"/"go"等确认意图后执行:
🔴 段间验证(必须先执行):
exec: python3 "$ORCH" --action status
确认onboarding gate pass存在。如不存在,必须重新执行段落1。
🔴 查找并保存上传的文档(如用户上传了.docx/.txt文件):
⚠️ data_dir从onboarding返回的task_id推断,格式为: ~/.openclaw/workspace/data/task_{task_id}
Step 1: 查找最近修改的docx/txt/pdf文件(飞书附件可能下载到多个位置):
exec:
# 查找最近30分钟内修改的docx/txt/pdf文件,覆盖飞书附件可能的下载路径
DOC_FILE=$(find ~/Downloads /tmp ~/Desktop ~/Documents ~/Library \
-maxdepth 3 -type f \
\( -name "*.docx" -o -name "*.txt" -o -name "*.pdf" \) \
-mmin -30 2>/dev/null \
| head -1)
if [ -n "$DOC_FILE" ]; then
echo "FOUND_FILE=$DOC_FILE"
echo "✅ 找到候选文件: $DOC_FILE"
else
echo "NO_FILE_FOUND"
echo "⚠️ 未在常用路径找到最近30分钟内的需求文档"
fi
Step 2: 如果Step 1找到了文件,移动/复制到data_dir:
exec:
DOC_FILE="{Step1返回的FOUND_FILE路径}"
DATA_DIR="{data_dir}"
mkdir -p "$DATA_DIR"
cp "$DOC_FILE" "$DATA_DIR/requirement.docx"
echo "✅ 需求文档已复制到: $DATA_DIR/requirement.docx"
Step 3: 如果Step 1没找到,扩大搜索范围(全盘搜索最近2小时的文件):
exec:
DOC_FILE=$(find /tmp ~/Downloads ~/Desktop ~/Documents ~/Library ~/ \
-maxdepth 5 -type f \
\( -name "*.docx" -o -name "*.txt" -o -name "*.pdf" \) \
-mmin -120 2>/dev/null \
| head -5)
if [ -n "$DOC_FILE" ]; then
echo "FOUND_FILES:"
echo "$DOC_FILE"
echo "💡 请确认上述哪个是需求文件,或告知文件路径"
else
echo "NO_FILE_FOUND"
echo "📋 需求文档尚未上传到处理目录。"
echo "请将需求文件路径告诉我,或重新上传该文件。"
fi
⚠️ 找到文件后必须移动或复制到data_dir目录下,命名为requirement.docx
exec: python3 "$ORCH" --action step0 --requirement-file "{data_dir}/requirement.docx"
→ 需求接收完成
exec: python3 "$ORCH" --action step0_8_prep --requirement-file "{docx_path}" --api-key "{用户在Onboarding中输入的密码}"
→ V3.2.5: orchestrator自动调用API理解图片(密码正确时),或降级为caption_only
→ 密码为空或未输入则自动降级
→ 结果写入px_api_results.json,无需Agent看图
→ 如返回skipped:非docx或无图片,跳过
exec: python3 "$ORCH" --action step0_8_save
→ 统一收口:读取结果→px_understand.json→image_enhance→mark_complete
完成后输出:
✅ 段落2完成 | 需求已解析 | 业务域:xxx | 图片N张
📋 请回复「继续」开始需求结构化
🔴🔴🔴 段落2必须输出图片理解摘要(缺一不可)(展示给用户确认):
exec: cat {data_dir}/px_understand.json
→ 读取后展示识别到的图片张数、每张图的页面/内容摘要,让用户确认图片理解是否准确。
→ 如果识别结果异常(如图片数量与需求不符),提示用户在P0中补充说明。
→ 禁止跳过此步骤直接进入段落3,图片理解结果是P0质量的重要参考。
用户确认后执行:
🔴 段间验证(必须先执行):
exec: python3 "$ORCH" --action status
确认step0的gate pass存在(说明段落2已完成,P0/P1尚未执行是正常的)。如不存在,必须重新执行段落2。
对 P0 和 P1 各执行:
exec: python3 "$ORCH" --action prep_prompt --step P{N}
→ 获得 prompt_file 路径
read {prompt_file} → 用推理能力生成JSON
write {DATA_DIR}/p{n}_agent_output.json → JSON结果
exec: python3 "$ORCH" --action step_run --step P{N}
→ orchestrator校验+truncation_guard+gate pass
V3.5.4: P0执行完成后追加quality_check(PRD审查增强):
🔴🔴🔴 重要:如果用户开启了PRD审查,P0的JSON输出必须包含 blocks_markdown 和 issues 两个字段!
这是代码层硬校验,缺少任何一个字段,step_run将直接返回 prd_review_validation_failed 错误并拒绝。
当 prd_quality_review=True 时,P0的JSON输出必须包含:
- blocks_markdown: string ← 需求结构化Markdown,必须输出,不得省略
- issues: array ← 问题清单数组,无问题时输出空数组[]
P0的step_run成功后,立即执行:
exec: python3 "$ORCH" --action quality_check --step P0
→ 如果返回中包含 prd_review_enabled: true,则必须展示以下内容:
📋 **需求结构化结果**
{blocks_markdown内容,原样输出,保持Markdown格式}
**展示示例**(供Agent参考,实际输出以blocks_markdown内容为准):
```
## 模块1:月亮晒榜单优化(PC端)
### F01 有效机构户排名优化
**输入/输出**
- 输入:机构户数据、统计周期(月度) ✅
- 输出:排名列表(增量排名替代原排名) ✅
**业务规则**
- 增量排名 = 本期新增机构户数排序 ✅
- ⚠️ 未明确增量排名排序规则(降序?平局如何处理?)
**约束条件**
- 统计周期:自然月 ✅
- ⚠️ 未定义"有效机构户"的判定标准
**场景**
- 正常展示、无新增机构户、多机构并列
---
### F02 重点机构业务优化
**输入/输出**
- 输入:重点机构业务数据 ✅
- 输出:删除"目标完成率(%)"列 ✅
**业务规则**
- 删除操作:前端隐藏该列 ✅
- ⚠️ 未说明存量数据是否保留(物理删除 or 逻辑隐藏)
**状态流转**
- 删除前 → 确认提示 → 删除后刷新列表 ✅
---
### F05-F07 福建区域新增三张表
**输入/输出**
- 输入:金种子/商机沙盘/海交综服数据 ✅
- 输出:三张新增tab,各含11个统计字段 ✅
**业务规则**
- 11个统计字段:⚠️ 未定义字段名称、计算公式、数据来源
**约束条件**
- 数值字段:⚠️ 未定义数据类型(整数/小数)、单位、精度
- 必填项:⚠️ 未明确哪些字段必填
**角色权限**
- 福建区域用户可见 ✅
- ⚠️ 其他区域用户是否可见未说明
```
⚠️ **问题清单**(共{prd_issues数量}项)
| 严重度 | 位置 | 类型 | 问题 | 建议 |
|--------|------|------|------|------|
{遍历prd_issues数组渲染表格}
📊 **质量评分:{quality_score}**
→ 如果 quality_check 返回中包含 prd_review_report_path 字段:
发送文件: 📄 PRD审查报告已生成,点击下载:{prd_review_report_path}
(使用相对路径或绝对路径均可,确保用户可点击下载)
→ 如果 quality_check 返回 quality_failed(评分<0.5):
输出: ❌ 需求质量不合格,流程中断。请根据问题清单修改需求后重新提交。
停止执行(不继续P1)
→ 如果 quality_check 返回 ok:
展示内容后自动继续P1,不等待用户
→ 如果返回中不包含 prd_review_enabled(用户跳过了PRD审查):
仍必须展示质量评分摘要:
```
📊 P0需求质量评分: {quality_score} (阈值≥0.7为✅通过, <0.5为❌不合格)
📋 待确认问题: N条(见下方问题清单,若无则显示"无")
```
→ 如果 quality_score < 0.5: 输出❌不合格提示,流程中断
→ 如果 quality_score >= 0.5: 直接继续P1,不等待用户
完成后输出:
✅ 段落3完成 | P0评分:0.xx | P1模块:N个/功能点:M个
🔴🔴🔴 段落3必须输出以下内容(缺一不可,禁止跳过直接进入段落4):
→ 生成需求理解与功能点拆解报告:
exec: python3 "$ORCH" --action export_p0p1
→ 生成 {data_dir}/p0p1_report.md 文件
→ 发送报告文件给用户:
📄 需求理解与功能点拆解报告已生成
MEDIA:{data_dir}/p0p1_report.md
(使用绝对路径,确保飞书可以上传文件)
→ 如果开启了PRD审查,检查data目录是否有 prd_review_report.md 文件:
如果存在,同样发送: 📄 PRD审查报告
MEDIA:{data_dir}/prd_review_report.md
→ V4.0.0 评审推送闭环:
从export_p0p1返回的JSON中解析cloud_review字段(从exec的stdout解析JSON):
cloud_review.pushed == True → 输出: 🔗 需求理解已推送到评审工具: {cloud_review.review_url}cloud_review.pushed == False → 输出: ⚠️ 需求推送失败({cloud_review.message}),不影响后续流程→ 禁止跳过上述任何一步直接进入段落4 — 即使P0+P1+P2全部PASSED,未发送报告文件仍属于流程不完整
🔴🔴🔴 发送P0P1报告前强制自检(在执行P2之前必须全部完成):
在执行 auto P2 之前,Agent必须逐项确认以下全部完成,不得跳过任一项:
□ exec: python3 "$ORCH" --action export_p0p1 已执行完毕,stdout包含 "status": "success"
□ MEDIA 附件指令已在回复中独占一行发出(格式: MEDIA:{data_dir}/p0p1_report.md)
□ 质量评分已在回复中展示(格式: 📊 P0需求质量评分: X.XX,≥0.7✅ / <0.5❌)
□ cloud_review 推送结果已在回复中展示(如已配置API密码)
→ 全部确认后,才执行 P2 auto;任一项未完成则立即补做,不允许执行P2
⚡ P0+P1完成后立即自动执行P2(无需用户确认):
段落3的P0+P1完成后,Agent立即自动执行P2,不等待用户回复:
段间验证: exec: python3 "$ORCH" --action status(确认P0+P1 gate pass存在)
P2由代码自动生成,Agent执行以下命令即可:
exec: python3 "$ORCH" --action p2_code_generate
→ 代码自动读P1 feature_tree → 规则引擎生成测试点 → gate pass
段落3+4合并输出(P2自动完成后展示):
[自动] P1完成 | 功能点:N个 | 场景:M个
[自动] P2测试点生成完成 | 测试点:X条(自动生成)
📋 请回复「继续」进入风险识别(P3+P4)
V4.2.0: 当 prd_quality_review=False 时,P0完成后仍必须展示结构化结果:
exec: python3 "$ORCH" --action quality_check --step P0
→ 读取 p0_output.json,依次展示:
📋 需求结构化结果
→ 如果 blocks 字段不存在或为空: 仅展示objective+quality_score+"⚠️ 部分结构化数据不可用"
→ 如果 objective 为空: 显示"⚠️ 需求目标未提取"
📋 待确认问题:
→ 如果 blocks 不存在或 blocks.unknowns 为空: 显示"✅ 无待确认问题"
→ 否则读取 blocks.unknowns(数组,每项含description和impact字段,无clarification_questions字段):
🚨 阻塞问题({blocks.unknowns中blocking=true的数量}条):
{遍历blocks.unknowns中blocking=true的项,每条输出"- 🚨 {description} (影响:{impact})"}
⚠️ 非阻塞问题({blocks.unknowns中blocking=false的数量}条):
{遍历blocks.unknowns中blocking=false的项,每条输出"- ⚠️ {description} (影响:{impact})"}
如果两处均为空: "✅ 无需确认问题,可继续推进"
注: 🚨阻塞=阻止开发/测试继续; ⚠️非阻塞=不影响主流程但需关注
用户确认后执行:
🔴 段间验证:
exec: python3 "$ORCH" --action status
确认P2的gate pass存在。
⚡ P3和P4互不依赖,必须并行执行(同时进行,省3-4分钟):
并行分支1 - 执行P3(风险识别):
exec: python3 "$ORCH" --action prep_prompt --step P3
→ 读取P3 prompt → 生成JSON → write到p3_agent_output.json
exec: python3 "$ORCH" --action step_run --step P3
并行分支2 - 执行P4(PCI识别):
exec: python3 "$ORCH" --action prep_prompt --step P4
→ 读取P4 prompt → 生成JSON → write到p4_agent_output.json
exec: python3 "$ORCH" --action step_run --step P4
❗ 并行要求:P3和P4的4条命令(2条prep_prompt + 2条step_run)必须同时发起,不等其中一个完成再执行另一个。若任一步骤失败,立即停止,不执行P5合并。
⚡ V4.1.1 并行失败处理机制:
也可使用一条命令执行P3+P4并行(推荐,内置完整失败处理):
exec: python3 "$ORCH" --action p3_p4_parallel
失败处理规则:
restart_from P3重试命令失败时输出示例:
{"status":"failed","failure_log":[{"step":"P3","status":"failed","reason":"..."}],"can_proceed_to_p5":false}
⚡ P3+P4完成后自动执行P5合并(无需用户确认):
🔴 段间验证:
exec: python3 "$ORCH" --action status
确认P2/P3/P4的gate pass存在。
🔴🔴🔴 P5由代码自动合并,Agent绝对不参与!
exec: python3 "$ORCH" --action p5_code_merge
→ orchestrator自动读P2+P3+P4→代码合并→写入P5→gate pass
❌ 以下操作全部禁止(代码层硬控,会被拒绝):
# 禁止!会被orchestrator直接拒绝
exec: python3 "$ORCH" --action step_run --step P5
# 禁止!Agent不能自己写P5
write: p5_agent_output.json
write: p5_output.json
# 禁止!Agent不能用Python脚本生成P5
exec: python3 -c "..."
# 禁止!Agent不能伪造gate pass(V3.2.6 HMAC验签会拒绝)
write: gates/P5.pass.json
段落5+6合并输出(P5自动完成后展示):
[自动] P3+P4完成 | 风险:Y条 | PCI:Z条
[自动] P5测试点合并完成(代码自动执行)
📋 请回复「继续」进入用例生成
🔴🔴🔴 段落4必须执行以下检查(禁止跳过,缺一不可):
→ exec: python3 "$ORCH" --action status
确认 step0/P0/P1 gate pass 存在
→ exec: python3 -c "import json; d=json.load(open('{data_dir}/p3_output.json')); assert d.get('risk_points'), 'risk_points缺失'"
确认 p3_output.json 包含 risk_points
→ exec: python3 -c "import json; d=json.load(open('{data_dir}/p4_output.json')); assert d.get('pci_list'), 'pci_list缺失'"
确认 p4_output.json 包含 pci_list
→ exec: test -f "{data_dir}/gates/P5.pass.json" && echo "P5.pass.json exists" || (echo "P5.pass.json missing" && exit 1)
确认 gates/P5.pass.json 存在
→ 如任一检查失败,必须重新执行对应步骤,禁止跳过进入段落5
🔴🔴🔴 V4.6.8 子任务执行禁令(最高优先级):
P6禁止在子任务/子Agent环境中执行! P6分批流程需要多轮tool call交互(每批2次),子任务环境容易超时导致整个流程中断。
用户确认后执行:
🔴 段间验证:
exec: python3 "$ORCH" --action status
确认P5的gate pass存在。
📋 安全用例条件注入(V4.1.1):
需求涉及文件上传/导入时,orchestrator自动注入52行安全规则。
上传,导入,批量,文件,Excel,CSV,附件,docx,xlsx,上传文件,批量导入[自动] 安全用例规则跳过(未检测到文件上传场景)而非删除规则,Agent无需干预。P6统一流程:P5上下文 → AI生成 → 模板整理 → Gate检查 → 输出
所有模型统一使用以下流程:
exec: python3 "$ORCH" --action p6_batch_info
→ 获得total_batches
对每个批次N=1,2,...执行:
exec: python3 "$ORCH" --action prep_prompt --step P6 --batch-index {N}
→ 读取prompt → Agent生成JSON → write到p6_batch_{N:03d}_agent_output.json
exec: python3 "$ORCH" --action p6_save_batch --batch-index {N}
→ 校验(步骤唯一性+步骤-结果对应+占位符检测)
🔴 P6重试规则:
全部批次完成后:
exec: python3 "$ORCH" --action p6_merge
完成后输出:
✅ 段落5完成 | 用例:N条 | 冒烟:M条
📋 请回复「继续」进入质检和导出
🔴🔴🔴 段落5必须执行以下检查(禁止跳过,缺一不可):
→ exec: python3 -c "import json; d=json.load(open('{data_dir}/p6_output.json')); assert d.get('testcases'), 'testcases缺失'; assert len(d['testcases'])>0, 'testcases为空'"
确认 p6_output.json 存在且包含非空 testcases
→ exec: python3 -c "import json; d=json.load(open('{data_dir}/p6_output.json')); smokes=[c for c in d.get('testcases',[]) if c.get('isSmoke')]; assert len(smokes)>0, '无冒烟用例标注'"
确认 p6_output.json 中冒烟用例 isSmoke 字段已标注
→ exec: test -f "{data_dir}/gates/P6.pass.json" && echo "P6.pass.json exists" || (echo "P6.pass.json missing" && exit 1)
确认 gates/P6.pass.json 存在
→ 如任一检查失败,必须重新执行段落5,禁止跳过进入段落6
→ ⚠️ P6+Excel导出文件在段落6生成,不要在段落5重复生成
⚠️ Agent收到用户「继续」后,必须立即执行段落6的Step 1+Step 2,禁止在此处宣布「任务完成」,禁止询问用户是否需要Excel导出,P7+Excel导出是自动执行的必须步骤!
用户确认后执行:
🔴 段间验证(必须先执行):
exec: python3 "$ORCH" --action status
确认P6的gate pass存在。如不存在,必须重新执行段落5。
Step 1: P7质量门禁(V3.3.1: 代码自动校验,无需Agent生成JSON)
exec: python3 "$ORCH" --action p7_code_check
→ 代码自动读p5_output.json+p6_output.json,执行C1-C9+C7.1全部11项校验
→ 自动生成p7_output.json + p7_report.html + P7.pass.json
→ ❌ 禁止用step_run --step P7,会被拒绝
Step 2: Excel导出 + 评审推送
exec: python3 "$ORCH" --action step7_export
→ 🔴 step7_export会校验P6用例数量底线 + P7 gate pass(必须由p7_code_check生成)
→ V4.0.0: 导出成功后自动推送用例到云端评审工具(如已配置),返回cloud_review字段
→ 不达标会被拒绝,需要重新执行段落5的P6
⚠️ MEDIA指令是发送文件给用户的唯一方式。不输出MEDIA=用户收不到文件。
⚠️ 评审链接是V4.0.0闭环的关键环节,必须展示给用户。
🔴🔴🔴 段落6必须输出以下内容(缺一不可,禁止跳过):
→ 执行 step7_export 后,必须发送Excel文件: MEDIA:{data_dir}/test_cases.xlsx
→ 必须展示P7质量门禁结果摘要(通过/不通过/警告数量)
→ 必须展示评审推送结果(链接或失败原因)
→ 如未输出MEDIA指令则用户无法收到Excel文件,属于严重流程遗漏
| 用户输入 | 含义 |
|---|---|
| --------- | ------ |
| 继续/好的/下一步/go | 执行下一段 |
| 查看进度 | exec orchestrator.py --action status |
| 从P{N}重新开始 | exec: python3 "$ORCH" --action restart_from --step P{N} |
| 取消/停止 | 终止流程,保留已完成产物 |
| 重试推送 | exec: python3 "$ORCH" --action retry_push |
用户发送"继续"时,如果当前任务有未完成步骤:
exec: python3 "$ORCH" --action resume
→ 获得 next_step,从对应段落继续
| 错误 | 处理 |
|---|---|
| ------ | ------ |
| orchestrator返回error | 输出错误信息,🔴 不允许回退到手动模式,必须修复后重试 |
| orchestrator返回gate_blocked | 检查前置步骤是否完成 |
| orchestrator返回guard_failed | 重新生成JSON重试(最多1次) |
| orchestrator返回quality_failed | 按retry_hint重新执行对应步骤 |
| 路径 | 说明 |
|---|---|
| ------ | ------ |
| tools/orchestrator.py | 核心流程控制器,15+个action,参数自动化,HMAC签名,云端评审推送 |
| tools/truncation_guard.py | 四级截断检测+原子写入+HMAC签名 |
| tools/export_excel.py | Excel导出(21列公司标准) |
| tools/export_markdown.py | Markdown降级导出 |
| tools/export_p0p1.py | P0/P1结构化报告导出(MD+HTML) |
| tools/export_prd_review.py | PRD审查结果Excel导出 |
| tools/p5_prepare.py | P5测试点合并预处理 |
| tools/p6_templates.py | P6模板整理(11套category模板,统一流程辅助) |
| tools/image_extract.py | docx图片抽取(python-docx) |
| tools/image_understand.py | 图片理解调度(vision/OCR/context_only三级降级) |
| tools/image_ocr.py | OCR引擎封装 |
| tools/image_enhance.py | 图片理解增强聚合 |
| tools/model_detect.py | 模型能力检测(视觉能力+预处理) |
| tools/test_px_pipeline.py | 图片处理管线集成测试 |
| tools/image_api_server/server.py | 腾讯云图片理解API服务端(Flask) |
| references/orchestrator_protocol.md | Agent↔orchestrator交互协议 |
| references/onboarding.md | Onboarding检查+交互流程 |
| references/step0-px.md | Step 0+PX详细指令(prompt参考源) |
| references/step1-4.md | P0-P5详细指令(prompt参考源) |
| references/step5-7.md | P6-P7+Excel详细指令(prompt参考源) |
| prompts/P0_requirement_structuring.md | P0需求结构化Prompt |
| prompts/P0.5_prd_quality_review.md | P0.5 PRD质量审查Prompt |
| prompts/P0_prd_review_enhance.md | P0 PRD审查增强Prompt |
| prompts/P1_feature_tree_generation.md | P1功能点树Prompt |
| prompts/P2_test_point_draft.md | P2测试点草稿Prompt |
| prompts/P3_risk_identification.md | P3风险识别Prompt |
| prompts/P4_pci_identification.md | P4 PCI识别Prompt |
| prompts/P5_test_point_merge.md | P5测试点合并Prompt |
| prompts/P5a_batch_merge.md | P5a批量合并Prompt |
| prompts/P6_testcase_generation.md | P6用例生成Prompt |
| prompts/P6_api_rules.md | P6 API测试规则Prompt |
| prompts/PX_image_understand.md | PX图片理解Prompt |
| prompts/PX_ocr_extract.md | PX OCR提取Prompt |
| config/project_domain_mapping.json | 项目→业务域映射配置(v2.0: 10组项目关键词+16个同义词+12域知识库映射) |
| user_knowledge/preferences.json | 用户偏好配置(PRD审查/输出格式/默认域) |
| user_knowledge/model_vision_override.json | 模型视觉能力覆盖配置 |
| 知识库由云端API实时同步 | _sync_knowledge_from_cloud() 按需拉取,本地无缓存文件 |
| CHANGELOG.md | 版本变更记录 |
| RELEASE_NOTES.md | 发布说明 |
共 8 个版本