@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.
Files changed (156) hide show
  1. package/package.json +1 -1
  2. package/scripts/install.js +8 -0
  3. package/scripts/run.js +3 -2
  4. package/skills/mono/.workbuddy/memory/2026-09-01.md +2 -0
  5. package/skills/mono/.workbuddy/memory/MEMORY.md +4 -0
  6. package/skills/mono/ARCHITECTURE_AND_EXTENSION_GUIDE.md +572 -0
  7. package/skills/mono/README.md +2 -0
  8. package/skills/mono/SKILL.md +125 -119
  9. package/skills/mono/SKILL_MD_/344/274/230/345/214/226/346/226/271/346/241/210.md +478 -0
  10. package/skills/mono/references/modules/README.md +74 -0
  11. package/skills/mono/references/modules/soke-ai-coach-director/CHANGELOG.md +1 -1
  12. package/skills/mono/references/modules/soke-ai-coach-director/MODULE.md +12 -0
  13. package/skills/mono/references/modules/soke-ai-coach-director/README.md +4 -1
  14. package/skills/mono/references/modules/soke-ai-coach-director/coaching/prompt-engineer/parts/part1-basic.md +1 -1
  15. package/skills/mono/references/modules/soke-ai-coach-director/coaching/prompt-optimizer/prompt-optimizer.md +3 -3
  16. package/skills/mono/references/modules/soke-ai-coach-director/platform/adapters/README.md +4 -2
  17. package/skills/mono/references/modules/soke-ai-coach-director/platform/adapters/qclaw.md +3 -1
  18. package/skills/mono/references/modules/soke-ai-coach-director/platform/adapters/{wukong.md → qwen.md} +18 -18
  19. package/skills/mono/references/modules/soke-ai-coach-director/platform/adapters/workbuddy.md +1 -1
  20. package/skills/mono/references/modules/soke-ai-coach-director/platform/api-fallback.md +1 -1
  21. package/skills/mono/references/modules/soke-ai-coach-director/platform/interaction.md +1 -1
  22. package/skills/mono/references/modules/soke-ai-coach-director/platform/platform-support-matrix.md +28 -0
  23. package/skills/mono/references/modules/soke-ai-coach-director/platform/publish-gate.md +1 -0
  24. package/skills/mono/references/modules/soke-ai-coach-director/platform/soke-ai-training/soke-ai-training.md +5 -3
  25. package/skills/mono/references/modules/soke-ai-coach-director/platform/sync-engine.md +2 -2
  26. package/skills/mono/references/modules/soke-ai-coach-director/references/env-check.md +3 -0
  27. package/skills/mono/references/modules/soke-ai-coach-director/references/exec-handbook.md +7 -7
  28. package/skills/mono/references/modules/soke-ai-coach-director/references/exec-part1.md +5 -5
  29. package/skills/mono/references/modules/soke-ai-coach-director/references/platform-api-pitfalls.md +1 -1
  30. package/skills/mono/references/modules/soke-ai-coach-director/references/self-learning-engine.md +4 -0
  31. package/skills/mono/references/modules/soke-ai-coach-director/references/subs/part1/SOP.md +2 -2
  32. package/skills/mono/references/modules/soke-ai-coach-director/references/subs/publish/SOP.md +3 -3
  33. package/skills/mono/references/modules/soke-ai-coach-director/scripts/activator.sh +4 -0
  34. package/skills/mono/references/modules/soke-ai-coach-director/scripts/error-detector.sh +4 -0
  35. package/skills/mono/references/modules/soke-ai-coach-director/scripts/extract-skill.sh +7 -0
  36. package/skills/mono/references/modules/soke-ai-coach-director/scripts/gate_check.py +2 -0
  37. package/skills/mono/references/modules/soke-ai-coach-director/scripts/validate_operations.py +9 -2
  38. package/skills/mono/references/modules/soke-ai-training/MODULE.md +57 -7
  39. package/skills/mono/references/modules/soke-assign/MODULE.md +50 -11
  40. package/skills/mono/references/modules/soke-certificate/MODULE.md +47 -1
  41. package/skills/mono/references/modules/soke-course/CHANGELOG.md +93 -0
  42. package/skills/mono/references/modules/soke-course/MODULE.md +110 -352
  43. package/skills/mono/references/modules/soke-course/README.md +45 -291
  44. package/skills/mono/references/modules/soke-course/cli-facts.md +107 -0
  45. package/skills/mono/references/modules/soke-course/intent-cases.md +41 -0
  46. package/skills/mono/references/modules/soke-course/scripts/check_readiness.sh +45 -0
  47. package/skills/mono/references/modules/soke-course/sop-publish-check.md +46 -0
  48. package/skills/mono/references/modules/soke-course/subs/assign/SOP.md +40 -0
  49. package/skills/mono/references/modules/soke-course/subs/batch/SOP.md +96 -0
  50. package/skills/mono/references/modules/soke-course/{references/subs → subs}/category/SOP.md +18 -27
  51. package/skills/mono/references/modules/soke-course/subs/charge/SOP.md +22 -0
  52. package/skills/mono/references/modules/soke-course/subs/copy/SOP.md +35 -0
  53. package/skills/mono/references/modules/soke-course/subs/exam/SOP.md +39 -0
  54. package/skills/mono/references/modules/soke-course/subs/phase1-create/SOP.md +66 -0
  55. package/skills/mono/references/modules/soke-course/subs/phase2-lesson/SOP.md +34 -0
  56. package/skills/mono/references/modules/soke-course/subs/photo/SOP.md +26 -0
  57. package/skills/mono/references/modules/soke-course/subs/publish/SOP.md +26 -0
  58. package/skills/mono/references/modules/soke-course/subs/query/SOP.md +36 -0
  59. package/skills/mono/references/modules/soke-course/{references/subs → subs}/settings/SOP.md +3 -4
  60. package/skills/mono/references/modules/soke-course/subs/template/SOP.md +58 -0
  61. package/skills/mono/references/modules/soke-exam/MODULE.md +49 -1
  62. package/skills/mono/references/modules/soke-exam-question-pool/MODULE.md +45 -5
  63. package/skills/mono/references/modules/soke-learning-map/MODULE.md +51 -11
  64. package/skills/mono/references/modules/soke-learning-profile/MODULE.md +46 -3
  65. package/skills/mono/references/modules/soke-lesson/MODULE.md +34 -20
  66. package/skills/mono/references/modules/soke-material/MODULE.md +33 -19
  67. package/skills/mono/references/modules/soke-photo-gallery/MODULE.md +40 -20
  68. package/skills/mono/references/modules/soke-shared/MODULE.md +9 -0
  69. package/skills/mono/references/modules/soke-supervisor/MODULE.md +32 -1
  70. package/skills/mono/references/modules/soke-task/MODULE.md +48 -1
  71. package/skills/mono/references/modules/soke-training-demand/MODULE.md +38 -17
  72. package/skills/mono/references/shared/README.md +50 -0
  73. package/skills/mono/references/shared/async-task.md +30 -0
  74. package/skills/mono/references/shared/auth-check.md +57 -0
  75. package/skills/mono/references/shared/command-discovery.md +34 -0
  76. package/skills/mono/references/shared/environment-check.md +31 -0
  77. package/skills/mono/references/shared/error-handling.md +27 -0
  78. package/skills/mono/references/shared/file-input.md +31 -0
  79. package/skills/mono/references/shared/interaction.md +39 -0
  80. package/skills/mono/references/shared/object-context.md +51 -0
  81. package/skills/mono/references/shared/output-policy.md +39 -0
  82. package/skills/mono/references/shared/pagination.md +41 -0
  83. package/skills/mono/references/shared/rule-ownership.md +57 -0
  84. package/skills/mono/references/shared/state-machine.md +35 -0
  85. package/skills/mono/references/shared/write-guard.md +34 -0
  86. package/skills/mono/references/shared/write-verify.md +33 -0
  87. package/skills/mono/references/workflows/README.md +115 -0
  88. package/skills/mono/scripts/check_package.py +310 -0
  89. package/skills/mono/scripts/check_readiness.py +1 -1
  90. package/skills/mono/scripts/check_syntax.py +35 -0
  91. package/skills/mono/scripts/validate_operations.py +2 -2
  92. 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
  93. package/skills/multi/soke-ai-coach-director/README.md +3 -0
  94. package/skills/multi/soke-ai-coach-director/assets/LEARNINGS-TEMPLATE.md +1 -0
  95. package/skills/multi/soke-ai-coach-director/coaching/prompt-engineer/parts/part1-basic.md +1 -1
  96. package/skills/multi/soke-ai-coach-director/platform/publish-gate.md +1 -0
  97. package/skills/multi/soke-ai-coach-director/references/exec-handbook.md +5 -5
  98. package/skills/multi/soke-ai-coach-director/references/exec-part1.md +5 -5
  99. package/skills/multi/soke-ai-coach-director/references/platform-api-pitfalls.md +1 -1
  100. package/skills/multi/soke-ai-coach-director/references/self-improvement-examples.md +3 -0
  101. package/skills/multi/soke-ai-coach-director/references/self-learning-engine.md +4 -0
  102. package/skills/multi/soke-ai-coach-director/references/subs/part1/SOP.md +2 -2
  103. package/skills/multi/soke-ai-coach-director/scripts/activator.sh +4 -0
  104. package/skills/multi/soke-ai-coach-director/scripts/error-detector.sh +4 -0
  105. package/skills/multi/soke-ai-coach-director/scripts/extract-skill.sh +7 -0
  106. package/skills/multi/soke-ai-coach-director/scripts/gate_check.py +2 -0
  107. package/skills/multi/soke-ai-coach-director/scripts/validate_operations.py +9 -2
  108. package/skills/multi/soke-ai-training/SKILL.md +2 -0
  109. package/skills/multi/soke-course/.skill-metadata.yaml +40 -0
  110. package/skills/multi/soke-course/CHANGELOG.md +77 -0
  111. package/skills/multi/soke-course/README.md +27 -274
  112. package/skills/multi/soke-course/SKILL.md +135 -353
  113. package/skills/multi/soke-course/_user_meta.json +5 -0
  114. package/skills/multi/soke-course/agents/openai.yaml +1 -5
  115. package/skills/multi/soke-course/references/cli-facts.md +105 -0
  116. package/skills/multi/soke-course/references/examples.md +30 -454
  117. package/skills/multi/soke-course/references/intent-cases.md +65 -99
  118. package/skills/multi/soke-course/references/sop-full-workflow.md +81 -177
  119. package/skills/multi/soke-course/references/sop-lesson-types.md +21 -58
  120. package/skills/multi/soke-course/references/sop-publish-check.md +14 -71
  121. package/skills/multi/soke-course/references/subs/assign/SOP.md +37 -0
  122. package/skills/multi/soke-course/references/subs/category/SOP.md +18 -27
  123. package/skills/multi/soke-course/references/subs/exam/SOP.md +28 -0
  124. package/skills/multi/soke-course/references/subs/lesson/SOP.md +28 -0
  125. package/skills/multi/soke-course/references/subs/material/SOP.md +24 -0
  126. package/skills/multi/soke-course/references/subs/photo/SOP.md +23 -0
  127. package/skills/multi/soke-course/references/subs/publish/SOP.md +15 -157
  128. package/skills/multi/soke-course/references/subs/query/SOP.md +22 -151
  129. package/skills/multi/soke-course/references/subs/settings/SOP.md +3 -4
  130. package/skills/multi/soke-course/references/subs/template/SOP.md +37 -210
  131. package/skills/multi/soke-course/references/troubleshoot.md +37 -54
  132. package/skills/multi/soke-course/scripts/check_readiness.sh +45 -0
  133. package/skills/multi/soke-course/{references/installation.md → soke-cli-install-guide.md} +3 -0
  134. package/skills/mono/references/modules/soke-course/agents/openai.yaml +0 -7
  135. package/skills/mono/references/modules/soke-course/references/course-list-courses.md +0 -216
  136. package/skills/mono/references/modules/soke-course/references/examples.md +0 -480
  137. package/skills/mono/references/modules/soke-course/references/intent-cases.md +0 -99
  138. package/skills/mono/references/modules/soke-course/references/sop-full-workflow.md +0 -177
  139. package/skills/mono/references/modules/soke-course/references/sop-lesson-types.md +0 -66
  140. package/skills/mono/references/modules/soke-course/references/sop-publish-check.md +0 -76
  141. package/skills/mono/references/modules/soke-course/references/subs/ai/SOP.md +0 -153
  142. package/skills/mono/references/modules/soke-course/references/subs/charge/SOP.md +0 -107
  143. package/skills/mono/references/modules/soke-course/references/subs/copy/SOP.md +0 -80
  144. package/skills/mono/references/modules/soke-course/references/subs/publish/SOP.md +0 -168
  145. package/skills/mono/references/modules/soke-course/references/subs/query/SOP.md +0 -165
  146. package/skills/mono/references/modules/soke-course/references/subs/template/SOP.md +0 -223
  147. package/skills/mono/references/modules/soke-course/references/troubleshoot.md +0 -68
  148. package/skills/multi/soke-course/examples/create-basic.md +0 -70
  149. package/skills/multi/soke-course/references/course-list-courses.md +0 -216
  150. package/skills/multi/soke-course/references/dependencies/soke-assign.md +0 -103
  151. package/skills/multi/soke-course/references/dependencies/soke-lesson.md +0 -119
  152. package/skills/multi/soke-course/references/dependencies/soke-material.md +0 -105
  153. package/skills/multi/soke-course/references/shared.md +0 -185
  154. package/skills/multi/soke-course/references/subs/ai/SOP.md +0 -153
  155. package/skills/multi/soke-course/scripts/check_readiness.py +0 -87
  156. /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
