Skip to content

「工作流规则」在 automation 之外还散布 8 个页族 ×3 语言共 33 处,其中 4 处把可配置项指向了不存在的配置面 #850

Description

@yinlianghui

来源:#833(automation 页整节退休)实施过程中的顺带发现。基线 origin/main = 3912845。不与 #833 的文件面重叠 —— #833 只动 content/docs/administration/automation.mdx ×3。

前提(#833 已实测确立)

@objectstack/* 17.0.0-rc.2 上平台侧不存在工作流规则这一能力面,不只是本仓没有:

  • 50 个已装平台包中 WorkflowRule 符号零命中(对照:FlowSchema 63 个文件、ApprovalNode 30、StateMachineSchema 40、JobSchema 46 —— 探针会找到真实存在的东西)。
  • 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:。
  • Setup 的 Automation 导航只有一个子项 Flows,@objectstack/platform-objects 里带一条 ADR-0020: no "Workflow Rules" nav 注释。
  • 真实起服务实测:/api/v1 discovery 不列 workflow 路由或服务槽(realtime / ai / search 这些「存在但不可用」的槽是列出来的,所以缺席本身就是答案),/api/v1/workflow 404,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_alert flow 的 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

Activity

  1. added
    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 6, 2026
  2. self-assigned this
    on Aug 6, 2026
  3. yinlianghui commented on Aug 6, 2026

    @yinlianghui
    CollaboratorAuthor

    [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)。

    裁定与边界:

    1. 「工作流规则」在 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 页的既有指路块。
    2. 行级切割(硬性):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 待派)。
    3. 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 的技能能力主语)不碰。
    4. 33 处是基线 6cd53d2 的计数——最新 main 上全量重 grep(简繁含「工作流规则/工作流規則」),处数变化如实报;逐处列位置/改文对照表。
    5. ⛔ 不动 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

  4. yinlianghui commented on Aug 6, 2026

    @yinlianghui
    CollaboratorAuthor

    [PM 验收] PR #894 ACCEPT(并单 #850+#887)— 已转 ready 并挂 auto-merge(session_01VHrPAGEgFDoHjphqYG4BMa)

    复核结论:

    越界发现处置:#896(state-machines 页「哪些对象用状态机」清单与三个具名状态机的矛盾,⚠️ 与 #844 同页,排期互斥)入队 pm:queue;#899(bare workflows/工作流 残留族,含 #854 判虚构说法的两处未清扫副本与 quotes 页计划指路错误)入队 pm:queue。#887 侧验收见该单短评。


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

pm:dispatchedDispatched to a dev agent by /pm-dispatch

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions