|
25 | 25 | "使用 Mermaid 语法块表达依赖顺序和并行关系。", |
26 | 26 | "保持摘要、Mermaid 图、change 详情块和命令区的 change/phase 数量一致。", |
27 | 27 | "使用 /opsx:new \"<change>\" --schema <schema>。", |
| 28 | + "给出 schema 裁决,说明为什么选中该 schema、为什么不选至少一个替代 schema。", |
28 | 29 | "保留 RBAC 复用事实和邀请链接过期规则待确认项。", |
29 | 30 | "说明后续通过 aisee:change-author 或 /opsx:continue 补齐 artifacts。" |
30 | 31 | ], |
|
36 | 37 | "change 边界", |
37 | 38 | "Mermaid 依赖图", |
38 | 39 | "依赖顺序", |
| 40 | + "Schema decision", |
39 | 41 | "Metadata gate", |
40 | 42 | "source-map seed", |
41 | 43 | "/opsx:new 命令" |
|
47 | 49 | ], |
48 | 50 | "quality_checks": [ |
49 | 51 | "change 边界来自可独立交付能力,不来自文档标题。", |
| 52 | + "schema 选择理由与替代 schema 拒绝理由都可追溯到输入事实。", |
50 | 53 | "待确认规则不被主观补全为实现决策。" |
51 | 54 | ], |
52 | 55 | "fact_source_constraints": [ |
|
70 | 73 | "判断为单个小 change。", |
71 | 74 | "输出一个 change 详情块、单节点 Mermaid 依赖图和单条 /opsx:new 命令。", |
72 | 75 | "保持摘要、Mermaid 图和命令区的计数一致。", |
| 76 | + "给出 schema 裁决,并明确为什么不需要升级成 aisee-app-spec-driven。", |
73 | 77 | "说明不需要为了流程拆成多个 change。" |
74 | 78 | ], |
75 | 79 | "must_ask": [ |
76 | 80 | "状态枚举是否已有并可复用?" |
77 | 81 | ], |
78 | 82 | "must_include": [ |
79 | 83 | "单 change 判断", |
| 84 | + "Schema decision", |
80 | 85 | "Mermaid 依赖图", |
81 | 86 | "Out of Scope", |
82 | 87 | "/opsx:new 命令" |
|
88 | 93 | ], |
89 | 94 | "quality_checks": [ |
90 | 95 | "保持小需求小处理。", |
| 96 | + "schema 选择必须解释为什么没有 API / DB / 完整 UI 契约足迹。", |
91 | 97 | "清楚标注复用现有列表页和权限。" |
92 | 98 | ], |
93 | 99 | "fact_source_constraints": [ |
|
110 | 116 | "expected_outputs": [ |
111 | 117 | "拒绝把背景、UI 页面、API 设计、数据库设计、测试计划或上线计划作为 change 边界。", |
112 | 118 | "围绕退款处理、退款报表、退款状态查看规划 change。", |
| 119 | + "给出每个 change 的 schema 裁决和至少一个替代 schema 的拒绝理由。", |
113 | 120 | "每个 change 包含 FR 引用、Out of Scope、source-map seed 和 Mermaid 依赖图。" |
114 | 121 | ], |
115 | 122 | "must_ask": [ |
|
118 | 125 | ], |
119 | 126 | "must_include": [ |
120 | 127 | "FR 引用", |
| 128 | + "Schema decision", |
121 | 129 | "Mermaid 依赖图", |
122 | 130 | "Out of Scope", |
123 | 131 | "source-map seed", |
|
151 | 159 | "expected_outputs": [ |
152 | 160 | "保留 [ARCHITECTURE-DECISION-REQUIRED]。", |
153 | 161 | "把库存一致性策略作为 blocker 或首个风险验证/决策 change。", |
| 162 | + "如果 schema 选择仍有决定性歧义,应输出 schema blocker,而不是硬选 schema。", |
154 | 163 | "避免直接规划依赖未知一致性方案的实现 change。" |
155 | 164 | ], |
156 | 165 | "must_ask": [ |
|
159 | 168 | ], |
160 | 169 | "must_include": [ |
161 | 170 | "[ARCHITECTURE-DECISION-REQUIRED]", |
| 171 | + "Schema decision", |
162 | 172 | "Mermaid 依赖图", |
163 | 173 | "blocker 或决策 change", |
164 | 174 | "受影响 FR" |
|
169 | 179 | ], |
170 | 180 | "quality_checks": [ |
171 | 181 | "架构 blocker 不被降级为普通风险。", |
| 182 | + "schema 选择不会借由未确认架构决策被偷渡成既定事实。", |
172 | 183 | "规划结果可防止后续 change-author 建立在错误前提上。" |
173 | 184 | ], |
174 | 185 | "fact_source_constraints": [ |
|
191 | 202 | "expected_outputs": [ |
192 | 203 | "选择或建议 aisee-device-spec-driven。", |
193 | 204 | "输出设备类 source-map seed,包含 HW/FW/RT/VER 或 TBD in 对应 contract。", |
| 205 | + "给出为什么不选择 aisee-app-spec-driven 或 quick-fix 的理由。", |
194 | 206 | "把板级引脚和传感器型号未确认标为 blocker 或 Open Question。" |
195 | 207 | ], |
196 | 208 | "must_ask": [ |
|
199 | 211 | ], |
200 | 212 | "must_include": [ |
201 | 213 | "aisee-device-spec-driven", |
| 214 | + "Schema decision", |
202 | 215 | "HW/FW/RT/VER", |
203 | 216 | "blocker 或 Open Question" |
204 | 217 | ], |
|
215 | 228 | "device source-map seed 不是正式硬件设计。" |
216 | 229 | ], |
217 | 230 | "files": [] |
| 231 | + }, |
| 232 | + { |
| 233 | + "id": "change-plan-006", |
| 234 | + "name": "dont-downgrade-contractful-change-to-quick-fix", |
| 235 | + "scenario": "misleading-small-change", |
| 236 | + "prompt": "用户说这是个小修复:登录失败提示文案顺便优化一下。但真实需求还包括:连续失败 5 次后锁定账号 15 分钟、返回剩余锁定时间、记录管理员可查询的审计日志。请规划 change-plan。", |
| 237 | + "context": { |
| 238 | + "files": [], |
| 239 | + "assumptions": [ |
| 240 | + "用户的“小修复”说法与真实范围不一致。", |
| 241 | + "锁定策略和审计查询属于正式产品能力。" |
| 242 | + ] |
| 243 | + }, |
| 244 | + "expected_output": "不得因为用户说是小修复就选择 quick-fix。应识别到这项需求涉及新的认证策略、服务语义和审计能力,优先选择 aisee-app-spec-driven,并在 schema 决策中明确拒绝 quick-fix。依赖顺序和执行命令如需输出,仍必须使用 Mermaid 和 /opsx:new。", |
| 245 | + "expected_outputs": [ |
| 246 | + "识别用户表述与真实契约足迹不一致。", |
| 247 | + "选择 aisee-app-spec-driven,而不是 quick-fix。", |
| 248 | + "在 Schema decision 中明确拒绝 quick-fix 的原因。" |
| 249 | + ], |
| 250 | + "must_ask": [ |
| 251 | + "账号锁定策略和管理员审计查询是否都属于本次交付范围?" |
| 252 | + ], |
| 253 | + "must_include": [ |
| 254 | + "aisee-app-spec-driven", |
| 255 | + "Schema decision", |
| 256 | + "拒绝 quick-fix 的理由", |
| 257 | + "/opsx:new 命令" |
| 258 | + ], |
| 259 | + "must_not": [ |
| 260 | + "不得因为“小修复”措辞直接选择 quick-fix。", |
| 261 | + "不得省略认证或审计契约影响。" |
| 262 | + ], |
| 263 | + "quality_checks": [ |
| 264 | + "schema 选择基于真实契约足迹,而不是用户的缩小措辞。", |
| 265 | + "锁定策略与审计能力被视为正式实现契约。" |
| 266 | + ], |
| 267 | + "fact_source_constraints": [ |
| 268 | + "change-plan 只能根据给定需求判断契约足迹,不生成额外认证规则。" |
| 269 | + ], |
| 270 | + "files": [] |
| 271 | + }, |
| 272 | + { |
| 273 | + "id": "change-plan-007", |
| 274 | + "name": "keep-feasibility-work-in-quick-research", |
| 275 | + "scenario": "research-vs-implementation", |
| 276 | + "prompt": "我们想评估是否接入某第三方 OCR 服务,用来识别报销票据。当前目标只是比较 3 家供应商、验证识别准确率和费用模型,并给出 go/no-go 建议。请规划 change-plan。", |
| 277 | + "context": { |
| 278 | + "files": [], |
| 279 | + "assumptions": [ |
| 280 | + "当前阶段只做可行性研究,不承诺生产实现。" |
| 281 | + ] |
| 282 | + }, |
| 283 | + "expected_output": "应选择 quick-research,而不是 aisee-app-spec-driven。输出的问题、发现和建议导向的 schema 决策,不得把供应商接入、上线改造或正式 API 实现写成当前 change 的生产任务。", |
| 284 | + "expected_outputs": [ |
| 285 | + "选择 quick-research。", |
| 286 | + "在 Schema decision 中说明为什么不进入 app 实现 schema。", |
| 287 | + "保持结论是研究 / go-no-go,而不是生产任务。" |
| 288 | + ], |
| 289 | + "must_ask": [ |
| 290 | + "这次是否只产出供应商评估和建议,不进入生产接入?" |
| 291 | + ], |
| 292 | + "must_include": [ |
| 293 | + "quick-research", |
| 294 | + "Schema decision", |
| 295 | + "go/no-go", |
| 296 | + "拒绝 aisee-app-spec-driven 的理由" |
| 297 | + ], |
| 298 | + "must_not": [ |
| 299 | + "不得输出生产实现任务。", |
| 300 | + "不得承诺正式接入第三方 OCR 服务。" |
| 301 | + ], |
| 302 | + "quality_checks": [ |
| 303 | + "schema 选择不会把调研结论升级成实现任务。", |
| 304 | + "替代 schema 的拒绝理由与当前目标一致。" |
| 305 | + ], |
| 306 | + "fact_source_constraints": [ |
| 307 | + "评估目标来自输入事实;change-plan 不补造上线范围。" |
| 308 | + ], |
| 309 | + "files": [] |
| 310 | + }, |
| 311 | + { |
| 312 | + "id": "change-plan-008", |
| 313 | + "name": "block-on-unresolved-schema-ambiguity", |
| 314 | + "scenario": "schema-selection-blocker", |
| 315 | + "prompt": "帮我规划“修复文件上传不稳定”这个需求。现有信息只有:有时用户上传失败;可能是前端重试逻辑、后端鉴权、对象存储权限、CI 打包配置或病毒扫描超时导致。没有稳定复现,也没有确认是只修问题还是要顺便重做上传链路。请直接给我 schema 和 change-plan。", |
| 316 | + "context": { |
| 317 | + "files": [], |
| 318 | + "assumptions": [ |
| 319 | + "当前证据不足以稳定判断是 quick-fix、infra-change、security-audit 还是 aisee-app-spec-driven。" |
| 320 | + ] |
| 321 | + }, |
| 322 | + "expected_output": "不得硬选 schema。应提出最多 1 个决定性问题,或直接输出 [SCHEMA-SELECTION-BLOCKED],列出仍在竞争的 schema 及原因,并明确在 schema 未定前不能输出 /opsx:new 命令或进入 change-author。", |
| 323 | + "expected_outputs": [ |
| 324 | + "输出 [SCHEMA-SELECTION-BLOCKED] 或一个决定性澄清问题。", |
| 325 | + "列出仍在竞争的 schema 及其 plausible 理由。", |
| 326 | + "在 schema 未定前不输出 /opsx:new 命令。" |
| 327 | + ], |
| 328 | + "must_ask": [ |
| 329 | + "这次目标是先定位根因并回答 go/no-go,还是已经确认要做生产修复/重构?" |
| 330 | + ], |
| 331 | + "must_include": [ |
| 332 | + "[SCHEMA-SELECTION-BLOCKED]", |
| 333 | + "Candidate schemas still in contention", |
| 334 | + "Decisive question" |
| 335 | + ], |
| 336 | + "must_not": [ |
| 337 | + "不得硬选 quick-fix、infra-change、security-audit 或 aisee-app-spec-driven。", |
| 338 | + "不得在 blocker 状态下输出 /opsx:new 命令。" |
| 339 | + ], |
| 340 | + "quality_checks": [ |
| 341 | + "低置信度 schema 选择被阻断,而不是被包装成确定结论。", |
| 342 | + "blocker 明确说明误选 schema 会导致的错误后续流程。" |
| 343 | + ], |
| 344 | + "fact_source_constraints": [ |
| 345 | + "在根因和目标未确认前,不得把任何一个候选 schema 升级为既定事实。" |
| 346 | + ], |
| 347 | + "files": [] |
218 | 348 | } |
219 | 349 | ] |
220 | 350 | } |
0 commit comments