- 创建课程(Step 1.3 完成)后立即触发。根据用户业务场景推荐对应模板,输出预置配置清单。Phase 3 时展示当前所有设置项,用户可用自然语言逐项覆盖。
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
- ### 1. 合规必修(最严)
33
+ ## Step 2 输出配置清单
31
34
 
32
- | 设置项 | | CLI | 说明 |
33
- |--------|-----|:---:|------|
34
- | 学习模式 | 必修 + 解锁式(LongDragon) | ⚠️ | 后台:学习设置 |
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
- ### 2. 考核认证
47
+ ## 注意
50
48
 
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 可能阻塞
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
- | `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` | 当前账号无操作权限 | 联系管理员在开放平台开通权限 |
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
- | `课程标题为空` | 未设置标题 | `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
- | `课件数量达到上限` | 课程课件数超标 | 删除不需要的课件 |
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
- | `课程未发布,不能指派` | status 1 | 先发布课程再指派 |
45
- | `用户不存在` | user-id 无效 | `assign +list-users` 确认有效用户 |
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
- # 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 获取结构化输出
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 "✅ 环境检查完成"
@@ -434,6 +434,9 @@ npx skills add liuchenlong1111/soke-cli -y -g
434
434
 
435
435
  ### 📖 阅读详细文档
436
436
 
437
+ - [README.md](../README.md) - 项目概览
438
+ - [CLAUDE.md](../CLAUDE.md) - 项目架构和开发规范
439
+ - [skills/README.md](../skills/README.md) - AI Agent Skills 详细说明
437
440
 
438
441
  ---
439
442
 
@@ -1,7 +0,0 @@
1
- display_name: 课程发布主管
2
- short_description: 端到端管理线上课创建与发布全流程,自动完成分类选择、课件上传、课程设置、发布校验及学员指派调度。
3
- default_prompt: 帮我创建一门线上课
4
- dependencies:
5
- - soke-material
6
- - soke-lesson
7
- - soke-assign
@@ -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`