@sokeai/cli 1.0.73 → 1.0.75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/package.json +1 -1
  2. package/scripts/build-binaries.sh +12 -0
  3. package/scripts/release.sh +50 -1
  4. package/skills/SKILL.md +1 -1
  5. package/skills/ai-coach-director/SKILL.md +379 -45
  6. package/skills/ai-coach-director/coaching/prompt-engineer/parts/part2-roles.md +8 -8
  7. package/skills/ai-coach-director/coaching/prompt-engineer/prompt-engineer.md +70 -43
  8. package/skills/ai-coach-director/platform/adapters/README.md +68 -0
  9. package/skills/ai-coach-director/platform/adapters/qclaw.md +67 -0
  10. package/skills/ai-coach-director/platform/adapters/workbuddy.md +45 -0
  11. package/skills/ai-coach-director/platform/adapters/wukong.md +70 -0
  12. package/skills/ai-coach-director/platform/adapters/zework.md +89 -0
  13. package/skills/ai-coach-director/platform/api-fallback.md +262 -0
  14. package/skills/ai-coach-director/platform/interaction.md +13 -10
  15. package/skills/ai-coach-director/platform/publish-gate.md +44 -0
  16. package/skills/ai-coach-director/platform/resource-finalizer.md +128 -0
  17. package/skills/ai-coach-director/platform/sync-engine.md +217 -90
  18. package/skills/ai-coach-director/references/env-check.md +46 -11
  19. package/skills/ai-coach-director/references/platform-api-pitfalls.md +15 -1
  20. package/skills/ai-coach-director/references/role-resource-matching.md +53 -16
  21. package/skills/ai-coach-director/references/verified-cli-cheatsheet.md +26 -12
  22. package/skills/soke-cli/345/256/211/350/243/205/346/214/207/345/215/227.md +45 -7
  23. package/skills/soke-course/soke-cli/345/256/211/350/243/205/346/214/207/345/215/227.md +44 -6
  24. package/skills/soke-exam-question-pool/SKILL.md +76 -45
  25. package/skills/soke-learning-map/soke-cli/345/256/211/350/243/205/346/214/207/345/215/227.md +45 -7
  26. package/skills/soke-task/SKILL.md +29 -9
  27. package/skills/ai-coach-director/.learnings/LEARNINGS.md +0 -71
@@ -1,35 +1,37 @@
1
1
  ---
2
2
  name: soke-exam-question-pool
3
- summary: 授客可练习题库查询(题库列表、题库详情、题目列表),通过 soke-cli exam-question-pool 命令操作
4
- version: 1.0.0
5
- description: "授客可练习题库查询:按 examQuestionPool 接口链路先查询题库列表,再用题库 uuid 查询详情和题目列表。当用户需要查看可练习题库、题库详情、题目内容、答案和解析时使用。 | Soke question pool lookup: use the examQuestionPool API flow to list pools, get pool detail, and list questions."
3
+ summary: 授客可练习题库(题库列表、题库详情、题目列表、题库练习交卷),通过 soke-cli exam-question-pool 命令操作
4
+ version: 1.1.0
5
+ description: "授客可练习题库:按 examQuestionPool 接口链路先查询题库列表,再用题库 uuid 查询详情、题目列表,可进行题库练习交卷。当用户需要查看可练习题库、题库详情、题目内容、答案和解析,或提交题库练习交卷时使用。 | Soke question pool: use the examQuestionPool API flow to list pools, get pool detail, list questions, and finish a practice session."
6
6
  metadata:
7
7
  requires:
8
8
  bins: ["soke-cli"]
9
9
  cliHelp: "soke-cli exam-question-pool --help"
10
10
  ---
11
11
 
12
- # 可练习题库查询 (examQuestionPool)
12
+ # 可练习题库 (examQuestionPool)
13
13
 
