You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Track A · crm_opportunity: the qualification group, milestone dates, subcontracting, narrative, and approval on STATUS CHANGE — REQ-0006 #1916
「Signing entity and revenue-recognition type have no field in core at all」—— 签约主体与收入确认类型 ⛔ 一个字段都不许加,业务线分类只发通用值。客户自己的业务线清单、主体清单和铁三角角色全部来自 overlay。⛔ 不要"顺手帮忙"补上它们。
Part of #1904 — Track A 实现批,REQ-0002 前 14 步的销售侧增强。⛔ 不依赖上游发版,与 #1907 的拆包线并行。
权威规格
docs/requirements/0006-opportunity-qualification-and-status-approval.md(已在origin/main,PR #1912 合入6ff28e7)。其中 C(客户定制层) 项一律 ⛔ 不做 —— 它们不属于标准产品,记录里逐条写明了理由。
串行约束⚠️
Track A 的四张实现卡文件面相交:都要动
src/sales/objects/与四个语言包src/sales/translations/{en,zh-CN,es-ES,ja-JP}/。⇒ 硬串行,一次只有一张在飞。 本卡落地后 PM 才派下一张。⛔ 不要并行开工、⛔ 不要顺手改别的对象。
文件面
origin/main(661d2fa)重量过一遍,原稿的语言包路径是错的、漏了视图。以本节为准。src/sales/objects/opportunity.object.ts—— qualification 组、客户侧里程碑日期、分包、叙述组、业务线分类src/sales/flows/opportunity-approval.flow.ts—— 两道闸都是 flow 里的approval节点。src/sales/views/opportunity.view.ts—— 验收第 2 条要求客户侧日期独立于close_date可报,「本季度预计招标的单子」要能在列表视图里拉出来。原稿漏了这一项。src/sales/translations/{en,zh-CN,es-ES,ja-JP}/objects.pipeline.ts——translations/<locale>.ts。语言包按「翻译命名空间 → CRM 域族」两级拆分(The 70% advisory band's first real output:es-ES.ts(75.3%) andja-JP.ts(73.4%) are the only two files it names, and a third sits 224 bytes below it #1311),crm_opportunity属 pipeline 族(与crm_lead同文件)。四个语言同笔。#1915 会在
opportunity.object.ts上落一个validations[]条目(客户类别的能力闸,REQ-0003 第 128 行钉死的落点)。⇒ 开工前 merge-forward,⛔ 不要回退或重写那个条目。它不是本卡的,本卡只往这个文件里加自己的字段与分组。
⛔ 验收第 5 条是一条否定要求
「Signing entity and revenue-recognition type have no field in core at all」—— 签约主体与收入确认类型 ⛔ 一个字段都不许加,业务线分类只发通用值。客户自己的业务线清单、主体清单和铁三角角色全部来自 overlay。⛔ 不要"顺手帮忙"补上它们。
group: '<key>'入组,表单布局保持派生,⛔ 不手写布局;业务线分类另立 select,⛔ 不替换也不重载现有的type。src/sales/flows/opportunity-approval.flow.ts);本卡要的是状态变更本身的审批。⛔ 不碰其它销售对象、⛔ 不碰
src/service/、src/revenue/、src/marketing/、⛔ 不碰content/docs/releases/。验收
以
docs/requirements/0006-opportunity-qualification-and-status-approval.md的 Acceptance 节为准,⛔ 本卡不另立标准。另加两条通用项:pnpm verify绿(package.json是权威,⛔ 不自行窄化)。退出码在任何管道之前写进文件再读。test/object-validation-predicates.test.ts—— 未加has()守卫的谓词直接判红。⛔ 不要动这道守卫。test/docs-declared-versions.test.ts会因字段数变化转红。在源头修:重抄你自己分支的 validate 摘要进docs/STATUS.md,⛔ 不要动那道守卫(feat(objects): a buying-centre map on crm_contact — buying function, attitude, relationship strength (REQ-0004) #1917 的先例)。REQ-0006」。本卡若一个 PR 交付就是一条;若你判断必须拆成多个 PR,每个 PR 各带一条,且都点名REQ-0006。级别自判并在 PR 正文说明理由。⛔ 顺手陷阱
你会在语言包 docblock 与对象文件注释里看到
src/translations/…、src/flows/…这类已经不存在的路径(ADR-0130 搬迁的欠账)。⛔ 不要在本卡里顺手改 —— 文档半边是 #1918,源码半边是 #1919(正因与 Track A 直撞而挂pm:blocked)。改了就是扩面。Generated by Claude Code