Files
claw/docs/superpowers/specs/2026-04-08-95598-repair-city-dispatch-operation-analysis.md
木炎 630190e4d3 docs: add command center analysis artifacts
Capture the command-center operation analyses, inventory outputs, and browser pipeline reference files produced during the current research pass so they can be reviewed from the branch.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 10:43:09 +08:00

21 KiB
Raw Blame History

95598-repair-city-dispatch 操作分析

1. 场景概述

95598-repair-city-dispatch 对应“95598抢修-市指”场景,目标是监测抢修工单队列,并在必要时触发提醒、日志写入与自动派单等后续动作。根据 D:\data\ideaSpace\rust\sgClaw\claw\claw\skills\skill_staging\scenes\95598-repair-city-dispatch\scene.jsonD:\data\ideaSpace\rust\sgClaw\claw\claw\skills\skill_staging\skills\95598-repair-city-dispatch\SKILL.mdD:\data\ideaSpace\rust\sgClaw\claw\claw\skills\skill_staging\skills\95598-repair-city-dispatch\scripts\collect_repair_orders.js 以及两份规则资产,当前最严谨的结论是:本场景的 packaged JS collector 已经实现输入驱动的 monitor-snapshot 归一化 / 比较逻辑,会按状态分桶 repair orders、解析 monitor/dispose logs、推导 pending_ids / new_pending_ids、给出 success/partial/empty/blocked 状态,并附带 desk 规则来源、配置基础页与已知问题元数据;但更强的业务监测、提醒与自动派单 workflow 证据仍主要存在于 desk 规则资产中,证据等级分别为 code-confirmed

必须显式区分三层证据:

  1. packaged runtime-snapshot-collectorcollect_repair_orders.js 已直接实现 repair-order 分类、历史比较、状态判定与标准化快照输出,并显式携带 workflow_rule_sourcesconfig_base_pageconfig_base_rolepackaged_collector_roleknown_issues,证据等级:code-confirmed
  2. 业务监测逻辑:D:\desk\智能体资料\大四区报告监测项\95598抢修-市指_业务检测配置.txt 直接展示了队列采集、状态分类、监测日志比较、音频提醒与监测日志写入逻辑,证据等级:code-confirmed
  3. 自动派单 / 提醒逻辑:D:\desk\智能体资料\大四区报告监测项\95598抢修-市指_自动处理配置.txt 直接展示了去重、班组匹配、自动派单请求、音频提醒、短信发送、外呼触发与处置日志写入逻辑,证据等级:code-confirmed

但这些 code-confirmed 只表示“代码或规则资产中存在这些实现分支或动作定义”,不等于“运行时已验证成功”。本文不对运行时成功做任何拔高表述。

2. 证据来源

本分析统一只使用四个证据等级标签:code-confirmedcontract-definedimplementation intent exists but not rigorous / buggyno direct evidence / candidate only

  1. D:\data\ideaSpace\rust\sgClaw\claw\claw\skills\skill_staging\skills\95598-repair-city-dispatch\scripts\collect_repair_orders.js
    • 直接定义 STATUS_GROUPSLOCAL_SERVICE_ENDPOINTSWORKFLOW_RULE_SOURCESCONFIG_BASE_PAGEKNOWN_ISSUES,并实现 repair-order 分类、monitor/dispose log 解析比较、new_pending_ids 推导、success/partial/empty/blocked 状态判定,以及带 evidence / known_issuesmonitor-snapshot 输出,证据等级:code-confirmed
  2. D:\desk\智能体资料\大四区报告监测项\95598抢修-市指_业务检测配置.txt
    • 直接实现工单队列采集、按状态分桶、待处理列表比较、音频提醒、监测日志写入,且暴露待处理分类 bug证据等级code-confirmed
  3. D:\desk\智能体资料\大四区报告监测项\95598抢修-市指_自动处理配置.txt
    • 直接实现处置日志去重、班组范围匹配、自动派单请求、自动派单成功/失败/异常/未匹配分支、音频日志、短信日志、外呼触发与 setDisposeLog 写入,证据等级:code-confirmed
  4. D:\data\ideaSpace\rust\sgClaw\claw\claw\skills\skill_staging\skills\95598-repair-city-dispatch\SKILL.md
    • 定义“优先使用 packaged collector、把监测快照与下游动作分离、允许 partial”的运行契约证据等级contract-defined
  5. D:\data\ideaSpace\rust\sgClaw\claw\claw\skills\skill_staging\skills\95598-repair-city-dispatch\references\collection-flow.md
    • 定义以页面配置为入口、结合规则资产理解语义、采集状态 00/01/06/08、对比 monitor/dispose logs 的一阶流程,证据等级:contract-defined
  6. D:\data\ideaSpace\rust\sgClaw\claw\claw\skills\skill_staging\skills\95598-repair-city-dispatch\references\data-quality.md
    • 定义状态分类、partial 规则、empty/failure 区分和下游副作用边界,证据等级:contract-defined
  7. D:\data\ideaSpace\rust\sgClaw\claw\claw\skills\skill_staging\scenes\95598-repair-city-dispatch\scene.json
    • 声明场景分类、输入 time、依赖和动作类型,证据等级:code-confirmed
  8. D:\data\ideaSpace\rust\sgClaw\claw\claw\skills\skill_staging\scenes\95598-repair-city-dispatch\scene.draft.json
    • 展示早期推断中对 trigger-alertconfigServices 是否拆分的犹豫,属于候选整理结果,证据等级:no direct evidence / candidate only

