Repository navigation
service/sla-and-escalation 剩余六处失实(#903 四族之外):营业时间可配置、SLA 表现报表的四个维度、Breached SLA 视图、Service Board 看板、My Open Cases 排序、Waiting on Customer 暂停 SLA 时钟 #917
Copy link
Copy link
Closed
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationpm:dispatchedDispatched to a dev agent by /pm-dispatchDispatched to a dev agent by /pm-dispatch
Description
Activity
- addeddocumentationImprovements or additions to documentationImprovements or additions to documentationpm: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-dispatch R28)— session
session_01VHrPAGEgFDoHjphqYG4BMa,分支claude/issue-917-sla-views-reports。文件面:
content/docs/service/sla-and-escalation{,.zh-Hans,.zh-Hant}.mdx,仅本单六处(营业时间 :23/:137、报表维度 :47-51、Breached SLA 视图 :118/:130、Service Board :131、排序键 :117、Waiting 暂停时钟 :125)——行号为立单基线值,PR #913/#918 刚动过同页,fresh main 上全部重定位。裁定:
- 基线 17.0.0-rc.3;逐条 stale-premise 复核(sla_performance rows、case_metrics 五 dimension、crm_case 七视图名、看板 label、My Open Cases 排序、$nin 清单)。
- docs(service): SLA 跟踪一节按实测行为改写(#903) #918 刚落地的 :12/:30/:32 族与 docs(service): 把升级触发条件、Critical 违约行与三处技能能力主语按源码写实 (#886, #890) #907 的 :16/:57 族改动不得回退;口径沿同页已立写法(点名说清不做什么 + 真实归属)。
- 报表维度条:写实「按优先级细分」即可,agent/账户等级/月份三个语义不可达的维度点名不存在,不预判平台侧应否支持(那是 #5xxx 级产品问题,如实写今天的形状)。
- SLA policy matrix: per-priority × tier clocks, first-response stamping, escalation that reassigns #595 继续不预判;src/ 零改动。
Generated by Claude Code
✅ 验收通过 —— PR #924 已转 ready 并挂 auto-merge(CI 8/8 全绿实核)。
验收要点:
- 六条 premise 全部成立且证据升级:每条 file:line 到位(营业时间四关键词全仓零命中、sla_performance 只 rows:['priority']、七视图无 Breached SLA、Service Board 真名 case_workflow、排序 priority_rank desc 在先、$nin 不排除 waiting_customer);「Breached SLA/Critical Cases」的真实归属定位到 service.dashboard.ts 两块磁贴——比 issue 的「不存在」多给了读者一条去处。
- 行号重定位表完整(六族在 docs(service): SLA 跟踪一节按实测行为改写(#903) #918 落地后的新位置逐一列出),docs(service): SLA 跟踪一节按实测行为改写(#903) #918/docs(service): 把升级触发条件、Critical 违约行与三处技能能力主语按源码写实 (#886, #890) #907 已落地行未触碰。
- 口径沿同页已立写法;报表维度按裁定只写实不预判;顺带移除仅服务于虚构营业时间设置的两处 Setup 链接,合理。
- 守卫盲区如实报 predicted GREEN,并点明本改动真正会动的两道门(docs-drift 引用块平价 1/1/1、hygiene)均实测绿。
越界发现处置(三单均已复核成立,标 pm:queue):
service/cases的「标准列表视图」七个名字里有六个不存在(:114-121),经理提示的三条(Breached SLA / Service Board / 客服排行榜)同族 #926(cases 页《标准列表视图》七个名六个不存在 + 经理提示族)——cases 页 R29 集群再 +1;service/index的《Where to find things》(:63-67) 四项与crm.app.ts的 Service 分组三项对不上:Service Board 不存在、Tasks 不在这个组、Knowledge 被漏掉、导航项实际叫 Service Overview #927(service/index《Where to find things》四项与 crm.app.ts 导航对不上)——index 页,与已合并行互斥;- 「营业时间」在 sla 页之外还有三处:
administration/setup整整一节教人配置一个不存在的 Setup → Business Hours 屏,reference/faq把它写成 SLA 计时的前置条件,glossary 收了词条 #928(营业时间族外溢三处:setup.mdx 整节带勾选框、faq :92-95、glossary :34)——⚠️ setup 节与 PR docs(service): write the sla page's views, report dimensions and business-hours claims to source (#917) #924 改后的 sla 页直接打架,优先级提升,faq 行与 「工作流规则」清扫后仍有 bareworkflows残留族:faq / performance-and-limits 的「重新评估 5 次后停止」是 PR #854 已判虚构那条说法的未清扫副本,quotes:141 指向不存在的配置面 #899 已改的 :75-83 互斥。
R29 排期备注:cases 页现已积 #912(:80)/#920(:78)/#925(:59/:70/:71/:111)/#926(:114-121/:171-173)四单——必须并单或同 dev,不再分散;#927+#915 家族的 index 页已静,#927 可独立;#928 三页独立面。
Generated by Claude Code
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationpm:dispatchedDispatched to a dev agent by /pm-dispatchDispatched to a dev agent by /pm-dispatch
发现自 #903 的实施过程(PR #916)。#903 的裁定面被定死在 A(
:12)/ B(:32)/ C(:34-38)/ D(:17-19)四族,本条是同页另外一族——页面指向的视图 / 报表 / 配置项是否存在——不在那个切割里,故单独立单,未在该 PR 里顺手改。基线
origin/main=7df29789(含 PR #907 / #906 / #908 / #910,平台 17.0.0-rc.3)。行号为 #903 落地前的原始行号;PR #916 使:12一节增长 5 行、:29一节增长 4 行,故其后的行号在该 PR 合并后会位移。三语同页同行号。事实
1.
:23/:137—— 营业时间可配置:23的引用块:> Business hours — the system can be configured to count only business hours (e.g., 9-5 Mon-Fri) rather than calendar hours. See Administration › Setup.
:137的管理员提示又说了一遍(「由你租户的营业时间设定控制」)。全仓grep -rniE "business.?hour" src/只有三处命中,全是产品目录与报价行的描述文案(src/data/catalog.seed.ts:138、src/data/sales.seed.ts:585/:629),没有任何营业时间配置、日历或计算逻辑。唯一会算 SLA 时间的地方是src/objects/case.hook.ts:60-64的due.setHours(due.getHours() + 4)—— 纯日历小时,不区分工作日与夜间。2.
:47-51—— SLA 表现报表的四个细分维度> - Agent (who's hitting their SLA?)
> - Priority (which priority bucket is leaking?)
> - Account tier (are customers being treated worse than prospects?)
> - Month (is performance trending up or down?)
src/reports/case.report.ts:17-29的sla_performance只按一个维度出行:四个里只有 Priority 是真的。更要紧的是另外三个在数据集层面就不可达:
src/datasets/case.dataset.ts:15-21的case_metrics只声明了status/priority/origin/type/created_date五个 dimension —— 没有 owner/agent 维度,也没有账户等级维度(crm_account.tier存在于src/objects/account.object.ts:344,但case_metrics不跨对象取它)。created_date的dateGranularity是day而非 month,且该报表根本没把它放进rows。所以读者按图去报表里找这三个下拉,一个都找不到。3.
:118/:130—— 「Breached SLA」列表视图:118的推荐节奏表让服务经理每天早上看 Breached SLA + Critical Cases,:130的经理提示让他「每天早上运行 Breached SLA 列表视图」。src/views/case.view.ts里crm_caseshipped 的全部 7 个视图是:all_cases(All Cases)、case_workflow(Service Workflow)、sla_calendar(SLA Calendar)、case_timeline(Case Timeline)、my_open_cases(My Open Cases)、escalated_cases(Escalated Cases)、sla_at_risk(⏰ SLA at Risk)。没有叫 Breached SLA 的视图,也没有任何视图以is_sla_violated: true为过滤条件 —— 唯一按违约过滤的地方是src/dashboards/service.dashboard.ts:148的一个仪表盘部件。同理没有叫 Critical Cases 的视图。4.
:131—— 「Service Board」看板> - ✅ Use the Service Board kanban for daily standups.
看板视图是
case_workflow,label: 'Service Workflow'(src/views/case.view.ts:73-75)。tabs 里它显示为 Workflow(:59)。Service Board 这个名字在全仓不存在。5.
:117—— My Open Cases「按 SLA 截止日期排序」src/views/case.view.ts:125-138的my_open_cases主排序键是priority_rank desc,sla_due_date asc只是次级键:而且在 #903 写实之后这条更要紧:非 critical 工单没有
sla_due_date,次级键对它们整体失效,客服看到的其实是一个纯优先级队列。6.
:125—— Waiting on Customer 可以暂停 SLA 时钟> - ✅ Use Waiting on Customer when you're genuinely blocked — depending on your config, this can pause the SLA clock.
没有任何东西会暂停它。全仓写
sla_due_date的只有src/objects/case.hook.ts:60-64一处,只在首次满足 critical 且字段为空时写一次,之后任何状态流转都不会重算或顺延;case_sla_monitor的过滤条件status: { $nin: ['resolved', 'closed'] }也不排除waiting_customer—— 也就是说,一个挂在等客户回复上的 critical 工单,时钟照走,到点照样被标违约并升级。「depending on your config」指向的那个 config 不存在。为什么要紧
3、4、5 是「按图找不到东西」的代价:经理照
:130去找 Breached SLA 视图会扑空,客服照:117以为自己的队列按截止时间排。2 更贵一点 —— 服务总监会以为能按客服和账户等级看违约率分布,而这两个维度在语义层根本没有,要做得改case_metrics。6 是会让人做错事的一条:客服相信切到 Waiting on Customer 能停表,于是不再盯这张单,而系统那边时钟照走。1 是纯粹的配置承诺落空。边界
service/sla-and-escalation的 SLA 跟踪一节仍有四处行为性失实:只有 Critical 拿得到 sla_due_date、违约标记并非只读、"实时倒计时"零实现、High/Medium/Low 的"违约长什么样"描述的其实是优先级行色 #903 / PR docs: 清扫 bareworkflows残留族 —— 引擎里没有「重新评估 5 次」这个计数器,报价对象上也没有可调的计划 (#899) #916 不重叠:service/sla-and-escalation的 SLA 跟踪一节仍有四处行为性失实:只有 Critical 拿得到 sla_due_date、违约标记并非只读、"实时倒计时"零实现、High/Medium/Low 的"违约长什么样"描述的其实是优先级行色 #903 落在:8、:12、:17-19、:21、:29-38、:124,本单是:23、:47-51、:117-118、:125、:130-131、:137,行集互斥。service/sla-and-escalation三语还剩两处行为性失实:升级触发条件多出一个不存在的 High+Customer 分支,Critical 违约行承诺「红色横幅 + 通知支持经理」 #886 / service 三页仍写「建议一个解决方案」会检索知识库并起草回复 / Copilot 用知识库对相似历史工单做模式匹配——两个技能都做不到 #890 / PR docs(service): 把升级触发条件、Critical 违约行与三处技能能力主语按源码写实 (#886, #890) #907 不重叠:那两单落在:16、:57-60、:105、:134;:137虽在同一个给管理员的提示小节内,但service/sla-and-escalation三语还剩两处行为性失实:升级触发条件多出一个不存在的 High+Customer 分支,Critical 违约行承诺「红色横幅 + 通知支持经理」 #886 的切割只覆盖:134(SLA 目标那条)与:138-139(升级触发与收件人),营业时间那条未在其中。Refs #903 #886 #890 #595