14
14
  **CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../soke-shared/SKILL.md`](../soke-shared/SKILL.md),其中包含认证、配置、权限处理**
15
15
 
16
16
  ## 核心链路
17
17
 
18
- 这组命令对接 `/skills/examQuestionPool/...` 接口。调用顺序必须固定:
18
+ 这组命令对接 `/skills/examQuestionPool/...` 接口。推荐调用顺序:
19
19
 
20
- 1. `+list` 获取题库列表,从 `data.list[].uuid` 取题库 UUID。
21
- 2. `+get --pool-id <uuid>` 查询详情,确认 `data.info.uuid` 与传入 `pool-id` 一致。
20
+ 1. `+list` 获取题库列表,从默认输出的 `uuid` 取题库 UUID。
21
+ 2. `+get --pool-id <uuid>` 查询详情,确认题库列表的 `uuid` 与传入 `pool-id` 一致。
22
22
  3. `+questions --pool-id <uuid>` 使用同一个 `pool-id` 查询题目。
23
+ 4. `+finish --pool-id <uuid> --answers '<答案JSON>'` 进行题库练习交卷。
23
24
 
24
- `--page`、`--page-size`、`--status` 只用于第一步列表分页和筛选,不要传给详情或题目查询。
25
+ `--page`、`--page-size` 用于第一步题库列表分页查询。
25
26
 
26
27
  ## Shortcuts 总览
27
28
 
28
29
  | Shortcut | 说明 |
29
30
  |----------|------|
30
- | `+list` | 获取可练习题库列表,返回后续 `pool-id` 所需的 `uuid` |
31
+ | `+list` | 获取可练习题库列表,返回后续 `pool-id` 所需的题库 `uuid` |
31
32
  | `+get` | 根据题库 `pool-id` 获取可练习题库详情 |
32
- | `+questions` | 根据同一个 `pool-id` 获取题库题目 |
33
+ | `+questions` | 根据 `pool-id`(题库id),即题库列表的 `uuid`,获取题库题目 |
34
+ | `+finish` | 根据 `pool-id` 进行题库练习交卷 |
33
35
 
34
36
  ## +list
35
37
 
@@ -38,25 +40,23 @@ metadata:
38
40
  ```bash
39
41
  soke-cli exam-question-pool +list \
40
42
  --page 1 \
41
- --page-size 10 \
42
- --status 1 \
43
- --format json
43
+ --page-size 10
44
44
  ```
45
45
 
46
46
  | 参数 | 必需 | 说明 |
47
47
  |------|------|------|
48
48
  | `--page` | 否 | 页码,从 1 开始,默认 1 |
49
49
  | `--page-size` | 否 | 每页条数,默认 10 |
50
- | `--status` | 否 | 状态筛选,`1` 表示启用 |
51
50
 
52
- 关键返回字段:
51
+ 默认输出为横向单行文本,每条题库数据显示:
53
52
 
54
53
  | 字段 | 说明 |
55
54
  |------|------|
56
- | `data.list[].uuid` | 题库 UUID,后续作为 `--pool-id` |
57
- | `data.list[].title` | 题库标题 |
58
- | `data.list[].question_count` | 题目数量 |
59
- | `data.list[].category_title` | 分类名称 |
55
+ | `uuid` | 题库 UUID,后续作为 `--pool-id` |
56
+ | `title` | 题库标题 |
57
+ | `description` | 题库描述,默认会清理简单 HTML 标签和换行 |
58
+ | `题目数量` | 来自 `question_count` |
59
+ | `创建时间` | 来自 `create_exercise_time` |
60
60
 
61
61
  ## +get
62
62
 
@@ -64,25 +64,24 @@ soke-cli exam-question-pool +list \
64
64
 
65
65
  ```bash
66
66
  soke-cli exam-question-pool +get \