3. 实际入口与运行边界

实际入口在 scene.json 中已固定:场景页面入口为 index.html,技能工具名为 95598-repair-city-dispatch.collect_repair_orders,输出类型为 monitor-snapshot,输入为 time,这些都属于 code-confirmed

其中 assets/scene-snapshot/index.html 只应被视为配置基础页(例如班组、联系人、范围维护),不应被当作规则 workflow 的主执行证据。

运行边界方面,需要做两个强制区分:

  • packaged JS runtime collector 的实际边界:它已经能基于输入 repair_ordersmonitor_logsdispose_logs 做状态分类、历史比较、new_pending_ids 推导与 success/partial/empty/blocked 判定,并返回标准 monitor-snapshot;但它仍是输入驱动归一化 collector不直接发起浏览器请求也不直接承载完整业务 workflow证据等级code-confirmed
  • rule-asset 行为边界:业务检测规则和自动处理规则分别展示了浏览器请求、日志比较、提醒副作用与自动派单副作用,证据等级:code-confirmed

也就是说,本场景不能被单句描述成“统一 packaged collector 已完整实现实时队列监测与自动派单”。更严谨的说法是packaged collector 已实现可测试的输入驱动快照归一化 / 比较逻辑;而较强的实时监测与自动处理链路证据仍来自 desk 规则资产,证据等级:code-confirmed

同时,SKILL.md 与 reference 明确要求把“快照采集成功”与“音频、短信、外呼、自动派单等下游效果”分开表达;这属于运行契约约束,证据等级:contract-defined

4. 代码已证实的实际操作流程

4.1 packaged runtime-snapshot-collector 已证实流程

collect_repair_orders.js 中现在能严格确认:

  1. 调用 collectRepairOrders(input),读取 input.repair_ordersinput.monitor_logs || input.monitor_loginput.dispose_logs || input.dispose_loginput.local_write_failuresinput.blocked_reason 等输入。
  2. 通过 classifyRepairOrders(...)STATUS_GROUPS.pending = ["00", "01"]STATUS_GROUPS.audit = ["06"]STATUS_GROUPS.processed = ["08"] 对 repair orders 分桶,并记录未知状态。
  3. 从 pending orders 提取 pending_ids,再解析 monitor/dispose logs识别 malformed payload并据此推导 new_pending_ids
  4. blocked > partial > empty > success 的优先级计算 status,并把未知状态、日志缺失、日志解析失败、本地写失败等写入 partial_reasons
  5. 返回 type: "monitor-snapshot"scene: "95598-repair-city-dispatch"pendingauditprocessedpending_idsnew_pending_idsstatuspartial_reasons
  6. 在返回对象中附带 evidence.workflow_rule_sourcesevidence.config_base_pageevidence.config_base_roleevidence.packaged_collector_role = "runtime-snapshot-collector",以及 known_issues
  7. 模块额外导出 STATUS_GROUPSLOCAL_SERVICE_ENDPOINTSWORKFLOW_RULE_SOURCESCONFIG_BASE_PAGEKNOWN_ISSUES

