hint优化

This commit is contained in:
南润
2026-08-04 20:24:27 +08:00
parent 7094e5eceb
commit 9dd8e232bb
12 changed files with 308 additions and 232 deletions
+50
View File
@@ -90,6 +90,56 @@ func TestChatAgentGuidanceRendersOnlyOnStdout(t *testing.T) {
}
}
func TestCandidateAlignmentChatGuidance(t *testing.T) {
tests := []struct {
args []string
wants []string
}{
{[]string{"chat", "message", "query-send-status", "--help"}, []string{"sendStatus=SUCCESS", "FAILED"}},
{[]string{"chat", "+messages-query-send-status", "--help"}, []string{"sendStatus=SUCCESS", "openTaskId"}},
{[]string{"chat", "message", "set-pin-msg", "--help"}, []string{"openTaskId", "set-top-msg", "chat set-top"}},
{[]string{"chat", "message", "unset-pin-msg", "--help"}, []string{"复用", "unset-top-msg"}},
{[]string{"chat", "message", "add-emoji", "--help"}, []string{"同一条真实消息", "openTaskId"}},
{[]string{"chat", "message", "remove-emoji", "--help"}, []string{"复用", "表情名称"}},
{[]string{"chat", "group", "members", "remove", "--help"}, []string{"群主", "转让群主"}},
{[]string{"chat", "group", "update-icon", "--help"}, []string{"dentryId", "能力边界"}},
{[]string{"chat", "group", "update-settings", "--help"}, []string{"群级设置", "user-settings set"}},
{[]string{"chat", "group", "user-settings", "query", "--help"}, []string{"当前用户视角", "保存原值"}},
{[]string{"chat", "group", "user-settings", "set", "--help"}, []string{"再次 query", "真实值恢复"}},
}
for _, tc := range tests {
cmd := NewRootCommand()
var stdout bytes.Buffer
cmd.SetOut(&stdout)
cmd.SetErr(io.Discard)
cmd.SetArgs(tc.args)
if err := cmd.Execute(); err != nil {
t.Fatalf("%v: %v", tc.args, err)
}
for _, want := range tc.wants {
if !strings.Contains(stdout.String(), want) {
t.Fatalf("%v help missing %q:\n%s", tc.args, want, stdout.String())
}
}
}
}
func TestCandidateAlignmentDriveUploadSchemaGuidance(t *testing.T) {
cmd := NewRootCommand()
var stdout bytes.Buffer
cmd.SetOut(&stdout)
cmd.SetErr(io.Discard)
cmd.SetArgs([]string{"schema", "drive.upload", "--format", "json"})
if err := cmd.Execute(); err != nil {
t.Fatalf("drive.upload schema: %v", err)
}
for _, want := range []string{"暂时不要发送", "不会发送聊天消息"} {
if !strings.Contains(stdout.String(), want) {
t.Fatalf("drive.upload schema missing %q:\n%s", want, stdout.String())
}
}
}
func TestRootKeepsMainBranchChatCompatibilityCommands(t *testing.T) {
root := NewRootCommand()
listDirect := mustFindCommand(t, root, "chat", "message", "list-direct")
+84 -84
View File
@@ -9301,11 +9301,11 @@
]
},
"chat +messages-query-send-status": {
"agent_summary": "查询消息发送状态",
"agent_summary": "查询消息发送任务的业务终态,只有 sendStatus=SUCCESS 才表示真正发送成功",
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"需要该 Shortcut 未公开的底层参数、原始响应或不同执行语义时,改用对应原子命令"
"需要该 Shortcut 未公开的底层参数、原始响应或不同执行语义时,改用对应原子命令;不要把 openTaskId 当 openMessageId 做 Pin、置顶或表情操作"
],
"confirmation": "not_required",
"effect": "read",
@@ -9315,14 +9315,14 @@
],
"field_provenance": {
"agent_summary": {
"value": "查询消息发送状态",
"value": "查询消息发送任务的业务终态,只有 sendStatus=SUCCESS 才表示真正发送成功",
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
"resolution": "highest_precedence",
"review_reason": "Agent-authored and reviewed from the built-in Shortcut intent, executable Cobra path, and declared outcome; it affects selection only and does not alter execution or safety facts.",
"candidates": [
{
"value": "查询消息发送状态",
"value": "查询消息发送任务的业务终态,只有 sendStatus=SUCCESS 才表示真正发送成功",
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
"selected": true,
@@ -9348,7 +9348,7 @@
},
"avoid_when": {
"value": [
"需要该 Shortcut 未公开的底层参数、原始响应或不同执行语义时,改用对应原子命令"
"需要该 Shortcut 未公开的底层参数、原始响应或不同执行语义时,改用对应原子命令;不要把 openTaskId 当 openMessageId 做 Pin、置顶或表情操作"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -9357,7 +9357,7 @@
"candidates": [
{
"value": [
"需要该 Shortcut 未公开的底层参数、原始响应或不同执行语义时,改用对应原子命令"
"需要该 Shortcut 未公开的底层参数、原始响应或不同执行语义时,改用对应原子命令;不要把 openTaskId 当 openMessageId 做 Pin、置顶或表情操作"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -9523,7 +9523,7 @@
},
"use_when": {
"value": [
"当你发消息后拿到 openTaskId、想确认这条消息是否发送成功时使用;只读返回发送状态,需传 --open-task-id。"
"当你发消息后拿到 openTaskId、想确认这条消息是否发送成功时使用;只读返回发送状态,需传 --open-task-id;FAILED 必须如实报告,不能因外层 success=true 宣称成功。"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -9532,7 +9532,7 @@
"candidates": [
{
"value": [
"当你发消息后拿到 openTaskId、想确认这条消息是否发送成功时使用;只读返回发送状态,需传 --open-task-id。"
"当你发消息后拿到 openTaskId、想确认这条消息是否发送成功时使用;只读返回发送状态,需传 --open-task-id;FAILED 必须如实报告,不能因外层 success=true 宣称成功。"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -9555,7 +9555,7 @@
"internal/cli/schema_hints/selection/chat.json"
],
"use_when": [
"当你发消息后拿到 openTaskId、想确认这条消息是否发送成功时使用;只读返回发送状态,需传 --open-task-id。"
"当你发消息后拿到 openTaskId、想确认这条消息是否发送成功时使用;只读返回发送状态,需传 --open-task-id;FAILED 必须如实报告,不能因外层 success=true 宣称成功。"
]
},
"chat +messages-read-status": {
@@ -20567,7 +20567,7 @@
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"移除机器人时使用 chat group members remove-bot"
"移除机器人时使用 chat group members remove-bot;不要把建群者或群主加入 --users,也不要为了清理成员而转让群主"
],
"confirmation": "not_required",
"effect": "write",
@@ -20616,7 +20616,7 @@
},
"avoid_when": {
"value": [
"移除机器人时使用 chat group members remove-bot"
"移除机器人时使用 chat group members remove-bot;不要把建群者或群主加入 --users,也不要为了清理成员而转让群主"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -20625,7 +20625,7 @@
"candidates": [
{
"value": [
"移除机器人时使用 chat group members remove-bot"
"移除机器人时使用 chat group members remove-bot;不要把建群者或群主加入 --users,也不要为了清理成员而转让群主"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -20804,7 +20804,7 @@
},
"use_when": {
"value": [
"群管理员明确要移除一个或多个普通成员时"
"群管理员明确要移除一个或多个普通成员时;清理临时群只传本次加入的普通成员"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -20813,7 +20813,7 @@
"candidates": [
{
"value": [
"群管理员明确要移除一个或多个普通成员时"
"群管理员明确要移除一个或多个普通成员时;清理临时群只传本次加入的普通成员"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -20844,7 +20844,7 @@
"skills/mono/references/products/chat.md"
],
"use_when": [
"群管理员明确要移除一个或多个普通成员时"
"群管理员明确要移除一个或多个普通成员时;清理临时群只传本次加入的普通成员"
]
},
"chat group members remove-bot": {
@@ -24064,7 +24064,7 @@
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"没有真实可用 mediaId 时先完成媒体上传"
"本地图片路径、钉盘 dentryId、聊天文件 uploadKey 都不能代替 icon-media-id;当前 CLI 无本地图片转群头像 mediaId 的能力,缺少 mediaId 时应如实报告能力边界"
],
"confirmation": "not_required",
"effect": "write",
@@ -24113,7 +24113,7 @@
},
"avoid_when": {
"value": [
"没有真实可用 mediaId 时先完成媒体上传"
"本地图片路径、钉盘 dentryId、聊天文件 uploadKey 都不能代替 icon-media-id;当前 CLI 无本地图片转群头像 mediaId 的能力,缺少 mediaId 时应如实报告能力边界"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -24122,7 +24122,7 @@
"candidates": [
{
"value": [
"没有真实可用 mediaId 时先完成媒体上传"
"本地图片路径、钉盘 dentryId、聊天文件 uploadKey 都不能代替 icon-media-id;当前 CLI 无本地图片转群头像 mediaId 的能力,缺少 mediaId 时应如实报告能力边界"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -24268,7 +24268,7 @@
},
"use_when": {
"value": [
"已有上传后的头像 mediaId 并要修改群头像时"
"已有可用于群头像接口的真实 mediaId 并要修改群头像时"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -24277,7 +24277,7 @@
"candidates": [
{
"value": [
"已有上传后的头像 mediaId 并要修改群头像时"
"已有可用于群头像接口的真实 mediaId 并要修改群头像时"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -24306,7 +24306,7 @@
"skills/mono/references/products/chat.md"
],
"use_when": [
"已有上传后的头像 mediaId 并要修改群头像时"
"已有可用于群头像接口的真实 mediaId 并要修改群头像时"
]
},
"chat group update-nick": {
@@ -24602,7 +24602,7 @@
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"全员禁言和成员禁言使用专门的 mute 命令"
"全员禁言和成员禁言使用专门的 mute 命令;当前用户自己的会话置顶或免打扰使用 group user-settings set"
],
"confirmation": "not_required",
"effect": "write",
@@ -24651,7 +24651,7 @@
},
"avoid_when": {
"value": [
"全员禁言和成员禁言使用专门的 mute 命令"
"全员禁言和成员禁言使用专门的 mute 命令;当前用户自己的会话置顶或免打扰使用 group user-settings set"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -24660,7 +24660,7 @@
"candidates": [
{
"value": [
"全员禁言和成员禁言使用专门的 mute 命令"
"全员禁言和成员禁言使用专门的 mute 命令;当前用户自己的会话置顶或免打扰使用 group user-settings set"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -24806,7 +24806,7 @@
},
"use_when": {
"value": [
"需要调整 searchable、入群验证或群权限等设置时"
"需要调整 searchable、入群验证、@所有人权限等群级设置时;修改后用群信息或设置查询核对终态"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -24815,7 +24815,7 @@
"candidates": [
{
"value": [
"需要调整 searchable、入群验证或群权限等设置时"
"需要调整 searchable、入群验证、@所有人权限等群级设置时;修改后用群信息或设置查询核对终态"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -24844,7 +24844,7 @@
"skills/mono/references/products/chat.md"
],
"use_when": [
"需要调整 searchable、入群验证或群权限等设置时"
"需要调整 searchable、入群验证、@所有人权限等群级设置时;修改后用群信息或设置查询核对终态"
]
},
"chat group upgrade-to-external": {
@@ -25112,7 +25112,7 @@
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"管理员级群功能开关用 chat group update-settings"
"管理员级群功能开关用 chat group update-settings;查询结果是当前用户视角,不代表群级设置"
],
"confirmation": "not_required",
"effect": "read",
@@ -25155,7 +25155,7 @@
},
"avoid_when": {
"value": [
"管理员级群功能开关用 chat group update-settings"
"管理员级群功能开关用 chat group update-settings;查询结果是当前用户视角,不代表群级设置"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -25164,7 +25164,7 @@
"candidates": [
{
"value": [
"管理员级群功能开关用 chat group update-settings"
"管理员级群功能开关用 chat group update-settings;查询结果是当前用户视角,不代表群级设置"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -25330,7 +25330,7 @@
},
"use_when": {
"value": [
"用户说 看下这些群我的置顶和免打扰设置"
"用户说看下这些群中我自己的置顶和免打扰设置;修改前先查询并保存原值用于恢复"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -25339,7 +25339,7 @@
"candidates": [
{
"value": [
"用户说 看下这些群我的置顶和免打扰设置"
"用户说看下这些群中我自己的置顶和免打扰设置;修改前先查询并保存原值用于恢复"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -25362,7 +25362,7 @@
"wukong-develop:wukong/products"
],
"use_when": [
"用户说 看下这些群我的置顶和免打扰设置"
"用户说看下这些群中我自己的置顶和免打扰设置;修改前先查询并保存原值用于恢复"
]
},
"chat group user-settings set": {
@@ -25370,7 +25370,7 @@
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"单个群昵称优先 chat group update-nick"
"单个群昵称优先 chat group update-nick;不要用本命令修改 searchable、@所有人权限等群级开关;临时测试结束时按修改前 query 的真实值恢复"
],
"confirmation": "not_required",
"effect": "write",
@@ -25413,7 +25413,7 @@
},
"avoid_when": {
"value": [
"单个群昵称优先 chat group update-nick"
"单个群昵称优先 chat group update-nick;不要用本命令修改 searchable、@所有人权限等群级开关;临时测试结束时按修改前 query 的真实值恢复"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -25422,7 +25422,7 @@
"candidates": [
{
"value": [
"单个群昵称优先 chat group update-nick"
"单个群昵称优先 chat group update-nick;不要用本命令修改 searchable、@所有人权限等群级开关;临时测试结束时按修改前 query 的真实值恢复"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -25588,7 +25588,7 @@
},
"use_when": {
"value": [
"用户说 把这些群都设为免打扰/置顶"
"用户说把这些群都设为免打扰或置顶;items 中只写需要改变的当前用户设置,完成后再次 query 验证"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -25597,7 +25597,7 @@
"candidates": [
{
"value": [
"用户说 把这些群都设为免打扰/置顶"
"用户说把这些群都设为免打扰或置顶;items 中只写需要改变的当前用户设置,完成后再次 query 验证"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -25620,7 +25620,7 @@
"wukong-develop:wukong/products"
],
"use_when": [
"用户说 把这些群都设为免打扰/置顶"
"用户说把这些群都设为免打扰或置顶;items 中只写需要改变的当前用户设置,完成后再次 query 验证"
]
},
"chat group-mute": {
@@ -29273,11 +29273,11 @@
]
},
"chat message add-emoji": {
"agent_summary": "给指定消息添加表情回应",
"agent_summary": "使用同一会话中真实的 openMessageId 给指定消息添加表情回应",
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"发送文本消息或文字表情时不要使用"
"发送文本消息或文字表情时不要使用;不要把 openTaskId 当作 msg-id"
],
"confirmation": "not_required",
"effect": "write",
@@ -29287,14 +29287,14 @@
],
"field_provenance": {
"agent_summary": {
"value": "给指定消息添加表情回应",
"value": "使用同一会话中真实的 openMessageId 给指定消息添加表情回应",
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
"resolution": "highest_precedence",
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"candidates": [
{
"value": "给指定消息添加表情回应",
"value": "使用同一会话中真实的 openMessageId 给指定消息添加表情回应",
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
"selected": true,
@@ -29326,7 +29326,7 @@
},
"avoid_when": {
"value": [
"发送文本消息或文字表情时不要使用"
"发送文本消息或文字表情时不要使用;不要把 openTaskId 当作 msg-id"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -29335,7 +29335,7 @@
"candidates": [
{
"value": [
"发送文本消息或文字表情时不要使用"
"发送文本消息或文字表情时不要使用;不要把 openTaskId 当作 msg-id"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -29489,7 +29489,7 @@
},
"use_when": {
"value": [
"需要对已有消息添加一个 emoji reaction 时"
"需要对已有消息添加一个 emoji reaction 时;conversation-id 与 msg-id 必须来自同一条真实消息"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -29498,7 +29498,7 @@
"candidates": [
{
"value": [
"需要对已有消息添加一个 emoji reaction 时"
"需要对已有消息添加一个 emoji reaction 时;conversation-id 与 msg-id 必须来自同一条真实消息"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -29526,7 +29526,7 @@
"skills/mono/references/products/chat.md"
],
"use_when": [
"需要对已有消息添加一个 emoji reaction 时"
"需要对已有消息添加一个 emoji reaction 时;conversation-id 与 msg-id 必须来自同一条真实消息"
]
},
"chat message add-favorite": {
@@ -34634,11 +34634,11 @@
]
},
"chat message query-send-status": {
"agent_summary": "查询异步消息发送任务的状态",
"agent_summary": "查询异步消息发送任务的业务终态,并按 sendStatus 判断是否真正投递成功",
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"没有 message send 真实返回的 openTaskId 时不要使用;openMessageId 和会话 ID 都不能代替 openTaskId"
"没有 message send 真实返回的 openTaskId 时不要使用;openMessageId 和会话 ID 都不能代替 openTaskId;FAILED 不得当作接口成功"
],
"confirmation": "not_required",
"effect": "read",
@@ -34648,14 +34648,14 @@
],
"field_provenance": {
"agent_summary": {
"value": "查询异步消息发送任务的状态",
"value": "查询异步消息发送任务的业务终态,并按 sendStatus 判断是否真正投递成功",
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
"resolution": "highest_precedence",
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"candidates": [
{
"value": "查询异步消息发送任务的状态",
"value": "查询异步消息发送任务的业务终态,并按 sendStatus 判断是否真正投递成功",
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
"selected": true,
@@ -34687,7 +34687,7 @@
},
"avoid_when": {
"value": [
"没有 message send 真实返回的 openTaskId 时不要使用;openMessageId 和会话 ID 都不能代替 openTaskId"
"没有 message send 真实返回的 openTaskId 时不要使用;openMessageId 和会话 ID 都不能代替 openTaskId;FAILED 不得当作接口成功"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -34696,7 +34696,7 @@
"candidates": [
{
"value": [
"没有 message send 真实返回的 openTaskId 时不要使用;openMessageId 和会话 ID 都不能代替 openTaskId"
"没有 message send 真实返回的 openTaskId 时不要使用;openMessageId 和会话 ID 都不能代替 openTaskId;FAILED 不得当作接口成功"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -34842,7 +34842,7 @@
},
"use_when": {
"value": [
"发送命令返回 openTaskId 后需要确认投递结果时"
"发送命令返回 openTaskId 后需要确认投递结果时;只有 sendStatus=SUCCESS 才能宣称消息发送成功"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -34851,7 +34851,7 @@
"candidates": [
{
"value": [
"发送命令返回 openTaskId 后需要确认投递结果时"
"发送命令返回 openTaskId 后需要确认投递结果时;只有 sendStatus=SUCCESS 才能宣称消息发送成功"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -34880,7 +34880,7 @@
"skills/mono/references/products/chat.md"
],
"use_when": [
"发送命令返回 openTaskId 后需要确认投递结果时"
"发送命令返回 openTaskId 后需要确认投递结果时;只有 sendStatus=SUCCESS 才能宣称消息发送成功"
]
},
"chat message read-status": {
@@ -35691,11 +35691,11 @@
]
},
"chat message remove-emoji": {
"agent_summary": "移除指定消息上的表情回应",
"agent_summary": "从同一条真实消息移除此前添加的同名表情回应",
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"移除文字表情时使用 chat message remove-text-emotion"
"移除文字表情时使用 chat message remove-text-emotion;不要猜测新的消息 ID 或表情名称"
],
"confirmation": "not_required",
"effect": "write",
@@ -35705,14 +35705,14 @@
],
"field_provenance": {
"agent_summary": {
"value": "移除指定消息上的表情回应",
"value": "从同一条真实消息移除此前添加的同名表情回应",
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
"resolution": "highest_precedence",
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"candidates": [
{
"value": "移除指定消息上的表情回应",
"value": "从同一条真实消息移除此前添加的同名表情回应",
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
"selected": true,
@@ -35744,7 +35744,7 @@
},
"avoid_when": {
"value": [
"移除文字表情时使用 chat message remove-text-emotion"
"移除文字表情时使用 chat message remove-text-emotion;不要猜测新的消息 ID 或表情名称"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -35753,7 +35753,7 @@
"candidates": [
{
"value": [
"移除文字表情时使用 chat message remove-text-emotion"
"移除文字表情时使用 chat message remove-text-emotion;不要猜测新的消息 ID 或表情名称"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -35907,7 +35907,7 @@
},
"use_when": {
"value": [
"需要取消此前添加的 emoji reaction 时"
"需要取消此前添加的 emoji reaction 时;复用添加时的 conversation-id、msg-id 和 emoji"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -35916,7 +35916,7 @@
"candidates": [
{
"value": [
"需要取消此前添加的 emoji reaction 时"
"需要取消此前添加的 emoji reaction 时;复用添加时的 conversation-id、msg-id 和 emoji"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -35944,7 +35944,7 @@
"skills/mono/references/products/chat.md"
],
"use_when": [
"需要取消此前添加的 emoji reaction 时"
"需要取消此前添加的 emoji reaction 时;复用添加时的 conversation-id、msg-id 和 emoji"
]
},
"chat message remove-favorite": {
@@ -38319,11 +38319,11 @@
]
},
"chat message set-pin-msg": {
"agent_summary": "把指定消息设为会话置顶消息",
"agent_summary": "使用同源的 openConversationId 和 openMessageId 把指定消息设为 Pin",
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"取消置顶使用 chat message unset-pin-msg"
"取消 Pin 使用 chat message unset-pin-msg;置顶到会话顶部使用 set-top-msg,置顶整个会话使用 chat set-top"
],
"confirmation": "not_required",
"effect": "write",
@@ -38333,14 +38333,14 @@
],
"field_provenance": {
"agent_summary": {
"value": "把指定消息设为会话置顶消息",
"value": "使用同源的 openConversationId 和 openMessageId 把指定消息设为 Pin",
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
"resolution": "highest_precedence",
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"candidates": [
{
"value": "把指定消息设为会话置顶消息",
"value": "使用同源的 openConversationId 和 openMessageId 把指定消息设为 Pin",
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
"selected": true,
@@ -38372,7 +38372,7 @@
},
"avoid_when": {
"value": [
"取消置顶使用 chat message unset-pin-msg"
"取消 Pin 使用 chat message unset-pin-msg;置顶到会话顶部使用 set-top-msg,置顶整个会话使用 chat set-top"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -38381,7 +38381,7 @@
"candidates": [
{
"value": [
"取消置顶使用 chat message unset-pin-msg"
"取消 Pin 使用 chat message unset-pin-msg;置顶到会话顶部使用 set-top-msg,置顶整个会话使用 chat set-top"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -38527,7 +38527,7 @@
},
"use_when": {
"value": [
"需要在会话中置顶一条已知消息时"
"需要在会话中钉住一条已知消息时;若发送只返回 openTaskId,先确认发送终态,再从消息查询结果取得真实 openMessageId"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -38536,7 +38536,7 @@
"candidates": [
{
"value": [
"需要在会话中置顶一条已知消息时"
"需要在会话中钉住一条已知消息时;若发送只返回 openTaskId,先确认发送终态,再从消息查询结果取得真实 openMessageId"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -38565,7 +38565,7 @@
"skills/mono/references/products/chat.md"
],
"use_when": [
"需要在会话中置顶一条已知消息时"
"需要在会话中钉住一条已知消息时;若发送只返回 openTaskId,先确认发送终态,再从消息查询结果取得真实 openMessageId"
]
},
"chat message set-top-msg": {
@@ -38854,11 +38854,11 @@
]
},
"chat message unset-pin-msg": {
"agent_summary": "取消指定消息的会话置顶",
"agent_summary": "使用设置 Pin 时的同源会话和消息 ID 取消指定消息的 Pin",
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"新增置顶使用 chat message set-pin-msg"
"新增 Pin 使用 chat message set-pin-msg;不要改用 unset-top-msg 或 chat set-top --off"
],
"confirmation": "not_required",
"effect": "write",
@@ -38868,14 +38868,14 @@
],
"field_provenance": {
"agent_summary": {
"value": "取消指定消息的会话置顶",
"value": "使用设置 Pin 时的同源会话和消息 ID 取消指定消息的 Pin",
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
"resolution": "highest_precedence",
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"candidates": [
{
"value": "取消指定消息的会话置顶",
"value": "使用设置 Pin 时的同源会话和消息 ID 取消指定消息的 Pin",
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
"selected": true,
@@ -38907,7 +38907,7 @@
},
"avoid_when": {
"value": [
"新增置顶使用 chat message set-pin-msg"
"新增 Pin 使用 chat message set-pin-msg;不要改用 unset-top-msg 或 chat set-top --off"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -38916,7 +38916,7 @@
"candidates": [
{
"value": [
"新增置顶使用 chat message set-pin-msg"
"新增 Pin 使用 chat message set-pin-msg;不要改用 unset-top-msg 或 chat set-top --off"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -39062,7 +39062,7 @@
},
"use_when": {
"value": [
"需要移除一条已知置顶消息时"
"需要移除一条已知 Pin 消息时;复用 set-pin-msg 成功时的 openConversationId 和 openMessageId"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -39071,7 +39071,7 @@
"candidates": [
{
"value": [
"需要移除一条已知置顶消息时"
"需要移除一条已知 Pin 消息时;复用 set-pin-msg 成功时的 openConversationId 和 openMessageId"
],
"source": "internal/cli/schema_hints/selection/chat.json",
"precedence": "reviewed_explicit",
@@ -39100,7 +39100,7 @@
"skills/mono/references/products/chat.md"
],
"use_when": [
"需要移除一条已知置顶消息时"
"需要移除一条已知 Pin 消息时;复用 set-pin-msg 成功时的 openConversationId 和 openMessageId"
]
},
"chat message unset-top-msg": {
@@ -10478,6 +10478,7 @@
"agent_summary_source": "dws-agent-selection/drive",
"availability": "available",
"avoid_when": [
"用户要把文件发送到群聊或单聊时使用 chat message send --msg-type file --file-path;drive upload 不会发送聊天消息",
"常规场景不要拆成 upload-info + 手动 PUT + commit;仅自定义流式上传才用三步",
"要把文件作为文档正文附件插入改用 dws doc media insert",
"用户明确说文档空间且走 doc 兼容入口时可用 dws doc upload,默认仍推荐本命令",
@@ -10525,6 +10526,7 @@
},
"avoid_when": {
"value": [
"用户要把文件发送到群聊或单聊时使用 chat message send --msg-type file --file-path;drive upload 不会发送聊天消息",
"常规场景不要拆成 upload-info + 手动 PUT + commit;仅自定义流式上传才用三步",
"要把文件作为文档正文附件插入改用 dws doc media insert",
"用户明确说文档空间且走 doc 兼容入口时可用 dws doc upload,默认仍推荐本命令",
@@ -10537,6 +10539,7 @@
"candidates": [
{
"value": [
"用户要把文件发送到群聊或单聊时使用 chat message send --msg-type file --file-path;drive upload 不会发送聊天消息",
"常规场景不要拆成 upload-info + 手动 PUT + commit;仅自定义流式上传才用三步",
"要把文件作为文档正文附件插入改用 dws doc media insert",
"用户明确说文档空间且走 doc 兼容入口时可用 dws doc upload,默认仍推荐本命令",
@@ -10733,6 +10736,7 @@
"use_when": {
"value": [
"用户要把本地文件上传到钉盘/我的文件(首选一条命令自动完成凭证+PUT+提交)时",
"用户明确要求只上传或暂存附件、暂时不要发送到任何聊天会话时",
"上传到知识库/文档空间时加 --workspace;需要转在线文档时加 --convert",
"用户明确要求用本地文件替换已有钉盘/文档空间文件时传 --node;该模式会覆盖远端内容并要求确认"
],
@@ -10744,6 +10748,7 @@
{
"value": [
"用户要把本地文件上传到钉盘/我的文件(首选一条命令自动完成凭证+PUT+提交)时",
"用户明确要求只上传或暂存附件、暂时不要发送到任何聊天会话时",
"上传到知识库/文档空间时加 --workspace;需要转在线文档时加 --convert",
"用户明确要求用本地文件替换已有钉盘/文档空间文件时传 --node;该模式会覆盖远端内容并要求确认"
],
@@ -10774,6 +10779,7 @@
],
"use_when": [
"用户要把本地文件上传到钉盘/我的文件(首选一条命令自动完成凭证+PUT+提交)时",
"用户明确要求只上传或暂存附件、暂时不要发送到任何聊天会话时",
"上传到知识库/文档空间时加 --workspace;需要转在线文档时加 --convert",
"用户明确要求用本地文件替换已有钉盘/文档空间文件时传 --node;该模式会覆盖远端内容并要求确认"
]
@@ -1,6 +1,6 @@
{
"version": 1,
"source_hash": "sha256:eedf9163f496888aa3a065bdbd85647e3702a73ce74703f27083059e22a74098",
"source_hash": "sha256:add7be57e9ed6b69783be5df6d321c83ebe3b9c71a934e9991d91ee41fea23f4",
"surface_hash": "sha256:4897d582a472d9d3596f88fb4546e7795d6b9bc334d020712f5d895ce894f7a7",
"coverage": {
"surface_products": 26,
@@ -1,6 +1,6 @@
{
"version": 1,
"source_hash": "sha256:eedf9163f496888aa3a065bdbd85647e3702a73ce74703f27083059e22a74098",
"source_hash": "sha256:add7be57e9ed6b69783be5df6d321c83ebe3b9c71a934e9991d91ee41fea23f4",
"surface_hash": "sha256:4897d582a472d9d3596f88fb4546e7795d6b9bc334d020712f5d895ce894f7a7",
"source_files": 160,
"hint_files": 54,
+32 -30
View File
@@ -1,12 +1,12 @@
{
"version": 1,
"surface_hash": "sha256:4897d582a472d9d3596f88fb4546e7795d6b9bc334d020712f5d895ce894f7a7",
"source_hash": "sha256:113dbc3507c5e4d871802d567e960c4947b8066472c28fb8a6dc64e9fef36da9",
"source_hash": "sha256:2bdcd3ac9d59f625cd4ed1e97938357b68ac483ef213a9e739baac67e3a1db3b",
"catalog": {
"agent_metadata": {
"products_with_metadata": 26,
"source": "embedded-skill-metadata",
"source_hash": "sha256:eedf9163f496888aa3a065bdbd85647e3702a73ce74703f27083059e22a74098",
"source_hash": "sha256:add7be57e9ed6b69783be5df6d321c83ebe3b9c71a934e9991d91ee41fea23f4",
"surface_hash": "sha256:4897d582a472d9d3596f88fb4546e7795d6b9bc334d020712f5d895ce894f7a7",
"surface_products": 26,
"surface_tools": 875,
@@ -7784,11 +7784,11 @@
},
{
"agent_metadata_source": "embedded-skill-metadata",
"agent_summary": "给指定消息添加表情回应",
"agent_summary": "使用同一会话中真实的 openMessageId 给指定消息添加表情回应",
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"发送文本消息或文字表情时不要使用"
"发送文本消息或文字表情时不要使用;不要把 openTaskId 当作 msg-id"
],
"canonical_path": "chat.add_emoji_reaction",
"cli_name": "add-emoji",
@@ -7810,7 +7810,7 @@
"risk": "medium",
"title": "对消息添加 emoji 表情回应",
"use_when": [
"需要对已有消息添加一个 emoji reaction 时"
"需要对已有消息添加一个 emoji reaction 时;conversation-id 与 msg-id 必须来自同一条真实消息"
]
},
{
@@ -7967,7 +7967,7 @@
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"管理员级群功能开关用 chat group update-settings"
"管理员级群功能开关用 chat group update-settings;查询结果是当前用户视角,不代表群级设置"
],
"canonical_path": "chat.batch_query_group_chat_settings",
"cli_name": "query",
@@ -7985,7 +7985,7 @@
"risk": "low",
"title": "批量查询当前用户的群会话设置",
"use_when": [
"用户说 看下这些群我的置顶和免打扰设置"
"用户说看下这些群中我自己的置顶和免打扰设置;修改前先查询并保存原值用于恢复"
]
},
{
@@ -7994,7 +7994,7 @@
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"单个群昵称优先 chat group update-nick"
"单个群昵称优先 chat group update-nick;不要用本命令修改 searchable、@所有人权限等群级开关;临时测试结束时按修改前 query 的真实值恢复"
],
"canonical_path": "chat.batch_update_group_chat_settings",
"cli_name": "set",
@@ -8012,7 +8012,7 @@
"risk": "medium",
"title": "批量更新当前用户的群会话设置",
"use_when": [
"用户说 把这些群都设为免打扰/置顶"
"用户说把这些群都设为免打扰或置顶;items 中只写需要改变的当前用户设置,完成后再次 query 验证"
]
},
{
@@ -9430,11 +9430,11 @@
},
{
"agent_metadata_source": "embedded-skill-metadata",
"agent_summary": "查询异步消息发送任务的状态",
"agent_summary": "查询异步消息发送任务的业务终态,并按 sendStatus 判断是否真正投递成功",
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"没有 message send 真实返回的 openTaskId 时不要使用;openMessageId 和会话 ID 都不能代替 openTaskId"
"没有 message send 真实返回的 openTaskId 时不要使用;openMessageId 和会话 ID 都不能代替 openTaskId;FAILED 不得当作接口成功"
],
"canonical_path": "chat.query_message_send_status",
"cli_name": "query-send-status",
@@ -9456,7 +9456,7 @@
"risk": "low",
"title": "查询消息发送状态",
"use_when": [
"发送命令返回 openTaskId 后需要确认投递结果时"
"发送命令返回 openTaskId 后需要确认投递结果时;只有 sendStatus=SUCCESS 才能宣称消息发送成功"
]
},
{
@@ -9672,11 +9672,11 @@
},
{
"agent_metadata_source": "embedded-skill-metadata",
"agent_summary": "移除指定消息上的表情回应",
"agent_summary": "从同一条真实消息移除此前添加的同名表情回应",
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"移除文字表情时使用 chat message remove-text-emotion"
"移除文字表情时使用 chat message remove-text-emotion;不要猜测新的消息 ID 或表情名称"
],
"canonical_path": "chat.remove_emoji_reaction",
"cli_name": "remove-emoji",
@@ -9698,7 +9698,7 @@
"risk": "medium",
"title": "移除消息的 emoji 表情回应",
"use_when": [
"需要取消此前添加的 emoji reaction 时"
"需要取消此前添加的 emoji reaction 时;复用添加时的 conversation-id、msg-id 和 emoji"
]
},
{
@@ -9707,7 +9707,7 @@
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"移除机器人时使用 chat group members remove-bot"
"移除机器人时使用 chat group members remove-bot;不要把建群者或群主加入 --users,也不要为了清理成员而转让群主"
],
"canonical_path": "chat.remove_group_member",
"cli_name": "remove",
@@ -9729,7 +9729,7 @@
"risk": "medium",
"title": "移除群成员",
"use_when": [
"群管理员明确要移除一个或多个普通成员时"
"群管理员明确要移除一个或多个普通成员时;清理临时群只传本次加入的普通成员"
]
},
{
@@ -10342,11 +10342,11 @@
},
{
"agent_metadata_source": "embedded-skill-metadata",
"agent_summary": "把指定消息设为会话置顶消息",
"agent_summary": "使用同源的 openConversationId 和 openMessageId 把指定消息设为 Pin",
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"取消置顶使用 chat message unset-pin-msg"
"取消 Pin 使用 chat message unset-pin-msg;置顶到会话顶部使用 set-top-msg,置顶整个会话使用 chat set-top"
],
"canonical_path": "chat.set_pin_message",
"cli_name": "set-pin-msg",
@@ -10368,7 +10368,7 @@
"risk": "medium",
"title": "钉住消息(Pin)",
"use_when": [
"需要在会话中置顶一条已知消息时"
"需要在会话中钉住一条已知消息时;若发送只返回 openTaskId,先确认发送终态,再从消息查询结果取得真实 openMessageId"
]
},
{
@@ -11393,11 +11393,11 @@
},
{
"agent_metadata_source": "embedded-skill-metadata",
"agent_summary": "查询消息发送状态",
"agent_summary": "查询消息发送任务的业务终态,只有 sendStatus=SUCCESS 才表示真正发送成功",
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"需要该 Shortcut 未公开的底层参数、原始响应或不同执行语义时,改用对应原子命令"
"需要该 Shortcut 未公开的底层参数、原始响应或不同执行语义时,改用对应原子命令;不要把 openTaskId 当 openMessageId 做 Pin、置顶或表情操作"
],
"canonical_path": "chat.shortcut_messages_query_send_status",
"cli_name": "+messages-query-send-status",
@@ -11414,7 +11414,7 @@
"risk": "low",
"title": "查询消息发送状态",
"use_when": [
"当你发消息后拿到 openTaskId、想确认这条消息是否发送成功时使用;只读返回发送状态,需传 --open-task-id。"
"当你发消息后拿到 openTaskId、想确认这条消息是否发送成功时使用;只读返回发送状态,需传 --open-task-id;FAILED 必须如实报告,不能因外层 success=true 宣称成功。"
]
},
{
@@ -11768,11 +11768,11 @@
},
{
"agent_metadata_source": "embedded-skill-metadata",
"agent_summary": "取消指定消息的会话置顶",
"agent_summary": "使用设置 Pin 时的同源会话和消息 ID 取消指定消息的 Pin",
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"新增置顶使用 chat message set-pin-msg"
"新增 Pin 使用 chat message set-pin-msg;不要改用 unset-top-msg 或 chat set-top --off"
],
"canonical_path": "chat.unset_pin_message",
"cli_name": "unset-pin-msg",
@@ -11794,7 +11794,7 @@
"risk": "medium",
"title": "取消钉住消息(Unpin)",
"use_when": [
"需要移除一条已知置顶消息时"
"需要移除一条已知 Pin 消息时;复用 set-pin-msg 成功时的 openConversationId 和 openMessageId"
]
},
{
@@ -11918,7 +11918,7 @@
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"没有真实可用 mediaId 时先完成媒体上传"
"本地图片路径、钉盘 dentryId、聊天文件 uploadKey 都不能代替 icon-media-id;当前 CLI 无本地图片转群头像 mediaId 的能力,缺少 mediaId 时应如实报告能力边界"
],
"canonical_path": "chat.update_group_icon",
"cli_name": "update-icon",
@@ -11940,7 +11940,7 @@
"risk": "medium",
"title": "更新群头像",
"use_when": [
"已有上传后的头像 mediaId 并要修改群头像时"
"已有可用于群头像接口的真实 mediaId 并要修改群头像时"
]
},
{
@@ -12007,7 +12007,7 @@
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"全员禁言和成员禁言使用专门的 mute 命令"
"全员禁言和成员禁言使用专门的 mute 命令;当前用户自己的会话置顶或免打扰使用 group user-settings set"
],
"canonical_path": "chat.update_group_settings",
"cli_name": "update-settings",
@@ -12029,7 +12029,7 @@
"risk": "medium",
"title": "更新群设置",
"use_when": [
"需要调整 searchable、入群验证或群权限等设置时"
"需要调整 searchable、入群验证、@所有人权限等群级设置时;修改后用群信息或设置查询核对终态"
]
},
{
@@ -18283,6 +18283,7 @@
"agent_summary_source": "dws-agent-selection/drive",
"availability": "available",
"avoid_when": [
"用户要把文件发送到群聊或单聊时使用 chat message send --msg-type file --file-path;drive upload 不会发送聊天消息",
"常规场景不要拆成 upload-info + 手动 PUT + commit;仅自定义流式上传才用三步",
"要把文件作为文档正文附件插入改用 dws doc media insert",
"用户明确说文档空间且走 doc 兼容入口时可用 dws doc upload,默认仍推荐本命令",
@@ -18307,6 +18308,7 @@
"title": "上传本地文件到钉盘或文档空间",
"use_when": [
"用户要把本地文件上传到钉盘/我的文件(首选一条命令自动完成凭证+PUT+提交)时",
"用户明确要求只上传或暂存附件、暂时不要发送到任何聊天会话时",
"上传到知识库/文档空间时加 --workspace;需要转在线文档时加 --convert",
"用户明确要求用本地文件替换已有钉盘/文档空间文件时传 --node;该模式会覆盖远端内容并要求确认"
]
+84 -84
View File
@@ -1158,11 +1158,11 @@
"skills/mono/SKILL.md",
"skills/mono/references/products/chat.md"
],
"agent_summary": "给指定消息添加表情回应",
"agent_summary": "使用同一会话中真实的 openMessageId 给指定消息添加表情回应",
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"发送文本消息或文字表情时不要使用"
"发送文本消息或文字表情时不要使用;不要把 openTaskId 当作 msg-id"
],
"canonical_path": "chat.add_emoji_reaction",
"cli_name": "add-emoji",
@@ -1193,14 +1193,14 @@
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": "给指定消息添加表情回应"
"value": "使用同一会话中真实的 openMessageId 给指定消息添加表情回应"
}
],
"precedence": "reviewed_explicit",
"resolution": "highest_precedence",
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": "给指定消息添加表情回应"
"value": "使用同一会话中真实的 openMessageId 给指定消息添加表情回应"
},
"availability": {
"candidates": [
@@ -1232,7 +1232,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"发送文本消息或文字表情时不要使用"
"发送文本消息或文字表情时不要使用;不要把 openTaskId 当作 msg-id"
]
}
],
@@ -1241,7 +1241,7 @@
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"发送文本消息或文字表情时不要使用"
"发送文本消息或文字表情时不要使用;不要把 openTaskId 当作 msg-id"
]
},
"canonical_path": {
@@ -1479,7 +1479,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"需要对已有消息添加一个 emoji reaction 时"
"需要对已有消息添加一个 emoji reaction 时;conversation-id 与 msg-id 必须来自同一条真实消息"
]
}
],
@@ -1488,7 +1488,7 @@
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"需要对已有消息添加一个 emoji reaction 时"
"需要对已有消息添加一个 emoji reaction 时;conversation-id 与 msg-id 必须来自同一条真实消息"
]
}
},
@@ -2220,7 +2220,7 @@
"source": "reviewed_command_registry",
"title": "对消息添加 emoji 表情回应",
"use_when": [
"需要对已有消息添加一个 emoji reaction 时"
"需要对已有消息添加一个 emoji reaction 时;conversation-id 与 msg-id 必须来自同一条真实消息"
]
},
"chat.add_group_member": {
@@ -6372,7 +6372,7 @@
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"管理员级群功能开关用 chat group update-settings"
"管理员级群功能开关用 chat group update-settings;查询结果是当前用户视角,不代表群级设置"
],
"canonical_path": "chat.batch_query_group_chat_settings",
"cli_name": "query",
@@ -6426,7 +6426,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"管理员级群功能开关用 chat group update-settings"
"管理员级群功能开关用 chat group update-settings;查询结果是当前用户视角,不代表群级设置"
]
}
],
@@ -6435,7 +6435,7 @@
"review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"管理员级群功能开关用 chat group update-settings"
"管理员级群功能开关用 chat group update-settings;查询结果是当前用户视角,不代表群级设置"
]
},
"canonical_path": {
@@ -6645,7 +6645,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"用户说 看下这些群我的置顶和免打扰设置"
"用户说看下这些群中我自己的置顶和免打扰设置;修改前先查询并保存原值用于恢复"
]
}
],
@@ -6654,7 +6654,7 @@
"review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"用户说 看下这些群我的置顶和免打扰设置"
"用户说看下这些群中我自己的置顶和免打扰设置;修改前先查询并保存原值用于恢复"
]
}
},
@@ -6773,7 +6773,7 @@
"source": "reviewed_command_registry",
"title": "批量查询当前用户的群会话设置",
"use_when": [
"用户说 看下这些群我的置顶和免打扰设置"
"用户说看下这些群中我自己的置顶和免打扰设置;修改前先查询并保存原值用于恢复"
]
},
"chat.batch_update_group_chat_settings": {
@@ -6789,7 +6789,7 @@
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"单个群昵称优先 chat group update-nick"
"单个群昵称优先 chat group update-nick;不要用本命令修改 searchable、@所有人权限等群级开关;临时测试结束时按修改前 query 的真实值恢复"
],
"canonical_path": "chat.batch_update_group_chat_settings",
"cli_name": "set",
@@ -6843,7 +6843,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"单个群昵称优先 chat group update-nick"
"单个群昵称优先 chat group update-nick;不要用本命令修改 searchable、@所有人权限等群级开关;临时测试结束时按修改前 query 的真实值恢复"
]
}
],
@@ -6852,7 +6852,7 @@
"review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"单个群昵称优先 chat group update-nick"
"单个群昵称优先 chat group update-nick;不要用本命令修改 searchable、@所有人权限等群级开关;临时测试结束时按修改前 query 的真实值恢复"
]
},
"canonical_path": {
@@ -7062,7 +7062,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"用户说 把这些群都设为免打扰/置顶"
"用户说把这些群都设为免打扰或置顶;items 中只写需要改变的当前用户设置,完成后再次 query 验证"
]
}
],
@@ -7071,7 +7071,7 @@
"review_reason": "人工审阅:对照悟空 develop 同名命令实现、Cobra Long/Example 与 Runtime 确认门禁移植;不改变命令身份、参数契约或接口绑定。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"用户说 把这些群都设为免打扰/置顶"
"用户说把这些群都设为免打扰或置顶;items 中只写需要改变的当前用户设置,完成后再次 query 验证"
]
}
},
@@ -7190,7 +7190,7 @@
"source": "reviewed_command_registry",
"title": "批量更新当前用户的群会话设置",
"use_when": [
"用户说 把这些群都设为免打扰/置顶"
"用户说把这些群都设为免打扰或置顶;items 中只写需要改变的当前用户设置,完成后再次 query 验证"
]
},
"chat.clear_all_red_point": {
@@ -38313,11 +38313,11 @@
"skills/mono/references/intent-guide.md",
"skills/mono/references/products/chat.md"
],
"agent_summary": "查询异步消息发送任务的状态",
"agent_summary": "查询异步消息发送任务的业务终态,并按 sendStatus 判断是否真正投递成功",
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"没有 message send 真实返回的 openTaskId 时不要使用;openMessageId 和会话 ID 都不能代替 openTaskId"
"没有 message send 真实返回的 openTaskId 时不要使用;openMessageId 和会话 ID 都不能代替 openTaskId;FAILED 不得当作接口成功"
],
"canonical_path": "chat.query_message_send_status",
"cli_name": "query-send-status",
@@ -38338,14 +38338,14 @@
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": "查询异步消息发送任务的状态"
"value": "查询异步消息发送任务的业务终态,并按 sendStatus 判断是否真正投递成功"
}
],
"precedence": "reviewed_explicit",
"resolution": "highest_precedence",
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": "查询异步消息发送任务的状态"
"value": "查询异步消息发送任务的业务终态,并按 sendStatus 判断是否真正投递成功"
},
"availability": {
"candidates": [
@@ -38377,7 +38377,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"没有 message send 真实返回的 openTaskId 时不要使用;openMessageId 和会话 ID 都不能代替 openTaskId"
"没有 message send 真实返回的 openTaskId 时不要使用;openMessageId 和会话 ID 都不能代替 openTaskId;FAILED 不得当作接口成功"
]
}
],
@@ -38386,7 +38386,7 @@
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"没有 message send 真实返回的 openTaskId 时不要使用;openMessageId 和会话 ID 都不能代替 openTaskId"
"没有 message send 真实返回的 openTaskId 时不要使用;openMessageId 和会话 ID 都不能代替 openTaskId;FAILED 不得当作接口成功"
]
},
"canonical_path": {
@@ -38608,7 +38608,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"发送命令返回 openTaskId 后需要确认投递结果时"
"发送命令返回 openTaskId 后需要确认投递结果时;只有 sendStatus=SUCCESS 才能宣称消息发送成功"
]
}
],
@@ -38617,7 +38617,7 @@
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"发送命令返回 openTaskId 后需要确认投递结果时"
"发送命令返回 openTaskId 后需要确认投递结果时;只有 sendStatus=SUCCESS 才能宣称消息发送成功"
]
}
},
@@ -38767,7 +38767,7 @@
"source": "reviewed_command_registry",
"title": "查询消息发送状态",
"use_when": [
"发送命令返回 openTaskId 后需要确认投递结果时"
"发送命令返回 openTaskId 后需要确认投递结果时;只有 sendStatus=SUCCESS 才能宣称消息发送成功"
]
},
"chat.query_msg_read_status": {
@@ -43352,11 +43352,11 @@
"skills/mono/SKILL.md",
"skills/mono/references/products/chat.md"
],
"agent_summary": "移除指定消息上的表情回应",
"agent_summary": "从同一条真实消息移除此前添加的同名表情回应",
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"移除文字表情时使用 chat message remove-text-emotion"
"移除文字表情时使用 chat message remove-text-emotion;不要猜测新的消息 ID 或表情名称"
],
"canonical_path": "chat.remove_emoji_reaction",
"cli_name": "remove-emoji",
@@ -43387,14 +43387,14 @@
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": "移除指定消息上的表情回应"
"value": "从同一条真实消息移除此前添加的同名表情回应"
}
],
"precedence": "reviewed_explicit",
"resolution": "highest_precedence",
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": "移除指定消息上的表情回应"
"value": "从同一条真实消息移除此前添加的同名表情回应"
},
"availability": {
"candidates": [
@@ -43426,7 +43426,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"移除文字表情时使用 chat message remove-text-emotion"
"移除文字表情时使用 chat message remove-text-emotion;不要猜测新的消息 ID 或表情名称"
]
}
],
@@ -43435,7 +43435,7 @@
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"移除文字表情时使用 chat message remove-text-emotion"
"移除文字表情时使用 chat message remove-text-emotion;不要猜测新的消息 ID 或表情名称"
]
},
"canonical_path": {
@@ -43673,7 +43673,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"需要取消此前添加的 emoji reaction 时"
"需要取消此前添加的 emoji reaction 时;复用添加时的 conversation-id、msg-id 和 emoji"
]
}
],
@@ -43682,7 +43682,7 @@
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"需要取消此前添加的 emoji reaction 时"
"需要取消此前添加的 emoji reaction 时;复用添加时的 conversation-id、msg-id 和 emoji"
]
}
},
@@ -44414,7 +44414,7 @@
"source": "reviewed_command_registry",
"title": "移除消息的 emoji 表情回应",
"use_when": [
"需要取消此前添加的 emoji reaction 时"
"需要取消此前添加的 emoji reaction 时;复用添加时的 conversation-id、msg-id 和 emoji"
]
},
"chat.remove_group_member": {
@@ -44435,7 +44435,7 @@
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"移除机器人时使用 chat group members remove-bot"
"移除机器人时使用 chat group members remove-bot;不要把建群者或群主加入 --users,也不要为了清理成员而转让群主"
],
"canonical_path": "chat.remove_group_member",
"cli_name": "remove",
@@ -44495,7 +44495,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"移除机器人时使用 chat group members remove-bot"
"移除机器人时使用 chat group members remove-bot;不要把建群者或群主加入 --users,也不要为了清理成员而转让群主"
]
}
],
@@ -44504,7 +44504,7 @@
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"移除机器人时使用 chat group members remove-bot"
"移除机器人时使用 chat group members remove-bot;不要把建群者或群主加入 --users,也不要为了清理成员而转让群主"
]
},
"canonical_path": {
@@ -44759,7 +44759,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"群管理员明确要移除一个或多个普通成员时"
"群管理员明确要移除一个或多个普通成员时;清理临时群只传本次加入的普通成员"
]
}
],
@@ -44768,7 +44768,7 @@
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"群管理员明确要移除一个或多个普通成员时"
"群管理员明确要移除一个或多个普通成员时;清理临时群只传本次加入的普通成员"
]
}
},
@@ -45075,7 +45075,7 @@
"source": "reviewed_command_registry",
"title": "移除群成员",
"use_when": [
"群管理员明确要移除一个或多个普通成员时"
"群管理员明确要移除一个或多个普通成员时;清理临时群只传本次加入的普通成员"
]
},
"chat.remove_message_favorite": {
@@ -65014,11 +65014,11 @@
"skills/mono/references/intent-guide.md",
"skills/mono/references/products/chat.md"
],
"agent_summary": "把指定消息设为会话置顶消息",
"agent_summary": "使用同源的 openConversationId 和 openMessageId 把指定消息设为 Pin",
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"取消置顶使用 chat message unset-pin-msg"
"取消 Pin 使用 chat message unset-pin-msg;置顶到会话顶部使用 set-top-msg,置顶整个会话使用 chat set-top"
],
"canonical_path": "chat.set_pin_message",
"cli_name": "set-pin-msg",
@@ -65039,14 +65039,14 @@
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": "把指定消息设为会话置顶消息"
"value": "使用同源的 openConversationId 和 openMessageId 把指定消息设为 Pin"
}
],
"precedence": "reviewed_explicit",
"resolution": "highest_precedence",
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": "把指定消息设为会话置顶消息"
"value": "使用同源的 openConversationId 和 openMessageId 把指定消息设为 Pin"
},
"availability": {
"candidates": [
@@ -65078,7 +65078,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"取消置顶使用 chat message unset-pin-msg"
"取消 Pin 使用 chat message unset-pin-msg;置顶到会话顶部使用 set-top-msg,置顶整个会话使用 chat set-top"
]
}
],
@@ -65087,7 +65087,7 @@
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"取消置顶使用 chat message unset-pin-msg"
"取消 Pin 使用 chat message unset-pin-msg;置顶到会话顶部使用 set-top-msg,置顶整个会话使用 chat set-top"
]
},
"canonical_path": {
@@ -65309,7 +65309,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"需要在会话中置顶一条已知消息时"
"需要在会话中钉住一条已知消息时;若发送只返回 openTaskId,先确认发送终态,再从消息查询结果取得真实 openMessageId"
]
}
],
@@ -65318,7 +65318,7 @@
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"需要在会话中置顶一条已知消息时"
"需要在会话中钉住一条已知消息时;若发送只返回 openTaskId,先确认发送终态,再从消息查询结果取得真实 openMessageId"
]
}
},
@@ -65598,7 +65598,7 @@
"source": "reviewed_command_registry",
"title": "钉住消息(Pin)",
"use_when": [
"需要在会话中置顶一条已知消息时"
"需要在会话中钉住一条已知消息时;若发送只返回 openTaskId,先确认发送终态,再从消息查询结果取得真实 openMessageId"
]
},
"chat.set_top_conversation": {
@@ -87865,11 +87865,11 @@
"internal/cli/schema_hints/metadata/chat.json",
"internal/cli/schema_hints/selection/chat.json"
],
"agent_summary": "查询消息发送状态",
"agent_summary": "查询消息发送任务的业务终态,只有 sendStatus=SUCCESS 才表示真正发送成功",
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"需要该 Shortcut 未公开的底层参数、原始响应或不同执行语义时,改用对应原子命令"
"需要该 Shortcut 未公开的底层参数、原始响应或不同执行语义时,改用对应原子命令;不要把 openTaskId 当 openMessageId 做 Pin、置顶或表情操作"
],
"canonical_path": "chat.shortcut_messages_query_send_status",
"cli_name": "+messages-query-send-status",
@@ -87890,14 +87890,14 @@
"review_reason": "Agent-authored and reviewed from the built-in Shortcut intent, executable Cobra path, and declared outcome; it affects selection only and does not alter execution or safety facts.",
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": "查询消息发送状态"
"value": "查询消息发送任务的业务终态,只有 sendStatus=SUCCESS 才表示真正发送成功"
}
],
"precedence": "reviewed_explicit",
"resolution": "highest_precedence",
"review_reason": "Agent-authored and reviewed from the built-in Shortcut intent, executable Cobra path, and declared outcome; it affects selection only and does not alter execution or safety facts.",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": "查询消息发送状态"
"value": "查询消息发送任务的业务终态,只有 sendStatus=SUCCESS 才表示真正发送成功"
},
"availability": {
"candidates": [
@@ -87923,7 +87923,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"需要该 Shortcut 未公开的底层参数、原始响应或不同执行语义时,改用对应原子命令"
"需要该 Shortcut 未公开的底层参数、原始响应或不同执行语义时,改用对应原子命令;不要把 openTaskId 当 openMessageId 做 Pin、置顶或表情操作"
]
}
],
@@ -87932,7 +87932,7 @@
"review_reason": "Agent-authored and reviewed from the built-in Shortcut intent, executable Cobra path, and declared outcome; it affects selection only and does not alter execution or safety facts.",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"需要该 Shortcut 未公开的底层参数、原始响应或不同执行语义时,改用对应原子命令"
"需要该 Shortcut 未公开的底层参数、原始响应或不同执行语义时,改用对应原子命令;不要把 openTaskId 当 openMessageId 做 Pin、置顶或表情操作"
]
},
"canonical_path": {
@@ -88142,7 +88142,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"当你发消息后拿到 openTaskId、想确认这条消息是否发送成功时使用;只读返回发送状态,需传 --open-task-id。"
"当你发消息后拿到 openTaskId、想确认这条消息是否发送成功时使用;只读返回发送状态,需传 --open-task-id;FAILED 必须如实报告,不能因外层 success=true 宣称成功。"
]
}
],
@@ -88151,7 +88151,7 @@
"review_reason": "Agent-authored and reviewed from the built-in Shortcut intent, executable Cobra path, and declared outcome; it affects selection only and does not alter execution or safety facts.",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"当你发消息后拿到 openTaskId、想确认这条消息是否发送成功时使用;只读返回发送状态,需传 --open-task-id。"
"当你发消息后拿到 openTaskId、想确认这条消息是否发送成功时使用;只读返回发送状态,需传 --open-task-id;FAILED 必须如实报告,不能因外层 success=true 宣称成功。"
]
}
},
@@ -88268,7 +88268,7 @@
"source": "reviewed_command_registry",
"title": "查询消息发送状态",
"use_when": [
"当你发消息后拿到 openTaskId、想确认这条消息是否发送成功时使用;只读返回发送状态,需传 --open-task-id。"
"当你发消息后拿到 openTaskId、想确认这条消息是否发送成功时使用;只读返回发送状态,需传 --open-task-id;FAILED 必须如实报告,不能因外层 success=true 宣称成功。"
]
},
"chat.shortcut_messages_read_status": {
@@ -101127,11 +101127,11 @@
"skills/mono/references/intent-guide.md",
"skills/mono/references/products/chat.md"
],
"agent_summary": "取消指定消息的会话置顶",
"agent_summary": "使用设置 Pin 时的同源会话和消息 ID 取消指定消息的 Pin",
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"新增置顶使用 chat message set-pin-msg"
"新增 Pin 使用 chat message set-pin-msg;不要改用 unset-top-msg 或 chat set-top --off"
],
"canonical_path": "chat.unset_pin_message",
"cli_name": "unset-pin-msg",
@@ -101152,14 +101152,14 @@
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": "取消指定消息的会话置顶"
"value": "使用设置 Pin 时的同源会话和消息 ID 取消指定消息的 Pin"
}
],
"precedence": "reviewed_explicit",
"resolution": "highest_precedence",
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": "取消指定消息的会话置顶"
"value": "使用设置 Pin 时的同源会话和消息 ID 取消指定消息的 Pin"
},
"availability": {
"candidates": [
@@ -101191,7 +101191,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"新增置顶使用 chat message set-pin-msg"
"新增 Pin 使用 chat message set-pin-msg;不要改用 unset-top-msg 或 chat set-top --off"
]
}
],
@@ -101200,7 +101200,7 @@
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"新增置顶使用 chat message set-pin-msg"
"新增 Pin 使用 chat message set-pin-msg;不要改用 unset-top-msg 或 chat set-top --off"
]
},
"canonical_path": {
@@ -101422,7 +101422,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"需要移除一条已知置顶消息时"
"需要移除一条已知 Pin 消息时;复用 set-pin-msg 成功时的 openConversationId 和 openMessageId"
]
}
],
@@ -101431,7 +101431,7 @@
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"需要移除一条已知置顶消息时"
"需要移除一条已知 Pin 消息时;复用 set-pin-msg 成功时的 openConversationId 和 openMessageId"
]
}
},
@@ -101711,7 +101711,7 @@
"source": "reviewed_command_registry",
"title": "取消钉住消息(Unpin)",
"use_when": [
"需要移除一条已知置顶消息时"
"需要移除一条已知 Pin 消息时;复用 set-pin-msg 成功时的 openConversationId 和 openMessageId"
]
},
"chat.unset_top_message": {
@@ -104378,7 +104378,7 @@
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"没有真实可用 mediaId 时先完成媒体上传"
"本地图片路径、钉盘 dentryId、聊天文件 uploadKey 都不能代替 icon-media-id;当前 CLI 无本地图片转群头像 mediaId 的能力,缺少 mediaId 时应如实报告能力边界"
],
"canonical_path": "chat.update_group_icon",
"cli_name": "update-icon",
@@ -104438,7 +104438,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"没有真实可用 mediaId 时先完成媒体上传"
"本地图片路径、钉盘 dentryId、聊天文件 uploadKey 都不能代替 icon-media-id;当前 CLI 无本地图片转群头像 mediaId 的能力,缺少 mediaId 时应如实报告能力边界"
]
}
],
@@ -104447,7 +104447,7 @@
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"没有真实可用 mediaId 时先完成媒体上传"
"本地图片路径、钉盘 dentryId、聊天文件 uploadKey 都不能代替 icon-media-id;当前 CLI 无本地图片转群头像 mediaId 的能力,缺少 mediaId 时应如实报告能力边界"
]
},
"canonical_path": {
@@ -104669,7 +104669,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"已有上传后的头像 mediaId 并要修改群头像时"
"已有可用于群头像接口的真实 mediaId 并要修改群头像时"
]
}
],
@@ -104678,7 +104678,7 @@
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"已有上传后的头像 mediaId 并要修改群头像时"
"已有可用于群头像接口的真实 mediaId 并要修改群头像时"
]
}
},
@@ -105000,7 +105000,7 @@
"source": "reviewed_command_registry",
"title": "更新群头像",
"use_when": [
"已有上传后的头像 mediaId 并要修改群头像时"
"已有可用于群头像接口的真实 mediaId 并要修改群头像时"
]
},
"chat.update_group_name": {
@@ -106217,7 +106217,7 @@
"agent_summary_source": "dws-agent-selection/chat",
"availability": "available",
"avoid_when": [
"全员禁言和成员禁言使用专门的 mute 命令"
"全员禁言和成员禁言使用专门的 mute 命令;当前用户自己的会话置顶或免打扰使用 group user-settings set"
],
"canonical_path": "chat.update_group_settings",
"cli_name": "update-settings",
@@ -106277,7 +106277,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"全员禁言和成员禁言使用专门的 mute 命令"
"全员禁言和成员禁言使用专门的 mute 命令;当前用户自己的会话置顶或免打扰使用 group user-settings set"
]
}
],
@@ -106286,7 +106286,7 @@
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"全员禁言和成员禁言使用专门的 mute 命令"
"全员禁言和成员禁言使用专门的 mute 命令;当前用户自己的会话置顶或免打扰使用 group user-settings set"
]
},
"canonical_path": {
@@ -106508,7 +106508,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"需要调整 searchable、入群验证或群权限等设置时"
"需要调整 searchable、入群验证、@所有人权限等群级设置时;修改后用群信息或设置查询核对终态"
]
}
],
@@ -106517,7 +106517,7 @@
"review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。",
"source": "internal/cli/schema_hints/selection/chat.json",
"value": [
"需要调整 searchable、入群验证或群权限等设置时"
"需要调整 searchable、入群验证、@所有人权限等群级设置时;修改后用群信息或设置查询核对终态"
]
}
},
@@ -106921,7 +106921,7 @@
"source": "reviewed_command_registry",
"title": "更新群设置",
"use_when": [
"需要调整 searchable、入群验证或群权限等设置时"
"需要调整 searchable、入群验证、@所有人权限等群级设置时;修改后用群信息或设置查询核对终态"
]
},
"chat.update_notification_off": {
@@ -27242,6 +27242,7 @@
"agent_summary_source": "dws-agent-selection/drive",
"availability": "available",
"avoid_when": [
"用户要把文件发送到群聊或单聊时使用 chat message send --msg-type file --file-path;drive upload 不会发送聊天消息",
"常规场景不要拆成 upload-info + 手动 PUT + commit;仅自定义流式上传才用三步",
"要把文件作为文档正文附件插入改用 dws doc media insert",
"用户明确说文档空间且走 doc 兼容入口时可用 dws doc upload,默认仍推荐本命令",
@@ -27303,6 +27304,7 @@
"selected": true,
"source": "internal/cli/schema_hints/selection/drive.json",
"value": [
"用户要把文件发送到群聊或单聊时使用 chat message send --msg-type file --file-path;drive upload 不会发送聊天消息",
"常规场景不要拆成 upload-info + 手动 PUT + commit;仅自定义流式上传才用三步",
"要把文件作为文档正文附件插入改用 dws doc media insert",
"用户明确说文档空间且走 doc 兼容入口时可用 dws doc upload,默认仍推荐本命令",
@@ -27315,6 +27317,7 @@
"review_reason": "人工审阅:结合本机 dws schema 实时 MCP description/parameters(经 interface_ref)、产品 Skill、Cobra Long 与 Runtime 确认门禁,按飞书风格重写选型文案;不改变命令身份、参数契约或接口绑定。",
"source": "internal/cli/schema_hints/selection/drive.json",
"value": [
"用户要把文件发送到群聊或单聊时使用 chat message send --msg-type file --file-path;drive upload 不会发送聊天消息",
"常规场景不要拆成 upload-info + 手动 PUT + commit;仅自定义流式上传才用三步",
"要把文件作为文档正文附件插入改用 dws doc media insert",
"用户明确说文档空间且走 doc 兼容入口时可用 dws doc upload,默认仍推荐本命令",
@@ -27585,6 +27588,7 @@
"source": "internal/cli/schema_hints/selection/drive.json",
"value": [
"用户要把本地文件上传到钉盘/我的文件(首选一条命令自动完成凭证+PUT+提交)时",
"用户明确要求只上传或暂存附件、暂时不要发送到任何聊天会话时",
"上传到知识库/文档空间时加 --workspace;需要转在线文档时加 --convert",
"用户明确要求用本地文件替换已有钉盘/文档空间文件时传 --node;该模式会覆盖远端内容并要求确认"
]
@@ -27596,6 +27600,7 @@
"source": "internal/cli/schema_hints/selection/drive.json",
"value": [
"用户要把本地文件上传到钉盘/我的文件(首选一条命令自动完成凭证+PUT+提交)时",
"用户明确要求只上传或暂存附件、暂时不要发送到任何聊天会话时",
"上传到知识库/文档空间时加 --workspace;需要转在线文档时加 --convert",
"用户明确要求用本地文件替换已有钉盘/文档空间文件时传 --node;该模式会覆盖远端内容并要求确认"
]
@@ -28319,6 +28324,7 @@
"title": "上传本地文件到钉盘或文档空间",
"use_when": [
"用户要把本地文件上传到钉盘/我的文件(首选一条命令自动完成凭证+PUT+提交)时",
"用户明确要求只上传或暂存附件、暂时不要发送到任何聊天会话时",
"上传到知识库/文档空间时加 --workspace;需要转在线文档时加 --convert",
"用户明确要求用本地文件替换已有钉盘/文档空间文件时传 --node;该模式会覆盖远端内容并要求确认"
]
+28 -28
View File
@@ -29,12 +29,12 @@
]
},
"chat.add_emoji_reaction": {
"agent_summary": "给指定消息添加表情回应",
"agent_summary": "使用同一会话中真实的 openMessageId 给指定消息添加表情回应",
"use_when": [
"需要对已有消息添加一个 emoji reaction 时"
"需要对已有消息添加一个 emoji reaction 时;conversation-id 与 msg-id 必须来自同一条真实消息"
],
"avoid_when": [
"发送文本消息或文字表情时不要使用"
"发送文本消息或文字表情时不要使用;不要把 openTaskId 当作 msg-id"
],
"examples": [
"dws chat message add-emoji --conversation-id <openConversationId> --msg-id <openMessageId> --emoji \"赞\""
@@ -658,12 +658,12 @@
]
},
"chat.query_message_send_status": {
"agent_summary": "查询异步消息发送任务的状态",
"agent_summary": "查询异步消息发送任务的业务终态,并按 sendStatus 判断是否真正投递成功",
"use_when": [
"发送命令返回 openTaskId 后需要确认投递结果时"
"发送命令返回 openTaskId 后需要确认投递结果时;只有 sendStatus=SUCCESS 才能宣称消息发送成功"
],
"avoid_when": [
"没有 message send 真实返回的 openTaskId 时不要使用;openMessageId 和会话 ID 都不能代替 openTaskId"
"没有 message send 真实返回的 openTaskId 时不要使用;openMessageId 和会话 ID 都不能代替 openTaskId;FAILED 不得当作接口成功"
],
"examples": [
"dws chat message query-send-status --open-task-id <openTaskId>"
@@ -802,12 +802,12 @@
]
},
"chat.remove_emoji_reaction": {
"agent_summary": "移除指定消息上的表情回应",
"agent_summary": "从同一条真实消息移除此前添加的同名表情回应",
"use_when": [
"需要取消此前添加的 emoji reaction 时"
"需要取消此前添加的 emoji reaction 时;复用添加时的 conversation-id、msg-id 和 emoji"
],
"avoid_when": [
"移除文字表情时使用 chat message remove-text-emotion"
"移除文字表情时使用 chat message remove-text-emotion;不要猜测新的消息 ID 或表情名称"
],
"examples": [
"dws chat message remove-emoji --conversation-id <openConversationId> --msg-id <openMessageId> --emoji \"赞\""
@@ -824,10 +824,10 @@
"chat.remove_group_member": {
"agent_summary": "从指定群聊移除成员",
"use_when": [
"群管理员明确要移除一个或多个普通成员时"
"群管理员明确要移除一个或多个普通成员时;清理临时群只传本次加入的普通成员"
],
"avoid_when": [
"移除机器人时使用 chat group members remove-bot"
"移除机器人时使用 chat group members remove-bot;不要把建群者或群主加入 --users,也不要为了清理成员而转让群主"
],
"examples": [
"dws chat group members remove --id <openConversationId> --users userId1,userId2"
@@ -1236,12 +1236,12 @@
]
},
"chat.set_pin_message": {
"agent_summary": "把指定消息设为会话置顶消息",
"agent_summary": "使用同源的 openConversationId 和 openMessageId 把指定消息设为 Pin",
"use_when": [
"需要在会话中置顶一条已知消息时"
"需要在会话中钉住一条已知消息时;若发送只返回 openTaskId,先确认发送终态,再从消息查询结果取得真实 openMessageId"
],
"avoid_when": [
"取消置顶使用 chat message unset-pin-msg"
"取消 Pin 使用 chat message unset-pin-msg;置顶到会话顶部使用 set-top-msg,置顶整个会话使用 chat set-top"
],
"examples": [
"dws chat message set-pin-msg --open-conversation-id <openConversationId> --msg-id <openMessageId>"
@@ -1316,12 +1316,12 @@
]
},
"chat.unset_pin_message": {
"agent_summary": "取消指定消息的会话置顶",
"agent_summary": "使用设置 Pin 时的同源会话和消息 ID 取消指定消息的 Pin",
"use_when": [
"需要移除一条已知置顶消息时"
"需要移除一条已知 Pin 消息时;复用 set-pin-msg 成功时的 openConversationId 和 openMessageId"
],
"avoid_when": [
"新增置顶使用 chat message set-pin-msg"
"新增 Pin 使用 chat message set-pin-msg;不要改用 unset-top-msg 或 chat set-top --off"
],
"examples": [
"dws chat message unset-pin-msg --open-conversation-id <openConversationId> --msg-id <openMessageId>"
@@ -1378,10 +1378,10 @@
"chat.update_group_icon": {
"agent_summary": "使用真实媒体 ID 更新群头像",
"use_when": [
"已有上传后的头像 mediaId 并要修改群头像时"
"已有可用于群头像接口的真实 mediaId 并要修改群头像时"
],
"avoid_when": [
"没有真实可用 mediaId 时先完成媒体上传"
"本地图片路径、钉盘 dentryId、聊天文件 uploadKey 都不能代替 icon-media-id;当前 CLI 无本地图片转群头像 mediaId 的能力,缺少 mediaId 时应如实报告能力边界"
],
"examples": [
"dws chat group update-icon --group <openConversationId> --icon-media-id @mediaId"
@@ -1418,10 +1418,10 @@
"chat.update_group_settings": {
"agent_summary": "更新指定群聊的一项设置开关",
"use_when": [
"需要调整 searchable、入群验证或群权限等设置时"
"需要调整 searchable、入群验证、@所有人权限等群级设置时;修改后用群信息或设置查询核对终态"
],
"avoid_when": [
"全员禁言和成员禁言使用专门的 mute 命令"
"全员禁言和成员禁言使用专门的 mute 命令;当前用户自己的会话置顶或免打扰使用 group user-settings set"
],
"examples": [
"dws chat group update-settings --group <openConversationId> --setting-key searchable --status 1"
@@ -2845,12 +2845,12 @@
]
},
"chat.shortcut_messages_query_send_status": {
"agent_summary": "查询消息发送状态",
"agent_summary": "查询消息发送任务的业务终态,只有 sendStatus=SUCCESS 才表示真正发送成功",
"use_when": [
"当你发消息后拿到 openTaskId、想确认这条消息是否发送成功时使用;只读返回发送状态,需传 --open-task-id。"
"当你发消息后拿到 openTaskId、想确认这条消息是否发送成功时使用;只读返回发送状态,需传 --open-task-id;FAILED 必须如实报告,不能因外层 success=true 宣称成功。"
],
"avoid_when": [
"需要该 Shortcut 未公开的底层参数、原始响应或不同执行语义时,改用对应原子命令"
"需要该 Shortcut 未公开的底层参数、原始响应或不同执行语义时,改用对应原子命令;不要把 openTaskId 当 openMessageId 做 Pin、置顶或表情操作"
],
"examples": [
"dws chat +messages-query-send-status --open-task-id <openTaskId>"
@@ -3142,10 +3142,10 @@
"chat.batch_query_group_chat_settings": {
"agent_summary": "批量查询当前用户自己的群会话设置(置顶/免打扰/群昵称/群备注)",
"use_when": [
"用户说 看下这些群我的置顶和免打扰设置"
"用户说看下这些群中我自己的置顶和免打扰设置;修改前先查询并保存原值用于恢复"
],
"avoid_when": [
"管理员级群功能开关用 chat group update-settings"
"管理员级群功能开关用 chat group update-settings;查询结果是当前用户视角,不代表群级设置"
],
"examples": [
"dws chat group user-settings query --groups cid1,cid2 --format json"
@@ -3161,10 +3161,10 @@
"chat.batch_update_group_chat_settings": {
"agent_summary": "批量更新当前用户自己的群会话设置(置顶/免打扰/群昵称/群备注)",
"use_when": [
"用户说 把这些群都设为免打扰/置顶"
"用户说把这些群都设为免打扰或置顶;items 中只写需要改变的当前用户设置,完成后再次 query 验证"
],
"avoid_when": [
"单个群昵称优先 chat group update-nick"
"单个群昵称优先 chat group update-nick;不要用本命令修改 searchable、@所有人权限等群级开关;临时测试结束时按修改前 query 的真实值恢复"
],
"examples": [
"dws chat group user-settings set --items '[{\"openConversationId\":\"cid1\",\"top\":true,\"mute\":false}]' --format json"
@@ -910,10 +910,12 @@
"agent_summary": "上传本地文件到钉盘或文档空间,或按节点 ID 确认覆盖已有文件",
"use_when": [
"用户要把本地文件上传到钉盘/我的文件(首选一条命令自动完成凭证+PUT+提交)时",
"用户明确要求只上传或暂存附件、暂时不要发送到任何聊天会话时",
"上传到知识库/文档空间时加 --workspace;需要转在线文档时加 --convert",
"用户明确要求用本地文件替换已有钉盘/文档空间文件时传 --node;该模式会覆盖远端内容并要求确认"
],
"avoid_when": [
"用户要把文件发送到群聊或单聊时使用 chat message send --msg-type file --file-path;drive upload 不会发送聊天消息",
"常规场景不要拆成 upload-info + 手动 PUT + commit;仅自定义流式上传才用三步",
"要把文件作为文档正文附件插入改用 dws doc media insert",
"用户明确说文档空间且走 doc 兼容入口时可用 dws doc upload,默认仍推荐本命令",
+6 -3
View File
@@ -462,9 +462,12 @@ func guardGroupOwnerRemoval(ctx context.Context, openConversationID string, remo
if err != nil || ownerOpenID == "" {
return nil
}
ownerErr := fmt.Errorf(
"refusing to remove the group owner: 被移除列表包含群主,移出群主将导致群无群主(孤儿群)\n hint: 先执行 dws chat group transfer-owner --group %s --user <newOwnerUserId> 转让群主后再移除",
openConversationID,
ownerErr := apperrors.NewValidation(
"被移除列表包含群主,不能直接移出群主",
apperrors.WithReason("group_owner_in_remove_list"),
apperrors.WithHint("清理临时群成员时应从 --users 中移除群主,只移除本次加入的普通成员;只有用户明确要求变更群主时才单独执行 transfer-owner。"),
apperrors.WithActions("从 --users 中移除群主后重试", "若用户明确要求转让群主,先确认新群主再单独执行 transfer-owner"),
apperrors.WithExamples(fmt.Sprintf("dws chat group members remove --id %s --users <普通成员userId列表> --format json", openConversationID)),
)
userIDs, openDingTalkIDs := splitChatIDValues(removeValues)
for _, id := range openDingTalkIDs {
+8 -1
View File
@@ -10,6 +10,7 @@ import (
"strings"
"testing"
apperrors "github.com/DingTalk-Real-AI/dingtalk-workspace-cli/internal/errors"
"github.com/spf13/cobra"
)
@@ -406,7 +407,13 @@ func TestCrossPlatformCoverageGuardGroupOwnerRemovalCoverage(t *testing.T) {
t.Run(tc.name, func(t *testing.T) {
caller := &scriptedToolCaller{steps: tc.steps}
installScriptedCaller(t, caller)
_ = guardGroupOwnerRemoval(context.Background(), "group", tc.remove)
err := guardGroupOwnerRemoval(context.Background(), "group", tc.remove)
if tc.name == "owner-open" {
var typed *apperrors.Error
if !errors.As(err, &typed) || typed.Reason != "group_owner_in_remove_list" || !strings.Contains(typed.Hint, "从 --users 中移除群主") || strings.Contains(typed.Hint, "先执行 dws chat group transfer-owner") {
t.Fatalf("owner removal hint = %v", err)
}
}
})
}
caller := &scriptedToolCaller{steps: []scriptedToolStep{{text: `{}`}}}