Repository navigation
「工作流规则」在 automation 之外还散布 8 个页族 ×3 语言共 33 处,其中 4 处把可配置项指向了不存在的配置面 #850
Description
Activity
- addedpm:queueReady for the PM dispatch loopReady for the PM dispatch looppm:dispatchedDispatched to a dev agent by /pm-dispatchDispatched to a dev agent by /pm-dispatchand removedpm:queueReady for the PM dispatch loopReady for the PM dispatch loop
on Aug 6, 2026 [PM 认领 · R25 · 并单 #850+#887] session_01VHrPAGEgFDoHjphqYG4BMa · 分支
claude/issue-850-887-workflow-rules-sweep· 文件面:#850 的 8 页族 ×3 语言(administration/index、state-machines、reference/glossary、performance-and-limits、sales/opportunities、pipeline-management、service/cases、sla-and-escalation)+ #887 的service/cases:82-83×3 + changeset两单在
service/cases同文件相邻(#850 认领:178,#887 是:82-83),并单一个 PR(首行Fixes #850,次行Fixes #887)。裁定与边界:
- 「工作流规则」在 automation 之外还散布 8 个页族 ×3 语言共 33 处,其中 4 处把可配置项指向了不存在的配置面 #850 口径承接 docs(automation): retire the workflow-rules section in all three locales (#833) #854(工作流规则类型平台已退休,证据链在 PR docs(automation): retire the workflow-rules section in all three locales (#833) #854):33 处「工作流规则」逐处按语境写实——指向不存在配置面的 4 处(阈值/收件人「可在工作流规则中配置」)改指真实位置(flow 的 CEL start condition 与 notify 节点 recipients,均为源码作者面而非 Setup 界面,如实写);其余措辞按语境改「流程 / 记录变更流程」或指向 automation 页的既有指路块。
- 行级切割(硬性):
sla-and-escalation:135(原 :129,docs(service): 按 flow 与 hook 写实 SLA 页的升级说明(#876) #885 刻意保留给本单的那行)在本单;docs(service): 按 flow 与 hook 写实 SLA 页的升级说明(#876) #885 已写实的行零回退;service/sla-and-escalation三语还剩两处行为性失实:升级触发条件多出一个不存在的 High+Customer 分支,Critical 违约行承诺「红色横幅 + 通知支持经理」 #886 认领的:57-60/:128行为性主张(High+Customer 分支)不在本单——只改「工作流规则」字样所在句,不动升级行为描述;:101的 emoji 锚点(content/docs 还剩 17 处悬空锚点(全仓实测),三类新成因:emoji 标题、标题后来加了后缀、zh 页沿用英文锚点 #866)不碰。state-machines 页只动「工作流规则」字样,convert 词汇(线索转换等)不碰(convert 动词面:zh-Hant 侧整体没跟上简体侧,marketing/analytics/guides 等 20 余处仍写「轉換」而包里是「转化」 #844 待派)。 service/cases三语的「工作流自动化」清单同样写着虚构的support_manager@example.com与「向升级团队发邮件」,实际收件人是工单负责人一人 #887 部分:cases:82-83两条虚构邮箱(support_manager@/escalation_team@)按 PR docs(service): 按 flow 与 hook 写实 SLA 页的升级说明(#876) #885 在 sla 页落的同款口径写实(收件人只有{caseRecord.owner_id};升级真正产生的是 hook 给账户负责人的 urgent 任务、不发邮件);触发列同款纠正(status 变 escalated,非布尔翻转)。⚠️ cases 页:156(service 三页仍写「建议一个解决方案」会检索知识库并起草回复 / Copilot 用知识库对相似历史工单做模式匹配——两个技能都做不到 #890 的技能能力主语)不碰。- 33 处是基线 6cd53d2 的计数——最新 main 上全量重 grep(简繁含「工作流规则/工作流規則」),处数变化如实报;逐处列位置/改文对照表。
- ⛔ 不动
src/**、releases/;不加守卫;三语同步;zh 术语按语言包;SLA policy matrix: per-priority × tier clocks, first-response stamping, escalation that reassigns #595 不预判。
⛔ 不升级 @objectstack/*;changeset 站内路径反引号;控制字节自扫;JSON 报告按标准 schema(issue 字段填 850,summary 两单分开)。
Generated by Claude Code
[PM 验收] PR #894 ACCEPT(并单 #850+#887)— 已转 ready 并挂 auto-merge(session_01VHrPAGEgFDoHjphqYG4BMa)
复核结论:
- 33→36 的差额抓得准:issue 页族清单列了
administration/index却没枚举到行,dev 全量重 grep 后补上:17——又一例「重测 issue 自身」的价值。 - 42 处全部 1 行换 1 行,零行数变化——其它在案单(
service/sla-and-escalation三语还剩两处行为性失实:升级触发条件多出一个不存在的 High+Customer 分支,Critical 违约行承诺「红色横幅 + 通知支持经理」 #886/service 三页仍写「建议一个解决方案」会检索知识库并起草回复 / Copilot 用知识库对相似历史工单做模式匹配——两个技能都做不到 #890/content/docs 还剩 17 处悬空锚点(全仓实测),三类新成因:emoji 标题、标题后来加了后缀、zh 页沿用英文锚点 #866/convert 动词面:zh-Hant 侧整体没跟上简体侧,marketing/analytics/guides 等 20 余处仍写「轉換」而包里是「转化」 #844/administration/state-machines说 case / contract / quote「没有完整状态机」,但三者都有具名的state_machine校验规则;页首清单也只列了 lead / opportunity 两个 #896)的行号不因本 PR 位移,这在 service 页四单排队的局面下是关键工程决定。五向行级切割用-U0hunk 边界逐条证明:docs(service): 按 flow 与 hook 写实 SLA 页的升级说明(#876) #885 零回退、service/sla-and-escalation三语还剩两处行为性失实:升级触发条件多出一个不存在的 High+Customer 分支,Critical 违约行承诺「红色横幅 + 通知支持经理」 #886 的行为主张未碰、content/docs 还剩 17 处悬空锚点(全仓实测),三类新成因:emoji 标题、标题后来加了后缀、zh 页沿用英文锚点 #866 的锚点未碰且改文刻意用纯文本不加链接、service 三页仍写「建议一个解决方案」会检索知识库并起草回复 / Copilot 用知识库对相似历史工单做模式匹配——两个技能都做不到 #890 的:156不在任何 hunk、state-machines 只动字样。 - A 类 4 处的改文方向对:不只删「可在工作流规则中配置」,而是指明真实位置(flow 的 CEL/recipients)并写明那是源码作者面不是 Setup 界面——不给读者第二个找不到的地方。
- C 类不静默删名的处理到位:glossary 词条保留可查、正文写退休事实;配额行上限改
—而非删行。state-machines:17后半截的独立错误保守处理(字样中性化+立单administration/state-machines说 case / contract / quote「没有完整状态机」,但三者都有具名的state_machine校验规则;页首清单也只列了 lead / opportunity 两个 #896)——正确,不借清扫夹带行为性改写。 - 改后全仓 grep 剩 14 处逐条给出合法理由;反向验证如实报「预测绿实测绿」(同 docs(automation): retire the workflow-rules section in all three locales (#833) #854 已录盲区);CI 实测 8/8 绿(head a15dc2c);25 文件与申报一致,
src/**零改动。
越界发现处置:#896(state-machines 页「哪些对象用状态机」清单与三个具名状态机的矛盾,
⚠️ 与 #844 同页,排期互斥)入队pm:queue;#899(bare workflows/工作流 残留族,含 #854 判虚构说法的两处未清扫副本与 quotes 页计划指路错误)入队pm:queue。#887 侧验收见该单短评。
Generated by Claude Code
- 33→36 的差额抓得准:issue 页族清单列了
- added 4 commits that reference this issue
on Aug 10, 2026
来源:#833(automation 页整节退休)实施过程中的顺带发现。基线
origin/main= 3912845。不与 #833 的文件面重叠 —— #833 只动content/docs/administration/automation.mdx×3。前提(#833 已实测确立)
@objectstack/*17.0.0-rc.2 上平台侧不存在工作流规则这一能力面,不只是本仓没有:WorkflowRule符号零命中(对照:FlowSchema63 个文件、ApprovalNode30、StateMachineSchema40、JobSchema46 —— 探针会找到真实存在的东西)。spec五处白纸黑字:无workflow元数据类型(kernel/metadata-plugin.zod.ts,ADR-0020)、stack 无顶层workflows集合(stack.zod.ts)、workflow_rule授权范式已退休(automation/node-executor.zod.ts,ADR-0019)、REST 挂载与WorkflowProtocol在 v17 移除(api/protocol.zod.ts)、workflow核心服务槽位一并退休(system/core-services.zod.ts)。ObjectSchema现在会具名拒绝workflows:/workflow:。@objectstack/platform-objects里带一条ADR-0020: no "Workflow Rules" nav注释。/api/v1discovery 不列workflow路由或服务槽(realtime/ai/search这些「存在但不可用」的槽是列出来的,所以缺席本身就是答案),/api/v1/workflow404,automation 服务根返回{"flows": [...24...]}仅此而已。事实
content/docs/里 automation 页之外仍有 33 处提到工作流规则,覆盖 8 个页族 ×3 语言 = 24 个文件:administration/index、administration/state-machines、reference/glossary、reference/performance-and-limits、sales/opportunities、sales/pipeline-management、service/cases、service/sla-and-escalation(各 ×3 语言)。分三类,严重程度不同:
A. 把可配置项指向不存在的配置面(读者会去找、且找不到)
sales/opportunities.mdx:174—— "The $100K large-deal notification threshold lives in the opportunity workflow rules." 实际在opportunity_won_alertflow 的 start condition 里。sales/pipeline-management.mdx:114—— 同一句话的另一处副本。service/cases.mdx:178—— "The escalation team email recipient … are configured in case workflow rules."service/sla-and-escalation.mdx:129—— "The recipient lists for Notify on Critical and Notify on Escalation are configurable in the case workflow rules."B. 把工作流规则写进「你需要同步改哪几处」的操作清单
sales/pipeline-management.mdx:113—— "You need to update three places: the picklist …, the workflow rule that sets probabilities, and the state machine …" 三处里有一处不存在。sales/opportunities.mdx:172—— 同类。administration/state-machines.mdx:17—— "Other objects … use simpler workflow rules rather than full state machines";:97—— "Trigger automation on each transition (workflow rule, flow, notification)"。C. 词条与配额表
reference/glossary.mdx:198—— 收录 Workflow rule 词条;:70的 Flow 词条用它作对比基准("More powerful than a workflow rule.")。reference/performance-and-limits.mdx:20—— 配额表有一行| Workflow rules per object | 500 |。一个不存在的类型的每对象上限。影响
#833 让 automation 页对齐了实况,但一个管理员从 opportunities 页读到「阈值在商机的工作流规则里」,仍会去 Setup 找一个只有 Flows 的 Automation 分组。A 类四处最实际 —— 它们是「你要改这个值,去这里改」的指路,指到了空处;真实位置是 flow 的 start condition(
opportunity_won_alert)和notify节点的recipients。备注
Refs #833 #839