You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

3.2 KiB

02 P0 判定(7 项)

Type: task Status: resolved Blocked by: 01

Question

对缺陷报告 P0-1 ~ P0-7 逐项做「原型条款(01 产出)+ PRD v1.2 条款 + 代码现状」三方比对,每项给出四类裁决之一:真实缺陷 / 实现遗漏 / 需求变更 / 误报,附证据链(原型原文出处 + PRD 章节 + 代码文件/行号)与修复方向。

charting 已校准的事实(直接可用,仍需复核)

  • P0-5 疑似误报LeadServiceImpl.claimLead() L217-219 已校验 CLAIM_RULE_ADMIN_ONLY 并抛 CODE_CLAIM_RULE_DENIED
  • P0-2/P0-3/P0-4 属实:crm-lead 全模块无 holdLimit/dailyClaimLimit 引用;createLead() claimOnCreate 分支(L120-129)直接置 CLAIMED,未走任何领取校验链。
  • P0-1:PRD §4.3 定稿"删除软删且必须池下无非终态线索";ADR-0023 当时刻意预留 64005 未补 → 倾向实现遗漏(偿还决策债)。注意 PoolBatchFailReason.HAS_ACTIVE_LEAD 枚举已存在但守卫逻辑未实现——查 LeadPoolServiceImpl.deletePool()/deletePoolBatch() 证实。
  • P0-6:PRD §7 已定稿(E) 公海混合展示(待领取+已领取/跟进中只读观察态,防撞单),且"展示范围作为可配置项,不硬编码";查 LeadViewQueryImpl.buildViewWrapper() PUBLIC_POOL 分支是否仍硬编码 status=PENDING
  • P0-7:PRD §6.1 grill #6 定稿"自动带池=本人主部门的池(不给选、不可编辑);主部门无池报错拦截";代码 createLead() L110 poolId==null 直接置 UNDISTRIBUTED,无角色判定、无主部门池回填。

产出.scratch/lead-defect-a2-a7-3-1/确认清单-P0.md,判定表列:编号 | 裁决 | 原型依据 | PRD 依据 | 代码现状 | 修复方向。

纪律:若发现 PRD 与原型均无定论的产品分歧,停下问用户,不要自行拍板。

Answer

产出确认清单-P0.md(2026-08-19)。

裁决分布:实现遗漏 6 / 误报 1(P0-5)/ 真实缺陷 0 / 需求变更 0。

  • P0-1 实现遗漏:deletePool() L135-147 无占用守卫(ADR-0023 决策债);修复需跨模块 seam(crm-rule 定义占用查询 port,参照 OpportunityCreationPort 模式,票 05 出 ADR)。
  • P0-2/P0-3/P0-4 实现遗漏:crm-lead 全模块无 holdLimit/dailyClaimLimit 引用;65006/65007 已定义从未抛出;claimLead/assignToUser/createLead(claimOnCreate) 三处共用同一"领取额度校验器"修复(票 06);P0-4 超限=整体失败(用户拍板)。
  • P0-5 误报:claimLead L217-219 已拦截 ADMIN_ONLY 抛 65005 + 单测覆盖(LeadServiceImplTest L241)。
  • P0-6 实现遗漏:buildViewWrapper L130 硬编码 eq(status, PENDING),与 L138 statusIn AND 叠加无法扩大;按 PRD §7(E) 改可配置状态集(默认 {2,3,4},票 07)。
  • P0-7 实现遗漏:createLead L110 无角色分支,销售可建未分发/任意指定池;按 PRD §6.1 grill #6 修复(销售强制主部门池回填+无池拦截,票 07)。
  • 待用户确认 1 项(阻塞票 07 不阻塞判定):A2-1-4-1 管理侧"选人即分配"是否纳入本期(PRD 留白、原型有页)。
  • charting 校准事实全部复核属实,无翻案;无"PRD 与原型均无定论"的产品分歧。