以上都属于 code-confirmed

4.2 业务监测规则已证实流程

95598抢修-市指_业务检测配置.txt 中可直接确认:

  1. 通过 BrowserAction("sgBrowerserJsAjax2", ...) 请求 repairOrder/list,查询条件包含 statusName=00,01,06,08 与当天时间窗,证据等级:code-confirmed
  2. 将返回列表按状态分到 listshlistycjList,并构造 pending/audit/processedpendingList,证据等级:code-confirmed
  3. 读取 getMonitorLog,并基于待处理列表对比决定是否播报音频提醒,证据等级:code-confirmed
  4. 将监测结果写入 setMonitorDatasetMonitorLog,证据等级:code-confirmed
  5. 音频提醒结果会写入 setAudioPlayLog 成功/失败/异常三类状态,证据等级:code-confirmed

但这里同时存在一个直接可见的 bug待处理判断写成了 item.status == "00" && item.status == "01",这在单个状态值上不可能同时成立,因此规则中的 pending 列表构造逻辑不严谨,证据等级:implementation intent exists but not rigorous / buggy

4.3 自动处理规则已证实流程

95598抢修-市指_自动处理配置.txt 中可直接确认:

  1. 先写一条“进入自动派单”的监测日志,再读取 getDisposeLog 做已派单去重,证据等级:code-confirmed
  2. 对未派过单的待处理工单,读取 getClassList,按 scope 对故障地点 gzdd 做班组匹配,证据等级:code-confirmed
  3. 匹配成功时,请求 repairOrder/initProcess 进行自动派单,证据等级:code-confirmed
  4. 自动派单成功时,会触发成功音频播报、短信发送、外呼触发,并写 setDisposeLog(state="成功"),证据等级:code-confirmed
  5. 自动派单失败时,会触发失败音频播报,并写 setDisposeLog(state="失败"),证据等级:code-confirmed
  6. 自动派单异常时,会触发异常音频播报,并写 setDisposeLog(state="异常"),证据等级:code-confirmed
  7. 未匹配到班组时,会触发未匹配音频播报,并写 setDisposeLog(state="未匹配"),证据等级:code-confirmed

以上动作都只是“规则层实现分支存在”的直接证据,不代表运行时已经验证成功。

5. 标准化抽象流程

若为 command-center 做严格抽象,本场景更合理的标准化流程应写成:

  1. 接收监测任务输入 time
  2. 使用规则资产定义的浏览器请求采集 95598 抢修队列。
  3. 将源数据分为 pendingauditprocessed,并保留规则层可见的待处理列表语义。
  4. 用 monitor log / dispose log 做比较上下文,得出“新增待处理”或待自动处理集合。
  5. 若进入标准配置归一层,再把这些结果映射为 pending_idsnew_pending_ids 等 canonical 字段。
  6. 先返回或保留监测快照语义。
  7. 再执行音频提醒、短信、外呼、自动派单、日志写入等下游动作。

其中第 1 步可由 packaged collector 的显式输入 time 支撑,第 3、4、5、6 步可由 packaged collector 的输入驱动归一化 / 比较逻辑支撑,证据等级:code-confirmed;第 2、7 步主要由规则资产直接支撑,证据等级:code-confirmed;“快照应先于下游副作用表达”这一边界来自 SKILL.md / references证据等级contract-defined

如果进一步把这个抽象流程说成“已由统一 packaged collector 严格承载实时浏览器采集与自动派单副作用”,那就不严谨了,因为这些更强 workflow 证据仍在 desk 规则资产而不是 packaged collector 中,证据等级只能降为 implementation intent exists but not rigorous / buggy

6. 输入、上下文与依赖

输入

  • time 是 scene 与 packaged script 共同声明的显式输入,证据等级:code-confirmed
  • 当天时间窗拼接逻辑出现在业务监测规则中,即 00:00:0023:59:59,证据等级:code-confirmed
  • “当前队列窗口通常是当天”在 reference 中被明确说明,证据等级:contract-defined

