@sokeai/cli 1.0.67 → 1.0.69
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.
- package/README.md +74 -0
- package/package.json +1 -1
- package/skills/README.md +2 -0
- package/skills/SKILL.md +18 -5
- package/skills/{soke-examPool → soke-exam-question-pool}/SKILL.md +9 -9
- package/skills/soke-learning-map/SKILL.md +3 -1
- package/skills/soke-task/SKILL.md +104 -0
- package/skills/soke-training-demand/SKILL.md +14 -10
package/README.md
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
- [核心能力](#核心能力)
|
|
8
8
|
- [安装方法](#安装方法)
|
|
9
9
|
- [快速开始](#快速开始)
|
|
10
|
+
- [日志与排障](#日志与排障)
|
|
10
11
|
- [开发指南](#开发指南)
|
|
11
12
|
- [从接口封装到发布的完整流程](#从接口封装到发布的完整流程)
|
|
12
13
|
- [本地开发测试](#本地开发测试)
|
|
@@ -142,6 +143,78 @@ soke-cli course +list-courses --start-time 1672502400000 --end-time 170403840000
|
|
|
142
143
|
soke-cli exam +get-exam-user --exam-id exam123 --dept-user-id user456
|
|
143
144
|
```
|
|
144
145
|
|
|
146
|
+
## 日志与排障
|
|
147
|
+
|
|
148
|
+
`soke-cli` 默认会在本地写入结构化诊断日志,用于排查用户执行命令时的本地环境、命令链路、HTTP 请求摘要和错误关联信息。日志不会自动上传。
|
|
149
|
+
|
|
150
|
+
### 查看日志路径
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
soke-cli logs +path
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
登录后日志文件名会拼接当前应用、企业和用户身份,便于一台机器上多个身份并存时定位:
|
|
157
|
+
|
|
158
|
+
```text
|
|
159
|
+
~/.soke-cli/logs/cli_<app_id>_<corp_id>_<dept_user_id>.log
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
未登录或无法读取配置时,会回退到:
|
|
163
|
+
|
|
164
|
+
```text
|
|
165
|
+
~/.soke-cli/logs/soke-cli.log
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### 收集诊断包
|
|
169
|
+
|
|
170
|
+
当需要反馈问题给支持人员时,可以生成本地诊断包:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
soke-cli logs +collect
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
默认输出到 `~/.soke-cli/support/`,只生成本地 zip 文件,不会自动发送。
|
|
177
|
+
|
|
178
|
+
### 清理日志
|
|
179
|
+
|
|
180
|
+
CLI 启动时会静默清理过期文件:日志默认保留 30 天,诊断包默认保留 14 天。也可以手动清理:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
# 预览将清理哪些文件
|
|
184
|
+
soke-cli logs +clean --dry-run
|
|
185
|
+
|
|
186
|
+
# 清理 30 天前的日志和诊断包
|
|
187
|
+
soke-cli logs +clean
|
|
188
|
+
|
|
189
|
+
# 清理指定时间之前的文件
|
|
190
|
+
soke-cli logs +clean --older-than 7d
|
|
191
|
+
|
|
192
|
+
# 清理全部日志和诊断包,需要显式确认
|
|
193
|
+
soke-cli logs +clean --all --yes
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
`logs +clean` 只清理日志文件和诊断包,不会删除配置、token 或 keychain。
|
|
197
|
+
默认清理会保护当前正在写入的日志;`--all --yes` 会尝试清理全部日志文件。
|
|
198
|
+
|
|
199
|
+
### 健康检查
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
soke-cli doctor --format json
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
`doctor` 会检查 CLI 版本、配置、登录态、日志目录和网络连通性。
|
|
206
|
+
|
|
207
|
+
### 调试输出
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
soke-cli --verbose <command>
|
|
211
|
+
soke-cli --debug <command>
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
`--verbose` 用于查看关键行为节点,`--debug` 会输出更详细的 HTTP 摘要。完整结构化日志仍以 JSON Lines 写入本地日志文件。
|
|
215
|
+
|
|
216
|
+
更多日志字段、脱敏规则和开发规范见:[docs/LOGGING_GUIDE.md](docs/LOGGING_GUIDE.md)。
|
|
217
|
+
|
|
145
218
|
## 使用示例
|
|
146
219
|
|
|
147
220
|
### 调用快捷业务命令
|
|
@@ -649,6 +722,7 @@ soke-cli/
|
|
|
649
722
|
|
|
650
723
|
- **[QUICKSTART.md](QUICKSTART.md)** - 快速开始指南
|
|
651
724
|
- **[CLAUDE.md](CLAUDE.md)** - 项目架构和开发规范
|
|
725
|
+
- **[docs/LOGGING_GUIDE.md](docs/LOGGING_GUIDE.md)** - 日志记录、查看和诊断包收集规范
|
|
652
726
|
- **[docs/LOCAL_TESTING.md](docs/LOCAL_TESTING.md)** - 本地测试详细指南
|
|
653
727
|
- **[skills/README.md](skills/README.md)** - AI Agent Skills 使用说明
|
|
654
728
|
- **[npm.md](npm.md)** - NPM 包发布详细文档
|
package/package.json
CHANGED
package/skills/README.md
CHANGED
|
@@ -37,6 +37,7 @@ npx skills add <org>/soke-cli --skill soke-exam -y -g
|
|
|
37
37
|
cp -r skills/soke-shared ~/.claude/skills/
|
|
38
38
|
cp -r skills/soke-exam ~/.claude/skills/
|
|
39
39
|
cp -r skills/soke-training-demand ~/.claude/skills/
|
|
40
|
+
cp -r skills/soke-task ~/.claude/skills/
|
|
40
41
|
|
|
41
42
|
# 或复制到项目级skills目录
|
|
42
43
|
mkdir -p .claude/skills
|
|
@@ -173,6 +174,7 @@ cp -r skills/soke-<module> ~/.claude/skills/
|
|
|
173
174
|
- `soke-contact` - 组织架构(部门、用户、讲师)
|
|
174
175
|
- `soke-training` - 培训管理
|
|
175
176
|
- `soke-training-demand` - 培训需求收集
|
|
177
|
+
- `soke-task` - 异步任务管理
|
|
176
178
|
- `soke-credit` - 学分管理
|
|
177
179
|
- `soke-certificate` - 证书管理
|
|
178
180
|
- 等等...
|
package/skills/SKILL.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: soke-cli
|
|
3
3
|
summary: 授客AI CLI 全套 Skills 索引 — 安装指南与各业务模块能力总览
|
|
4
4
|
version: 1.0.0
|
|
5
|
-
description: "授客AI CLI(soke-cli)Skills
|
|
5
|
+
description: "授客AI CLI(soke-cli)Skills 总索引:包含安装配置、认证登录,以及课程、考试、素材、课件、指派、学习地图、异步任务、学习档案等全业务模块的 AI 快捷命令。当用户需要了解授客AI CLI 有哪些能力、从零开始使用、或不确定该调用哪个 skill 时使用。 | Soke AI CLI (soke-cli) skills master index: covers installation, configuration, authentication, and AI shortcut commands for all business modules including courses, exams, materials, lessons, assignments, learning maps, async tasks, and learning records. Use when users need to understand what capabilities Soke AI CLI offers, get started from scratch, or are unsure which skill to invoke."
|
|
6
6
|
metadata:
|
|
7
7
|
requires:
|
|
8
8
|
bins: ["soke-cli"]
|
|
@@ -70,9 +70,9 @@ metadata:
|
|
|
70
70
|
|
|
71
71
|
---
|
|
72
72
|
|
|
73
|
-
### soke-
|
|
73
|
+
### soke-exam-question-pool — 可练习题库查询
|
|
74
74
|
|
|
75
|
-
**路径**: [soke-
|
|
75
|
+
**路径**: [soke-exam-question-pool/SKILL.md](./soke-exam-question-pool/SKILL.md)
|
|
76
76
|
|
|
77
77
|
按 `examQuestionPool` 接口链路查询可练习题库,严格遵循“题库列表 -> 题库详情 -> 题目列表”的参数依赖。
|
|
78
78
|
|
|
@@ -85,6 +85,19 @@ metadata:
|
|
|
85
85
|
|
|
86
86
|
---
|
|
87
87
|
|
|
88
|
+
### soke-task — 异步任务管理
|
|
89
|
+
|
|
90
|
+
**路径**: [soke-task/SKILL.md](./soke-task/SKILL.md)
|
|
91
|
+
|
|
92
|
+
独立异步任务模块,支持创建和查询导出任务。目前用于学习地图学员统计导出。
|
|
93
|
+
|
|
94
|
+
**核心能力**:
|
|
95
|
+
- 创建异步导出任务(`soke-cli task +create`)
|
|
96
|
+
- 支持选择部门导出类型:单列导出 `aloneDept`(默认)或部门多列导出 `manyDept`
|
|
97
|
+
- 查询任务状态与导出文件地址(`soke-cli task +get`)
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
88
101
|
### soke-assign — 指派管理
|
|
89
102
|
|
|
90
103
|
**路径**: [soke-assign/SKILL.md](./soke-assign/SKILL.md)
|
|
@@ -194,7 +207,7 @@ soke-cli安装指南.md (所有 skill 的前置条件)
|
|
|
194
207
|
└── soke-shared (认证/配置/权限基础)
|
|
195
208
|
│
|
|
196
209
|
├── soke-exam
|
|
197
|
-
├── soke-
|
|
210
|
+
├── soke-exam-question-pool
|
|
198
211
|
├── soke-assign
|
|
199
212
|
├── soke-learning-profile
|
|
200
213
|
├── soke-material
|
|
@@ -219,7 +232,7 @@ soke-cli安装指南.md (所有 skill 的前置条件)
|
|
|
219
232
|
| 上传视频/音频/文档素材 | [soke-material](./soke-material/SKILL.md) |
|
|
220
233
|
| 创建/管理课件 | [soke-lesson](./soke-lesson/SKILL.md) |
|
|
221
234
|
| 创建/发布/查询考试、题库、试卷 | [soke-exam](./soke-exam/SKILL.md) |
|
|
222
|
-
| 查询可练习题库详情和题目列表 | [soke-
|
|
235
|
+
| 查询可练习题库详情和题目列表 | [soke-exam-question-pool](./soke-exam-question-pool/SKILL.md) |
|
|
223
236
|
| 将课程/考试/地图指派给部门或用户 | [soke-assign](./soke-assign/SKILL.md) |
|
|
224
237
|
| 创建/发布/查询学习地图 | [soke-learning-map](./soke-learning-map/SKILL.md) |
|
|
225
238
|
| 查询学员学习档案/统计数据 | [soke-learning-profile](./soke-learning-profile/SKILL.md) |
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: soke-
|
|
3
|
-
summary: 授客可练习题库查询(题库列表、题库详情、题目列表),通过 soke-cli exam-pool 命令操作
|
|
2
|
+
name: soke-exam-question-pool
|
|
3
|
+
summary: 授客可练习题库查询(题库列表、题库详情、题目列表),通过 soke-cli exam-question-pool 命令操作
|
|
4
4
|
version: 1.0.0
|
|
5
5
|
description: "授客可练习题库查询:按 examQuestionPool 接口链路先查询题库列表,再用题库 uuid 查询详情和题目列表。当用户需要查看可练习题库、题库详情、题目内容、答案和解析时使用。 | Soke question pool lookup: use the examQuestionPool API flow to list pools, get pool detail, and list questions."
|
|
6
6
|
metadata:
|
|
7
7
|
requires:
|
|
8
8
|
bins: ["soke-cli"]
|
|
9
|
-
cliHelp: "soke-cli exam-pool --help"
|
|
9
|
+
cliHelp: "soke-cli exam-question-pool --help"
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# 可练习题库查询 (examQuestionPool)
|
|
@@ -36,7 +36,7 @@ metadata:
|
|
|
36
36
|
获取可练习题库列表。
|
|
37
37
|
|
|
38
38
|
```bash
|
|
39
|
-
soke-cli exam-pool +list \
|
|
39
|
+
soke-cli exam-question-pool +list \
|
|
40
40
|
--page 1 \
|
|
41
41
|
--page-size 10 \
|
|
42
42
|
--status 1 \
|
|
@@ -63,7 +63,7 @@ soke-cli exam-pool +list \
|
|
|
63
63
|
根据题库 UUID 获取可练习题库详情。
|
|
64
64
|
|
|
65
65
|
```bash
|
|
66
|
-
soke-cli exam-pool +get \
|
|
66
|
+
soke-cli exam-question-pool +get \
|
|
67
67
|
--pool-id "<上一步 data.list[].uuid>" \
|
|
68
68
|
--format json
|
|
69
69
|
```
|
|
@@ -89,7 +89,7 @@ soke-cli exam-pool +get \
|
|
|
89
89
|
根据同一个题库 UUID 获取题目明细。
|
|
90
90
|
|
|
91
91
|
```bash
|
|
92
|
-
soke-cli exam-pool +questions \
|
|
92
|
+
soke-cli exam-question-pool +questions \
|
|
93
93
|
--pool-id "<同一个题库 uuid>" \
|
|
94
94
|
--format json
|
|
95
95
|
```
|
|
@@ -114,11 +114,11 @@ soke-cli exam-pool +questions \
|
|
|
114
114
|
|
|
115
115
|
```bash
|
|
116
116
|
# 1. 查询题库列表,取 data.list[0].uuid
|
|
117
|
-
soke-cli exam-pool +list --page 1 --page-size 10 --status 1 --format json
|
|
117
|
+
soke-cli exam-question-pool +list --page 1 --page-size 10 --status 1 --format json
|
|
118
118
|
|
|
119
119
|
# 2. 查询题库详情
|
|
120
|
-
soke-cli exam-pool +get --pool-id "<pool_uuid>" --format json
|
|
120
|
+
soke-cli exam-question-pool +get --pool-id "<pool_uuid>" --format json
|
|
121
121
|
|
|
122
122
|
# 3. 查询同一题库的题目
|
|
123
|
-
soke-cli exam-pool +questions --pool-id "<pool_uuid>" --format json
|
|
123
|
+
soke-cli exam-question-pool +questions --pool-id "<pool_uuid>" --format json
|
|
124
124
|
```
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: soke-learning-map
|
|
3
3
|
summary: 授客学堂学习地图管理(创建/阶段/发布/查询/指派),完整管理学习地图生命周期
|
|
4
4
|
version: 1.0.0
|
|
5
|
-
description: "授客学堂学习地图管理:完整的学习地图生命周期管理,包括创建学习地图、查询课程分类与课程、检查课程可用性、创建阶段、发布地图、指派部门/学员、查询学员进度的全链路流程。集成 soke-assign(指派管理)子 skill。当用户需要创建学习地图、添加阶段和课程内容、发布地图、指派学员、查询学习进度时使用。 | Soke Academy learning map management: complete learning map lifecycle management, covering the full workflow of creating learning maps, querying course categories and courses, checking course availability, creating stages, publishing maps, assigning departments/learners, and querying learner progress. Integrates soke-assign (assignment management) sub-skill. Use when users need to create learning maps, add stages and course content, publish maps, assign learners, or query learning progress."
|
|
5
|
+
description: "授客学堂学习地图管理:完整的学习地图生命周期管理,包括创建学习地图、查询课程分类与课程、检查课程可用性、创建阶段、发布地图、指派部门/学员、查询学员进度的全链路流程。集成 soke-assign(指派管理)子 skill。学习地图学员统计导出任务已独立到 soke-task skill。当用户需要创建学习地图、添加阶段和课程内容、发布地图、指派学员、查询学习进度时使用。 | Soke Academy learning map management: complete learning map lifecycle management, covering the full workflow of creating learning maps, querying course categories and courses, checking course availability, creating stages, publishing maps, assigning departments/learners, and querying learner progress. Integrates soke-assign (assignment management) sub-skill. Learning map learner statistics export tasks are handled by the standalone soke-task skill. Use when users need to create learning maps, add stages and course content, publish maps, assign learners, or query learning progress."
|
|
6
6
|
metadata:
|
|
7
7
|
requires:
|
|
8
8
|
bins: ["soke-cli"]
|
|
@@ -380,6 +380,8 @@ soke-cli learning-map +detail --uuid "MAP-UUID" --format json
|
|
|
380
380
|
| `+list-item-users` | 查询内容学员列表 | read |
|
|
381
381
|
| `+get-map-user` | 查询单个学员详情 | read |
|
|
382
382
|
|
|
383
|
+
学员统计导出任务使用独立模块:`soke-cli task +create` / `soke-cli task +get`,详见 [`../soke-task/SKILL.md`](../soke-task/SKILL.md)。
|
|
384
|
+
|
|
383
385
|
### 指派管理(soke-assign)
|
|
384
386
|
|
|
385
387
|
| 命令 | 说明 |
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: soke-task
|
|
3
|
+
summary: 授客学堂异步任务管理(创建任务/查询任务),支持学习地图学员统计导出
|
|
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."
|
|
6
|
+
metadata:
|
|
7
|
+
requires:
|
|
8
|
+
bins: ["soke-cli"]
|
|
9
|
+
cliHelp: "soke-cli task --help"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# 异步任务管理 (soke-task)
|
|
13
|
+
|
|
14
|
+
**CRITICAL — 开始前 MUST 先读取 [`../soke-shared/SKILL.md`](../soke-shared/SKILL.md),其中包含认证、配置和权限处理。**
|
|
15
|
+
|
|
16
|
+
## 核心规则
|
|
17
|
+
|
|
18
|
+
- 任务接口是独立模块,命令统一使用 `soke-cli task ...`,不要使用 `soke-cli learning-map ...` 创建或查询任务。
|
|
19
|
+
- 创建任务后必须保存返回的 `data.id`,再调用 `+get` 查询任务详情。
|
|
20
|
+
- 默认用 `--format json` 获取结构化输出;需要人工快速查看时可省略 format 输出表格。
|
|
21
|
+
- 当前已知任务类型是学习地图学员统计导出,`--module` 默认 `learningMapUser`,`--action` 默认 `export`,`--type` 默认 `aloneDept`。
|
|
22
|
+
|
|
23
|
+
## 命令
|
|
24
|
+
|
|
25
|
+
### 创建学习地图学员统计导出任务
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
soke-cli task +create \
|
|
29
|
+
--map-id "MAP-UUID" \
|
|
30
|
+
--learn-type "required" \
|
|
31
|
+
--type "aloneDept" \
|
|
32
|
+
--custom-tags "工号,职位,部门" \
|
|
33
|
+
--limit 4500 \
|
|
34
|
+
--format json
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
完整参数:
|
|
38
|
+
|
|
39
|
+
| 参数 | 必填 | 默认值 | 说明 |
|
|
40
|
+
|------|------|--------|------|
|
|
41
|
+
| `--map-id` | 是 | - | 学习地图 UUID |
|
|
42
|
+
| `--module` | 否 | `learningMapUser` | 任务模块,学习地图学员统计固定为 `learningMapUser` |
|
|
43
|
+
| `--learn-type` | 否 | `required` | 学习类型,如 `required` |
|
|
44
|
+
| `--learn-status` | 否 | 空 | 学习状态筛选:空值表示不限,`learning` 未完成,`finished` 已完成 |
|
|
45
|
+
| `--eligible-status` | 否 | 空 | 达标状态筛选,空值表示不限 |
|
|
46
|
+
| `--limit` | 否 | `4500` | 任务处理上限 |
|
|
47
|
+
| `--action` | 否 | `export` | 操作类型,导出任务固定为 `export` |
|
|
48
|
+
| `--type` | 否 | `aloneDept` | 部门导出类型:`aloneDept` 单列导出,`manyDept` 部门多列导出 |
|
|
49
|
+
| `--custom-tags` | 否 | 空 | 导出的自定义字段列表,多个字段用英文逗号分隔;也可传 JSON 字符串数组 |
|
|
50
|
+
|
|
51
|
+
响应关键字段:
|
|
52
|
+
|
|
53
|
+
| 字段 | 说明 |
|
|
54
|
+
|------|------|
|
|
55
|
+
| `data.id` | 任务 ID,查询任务详情时传给 `+get --id` |
|
|
56
|
+
| `data.key` | 任务去重或配置缓存 Key |
|
|
57
|
+
| `data.config_result` | 上游配置模块检查结果 |
|
|
58
|
+
|
|
59
|
+
默认输出会打印单行任务 ID,例如 `id:13288419`。需要完整字段时使用 `--format json`。
|
|
60
|
+
|
|
61
|
+
### 查询异步导出任务
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
soke-cli task +get --id "TASK-ID" --format json
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
响应关键字段:
|
|
68
|
+
|
|
69
|
+
| 字段 | 说明 |
|
|
70
|
+
|------|------|
|
|
71
|
+
| `data.status` | 任务执行状态;接口示例中 `2` 表示执行完成 |
|
|
72
|
+
| `data.export_status` | 导出状态;接口示例中 `2` 表示已生成导出文件 |
|
|
73
|
+
| `data.filePath` | 导出文件访问地址,未生成时为空 |
|
|
74
|
+
| `data.filename` | 导出文件名 |
|
|
75
|
+
| `data.filesize` | 导出文件大小 |
|
|
76
|
+
| `data.params` | 创建任务参数的 JSON 字符串 |
|
|
77
|
+
|
|
78
|
+
## 推荐工作流
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
TASK_ID=$(soke-cli task +create \
|
|
82
|
+
--map-id "$MAP_UUID" \
|
|
83
|
+
--learn-type "required" \
|
|
84
|
+
--type "aloneDept" \
|
|
85
|
+
--custom-tags "工号,岗位,入职日期" \
|
|
86
|
+
--limit 4500 \
|
|
87
|
+
--format json | jq -r '.data.id')
|
|
88
|
+
|
|
89
|
+
soke-cli task +get --id "$TASK_ID" --format json | jq -r '.data.filePath'
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## API 接口映射
|
|
93
|
+
|
|
94
|
+
| CLI 命令 | API 路径 | 方法 |
|
|
95
|
+
|----------|----------|------|
|
|
96
|
+
| `task +create` | `/skills/job/task` | POST (form) |
|
|
97
|
+
| `task +get` | `/skills/job/task/{id}` | GET |
|
|
98
|
+
|
|
99
|
+
## 排错
|
|
100
|
+
|
|
101
|
+
- `data.filePath` 为空:任务可能还未完成,等待后重新执行 `task +get --id "TASK-ID" --format json`。
|
|
102
|
+
- `未登录授权`:按 `soke-shared` 执行 `soke-cli auth login` 后重试。
|
|
103
|
+
- 自定义字段没有导出:确认已通过 `--custom-tags "字段1,字段2"` 指定,字段名需与学习地图学员统计支持的自定义字段一致。
|
|
104
|
+
- 任务创建失败:确认 `--map-id` 是有效学习地图 UUID,`--module learningMapUser`,`--action export`,`--type aloneDept` 或 `--type manyDept`。
|
|
@@ -15,7 +15,8 @@ metadata:
|
|
|
15
15
|
|
|
16
16
|
## 核心规则
|
|
17
17
|
|
|
18
|
-
- 提交需求前,先执行 `+list-categories`,使用返回的分类 `uuid` 和 `
|
|
18
|
+
- 提交需求前,先执行 `+list-categories`,使用返回的分类 `uuid`、`title` 和 `tag`。
|
|
19
|
+
- 创建需求的 `--tag` 不是自由填写,必须从所选分类返回的 `tag` 字段中选择;多个分类时合并这些分类的 tag 值。
|
|
19
20
|
- 投票前,先执行 `+list`,使用返回的培训需求 `uuid`。不要把分类 `uuid` 传给投票接口。
|
|
20
21
|
- 创建和投票是写操作。用户意图不明确时,先确认要提交或投票的对象。
|
|
21
22
|
- 默认用 `--format json` 获取结构化输出;需要人工快速查看时可省略 format 输出表格。
|
|
@@ -44,30 +45,32 @@ soke-cli training-demand +list \
|
|
|
44
45
|
soke-cli training-demand +list-categories --format json
|
|
45
46
|
```
|
|
46
47
|
|
|
47
|
-
分类返回的 `data.list[].uuid` 和 `data.list[].
|
|
48
|
+
分类返回的 `data.list[].uuid`、`data.list[].title` 和 `data.list[].tag` 只用于创建需求。
|
|
48
49
|
|
|
49
50
|
### 提交培训需求
|
|
50
51
|
|
|
51
52
|
推荐从分类列表提取分类后,用分类 UUID 和名称提交:
|
|
52
53
|
|
|
54
|
+
`--title` 是培训需求描述;`--tag` 必须来自所选分类返回的 `tag`;`--level` 是培训需求等级,可省略,默认 `0`。用户指定等级时只能使用 `1-5`。
|
|
55
|
+
|
|
53
56
|
```bash
|
|
54
57
|
soke-cli training-demand +create \
|
|
55
58
|
--title "门店销售沟通训练" \
|
|
56
|
-
--tag "
|
|
59
|
+
--tag "职场心态,需求测试" \
|
|
57
60
|
--level 0 \
|
|
58
61
|
--category-uuid "FA0C937C-EE52-463B-BE3A-C13F96C426AE" \
|
|
59
62
|
--category-title "新建培训需求测试" \
|
|
63
|
+
--category-tag "职场心态,新建培训需求测试,新建培训需求,需求测试,培训需求测试,企业新建培训需求测试" \
|
|
60
64
|
--format json
|
|
61
65
|
```
|
|
62
66
|
|
|
63
|
-
|
|
67
|
+
不传 `--tag` 时,CLI 会从 `--category-tag` 自动合并标签。多分类或已有完整分类数组时,使用 `--category-list`,推荐把分类返回的 `tag` 一并带上:
|
|
64
68
|
|
|
65
69
|
```bash
|
|
66
70
|
soke-cli training-demand +create \
|
|
67
71
|
--title "新员工产品知识培训" \
|
|
68
|
-
--
|
|
69
|
-
--
|
|
70
|
-
--category-list '[{"uuid":"FA0C937C-EE52-463B-BE3A-C13F96C426AE","title":"新建培训需求测试"}]' \
|
|
72
|
+
--level 1 \
|
|
73
|
+
--category-list '[{"uuid":"FA0C937C-EE52-463B-BE3A-C13F96C426AE","title":"新建培训需求测试","tag":"职场心态,新建培训需求测试,新建培训需求,需求测试,培训需求测试,企业新建培训需求测试"}]' \
|
|
71
74
|
--format json
|
|
72
75
|
```
|
|
73
76
|
|
|
@@ -84,9 +87,9 @@ soke-cli training-demand +vote \
|
|
|
84
87
|
## 常见工作流
|
|
85
88
|
|
|
86
89
|
1. 用户说“我想提一个培训需求”:
|
|
87
|
-
-
|
|
90
|
+
- 先问清楚培训需求描述和分类偏好;等级没说明时使用默认 `0`。
|
|
88
91
|
- 执行 `+list-categories --format json`。
|
|
89
|
-
-
|
|
92
|
+
- 匹配或让用户选择分类,并从所选分类的 `tag` 中确定标签;用户未指定具体标签时,直接使用所选分类的全部 tag。
|
|
90
93
|
- 执行 `+create`。
|
|
91
94
|
|
|
92
95
|
2. 用户说“帮我给某个需求投票”:
|
|
@@ -102,11 +105,12 @@ soke-cli training-demand +vote \
|
|
|
102
105
|
|
|
103
106
|
| 场景 | 依赖字段 | 来源 |
|
|
104
107
|
|------|----------|------|
|
|
105
|
-
| 创建需求 | `category_list[].uuid` / `category_list[].title` | `+list-categories` 的 `data.list[]` |
|
|
108
|
+
| 创建需求 | `category_list[].uuid` / `category_list[].title` / `tag` | `+list-categories` 的 `data.list[]` |
|
|
106
109
|
| 投票 | `uuid` | `+list` 的 `data.list[].uuid` |
|
|
107
110
|
|
|
108
111
|
## 排错
|
|
109
112
|
|
|
110
113
|
- 创建失败提示分类无效:重新执行 `+list-categories`,不要使用需求列表中的分类名称手写 UUID。
|
|
114
|
+
- 创建失败提示标签无效:重新执行 `+list-categories`,从所选分类返回的 `tag` 中选择,不要自行编写标签。
|
|
111
115
|
- 投票失败提示需求无效:确认传入的是培训需求 UUID,不是分类 UUID。
|
|
112
116
|
- 鉴权失败:按 `soke-shared` 执行 `soke-cli auth login` 后重试。
|