Skip to content

zh 文档里 crm_opportunity 的 7 个阶段名有 4 个与语言包不符(开发期/资格审核/赢单/输单),且这一组该动哪边未定 #829

Description

@yinlianghui

来源:#801(PR #825)实施时的越界发现。#801 只覆盖 quotes / leads / contacts / sales-index 四页的 lead 状态名、expiration_date、reports_to 与区块名,本条整组都在它的文件面之外,故未在该 PR 里动。基线 origin/main = 6f6ed9a。

同一缺陷类(文档里的词与 src/translations/zh-CN.ts 不符,#802 记的那一类),但这次的量级和性质都不同:漂移的不是某一页的某个词,而是一个对象的整套阶段名,在全部 zh 页上一致地用了另一套说法。

甲、crm_opportunity.stage 七个选项里四个对不上

zh-CN.ts 的 crm_opportunity.fields.stage.options:

value 语言包 zh 文档写的
prospecting 寻找客户 开发期 ❌
qualification 资格审查 资格审核 ❌
needs_analysis 需求分析 需求分析 ✅
proposal 提案 提案 ✅
negotiation 谈判 谈判 ✅
closed_won 成交 赢单 ❌
closed_lost 失败 输单 ❌

锚点(阶段表,改的时候从这两张表起手):

  • content/docs/sales/opportunities.zh-Hans.mdx:16-22、opportunities.zh-Hant.mdx:16-22
  • content/docs/sales/pipeline-management.zh-Hans.mdx:16-22、pipeline-management.zh-Hant.mdx:16-22

散文与看板说明里还有一大片:全仓 zh 页 开发期/開發期 10 处(其中 guides/integrations.zh-Han*.mdx:132 的「开发期」指开发环境,不是阶段名,要放过)、输单/輸單 24 处。寻找客户 在 content/docs/ 里零命中 —— 也就是说文档从来没用过包里的那个词,不是某一页写错。

顺带说明 #801 为什么没顺手改:sales/leads.zh-Hans.mdx:121 / leads.zh-Hant.mdx:121(「在开发期阶段创建一个商机」)虽然落在 #801 的文件面上,但属于本条这一族。8 处里只改 2 处,正是 #801 正文批评的那种半页对半页错,所以留给本单一次扫完。

⚠️ 这一单不能直接照搬「文档跟包」——先要定方向

#793 / #794 / #801 都是文档跟包,因为那几处包里的词就是界面上的词、且明显更对。这一组不一样,值得先由维护者定夺该动哪边:

  • A:文档跟包(与前几单一致,只改 content/docs/)。代价:全 zh 文档改用「寻找客户 / 资格审查 / 成交 / 失败」。
  • B:包跟文档(改 src/translations/zh-CN.ts,文档不动)。理由:closed_won/closed_lost 在销售语境里通行说法是「赢单/输单」,而包里的「成交/失败」把一对状态拆成了两套说法(「成交」的反义不是「失败」);prospecting 的「寻找客户」也比「开发期」直白但更啰嗦。这与 zh-CN 语言包里「活动 / 活动成员 / 活动参与者」三个标签互相撞车:活动成员其实是营销活动的成员 #810 正在做的事同型 —— 那单也是判定包本身的词有问题。
  • C:拆开判:qualification「资格审查 → 资格审核」这一处两边差一个字、文档侧读起来更自然,可能与 closed_won/closed_lost 这一对分开定。

另外注意 crm_lead._sections.qualification 是「资格评估」,与 crm_opportunity.stage.qualification「资格审查」是包里有意分开的两个词(#793 追评「两对象同名字段各按各的包」已定调,PR #825 也按此只动了 lead 侧)。选 B 或 C 时别把这三个词并成一个。

建议:先定 A/B/C,再动手。选 B 的话文件面是语言包而不是文档,与本条的标题相反 —— 所以这单在方向定下来之前不宜直接派实施。

乙、sales-copilot.zh-Hans.mdx:63 把 convert_lead 动作叫「转换线索」

包里 crm_lead._actions.convert_lead.label 是「转化线索」:

若評分達到 70 及以上且你同意,技能会调用真实的 **转换线索** 操作

这一行直接点名一个动作按钮,而按钮上写的是另一个词。zh-Hant 版同段落没有这个写法。这一处是确定的(动作 label 白纸黑字在包里,不涉及甲的方向问题),可以独立于甲先修。

同源但性质较轻的 convert 动词面残留(转换 而非包里的 转化),也都在 #801 文件面之外,可与乙一起扫:sales/accounts.zh-Hans.mdx:62、getting-started/quick-tour.zh-Hant.mdx:52、getting-started/introduction.zh-Hant.mdx:23、customization/testing-and-ci.zh-Hant.mdx:266。

Refs #801 #802 #793 #810

Activity

  1. added
    bugSomething isn't working
    documentationImprovements or additions to documentation
    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
    CollaboratorAuthor

    🔒 认领(修复线 PM 派单):session_01VHrPAGEgFDoHjphqYG4BMa,分支 claude/issue-829-stage-names-follow-package,worktree hotcrm-issue-829。文件面:甲组锚点两页(opportunities / pipeline-management)×3 语及散文波及页(以逐页 grep 为准,leads zh 的「开发期」族一并)、乙组五处(sales-copilot / accounts / quick-tour / introduction / testing-and-ci)、changeset。

    裁定已record(veto 窗口未被翻案,照 方向 A:docs 跟包 执行):七个阶段名以 zh-CN.ts 的 crm_opportunity.stage 为唯一事实来源,全页扫先例照 #794/#825;convert 动词面照包;⚠️ 「资格审查」是 opportunity 侧的包词,与 lead 侧「资格评估」不许互串(#825 已定调)。若维护者在本单留言偏好「赢单/输单」式措辞,停工上报——那是包改名决策。


    Generated by Claude Code

  4. yinlianghui commented on Aug 5, 2026

    @yinlianghui
    CollaboratorAuthor

    ✅ 实施完成,draft PR #842(8/8 CI 绿)。session_01VHrPAGEgFDoHjphqYG4BMa,分支 claude/issue-829-stage-names-follow-package。veto 窗口未被翻案,照 方向 A:docs 跟包 执行;语言包一字未动。

    前提复核结论:成立。 一次性对照脚本从 zh-CN.ts 现读七个阶段名,跑 origin/main 基线时恰好报出每页缺失 4 个(寻找客户 / 资格审查 / 成交 / 失败),needs_analysis/提案/谈判 三个未报——与本单正文的四行 ❌ 逐一吻合。「寻找客户」在 docs 零命中也已复核属实,确为全量替换。

    正文一处事实偏差,已修正:乙组说「zh-Hant 版同段落没有这个写法」——实测有,sales-copilot.zh-Hant.mdx:63 写作「轉換潛在客戶」,同样在点名 convert_lead 这个动作。已一并按包对齐。乙组另四处的共同形状是简繁不同步(简体侧早已是「转化」,繁体孪生页未跟上),故按语言对偶补齐了 accounts.zh-Hant:62 与 quick-tour.zh-Hant:60。

    ⚠️ 陷阱已守住:「资格审查」只进商机侧阶段表(4 处);leads 三处与 sales/index 一处的「通过资格审核 / 应用 BANT 资格审核」是动词、#825 已明确保留,本次未动;leads 页「资格评估」区块名原样。脚本里 8 条互串断言双向为绿——这组断言在本基线上不具判别力(改前用的是第三个词「资格审核」,两侧都不属),它们是护栏而非基线失败预测项,PR 正文已照实说明,未硬凑成翻转。

    越界发现,均已去重后另立、未在本 PR 修:

    按派单要求未加守卫(#802 挂账)。


    Generated by Claude Code

  5. yinlianghui commented on Aug 5, 2026

    @yinlianghui
    CollaboratorAuthor

    ✅ 验收通过 — PR #842 已转 ready 并挂 auto-merge(CI 8/8 绿)。

    判定要点:

    三个新发现分诊:#844(zh-Hant convert 动词面整体滞后 20 余处 + 五页双侧未改,含 state-machines「状态转换」是机制名的防误改标注)→ 入队;#845(best_case 三种写法 + closed_amount 误称)→ 入队;#846(语言包内部自相矛盾:4 个 help 串用自己 label 不用的词)→ 入队,裁定 B1(help 跟 label——与 #810 的 intra-package 先例同源,不产生文档返工;动手时同看四个语言包,veto 窗口照例)。#829 随本 PR 关闭。


    Generated by Claude Code

  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 workingdocumentationImprovements or additions to documentationpm: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