运行上下文

  • 平台 session、org/user 上下文、浏览器可执行 BrowserAction 是规则资产和 reference 共同依赖的前提,证据等级分别为 code-confirmedcontract-defined
  • 页面本身更偏配置页,而真正监测语义来自规则资产,这一点在 collection-flow.md 中被明确指出,证据等级:contract-defined

依赖

  • scene.json 中声明 browserlocal-servicerepair-order-sourcehistory-logstatus-classification,证据等级:code-confirmed
  • 业务监测规则直接使用 repairOrder/listMonitorServices/getMonitorLogsetMonitorDatasetMonitorLogsetAudioPlayLog,证据等级:code-confirmed
  • 自动处理规则直接使用 getDisposeLoggetClassListrepairOrder/initProcesssetDisposeLogsetSendMessageLog 与外呼触发 mac.callOutLogin,证据等级:code-confirmed
  • configServices 是否需要单独提升为正式依赖,在 scene.draft.json 中仍是待确认项,证据等级:no direct evidence / candidate only

7. 输出结构

当前输出结构需要分层描述。

7.1 packaged runtime collector 已直接定义的输出

collect_repair_orders.js 直接定义:

  • type: "monitor-snapshot"
  • scene: "95598-repair-city-dispatch"
  • time
  • pending
  • audit
  • processed
  • pending_ids
  • new_pending_ids
  • status
  • partial_reasons
  • evidence.workflow_rule_sources
  • evidence.config_base_page
  • evidence.config_base_role
  • evidence.packaged_collector_role
  • known_issues

以上全部属于 code-confirmed

7.2 规则资产已展示的实际快照字段语义

业务监测规则直接构造了:

  • time
  • type: "95598抢修-市指"
  • pending
  • pendingList
  • audit
  • processed

这说明规则层实际快照对象与 packaged stub 的字段命名并不完全一致,尤其是 pendingList vs pending_idstype vs scene,证据等级:code-confirmed

7.3 new_pending_ids 的证据强度

SKILL.md、reference 和 data-quality.md 都把 new_pending_ids 当作期望输出的一部分,证据等级:contract-defined。但在已读规则资产里,能直接看到的是“对 monitor log / dispose log 做比较并决定是否提醒或进入自动派单”,而没有看到显式字段 new_pending_ids 被直接写出,因此“存在历史比较意图”是 code-confirmed,“new_pending_ids 已被当前实现严谨产出”只能标为 implementation intent exists but not rigorous / buggy

8. 下游动作证据表

下游动作 当前证据 证据等级 严谨结论
返回 monitor-snapshot runtime collector 输出 collect_repair_orders.js 直接返回对象 code-confirmed packaged JS 直接证明标准 snapshot 字段、状态判定与 collector metadata 已存在。
队列采集请求 业务监测规则调用 repairOrder/list code-confirmed 队列采集逻辑直接存在于规则资产中。
音频提醒调用 业务监测规则和自动处理规则都调用 mac.audioPlay(...) code-confirmed 只能确认规则层存在音频提醒调用,不代表运行时已验证成功。
短信发送调用 自动处理规则调用 mac.sendMessages(request) code-confirmed 只能确认规则层存在短信发送调用。
电话 / 外呼触发 自动处理规则调用 mac.callOutLogin(params) code-confirmed 只能确认规则层存在外呼触发分支。
自动派单请求调用 自动处理规则请求 repairOrder/initProcess code-confirmed 自动派单请求分支可直接定位。
setDisposeLog 成功写入 自动处理规则成功分支写 state="成功" code-confirmed 成功路径处置日志写入定义明确存在。
setDisposeLog 失败写入 自动处理规则失败分支写 state="失败" code-confirmed 失败路径处置日志写入定义明确存在。
setDisposeLog 异常写入 自动处理规则异常分支写 state="异常" code-confirmed 异常路径处置日志写入定义明确存在。
setDisposeLog 未匹配写入 自动处理规则未匹配分支写 state="未匹配" code-confirmed 未匹配路径处置日志写入定义明确存在。
new_pending_ids 严格产出 只在 skill/reference/data-quality 中被要求 implementation intent exists but not rigorous / buggy 有明确目标语义,但当前读到的规则资产未直接产出同名字段。
把下游动作结果等同于采集成功 skill/reference 明确禁止 contract-defined 契约要求把快照成功与副作用成功分离。