67
- --pool-id "<上一步 data.list[].uuid>" \
68
- --format json
67
+ --pool-id "<上一步题库列表的 uuid,即题库id>"
69
68
  ```
70
69
 
71
70
  | 参数 | 必需 | 说明 |
72
71
  |------|------|------|
73
- | `--pool-id` | 是 | 题库 ID,必须来自 `+list` `data.list[].uuid` |
72
+ | `--pool-id` | 是 | 题库 ID,必须来自 `+list` 默认输出中的 `uuid` |
74
73
 
75
- 关键返回字段:
74
+ 默认输出为横向单行文本,题库详情数据:
76
75
 
77
76
  | 字段 | 说明 |
78
77
  |------|------|
79
- | `data.info.uuid` | 题库 UUID,应与请求 `--pool-id` 一致 |
80
- | `data.info.title` | 题库标题 |
81
- | `data.all_count` | 题库总题数 |
82
- | `data.point` | 积分配置 |
83
- | `data.examPoolUser` | 当前用户在题库中的状态 |
84
- | `data.question_url` | 题库题目 JSON 地址 |
85
- | `data.answer_url` | 题库答案 JSON 地址 |
78
+ | `uuid` | 题库 UUID,应与请求 `--pool-id` 一致 |
79
+ | `title` | 题库标题 |
80
+ | `description` | 题库描述,默认会清理简单 HTML 标签和换行 |
81
+ | `题目数量` | 来自 `question_count` |
82
+ | `创建时间` | 来自 `create_exercise_time` |
83
+ | `总题数` | 来自 `data.all_count` |
84
+
86
85
 
87
86
  ## +questions
88
87
 
@@ -90,35 +89,67 @@ soke-cli exam-question-pool +get \
90
89
 
91
90
  ```bash
92
91
  soke-cli exam-question-pool +questions \
93
- --pool-id "<同一个题库 uuid>" \
94
- --format json
92
+ --pool-id "<题库列表的 uuid,即题库id>"
95
93
  ```
96
94
 
97
95
  | 参数 | 必需 | 说明 |
98
96
  |------|------|------|
99
97
  | `--pool-id` | 是 | 题库 ID,复用列表或详情中的同一个 UUID |
100
98
 
101
- 关键返回字段:
99
+ 默认输出为 JSON,是题目数据本身。
100
+
101
+ 关键字段:
102
102
 
103
103
  | 字段 | 说明 |
104
104
  |------|------|
105
- | `data.pool_id` | 题库 ID,应与请求 `--pool-id` 一致 |
106
- | `data.content[].uuid` | 题目 UUID |
107
- | `data.content[].title` | 题目标题 |
108
- | `data.content[].type` | 题目类型 |
109
- | `data.content[].choices` | 选项列表 |
110
- | `data.content[].show_answer` | 展示答案 |
111
- | `data.content[].analysis` | 题目解析 |
105
+ | `uuid` | 题目 UUID |
106
+ | `title` | 题目标题 |
107
+ | `type` | 题目类型 |
108
+ | `choices` | 选项列表 |
109
+ | `show_answer` | 展示答案 |
110
+ | `analysis` | 题目解析 |
112
111
 
113
112
  ## 推荐操作顺序
114
113
 
115
114
  ```bash
116
- # 1. 查询题库列表,取 data.list[0].uuid
117
- soke-cli exam-question-pool +list --page 1 --page-size 10 --status 1 --format json
115
+ # 1. 查询题库列表,取输出中的 uuid
116
+ soke-cli exam-question-pool +list --page 1 --page-size 10
118
117
 
119
118
  # 2. 查询题库详情
120
- soke-cli exam-question-pool +get --pool-id "<pool_uuid>" --format json
119
+ soke-cli exam-question-pool +get --pool-id "<pool_uuid>"
120
+
121
+ # 3. 查询同一题库的题目列表
122
+ soke-cli exam-question-pool +questions --pool-id "<pool_uuid>"
121
123
 
