6.8 KiB
6.8 KiB
Minutes 低频意图与产品边界
本文件只承接不在根 Skill Golden Route 展开的低频能力。命令参数或 Safety 不确定时读取对应 compact leaf Schema;不要因此加载 Minutes 全量 Catalog。
低频能力路由
| 用户意图 | 推荐入口 | 关键边界 |
|---|---|---|
| “把发言人1改成张三” | dws minutes +speaker-replace --id <taskUuid> --from "发言人1" --to "张三" [--target-uid <UID>] |
这是逐字稿里的昵称替换,不是 speaker_id 与用户身份的系统级重绑;先完整预检源昵称,按 Runtime confirmation 执行并读回验证 |
| “把这篇听记里的 A/B/C 批量替换” | dws minutes +replace-batch --id <taskUuid> --pair "旧词=>新词" --failure-policy stop --page-limit 100 --dry-run --format json |
dry-run 只预览本地规则,不检查远端命中;真实执行按 Runtime confirmation,逐项验证并保留失败项 |
| “下载这条听记的音频/视频” | dws minutes +download --id <taskUuid> --output <相对路径> |
媒体 URL 是短期签名地址;默认直接安全下载。只有用户明确只要链接时使用 --url-only |
| “把多条听记媒体下载到目录” | dws minutes +download --ids <uuid1,uuid2> --output-dir <相对目录> |
最多 50 个,逐项保留成功与失败;禁止目录穿越和静默覆盖 |
| “把摘要、关键词、完整逐字稿、待办归档成一包” | dws minutes +export-pack --id <taskUuid> --output <新目录> |
逐字稿必须完整;所有必需产物验证后才原子发布目录;目标目录已存在时拒绝覆盖 |
| “归档时也带媒体” | dws minutes +export-pack --id <taskUuid> --output <新相对目录> --include-media --format json |
manifest 不保存签名 URL;媒体未就绪导致归档不完整时必须明确失败 |
| “按标签找听记” | dws minutes tag list --format json,再用真实 tagId 执行 dws minutes tag query --tag-id <tagId> --limit 10 --format json |
不按标签名猜 ID;空标签直接结束,有 nextToken 时续拉或明确结果不完整 |
| “查语音备忘” | dws minutes audio-memo list --format json |
属于独立原子查询;需要时间范围或分页参数时读取该 compact leaf Schema |
需要根据逐字稿总结指定发言人的内容时读取 发言人匹配流程;用户已经确认“匿名发言人 → 姓名”的对应关系、准备执行标注替换时读取 发言人纠正流程。两者都不能凭职位、语言风格或列表顺序自动认定身份。
批量文本替换
dws minutes +replace-batch --id <taskUuid> --pair "旧词1=>新词1" --pair "旧词2=>新词2" --failure-policy stop --page-limit 100 --dry-run --format json
--pair可以重复;也可用--json '<数组>'、--json @<相对文件>或--json -,二者至少提供一种。每组格式固定为原文=>替换,原文不能为空或重复。- 用户没有提供完整的“原文=>替换”映射时,不查询 Help、不编造替换词,也不执行没有业务意义的空 dry-run;先按已有线索列出待补齐的
原文=><目标词>模板并只询问一次,拿到完整映射后再预演。 --failure-policy continue只表示失败后继续尝试剩余规则;只要有一项失败,整体仍是 partial/非零。- dry-run 是
remoteReads=false的本地计划;返回的total是替换规则数,不是逐字稿中的命中次数。要声称命中必须有完整逐字稿或真实执行前预检证据。 - 真实执行按 Runtime confirmation;完成后以逐项 ledger 和完整逐字稿读回为准,不能让最终答复与工具结果矛盾。
标签查询
dws minutes tag list --format json
dws minutes tag query --tag-id <tag-list真实返回的tagId> --limit 10 --format json
dws minutes tag query --tag-id <tagId> --limit 10 --cursor <nextToken> --format json
- 不按标签名称猜
tagId;tag list明确返回空数组时直接交付“当前无标签”,不再查 Help 或拿其他分组补位。 tag query是单页原子查询;返回真实nextToken时继续续拉,或明确说明当前结果不完整。
本地归档
dws minutes +export-pack --id <taskUuid> --output ./minutes-export --format json
dws minutes +export-pack --id <taskUuid> --output ./minutes-export --include-media --format json
--output必须是工作目录内尚不存在的安全相对目录;命令拒绝目录穿越和静默覆盖。- 默认归档
basic,summary,keywords,transcript,todos;如用--artifacts缩小集合,只能声称已交付实际选择并验证通过的产物。 --include-media只决定是否附带媒体,不降低逐字稿完整性要求;manifest 不保存短期签名 URL。- 只有响应中的
published=true、真实path/manifest/files和所选产物均完整,才能称归档已生成;任一产物 unknown/pending/failed 时不得宣称成功。
目标匹配
- 用户给了
taskUuid或听记 URL:直接解析和使用真实 ID,不再按标题搜索。 - 用户给了标题:优先精确标题;没有精确命中时可以返回标题包含或语义相关候选。候选足够接近且唯一时可继续;差异明显或多个候选都合理时让用户选择。全量搜索尚未完成但有有效
nextToken时继续,只有 continuation 缺失/停滞/循环、达到页数上限或后页失败时停止并说明不完整。 - 不要求用户口述标题必须与服务端字符逐字相同,但也不能把“语义相关”当成“已确认目标”。任何写操作前都要确保目标唯一。
- 用户明确说“最新一条”才使用
+latest;它不是通用消歧器,也不能用于录音绑定。
内容形态边界
| 需要的结果 | 使用 |
|---|---|
| 只在对话里查看摘要/逐字稿/待办 | Minutes 读取命令 |
| 形成可持续编辑的钉钉文档 | 先用 Minutes 读取真实内容,再切 dingtalk-doc 创建或编辑 |
| 把行动项变成可分派任务 | 先用 +action-items,再切 dingtalk-todo |
| 给别人发摘要文本 | 切 dingtalk-chat;不要把授予听记权限误当成发送消息 |
| 管理会议时间或会议室 | dingtalk-calendar |
| 管理普通云盘文件 | dingtalk-drive;听记媒体下载和听记上传仍由 Minutes 负责 |
写入与确认
- 发言人替换、批量文本替换都改变现有听记内容,按 Runtime confirmation 执行;dry-run 只显示计划,不写远端。
- 下载和导出写入本地工作目录,不改变远端听记,但必须使用安全相对路径、no-clobber 和原子发布语义。
- 任一批量流程只要存在失败项,就按 partial/非零交付完整 ledger;不能只汇报成功项。