@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,223 +1,50 @@
|
|
|
1
|
-
|
|
2
|
-
name: course-template
|
|
3
|
-
version: 1.1.0
|
|
4
|
-
description: 课程模板选择 — 7套预置配置,按业务场景快速初始化课程设置
|
|
5
|
-
tags: [soke, course, template, preset]
|
|
6
|
-
---
|
|
1
|
+
# 课程模板子 SOP
|
|
7
2
|
|
|
8
|
-
|
|
3
|
+
> 创建课程后(Step 1.3)立即触发。模板会自动应用 CLI 支持的高级设置;后台能力只生成待办清单,不声称已完成。
|
|
9
4
|
|
|
10
|
-
##
|
|
5
|
+
## Step 1 选择(编码 C,不用弹窗)
|
|
11
6
|
|
|
12
|
-
|
|
7
|
+
速查表带 C 编码展示(C1-C7),用户回复 C 编号选定:
|
|
13
8
|
|
|
14
|
-
|
|
9
|
+
| 模板编码与名称 | 适用场景 | 高级设置 | 小测验 |
|
|
10
|
+
|---|---|---|---|---|
|
|
11
|
+
| C1 合规必修 | 安全/合规/法务 | 解锁+人脸+禁倍速禁拖动+提醒+评价;证书/签名/审批需后台 | 单课程:不加;批量:不加(固定) |
|
|
12
|
+
| C2 考核认证 | 上岗/资格鉴定 | 解锁+评价;证书/审批需后台 | 单课程:加(默认);批量:不加(固定) |
|
|
13
|
+
| C3 新人入职 | 新员工/转岗 | 自由学习+倍速+未学提醒+评价 | 单课程:不加(默认);批量:不加(固定) |
|
|
14
|
+
| C4 知识分享 | 内部分享/兴趣 | 自由学习+倍速+拖动;免费设置需后台 | 单课程:加(默认);批量:不加(固定) |
|
|
15
|
+
| C5 领导力/软技能 | 管理/沟通 | 拖动+评价;作业/证书/钉钉群需后台 | 单课程:不加;批量:不加(固定) |
|
|
16
|
+
| C6 产品/业务 | 新品上线/业务更新 | 自由学习+倍速+未学提醒;定时发布需后台 | 单课程:加(默认);批量:不加(固定) |
|
|
17
|
+
| C7 不选择模板 | 精细控制 | 无预设 | 单课程:无默认;批量:不加(固定) |
|
|
15
18
|
|
|
16
|
-
|
|
17
|
-
|---|---------|-----------|---------|
|
|
18
|
-
| 1 | 合规必修(最严) | 安全/合规/法务培训 | 🔒最严管控 |
|
|
19
|
-
| 2 | 考核认证 | 上岗/资格/技能鉴定 | 📝考试+证书 |
|
|
20
|
-
| 3 | 新人入职 | 新员工/转岗培训 | 🚀快速上手 |
|
|
21
|
-
| 4 | 知识分享 | 内部分享/兴趣课程 | 📖自由学习 |
|
|
22
|
-
| 5 | 领导力/软技能 | 管理/沟通/职业素养 | 🎓进阶提升 |
|
|
23
|
-
| 6 | 产品/业务培训 | 新产品上线/业务更新 | 📦快速推送 |
|
|
24
|
-
| 7 | 不选择模板 | 手动逐项配置 | ✋自行设置 |
|
|
19
|
+
## Step 1.5 模板→设置固定映射(选中即自动应用)
|
|
25
20
|
|
|
26
|
-
|
|
21
|
+
选中模板后:CLI 支持项**立即 `course +advanced` 固定写入**;后台项一行话术记录;小测验默认值带入 Phase 2 弹窗作推荐项。
|
|
27
22
|
|
|
28
|
-
|
|
23
|
+
| 模板 | +advanced 固定参数 | 小测验默认 |
|
|
24
|
+
|------|------------------|---------|
|
|
25
|
+
| C1 合规必修 | --study-type 2 --is-accelerate 0 --is-drag 0 --open-face-recognition 1 --evaluate-required 1 --is-remind 1 | D2 |
|
|
26
|
+
| C2 考核认证 | --study-type 2 --evaluate-required 1 | D1 |
|
|
27
|
+
| C3 新人入职 | --study-type 1 --is-accelerate 1 --is-remind 1 --evaluate-required 1 | D2 |
|
|
28
|
+
| C4 知识分享 | --study-type 1 --is-accelerate 1 --is-drag 1 | D1 |
|
|
29
|
+
| C5 领导力/软技能 | --is-drag 1 --evaluate-required 1 | D2 |
|
|
30
|
+
| C6 产品/业务 | --study-type 1 --is-accelerate 1 --is-remind 1 | D1 |
|
|
31
|
+
| C7 不选择 | 不写 | 无默认,弹窗问 |
|
|
29
32
|
|
|
30
|
-
|
|
33
|
+
## Step 2 输出配置清单
|
|
31
34
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
| 倍速播放 | 禁用 | ⚠️ | 后台:学习设置 → 播放控制 |
|
|
37
|
-
| 拖动进度条 | 禁用 | ⚠️ | 后台:学习设置 → 播放控制 |
|
|
38
|
-
| 电子签名 | 开启 | ⚠️ | 后台:证书设置 → 签名管理 |
|
|
39
|
-
| 收费 | 可选 | ⚠️ | 后台:收费设置 |
|
|
40
|
-
| 截止时间 | 需设置 | ⚠️ | 后台:学习设置 |
|
|
41
|
-
| 课程评价 | 打星评价 | ⚠️ | 后台:评价设置 |
|
|
42
|
-
| 关联证书 | 是 | ⚠️ | 后台:证书设置 |
|
|
43
|
-
| 发布方式 | 审批发布 | ⚠️ | 后台:发布设置 |
|
|
35
|
+
选 1-6 → 先按 Step 1.5 执行 `course +advanced`,再输出该模板设置表,每行标注执行通道:
|
|
36
|
+
- **CLI**:学习模式/倍速/拖动/人脸/提醒/评价/防挂机/评论/二维码 → `course +advanced`;标题/学分/描述/封面 → `course +update`;
|
|
37
|
+
- **后台**:证书/签名(证书设置)、价格/试看(收费设置)、审批发布(审批设置)、截止时间/自动配课(学习/指派设置)、小测验/作业课件(课件添加)。
|
|
38
|
+
选 C7 → 不输出,进入下一步。
|
|
44
39
|
|
|
45
|
-
|
|
40
|
+
## Step 3 Phase 3 设置表(可逐项改)
|
|
46
41
|
|
|
47
|
-
|
|
42
|
+
展示「设置项 | 当前值」两列;用户指令处理:
|
|
43
|
+
- CLI 支持项 → 立即执行 +update/+advanced → 刷新表;
|
|
44
|
+
- 后台项 → 「已记录: {项} → {新值}(需在后台操作: {路径})」→ 刷新表;
|
|
45
|
+
- 「可以了/继续」→ 退出。
|
|
48
46
|
|
|
49
|
-
|
|
47
|
+
## 注意
|
|
50
48
|
|
|
51
|
-
|
|
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 可能阻塞
|
|
49
|
+
- 模板不影响已创建的 title/description/category-id;
|
|
50
|
+
- 选模板但未去后台配置的项,发布 Gate 不阻塞(均为非硬项)。
|
|
@@ -1,68 +1,51 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 排错指南(v6 收敛版)
|
|
2
|
+
|
|
3
|
+
> 与 subs/publish/SOP.md 冲突时以 publish SOP 为准(已收敛)。
|
|
2
4
|
|
|
3
5
|
## 认证类
|
|
4
6
|
|
|
5
|
-
|
|
|
6
|
-
|
|
7
|
-
|
|
|
8
|
-
|
|
|
9
|
-
|
|
|
7
|
+
| 错误 | 原因 | 修复 |
|
|
8
|
+
|------|------|------|
|
|
9
|
+
| Token 过期 / 401 | 登录态失效 | `soke-cli auth login` 重新授权 |
|
|
10
|
+
| Permission denied / 403 | 账号无权限 | 联系管理员在开放平台开通(course/exam/assign 各模块 :write/:readonly) |
|
|
11
|
+
| soke-cli 不存在 | 未安装 | read soke-cli-install-guide.md |
|
|
10
12
|
|
|
11
13
|
## 课程操作类
|
|
12
14
|
|
|
13
|
-
|
|
|
14
|
-
|
|
15
|
-
|
|
|
16
|
-
|
|
|
17
|
-
|
|
|
18
|
-
|
|
|
19
|
-
|
|
|
20
|
-
|
|
21
|
-
##
|
|
22
|
-
|
|
23
|
-
|
|
|
24
|
-
|
|
25
|
-
|
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
31
|
-
## 课件操作类
|
|
32
|
-
|
|
33
|
-
| 错误信息 | 原因 | 修复 |
|
|
34
|
-
|---------|------|------|
|
|
35
|
-
| `素材不存在 / media not found` | media-id 无效 | 确认素材已上传成功 `file +list-files` |
|
|
36
|
-
| `课件类型不匹配` | type 与素材不符 | type 必须与素材上传响应的 type 一致 |
|
|
37
|
-
| `课件已存在` | 重复创建 | 检查 `course +lesson-list` |
|
|
38
|
-
| `课件数量达到上限` | 课程课件数超标 | 删除不需要的课件 |
|
|
15
|
+
| 错误 | 原因 | 修复 |
|
|
16
|
+
|------|------|------|
|
|
17
|
+
| 课程标题为空 | 未设置 | `course +update --title` |
|
|
18
|
+
| category not found | 分类 ID 无效 | `+list-categories` 重查 |
|
|
19
|
+
| Course not found | course-id 无效 | `+list-courses` 确认 |
|
|
20
|
+
| 不能发布 | 课件不足/转码失败 | Gate Check 逐项修复 |
|
|
21
|
+
| 已关闭课程 | — | **可重新发布**(`+publish`);关闭用 `+update --action close` |
|
|
22
|
+
|
|
23
|
+
## 上传/课件类
|
|
24
|
+
|
|
25
|
+
| 错误 | 原因 | 修复 |
|
|
26
|
+
|------|------|------|
|
|
27
|
+
| file not found | 路径错 | 用绝对路径 |
|
|
28
|
+
| 文件类型不支持 | 格式不在列表 | 转 .mp4/.mp3/.pdf 等;图片走 photo-gallery |
|
|
29
|
+
| OSS upload failed | 网络/Token | 重登录后重试 |
|
|
30
|
+
| 转码失败 | 源文件损坏 | 删课件重传 |
|
|
31
|
+
| media not found | media-id 无效 | `file list-files` 确认 |
|
|
32
|
+
| 课件类型不匹配 | type 与素材不符 | type 必须等于上传返回的 type |
|
|
39
33
|
|
|
40
34
|
## 指派类
|
|
41
35
|
|
|
42
|
-
|
|
|
43
|
-
|
|
44
|
-
|
|
|
45
|
-
|
|
|
46
|
-
| `部门不存在` | dept-id 无效 | `assign +list-departments` 确认有效部门 |
|
|
36
|
+
| 错误 | 原因 | 修复 |
|
|
37
|
+
|------|------|------|
|
|
38
|
+
| 课程未发布不能指派 | 当前平台允许未发布课程指派;学员需发布后可见 | 先完成指派,再执行发布 Gate;发布后回查指派结果 |
|
|
39
|
+
| 用户/部门不存在 | ID 无效 | `assign +list-users` / `+list-departments` 确认 |
|
|
47
40
|
|
|
48
|
-
##
|
|
41
|
+
## 通用调试
|
|
49
42
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
| `时间范围超过365天` | +list-courses 限制 | 分批查询,每年一次 |
|
|
53
|
-
| `数据为空` | 筛选条件无匹配 | 放宽筛选条件或检查权限范围 |
|
|
54
|
-
|
|
55
|
-
## 通用调试步骤
|
|
43
|
+
- **CLI 报错的 Error 行打印在 usage 输出的尾部**,排错用 `| tail -2`,别看 head;
|
|
44
|
+
- 常见隐性必填:clock 的 --page/--page-size;list-course-users 的 finish 时间(≤7 天窗口)。
|
|
56
45
|
|
|
57
46
|
```bash
|
|
58
|
-
#
|
|
59
|
-
soke-cli
|
|
60
|
-
|
|
61
|
-
#
|
|
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 获取结构化输出
|
|
47
|
+
soke-cli config show # 登录态
|
|
48
|
+
soke-cli doctor # 全量健康检查
|
|
49
|
+
soke-cli <cmd> --format json # 结构化输出
|
|
50
|
+
soke-cli <cmd> --help # 实测参数后补录 cli-facts.md
|
|
68
51
|
```
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# soke-course v6 环境就绪检查(自包含版:无并列技能依赖)
|
|
3
|
+
set -e
|
|
4
|
+
BASE_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
|
5
|
+
|
|
6
|
+
echo "🔍 课程发布主管 v6 — 环境检查"
|
|
7
|
+
echo "============================"
|
|
8
|
+
|
|
9
|
+
echo "🔧 命令行工具:"
|
|
10
|
+
if ! command -v soke-cli &> /dev/null; then
|
|
11
|
+
echo " ❌ soke-cli 未安装 — 请 Read soke-cli-install-guide.md 按步骤安装"
|
|
12
|
+
exit 1
|
|
13
|
+
fi
|
|
14
|
+
echo " ✅ soke-cli: $(soke-cli --version)"
|
|
15
|
+
|
|
16
|
+
CONFIG=$(soke-cli config show 2>/dev/null || echo "")
|
|
17
|
+
# config show 使用中文标签「用户凭证」,不能只匹配旧字段名。
|
|
18
|
+
TOKEN_LINE=$(printf '%s\n' "$CONFIG" | grep -E '^用户凭证:' || true)
|
|
19
|
+
TOKEN_VALUE=$(printf '%s\n' "$TOKEN_LINE" | sed 's/^用户凭证:[[:space:]]*//')
|
|
20
|
+
if [ -n "$TOKEN_VALUE" ] && [ "$TOKEN_VALUE" != "(未设置)" ]; then
|
|
21
|
+
echo " ✅ 已登录"
|
|
22
|
+
else
|
|
23
|
+
echo " ⚠️ 未登录或 Token 过期 — 将由主流程自动执行网页登录授权"
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
echo "📁 子能力 SOP (references/subs/):"
|
|
27
|
+
for sub in category settings charge publish copy query template material lesson assign exam photo; do
|
|
28
|
+
if [ -f "$BASE_DIR/references/subs/$sub/SOP.md" ]; then
|
|
29
|
+
echo " ✅ $sub"
|
|
30
|
+
else
|
|
31
|
+
echo " ❌ $sub (缺失)"
|
|
32
|
+
fi
|
|
33
|
+
done
|
|
34
|
+
|
|
35
|
+
echo "📚 参考文档:"
|
|
36
|
+
for ref in cli-facts.md intent-cases.md sop-full-workflow.md sop-lesson-types.md sop-publish-check.md troubleshoot.md examples.md; do
|
|
37
|
+
if [ -f "$BASE_DIR/references/$ref" ]; then
|
|
38
|
+
echo " ✅ $ref"
|
|
39
|
+
else
|
|
40
|
+
echo " ❌ $ref (缺失)"
|
|
41
|
+
fi
|
|
42
|
+
done
|
|
43
|
+
|
|
44
|
+
echo ""
|
|
45
|
+
echo "✅ 环境检查完成"
|
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
# 课程列表查询参考
|
|
2
|
-
|
|
3
|
-
## 命令说明
|
|
4
|
-
|
|
5
|
-
`soke-cli course +list-courses` 用于查询课程列表,转发到 `/skills/course/list`,支持按课程列表模糊搜索关键字、课程分类、课程状态、课程来源、我的课程和协同关系筛选。
|
|
6
|
-
|
|
7
|
-
## 基本用法
|
|
8
|
-
|
|
9
|
-
### 查询已发布课程
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
soke-cli course +list-courses \
|
|
13
|
-
--status 1 \
|
|
14
|
-
--page 1 \
|
|
15
|
-
--page-size 10
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
**说明**:
|
|
19
|
-
- `--status`: 课程状态,默认 `1`
|
|
20
|
-
- `--page`: 页码,默认 `1`
|
|
21
|
-
- `--page-size`: 每页数据,默认 `10`
|
|
22
|
-
|
|
23
|
-
## 高级筛选
|
|
24
|
-
|
|
25
|
-
### 按课程状态筛选
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
# 查询已发布的课程
|
|
29
|
-
soke-cli course +list-courses \
|
|
30
|
-
--status 1
|
|
31
|
-
|
|
32
|
-
# 查询未发布的课程
|
|
33
|
-
soke-cli course +list-courses \
|
|
34
|
-
--status 0
|
|
35
|
-
|
|
36
|
-
# 查询已关闭的课程
|
|
37
|
-
soke-cli course +list-courses \
|
|
38
|
-
--status 2
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
**状态说明**:
|
|
42
|
-
- `0`: 未发布
|
|
43
|
-
- `1`: 已发布
|
|
44
|
-
- `2`: 已关闭
|
|
45
|
-
|
|
46
|
-
### 按课程来源筛选
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
# 查询内部课列表
|
|
50
|
-
soke-cli course +list-courses \
|
|
51
|
-
--is-in 1
|
|
52
|
-
|
|
53
|
-
# 查询外部课列表
|
|
54
|
-
soke-cli course +list-courses \
|
|
55
|
-
--is-in 0
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
**来源说明**:
|
|
59
|
-
- `0`: 外部课列表
|
|
60
|
-
- `1`: 内部课列表
|
|
61
|
-
|
|
62
|
-
### 按关键字筛选
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
soke-cli course +list-courses \
|
|
66
|
-
--keyword "测试"
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
**说明**:`--keyword` 是课程列表模糊搜索关键字。
|
|
70
|
-
|
|
71
|
-
### 按课程分类筛选
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
soke-cli course +list-courses \
|
|
75
|
-
--category-path "category-uuid-here"
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
**说明**:`--category-path` 会作为接口参数 `categoryPath` 传递,用于按照课程分类 ID 筛选课程。
|
|
79
|
-
|
|
80
|
-
### 组合筛选
|
|
81
|
-
|
|
82
|
-
```bash
|
|
83
|
-
# 查询已发布的内部课,只看我创建的,并限制课程分类
|
|
84
|
-
soke-cli course +list-courses \
|
|
85
|
-
--status 1 \
|
|
86
|
-
--is-in 1 \
|
|
87
|
-
--is-my 1 \
|
|
88
|
-
--category-path "category123"
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
## 分页查询
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
# 第一页,每页10条
|
|
95
|
-
soke-cli course +list-courses \
|
|
96
|
-
--page 1 \
|
|
97
|
-
--page-size 10
|
|
98
|
-
|
|
99
|
-
# 第二页,每页10条
|
|
100
|
-
soke-cli course +list-courses \
|
|
101
|
-
--page 2 \
|
|
102
|
-
--page-size 10
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
**分页说明**:
|
|
106
|
-
- `--page`: 页码,从1开始,默认为1
|
|
107
|
-
- `--page-size`: 每页数量,默认为10
|
|
108
|
-
|
|
109
|
-
## 参数说明
|
|
110
|
-
|
|
111
|
-
| 参数 | 默认值 | 说明 |
|
|
112
|
-
|------|--------|------|
|
|
113
|
-
| `--keyword` | 空 | 课程列表模糊搜索关键字 |
|
|
114
|
-
| `--category-path` | 空 | 课程分类 ID,用于按照分类筛选课程 |
|
|
115
|
-
| `--page` | `1` | 页码 |
|
|
116
|
-
| `--is-in` | `1` | 课程来源:0=外部课列表,1=内部课列表 |
|
|
117
|
-
| `--page-size` | `10` | 每页数据 |
|
|
118
|
-
| `--is-my` | `0` | 是否只看我创建的:0=否,1=是 |
|
|
119
|
-
| `--status` | `1` | 课程状态:0=未发布,1=已发布,2=已关闭 |
|
|
120
|
-
| `--is-joint` | `0` | 协同给我的:0=否,1=是 |
|
|
121
|
-
| `--joint-out` | `0` | 我协同出去的:0=否,1=是 |
|
|
122
|
-
|
|
123
|
-
## 返回数据示例
|
|
124
|
-
|
|
125
|
-
```json
|
|
126
|
-
{
|
|
127
|
-
"code": "200",
|
|
128
|
-
"status": "ok",
|
|
129
|
-
"message": "success",
|
|
130
|
-
"data": {
|
|
131
|
-
"list": [
|
|
132
|
-
{
|
|
133
|
-
"uuid": "course-uuid-123",
|
|
134
|
-
"title": "Go语言入门教程",
|
|
135
|
-
"category_id": "category-uuid-456",
|
|
136
|
-
"certificate_id": "cert-uuid-789",
|
|
137
|
-
"lector_id": "lector-uuid-101",
|
|
138
|
-
"study_type": 1,
|
|
139
|
-
"credit": 10.00,
|
|
140
|
-
"point": 100.00,
|
|
141
|
-
"status": 1,
|
|
142
|
-
"lesson_num": 20,
|
|
143
|
-
"total_length": 7200,
|
|
144
|
-
"description": "这是一门Go语言入门课程",
|
|
145
|
-
"pc_url": "https://example.com/course/123",
|
|
146
|
-
"mobile_url": "https://m.example.com/course/123",
|
|
147
|
-
"create_time": 1704038400000,
|
|
148
|
-
"update_time": 1704124800000,
|
|
149
|
-
"create_dept_user_id": "user-uuid-111",
|
|
150
|
-
"create_dept_user_name": "张三"
|
|
151
|
-
}
|
|
152
|
-
],
|
|
153
|
-
"has_more": 0
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
## 返回字段说明
|
|
159
|
-
|
|
160
|
-
| 字段 | 类型 | 说明 |
|
|
161
|
-
|------|------|------|
|
|
162
|
-
| uuid | String | 课程唯一ID |
|
|
163
|
-
| title | String | 课程标题 |
|
|
164
|
-
| category_id | String | 课程分类ID |
|
|
165
|
-
| certificate_id | String | 关联证书ID |
|
|
166
|
-
| lector_id | String | 关联讲师ID |
|
|
167
|
-
| study_type | Int | 学习模式(1=自由式, 2=解锁式) |
|
|
168
|
-
| credit | Decimal | 学分数量 |
|
|
169
|
-
| point | Decimal | 积分数量 |
|
|
170
|
-
| status | Int | 课程发布状态(-1=删除, 0=未发布, 1=已发布, 2=关闭) |
|
|
171
|
-
| lesson_num | Int | 课件数量 |
|
|
172
|
-
| total_length | Int | 学时长度(单位:秒) |
|
|
173
|
-
| description | String | 课程描述 |
|
|
174
|
-
| pc_url | String | PC端跳转链接 |
|
|
175
|
-
| mobile_url | String | 移动端跳转链接 |
|
|
176
|
-
| create_time | Int/String | 创建时间 |
|
|
177
|
-
| update_time | Int/String | 更新时间 |
|
|
178
|
-
| create_dept_user_id | String | 创建人ID |
|
|
179
|
-
| create_dept_user_name | String | 创建人姓名 |
|
|
180
|
-
| has_more | Int | 是否还有更多数据(1=有, 0=没有) |
|
|
181
|
-
|
|
182
|
-
## 常见问题
|
|
183
|
-
|
|
184
|
-
### Q: 如何查询所有课程?
|
|
185
|
-
A: 使用分页逐页查询,例如:
|
|
186
|
-
```bash
|
|
187
|
-
soke-cli course +list-courses \
|
|
188
|
-
--page 1 \
|
|
189
|
-
--page-size 10
|
|
190
|
-
|
|
191
|
-
soke-cli course +list-courses \
|
|
192
|
-
--page 2 \
|
|
193
|
-
--page-size 10
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
### Q: 如何知道是否还有更多数据?
|
|
197
|
-
A: 查看返回数据中的 `has_more` 字段:
|
|
198
|
-
- `1`: 还有更多数据,需要继续分页查询
|
|
199
|
-
- `0`: 没有更多数据了
|
|
200
|
-
|
|
201
|
-
### Q: 学习模式的区别是什么?
|
|
202
|
-
A:
|
|
203
|
-
- **自由式(1)**: 学员可以按任意顺序学习课件
|
|
204
|
-
- **解锁式(2)**: 学员必须按顺序完成课件,完成前一个才能解锁下一个
|
|
205
|
-
|
|
206
|
-
## 相关命令
|
|
207
|
-
|
|
208
|
-
- `soke-cli course +get-course`: 获取单个课程详情
|
|
209
|
-
- `soke-cli course +list-categories`: 查询课程分类
|
|
210
|
-
- `soke-cli course +list-lessons`: 查询课程的课件列表
|
|
211
|
-
- `soke-cli course +list-course-users`: 查询课程的学习记录
|
|
212
|
-
|
|
213
|
-
## 权限要求
|
|
214
|
-
|
|
215
|
-
- 权限范围: `course:course:readonly`
|
|
216
|
-
- 需要先完成认证: `soke-cli auth login`
|