@sokeai/cli 1.0.78 → 1.0.80
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/package.json +1 -1
- package/scripts/install.js +8 -0
- package/scripts/run.js +3 -2
- package/skills/mono/.workbuddy/memory/2026-09-01.md +2 -0
- package/skills/mono/.workbuddy/memory/MEMORY.md +4 -0
- package/skills/mono/ARCHITECTURE_AND_EXTENSION_GUIDE.md +572 -0
- package/skills/mono/README.md +2 -0
- package/skills/mono/SKILL.md +125 -119
- package/skills/mono/SKILL_MD_/344/274/230/345/214/226/346/226/271/346/241/210.md +478 -0
- package/skills/mono/references/modules/README.md +74 -0
- package/skills/mono/references/modules/soke-ai-coach-director/CHANGELOG.md +1 -1
- package/skills/mono/references/modules/soke-ai-coach-director/MODULE.md +12 -0
- package/skills/mono/references/modules/soke-ai-coach-director/README.md +4 -1
- package/skills/mono/references/modules/soke-ai-coach-director/coaching/prompt-engineer/parts/part1-basic.md +1 -1
- package/skills/mono/references/modules/soke-ai-coach-director/coaching/prompt-optimizer/prompt-optimizer.md +3 -3
- package/skills/mono/references/modules/soke-ai-coach-director/platform/adapters/README.md +4 -2
- package/skills/mono/references/modules/soke-ai-coach-director/platform/adapters/qclaw.md +3 -1
- package/skills/mono/references/modules/soke-ai-coach-director/platform/adapters/{wukong.md → qwen.md} +18 -18
- package/skills/mono/references/modules/soke-ai-coach-director/platform/adapters/workbuddy.md +1 -1
- package/skills/mono/references/modules/soke-ai-coach-director/platform/api-fallback.md +1 -1
- package/skills/mono/references/modules/soke-ai-coach-director/platform/interaction.md +1 -1
- package/skills/mono/references/modules/soke-ai-coach-director/platform/platform-support-matrix.md +28 -0
- package/skills/mono/references/modules/soke-ai-coach-director/platform/publish-gate.md +1 -0
- package/skills/mono/references/modules/soke-ai-coach-director/platform/soke-ai-training/soke-ai-training.md +5 -3
- package/skills/mono/references/modules/soke-ai-coach-director/platform/sync-engine.md +2 -2
- package/skills/mono/references/modules/soke-ai-coach-director/references/env-check.md +3 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/exec-handbook.md +7 -7
- package/skills/mono/references/modules/soke-ai-coach-director/references/exec-part1.md +5 -5
- package/skills/mono/references/modules/soke-ai-coach-director/references/platform-api-pitfalls.md +1 -1
- package/skills/mono/references/modules/soke-ai-coach-director/references/self-learning-engine.md +4 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/subs/part1/SOP.md +2 -2
- package/skills/mono/references/modules/soke-ai-coach-director/references/subs/publish/SOP.md +3 -3
- package/skills/mono/references/modules/soke-ai-coach-director/scripts/activator.sh +4 -0
- package/skills/mono/references/modules/soke-ai-coach-director/scripts/error-detector.sh +4 -0
- package/skills/mono/references/modules/soke-ai-coach-director/scripts/extract-skill.sh +7 -0
- package/skills/mono/references/modules/soke-ai-coach-director/scripts/gate_check.py +2 -0
- package/skills/mono/references/modules/soke-ai-coach-director/scripts/validate_operations.py +9 -2
- package/skills/mono/references/modules/soke-ai-training/MODULE.md +57 -7
- package/skills/mono/references/modules/soke-assign/MODULE.md +50 -11
- package/skills/mono/references/modules/soke-certificate/MODULE.md +47 -1
- package/skills/mono/references/modules/soke-course/CHANGELOG.md +93 -0
- package/skills/mono/references/modules/soke-course/MODULE.md +110 -352
- package/skills/mono/references/modules/soke-course/README.md +45 -291
- package/skills/mono/references/modules/soke-course/cli-facts.md +107 -0
- package/skills/mono/references/modules/soke-course/intent-cases.md +41 -0
- package/skills/mono/references/modules/soke-course/scripts/check_readiness.sh +45 -0
- package/skills/mono/references/modules/soke-course/sop-publish-check.md +46 -0
- package/skills/mono/references/modules/soke-course/subs/assign/SOP.md +40 -0
- package/skills/mono/references/modules/soke-course/subs/batch/SOP.md +96 -0
- package/skills/mono/references/modules/soke-course/{references/subs → subs}/category/SOP.md +18 -27
- package/skills/mono/references/modules/soke-course/subs/charge/SOP.md +22 -0
- package/skills/mono/references/modules/soke-course/subs/copy/SOP.md +35 -0
- package/skills/mono/references/modules/soke-course/subs/exam/SOP.md +39 -0
- package/skills/mono/references/modules/soke-course/subs/phase1-create/SOP.md +66 -0
- package/skills/mono/references/modules/soke-course/subs/phase2-lesson/SOP.md +34 -0
- package/skills/mono/references/modules/soke-course/subs/photo/SOP.md +26 -0
- package/skills/mono/references/modules/soke-course/subs/publish/SOP.md +26 -0
- package/skills/mono/references/modules/soke-course/subs/query/SOP.md +36 -0
- package/skills/mono/references/modules/soke-course/{references/subs → subs}/settings/SOP.md +3 -4
- package/skills/mono/references/modules/soke-course/subs/template/SOP.md +58 -0
- package/skills/mono/references/modules/soke-exam/MODULE.md +49 -1
- package/skills/mono/references/modules/soke-exam-question-pool/MODULE.md +45 -5
- package/skills/mono/references/modules/soke-learning-map/MODULE.md +51 -11
- package/skills/mono/references/modules/soke-learning-profile/MODULE.md +46 -3
- package/skills/mono/references/modules/soke-lesson/MODULE.md +34 -20
- package/skills/mono/references/modules/soke-material/MODULE.md +33 -19
- package/skills/mono/references/modules/soke-photo-gallery/MODULE.md +40 -20
- package/skills/mono/references/modules/soke-shared/MODULE.md +9 -0
- package/skills/mono/references/modules/soke-supervisor/MODULE.md +32 -1
- package/skills/mono/references/modules/soke-task/MODULE.md +48 -1
- package/skills/mono/references/modules/soke-training-demand/MODULE.md +38 -17
- package/skills/mono/references/shared/README.md +50 -0
- package/skills/mono/references/shared/async-task.md +30 -0
- package/skills/mono/references/shared/auth-check.md +57 -0
- package/skills/mono/references/shared/command-discovery.md +34 -0
- package/skills/mono/references/shared/environment-check.md +31 -0
- package/skills/mono/references/shared/error-handling.md +27 -0
- package/skills/mono/references/shared/file-input.md +31 -0
- package/skills/mono/references/shared/interaction.md +39 -0
- package/skills/mono/references/shared/object-context.md +51 -0
- package/skills/mono/references/shared/output-policy.md +39 -0
- package/skills/mono/references/shared/pagination.md +41 -0
- package/skills/mono/references/shared/rule-ownership.md +57 -0
- package/skills/mono/references/shared/state-machine.md +35 -0
- package/skills/mono/references/shared/write-guard.md +34 -0
- package/skills/mono/references/shared/write-verify.md +33 -0
- package/skills/mono/references/workflows/README.md +115 -0
- package/skills/mono/scripts/check_package.py +310 -0
- package/skills/mono/scripts/check_readiness.py +1 -1
- package/skills/mono/scripts/check_syntax.py +35 -0
- package/skills/mono/scripts/validate_operations.py +2 -2
- package/skills/mono//357/275/223/357/275/217/357/275/213/357/275/205/357/274/215/357/275/203/357/275/214/357/275/211/346/225/264/344/275/223/346/236/266/346/236/204.html +13 -0
- package/skills/multi/soke-ai-coach-director/README.md +3 -0
- package/skills/multi/soke-ai-coach-director/assets/LEARNINGS-TEMPLATE.md +1 -0
- package/skills/multi/soke-ai-coach-director/coaching/prompt-engineer/parts/part1-basic.md +1 -1
- package/skills/multi/soke-ai-coach-director/platform/publish-gate.md +1 -0
- package/skills/multi/soke-ai-coach-director/references/exec-handbook.md +5 -5
- package/skills/multi/soke-ai-coach-director/references/exec-part1.md +5 -5
- package/skills/multi/soke-ai-coach-director/references/platform-api-pitfalls.md +1 -1
- package/skills/multi/soke-ai-coach-director/references/self-improvement-examples.md +3 -0
- package/skills/multi/soke-ai-coach-director/references/self-learning-engine.md +4 -0
- package/skills/multi/soke-ai-coach-director/references/subs/part1/SOP.md +2 -2
- package/skills/multi/soke-ai-coach-director/scripts/activator.sh +4 -0
- package/skills/multi/soke-ai-coach-director/scripts/error-detector.sh +4 -0
- package/skills/multi/soke-ai-coach-director/scripts/extract-skill.sh +7 -0
- package/skills/multi/soke-ai-coach-director/scripts/gate_check.py +2 -0
- package/skills/multi/soke-ai-coach-director/scripts/validate_operations.py +9 -2
- package/skills/multi/soke-ai-training/SKILL.md +2 -0
- package/skills/multi/soke-course/.skill-metadata.yaml +40 -0
- package/skills/multi/soke-course/CHANGELOG.md +77 -0
- package/skills/multi/soke-course/README.md +27 -274
- package/skills/multi/soke-course/SKILL.md +135 -353
- package/skills/multi/soke-course/_user_meta.json +5 -0
- package/skills/multi/soke-course/agents/openai.yaml +1 -5
- package/skills/multi/soke-course/references/cli-facts.md +105 -0
- package/skills/multi/soke-course/references/examples.md +30 -454
- package/skills/multi/soke-course/references/intent-cases.md +65 -99
- package/skills/multi/soke-course/references/sop-full-workflow.md +81 -177
- package/skills/multi/soke-course/references/sop-lesson-types.md +21 -58
- package/skills/multi/soke-course/references/sop-publish-check.md +14 -71
- package/skills/multi/soke-course/references/subs/assign/SOP.md +37 -0
- package/skills/multi/soke-course/references/subs/category/SOP.md +18 -27
- package/skills/multi/soke-course/references/subs/exam/SOP.md +28 -0
- package/skills/multi/soke-course/references/subs/lesson/SOP.md +28 -0
- package/skills/multi/soke-course/references/subs/material/SOP.md +24 -0
- package/skills/multi/soke-course/references/subs/photo/SOP.md +23 -0
- package/skills/multi/soke-course/references/subs/publish/SOP.md +15 -157
- package/skills/multi/soke-course/references/subs/query/SOP.md +22 -151
- package/skills/multi/soke-course/references/subs/settings/SOP.md +3 -4
- package/skills/multi/soke-course/references/subs/template/SOP.md +37 -210
- package/skills/multi/soke-course/references/troubleshoot.md +37 -54
- package/skills/multi/soke-course/scripts/check_readiness.sh +45 -0
- package/skills/multi/soke-course/{references/installation.md → soke-cli-install-guide.md} +3 -0
- package/skills/mono/references/modules/soke-course/agents/openai.yaml +0 -7
- package/skills/mono/references/modules/soke-course/references/course-list-courses.md +0 -216
- package/skills/mono/references/modules/soke-course/references/examples.md +0 -480
- package/skills/mono/references/modules/soke-course/references/intent-cases.md +0 -99
- package/skills/mono/references/modules/soke-course/references/sop-full-workflow.md +0 -177
- package/skills/mono/references/modules/soke-course/references/sop-lesson-types.md +0 -66
- package/skills/mono/references/modules/soke-course/references/sop-publish-check.md +0 -76
- package/skills/mono/references/modules/soke-course/references/subs/ai/SOP.md +0 -153
- package/skills/mono/references/modules/soke-course/references/subs/charge/SOP.md +0 -107
- package/skills/mono/references/modules/soke-course/references/subs/copy/SOP.md +0 -80
- package/skills/mono/references/modules/soke-course/references/subs/publish/SOP.md +0 -168
- package/skills/mono/references/modules/soke-course/references/subs/query/SOP.md +0 -165
- package/skills/mono/references/modules/soke-course/references/subs/template/SOP.md +0 -223
- package/skills/mono/references/modules/soke-course/references/troubleshoot.md +0 -68
- package/skills/multi/soke-course/examples/create-basic.md +0 -70
- package/skills/multi/soke-course/references/course-list-courses.md +0 -216
- package/skills/multi/soke-course/references/dependencies/soke-assign.md +0 -103
- package/skills/multi/soke-course/references/dependencies/soke-lesson.md +0 -119
- package/skills/multi/soke-course/references/dependencies/soke-material.md +0 -105
- package/skills/multi/soke-course/references/shared.md +0 -185
- package/skills/multi/soke-course/references/subs/ai/SOP.md +0 -153
- package/skills/multi/soke-course/scripts/check_readiness.py +0 -87
- /package/skills/mono/references/{installation.md → shared/installation.md} +0 -0
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: soke-course-publish
|
|
3
|
-
version: 1.0.0
|
|
4
|
-
description: 发布管理 — 发布前 Gate Check 五道校验 + 发布操作,含状态流转与审批规则
|
|
5
|
-
tags: [soke, publish, gate-check, status, approval]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# 发布管理
|
|
9
|
-
|
|
10
|
-
## 触发描述
|
|
11
|
-
|
|
12
|
-
课程内容与设置准备就绪后,需要将课程发布上线供学员学习时触发本技能。发布前需通过 Gate Check 五道校验,通过后方可执行发布操作。
|
|
13
|
-
|
|
14
|
-
## 课程状态流转
|
|
15
|
-
|
|
16
|
-
```
|
|
17
|
-
┌──────────┐ 发布 ┌──────────┐
|
|
18
|
-
│ 0: 未发布 │ ──────────→ │ 1: 已发布 │
|
|
19
|
-
└──────────┘ └─────┬────┘
|
|
20
|
-
↑ │
|
|
21
|
-
│ 关闭 │
|
|
22
|
-
└───────────────────────────┘
|
|
23
|
-
← 重新发布
|
|
24
|
-
|
|
25
|
-
┌──────────┐
|
|
26
|
-
│ 2: 已关闭 │
|
|
27
|
-
└──────────┘
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
| 状态码 | 含义 | 说明 |
|
|
31
|
-
|--------|------|------|
|
|
32
|
-
| `0` | 未发布 | 课程初始状态,可编辑,学员不可见 |
|
|
33
|
-
| `1` | 已发布 | 已上线,学员可见可学习 |
|
|
34
|
-
| `2` | 已关闭 | 已下线,学员不可见,可重新发布 |
|
|
35
|
-
|
|
36
|
-
> 已关闭 (status=2) 的课程可重新发布回到 status=1,也可继续编辑后重新发布。
|
|
37
|
-
|
|
38
|
-
## 执行流程
|
|
39
|
-
|
|
40
|
-
### 第一步:Gate Check(发布前置校验)
|
|
41
|
-
|
|
42
|
-
执行 `course +publish` 前,系统自动完成以下 5 项校验。**任何一项不通过则发布失败。**
|
|
43
|
-
|
|
44
|
-
| 序号 | 校验项 | 通过条件 | 不通过提示 |
|
|
45
|
-
|------|--------|----------|-----------|
|
|
46
|
-
| 1 | **标题** | 课程标题不为空 | "请填写课程标题" |
|
|
47
|
-
| 2 | **分类** | 已选择课程所属分类 | "请选择课程分类" |
|
|
48
|
-
| 3 | **课件 ≥ 1** | 课程下至少有 1 节课件 | "请至少添加一节课件" |
|
|
49
|
-
| 4 | **无转码失败课件** | 所有视频/音频课件转码状态为成功 | "存在转码失败的课件,请重新上传" |
|
|
50
|
-
| 5 | **无转码中课件** | 没有正在转码的课件(转码完成后才可发布) | "课件转码中,请稍候再发布" |
|
|
51
|
-
|
|
52
|
-
> 文档类课件无需转码,校验项 4、5 仅针对视频和音频课件。
|
|
53
|
-
|
|
54
|
-
### 第二步:执行发布 `course +publish`
|
|
55
|
-
|
|
56
|
-
直接发布:
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
soke course +publish --course-id <courseId>
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
定时发布:
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
soke course +publish \
|
|
66
|
-
--course-id <courseId> \
|
|
67
|
-
--publish-time "2026-07-14 17:24:42"
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
| 参数 | 必填 | 说明 |
|
|
71
|
-
|------|------|------|
|
|
72
|
-
| `--course-id` | 是 | 课程 ID |
|
|
73
|
-
| `--publish-time` | 否 | 定时发布时间,输入北京时间;不传则直接发布 |
|
|
74
|
-
|
|
75
|
-
> 实现口径:传入非零 `--publish-time` 时开启定时发布;未传或传 `0000-00-00 00:00:00` 时不开启定时发布。
|
|
76
|
-
|
|
77
|
-
发布成功后课程状态由 `0` → `1`。
|
|
78
|
-
|
|
79
|
-
## 关闭课程
|
|
80
|
-
|
|
81
|
-
关闭已发布课程:
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
soke course +update --course-id <courseId> --action close
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
关闭成功后课程状态由 `1` → `2`,学员端不可见,历史学习记录保留。已关闭课程可再次执行 `course +publish` 重新发布。
|
|
88
|
-
|
|
89
|
-
## 删除课程
|
|
90
|
-
|
|
91
|
-
删除未发布或已关闭课程:
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
soke course +delete --course-id <courseId>
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
删除前必须先查询课程状态。仅允许删除 `status=0` 未发布或 `status=2` 已关闭课程;`status=1` 已发布课程必须先执行 `course +update --course-id <courseId> --action close` 关闭后再删除。删除成功后课程状态变为已删除(`status=-1` 或 `status=3`)。
|
|
98
|
-
|
|
99
|
-
## ⚠️ CLI 不支持的操作
|
|
100
|
-
|
|
101
|
-
| 操作 | 说明 | 替代路径 |
|
|
102
|
-
|------|------|---------|
|
|
103
|
-
| **审批流** | 发布需经过审批流程 | 后台 → 系统设置 → 审批设置 |
|
|
104
|
-
| **批量发布** | 一次发布多门课程 | 后台 → 课程管理 → 批量操作 |
|
|
105
|
-
|
|
106
|
-
## 审批规则
|
|
107
|
-
|
|
108
|
-
### 默认审批配置
|
|
109
|
-
|
|
110
|
-
| 配置项 | 默认值 | 说明 |
|
|
111
|
-
|--------|--------|------|
|
|
112
|
-
| 审批开关 | **关闭** | 默认不启用审批流,发布即上线 |
|
|
113
|
-
| 审批流层级 | 1 级 | 如需开启,仅支持 1 级审批 |
|
|
114
|
-
| 第一级审批人 | **不可删除** | 审批流至少保留 1 个审批节点 |
|
|
115
|
-
| 默认审批人 | **主管理员** | 系统默认审批人为租户主管理员 |
|
|
116
|
-
| 审批模式 | **或签** | 第一级多个审批人时,任一人通过即可 |
|
|
117
|
-
|
|
118
|
-
### 开启审批流
|
|
119
|
-
|
|
120
|
-
```
|
|
121
|
-
后台 → 系统设置 → 审批设置 → 课程发布审批
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
开启后,发布操作将生成审批单,审批通过后课程才正式上线(status 变为 1)。
|
|
125
|
-
|
|
126
|
-
## 输出标准
|
|
127
|
-
|
|
128
|
-
发布成功:
|
|
129
|
-
|
|
130
|
-
```
|
|
131
|
-
✅ 课程发布成功
|
|
132
|
-
- 课程: {title} (ID: {courseId})
|
|
133
|
-
- 状态: 已发布 (status=1)
|
|
134
|
-
- 学员端已可见
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
Gate Check 不通过(示例):
|
|
138
|
-
|
|
139
|
-
```
|
|
140
|
-
❌ 发布校验未通过
|
|
141
|
-
- [✗] 标题:请填写课程标题
|
|
142
|
-
- [✓] 分类:已选择
|
|
143
|
-
- [✗] 课件:请至少添加一节课件
|
|
144
|
-
- [✓] 转码失败:无
|
|
145
|
-
- [✓] 转码中:无
|
|
146
|
-
|
|
147
|
-
请完成上述校验项后重新发布。
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
## 注意事项
|
|
151
|
-
|
|
152
|
-
1. 先过 Gate Check,再执行 publish — 校验项全部通过是发布的必要条件
|
|
153
|
-
2. 转码是异步过程,上传视频/音频后需等待转码完成再发布
|
|
154
|
-
3. 课程关闭后学员端不可见,但历史学习记录保留
|
|
155
|
-
4. 关闭后可重新发布,状态回到 1
|
|
156
|
-
5. 删除课程不可逆,CLI 只允许删除未发布(status=0)或已关闭(status=2)课程
|
|
157
|
-
6. 审批流默认关闭,如需开启需后台手动配置
|
|
158
|
-
|
|
159
|
-
## 检查清单
|
|
160
|
-
|
|
161
|
-
- [ ] 标题已填写(非空)
|
|
162
|
-
- [ ] 分类已选择
|
|
163
|
-
- [ ] 课件数 ≥ 1
|
|
164
|
-
- [ ] 无转码失败的课件
|
|
165
|
-
- [ ] 无正在转码中的课件
|
|
166
|
-
- [ ] 五道校验全部通过
|
|
167
|
-
- [ ] publish 执行成功,状态确认变为 1
|
|
168
|
-
- [ ] 如涉及审批流,已告知默认关闭及后台配置路径
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: soke-course-query
|
|
3
|
-
version: 1.0.0
|
|
4
|
-
description: 数据查询 — 课程/学员/学习记录/人脸验证数据查询
|
|
5
|
-
tags: [soke, query, data, analytics, learning-records]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# 数据查询
|
|
9
|
-
|
|
10
|
-
## 触发描述
|
|
11
|
-
|
|
12
|
-
需要查询课程数据、学员学习记录、人脸验证记录等运营数据时触发本技能。支持课程维度、学员维度、课件维度的多层级数据查询。
|
|
13
|
-
|
|
14
|
-
## 通用约束
|
|
15
|
-
|
|
16
|
-
- 课程列表走 `/skills/course/list`,不再使用创建时间范围筛选。
|
|
17
|
-
- 学习记录类查询如包含时间参数,时间戳仍使用**毫秒级 Unix timestamp**。
|
|
18
|
-
- **状态码含义**:
|
|
19
|
-
- `status`(课程):`0`=未发布,`1`=已发布,`2`=已关闭
|
|
20
|
-
- `face_status`(人脸):`1`=验证成功,`2`=验证失败
|
|
21
|
-
|
|
22
|
-
## 执行流程
|
|
23
|
-
|
|
24
|
-
### 1. 课程列表 `+list-courses`
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
soke course +list-courses
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
| 参数 | 必填 | 说明 |
|
|
31
|
-
|------|------|------|
|
|
32
|
-
| `--keyword` | 否 | 课程列表模糊搜索关键字 |
|
|
33
|
-
| `--category-path` | 否 | 课程分类 ID,用于按照分类筛选课程 |
|
|
34
|
-
| `--status` | 否 | 按状态过滤(0/1/2) |
|
|
35
|
-
| `--is-in` | 否 | 课程来源:0=外部课列表,1=内部课列表(默认 1) |
|
|
36
|
-
| `--is-my` | 否 | 是否只看我创建的(默认 0) |
|
|
37
|
-
| `--is-joint` | 否 | 协同给我的(默认 0) |
|
|
38
|
-
| `--joint-out` | 否 | 我协同出去的(默认 0) |
|
|
39
|
-
| `--page` | 否 | 页码(默认 1) |
|
|
40
|
-
| `--page-size` | 否 | 每页条数(默认 10) |
|
|
41
|
-
|
|
42
|
-
返回课程列表,包含课程 ID、标题、状态、创建时间、学习人数等摘要。
|
|
43
|
-
|
|
44
|
-
### 2. 课程详情 `+get-course`
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
soke course +get-course --course-id <courseId>
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
| 参数 | 必填 | 说明 |
|
|
51
|
-
|------|------|------|
|
|
52
|
-
| `--course-id` | 是 | 课程 ID |
|
|
53
|
-
|
|
54
|
-
返回课程完整信息:标题、描述、分类、状态、讲师、课件数、学习人数、完成率等。
|
|
55
|
-
|
|
56
|
-
### 3. 课程学员列表 `+list-course-users`
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
soke course +list-course-users --course-id <courseId>
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
| 参数 | 必填 | 说明 |
|
|
63
|
-
|------|------|------|
|
|
64
|
-
| `--course-id` | 是 | 课程 ID |
|
|
65
|
-
| `--status` | 否 | 学习状态过滤(进行中/已完成/未开始) |
|
|
66
|
-
| `--keyword` | 否 | 按学员姓名搜索 |
|
|
67
|
-
| `--page` | 否 | 页码 |
|
|
68
|
-
| `--page-size` | 否 | 每页条数 |
|
|
69
|
-
|
|
70
|
-
返回该课程所有学员列表,包含用户 ID、姓名、部门、学习进度、学习时长、完成状态。
|
|
71
|
-
|
|
72
|
-
### 4. 学员详情 `+get-course-user`
|
|
73
|
-
|
|
74
|
-
```bash
|
|
75
|
-
soke course +get-course-user \
|
|
76
|
-
--course-id <courseId> \
|
|
77
|
-
--user-id <userId>
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
| 参数 | 必填 | 说明 |
|
|
81
|
-
|------|------|------|
|
|
82
|
-
| `--course-id` | 是 | 课程 ID |
|
|
83
|
-
| `--user-id` | 是 | 学员 ID |
|
|
84
|
-
|
|
85
|
-
返回单个学员在该课程下的详细学习记录:每节课时进度、总时长、完成状态、成绩等。
|
|
86
|
-
|
|
87
|
-
### 5. 课件学习记录 `+list-lesson-learns`
|
|
88
|
-
|
|
89
|
-
```bash
|
|
90
|
-
soke course +list-lesson-learns \
|
|
91
|
-
--lesson-id <lessonId> \
|
|
92
|
-
--start-time <ms> \
|
|
93
|
-
--end-time <ms>
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
| 参数 | 必填 | 说明 |
|
|
97
|
-
|------|------|------|
|
|
98
|
-
| `--lesson-id` | 是 | 课件 ID |
|
|
99
|
-
| `--start-time` | 是 | 起始时间(ms),跨度 ≤ 365 天 |
|
|
100
|
-
| `--end-time` | 是 | 结束时间(ms) |
|
|
101
|
-
| `--user-id` | 否 | 按学员过滤 |
|
|
102
|
-
|
|
103
|
-
返回指定课件在时间范围内的学员学习记录:用户、学习时长、完成百分比、首次学习时间、最后学习时间。
|
|
104
|
-
|
|
105
|
-
### 6. 人脸验证记录 `+list-lesson-faces`
|
|
106
|
-
|
|
107
|
-
```bash
|
|
108
|
-
soke course +list-lesson-faces \
|
|
109
|
-
--lesson-id <lessonId> \
|
|
110
|
-
--start-time <ms> \
|
|
111
|
-
--end-time <ms>
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
| 参数 | 必填 | 说明 |
|
|
115
|
-
|------|------|------|
|
|
116
|
-
| `--lesson-id` | 是 | 课件 ID |
|
|
117
|
-
| `--start-time` | 是 | 起始时间(ms),跨度 ≤ 365 天 |
|
|
118
|
-
| `--end-time` | 是 | 结束时间(ms) |
|
|
119
|
-
| `--user-id` | 否 | 按学员过滤 |
|
|
120
|
-
| `--face-status` | 否 | 验证状态:`1`=成功,`2`=失败 |
|
|
121
|
-
|
|
122
|
-
返回人脸验证记录,包含:
|
|
123
|
-
- 用户信息
|
|
124
|
-
- 验证时间
|
|
125
|
-
- `face_status`:`1` = 验证成功,`2` = 验证失败
|
|
126
|
-
- 失败原因(如有人脸不匹配、超时等)
|
|
127
|
-
|
|
128
|
-
## 输出标准
|
|
129
|
-
|
|
130
|
-
以结构化表格或摘要形式输出查询结果,示例如下:
|
|
131
|
-
|
|
132
|
-
**课程列表**:
|
|
133
|
-
```
|
|
134
|
-
📋 课程列表 (共 N 门)
|
|
135
|
-
|
|
136
|
-
| 标题 | 状态 | 学员数 | 完成率 | 创建时间 |
|
|
137
|
-
|------|------|--------|--------|----------|
|
|
138
|
-
| ... | ... | ... | ... | ... |
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
**学员学习记录**:
|
|
142
|
-
```
|
|
143
|
-
📊 {courseTitle} — 学员学习记录 (共 N 人)
|
|
144
|
-
|
|
145
|
-
| 姓名 | 部门 | 进度 | 学习时长 | 状态 |
|
|
146
|
-
|------|------|------|----------|------|
|
|
147
|
-
| ... | ... | ... | ... | ... |
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
## 注意事项
|
|
151
|
-
|
|
152
|
-
1. **时间跨度**:所有时间范围查询(start-time / end-time)跨度不超过 365 天,超过需分段查询
|
|
153
|
-
2. **时间戳单位**:统一使用毫秒 (ms),`Date.now()` 风格的时间戳,如 `1700000000000`
|
|
154
|
-
3. **分页查询**:大数据量查询务必使用分页参数,避免超时
|
|
155
|
-
4. **face_status 枚举**:仅 `1`(成功)和 `2`(失败),无其他状态值
|
|
156
|
-
5. **课程状态枚举**:`0`(未发布)/ `1`(已发布)/ `2`(已关闭),查询时按需过滤
|
|
157
|
-
6. 人脸验证记录仅在人脸识别功能已开启的课程中产生数据
|
|
158
|
-
|
|
159
|
-
## 检查清单
|
|
160
|
-
|
|
161
|
-
- [ ] 时间范围 ≤ 365 天
|
|
162
|
-
- [ ] 时间戳已确认采用毫秒单位
|
|
163
|
-
- [ ] 分页参数对大结果集已设置
|
|
164
|
-
- [ ] face_status 查询值为 1 或 2
|
|
165
|
-
- [ ] course status 查询值为 0/1/2
|
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: course-template
|
|
3
|
-
version: 1.1.0
|
|
4
|
-
description: 课程模板选择 — 7套预置配置,按业务场景快速初始化课程设置
|
|
5
|
-
tags: [soke, course, template, preset]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# 课程模板
|
|
9
|
-
|
|
10
|
-
## 触发描述
|
|
11
|
-
|
|
12
|
-
创建课程(Step 1.3 完成)后立即触发。根据用户业务场景推荐对应模板,输出预置配置清单。Phase 3 时展示当前所有设置项,用户可用自然语言逐项覆盖。
|
|
13
|
-
|
|
14
|
-
## 模板速查
|
|
15
|
-
|
|
16
|
-
| # | 模板名称 | 一句话场景 | 特征标签 |
|
|
17
|
-
|---|---------|-----------|---------|
|
|
18
|
-
| 1 | 合规必修(最严) | 安全/合规/法务培训 | 🔒最严管控 |
|
|
19
|
-
| 2 | 考核认证 | 上岗/资格/技能鉴定 | 📝考试+证书 |
|
|
20
|
-
| 3 | 新人入职 | 新员工/转岗培训 | 🚀快速上手 |
|
|
21
|
-
| 4 | 知识分享 | 内部分享/兴趣课程 | 📖自由学习 |
|
|
22
|
-
| 5 | 领导力/软技能 | 管理/沟通/职业素养 | 🎓进阶提升 |
|
|
23
|
-
| 6 | 产品/业务培训 | 新产品上线/业务更新 | 📦快速推送 |
|
|
24
|
-
| 7 | 不选择模板 | 手动逐项配置 | ✋自行设置 |
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## 配置映射表
|
|
29
|
-
|
|
30
|
-
### 1. 合规必修(最严)
|
|
31
|
-
|
|
32
|
-
| 设置项 | 值 | CLI | 说明 |
|
|
33
|
-
|--------|-----|:---:|------|
|
|
34
|
-
| 学习模式 | 必修 + 解锁式(LongDragon) | ⚠️ | 后台:学习设置 |
|
|
35
|
-
| 人脸识别 | 开启 | ⚠️ | 后台:学习设置 → 人脸识别 |
|
|
36
|
-
| 倍速播放 | 禁用 | ⚠️ | 后台:学习设置 → 播放控制 |
|
|
37
|
-
| 拖动进度条 | 禁用 | ⚠️ | 后台:学习设置 → 播放控制 |
|
|
38
|
-
| 电子签名 | 开启 | ⚠️ | 后台:证书设置 → 签名管理 |
|
|
39
|
-
| 收费 | 可选 | ⚠️ | 后台:收费设置 |
|
|
40
|
-
| 截止时间 | 需设置 | ⚠️ | 后台:学习设置 |
|
|
41
|
-
| 课程评价 | 打星评价 | ⚠️ | 后台:评价设置 |
|
|
42
|
-
| 关联证书 | 是 | ⚠️ | 后台:证书设置 |
|
|
43
|
-
| 发布方式 | 审批发布 | ⚠️ | 后台:发布设置 |
|
|
44
|
-
|
|
45
|
-
**适用场景**:安全培训、合规培训、法务必修课。需要强制学习+防作弊+可追溯。
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
### 2. 考核认证
|
|
50
|
-
|
|
51
|
-
| 设置项 | 值 | CLI | 说明 |
|
|
52
|
-
|--------|-----|:---:|------|
|
|
53
|
-
| 学习模式 | 必修 + 解锁式(LongDragon) | ⚠️ | 后台:学习设置 |
|
|
54
|
-
| 小测验 | 限制次数 | ⚠️ | 后台:课件设置 |
|
|
55
|
-
| 作业 | 多级审批 | ⚠️ | 后台:课件设置 |
|
|
56
|
-
| 人脸识别 | 选开 | ⚠️ | 后台:学习设置 → 人脸识别 |
|
|
57
|
-
| 关联证书 | 是 | ⚠️ | 后台:证书设置 |
|
|
58
|
-
| 发布方式 | 审批发布 | ⚠️ | 后台:发布设置 |
|
|
59
|
-
|
|
60
|
-
**适用场景**:上岗考试、资格认证、技能鉴定。需考核+认证背书。
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
### 3. 新人入职
|
|
65
|
-
|
|
66
|
-
| 设置项 | 值 | CLI | 说明 |
|
|
67
|
-
|--------|-----|:---:|------|
|
|
68
|
-
| 学习模式 | 必修 + 自由模式(Free) | ⚠️ | 后台:学习设置 |
|
|
69
|
-
| 倍速播放 | 开启 | ⚠️ | 后台:学习设置 → 播放控制 |
|
|
70
|
-
| 未学提醒 | 开启 | ⚠️ | 后台:学习设置 → 提醒设置 |
|
|
71
|
-
| 截止时间 | 需设置 | ⚠️ | 后台:学习设置 |
|
|
72
|
-
| 自动配课 | 开启 | ⚠️ | 后台:指派设置 |
|
|
73
|
-
| 课程评价 | 打星评价 | ⚠️ | 后台:评价设置 |
|
|
74
|
-
|
|
75
|
-
**适用场景**:新员工培训、转岗培训。需快速覆盖+自动推送+追踪完成。
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
### 4. 知识分享
|
|
80
|
-
|
|
81
|
-
| 设置项 | 值 | CLI | 说明 |
|
|
82
|
-
|--------|-----|:---:|------|
|
|
83
|
-
| 学习模式 | 选修 + 自由模式(Free) | ⚠️ | 后台:学习设置 |
|
|
84
|
-
| 倍速播放 | 开启 | ⚠️ | 后台:学习设置 → 播放控制 |
|
|
85
|
-
| 拖动进度条 | 允许 | ⚠️ | 后台:学习设置 → 播放控制 |
|
|
86
|
-
| 收费 | 免费 | ⚠️ | 后台:收费设置 |
|
|
87
|
-
| 小测验 | 不限次数 | ⚠️ | 后台:课件设置 |
|
|
88
|
-
|
|
89
|
-
**适用场景**:内部分享、兴趣课程、文化宣传。低门槛+自由学习+无考核压力。
|
|
90
|
-
|
|
91
|
-
---
|
|
92
|
-
|
|
93
|
-
### 5. 领导力/软技能
|
|
94
|
-
|
|
95
|
-
| 设置项 | 值 | CLI | 说明 |
|
|
96
|
-
|--------|-----|:---:|------|
|
|
97
|
-
| 学习模式 | 选修或必修 + 自由模式(Free) | ⚠️ | 后台:学习设置 |
|
|
98
|
-
| 作业 | 无需批改 | ⚠️ | 后台:课件设置 |
|
|
99
|
-
| 课程评价 | 打星评价 | ⚠️ | 后台:评价设置 |
|
|
100
|
-
| 关联证书 | 可选 | ⚠️ | 后台:证书设置 |
|
|
101
|
-
| 钉钉群 | 可配置 | ⚠️ | 后台:学习设置 → 钉钉二维码 |
|
|
102
|
-
|
|
103
|
-
**适用场景**:管理培训、沟通课程、职业素养。互动+讨论+可选认证。
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
### 6. 产品/业务培训
|
|
108
|
-
|
|
109
|
-
| 设置项 | 值 | CLI | 说明 |
|
|
110
|
-
|--------|-----|:---:|------|
|
|
111
|
-
| 学习模式 | 必修 + 自由模式(Free) | ⚠️ | 后台:学习设置 |
|
|
112
|
-
| 倍速播放 | 开启 | ⚠️ | 后台:学习设置 → 播放控制 |
|
|
113
|
-
| 拖动进度条 | 允许 | ⚠️ | 后台:学习设置 → 播放控制 |
|
|
114
|
-
| 小测验 | 开启 | ⚠️ | 后台:课件设置 |
|
|
115
|
-
| 定时发布 | 需设置 | ⚠️ | 后台:发布设置 |
|
|
116
|
-
| 未学提醒 | 开启 | ⚠️ | 后台:学习设置 → 提醒设置 |
|
|
117
|
-
|
|
118
|
-
**适用场景**:新产品上线、业务知识更新。需快速推送+检验理解+追踪覆盖。
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
### 7. 不选择模板
|
|
123
|
-
|
|
124
|
-
不预置任何配置项,所有设置在 Phase 3 逐项手动确认。适合模板不匹配的场景或需要精细控制的课程。
|
|
125
|
-
|
|
126
|
-
---
|
|
127
|
-
|
|
128
|
-
## 执行流程
|
|
129
|
-
|
|
130
|
-
### Step 1: 模板选择弹窗(Phase 1 创建课程后立即触发)
|
|
131
|
-
|
|
132
|
-
**先输出速查表:**
|
|
133
|
-
|
|
134
|
-
```
|
|
135
|
-
📋 可选模板(7种):
|
|
136
|
-
|
|
137
|
-
| # | 名称 | 适用场景 | 核心配置 |
|
|
138
|
-
|---|------|---------|---------|
|
|
139
|
-
| 1 | 合规必修 | 安全/合规/法务培训 | 人脸+签名+证书+审批 |
|
|
140
|
-
| 2 | 考核认证 | 上岗考试/资格认证 | 考试+证书+多级审批 |
|
|
141
|
-
| 3 | 新人入职 | 新员工/转岗培训 | 提醒+自动配课+评价 |
|
|
142
|
-
| 4 | 知识分享 | 内部分享/兴趣课程 | 自由学习+免费+不限测验 |
|
|
143
|
-
| 5 | 领导力/软技能 | 管理/沟通/职业素养 | 作业+评价+证书+钉钉群 |
|
|
144
|
-
| 6 | 产品/业务培训 | 新产品上线/业务更新 | 定时发布+小测验+提醒 |
|
|
145
|
-
| 7 | 不选择模板 | 模板不匹配/精细控制 | 无预设,后续逐项手动配置 |
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
**再弹窗让用户选:**
|
|
149
|
-
|
|
150
|
-
```
|
|
151
|
-
ask_user_question
|
|
152
|
-
question: "选择课程模板(7选1,详情见上方表格)"
|
|
153
|
-
header: "模板"
|
|
154
|
-
options:
|
|
155
|
-
- label: "1. 合规必修" description: "安全/合规/法务 · 人脸+签名+证书+审批"
|
|
156
|
-
- label: "2. 考核认证" description: "上岗考试/资格认证 · 考试+证书"
|
|
157
|
-
- label: "3. 新人入职" description: "新员工/转岗 · 提醒+配课+评价"
|
|
158
|
-
- label: "4. 知识分享" description: "内部分享/兴趣 · 自由学习+免费"
|
|
159
|
-
- label: "5. 领导力/软技能" description: "管理/沟通/素养 · 作业+证书+钉钉群"
|
|
160
|
-
- label: "6. 产品/业务培训" description: "产品上线/业务更新 · 定时+测验+提醒"
|
|
161
|
-
- label: "7. 不选择模板" description: "无预设,逐项手动配置"
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
### Step 2: 输出模板配置
|
|
165
|
-
|
|
166
|
-
用户选 1-6 → 输出该模板完整配置表:
|
|
167
|
-
|
|
168
|
-
```
|
|
169
|
-
✅ 已选择「{模板名称}」模板
|
|
170
|
-
|
|
171
|
-
📋 该模板预置以下设置(CLI 不支持,需后台操作):
|
|
172
|
-
|
|
173
|
-
| 设置项 | 预置值 | 后台路径 |
|
|
174
|
-
|--------|--------|---------|
|
|
175
|
-
| xxx | xxx | 后台 → xxx |
|
|
176
|
-
| ... | ... | ... |
|
|
177
|
-
|
|
178
|
-
⏭️ 后续进入 Phase 3 时,可以逐项修改以上设置。回复"继续"进入下一步。
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
用户选 7.「不选择模板」→ 不输出配置清单,直接进入 Phase 1 的路由弹窗。
|
|
182
|
-
|
|
183
|
-
### Step 3: Phase 3 展示当前设置(可逐项修改)
|
|
184
|
-
|
|
185
|
-
进入 Phase 3 时,将当前课程所有设置项以表格形式展示:
|
|
186
|
-
|
|
187
|
-
```
|
|
188
|
-
📋 当前设置(模板: {模板名称}):
|
|
189
|
-
|
|
190
|
-
| 设置项 | 当前值 |
|
|
191
|
-
|--------|--------|
|
|
192
|
-
| 标题 | "xxx" |
|
|
193
|
-
| 描述 | "xxx" |
|
|
194
|
-
| 学习模式 | 必修+解锁式 |
|
|
195
|
-
| 人脸识别 | 开启 |
|
|
196
|
-
| ... | ... |
|
|
197
|
-
|
|
198
|
-
💬 想修改哪项?直接告诉我就行,比如:
|
|
199
|
-
- "标题改成 xxx"
|
|
200
|
-
- "学习模式改成自由式"
|
|
201
|
-
- "关掉人脸识别"
|
|
202
|
-
- "加一个证书"
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
用户输入修改指令后的处理:
|
|
206
|
-
|
|
207
|
-
| 修改项 | CLI 支持 | 处理方式 |
|
|
208
|
-
|--------|:---:|------|
|
|
209
|
-
| 标题/描述 | ✅ | 执行 `course +update` 更新,表中同步刷新 |
|
|
210
|
-
| 其他所有设置 | ⚠️ | "该设置需在后台修改(路径: xxx)。我会在清单中标注为待修改。" |
|
|
211
|
-
| 修改模板预设值 | ⚠️ | "已记录:{设置项} → {新值}(需在后台操作)" |
|
|
212
|
-
|
|
213
|
-
每次修改后刷新配置表,直到用户说"可以了"/"继续"进入下一步。
|
|
214
|
-
|
|
215
|
-
---
|
|
216
|
-
|
|
217
|
-
## 注意事项
|
|
218
|
-
|
|
219
|
-
1. 模板选择后不自动通过 CLI 修改课程 — 大部分设置 CLI 不支持
|
|
220
|
-
2. 模板选择不影响已创建的 title/description/category-id
|
|
221
|
-
3. Phase 3 必须展示完整设置清单,让用户逐项确认/修改
|
|
222
|
-
4. 用户选「不选择模板」(7)时,Phase 3 也需展示所有可配置项,方便用户了解能做什么
|
|
223
|
-
5. 若用户选了模板但没去后台配置,发布阶段 Gate Check 可能阻塞
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
# 常见问题排错指南
|
|
2
|
-
|
|
3
|
-
## 认证类
|
|
4
|
-
|
|
5
|
-
| 错误信息 | 原因 | 修复 |
|
|
6
|
-
|---------|------|------|
|
|
7
|
-
| `access_key_id not configured` | 未配置登录凭证 | `soke-cli config set --key access_key_id --value <your-key>` |
|
|
8
|
-
| `Token 过期 / 401 Unauthorized` | 登录 Token 已过期 | `soke-cli auth login` |
|
|
9
|
-
| `Permission denied / 403` | 当前账号无操作权限 | 联系管理员在开放平台开通权限 |
|
|
10
|
-
|
|
11
|
-
## 课程操作类
|
|
12
|
-
|
|
13
|
-
| 错误信息 | 原因 | 修复 |
|
|
14
|
-
|---------|------|------|
|
|
15
|
-
| `课程标题为空` | 未设置标题 | `course +update --course-id <id> --title "标题"` |
|
|
16
|
-
| `分类不存在 / category not found` | category-id 无效 | `course +list-categories` 重新查询有效分类 |
|
|
17
|
-
| `课程不存在 / Course not found` | course-id 无效或已删除 | `course +list-courses` 确认课程列表 |
|
|
18
|
-
| `课程状态不是未发布,不能发布` | status=1(已发布)或2(已关闭) | 已发布无需操作;已关闭不能重新发布 |
|
|
19
|
-
| `课件数量不足` | 课程无课件 | 进入 Phase 2 添加课件 |
|
|
20
|
-
|
|
21
|
-
## 上传类
|
|
22
|
-
|
|
23
|
-
| 错误信息 | 原因 | 修复 |
|
|
24
|
-
|---------|------|------|
|
|
25
|
-
| `file not found` | 文件路径错误或不存在 | 检查路径是否正确,使用绝对路径 |
|
|
26
|
-
| `文件类型不支持` | 格式不在支持列表中 | 转换为 .mp4/.mp3/.pdf 等支持格式 |
|
|
27
|
-
| `文件大小超过限制` | 文件超过上限 | 压缩文件后重试 |
|
|
28
|
-
| `OSS upload failed` | 网络问题或 Token 失效 | 重新登录后重试 |
|
|
29
|
-
| `转码失败` | 文件损坏或格式异常 | 删除失败课件,确认源文件可用后重新上传 |
|
|
30
|
-
|
|
31
|
-
## 课件操作类
|
|
32
|
-
|
|
33
|
-
| 错误信息 | 原因 | 修复 |
|
|
34
|
-
|---------|------|------|
|
|
35
|
-
| `素材不存在 / media not found` | media-id 无效 | 确认素材已上传成功 `file +list-files` |
|
|
36
|
-
| `课件类型不匹配` | type 与素材不符 | type 必须与素材上传响应的 type 一致 |
|
|
37
|
-
| `课件已存在` | 重复创建 | 检查 `course +lesson-list` |
|
|
38
|
-
| `课件数量达到上限` | 课程课件数超标 | 删除不需要的课件 |
|
|
39
|
-
|
|
40
|
-
## 指派类
|
|
41
|
-
|
|
42
|
-
| 错误信息 | 原因 | 修复 |
|
|
43
|
-
|---------|------|------|
|
|
44
|
-
| `课程未发布,不能指派` | status ≠ 1 | 先发布课程再指派 |
|
|
45
|
-
| `用户不存在` | user-id 无效 | `assign +list-users` 确认有效用户 |
|
|
46
|
-
| `部门不存在` | dept-id 无效 | `assign +list-departments` 确认有效部门 |
|
|
47
|
-
|
|
48
|
-
## 查询类
|
|
49
|
-
|
|
50
|
-
| 错误信息 | 原因 | 修复 |
|
|
51
|
-
|---------|------|------|
|
|
52
|
-
| `时间范围超过365天` | +list-courses 限制 | 分批查询,每年一次 |
|
|
53
|
-
| `数据为空` | 筛选条件无匹配 | 放宽筛选条件或检查权限范围 |
|
|
54
|
-
|
|
55
|
-
## 通用调试步骤
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
# 1. 检查认证状态
|
|
59
|
-
soke-cli config show
|
|
60
|
-
|
|
61
|
-
# 2. 检查课程是否存在
|
|
62
|
-
soke-cli course +get-course --course-id "xxx" --format json
|
|
63
|
-
|
|
64
|
-
# 3. 检查课件状态
|
|
65
|
-
soke-cli course +lesson-list --course-id "xxx" --format json
|
|
66
|
-
|
|
67
|
-
# 4. 始终使用 --format json 获取结构化输出
|
|
68
|
-
```
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
# 最简创建样例
|
|
2
|
-
|
|
3
|
-
**场景**: 用户只给标题和分类,创建+发布
|
|
4
|
-
|
|
5
|
-
**对话流程:**
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
用户: 创建一门课,叫 Python入门,分类选技术培训
|
|
9
|
-
|
|
10
|
-
主管:
|
|
11
|
-
✅ 获取分类 "技术培训" → uuid: cat_001
|
|
12
|
-
|
|
13
|
-
✅ 创建课程
|
|
14
|
-
📋 课程: Python入门 (id: course_001), 状态: 未发布
|
|
15
|
-
|
|
16
|
-
⏭️ 需要添加课件吗?
|
|
17
|
-
|
|
18
|
-
用户: 先不加了,帮我发布
|
|
19
|
-
|
|
20
|
-
主管:
|
|
21
|
-
⚠️ Gate Check 未通过:
|
|
22
|
-
🔴 课件数量: 0 — 课程至少需要 1 个课件才能发布
|
|
23
|
-
|
|
24
|
-
⏭️ 需要添加课件吗?还是稍后再处理?
|
|
25
|
-
|
|
26
|
-
用户: 那加个视频吧 + demo.mp4
|
|
27
|
-
|
|
28
|
-
主管:
|
|
29
|
-
✅ 上传 demo.mp4 → media-id: media_001
|
|
30
|
-
✅ 创建课件 "demo" (video) → lesson-id: lesson_001
|
|
31
|
-
📋 lesson_001: 转码中...
|
|
32
|
-
|
|
33
|
-
💡 课件已添加。需要调整顺序吗?
|
|
34
|
-
|
|
35
|
-
用户: 不用,发布吧
|
|
36
|
-
|
|
37
|
-
主管:
|
|
38
|
-
🔍 Gate Check:
|
|
39
|
-
① ✅ 标题: Python入门
|
|
40
|
-
② ✅ 分类: 技术培训 (cat_001)
|
|
41
|
-
③ ✅ 课件: 1 个
|
|
42
|
-
④ ✅ 无转码失败课件
|
|
43
|
-
⑤ 🟡 课件 "demo" 正在转码 — 发布后学员暂时看不到,确认?
|
|
44
|
-
|
|
45
|
-
⏭️ 有 1 项警告,确认发布吗?
|
|
46
|
-
|
|
47
|
-
用户: 确认
|
|
48
|
-
|
|
49
|
-
主管:
|
|
50
|
-
✅ 课程已发布
|
|
51
|
-
|
|
52
|
-
📦 Python入门
|
|
53
|
-
🔗 ID: course_001
|
|
54
|
-
📊 课件: 1 个
|
|
55
|
-
📊 状态: ✅ 已发布
|
|
56
|
-
|
|
57
|
-
⏭️ 需要指派学员吗?
|
|
58
|
-
|
|
59
|
-
用户: 暂时不用
|
|
60
|
-
|
|
61
|
-
主管:
|
|
62
|
-
📋 Python入门 (id: course_001)
|
|
63
|
-
Phase 1 ✅ 已创建
|
|
64
|
-
Phase 2 ✅ 课件 1 个
|
|
65
|
-
Phase 3 ⏸️ (跳过)
|
|
66
|
-
Phase 4 ✅ 已发布
|
|
67
|
-
Phase 5 ⏸️ (跳过)
|
|
68
|
-
|
|
69
|
-
⏭️ 随时说"看看学习进度"来查看
|
|
70
|
-
```
|