122
- # 3. 查询同一题库的题目
123
- soke-cli exam-question-pool +questions --pool-id "<pool_uuid>" --format json
124
+ # 4. 题库练习交卷
125
+ soke-cli exam-question-pool +finish \
126
+ --pool-id "<pool_uuid>" \
127
+ --answers '{"<question_uuid>":[0,1]}'
124
128
  ```
129
+
130
+ ## +finish
131
+
132
+ 提交可练习题库练习交卷。
133
+
134
+ ```bash
135
+ soke-cli exam-question-pool +finish \
136
+ --pool-id "70DE9AFB-1C18-4F5C-B158-E25182ECBE1A" \
137
+ --answers '{"A93647C7-7ECF-44D6-931D-DE84344DA580":["1","1","1"],"0E7E8283-EB5F-489C-9778-34A9B2F13BA7":[0]}'
138
+ ```
139
+
140
+ | 参数 | 必需 | 说明 |
141
+ |------|------|------|
142
+ | `--pool-id` | 是 | 题库 ID,复用列表或详情中的同一个 UUID |
143
+ | `--answers` | 是 | 答案 JSON 原文,key 为题目 ID,数组为答题选项 |
144
+
145
+ `--answers` 会加密之后进行传输。
146
+
147
+ 返回结果默认展示:
148
+
149
+ | 字段 | 说明 |
150
+ |------|------|
151
+ | `rightCount` | 答对题目数 |
152
+ | `allCount` | 全部题目数量 |
153
+ | `rate` | 题库练习进度 |
154
+
155
+ 默认输出示例:`题库id:70DE9AFB-1C18-4F5C-B158-E25182ECBE1A,答对题目数:2,全部题目数量:0,题库练习进度:0%`。使用 `--format json` 时输出接口原始字段。
@@ -121,7 +121,7 @@ soke-cli --version
121
121
  # 预期输出: soke-cli version x.x.x
122
122
  ```
123
123
 
124
- 如果显示版本号,说明安装成功 ✅。
124
+ 如果显示版本号,说明基础安装成功。完成后续登录授权后,请继续运行 `soke-cli doctor` 做完整健康检查,确保配置、登录态、日志目录和网络连通性都可用。
125
125
 
126
126
  **如果 `which soke-cli` 无输出**,说明 PATH 未生效:
127
127
  - macOS/Linux: 确认 `echo $PATH | tr ':' '\n' | grep npm-global` 有输出,若没有请重新执行第二步
@@ -212,9 +212,47 @@ soke-cli auth logout
212
212
 
213
213
  ## 验证安装
214
214
 
215
- 完成登录授权后,让我们验证一切是否正常工作。
215
+ 完成登录授权后,让我们验证一切是否正常工作。推荐先运行 `doctor`,它会一次性检查 CLI 版本、配置文件、登录态、日志目录和网络连通性。
216
216
 
217
- ### 1. 查看配置信息
217
+ ### 1. 运行健康检查
218
+
219
+ ```bash
220
+ soke-cli doctor
221
+ ```
222
+
223
+ 正常情况下会看到类似输出:
224
+ ```text
225
+ pass cli_version x.x.x
226
+ pass config /Users/你的用户名/.soke-cli/config.json
227
+ pass auth login data looks valid locally
228
+ pass logs /Users/你的用户名/.soke-cli/logs
229
+ pass network https://opendev.soke.cn reachable (123ms)
230
+ ```
231
+
232
+ 如果任意检查项显示 `fail`,请根据同一行或下一行的 `hint` 提示处理。常见情况:
233
+ - `config` 或 `auth` 失败:重新执行 `soke-cli auth login`
234
+ - `logs` 失败:检查 `~/.soke-cli` 或 `SOKE_CLI_LOG_DIR` 的写入权限
235
+ - `network` 失败:检查网络连接或代理设置
236
+
237
+ 需要机器可读输出时,可以使用 JSON 格式:
238
+
239
+ ```bash
240
+ soke-cli doctor --format json
241
+ ```
242
+
243
+ 如果当前环境不能访问外网,只想检查本地安装、配置、登录态和日志目录,可以跳过网络检查:
244
+
245
+ ```bash
246
+ soke-cli doctor --offline
247
+ ```
248
+
249
+ 网络较慢时可以调大超时时间:
250
+
251
+ ```bash
252
+ soke-cli doctor --timeout 30
253
+ ```
254
+
255
+ ### 2. 查看配置信息
218
256
 
219
257
  ```bash
220
258
  soke-cli config show
@@ -232,9 +270,9 @@ soke-cli config show
232
270
  token过期时间: 2026-10-17 12:00:00
233
271
  ```
234
272
 
