Skip to content

商机的 7 个阶段里 needs_analysis 在详情页阶段路径和 Open Deals 行着色里都被漏掉(两处都只列 6 个) #759

Closed

Description

@yinlianghui

来源:#752(opportunities.mdx 视图清单重写,PR #757)实施过程中的顺带发现。#752 的文件面不含 src/**,故单独立单。

现状(基线 origin/main = 768a94b)

crm_opportunity.stage 的规范取值有 7 个 —— src/objects/_picklists.ts:111-119 的 OPPORTUNITY_STAGE_OPTIONS:

prospecting / qualification / needs_analysis / proposal / negotiation / closed_won / closed_lost

有两处 UI 元数据只写了其中 6 个,漏的都是 needs_analysis:

  1. 详情页的阶段路径 —— src/pages/opportunity_detail.page.ts:76-85,Opportunity Stage Path 组件的 steps 列了 prospecting / qualification / proposal / negotiation / closed_won / closed_lost。一笔处于 Needs Analysis 的交易打开详情页时,路径上没有对应的一步。

  2. Open Deals 列表的行着色 —— src/views/opportunity.view.ts:41-52 的 rowColor.colors,同样缺 needs_analysis 一项,该阶段的行拿不到颜色。

对照:content/docs/sales/opportunities.mdx:10-22 的「The 7 sales stages」表(以及三语页)写的是完整 7 个,object 也确实按 7 个校验 —— 所以这两处是元数据自身的漏项,不是文档漏写。

影响

Needs Analysis(默认赢单概率 40%)是漏斗中段的一个正常阶段,不是废弃值:src/objects/_picklists.ts 把它列为规范取值,mass_update_stage 动作也按同一份清单渲染。一笔停在 Needs Analysis 的交易,在详情页看不到自己在路径上的位置,在列表里也没有阶段色 —— 对用户表现为"这个阶段的交易显示得不一样",很容易被当成数据坏了。

修法

两处各补一项 needs_analysis(路径上排在 qualification 与 proposal 之间;rowColor 取一个与相邻阶段可区分的颜色,_picklists.ts 里该项自带 color: '#FFD700' 可直接沿用)。建议同时在 test/metadata-references.test.ts 加一条守卫:凡是逐项枚举 stage 的 UI 元数据(阶段路径 steps、rowColor.colors),其取值集合必须等于 OPPORTUNITY_STAGE_OPTIONS —— 否则下次新增阶段还会漏。

用户可见,需 changeset。

Refs #752 #757


Generated by Claude Code

Activity

  1. added
    bugSomething isn't working
    metadataDeclarative metadata — schema, security posture, UI surfaces
    pm:queueReady for the PM dispatch loop
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Aug 5, 2026
  2. self-assigned this
    on Aug 5, 2026
  3. yinlianghui commented on Aug 5, 2026

    @yinlianghui
    ContributorAuthor

    认领:PM 循环(17.0 发布修复线)第 7 轮
    会话:session_01VHrPAGEgFDoHjphqYG4BMa
    分支:claude/issue-759-needs-analysis-stage-coverage
    Worktree:hotcrm-issue-759
    文件面:src/pages/opportunity_detail.page.ts(stage path 补 needs_analysis)、src/views/opportunity.view.ts(rowColor 映射补项)、相关测试(建议:从 _picklists.ts 的 OPPORTUNITY_STAGE_OPTIONS 推导的完整性守卫,防第八个阶段再漏)、changeset。⛔ 不动 docs(#758/#756 同轮在飞)、不动该文件的 stale_opportunities 注释(#744 串行在后)。


    Generated by Claude Code

  4. yinlianghui commented on Aug 5, 2026

    @yinlianghui
    ContributorAuthor

    验收 ACCEPT(PM 复核,对照 GitHub 实况,head 24a5e09d):PR #761,8/9 绿(Playwright 收尾中),已转 ready 并挂自动合并。

    复核要点:

    • 全仓 8 个阶段枚举站点逐一排查(派生的、手写的、不枚举的各自归类),确认仅这两处短缺 —— out_of_scope_findings 为空是查出来的,不是省略。
    • 颜色判断高于派单建议:拒绝照搬 picklist 自带的金色(与相邻 proposal 琥珀仅差一个色相档 → 「用更难发现的形式把 bug 重做一遍」),取 teal 接上冷→暖漏斗渐变 —— 且「不得共色」本身成为守卫第三条断言。
    • 守卫补的是原有检查缺的反方向:子集检查(写的必须真)对「7 缺 1」完全放行 —— 这就是缺陷存活的机理;新增完整性断言派生自规范常量、带 sites.length 防空转,并预判排除了 #5046/#5009 两类计数反转。四项反向验证全中,含「守卫本身不空转」。
    • 两处 issue 措辞更正(stages 非 steps、picklist 路径)如实记录。

    Needs Analysis 阶段的商机从此在详情页路径与 Open Deals 行色上可见;第八个阶段不可能再半覆盖着发货。


    Generated by Claude Code

  5. added a commit that references this issue on Aug 10, 2026
  6. added and removed on Sep 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingmetadataDeclarative metadata — schema, security posture, UI surfacespm:dispatchedDispatched to a dev agent by /pm-dispatchpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions