SKILL.md
只读
名称
wecomcli-shared
描述
wecom-cli 业务技能的公共前置检查、获取机器人及授权真人身份,以及通用输出约束。任何 wecomcli-* 技能准备执行 wecom-cli 命令前,都必须同时读取本技能,检查 CLI 是否安装、版本是否不低于 1.1.0,以及企业微信凭证是否已授权;仅在缺失、版本过低或未授权时执行安装或初始化。本技能还定义所有技能通用的 ID 类字段禁止外露约束。本技能不处理具体业务请求。
wecom-cli 公共前置检查
本技能提供所有 wecomcli-* 业务技能共用的 CLI 安装、版本与授权检查,以及通用输出约束。每次准备执行任意 wecom-cli 命令前,先完成本技能;检查通过后,再回到对应业务技能执行。
本技能不能代替具体业务技能。处理联系人、文档、表格、日程、会议、待办、邮件、微盘、消息或媒体请求时,必须同时读取对应业务技能。
Step 1:检查 CLI 安装与版本
wecom-cli --version
- 命令成功,且输出中的版本号不低于
1.1.0→ 继续 Step 2。 - 命令不存在、执行报错或版本号低于
1.1.0→ 执行安装/升级:
npm install -g @wecom/cli
安装完成后重新执行 wecom-cli --version;仍失败或版本仍低于 1.1.0 时停止业务操作,并把错误告知用户。
Step 2:检查授权状态
wecom-cli auth show --status
- 输出
authorized→ 前置检查完成,可以执行具体业务命令。 - 输出
unauthorized→ 执行 Step 3。 - 命令报错或输出不是上述状态 → 停止业务操作,并把错误告知用户,不要猜测授权状态。
Step 3:初始化凭证(仅未授权时)
wecom-cli auth init --noninteractive
该命令会展示授权链接和二维码,并等待用户使用企业微信扫码。授权成功后命令自动退出,仅需初始化一次。
初始化完成后重新执行:
wecom-cli auth show --status
仅当输出 authorized 时,才能继续执行具体业务命令。
通用输出约束:ID 类字段禁止外露
本约束对所有 wecomcli-* 技能生效,优先级高于各业务技能的输出格式,且不因用户主动索要而放宽。
- 禁止:你的最终回复禁止出现
userid/open_vid/department_id/chat_id等 ID 标识。凡是接口返回的内部标识(含mail_id/media_id/file_id/space_id/folder_id/docid/content_id/msg_id/cursor/next_cursor等,命名上以_id结尾或语义上属于机器标识的字段一律视为 ID)都只能在内部流转,用于后续接口调用。 - 必须:你的思考过程和最终回复必须使用可读名称,如
name/username/external_username/ 部门名 / 邮箱 /subject/doc_name/chat_name/title等tool_result返回的内容。 - 接口只返回 ID 而没有可读名称时,先调用对应技能(如
wecomcli-contact解析人员)换取可读名称;确实无法换取时,用自然语言描述该对象(如「上一封日报邮件」「你刚上传的那个文件」)来指代,禁止退化为展示 ID。 - 需要用户在多个候选中选择时,用序号 + 可读信息(名称 / 主题 / 时间 / 路径等)构造候选列表,禁止用 ID 作为区分依据让用户辨认。
- 用户直接要求「把 ID 给我」「打印 mail_id」时,说明该标识属于内部字段不便提供,并改用可读信息或继续帮其完成实际操作。
- 可读链接(如文档
doc_url、微盘分享链接)不属于本约束限制范围,可按各业务技能规定正常展示,即使链接本身包含标识字符串。
执行规则
- 已安装、版本达标且已授权时,不重复安装或初始化。
- 安装、升级、初始化或复查失败时,不执行后续业务命令。
- 本技能不定义任何联系人、文档、表格、日程、会议、待办、邮件、微盘、消息或媒体接口参数;具体命令必须回到对应业务技能读取。
- 执行任何业务命令并组织回复时,同时遵守上方「通用输出约束:ID 类字段禁止外露」。
获取个人身份
如果操作流程必须获取机器人或授权人身份(姓名、userid等),需要调用 wecom-cli identity whoami 获取。