235
- > 💡 **说明**: `app_key` 和 `app_secret` 在当前版本中不需要手动配置,授权流程会自动处理所有必要的认证信息。
273
+ > 💡 **说明**: `app_key` 和 `app_secret` 在当前版本中不需要手动配置,授权流程会自动处理所有必要的认证信息。如果 `doctor` 已全部通过,这一步主要用于人工确认当前登录的企业和用户信息。
236
274
 
237
- ### 2. 测试 API 调用
275
+ ### 3. 测试 API 调用
238
276
 
239
277
  尝试调用一个简单的 API:
240
278
 
@@ -244,7 +282,7 @@ soke-cli api GET /users/me
244
282
 
245
283
  如果返回你的用户信息(JSON 格式),说明一切配置正确!
246
284
 
247
- ### 3. 使用业务命令
285
+ ### 4. 使用业务命令
248
286
 
249
287
  尝试使用一个业务快捷命令,例如查看考试列表:
250
288
 
@@ -413,4 +451,4 @@ npx skills add liuchenlong1111/soke-cli -y -g
413
451
 
414
452
  ---
415
453
 
416
- **祝你使用愉快!** 🎉
454
+ **祝你使用愉快!** 🎉
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  name: soke-task
3
- summary: 授客学堂异步任务管理(创建任务/查询任务),支持学习地图学员统计导出
3
+ summary: 授客学堂异步任务管理(创建任务/查询任务),支持学习地图学员统计报表和统计生成
4
4
  version: 1.0.0
5
- description: "授客学堂异步任务管理:通过独立 task 命令创建和查询异步导出任务。目前支持学习地图学员统计导出任务,按“创建任务 -> 获取 data.id -> 查询任务详情和 filePath”的流程使用。当用户需要导出学习地图学员统计、查询导出任务状态、获取导出文件下载地址时使用。 | Soke Academy async task management: create and query export jobs through the standalone task command. Currently supports learning map learner statistics export tasks. Use when users need to export learner statistics, check export task status, or obtain exported file URLs."
5
+ description: "授客学堂异步任务管理:通过独立 task 命令创建和查询异步任务。目前支持学习地图学员统计报表和统计生成,按“创建任务 -> 获取 data.id -> 查询任务详情和 filePath”的流程使用。当用户需要生成学习地图学员统计报表、生成统计、查询任务状态或获取文件下载地址时使用。 | Soke Academy async task management: create and query jobs through the standalone task command. Currently supports learning map learner statistics report/statistics generation. Use when users need to generate learner statistics reports, generate statistics, check task status, or obtain file URLs."
6
6
  metadata:
7
7
  requires:
8
8
  bins: ["soke-cli"]
@@ -18,11 +18,12 @@ metadata:
18
18
  - 任务接口是独立模块,命令统一使用 `soke-cli task ...`,不要使用 `soke-cli learning-map ...` 创建或查询任务。
19
19
  - 创建任务后必须保存返回的 `data.id`,再调用 `+get` 查询任务详情。
20
20
  - 默认用 `--format json` 获取结构化输出;需要人工快速查看时可省略 format 输出表格。
21
- - 当前已知任务类型是学习地图学员统计导出,`--module` 默认 `learningMapUser`,`--action` 默认 `export`,`--type` 默认 `aloneDept`。
21
+ - 当前已知任务类型是学习地图学员统计相关任务,`--module` 默认 `learningMapUser`,`--action` 默认 `export`,`--type` 默认 `aloneDept`。
22
+ - 查询 `soke-cli task +get --id "TASK-ID"` 后,必须根据创建任务时传入的 `--action` 判断状态字段:`action=export` 看 `data.export_status`,`action=report` 看 `data.status`。
22
23
 
23
24
  ## 命令
24
25
 
25
- ### 创建学习地图学员统计导出任务
26
+ ### 创建学习地图学员统计任务
26
27
 
