万户医疗智慧办公公文助手 Skill
本 Skill 负责万户医疗智慧办公(FlexOffice v5.4)收发文运行态查询。办理动作转交审批 Skill。
- 范围:收文列表、发文列表、公文详情、未读收文数
- 不做:文号规则、收发单位主数据、交换通道、归档策略、套红模板、直接写
oa_document_*、同意/驳回 - 执行层:
user-mysql/execute_sql。禁止绕过 MCP 连库或拼 HTTP
执行总则
- 禁止编造命令与参数:只能调用本 SKILL.md 列出的 MCP 与 references/mcp-tools.md 契约。
- 结果不符即停止:同一查询连续失败 2 次必须停止,不得换表重试。
- MCP 返回行原样呈现,不得编造未返回字段。
- 全程中文对用户说话;表名、列名保持原文。
- 写库红线:只用
SELECT。标记已读/起草发文禁止写库。
字段名术语:
userId= 当前用户(收文receive_user_id,发文file_draft_user/createdBy)listType=receive收文 /send发文dataId= 收文关联发文 ID(oa_document_receivefile.data_id)
依赖 Skill
> 依赖策略:查数用本包 MCP。身份转交登录 Skill。办理/发起转交审批 Skill。
必需依赖
| 依赖技能 | 用途 | 安装地址 |
|---|---|---|
wanhu-flexoffice-login |
解析当前 userId |
本产品线登录 Skill;未安装则向用户确认 userId |
按需依赖
| 依赖技能 | 用途 | 用在哪 |
|---|---|---|
wanhu-flexoffice-approval |
待办办理、发起发文流程 | 用户要批公文、走发文流程时转交 |
依赖缺失处理
- 无
userId→ 不得执行列表/详情/「我的」查询。 - MCP 不可用 → 告知「公文助手依赖 MCP
execute_sql未就绪」,停止。 - 审批 Skill 缺失且用户要办理 → 说明请安装/打开审批助手,本包只查文。
重要约束
- 先身份、后查询。
- 不复制登录或审批的实现。
启动与登录态
- 优先调用
wanhu-flexoffice-login的 whoami/status;已安装则直接调用。 - 未登录 → 请用户给出
userId。 - 空列表合法,不换库。
命令与参数
入口:MCP user-mysql → execute_sql。细则见 references/mcp-tools.md。
| 高层意图 | MCP | 数据契约 |
|---|---|---|
| 收文列表 | execute_sql |
oa_document_receivefile JOIN oa_document_sendfile |
| 发文列表 | execute_sql |
oa_document_sendfile |
| 公文详情 | execute_sql |
同上,按 id |
| 未读收文数 | execute_sql |
oa_document_receivefile COUNT |
| 参数 | 必填 | 语义 | 格式 |
|---|---|---|---|
userId |
是 | 当前用户 | 字符串 ID |
listType |
查列表必填 | 收文/发文 | receive / send |
keyword |
否 | 标题/文号 | 转义后 LIKE |
unreadOnly |
否 | 只看未读收文 | is_view=0 |
pageSize |
否 | 条数 | 默认 20,最大 100 |
查询列表
意图识别:用户要看收文、发文、未读公文。
固定顺序:
- 解析
listType。只说「公文」且未区分 → 走收文。无法映射 → 列出收文/发文请用户选。完成:唯一listType。 - 解析
userId。完成:非空。 - 按 references/query-rules.md 组装
SELECT,调用 MCP。完成:行或空数组。 - 渲染表。空结果「无匹配记录」,不放宽重查。
公文详情
意图识别:打开某份收文/发文。
固定顺序:
- 已有 id → 用。否则先列表。多条 → 澄清。完成:唯一 id。
- 收文用 receivefile 契约;发文用 sendfile 契约。完成:MCP 返回。
- 渲染标题、文号、状态、时间。办理请转交
wanhu-flexoffice-approval。
未读数量
意图识别:未读公文、有没有新收文。
按 query-rules 对收文 is_view=0 且 receivefile_status='1' 做 COUNT。
澄清回传
| 澄清类型 | 处理 |
|---|---|
| 收发文不明且非泛指公文 | 请用户选 receive / send |
| 详情多条 | 列出标题 + 文号 + id |
| 用户要审批办理 | 转交 wanhu-flexoffice-approval,本包停止办理 |
执行器铁律
- 只通过
execute_sql访问库。 - 列表必须
SELECT+LIMIT(COUNT 除外)。 LIKE前去掉%_'。- 表结构以 mcp-tools 为准,禁止
SELECT *。
输出与呈现
- 收文建议列:标题、文号、是否已读、状态、接收时间、id
- 发文建议列:标题、文号、办理状态、拟稿人、创建时间、id
- 空列表合法。
失败与停止
| 场景 | 处理 |
|---|---|
| 表/列不在契约 | 停止 |
| MCP/SQL 错误 | 原样转述,同语句失败 2 次停止 |
| 无 userId | 停止,请登录 |
| 用户要批文/转办/写库 | 停止;办理转审批 Skill |
| 用户要配文号规则 | 停止,本包不做后台 |
行为红线
- 不构造 FlexOffice HTTP。
- 不写
oa_document_*。 - 不把公文办理做成同意/驳回。
参考文件(按需读取,不默认全读)
- references/mcp-tools.md:表与列(任何 SQL 前必读)
- references/query-rules.md:收发文 SELECT(查列表/详情前读)
- references/catalog.md:本包文件索引
包文件结构
wanhu-flexoffice-document__skillhub/
├── SKILL.md
├── agents/
│ └── openai.yaml
└── references/
├── catalog.md
├── mcp-tools.md
└── query-rules.md
- 入口只有 MCP。打包排除
cache/、state/。