@andyqiu/codeforge 0.3.12 → 0.3.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,150 @@
1
+ # ──────────────────────────────────────────────────────────────
2
+ # discover-flow.yaml — Discover Agent 5 阶段需求澄清流程
3
+ # trigger: /discover
4
+ # 流程:phase-a 入口门控 → phase-b JTBD 挖掘 → phase-c 对抗审查
5
+ # → phase-d 假设暴露 + 补边界 → phase-e PRD + handoff 生成
6
+ #
7
+ # ⚠️ Schema 适配说明(reviewer REQUEST_CHANGES 修复 1,选项 A):
8
+ # lib/workflow-loader.ts 的 WorkflowSchema.strict() 只接受
9
+ # name / description / version / trigger / context_template /
10
+ # max_loops / steps 这些顶层字段;StepSchema.strict() 只接受
11
+ # name / agent / description / inject_context / requires_human_approval /
12
+ # actions / on_error / max_retries / timeout / auto_feedback /
13
+ # on_decision —— 不允许 id / skills / exit_when / on_success /
14
+ # on_fail / artifacts。
15
+ #
16
+ # Session 3 原始设计中那些"声明字段"的语义(每阶段允许调哪些
17
+ # skill、退出条件、产物路径)按 ADR-discover-phase1 D4 决策属于
18
+ # **声明 ≠ 调用**:workflow runner 不解析、不强制,由 discover
19
+ # agent 在对话中通过 opencode `skill` 工具按需执行。因此本次修复
20
+ # 把这些信息全部下沉到每个 step 的 `description:` 文本块中作为
21
+ # 可审计的契约声明,loader 把它当普通字符串处理,不影响 schema
22
+ # 校验,"声明仍是 source of truth"。
23
+ # ──────────────────────────────────────────────────────────────
24
+
25
+ name: discover-flow
26
+ version: 1.0.0
27
+ description: |
28
+ 双 agent(discover + discover-challenger)协作的 5 阶段需求澄清流程:
29
+ phase-a 入口门控 → 判断用户输入是否清晰到可进入挖掘
30
+ phase-b JTBD 挖掘 → 澄清 job-to-be-done + 核心 user story
31
+ phase-c 对抗审查 → 召唤 challenger 子 agent 做反 sycophancy 强对抗
32
+ phase-d 假设暴露 → 处理红旗 + Example Mapping 补 case
33
+ phase-e PRD+handoff → 输出 PRD.md + handoff.yaml
34
+ 本 workflow 不直接调用 skill,由 discover agent 按 ## Skill 路由表 决定。
35
+
36
+ trigger: /discover
37
+ max_loops: 5
38
+
39
+ steps:
40
+ - name: phase-a 入口模糊度门控
41
+ agent: discover
42
+ description: |
43
+ [阶段 A] 入口门控
44
+ ─────────────────────────────────────
45
+ 职责:首次接到用户输入,判断 5 维度清晰度(who/what/why/scope/criteria);
46
+ 模糊则要求用户补充,清晰则进入 phase-b。
47
+
48
+ 允许调用 skill(声明,由 agent 按需触发,runner 不强制):
49
+ - ambiguity-gate
50
+ - weighted-dimensions
51
+
52
+ 退出条件(声明,由 agent 自检;不通过则在本 step 继续澄清):
53
+ - weighted_score >= 0.5
54
+ - user_intent 字段已确立
55
+
56
+ 成功后跳转:phase-b
57
+ 失败回退:留在本 step 继续追问
58
+
59
+ 产物(可选):
60
+ - handoff.draft.yaml(草稿,本阶段非必需)
61
+
62
+ - name: phase-b JTBD 挖掘
63
+ agent: discover
64
+ description: |
65
+ [阶段 B] JTBD 挖掘
66
+ ─────────────────────────────────────
67
+ 职责:澄清 job-to-be-done + 核心 user story;中段调用 example-mapping
68
+ 挖 BDD 场景;每轮末调用 weighted-dimensions 更新加权分。
69
+
70
+ 允许调用 skill(声明):
71
+ - weighted-dimensions
72
+ - example-mapping
73
+
74
+ 退出条件(声明):
75
+ - weighted_score >= 0.65
76
+ - core_user_story 字段已确立
77
+
78
+ 成功后跳转:phase-c
79
+ 失败回退:留在本 step 继续澄清
80
+
81
+ 产物(必须):
82
+ - handoff.draft.yaml
83
+
84
+ - name: phase-c 对抗审查
85
+ agent: discover
86
+ description: |
87
+ [阶段 C] 对抗审查
88
+ ─────────────────────────────────────
89
+ 职责:召唤 discover-challenger 子 agent 前,调用 devils-advocate 准备
90
+ 4 种 combo(A/B/C/D)对抗框架;challenger 返回红旗判定
91
+ (YES/NO)后由 discover 决定下一步。
92
+
93
+ 允许调用 skill(声明):
94
+ - devils-advocate
95
+ - weighted-dimensions
96
+
97
+ 退出条件(声明):
98
+ - red_flags_handled == true(challenger 报告中的红旗已全部回应)
99
+
100
+ 成功后跳转:phase-d
101
+ 失败回退:留在本 step 继续处理红旗
102
+
103
+ 产物(必须):
104
+ - handoff.draft.yaml(更新红旗处理记录)
105
+
106
+ - name: phase-d 假设暴露与补边界
107
+ agent: discover
108
+ description: |
109
+ [阶段 D] 假设暴露 + 补边界
110
+ ─────────────────────────────────────
111
+ 职责:处理 challenger 报告中的红旗 + 漏洞;末段调用 example-mapping
112
+ 补充边界 case;Question 卡 ≤ 2 张时收敛进入 phase-e。
113
+
114
+ 允许调用 skill(声明):
115
+ - example-mapping
116
+ - weighted-dimensions
117
+
118
+ 退出条件(声明):
119
+ - red_flags == [] (或全部已处理)
120
+ - weighted_score >= 0.75
121
+
122
+ 成功后跳转:phase-e
123
+ 失败回退:留在本 step 继续补边界
124
+
125
+ 产物(必须):
126
+ - handoff.draft.yaml(更新边界 case)
127
+
128
+ - name: phase-e PRD 与 handoff 生成
129
+ agent: discover
130
+ description: |
131
+ [阶段 E] PRD + handoff 生成
132
+ ─────────────────────────────────────
133
+ 职责:调用 success-criteria 把 user story + example mapping 转成 SMART
134
+ 验收清单;调用 ears-zh 把验收套 EARS 中文句式;最终产出
135
+ PRD.md + handoff.yaml。
136
+
137
+ 允许调用 skill(声明):
138
+ - success-criteria
139
+ - ears-zh
140
+
141
+ 退出条件(声明):
142
+ - handoff_yaml_complete == true
143
+ - weighted_score >= 0.8
144
+
145
+ 成功后跳转:__end__(workflow 结束)
146
+ 失败回退:留在本 step 继续完善 PRD
147
+
148
+ 产物(必须):
149
+ - PRD.md
150
+ - handoff.yaml