Commit d7035fc58f122bdc73462ebbfe57e02e077b2395
1 parent
8646516e
Validator/Planner skills: require real-state verification for cross-task data dependencies
Real incident (2026-08-06): the skill-content migration task and the skill detail page bug fix were two separate tasks. Neither was asked to verify that migrated content is actually reachable through the DB-backed lookup the detail page uses. Both passed their own tests cleanly -- because both only ever exercised the mechanism against seeded/mocked fixture data, never checked whether the real producer's real output actually exists in the real system. The result: the skill detail page returned "not found" for all 12 real migrated skills, and nobody caught it until a human clicked through the real console. qa-task-validation (§8): passing unit tests against seeded fixtures proves the mechanism is correct given valid input -- it does not prove that input exists for real. When a feature reads data another task/process was supposed to have already written, Validator must independently query the real running system against a real (not newly-created) object. project-sdd-planning (§10): when a task's acceptance depends on another task's real output, the Benchmark must name a real, specific object as the acceptance anchor, not just describe the mechanism. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Showing
2 changed files
with
4 additions
and
1 deletions
skills/project-sdd-planning/SKILL.md
| ... | ... | @@ -233,7 +233,8 @@ SDD 达成条件: |
| 233 | 233 | 3. `acceptance_matrix` 覆盖 PRD 全量需求; |
| 234 | 234 | 4. 每个接口至少包含成功 + 典型失败 + 并发失败场景; |
| 235 | 235 | 5. 每个流程至少有超时/重试/回滚条件; |
| 236 | -6. Code Agent 约束包可被下游消费(不依赖自然语言推断)。 | |
| 236 | +6. Code Agent 约束包可被下游消费(不依赖自然语言推断); | |
| 237 | +7. 若本任务的验收依赖另一任务/流程已经产出的真实数据(而非本任务自己创建的数据),Benchmark 必须点名一个真实存在的具体对象作为验收锚点,不能只描述“机制应该正确”(真实教训 2026-08-06:Skill 内容迁移与详情页展示分属两个任务,谁都没被要求验证“真实迁移的内容能否被真实查到”,这条数据链路因此从未被真正接通过)。 | |
| 237 | 238 | |
| 238 | 239 | ## 十一、质量门禁(给自审与下一轮) |
| 239 | 240 | ... | ... |
skills/qa-task-validation/SKILL.md
| ... | ... | @@ -156,6 +156,8 @@ metadata: |
| 156 | 156 | |
| 157 | 157 | “服务进程存在”不等于功能通过;“接口 200”也不等于业务状态正确。必须核对最终可观察结果。 |
| 158 | 158 | |
| 159 | +**“我方逻辑正确”不等于“上游数据真的存在”**:当被测功能读取的是另一个任务/流程本该早先写入的持久化数据(数据库行、注册表条目、索引文件——不是本次任务自己创建后立刻验证的临时数据)时,只用本任务自己 seed 的假数据跑通单测不构成集成证据——那只证明了机制在给定合法输入时是对的,没有证明这批合法输入在真实系统里真的存在。必须额外对着真实运行的系统/真实持久化存储,用一个真实存在(不是本次新建)的具体对象做一次端到端查证,确认生产者确实产出过、消费者确实能读到。真实教训(2026-08-06):一次 Skill 详情页 bug 修复只用手工 seed 的假 skill 行验证通过,全部测试绿灯,但因为从没有任何代码真的把已经真实迁移到磁盘的 12 个 Skill 写进数据库表,这个功能在真实系统里对所有真实 Skill 都返回“不存在”——两次独立的自动化验收(迁移那次和详情页那次)都没有发现,因为各自的验证范围都停在“自己负责的这一小段逻辑是对的”,没有人检查过跨任务的这条数据链路在真实系统里是否真的接通。 | |
| 160 | + | |
| 159 | 161 | ### 9. 非功能专项(按风险触发) |
| 160 | 162 | |
| 161 | 163 | - **安全:** 涉及认证、授权、输入处理、敏感数据或外部暴露面时,依据 OWASP ASVS/WSTG 的相关要求选择验证项;发现高危安全缺陷直接阻断。 | ... | ... |