27
28
  ```bash
28
29
  soke-cli task +create \
@@ -44,8 +45,10 @@ soke-cli task +create \
44
45
  | `--learn-status` | 否 | 空 | 学习状态筛选:空值表示不限,`learning` 未完成,`finished` 已完成 |
45
46
  | `--eligible-status` | 否 | 空 | 达标状态筛选,空值表示不限 |
46
47
  | `--limit` | 否 | `4500` | 任务处理上限 |
47
- | `--action` | 否 | `export` | 操作类型,导出任务固定为 `export` |
48
+ | `--action` | 否 | `export` | 操作类型:`export` 生成报表,`report` 生成统计 |
48
49
  | `--type` | 否 | `aloneDept` | 部门导出类型:`aloneDept` 单列导出,`manyDept` 部门多列导出 |
50
+ | `--is-leave` | 否 | `0` | 是否离职:`0` 否,`1` 是 |
51
+ | `--taskId` | 否 | 空字符串 | 任务 ID,默认空字符串 |
49
52
  | `--custom-tags` | 否 | 空 | 导出的自定义字段列表,多个字段用英文逗号分隔;也可传 JSON 字符串数组 |
50
53
 
51
54
  响应关键字段:
@@ -58,18 +61,25 @@ soke-cli task +create \
58
61
 
59
62
  默认输出会打印单行任务 ID,例如 `id:13288419`。需要完整字段时使用 `--format json`。
60
63
 
61
- ### 查询异步导出任务
64
+ ### 查询异步任务
62
65
 
63
66
  ```bash
64
67
  soke-cli task +get --id "TASK-ID" --format json
65
68
  ```
66
69
 
70
+ 状态判断规则:
71
+
72
+ | 创建任务时的 `--action` | 查询完成状态字段 | 说明 |
73
+ |-------------------------|------------------|------|
74
+ | `export` | `data.export_status` | 生成报表时用导出状态判断是否生成文件 |
75
+ | `report` | `data.status` | 生成统计时用任务执行状态判断是否完成 |
76
+
67
77
  响应关键字段:
68
78
 
69
79
  | 字段 | 说明 |
70
80
  |------|------|
71
- | `data.status` | 任务执行状态;接口示例中 `2` 表示执行完成 |
72
- | `data.export_status` | 导出状态;接口示例中 `2` 表示已生成导出文件 |
81
+ | `data.status` | 任务执行状态;`action=report` 生成统计时用此字段判断任务状态,接口示例中 `2` 表示执行完成 |
82
+ | `data.export_status` | 导出状态;`action=export` 生成报表时用此字段判断导出状态,接口示例中 `2` 表示已生成导出文件 |
73
83
  | `data.filePath` | 导出文件访问地址,未生成时为空 |
74
84
  | `data.filename` | 导出文件名 |
75
85
  | `data.filesize` | 导出文件大小 |
@@ -89,6 +99,16 @@ TASK_ID=$(soke-cli task +create \
89
99
  soke-cli task +get --id "$TASK_ID" --format json | jq -r '.data.filePath'
90
100
  ```
91
101
 
102
+ 按创建任务的 action 查询状态:
103
+
104
+ ```bash
105
+ # action=export
106
+ soke-cli task +get --id "$TASK_ID" --format json | jq -r '.data.export_status'
107
+
108
+ # action=report
109
+ soke-cli task +get --id "$TASK_ID" --format json | jq -r '.data.status'
110
+ ```
111
+
92
112
  ## API 接口映射
93
113
 
94
114
  | CLI 命令 | API 路径 | 方法 |
@@ -101,4 +121,4 @@ soke-cli task +get --id "$TASK_ID" --format json | jq -r '.data.filePath'
101
121
  - `data.filePath` 为空:任务可能还未完成,等待后重新执行 `task +get --id "TASK-ID" --format json`。
102
122
  - `未登录授权`:按 `soke-shared` 执行 `soke-cli auth login` 后重试。
103
123
  - 自定义字段没有导出:确认已通过 `--custom-tags "字段1,字段2"` 指定,字段名需与学习地图学员统计支持的自定义字段一致。
