@sokeai/cli 1.0.77 → 1.0.78

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 (288) hide show
  1. package/package.json +1 -1
  2. package/scripts/install.js +2 -2
  3. package/scripts/local-test.js +1 -1
  4. package/scripts/test-auto-detect.js +20 -3
  5. package/skills/README.md +25 -174
  6. package/skills/SKILL.md +17 -239
  7. package/skills/mono/README.md +10 -0
  8. package/skills/mono/SKILL.md +223 -0
  9. package/skills/{soke-course/soke-cli/345/256/211/350/243/205/346/214/207/345/215/227.md → mono/references/installation.md} +0 -3
  10. package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/README.md +1 -3
  11. package/skills/mono/references/modules/soke-ai-coach-director/platform/soke-ai-training/soke-ai-training.md +123 -0
  12. package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/self-learning-engine.md +0 -4
  13. package/skills/{soke-ai-training/SKILL.md → mono/references/modules/soke-ai-training/MODULE.md} +1 -1
  14. package/skills/mono/references/modules/soke-assign/README.md +308 -0
  15. package/skills/{soke-certificate/SKILL.md → mono/references/modules/soke-certificate/MODULE.md} +2 -2
  16. package/skills/mono/references/modules/soke-course/MODULE.md +402 -0
  17. package/skills/mono/references/modules/soke-course/README.md +291 -0
  18. package/skills/{soke-course → mono/references/modules/soke-course}/references/examples.md +3 -3
  19. package/skills/{soke-exam/SKILL.md → mono/references/modules/soke-exam/MODULE.md} +1 -1
  20. package/skills/{soke-learning-map/SKILL.md → mono/references/modules/soke-learning-map/MODULE.md} +5 -6
  21. package/skills/{soke-learning-profile/SKILL.md → mono/references/modules/soke-learning-profile/MODULE.md} +2 -2
  22. package/skills/mono/references/modules/soke-lesson/README.md +53 -0
  23. package/skills/mono/references/modules/soke-material/README.md +49 -0
  24. package/skills/{soke-photo-gallery/SKILL.md → mono/references/modules/soke-photo-gallery/MODULE.md} +2 -3
  25. package/skills/mono/references/modules/soke-supervisor/MODULE.md +186 -0
  26. package/skills/mono/references/modules/soke-task/MODULE.md +146 -0
  27. package/skills/{soke-training-demand/SKILL.md → mono/references/modules/soke-training-demand/MODULE.md} +1 -1
  28. package/skills/mono/references/shared/cli-basics.md +185 -0
  29. package/skills/mono/scripts/check_readiness.py +28 -0
  30. package/skills/mono/scripts/gate_check.py +112 -0
  31. package/skills/mono/scripts/validate_operations.py +403 -0
  32. package/skills/multi/README.md +18 -0
  33. package/skills/multi/soke-ai-coach-director/CHANGELOG.md +203 -0
  34. package/skills/multi/soke-ai-coach-director/README.md +121 -0
  35. package/skills/multi/soke-ai-coach-director/SKILL.md +220 -0
  36. package/skills/multi/soke-ai-coach-director/assets/ERRORS-TEMPLATE.md +5 -0
  37. package/skills/multi/soke-ai-coach-director/assets/FEATURE_REQUESTS-TEMPLATE.md +5 -0
  38. package/skills/multi/soke-ai-coach-director/assets/LEARNINGS-TEMPLATE.md +44 -0
  39. package/skills/multi/soke-ai-coach-director/assets/SKILL-TEMPLATE.md +177 -0
  40. package/skills/multi/soke-ai-coach-director/coaching/knowledge-packager/knowledge-packager.md +91 -0
  41. package/skills/multi/soke-ai-coach-director/coaching/prompt-engineer/parts/part1-basic.md +59 -0
  42. package/skills/multi/soke-ai-coach-director/coaching/prompt-engineer/parts/part2-roles.md +97 -0
  43. package/skills/multi/soke-ai-coach-director/coaching/prompt-engineer/parts/part3-flow.md +72 -0
  44. package/skills/multi/soke-ai-coach-director/coaching/prompt-engineer/parts/part4-scoring.md +87 -0
  45. package/skills/multi/soke-ai-coach-director/coaching/prompt-engineer/parts/part5-constraints.md +48 -0
  46. package/skills/multi/soke-ai-coach-director/coaching/prompt-engineer/prompt-engineer.md +76 -0
  47. package/skills/multi/soke-ai-coach-director/coaching/prompt-optimizer/prompt-optimizer.md +381 -0
  48. package/skills/multi/soke-ai-coach-director/coaching/role-profiler/role-profiler.md +87 -0
  49. package/skills/multi/soke-ai-coach-director/platform/adapters/README.md +68 -0
  50. package/skills/multi/soke-ai-coach-director/platform/adapters/qclaw.md +67 -0
  51. package/skills/multi/soke-ai-coach-director/platform/adapters/workbuddy.md +44 -0
  52. package/skills/multi/soke-ai-coach-director/platform/adapters/wukong.md +70 -0
  53. package/skills/multi/soke-ai-coach-director/platform/adapters/zework.md +89 -0
  54. package/skills/multi/soke-ai-coach-director/platform/api-fallback.md +262 -0
  55. package/skills/multi/soke-ai-coach-director/platform/interaction.md +103 -0
  56. package/skills/multi/soke-ai-coach-director/platform/publish-gate.md +44 -0
  57. package/skills/multi/soke-ai-coach-director/platform/resource-finalizer.md +103 -0
  58. package/skills/{soke-ai-coach-director → multi/soke-ai-coach-director}/platform/soke-ai-training/soke-ai-training.md +1 -1
  59. package/skills/multi/soke-ai-coach-director/platform/sync-engine.md +39 -0
  60. package/skills/multi/soke-ai-coach-director/references/cases/AI/345/256/242/346/210/267/350/247/222/350/211/262/346/250/241/346/235/277/345/272/223.md +265 -0
  61. package/skills/multi/soke-ai-coach-director/references/cases/AI/351/231/252/347/273/203Bad Case/346/240/267/346/234/254/345/272/223.md" +206 -0
  62. package/skills/multi/soke-ai-coach-director/references/cases/AI/351/231/252/347/273/203/345/210/233/345/273/272/351/227/256/351/242/230/345/272/223.md +666 -0
  63. package/skills/multi/soke-ai-coach-director/references/cases/AI/351/231/252/347/273/203/345/234/272/346/231/257/345/210/206/347/261/273/345/272/223.md +213 -0
  64. package/skills/multi/soke-ai-coach-director/references/cases/AI/351/231/252/347/273/203/345/256/242/346/210/267/346/235/220/346/226/231/346/270/205/345/215/225/344/270/216/350/256/277/350/260/210/351/242/230/345/272/223.md +229 -0
  65. package/skills/multi/soke-ai-coach-director/references/cases/AI/351/231/252/347/273/203/345/276/256/350/260/203/351/227/256/351/242/230/345/272/223.md +833 -0
  66. package/skills/multi/soke-ai-coach-director/references/cases/AI/351/231/252/347/273/203/346/212/200/346/234/257/350/276/271/347/225/214/344/270/216/346/216/222/351/232/234/345/272/223.md +239 -0
  67. package/skills/multi/soke-ai-coach-director/references/cases/AI/351/231/252/347/273/203/346/217/220/347/244/272/350/257/215/346/250/241/345/235/227/345/272/223.md +249 -0
  68. package/skills/multi/soke-ai-coach-director/references/cases/AI/351/231/252/347/273/203/346/225/260/346/215/256/346/214/207/346/240/207/344/270/216/347/234/213/346/235/277/345/217/243/345/276/204/345/272/223.md +282 -0
  69. package/skills/multi/soke-ai-coach-director/references/cases/AI/351/231/252/347/273/203/346/265/213/350/257/225/347/224/250/344/276/213/345/272/223.md +254 -0
  70. package/skills/multi/soke-ai-coach-director/references/cases/AI/351/231/252/347/273/203/350/257/204/345/210/206/346/240/207/345/207/206/347/273/204/344/273/266/345/272/223.md +264 -0
  71. package/skills/multi/soke-ai-coach-director/references/cases/AI/351/231/252/347/273/203/351/241/271/347/233/256/346/241/210/344/276/213/345/244/215/347/233/230/345/272/223.md +223 -0
  72. package/skills/multi/soke-ai-coach-director/references/cases/AI/351/241/276/345/256/242/350/247/222/350/211/262/346/250/241/346/213/237_GoodCase_BadCase_20260701.md +304 -0
  73. package/skills/multi/soke-ai-coach-director/references/cases/create//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/224/265/350/257/235/347/272/246/350/256/277//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/345/256/242/346/210/267/346/235/220/346/226/231/346/261/207/346/200/273_2026-05-19_1341.md +42 -0
  74. package/skills/multi/soke-ai-coach-director/references/cases/create//346/226/260/350/203/275/346/272/220/350/275/246/344/270/273/350/264/267//346/226/260/350/203/275/346/272/220/350/275/246/344/270/273/350/264/267/347/237/245/350/257/206/345/272/223/347/224/237/346/210/220_20260615.md +23 -0
  75. package/skills/multi/soke-ai-coach-director/references/cases/create//346/226/260/350/203/275/346/272/220/350/275/246/344/270/273/350/264/267//346/226/260/350/203/275/346/272/220/350/275/246/344/270/273/350/264/267/351/231/252/347/273/203/346/217/220/347/244/272/350/257/215/347/224/237/346/210/220_20260615.md +34 -0
  76. package/skills/multi/soke-ai-coach-director/references/cases/create//346/237/220/345/233/275/351/231/205/346/243/200/346/265/213/346/234/272/346/236/204//346/237/220/345/233/275/351/231/205/346/243/200/346/265/213/346/234/272/346/236/204/351/231/252/347/273/203/346/211/247/350/241/214/346/226/271/346/241/210/344/272/244/344/273/230/350/256/260/345/275/225_20260610.md +26 -0
  77. package/skills/multi/soke-ai-coach-director/references/cases/create//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206_/346/217/220/347/244/272/350/257/215/346/220/255/345/273/272_20260622.md +30 -0
  78. package/skills/multi/soke-ai-coach-director/references/cases/micro-tune//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/347/263/273/345/210/227//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_V1.2_20260616.md +254 -0
  79. package/skills/multi/soke-ai-coach-director/references/cases/micro-tune//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/347/263/273/345/210/227//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/346/217/220/347/244/272/350/257/215_/345/216/213/347/274/251/347/211/210_V2.0_20260616.md +96 -0
  80. package/skills/multi/soke-ai-coach-director/references/cases/micro-tune//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/347/263/273/345/210/227//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/346/217/220/347/244/272/350/257/215/344/274/230/345/214/226_20260616.md +20 -0
  81. package/skills/multi/soke-ai-coach-director/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277AI/351/231/252/347/273/203/347/263/273/347/273/237_/346/265/213/350/257/225/345/217/215/351/246/210/346/261/207/346/200/273_2026-06-01.md +434 -0
  82. package/skills/multi/soke-ai-coach-director/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277KYC/344/277/241/344/273/273/345/200/274/347/246/201/344/273/244_2026-06-09_0932.md +22 -0
  83. package/skills/multi/soke-ai-coach-director/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277KYC/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_v2_20260608.md +261 -0
  84. package/skills/multi/soke-ai-coach-director/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_v1.2.md +354 -0
  85. package/skills/multi/soke-ai-coach-director/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/346/217/220/347/244/272/350/257/215/344/274/230/345/214/226_V2_/350/257/212/346/226/255/344/272/244/344/273/230_20260609.md +26 -0
  86. package/skills/multi/soke-ai-coach-director/references/cases//345/233/233/345/244/247/345/234/272/346/231/257_GoodCase_BadCase_20260701.md +194 -0
  87. package/skills/multi/soke-ai-coach-director/references/cases//346/241/210/344/276/213/345/272/223/350/241/245/345/205/205_2026-06-24.md +41 -0
  88. package/skills/multi/soke-ai-coach-director/references/change-log-partwise-refactor.md +74 -0
  89. package/skills/multi/soke-ai-coach-director/references/env-check.md +146 -0
  90. package/skills/multi/soke-ai-coach-director/references/exec-common.md +126 -0
  91. package/skills/multi/soke-ai-coach-director/references/exec-handbook.md +621 -0
  92. package/skills/multi/soke-ai-coach-director/references/exec-part1.md +86 -0
  93. package/skills/multi/soke-ai-coach-director/references/exec-part2.md +145 -0
  94. package/skills/multi/soke-ai-coach-director/references/exec-part3.md +91 -0
  95. package/skills/multi/soke-ai-coach-director/references/exec-part4.md +187 -0
  96. package/skills/multi/soke-ai-coach-director/references/gate-check-matrix.md +46 -0
  97. package/skills/{soke-learning-map/soke-cli/345/256/211/350/243/205/346/214/207/345/215/227.md → multi/soke-ai-coach-director/references/installation.md} +0 -3
  98. package/skills/multi/soke-ai-coach-director/references/micro-tune-labels.md +30 -0
  99. package/skills/multi/soke-ai-coach-director/references/platform-api-pitfalls.md +49 -0
  100. package/skills/multi/soke-ai-coach-director/references/role-resource-matching.md +45 -0
  101. package/skills/multi/soke-ai-coach-director/references/self-improvement-examples.md +373 -0
  102. package/skills/multi/soke-ai-coach-director/references/self-learning-engine.md +485 -0
  103. package/skills/multi/soke-ai-coach-director/references/shared.md +185 -0
  104. package/skills/multi/soke-ai-coach-director/references/subs/part1/SOP.md +17 -0
  105. package/skills/multi/soke-ai-coach-director/references/subs/part2/SOP.md +34 -0
  106. package/skills/multi/soke-ai-coach-director/references/subs/part3/SOP.md +27 -0
  107. package/skills/multi/soke-ai-coach-director/references/subs/part4/SOP.md +31 -0
  108. package/skills/multi/soke-ai-coach-director/references/subs/publish/SOP.md +81 -0
  109. package/skills/multi/soke-ai-coach-director/references/subs/tune/SOP.md +92 -0
  110. package/skills/multi/soke-ai-coach-director/references/verified-cli-cheatsheet.md +56 -0
  111. package/skills/multi/soke-ai-coach-director/scripts/gate_check.py +112 -0
  112. package/skills/multi/soke-ai-coach-director/scripts/validate_operations.py +403 -0
  113. package/skills/multi/soke-ai-training/SKILL.md +247 -0
  114. package/skills/{soke-cli/345/256/211/350/243/205/346/214/207/345/215/227.md → multi/soke-ai-training/references/installation.md} +0 -3
  115. package/skills/multi/soke-ai-training/references/shared.md +185 -0
  116. package/skills/{soke-assign → multi/soke-assign}/README.md +3 -5
  117. package/skills/multi/soke-assign/SKILL.md +101 -0
  118. package/skills/{soke-course/SKILL.md → multi/soke-assign/references/dependencies/soke-course.md} +1 -1
  119. package/skills/multi/soke-assign/references/dependencies/soke-exam.md +600 -0
  120. package/skills/multi/soke-assign/references/installation.md +451 -0
  121. package/skills/multi/soke-assign/references/shared.md +185 -0
  122. package/skills/multi/soke-certificate/SKILL.md +715 -0
  123. package/skills/multi/soke-certificate/references/installation.md +451 -0
  124. package/skills/multi/soke-certificate/references/shared.md +185 -0
  125. package/skills/{soke-course → multi/soke-course}/README.md +5 -7
  126. package/skills/multi/soke-course/SKILL.md +399 -0
  127. package/skills/multi/soke-course/agents/openai.yaml +7 -0
  128. package/skills/multi/soke-course/examples/create-basic.md +70 -0
  129. package/skills/multi/soke-course/references/course-list-courses.md +216 -0
  130. package/skills/multi/soke-course/references/dependencies/soke-assign.md +103 -0
  131. package/skills/multi/soke-course/references/dependencies/soke-lesson.md +119 -0
  132. package/skills/multi/soke-course/references/dependencies/soke-material.md +105 -0
  133. package/skills/multi/soke-course/references/examples.md +480 -0
  134. package/skills/multi/soke-course/references/installation.md +451 -0
  135. package/skills/multi/soke-course/references/intent-cases.md +99 -0
  136. package/skills/multi/soke-course/references/shared.md +185 -0
  137. package/skills/multi/soke-course/references/sop-full-workflow.md +177 -0
  138. package/skills/multi/soke-course/references/sop-lesson-types.md +66 -0
  139. package/skills/multi/soke-course/references/sop-publish-check.md +76 -0
  140. package/skills/multi/soke-course/references/subs/ai/SOP.md +153 -0
  141. package/skills/multi/soke-course/references/subs/category/SOP.md +112 -0
  142. package/skills/multi/soke-course/references/subs/charge/SOP.md +107 -0
  143. package/skills/multi/soke-course/references/subs/copy/SOP.md +80 -0
  144. package/skills/multi/soke-course/references/subs/publish/SOP.md +168 -0
  145. package/skills/multi/soke-course/references/subs/query/SOP.md +165 -0
  146. package/skills/multi/soke-course/references/subs/settings/SOP.md +136 -0
  147. package/skills/multi/soke-course/references/subs/template/SOP.md +223 -0
  148. package/skills/multi/soke-course/references/troubleshoot.md +68 -0
  149. package/skills/multi/soke-course/scripts/check_readiness.py +87 -0
  150. package/skills/multi/soke-exam/SKILL.md +598 -0
  151. package/skills/multi/soke-exam/references/exam-get-exam-user.md +212 -0
  152. package/skills/multi/soke-exam/references/installation.md +451 -0
  153. package/skills/multi/soke-exam/references/shared.md +185 -0
  154. package/skills/multi/soke-exam-question-pool/SKILL.md +121 -0
  155. package/skills/multi/soke-exam-question-pool/references/installation.md +451 -0
  156. package/skills/multi/soke-exam-question-pool/references/shared.md +185 -0
  157. package/skills/multi/soke-learning-map/SKILL.md +553 -0
  158. package/skills/multi/soke-learning-map/references/dependencies/soke-assign.md +103 -0
  159. package/skills/{soke-task/SKILL.md → multi/soke-learning-map/references/dependencies/soke-task.md} +1 -1
  160. package/skills/multi/soke-learning-map/references/installation.md +451 -0
  161. package/skills/multi/soke-learning-map/references/shared.md +185 -0
  162. package/skills/multi/soke-learning-profile/SKILL.md +221 -0
  163. package/skills/multi/soke-learning-profile/references/installation.md +451 -0
  164. package/skills/multi/soke-learning-profile/references/shared.md +185 -0
  165. package/skills/multi/soke-lesson/SKILL.md +117 -0
  166. package/skills/multi/soke-lesson/references/installation.md +451 -0
  167. package/skills/multi/soke-lesson/references/shared.md +185 -0
  168. package/skills/multi/soke-material/SKILL.md +103 -0
  169. package/skills/multi/soke-material/references/installation.md +451 -0
  170. package/skills/multi/soke-material/references/shared.md +185 -0
  171. package/skills/multi/soke-photo-gallery/SKILL.md +284 -0
  172. package/skills/multi/soke-photo-gallery/references/installation.md +451 -0
  173. package/skills/multi/soke-photo-gallery/references/shared.md +185 -0
  174. package/skills/multi/soke-shared/SKILL.md +183 -0
  175. package/skills/multi/soke-supervisor/SKILL.md +184 -0
  176. package/skills/multi/soke-supervisor/references/installation.md +451 -0
  177. package/skills/multi/soke-supervisor/references/shared.md +185 -0
  178. package/skills/multi/soke-task/SKILL.md +144 -0
  179. package/skills/multi/soke-task/references/installation.md +451 -0
  180. package/skills/multi/soke-task/references/shared.md +185 -0
  181. package/skills/multi/soke-training-demand/SKILL.md +219 -0
  182. package/skills/multi/soke-training-demand/references/installation.md +451 -0
  183. package/skills/multi/soke-training-demand/references/shared.md +185 -0
  184. package/skills/soke-ai-coach-director/scripts/activator.sh +0 -4
  185. package/skills/soke-ai-coach-director/scripts/error-detector.sh +0 -4
  186. package/skills/soke-ai-coach-director/scripts/extract-skill.sh +0 -7
  187. package/skills/soke-course/scripts/check_readiness.sh +0 -82
  188. /package/skills/{soke-ai-coach-director → mono}/references/cases/AI/345/256/242/346/210/267/350/247/222/350/211/262/346/250/241/346/235/277/345/272/223.md" +0 -0
  189. /package/skills/{soke-ai-coach-director → mono}/references/cases/AI/351/231/252/347/273/203Bad Case/346/240/267/346/234/254/345/272/223.md" +0 -0
  190. /package/skills/{soke-ai-coach-director → mono}/references/cases/AI/351/231/252/347/273/203/345/210/233/345/273/272/351/227/256/351/242/230/345/272/223.md" +0 -0
  191. /package/skills/{soke-ai-coach-director → mono}/references/cases/AI/351/231/252/347/273/203/345/234/272/346/231/257/345/210/206/347/261/273/345/272/223.md" +0 -0
  192. /package/skills/{soke-ai-coach-director → mono}/references/cases/AI/351/231/252/347/273/203/345/256/242/346/210/267/346/235/220/346/226/231/346/270/205/345/215/225/344/270/216/350/256/277/350/260/210/351/242/230/345/272/223.md" +0 -0
  193. /package/skills/{soke-ai-coach-director → mono}/references/cases/AI/351/231/252/347/273/203/345/276/256/350/260/203/351/227/256/351/242/230/345/272/223.md" +0 -0
  194. /package/skills/{soke-ai-coach-director → mono}/references/cases/AI/351/231/252/347/273/203/346/212/200/346/234/257/350/276/271/347/225/214/344/270/216/346/216/222/351/232/234/345/272/223.md" +0 -0
  195. /package/skills/{soke-ai-coach-director → mono}/references/cases/AI/351/231/252/347/273/203/346/217/220/347/244/272/350/257/215/346/250/241/345/235/227/345/272/223.md" +0 -0
  196. /package/skills/{soke-ai-coach-director → mono}/references/cases/AI/351/231/252/347/273/203/346/225/260/346/215/256/346/214/207/346/240/207/344/270/216/347/234/213/346/235/277/345/217/243/345/276/204/345/272/223.md" +0 -0
  197. /package/skills/{soke-ai-coach-director → mono}/references/cases/AI/351/231/252/347/273/203/346/265/213/350/257/225/347/224/250/344/276/213/345/272/223.md" +0 -0
  198. /package/skills/{soke-ai-coach-director → mono}/references/cases/AI/351/231/252/347/273/203/350/257/204/345/210/206/346/240/207/345/207/206/347/273/204/344/273/266/345/272/223.md" +0 -0
  199. /package/skills/{soke-ai-coach-director → mono}/references/cases/AI/351/231/252/347/273/203/351/241/271/347/233/256/346/241/210/344/276/213/345/244/215/347/233/230/345/272/223.md" +0 -0
  200. /package/skills/{soke-ai-coach-director → mono}/references/cases/AI/351/241/276/345/256/242/350/247/222/350/211/262/346/250/241/346/213/237_GoodCase_BadCase_20260701.md" +0 -0
  201. /package/skills/{soke-ai-coach-director → mono}/references/cases/create//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/224/265/350/257/235/347/272/246/350/256/277//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/345/256/242/346/210/267/346/235/220/346/226/231/346/261/207/346/200/273_2026-05-19_1341.md" +0 -0
  202. /package/skills/{soke-ai-coach-director → mono}/references/cases/create//346/226/260/350/203/275/346/272/220/350/275/246/344/270/273/350/264/267//346/226/260/350/203/275/346/272/220/350/275/246/344/270/273/350/264/267/347/237/245/350/257/206/345/272/223/347/224/237/346/210/220_20260615.md" +0 -0
  203. /package/skills/{soke-ai-coach-director → mono}/references/cases/create//346/226/260/350/203/275/346/272/220/350/275/246/344/270/273/350/264/267//346/226/260/350/203/275/346/272/220/350/275/246/344/270/273/350/264/267/351/231/252/347/273/203/346/217/220/347/244/272/350/257/215/347/224/237/346/210/220_20260615.md" +0 -0
  204. /package/skills/{soke-ai-coach-director → mono}/references/cases/create//346/237/220/345/233/275/351/231/205/346/243/200/346/265/213/346/234/272/346/236/204//346/237/220/345/233/275/351/231/205/346/243/200/346/265/213/346/234/272/346/236/204/351/231/252/347/273/203/346/211/247/350/241/214/346/226/271/346/241/210/344/272/244/344/273/230/350/256/260/345/275/225_20260610.md" +0 -0
  205. /package/skills/{soke-ai-coach-director → mono}/references/cases/create//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206_/346/217/220/347/244/272/350/257/215/346/220/255/345/273/272_20260622.md" +0 -0
  206. /package/skills/{soke-ai-coach-director → mono}/references/cases/micro-tune//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/347/263/273/345/210/227//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_V1.2_20260616.md" +0 -0
  207. /package/skills/{soke-ai-coach-director → mono}/references/cases/micro-tune//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/347/263/273/345/210/227//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/346/217/220/347/244/272/350/257/215_/345/216/213/347/274/251/347/211/210_V2.0_20260616.md" +0 -0
  208. /package/skills/{soke-ai-coach-director → mono}/references/cases/micro-tune//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/347/263/273/345/210/227//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/346/217/220/347/244/272/350/257/215/344/274/230/345/214/226_20260616.md" +0 -0
  209. /package/skills/{soke-ai-coach-director → mono}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277AI/351/231/252/347/273/203/347/263/273/347/273/237_/346/265/213/350/257/225/345/217/215/351/246/210/346/261/207/346/200/273_2026-06-01.md" +0 -0
  210. /package/skills/{soke-ai-coach-director → mono}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277KYC/344/277/241/344/273/273/345/200/274/347/246/201/344/273/244_2026-06-09_0932.md" +0 -0
  211. /package/skills/{soke-ai-coach-director → mono}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277KYC/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_v2_20260608.md" +0 -0
  212. /package/skills/{soke-ai-coach-director → mono}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_v1.2.md" +0 -0
  213. /package/skills/{soke-ai-coach-director → mono}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/346/217/220/347/244/272/350/257/215/344/274/230/345/214/226_V2_/350/257/212/346/226/255/344/272/244/344/273/230_20260609.md" +0 -0
  214. /package/skills/{soke-ai-coach-director → mono}/references/cases//345/233/233/345/244/247/345/234/272/346/231/257_GoodCase_BadCase_20260701.md" +0 -0
  215. /package/skills/{soke-ai-coach-director → mono}/references/cases//346/241/210/344/276/213/345/272/223/350/241/245/345/205/205_2026-06-24.md" +0 -0
  216. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/CHANGELOG.md +0 -0
  217. /package/skills/{soke-ai-coach-director/SKILL.md → mono/references/modules/soke-ai-coach-director/MODULE.md} +0 -0
  218. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/assets/ERRORS-TEMPLATE.md +0 -0
  219. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/assets/FEATURE_REQUESTS-TEMPLATE.md +0 -0
  220. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/assets/LEARNINGS-TEMPLATE.md +0 -0
  221. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/assets/SKILL-TEMPLATE.md +0 -0
  222. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/coaching/knowledge-packager/knowledge-packager.md +0 -0
  223. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/coaching/prompt-engineer/parts/part1-basic.md +0 -0
  224. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/coaching/prompt-engineer/parts/part2-roles.md +0 -0
  225. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/coaching/prompt-engineer/parts/part3-flow.md +0 -0
  226. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/coaching/prompt-engineer/parts/part4-scoring.md +0 -0
  227. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/coaching/prompt-engineer/parts/part5-constraints.md +0 -0
  228. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/coaching/prompt-engineer/prompt-engineer.md +0 -0
  229. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/coaching/prompt-optimizer/prompt-optimizer.md +0 -0
  230. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/coaching/role-profiler/role-profiler.md +0 -0
  231. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/adapters/README.md +0 -0
  232. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/adapters/qclaw.md +0 -0
  233. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/adapters/workbuddy.md +0 -0
  234. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/adapters/wukong.md +0 -0
  235. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/adapters/zework.md +0 -0
  236. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/api-fallback.md +0 -0
  237. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/interaction.md +0 -0
  238. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/publish-gate.md +0 -0
  239. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/resource-finalizer.md +0 -0
  240. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/sync-engine.md +0 -0
  241. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/change-log-partwise-refactor.md +0 -0
  242. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/env-check.md +0 -0
  243. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/exec-common.md +0 -0
  244. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/exec-handbook.md +0 -0
  245. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/exec-part1.md +0 -0
  246. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/exec-part2.md +0 -0
  247. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/exec-part3.md +0 -0
  248. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/exec-part4.md +0 -0
  249. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/gate-check-matrix.md +0 -0
  250. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/micro-tune-labels.md +0 -0
  251. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/platform-api-pitfalls.md +0 -0
  252. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/role-resource-matching.md +0 -0
  253. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/self-improvement-examples.md +0 -0
  254. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/subs/part1/SOP.md +0 -0
  255. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/subs/part2/SOP.md +0 -0
  256. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/subs/part3/SOP.md +0 -0
  257. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/subs/part4/SOP.md +0 -0
  258. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/subs/publish/SOP.md +0 -0
  259. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/subs/tune/SOP.md +0 -0
  260. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/verified-cli-cheatsheet.md +0 -0
  261. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/scripts/gate_check.py +0 -0
  262. /package/skills/{soke-ai-coach-director → mono/references/modules/soke-ai-coach-director}/scripts/validate_operations.py +0 -0
  263. /package/skills/{soke-assign/SKILL.md → mono/references/modules/soke-assign/MODULE.md} +0 -0
  264. /package/skills/{soke-course → mono/references/modules/soke-course}/agents/openai.yaml +0 -0
  265. /package/skills/{soke-course → mono/references/modules/soke-course}/examples/create-basic.md +0 -0
  266. /package/skills/{soke-course → mono/references/modules/soke-course}/references/course-list-courses.md +0 -0
  267. /package/skills/{soke-course → mono/references/modules/soke-course}/references/intent-cases.md +0 -0
  268. /package/skills/{soke-course → mono/references/modules/soke-course}/references/sop-full-workflow.md +0 -0
  269. /package/skills/{soke-course → mono/references/modules/soke-course}/references/sop-lesson-types.md +0 -0
  270. /package/skills/{soke-course → mono/references/modules/soke-course}/references/sop-publish-check.md +0 -0
  271. /package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/ai/SOP.md +0 -0
  272. /package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/category/SOP.md +0 -0
  273. /package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/charge/SOP.md +0 -0
  274. /package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/copy/SOP.md +0 -0
  275. /package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/publish/SOP.md +0 -0
  276. /package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/query/SOP.md +0 -0
  277. /package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/settings/SOP.md +0 -0
  278. /package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/template/SOP.md +0 -0
  279. /package/skills/{soke-course → mono/references/modules/soke-course}/references/troubleshoot.md +0 -0
  280. /package/skills/{soke-exam → mono/references/modules/soke-exam}/references/exam-get-exam-user.md +0 -0
  281. /package/skills/{soke-exam-question-pool/SKILL.md → mono/references/modules/soke-exam-question-pool/MODULE.md} +0 -0
  282. /package/skills/{soke-lesson/SKILL.md → mono/references/modules/soke-lesson/MODULE.md} +0 -0
  283. /package/skills/{soke-material/SKILL.md → mono/references/modules/soke-material/MODULE.md} +0 -0
  284. /package/skills/{soke-shared/SKILL.md → mono/references/modules/soke-shared/MODULE.md} +0 -0
  285. /package/skills/{soke-ai-coach-director → multi/soke-ai-coach-director}/references/cases/micro-tune//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/347/263/273/345/210/227//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_V1.1_20260616.md" +0 -0
  286. /package/skills/{soke-ai-coach-director → multi/soke-ai-coach-director}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_v1.1.md" +0 -0
  287. /package/skills/{soke-lesson → multi/soke-lesson}/README.md +0 -0
  288. /package/skills/{soke-material → multi/soke-material}/README.md +0 -0
