文件预览

edge-cases.md

查看 工作协同官方skill 技能包中的文件内容。

文件内容

references/edge-cases.md

### 边缘场景:正文待发与业务单元(话术与分支)

> **⚠️ 核心强制纪律**:只要用户写好正文、表示要发送(且未指定具体人名),AI **必须**按以下流程执行,**严禁跳过查询直接问「发给谁」**。

**适用**:用户已给出标题与正文(或草稿内容已定),下一步要「发出去」。

1. **必须首先确认当前用户是否配置了业务单元(前置强制动作)**  
   立即主动执行 `python3 scripts/cwork-business-unit.py list`。  
   - **若列表非空(哪怕只有一个业务单元小组)**  
     - **严禁直接问「发给谁」**。先主动执行 `cms-match-businessunit.py --dry-run` 进行匹配。  
     - **若 `--dry-run` 返回 `"matched": true`**:向用户说明系统建议按「某某业务单元小组」发送,并给出匹配理由;用户确认后,再执行 `cms-match-businessunit.py` 正式发送。  
     - **若 `--dry-run` 返回 `"matched": false`**:**说明正文无法匹配任何小组**。此时**绝不允许**凭你的历史记忆去推荐任何小组。你必须告知用户"根据正文内容,未能匹配到合适的业务单元小组",并直接询问:「请问这篇汇报发给谁?」,随后走 `cwork-search-emp.py` 链路。  
     - ⚠️ **严禁自作主张用 `cwork-search-emp` 随意搜人当收件人!** 只有用户明确给出具体姓名后,才能调用搜索工具解析 empId。  
   - **若列表为空(没有任何业务单元)**  
     - 此时才可以询问用户:**「请问这篇汇报发给谁?」**(或等价表述)。再根据对方提供的姓名走 `cwork-search-emp.py` → `cwork-send-report.py --receivers ...`。

2. **禁止误答**  
   - 在「有业务单元、且用户未点名具体同事」的场景下,**不得**回答「没有员工查询接口、无法自动匹配人员」。本 Skill **包含** `cwork-search-emp.py`;业务单元路径下接收人由小组节点预设,**不要求**先搜员工。若用户坚持按姓名发,再用员工搜索。
   - **绝不允许在不调用 `cwork-business-unit.py list` 的情况下自行猜测是否有业务单元**。

**脚本对照(附录,不必逐字念给用户)**:按业务单元发送 → `cms-match-businessunit.py` 或 `cwork-send-report.py --business-unit-id`;按具体姓名发送 → `cwork-search-emp.py` 再 `cwork-send-report.py --receivers ...`。

---