Skip to content

bare workflows 残留族在 #899 枚举之外还有 4 处:whats-new 把真实的 contract_renewal 流程叫成 workflow,state-machines:133 在 PR #894 扫过该文件后仍留着 #912

Closed

Description

@yinlianghui

来源:#899(bare workflows 残留族)实现时全仓复扫的顺带发现。基线 origin/main = 7df29789(平台 17.0.0-rc.3)。

与 #899 / #850 的边界:#850 / PR #894 的 grep 口径是「工作流规则 / workflow rule」;#899 的口径是不带 rule 的 bare workflows,但 #899 正文把修复面逐页枚举成七页族(reference/faq、reference/performance-and-limits、sales/quotes、administration/index、administration/sandbox-and-releases、reference/security-and-compliance、customization/index),下面 4 处不在那份枚举里,因此落在 #899 的完成范围之外——是枚举漏了,不是被判为日常语义。#899 的 PR 已把它自己那七页清干净。

事实

1. content/docs/whats-new.mdx:89 × 3 —— 把一条真实存在的流程叫成 workflow(最实的一处)

"Contract renewal reminder workflow now triggers based on renewal_notice_days on each contract."

zh 同款:whats-new.zh-Hans.mdx:71「合同续约提醒工作流现在根据……」、whats-new.zh-Hant.mdx:71「合約續約提醒工作流程現在根據……」。

这条自动化是存在的,但它是流程不是 workflow:src/flows/contract-renewal.flow.ts:25 label: 'Contract Renewal Reminder',start 节点 schedule: '0 8 * * *',它在 administration/automation 的内置流程表里有自己的一行。所以这里不是「讲了个不存在的东西」,而是给一个存在的元数据项挂了不存在的类型名——读者拿着 workflow 这个词去 Setup 里找,找到的是 Flows。这不是改历史:这一项从落地那天起就是流程,纠的是叫法。

2. content/docs/administration/state-machines.mdx:133 × 3 —— PR #894 扫过这个文件,这行留下来了

"- Automation — for transition-triggered workflows."

zh 同款:state-machines.zh-Hans.mdx:133「用于由转换触发的工作流」、state-machines.zh-Hant.mdx:133「用於由轉換觸發的工作流」。

git log content/docs/administration/state-machines.mdx 的最近一次改动就是 PR #894(commit e10b6735),它按 #850 的口径改了本页别处的措辞,但这行不含「规则」二字,所以没进那次 grep。指向 Automation 页的 Related 链接说那页讲的是「由转换触发的 workflows」,而那页现在只讲流程与对象钩子。

⚠️ 文件冲突提醒:administration/state-machines 上另有 #896 在飞(讲的是 case / contract / quote 的状态机名单,与本条不是同一处缺陷),排期时注意先后。

3. content/docs/service/cases.mdx:80 × 3 —— 小节标题 ## Workflow automation

zh 同款:cases.zh-Hans.mdx:80「## 工作流自动化」、cases.zh-Hant.mdx:80「## 工作流自動化」。

PR #894 已经把这个标题底下的两条改写成实况(点名 Case Escalation 流程的 notify 节点、case_status_side_effects 钩子),标题本身没动——现在四条正文分别讲流程和钩子,头顶顶着一个叫 workflow 的类目名。改标题要三语同步。

4. content/docs/guides/integrations.mdx:130 × 3 —— 程度最弱的一处

"…referenced rather than pasted into workflow or hook code…"

把 workflow 与 hook 并列成两种代码面,真实的一对是 flow / hook。这句在一段「设计意图(尚未实现)」的描述里,读者据此不会去点错地方,所以程度弱于上面三处——列在这里让接单人一起判,不建议单独开单。

影响

第 1 处最实:读者拿到一个具体的自动化名字加一个不存在的类型名,去 Setup 里按 workflow 找。第 2、3 处是词汇面,与 #899 C 档同类——让读者以为流程之外还有一种叫 workflow 的东西。不是观察类:#899 已经把同一失效模式判为实缺陷并修了它枚举的那七页,这 4 处只是同一族里没被枚举到的部分。