@@ -0,0 +1,399 @@
1
+ ---
2
+ name: soke-course
3
+ description: >
4
+ 线上课创建与发布的端到端编排技能,课程发布主管。
5
+ 负责识别用户意图、选择执行流程、校验前置条件、调度 3 个并列技能完成全链路操作。
6
+ 当用户想创建课程、上传课件、配置设置、发布课程、指派学员时触发。
7
+ ---
8
+
9
+ # 课程发布主管
10
+
11
+ > **CRITICAL — 开始前 MUST 先用 Read 工具读取 [`./references/installation.md`](./references/installation.md),其中包含认证、配置、权限处理。**
12
+
13
+ ## 交互规范(必须遵守)
14
+
15
+ **任何需要用户从固定选项中做选择的场景,必须调用 `ask_user_question` 工具弹窗,禁止纯文本罗列让用户打字。**
16
+
17
+ 适用场景:
18
+ - 选择课程分类(列出所有分类,最后一项为"🆕 新建分类")
19
+ - 歧义消解(不确定用户想做什么时)
20
+ - 确认是否继续("还要加课件吗?"/"调顺序吗?"/"确认发布?")
21
+ - 选择发布对象(部门/用户列表)
22
+ - 中断恢复(从已有课程列表中选择继续哪个)
23
+ - 任何其他有 2-4 个固定选项的决策点
24
+
25
+ 弹窗标准格式:
26
+ ```
27
+ ask_user_question
28
+ question: "选择课程分类"
29
+ header: "分类"
30
+ options:
31
+ - label: "📁 技术研发" description: "一级分类"
32
+ - label: "📁 企业管理" description: "一级分类"
33
+ - label: "🆕 新建分类" description: "前往管理后台新建分类"
34
+ ```
35
+
36
+ ## 使用前提
37
+
38
+ 1. 已安装 `soke-cli`
39
+ 2. 已登录授权 — 首次执行时自动检查并引导登录
40
+
41
+ **登录状态检查与自动登录(必须执行):**
42
+
43
+ ```bash
44
+ # 第一步:检查登录状态
45
+ soke-cli config show
46
+ ```
47
+
48
+ 若返回包含 `user_token` → ✅ 已登录,继续。
49
+
50
+ 若返回无 `user_token` 或报错 → ⚠️ 未登录,立即执行:
51
+
52
+ ```bash
53
+ # 第二步:自动打开浏览器完成 OAuth 授权
54
+ # soke-cli auth login 会自动调用系统默认浏览器打开授权页面
55
+ soke-cli auth login
56
+ ```
57
+
58
+ `soke-cli auth login` 执行后会自动打开浏览器到授客AI开放平台授权页,用户在浏览器中完成登录授权即可。授权成功后 CLI 终端会显示 `✅ 已登录`,Token 自动保存至 `~/.soke-cli/config.json`。
59
+
60
+ > 如果浏览器没有自动打开,终端会输出授权链接,手动复制到浏览器打开即可完成授权。
61
+
62
+ **任何课程操作之前,必须先通过上述两步确认登录状态。未登录时禁止跳过,必须完成登录后再继续。**
63
+
64
+ ## 一、触发描述
65
+
66
+ ### 触发词
67
+
68
+ | 意图 | 触发词 |
69
+ |------|--------|
70
+ | 创建课程 | 创建/新建/做课/开课/生成课程 |
71
+ | 课件管理 | 添加课件/加视频/加音频/加文档/课件排序/调顺序 |
72
+ | 课程设置 | 设置学分/积分/讲师/封面/标签/修改分类/简介 |
73
+ | 高级设置 | 倍速/人脸/提醒/学习模式/解锁/评价/证书/签名/钉钉群 |
74
+ | 收费设置 | 收费/价格/试看/免费/付费 |
75
+ | 发布 | 发布/上线/定时发布/审批 |
76
+ | 指派 | 指派/安排学习/分配学员/必修/选修 |
77
+ | 查询 | 学习进度/完成率/谁学了/谁完成 |
78
+ | 维护 | 关闭/删除/下架/复制/克隆 |
79
+ | 分类管理 | 分类/课程分类/添加分类/新建分类 |
80
+
81
+ ### 上下文触发
82
+ - 对话已有 course-id → 在当前课程上操作,不创建新课程
83
+ - 用户上传文件 + 提"课件"/"课程" → 课件子流程
84
+
85
+ ### 不触发(交给独立 skill)
86
+ - 纯考试/题库/试卷
87
+ - 学习地图
88
+ - 纯素材浏览(不提课程)
89
+ - 单查学员档案(无课程上下文)
90
+
91
+ ## 二、输入要求
92
+
93
+ ### 创建课程
94
+ 必填: 课程标题 + 课程分类
95
+ 可选: 描述/学分/讲师/标签/封面
96
+
97
+ ### 添加课件
98
+ 必填: 课件内容(文件路径或文本)
99
+ 从上下文获取: course-id
100
+
101
+ ### 发布
102
+ 从上下文获取: course-id
103
+ 前置: Gate Check 全部通过
104
+
105
+ ### 指派
106
+ 必填: 部门名或用户名 + course-id
107
+
108
+ ## 三、执行流程
109
+
110
+ ### 3.1 意图路由
111
+
112
+ ```
113
+ 用户消息 → 关键词 → 意图 → 路由
114
+
115
+ create → 3.2 全流程创建
116
+ add_lesson → 3.3 课件子流程
117
+ settings → 3.4 设置子流程(→ read references/subs/settings/SOP.md)
118
+ publish → 3.5 发布子流程(→ read references/subs/publish/SOP.md)
119
+ assign → 3.6 指派子流程
120
+ query → 3.7 查询子流程(→ read references/subs/query/SOP.md)
121
+ maintain → 3.8 维护子流程
122
+ category → read references/subs/category/SOP.md
123
+ ```
124
+
125
+ 歧义消解: 上下文有 course-id → 当前课程操作 | 有文件附件 → 倾向课件 | 不确定 → `ask_user_question` 弹窗列出可能的操作让用户点选(如"创建课程"/"添加课件"/"修改设置")
126
+
127
+ ### 3.2 全流程创建(主链路)
128
+
129
+ > 完整 SOP 见 references/sop-full-workflow.md
130
+
131
+ #### Phase 1: 创建课程骨架
132
+
133
+ Step 1.1 权限检查(自动登录)
134
+ exec: soke-cli config show
135
+ → 有 user_token → ✅ 跳过登录
136
+ → 无 user_token → exec: soke-cli auth login(自动打开浏览器)
137
+ 等待用户在浏览器中完成授权
138
+ 再次 exec: soke-cli config show 确认 user_token 已写入
139
+ 登录完成 → 继续下一步
140
+
141
+ Step 1.2 获取分类
142
+ → read references/subs/category/SOP.md 执行
143
+ 执行: soke course +list-categories 获取分类树
144
+ 策略:
145
+ 1. 用户已指定分类名 → 精确/模糊匹配到唯一结果 → 直接使用
146
+ 2. 匹配到多个结果 → `ask_user_question` 弹窗让用户选一个,最后加一项"🆕 新建分类"
147
+ 3. 用户未指定 → `ask_user_question` 弹窗列出所有一级分类,最后加一项"🆕 新建分类"
148
+ 4. 用户说"随便" → 取第一个一级分类
149
+ → 用户选"🆕 新建分类" → 告知:"CLI 暂不支持新建分类,请前往管理后台 → 课程管理 → 分类设置 → 新增分类" → 新建完成后说"分类建好了"再继续
150
+ 提取: category-id → 存上下文
151
+
152
+ Step 1.3 创建课程
153
+ 自身: course +create --title "xxx" --category-id "xxx"
154
+ 提取: course-id → 存上下文
155
+
156
+ Step 1.4 选择模板(创建课程后立即触发)
157
+ → read references/subs/template/SOP.md 执行
158
+ 弹窗: `ask_user_question` 列出 7 个模板(含"7. 不选择模板")
159
+ 用户选 1-6 → 输出该模板的配置清单(标注后台路径) → 确认后继续
160
+ 用户选 7 → 不输出配置,直接进入路由弹窗
161
+ 详见: references/subs/template/SOP.md
162
+
163
+ Gate 1→2: ✅ 有 course-id
164
+
165
+ Phase 1 完成后 → `ask_user_question` 弹窗: "下一步?" → ["添加课件"/"先做设置"/"直接发布"]
166
+ 选"添加课件" → 进入 Phase 2
167
+ 选"先做设置" → 跳到 Phase 3
168
+ 选"直接发布" → 跳到 Phase 4(需通过 Gate Check)
169
+
170
+ #### Phase 2: 构建课件
171
+
172
+ Step 2.1 选择素材来源
173
+ → `ask_user_question` 弹窗: "从哪儿添加课件素材?" → ["📁 本地上传"/"📚 素材库选择"]
174
+ 选"本地上传" → 进入 Step 2.2
175
+ 选"素材库选择" → 进入 Step 2.2b
176
+
177
+ Step 2.2 本地上传
178
+ 可上传: 视频(.mp4/.avi/.mov/.mkv/.webm)、音频(.mp3/.wav/.ogg/.flac/.aac)、文档(.pdf/.ppt/.pptx/.doc/.docx/.xls/.xlsx)
179
+ ⚠️ 不支持 CLI: 图片/文章/外链/小测验/作业 → 告知后台路径
180
+ → 用户提供本地文件路径
181
+ → 调度 soke-material: file +upload(自动根据扩展名判断类型)
182
+ 提取: media-id + 全字段信息 → 存 media_ids[]
183
+ → 进入 Step 2.3
184
+
185
+ Step 2.2b 素材库选择
186
+ → 调度 soke-material
187
+ exec: soke file list-files(分页拉取全量素材列表)
188
+ 展示: 文件名 / 类型 / 大小 / 日期(分页或截取前 20 条)
189
+ 告知用户: "输入关键词搜索素材(文件名模糊匹配),或输入序号选择"
190
+ 用户输入关键词 → 在素材列表中模糊匹配 → 弹窗列匹配项
191
+ 用户选序号 → 确认该素材 → 提取全字段信息 → 存 media_ids[]
192
+ 无目标素材 → 弹窗: "素材库中没找到,要不要切换到本地上传?" → ["切本地上传"/"重新搜索"]
193
+ 选"切本地上传" → 回到 Step 2.2
194
+ → 进入 Step 2.3
195
+
196
+ Step 2.3 创建课件
197
+ → 调度 soke-lesson
198
+ 参数全部来自 Step 2.2 或 Step 2.2b 的返回
199
+ 提取: lesson-id
200
+ 存: lesson_ids[]
201
+
202
+ Step 2.4 循环
203
+ → `ask_user_question` 弹窗: "还要加课件吗?" → ["继续加课件"/"不了,进入下一步"]
204
+
205
+ Step 2.5 排序(可选)
206
+ → `ask_user_question` 弹窗: "需要调整课件顺序吗?" → ["调整顺序"/"保持现状"]
207
+ 选"调整" → 调度 soke-lesson 排序
208
+
209
+ Gate 2→3: ✅ 课件 ≥ 1
210
+
211
+ #### Phase 3: 课程设置
212
+
213
+ → read references/subs/settings/SOP.md 执行
214
+ 基础: title/credit/description/image(course +update)
215
+
216
+ → read references/subs/template/SOP.md Step 3 执行
217
+ 将当前所有设置项以表格形式展示(仅「设置项」+「当前值」两列)
218
+ 告知用户: "想修改哪项?直接告诉我就行。"
219
+ 用户指令处理:
220
+ - 标题/学分/描述/封面 → exec: course +update(✅ CLI 支持) → 刷新表格
221
+ - 学习模式/倍速/人脸/提醒/评价/拖动/评论/文档防挂机/交流群二维码 → exec: course +advanced(✅ CLI 支持;交流群二维码本地图片用 --image-file,命令内部只上传 OSS,不进入图片库) → 刷新表格
222
+ - 其他设置 → "已记录: {项} → {新值}(需在后台操作: {路径})" → 刷新表格
223
+ - "可以了"/"继续" → 退出 Phase 3
224
+ 循环直到用户确认
225
+
226
+ Gate 3→4: 无硬阻塞
227
+
228
+ #### Phase 4: 发布
229
+
230
+ → read references/subs/publish/SOP.md 执行
231
+ Gate Check: 标题/分类/课件数量/转码状态
232
+ 直接发布 → course +publish --course-id <uuid>
233
+ 定时发布 → course +publish --course-id <uuid> --publish-time "<北京时间>"
234
+ 审批/批量 → ⚠️ CLI 不支持
235
+
236
+ Gate 4→5: ✅ status=1
237
+
238
+ #### Phase 5: 指派学员
239
+
240
+ → 调度 soke-assign
241
+
242
+ Step 5.1 拉取部门列表
243
+ exec: soke assign +list-departments
244
+ 提取: 全量部门名称+ID → 存内存
245
+
246
+ Step 5.2 用户输入关键词搜索
247
+ 告知用户: "请输入要指派的部门名称(支持模糊搜索)"
248
+ 用户输入关键词 → 在部门列表中模糊匹配(不区分大小写,支持部分匹配)
249
+ 匹配结果:
250
+ - 唯一匹配 → 直接确认使用
251
+ - 多个匹配 → `ask_user_question` 弹窗列出匹配的部门让用户选
252
+ - 无匹配 → 建议换个关键词,或 `ask_user_question` 弹窗列所有部门
253
+
254
+ Step 5.3 确认指派方式
255
+ → `ask_user_question` 弹窗: "必修还是选修?" → ["必修"/"选修"]
256
+
257
+ Step 5.4 执行指派
258
+ exec: soke assign +create --module course --module-id <courseId> --compulsory 1|0 --user-ids "<用部门 ID 查到的人员>"
259
+
260
+ #### Phase 6: 运营维护
261
+
262
+ → read references/subs/query/SOP.md 执行(进度/记录/人脸)
263
+ → read references/subs/publish/SOP.md 执行(关闭/删除;删除仅允许 status=0/2)
264
+ → read references/subs/copy/SOP.md 执行(复制,⚠️)
265
+
266
+ ### 3.3 课件子流程
267
+
268
+ 前提: 上下文有 course-id
269
+ 流程: = Phase 2(判断类型→上传→创建→循环→排序)
270
+
271
+ ### 3.4 设置子流程
272
+
273
+ 前提: 上下文有 course-id
274
+ 流程: read references/subs/settings/SOP.md + references/subs/charge/SOP.md 执行
275
+
276
+ ### 3.5 发布子流程
277
+
278
+ 前提: course-id + status=0
279
+ 流程: read references/subs/publish/SOP.md 执行 → Gate Check → 发布 → 询问指派
280
+
281
+ ### 3.6 指派子流程
282
+
283
+ 前提: course-id + status=1
284
+ 流程: 调度 soke-assign → 拉全量部门 → 用户输入关键词搜索 → 确认 → 指派
285
+
286
+ ### 3.7 查询子流程
287
+
288
+ 前提: course-id
289
+ 流程: read references/subs/query/SOP.md 执行 → 进度/记录/人脸
290
+
291
+ ### 3.8 维护子流程
292
+
293
+ 流程: read references/subs/publish/SOP.md(关闭/删除,删除前必须校验 status=0 未发布或 status=2 已关闭)/ references/subs/copy/SOP.md(复制)/ references/subs/category/SOP.md(分类)
294
+
295
+ ### SOP 执行 5 步法
296
+
297
+ 1. READ `references/subs/<name>/SOP.md` → 理解输入输出
298
+ 2. BUILD 从上下文提取参数
299
+ 3. EXEC 按 SOP 流程调用 CLI
300
+ 4. PARSE 按 SOP 输出标准解析
301
+ 5. STORE 关键值写入上下文
302
+
303
+ 上下文变量: course_id / category_id / lesson_ids[] / media_ids[] / course_status / current_phase
304
+
305
+ ## 四、输出标准
306
+
307
+ ### 每步即时输出
308
+ ```
309
+ ✅ <做了什么>
310
+ 📋 <关键数据>
311
+ ⏭️ <下一步建议>
312
+ ```
313
+
314
+ ### 阶段状态报告
315
+ ```
316
+ 📋 课程: <标题> (id: <uuid>)
317
+ Phase 1 ✅ 已创建
318
+ Phase 2 🔄 课件 3 个
319
+ ├─ ✅ 第1课: 环境搭建 (video, 转码完成)
320
+ ├─ ✅ 第2课: Pandas (video, 转码中)
321
+ └─ ✅ 第3课: 数据清洗.pdf (document)
322
+ Phase 3 ⏸️ 设置
323
+ Phase 4 ⏸️ 发布(阻塞: 第2课转码中)
324
+ Phase 5 ⏸️ 指派
325
+ 下一步: 等转码完成后发布
326
+ ```
327
+
328
+ ### Gate Check 矩阵
329
+
330
+ | # | 检查项 | 获取方式 | 严重度 | 不通过时 |
331
+ |---|--------|---------|--------|---------|
332
+ | 1 | 标题非空 | +get-course.title | 🔴阻塞 | 请设置标题 |
333
+ | 2 | 分类已选 | +get-course.category_id | 🔴阻塞 | 请选择分类 |
334
+ | 3 | 课件≥1 | +lesson-list count | 🔴阻塞 | 至少1个课件 |
335
+ | 4 | 无转码失败 | +lesson-list.transcode_status | 🔴阻塞 | 课件[X]转码失败 |
336
+ | 5 | 无转码中 | +lesson-list.transcode_status | 🟡警告 | 课件[X]转码中,确认发布? |
337
+ | 6 | 付费方式 | 需确认 | 🟡警告 | — |
338
+
339
+ ### 最终交付
340
+ ```
341
+ 📦 课程已发布: <标题>
342
+ 🔗 ID: <uuid> | 📊 课件: 5 个 | 👥 已指派: 研发部(32人)
343
+ ⏭️ 查看进度: 说"看看学习进度"
344
+ ```
345
+
346
+ ## 五、注意事项
347
+
348
+ ### 硬规则
349
+ 1. 不编造参数 — UUID 来自真实返回
350
+ 2. 不跳过 Gate — 发布前逐项校验
351
+ 3. 不静默失败 — 失败: 查排错文档 → 中文告知 → 修复建议 → 保存进度 → 提供选项
352
+ 4. 类型必须匹配 — 课件与素材类型一致
353
+ 5. 一个 course-id 贯穿全部
354
+
355
+ ### 架构分工
356
+
357
+ **外部并列技能**(独立 skill,通过 skill 调度):
358
+ - 上传文件到素材库 → soke-material
359
+ - 基于素材创建课件 → soke-lesson
360
+ - 将课程指派给学员 → soke-assign
361
+
362
+ **内嵌 SOP**(references/subs/ 下,按需 read 执行):
363
+ - 管理课程分类 → references/subs/category/SOP.md
364
+ - 配置课程设置 → references/subs/settings/SOP.md
365
+ - 设置收费 → references/subs/charge/SOP.md
366
+ - 发布校验和发布 → references/subs/publish/SOP.md
367
+ - 复制课程 → references/subs/copy/SOP.md
368
+ - 查询学习数据 → references/subs/query/SOP.md
369
+ - AI生成课程 → references/subs/ai/SOP.md
370
+ - 课程模板(7套预置配置) → references/subs/template/SOP.md
371
+
372
+ ### 已知 CLI 缺失
373
+
374
+ 统一话术: "XXX 功能暂不支持 CLI 操作,请在后台手动设置。"
375
+
376
+ | 类别 | 缺失 |
377
+ |------|------|
378
+ | 课件类型 | image/article/link/quiz/homework |
379
+ | 分类 | 新增分类 |
380
+ | 课程设置 | point/lector_id/tags/简介插图 |
381
+ | 高级设置 | 证书/签名 |
382
+ | 收费 | 价格/试看 |
383
+ | 发布 | 审批/批量 |
384
+ | 维护 | 复制 |
385
+
386
+ ### 中断恢复
387
+ 用户"继续"/"接着做": 检查 course-id → 有:查状态+课件→报告→继续 | 无:列课程→选→恢复
388
+
389
+ ## 六、交付前自查
390
+
391
+ - [ ] 每步有明确调度目标
392
+ - [ ] 关键返回值已存入上下文
393
+ - [ ] 每步完成有下一步建议
394
+ - [ ] 发布前过完整 Gate Check
395
+ - [ ] CLI 不支持功能已告知替代路径
396
+ - [ ] 失败有修复建议
397
+ - [ ] 所有固定选项的决策点均使用 `ask_user_question` 弹窗(禁止纯文本罗列让用户打字)
398
+ - [ ] 分类选择弹窗最后一项始终为"🆕 新建分类"
399
+ - [ ] 状态报告完整
@@ -0,0 +1,7 @@
1
+ display_name: 课程发布主管
2
+ short_description: 端到端管理线上课创建与发布全流程,自动完成分类选择、课件上传、课程设置、发布校验及学员指派调度。
3
+ default_prompt: 帮我创建一门线上课
4
+ dependencies:
5
+ - soke-material
6
+ - soke-lesson
7
+ - soke-assign
@@ -0,0 +1,70 @@
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
+ ```
@@ -0,0 +1,216 @@
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`