上门服务出发前工单准备包
派工单上写着「9 点上门安装」,出发才发现:支架还在采购流程里、现场门禁没报备、这台的型号需要持证电工而派去的人只有普通安装资质。预约从来不等于准备完成,而准备状态本来散在采购、客服和调度三个系统里,只是没人把它逐条核对过。
本技能做这件事:读一份 JSON,输出出发前可以逐条核对的准备板——每张工单的结论、人员技能覆盖、零件证据链、准入/范围/批准缺口、出发前交接单与人工确认项。脚本只读一个本地 JSON,不联网、不写文件、不派工、不改期、不联系客户、不下单。
输入与澄清
字段表、判定规则、状态优先级与安全边界见 @references/guide.md(同目录 references/sample.json 是常规样例,references/sample-blocked.json 是触发阻塞的样例,两者输出分布固定)。
最少确认:as_of(必须带时区偏移)与 work_orders[]。
必须问清的关键点:
as_of不能省。没有它就无法判断预约是否已过期,工具会停在INPUT_INCOMPLETE,而不是猜一个当前时间。- 零件状态只有
reserved算准备好。ordered、received、inspected都会被记为尚未预留并阻塞安装/保养。ordered不等于received,更不等于reserved。 - 诊断工单不看零件预留。上门诊断时维修零件本来就还不确定,所以诊断与回访工单不会因为没有预留零件被阻塞;这一点是刻意的。
- 技能清单缺失不是零。技术员
skills未提供时记UNKNOWN并转成待确认问题,不会当成「没有技能」直接判缺口。 - 可用时段决定能否到场。预约时窗必须完整落在技术员某一段
available_windows内;未提供可用时段记未知并追问。 - 同一人两张工单时间重叠会被拦下。工具不替你改期,只把重复派工标出来由你决定。
- 只给文件名,不要给路径或链接。附件引用只接受单一文件名;含路径或链接会被拒绝,输出里只保留安全化后的文件名,原引用不会回显。
- 不要填登录凭据。输入里出现密码、令牌一类字段或真实凭据形态的字符串会被整体拒绝,且不回显该内容。
- 未知就是未知。准入、批准、设备事实、时区缺失一律标未知并追问,不默认为「已完成」。
执行
- 按 @references/guide.md 的字段表整理输入 JSON。第一次使用建议先用 @references/sample.json 跑一遍,确认输出结构后再换成自己的工单。
- 用 Python 3.9+ 执行本包脚本(无第三方依赖、不联网):
python3 "<skill-directory>/scripts/run.py" "<input.json>",Windows 可用py -3。 - 先看顶层
status:REJECTED表示输入疑似含凭据(已拒绝且未回显);INPUT_INCOMPLETE表示缺as_of或没有工单;BLOCKED表示至少一张工单存在确定阻塞;GAPS_FOUND表示没有确定阻塞但存在未知字段;READY表示全部工单可派。 - 看每张工单的
status:READY_FOR_DIAGNOSIS/READY_FOR_PLANNED_WORK/BLOCKED/INSUFFICIENT_EVIDENCE。 - 看
parts_evidence:ordered / received / inspected / reserved四列是独立的,只有reserved为「是」才算零件到位。 - 看
coverage_matrix:missing非空即为技能缺口,需要换人或补技能。 - 看
access_scope_approval_gaps与double_bookings:这两类必须在出发前处理。 - 看
departure_checklist与responsibility:作为出发前的交接核对表。 - 看
clarification_questions:按Q-01顺序原样发给对应责任人确认。 - 用
human_confirm_items明确哪些结论必须由人工确认,本工具不下判断。
运行约束
- 只读:只读取用户提供的那一个 JSON;不打开链接、不调用外部服务、不写文件、不访问任何平台或调度系统。
- 不派工:不派工、不改期、不联系客户、不下单、不修改任何工单;只输出准备状态与缺口。
- 不判定:不判断技术安全、作业许可、资质或合规;这些一律进入
human_confirm_items由责任单位确认。 - 不猜测:准入、批准、技能、可用时段、零件状态、时区缺失一律保持未知并转成待确认问题,不默认为已完成。
- 零件单调链:
reserved蕴含inspected蕴含received蕴含ordered,因此ordered单独存在永远不满足门禁。 - 诊断不误阻塞:
diagnosis与followup工单不因维修零件未预留而被阻塞。 - 确定性:工单按编号、问题按编号、字段名与状态汇总顺序全部显式固定,同一输入输出逐字节一致。
- 文件名门禁:附件
basename只接受单一文件名;含路径、链接或盘符的引用被拒绝,且只输出安全化文件名,原引用在任何字段都不出现。 - 阻塞即停:技能缺口、准入未确认、范围未批准、必需工具/文档不可用、零件未预留、重复派工一律整体
BLOCKED,不做静默兜底。 - 提示注入逐字段检测、位置精确、低误报:覆盖备注、范围说明、现场说明等自由文本,命中时只加标记并在
injection_flagged中给出精确路径(如work_orders[0]/site/access_notes);检测要求「动作词 + 目标词」同句共现。 - 不可信文本先转义再入简报,命中即隐藏:
markdown_summary中所有自由文本走同一转义处理(去控制字符、折叠空白、对 Markdown 元字符加反斜杠);命中注入的值改用固定占位「已隐藏疑似提示注入文本」。 - 隐私门禁:字段名命中
password、token、api_key一类凭据名,或字符串值具备真实凭据形态,直接拒绝处理且不回显该内容。 - 免责:输出是派工出发前的信息核对材料,不是技术安全、许可、资质或合规结论;现场准入与作业要求以责任单位和主管部门的规定为准。