104
- - 任务创建失败:确认 `--map-id` 是有效学习地图 UUID,`--module learningMapUser`,`--action export`,`--type aloneDept` 或 `--type manyDept`。
124
+ - 任务创建失败:确认 `--map-id` 是有效学习地图 UUID,`--module learningMapUser`,`--action export` 或 `--action report`,`--type aloneDept` 或 `--type manyDept`。
@@ -1,71 +0,0 @@
1
- # AI 陪练 - 学习日志
2
-
3
- 修正、洞察、知识缺口、最佳实践。
4
-
5
- **类别**: correction | insight | knowledge_gap | best_practice
6
-
7
- ---
8
-
9
- ## [LRN-20260720-001] correction
10
-
11
- **Logged**: 2026-07-20T09:55:00+08:00
12
- **Priority**: high
13
- **Status**: promoted
14
- **Area**: coaching/role, quality-gate
15
-
16
- ### Summary
17
- Part2 background 字段在 JSON 生成阶段有时未完整复制四段深度画像——展示时有全文但 JSON 中被截断/缩略。
18
-
19
- ### Details
20
- 用户反馈:part2-operations.json 中的 background 内容有时没有完整复制角色背景中的内容。
21
- 根因分析:prompt-engineer 的 Step 2 第 94-95 行已有 background 逐字比对闸门,但 ai-coach-director 的协议自检清单和专项约束中没有同步体现这个检查。director 调度时流程摘要里缺少此闸门的显式标注,导致执行时容易跳过。
22
-
23
- ### Suggested Action
24
- 1. ai-coach-director 协议阶段 1 自检清单新增:`☐ Part2 每个角色的 background 四段深度画像均已逐段完整展示,无缩略`
25
- 2. 专项约束 #3 强化:添加「JSON 写入后、preview 前强制闸门」——逐字比对 background 与展示文本 + 四维完整性检查
26
- 3. 流水线执行 Part2 行增加:`⚠️ background 逐字比对闸门(JSON vs 展示文本)` 作为 preview 前的显式步骤
27
-
28
- ### Metadata
29
- - Source: user_feedback
30
- - Related Files: ai-coach-director/SKILL.md, coaching/prompt-engineer/prompt-engineer.md, platform/sync-engine.md
31
- - Tags: background, part2, json-generation, truncation
32
- - Pattern-Key: background-truncation
33
- - Recurrence-Count: 1
34
- - First-Seen: 2026-07-20
35
- - Last-Seen: 2026-07-20
36
-
37
- **Promoted**: ai-coach-director/SKILL.md
38
-
39
- ---
40
-
41
- ## [LRN-20260720-002] correction
42
-
43
- **Logged**: 2026-07-20T10:26:00+08:00
44
- **Priority**: high
45
- **Status**: promoted
46
- **Area**: coaching/role, platform/sync
47
-
48
- ### Summary
49
- Part2 apply 后验收规则太弱——只检查字段非空,不检查内容一致性,导致同步失败或部分字段丢失时无法发现。
50
-
51
- ### Details
52
- 用户反馈:part2-operations.json 中的内容没有同步到平台。
53
- 根因分析:sync-engine.md 和 ai-coach-director 的 apply 后验收只做了存在性检查(非空/name不为"角色数据异常"),没有做内容一致性检查。如果平台 API 静默丢弃或截断某个字段(如 description/communication_style/background),当前验收逻辑无法发现。apply 返回 200 但实际平台数据不完整——典型的"假成功"场景。
54
-
55
- ### Suggested Action
56
- 1. sync-engine.md apply 后验证从 2 项扩展为 5 项逐字段内容对比验收
57
- 2. ai-coach-director 专项约束 #4 从简单验收升级为逐字段验收 + 同步失败禁止进入 Part3
58
- 3. 流水线执行 Part2 行增加 apply 后逐字段验收显式步骤
59
-
60
- ### Metadata
61
- - Source: user_feedback
62
- - Related Files: ai-coach-director/SKILL.md, platform/sync-engine.md
63
- - Tags: part2, sync-failure, verification, silent-failure, field-loss
64
- - Pattern-Key: part2-sync-verification
65
- - Recurrence-Count: 1
66
- - First-Seen: 2026-07-20
67
- - Last-Seen: 2026-07-20
68
-
69
- **Promoted**: ai-coach-director/SKILL.md, platform/sync-engine.md
70
-
71
- ---