修复面(未做)

三语同步,按语境改写而非全局替换:第 1 处改成「Contract Renewal Reminder flow」并保持与 administration/automation 内置流程表的标签逐字一致;第 2 处改成「由转换触发的流程」;第 3 处标题改为流程 / 对象钩子的说法(注意本页已有 ## Case escalation 等相邻标题,别撞名);第 4 处改成 flow / hook。

日常英语 / 汉语义命中(administration/setup:153、administration/sandbox-and-releases 的「变更工作流」、customization/theming-and-i18n:43、customization/testing-and-ci 与 marketplace/publishing-your-first-app 的 GitHub Actions 语境、service/index:66、service/knowledge-base:52、getting-started/introduction:49)不在本条范围。PR #894 写下的具名退休说明(reference/glossary:70/:198、reference/performance-and-limits:20、administration/automation 页)也不得回退。

Refs #899 #850 #854 #894 #896

Generated by Claude Code

Activity

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

    @yinlianghui
    ContributorAuthor

    🔒 认领(/pm-dispatch R29,四单并单 #912+#920+#925+#926,本单为主单)— session session_01VHrPAGEgFDoHjphqYG4BMa,分支 claude/issue-912-920-925-926-service-family。

    文件面(两页族 + 两个卫星点,×3 语言):

    裁定:

    1. 基线 rc.3;全部行号在 fresh main 重定位(cases 页经 docs(service): cases 升级整节与 index 生命周期第 2 步按 flow / hook 写实(#914、#915) #922、state-machines 页经 docs(administration): list all five objects that have a state machine (#896) #919 刚改过)。
    2. administration/state-machines 通篇声称状态机会「拦下」非法转换,实测五条规则全是 warning:保存照样通过;连「只显示合法下一状态」「bypass state machine 权限」都无实现 #920 措辞铁律:五条 state_machine 规则 severity 全 warning、非法跳转全部落库(PR docs(administration): list all five objects that have a state machine (#896) #919 探针实录)——「拦下/enforces/error」改写沿 docs(administration): list all five objects that have a state machine (#896) #919 已落地口径「advice, not a gate / 保存照样通过」;cases:78 与 state-machines 跨页互证句同步收口;⛔ 不得顺手把 severity 提到 error(Follow-up to #514: remaining behaviour fixes, conventions, and the action-sandbox test gap #575 B4 产品决定)。
    3. service/cases 的「标准列表视图」七个名字里有六个不存在(:114-121),经理提示的三条(Breached SLA / Service Board / 客服排行榜)同族 #926 视图清单:七名六假,按 case.view.ts 七个真实视图写实,docs(service): write the sla page's views, report dimensions and business-hours claims to source (#917) #924 先例(名字保留说清真名/不存在 + 给读者真实去处);:171-173 经理提示的「客服排行榜」在 case_metrics 无 owner 维度下语义不可达,照 docs(service): write the sla page's views, report dimensions and business-hours claims to source (#917) #924 报表条口径写实不预判。
    4. service/cases 的《自动发生的事》:70/:71 是同族第三处未清扫的 SLA 说法——「SLA 截止日期按优先级计算」只对 critical 成立、「违约标记按解决时间超目标翻转」是另一套机制,字段名也不存在 #925 的 :59/:111 字段名(breach flag→SLA Violated/is_sla_violated)与 :70/:71 机制(只 critical 打戳、每小时扫描非实时翻转)沿 docs(service): SLA 跟踪一节按实测行为改写(#903) #918/docs(service): write the sla page's views, report dimensions and business-hours claims to source (#917) #924 已落地写法抄平。
    5. PR docs(administration): list all five objects that have a state machine (#896) #919/docs(service): cases 升级整节与 index 生命周期第 2 步按 flow / hook 写实(#914、#915) #922/docs(service): write the sla page's views, report dimensions and business-hours claims to source (#917) #924 已落地行零回退;SLA policy matrix: per-priority × tier clocks, first-response stamping, escalation that reassigns #595 不预判;src/ 零改动;三语同步;zh 内链不带锚。

    Generated by Claude Code

  4. yinlianghui commented on Aug 6, 2026

    @yinlianghui
    ContributorAuthor

    ✅ 验收通过(四单并单 #912+#920+#925+#926 + PM 面扩两行)—— PR #939 已合并(CI 8/8 全绿实核)。

    验收要点:

    1. administration/state-machines 通篇声称状态机会「拦下」非法转换,实测五条规则全是 warning:保存照样通过;连「只显示合法下一状态」「bypass state machine 权限」都无实现 #920 探针方法论扎实:直调 evaluateValidationRules 的一次性探针复核 docs(administration): list all five objects that have a state machine (#896) #919 实录(NOT BLOCKED 只记 WARN、insert 零检查),且隔离了邻近必填规则的干扰(第一版 ValidationError 来自 Email/Resolution required 而非状态机——补齐必填后重测),对照组零日志证规则不空转只是不拦截;:112 的 requiredWhen 真拒绝保存,如实保留。⛔ severity 未提级,遵守 Follow-up to #514: remaining behaviour fixes, conventions, and the action-sandbox test gap #575 B4。
    2. :133 孪生句与 :106 配置面主动纳入避免同页矛盾,处置正确;:8 第一句(administration/state-machines 用的一整套状态词在 src/ 里查无此值:lead 的 Working / Disqualified 是导入别名不是状态,opportunity 的 Closed Without Decision 根本不存在,Needs Analysis 被漏掉;:60 的「Disallowed」举例反了 #921 词面)逐字保留,administration/state-machines 用的一整套状态词在 src/ 里查无此值:lead 的 Working / Disqualified 是导入别名不是状态,opportunity 的 Closed Without Decision 根本不存在,Needs Analysis 被漏掉;:60 的「Disallowed」举例反了 #921 未触碰有完整 hunk 起点清单证明(:14-15/:35-57/:60/:69/:118 全不在 diff 内),R30 派 administration/state-machines 用的一整套状态词在 src/ 里查无此值:lead 的 Working / Disqualified 是导入别名不是状态,opportunity 的 Closed Without Decision 根本不存在,Needs Analysis 被漏掉;:60 的「Disallowed」举例反了 #921 无碰撞。
    3. service/cases 的「标准列表视图」七个名字里有六个不存在(:114-121),经理提示的三条(Breached SLA / Service Board / 客服排行榜)同族 #926 视图表逐视图回源(含 kanban/calendar/timeline 配置),六假名给真实去处;service/cases 的《自动发生的事》:70/:71 是同族第三处未清扫的 SLA 说法——「SLA 截止日期按优先级计算」只对 critical 成立、「违约标记按解决时间超目标翻转」是另一套机制,字段名也不存在 #925 沿 docs(service): SLA 跟踪一节按实测行为改写(#903) #918/docs(service): write the sla page's views, report dimensions and business-hours claims to source (#917) #924 抄平且 :111「对客服只读」经核属实只改名。
    4. PM 面扩 :166/:167 已入面:first_response_date 无度量按 docs: write the three business-hours claims outside the SLA page to source (#928) #933 口径降格、Waiting 不暂停时钟沿 docs(service): write the sla page's views, report dimensions and business-hours claims to source (#917) #924 写法——两行先复核后改,流程正确。
    5. 刻意克制记档:初稿「Copilot 只建议转换表允许的转换」在 grep 零命中后删除重写——证不了的断言不进文档,这正是本修复线的核心纪律。
    6. PR body 控制字节双扫(含 <+字母)、回读校验完整;docs(administration): list all five objects that have a state machine (#896) #919/docs(service): cases 升级整节与 index 生命周期第 2 步按 flow / hook 写实(#914、#915) #922/docs(service): write the sla page's views, report dimensions and business-hours claims to source (#917) #924 已落地行零回退。

    越界发现处置(两单已复核成立,标 pm:queue):

    断流记录:报告 10:54Z 写完任务未关(#901 型),PM 12:34Z 从 transcript 回收,无工作损失。


    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

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