9. 当前代码疑点 / 不严谨点

  1. 最明显的已知 bug 是业务监测规则中的待处理分类条件写成 item.status == "00" && item.status == "01"。这会导致 pending 分桶逻辑不可能按作者意图工作,证据等级:implementation intent exists but not rigorous / buggy
  2. packaged collector 与规则资产的输出命名仍不一致collector 使用 scenepending_idsnew_pending_ids,规则对象使用 typependingList,证据等级:code-confirmed
  3. SKILL.mdnew_pending_ids 作为输出重点,但当前直接证据更强的是“做日志比较并决定提醒/自动派单”,而不是“显式产出同名字段”,证据等级:implementation intent exists but not rigorous / buggy
  4. scene.draft.json 仍在犹豫 trigger-alert 是否拆成 audio-alert、message-alert、callout 三类动作,说明标准动作建模尚未完全收敛,证据等级:no direct evidence / candidate only
  5. 虽然规则层存在音频、短信、外呼、自动派单与日志写入定义,但本文不能据此声称这些动作已完成运行时验证,任何这种拔高都不严谨。

10. 对 command-center 标准配置的修订建议

  1. 对本场景应显式拆分两层实现证据:
    • packaged_collector: collect_repair_orders.js 的 runtime snapshot collector、状态判定、历史比较与 metadata规则来源、配置基础页角色、已知问题证据等级code-confirmed
    • rule_asset_workflow: 业务监测与自动处理规则资产中的真实流程分支,证据等级:code-confirmed
  2. 在标准配置中把业务监测与自动处理拆成两个子流程:
    • monitoring_flow 对应 95598抢修-市指_业务检测配置.txt
    • auto_processing_flow 对应 95598抢修-市指_自动处理配置.txt。 这样可以避免把两份规则混成单一 collector。
  3. 输出 schema 建议区分:
    • canonical_snapshot_fields: pending_ids / new_pending_ids 等标准字段;
    • observed_rule_fields: pendingList / type 等规则层字段。 当前两套命名并存,证据等级:code-confirmed
  4. 对状态分类增加 known_bug_note,明确记录 status == "00" && status == "01" 的待处理分类 bug防止后续文档误把 pending 计数写成稳定事实,证据等级:implementation intent exists but not rigorous / buggy
  5. 对下游动作增加 effect_channels 明细,至少拆出 audio-remindersms-sendcallout-triggerauto-dispatch-requestdispose-log-write,因为这些都已在规则资产中直接出现,证据等级:code-confirmed

11. 最终严谨结论

关于 95598-repair-city-dispatch,当前最可靠的结论是:仓库已经同时存在一个可测试的 packaged JS runtime collector以及两份更强的 desk 规则脚本实现(D:\desk\智能体资料\大四区报告监测项\95598抢修-市指_业务检测配置.txtD:\desk\智能体资料\大四区报告监测项\95598抢修-市指_自动处理配置.txt),其中 packaged collector 已直接实现 repair-order 分类、monitor/dispose log 比较、new_pending_ids 推导与 success/partial/empty/blocked 状态判定;业务监测规则直接证实了队列采集、日志比较、音频提醒与监测日志写入,自动处理规则直接证实了去重、班组匹配、自动派单请求、短信发送、外呼触发以及 setDisposeLog 在成功 / 失败 / 异常 / 未匹配路径上的写入定义,证据等级:code-confirmed

但同样必须严格说明:这些 code-confirmed 只证明“代码或规则层存在这些实现分支”不证明运行时已验证成功。此外desk 业务监测规则里还存在 status == "00" && status == "01" 的待处理分类 bug因此 rule workflow 本身也不能被描述为严谨无误。对 command-center 而言本场景最应该被建模为“packaged collector 已具备输入驱动快照归一化能力、desk rule-asset workflow 证据更强、且监测流与自动处理流必须分开表达”的 monitor scene。