腾讯会议变更护栏
将会议变更变成可核对的“先预览、后确认”动作。核心原则:先展示受影响的人和会议,再执行一个已确认的写操作。
何时使用
处理创建、改期、改主题、取消、添加/移除/替换受邀人,或用户说“直接改掉、不用问我”时使用。本 Skill 依赖官方 tmeet-skill 和 tmeet CLI。
不用于自动入会、批量扫描会议、群发通知、代替发起人取得权限,或查询与会议变更无关的通讯录资料。
总规则
- 先确认官方
tmeet-skill已安装,并运行tmeet auth status;未登录时请用户完成 OAuth,不索取凭证。 - 只读取用户指定的会议,或宿主明确传入的单一会议范围。先读取 references/tmeet-change-safety.md。
- 每次写操作必须经过:读取 →
CHANGE_PREVIEW→ 用户明确确认 → 执行单一动作 → 结果回显。用户的“直接做”“很紧急”不替代本次确认。 - 对周期会议,必须先说明变更是单次子会议还是整个系列;未说明时返回
MISSING_SCOPE,不得猜测。 - 对外展示会议只使用会议主题、开始/结束时间、时区、
meeting_code和必要的受邀人姓名。不得展示meeting_id、内部成员标识或 Token。 - 不自动向任何人发送邀请、改期通知或取消通知。腾讯会议自身的系统通知如会因已确认写操作产生,不视为本 Skill 的外发动作。
- 不具有发起人权限、当前账号不一致或 API 返回无权限时,返回
AUTHORITY_REQUIRED和可复制的变更请求草稿;不得重试、绕过或要求他人凭证。
快速请求
用户可以直接说“把明天的评审会往后挪一小时,但先别改”“取消这场会,先告诉我影响”“给这场会加上小王,先核对是不是同一个人”。先收集会议范围和时间口径,再生成预览;“紧急”“直接做”仍不跳过确认。
状态与输出契约
| 状态 | 何时返回 | 必含内容 |
|---|---|---|
MISSING_SCOPE |
未知会议、周期范围或时间参数 | 缺失字段与一条补充方式 |
AUTHORITY_REQUIRED |
无主持人/创建者权限或账号不匹配 | 当前限制、不可执行动作、给发起人的草稿 |
CHANGE_PREVIEW |
已读到会议、尚未确认写入 | 当前值、拟议值、影响、待执行的一个动作 |
CONFIRMATION_REQUIRED |
已展示预览 | 仅等待用户确认或取消 |
CHANGE_RESULT |
已确认并完成一项写操作 | 主题、时间、会议号、当前完整受邀人列表或取消范围 |
RUNTIME_RETRYABLE |
写操作前读取失败、网络暂不可用或权限已过期 | 友好原因、未执行的动作、重新认证/重试条件 |
RESULT_UNCERTAIN |
写操作发出后连接中断、超时或无法读取结果 | 不确定范围、重新读取目标会议的核验步骤、禁止重复执行提醒 |
CHANGE_PREVIEW 模板
状态:CHANGE_PREVIEW
会议:<主题>(会议号:<meeting_code>)
拟议动作:<创建 / 改期 / 取消 / 添加受邀人 / 移除受邀人 / 替换受邀人>
当前 → 拟议:<只列发生变化的字段>
影响:<时间冲突、周期范围、将新增/移除的姓名、系统可能通知>
权限:<可执行 / 需发起人确认>
待执行命令:<一个 tmeet 写操作的自然语言说明,不含内部 ID>
回复“确认执行这项变更”后才执行;回复“取消”则不执行。
输入检查
在预览前收集下列最少信息:目标会议(会议号或唯一、用户指定的会议)、拟议动作、涉及时间时的开始/结束时间与时区,以及周期会议的单次/整个系列范围。时间使用含时区的 ISO 8601,例如 2026-07-30T10:00:00+08:00;自然语言日期必须由用户或宿主补充时区后才可执行。
缺少任一项时返回 MISSING_SCOPE,只提出最少的补充问题,不读取其他会议来猜测目标。
若 tmeet auth status 显示登录失效或权限已过期,返回 RUNTIME_RETRYABLE:说明尚未执行任何写操作,请用户自行重新完成 OAuth 后重新读取目标会议和预览;不索取凭证、不代替登录。
工作流
plan-change
- 收集会议号或用户指定的唯一会议、拟议变更、时区和周期范围。
- 用
tmeet meeting get读取当前会议;涉及人员时读取当前受邀人列表。时间必须是含时区的 ISO 8601,结束时间必须晚于开始时间。 - 比较当前值与拟议值。周期会议的
meeting_type、重复规则和系列/子会议范围必须出现在预览中。 - 若需按姓名邀请,只有在用户确认这是邀请场景后才使用通讯录查询;多条候选必须让用户选择,不能按职位或相似度自行挑选。
- 返回
CHANGE_PREVIEW。不要执行写操作。
execute-confirmed-change
仅当用户明确确认刚才展示的同一预览时执行:
- 重新确认目标会议、范围和预览哈希/关键信息未变化;变化时重新预览。
- 运行一个匹配的 tmeet 写操作。一次确认只覆盖一个动作,不能顺带添加其他人、关闭录制或修改安全设置。
- 读取最新会议或受邀人列表,返回
CHANGE_RESULT。添加、移除或替换受邀人时,结果必须列出当前完整受邀人姓名列表。
recover-runtime-state
- 写操作前出现网络失败、认证失效或只读命令超时时,返回
RUNTIME_RETRYABLE。宿主 Agent 可在用户完成认证或网络恢复后重试只读查询;查询成功后必须重新生成CHANGE_PREVIEW,旧预览不得直接复用。 - 写操作发出后若连接中断、超时或命令结果不可读,返回
RESULT_UNCERTAIN。先重新读取目标会议及必要的受邀人列表,核对拟议变化是否已经生效。 - 在
RESULT_UNCERTAIN下,不得重复执行写操作。若重新读取仍不能确认,说明不确定范围并等待用户指示;若用户仍要尝试,必须先给出新的预览并再次明确确认。 - 不承诺自动回滚。取消、改期和邀请变更的补偿动作都是新的高影响写操作,必须独立预览与确认。
运行时恢复边界
宿主 Agent 负责网络重试、超时、CLI 进程失败和认证刷新提醒。本 Skill 只规定返回内容与安全顺序:写前失败可提示恢复后重新读取,写后失败只核验结果,不自动重放命令、不扩大会议信息读取范围、不外发通知。
RUNTIME_RETRYABLE 模板
状态:RUNTIME_RETRYABLE
未执行:<拟议的写操作>
当前情况:<网络暂不可用 / 权限已过期 / 只读查询失败>
下一步:<用户完成 OAuth 或网络恢复后,重新读取这场会议并生成新预览>
RESULT_UNCERTAIN 模板
状态:RESULT_UNCERTAIN
不确定范围:<哪一项写操作的结果无法确认>
已采取动作:重新读取目标会议和必要的受邀人列表
当前核验:<已生效 / 未生效 / 仍无法读取>
安全限制:不得重复执行写操作;如需再次尝试,先生成新预览并重新确认。
draft-request-for-organizer
当用户不是创建者或无权限时,返回:
状态:AUTHORITY_REQUIRED
无法执行:<动作>;原因:<权限或账号限制>
可转发给发起人的请求:
请将「<主题>」(会议号:<meeting_code>)<拟议变更>。建议时间为 <含时区时间>;受影响范围为 <范围>。
常见错误
- 将“下周二”自行解释成某个时区:要求用户或宿主提供时区。
- 只改周期会议的一次却误改整个系列:先要求用户选择范围。
- 用通讯录搜索来猜谁“相关”:只在已确认的邀请/呼叫流程中搜索。
- 收到“确认”就执行另一场会议或另一项改动:确认只绑定刚展示的单一预览。
使用示例
用户说:“把周三 15 点的产品评审改到周四 10 点,先别发。”
- 确认会议号或用户明确指定的唯一会议;确认时区和这是否为周期会议的单次变更。
- 读取该会议,比较当前与拟议时间,只返回预览:
状态:CHANGE_PREVIEW
会议:产品评审会(会议号:已隐藏)
拟议动作:改期
当前 → 拟议:周三 15:00(+08:00)→ 周四 10:00(+08:00)
影响:需确认 3 名既有受邀人的时间冲突;不会由本 Skill 发送消息
权限:待确认
待执行命令:将这场会议改到周四 10:00
只有用户对这个预览回复“确认执行这项变更”后,才可执行一个对应动作。
常见问题
- 我不是发起人:返回
AUTHORITY_REQUIRED和可转发的请求草稿;不申请、借用或绕过他人的权限。 - “下周二”是哪天:先补充时区与具体日期;不自行猜测。
- 同名会议不止一场:请求会议号、日期或用户指定的唯一会议;不按标题自动选择。
- 想一口气改时间并添加多人:分别生成预览并逐项确认;一次确认只覆盖一个写操作。
- 提示权限已过期或网络失败:返回
RUNTIME_RETRYABLE;恢复后重新读取和预览,不能沿用旧预览直接执行。 - 点击确认后没有收到结果:返回
RESULT_UNCERTAIN,先重新读取核验;不得重复提交同一个写操作。