@sokeai/cli 1.0.76 → 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 (314) hide show
  1. package/README.md +7 -7
  2. package/package.json +1 -1
  3. package/scripts/build-binaries.sh +1 -1
  4. package/scripts/e2e-test.sh +75 -3
  5. package/scripts/install.js +2 -2
  6. package/scripts/local-test.js +1 -1
  7. package/scripts/test-auto-detect.js +20 -3
  8. package/skills/README.md +25 -174
  9. package/skills/SKILL.md +17 -222
  10. package/skills/mono/README.md +10 -0
  11. package/skills/mono/SKILL.md +223 -0
  12. 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
  13. package/skills/mono/references/modules/soke-ai-coach-director/CHANGELOG.md +203 -0
  14. package/skills/mono/references/modules/soke-ai-coach-director/MODULE.md +221 -0
  15. package/skills/mono/references/modules/soke-ai-coach-director/README.md +121 -0
  16. package/skills/mono/references/modules/soke-ai-coach-director/coaching/knowledge-packager/knowledge-packager.md +91 -0
  17. package/skills/mono/references/modules/soke-ai-coach-director/coaching/prompt-engineer/parts/part2-roles.md +97 -0
  18. package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/coaching/prompt-engineer/parts/part3-flow.md +3 -3
  19. package/skills/mono/references/modules/soke-ai-coach-director/coaching/prompt-engineer/prompt-engineer.md +76 -0
  20. package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/coaching/prompt-optimizer/prompt-optimizer.md +77 -58
  21. package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/adapters/workbuddy.md +2 -3
  22. package/skills/mono/references/modules/soke-ai-coach-director/platform/interaction.md +103 -0
  23. package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/publish-gate.md +3 -3
  24. package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/resource-finalizer.md +10 -35
  25. package/skills/mono/references/modules/soke-ai-coach-director/platform/soke-ai-training/soke-ai-training.md +123 -0
  26. package/skills/mono/references/modules/soke-ai-coach-director/platform/sync-engine.md +39 -0
  27. package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/change-log-partwise-refactor.md +1 -1
  28. package/skills/mono/references/modules/soke-ai-coach-director/references/env-check.md +146 -0
  29. package/skills/mono/references/modules/soke-ai-coach-director/references/exec-common.md +126 -0
  30. package/skills/mono/references/modules/soke-ai-coach-director/references/exec-handbook.md +621 -0
  31. package/skills/mono/references/modules/soke-ai-coach-director/references/exec-part1.md +86 -0
  32. package/skills/mono/references/modules/soke-ai-coach-director/references/exec-part2.md +145 -0
  33. package/skills/mono/references/modules/soke-ai-coach-director/references/exec-part3.md +91 -0
  34. package/skills/mono/references/modules/soke-ai-coach-director/references/exec-part4.md +187 -0
  35. package/skills/mono/references/modules/soke-ai-coach-director/references/gate-check-matrix.md +46 -0
  36. package/skills/mono/references/modules/soke-ai-coach-director/references/micro-tune-labels.md +30 -0
  37. package/skills/mono/references/modules/soke-ai-coach-director/references/platform-api-pitfalls.md +49 -0
  38. package/skills/mono/references/modules/soke-ai-coach-director/references/role-resource-matching.md +45 -0
  39. package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/self-improvement-examples.md +2 -0
  40. package/skills/mono/references/modules/soke-ai-coach-director/references/self-learning-engine.md +485 -0
  41. package/skills/mono/references/modules/soke-ai-coach-director/references/subs/part1/SOP.md +17 -0
  42. package/skills/mono/references/modules/soke-ai-coach-director/references/subs/part2/SOP.md +34 -0
  43. package/skills/mono/references/modules/soke-ai-coach-director/references/subs/part3/SOP.md +27 -0
  44. package/skills/mono/references/modules/soke-ai-coach-director/references/subs/part4/SOP.md +31 -0
  45. package/skills/mono/references/modules/soke-ai-coach-director/references/subs/publish/SOP.md +81 -0
  46. package/skills/mono/references/modules/soke-ai-coach-director/references/subs/tune/SOP.md +92 -0
  47. package/skills/mono/references/modules/soke-ai-coach-director/references/verified-cli-cheatsheet.md +56 -0
  48. package/skills/mono/references/modules/soke-ai-coach-director/scripts/gate_check.py +112 -0
  49. package/skills/mono/references/modules/soke-ai-coach-director/scripts/validate_operations.py +403 -0
  50. package/skills/{soke-ai-training/SKILL.md → mono/references/modules/soke-ai-training/MODULE.md} +1 -1
  51. package/skills/mono/references/modules/soke-assign/README.md +308 -0
  52. package/skills/mono/references/modules/soke-certificate/MODULE.md +717 -0
  53. package/skills/mono/references/modules/soke-course/MODULE.md +402 -0
  54. package/skills/mono/references/modules/soke-course/README.md +291 -0
  55. package/skills/{soke-course → mono/references/modules/soke-course}/references/course-list-courses.md +49 -84
  56. package/skills/{soke-course → mono/references/modules/soke-course}/references/examples.md +3 -3
  57. package/skills/{soke-course → mono/references/modules/soke-course}/references/intent-cases.md +2 -2
  58. package/skills/{soke-course → mono/references/modules/soke-course}/references/sop-full-workflow.md +4 -2
  59. package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/publish/SOP.md +21 -3
  60. package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/query/SOP.md +9 -7
  61. package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/settings/SOP.md +2 -1
  62. package/skills/{soke-exam/SKILL.md → mono/references/modules/soke-exam/MODULE.md} +1 -1
  63. package/skills/mono/references/modules/soke-exam-question-pool/MODULE.md +123 -0
  64. package/skills/{soke-learning-map/SKILL.md → mono/references/modules/soke-learning-map/MODULE.md} +5 -6
  65. package/skills/{soke-learning-profile/SKILL.md → mono/references/modules/soke-learning-profile/MODULE.md} +2 -2
  66. package/skills/mono/references/modules/soke-lesson/README.md +53 -0
  67. package/skills/mono/references/modules/soke-material/README.md +49 -0
  68. package/skills/{soke-photo-gallery/SKILL.md → mono/references/modules/soke-photo-gallery/MODULE.md} +2 -3
  69. package/skills/mono/references/modules/soke-supervisor/MODULE.md +186 -0
  70. package/skills/mono/references/modules/soke-task/MODULE.md +146 -0
  71. package/skills/mono/references/modules/soke-training-demand/MODULE.md +221 -0
  72. package/skills/mono/references/shared/cli-basics.md +185 -0
  73. package/skills/mono/scripts/check_readiness.py +28 -0
  74. package/skills/mono/scripts/gate_check.py +112 -0
  75. package/skills/mono/scripts/validate_operations.py +403 -0
  76. package/skills/multi/README.md +18 -0
  77. package/skills/multi/soke-ai-coach-director/CHANGELOG.md +203 -0
  78. package/skills/multi/soke-ai-coach-director/README.md +121 -0
  79. package/skills/multi/soke-ai-coach-director/SKILL.md +220 -0
  80. package/skills/multi/soke-ai-coach-director/assets/ERRORS-TEMPLATE.md +5 -0
  81. package/skills/multi/soke-ai-coach-director/assets/FEATURE_REQUESTS-TEMPLATE.md +5 -0
  82. package/skills/multi/soke-ai-coach-director/assets/LEARNINGS-TEMPLATE.md +44 -0
  83. package/skills/multi/soke-ai-coach-director/assets/SKILL-TEMPLATE.md +177 -0
  84. package/skills/multi/soke-ai-coach-director/coaching/knowledge-packager/knowledge-packager.md +91 -0
  85. package/skills/multi/soke-ai-coach-director/coaching/prompt-engineer/parts/part1-basic.md +59 -0
  86. package/skills/multi/soke-ai-coach-director/coaching/prompt-engineer/parts/part2-roles.md +97 -0
  87. package/skills/multi/soke-ai-coach-director/coaching/prompt-engineer/parts/part3-flow.md +72 -0
  88. package/skills/multi/soke-ai-coach-director/coaching/prompt-engineer/parts/part4-scoring.md +87 -0
  89. package/skills/multi/soke-ai-coach-director/coaching/prompt-engineer/parts/part5-constraints.md +48 -0
  90. package/skills/multi/soke-ai-coach-director/coaching/prompt-engineer/prompt-engineer.md +76 -0
  91. package/skills/multi/soke-ai-coach-director/coaching/prompt-optimizer/prompt-optimizer.md +381 -0
  92. package/skills/multi/soke-ai-coach-director/coaching/role-profiler/role-profiler.md +87 -0
  93. package/skills/multi/soke-ai-coach-director/platform/adapters/README.md +68 -0
  94. package/skills/multi/soke-ai-coach-director/platform/adapters/qclaw.md +67 -0
  95. package/skills/multi/soke-ai-coach-director/platform/adapters/workbuddy.md +44 -0
  96. package/skills/multi/soke-ai-coach-director/platform/adapters/wukong.md +70 -0
  97. package/skills/multi/soke-ai-coach-director/platform/adapters/zework.md +89 -0
  98. package/skills/multi/soke-ai-coach-director/platform/api-fallback.md +262 -0
  99. package/skills/multi/soke-ai-coach-director/platform/interaction.md +103 -0
  100. package/skills/multi/soke-ai-coach-director/platform/publish-gate.md +44 -0
  101. package/skills/multi/soke-ai-coach-director/platform/resource-finalizer.md +103 -0
  102. package/skills/{ai-coach-director → multi/soke-ai-coach-director}/platform/soke-ai-training/soke-ai-training.md +34 -4
  103. package/skills/multi/soke-ai-coach-director/platform/sync-engine.md +39 -0
  104. 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
  105. 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
  106. 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
  107. 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
  108. 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
  109. 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
  110. 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
  111. 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
  112. 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
  113. 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
  114. 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
  115. 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
  116. 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
  117. 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
  118. 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
  119. 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
  120. 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
  121. 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
  122. 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
  123. 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
  124. 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
  125. 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
  126. 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
  127. 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
  128. 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
  129. 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
  130. 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
  131. 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
  132. package/skills/multi/soke-ai-coach-director/references/change-log-partwise-refactor.md +74 -0
  133. package/skills/multi/soke-ai-coach-director/references/env-check.md +146 -0
  134. package/skills/multi/soke-ai-coach-director/references/exec-common.md +126 -0
  135. package/skills/multi/soke-ai-coach-director/references/exec-handbook.md +621 -0
  136. package/skills/multi/soke-ai-coach-director/references/exec-part1.md +86 -0
  137. package/skills/multi/soke-ai-coach-director/references/exec-part2.md +145 -0
  138. package/skills/multi/soke-ai-coach-director/references/exec-part3.md +91 -0
  139. package/skills/multi/soke-ai-coach-director/references/exec-part4.md +187 -0
  140. package/skills/multi/soke-ai-coach-director/references/gate-check-matrix.md +46 -0
  141. package/skills/{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
  142. package/skills/multi/soke-ai-coach-director/references/micro-tune-labels.md +30 -0
  143. package/skills/multi/soke-ai-coach-director/references/platform-api-pitfalls.md +49 -0
  144. package/skills/multi/soke-ai-coach-director/references/role-resource-matching.md +45 -0
  145. package/skills/multi/soke-ai-coach-director/references/self-improvement-examples.md +373 -0
  146. package/skills/multi/soke-ai-coach-director/references/self-learning-engine.md +485 -0
  147. package/skills/multi/soke-ai-coach-director/references/shared.md +185 -0
  148. package/skills/multi/soke-ai-coach-director/references/subs/part1/SOP.md +17 -0
  149. package/skills/multi/soke-ai-coach-director/references/subs/part2/SOP.md +34 -0
  150. package/skills/multi/soke-ai-coach-director/references/subs/part3/SOP.md +27 -0
  151. package/skills/multi/soke-ai-coach-director/references/subs/part4/SOP.md +31 -0
  152. package/skills/multi/soke-ai-coach-director/references/subs/publish/SOP.md +81 -0
  153. package/skills/multi/soke-ai-coach-director/references/subs/tune/SOP.md +92 -0
  154. package/skills/multi/soke-ai-coach-director/references/verified-cli-cheatsheet.md +56 -0
  155. package/skills/multi/soke-ai-coach-director/scripts/gate_check.py +112 -0
  156. package/skills/multi/soke-ai-coach-director/scripts/validate_operations.py +403 -0
  157. package/skills/multi/soke-ai-training/SKILL.md +247 -0
  158. package/skills/{soke-learning-map/soke-cli/345/256/211/350/243/205/346/214/207/345/215/227.md → multi/soke-ai-training/references/installation.md} +0 -3
  159. package/skills/multi/soke-ai-training/references/shared.md +185 -0
  160. package/skills/{soke-assign → multi/soke-assign}/README.md +3 -5
  161. package/skills/multi/soke-assign/SKILL.md +101 -0
  162. package/skills/{soke-course/SKILL.md → multi/soke-assign/references/dependencies/soke-course.md} +4 -4
  163. package/skills/multi/soke-assign/references/dependencies/soke-exam.md +600 -0
  164. package/skills/multi/soke-assign/references/installation.md +451 -0
  165. package/skills/multi/soke-assign/references/shared.md +185 -0
  166. package/skills/multi/soke-certificate/SKILL.md +715 -0
  167. package/skills/multi/soke-certificate/references/installation.md +451 -0
  168. package/skills/multi/soke-certificate/references/shared.md +185 -0
  169. package/skills/{soke-course → multi/soke-course}/README.md +11 -9
  170. package/skills/multi/soke-course/SKILL.md +399 -0
  171. package/skills/multi/soke-course/agents/openai.yaml +7 -0
  172. package/skills/multi/soke-course/examples/create-basic.md +70 -0
  173. package/skills/multi/soke-course/references/course-list-courses.md +216 -0
  174. package/skills/multi/soke-course/references/dependencies/soke-assign.md +103 -0
  175. package/skills/multi/soke-course/references/dependencies/soke-lesson.md +119 -0
  176. package/skills/multi/soke-course/references/dependencies/soke-material.md +105 -0
  177. package/skills/multi/soke-course/references/examples.md +480 -0
  178. package/skills/multi/soke-course/references/installation.md +451 -0
  179. package/skills/multi/soke-course/references/intent-cases.md +99 -0
  180. package/skills/multi/soke-course/references/shared.md +185 -0
  181. package/skills/multi/soke-course/references/sop-full-workflow.md +177 -0
  182. package/skills/multi/soke-course/references/sop-lesson-types.md +66 -0
  183. package/skills/multi/soke-course/references/sop-publish-check.md +76 -0
  184. package/skills/multi/soke-course/references/subs/ai/SOP.md +153 -0
  185. package/skills/multi/soke-course/references/subs/category/SOP.md +112 -0
  186. package/skills/multi/soke-course/references/subs/charge/SOP.md +107 -0
  187. package/skills/multi/soke-course/references/subs/copy/SOP.md +80 -0
  188. package/skills/multi/soke-course/references/subs/publish/SOP.md +168 -0
  189. package/skills/multi/soke-course/references/subs/query/SOP.md +165 -0
  190. package/skills/multi/soke-course/references/subs/settings/SOP.md +136 -0
  191. package/skills/multi/soke-course/references/subs/template/SOP.md +223 -0
  192. package/skills/multi/soke-course/references/troubleshoot.md +68 -0
  193. package/skills/multi/soke-course/scripts/check_readiness.py +87 -0
  194. package/skills/multi/soke-exam/SKILL.md +598 -0
  195. package/skills/multi/soke-exam/references/exam-get-exam-user.md +212 -0
  196. package/skills/multi/soke-exam/references/installation.md +451 -0
  197. package/skills/multi/soke-exam/references/shared.md +185 -0
  198. package/skills/{soke-exam-question-pool → multi/soke-exam-question-pool}/SKILL.md +2 -4
  199. package/skills/multi/soke-exam-question-pool/references/installation.md +451 -0
  200. package/skills/multi/soke-exam-question-pool/references/shared.md +185 -0
  201. package/skills/multi/soke-learning-map/SKILL.md +553 -0
  202. package/skills/multi/soke-learning-map/references/dependencies/soke-assign.md +103 -0
  203. package/skills/multi/soke-learning-map/references/dependencies/soke-task.md +146 -0
  204. package/skills/multi/soke-learning-map/references/installation.md +451 -0
  205. package/skills/multi/soke-learning-map/references/shared.md +185 -0
  206. package/skills/multi/soke-learning-profile/SKILL.md +221 -0
  207. package/skills/multi/soke-learning-profile/references/installation.md +451 -0
  208. package/skills/multi/soke-learning-profile/references/shared.md +185 -0
  209. package/skills/multi/soke-lesson/SKILL.md +117 -0
  210. package/skills/multi/soke-lesson/references/installation.md +451 -0
  211. package/skills/multi/soke-lesson/references/shared.md +185 -0
  212. package/skills/multi/soke-material/SKILL.md +103 -0
  213. package/skills/multi/soke-material/references/installation.md +451 -0
  214. package/skills/multi/soke-material/references/shared.md +185 -0
  215. package/skills/multi/soke-photo-gallery/SKILL.md +284 -0
  216. package/skills/multi/soke-photo-gallery/references/installation.md +451 -0
  217. package/skills/multi/soke-photo-gallery/references/shared.md +185 -0
  218. package/skills/multi/soke-shared/SKILL.md +183 -0
  219. package/skills/multi/soke-supervisor/SKILL.md +184 -0
  220. package/skills/multi/soke-supervisor/references/installation.md +451 -0
  221. package/skills/multi/soke-supervisor/references/shared.md +185 -0
  222. package/skills/{soke-task → multi/soke-task}/SKILL.md +31 -11
  223. package/skills/multi/soke-task/references/installation.md +451 -0
  224. package/skills/multi/soke-task/references/shared.md +185 -0
  225. package/skills/{soke-training-demand → multi/soke-training-demand}/SKILL.md +2 -4
  226. package/skills/multi/soke-training-demand/references/installation.md +451 -0
  227. package/skills/multi/soke-training-demand/references/shared.md +185 -0
  228. package/skills/ai-coach-director/SKILL.md +0 -1563
  229. package/skills/ai-coach-director/coaching/prompt-engineer/parts/part2-roles.md +0 -317
  230. package/skills/ai-coach-director/coaching/prompt-engineer/prompt-engineer.md +0 -244
  231. package/skills/ai-coach-director/platform/interaction.md +0 -315
  232. package/skills/ai-coach-director/platform/sync-engine.md +0 -1101
  233. package/skills/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/347/224/265/350/257/235/347/272/246/350/256/277_/346/240/207/345/207/206/347/237/245/350/257/206/345/272/223.md +0 -199
  234. package/skills/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/347/224/265/350/257/235/347/272/246/350/256/277/347/237/245/350/257/206/345/272/223.md +0 -388
  235. package/skills/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/tuv-knowledge-base.md +0 -125
  236. package/skills/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/tuv-p03-first-call-scenario-prompt.md +0 -428
  237. package/skills/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/204P03/351/231/252/347/273/203/346/211/247/350/241/214/346/226/271/346/241/210_20260610.md +0 -225
  238. package/skills/ai-coach-director/references/cases/create//346/237/220/345/234/260/346/226/271/351/223/266/350/241/214//346/237/220/345/234/260/346/226/271/351/223/266/350/241/214/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/277AI/351/231/252/347/273/203/346/265/213/350/257/225/347/224/250/344/276/213/345/220/210/351/233/206.md +0 -525
  239. package/skills/ai-coach-director/references/cases/create//347/211/251/346/265/201/350/241/214/344/270/232//347/211/251/346/265/201/350/241/214/344/270/232-/345/210/235/346/254/241/346/213/234/350/256/277/351/246/231/347/262/276/351/246/231/346/226/231/345/256/242/346/210/267.md +0 -146
  240. package/skills/ai-coach-director/references/cases/create//351/205/222/345/272/227/351/244/220/351/245/256//351/205/222/345/272/227/351/244/220/351/245/256AI/351/231/252/347/273/203_/346/240/207/346/235/2061_/346/226/260/345/223/201/346/216/250/351/224/200_20260701.md +0 -230
  241. package/skills/ai-coach-director/references/cases/create//351/205/222/345/272/227/351/244/220/351/245/256//351/205/222/345/272/227/351/244/220/351/245/256AI/351/231/252/347/273/203_/346/240/207/346/235/2062_/345/202/254/350/217/234/345/256/211/346/212/232_20260701.md +0 -257
  242. package/skills/ai-coach-director/references/cases/create//351/205/222/345/272/227/351/244/220/351/245/256//351/205/222/345/272/227/351/244/220/351/245/256AI/351/231/252/347/273/203_/346/240/207/346/235/2063_/345/267/256/350/257/204/345/233/236/350/256/277_20260701.md +0 -259
  243. package/skills/ai-coach-director/references/cases/create//351/205/222/345/272/227/351/244/220/351/245/256//351/205/222/345/272/227/351/244/220/351/245/256AI/351/231/252/347/273/203/345/234/272/346/231/257/346/226/271/346/241/210_20260701.md +0 -452
  244. package/skills/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_/345/256/242/346/210/267/347/241/256/350/256/244/345/217/215/351/246/210/350/241/250.md +0 -133
  245. package/skills/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_/351/231/252/347/273/203/346/217/220/347/244/272/350/257/215_v1.md +0 -333
  246. package/skills/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_/351/231/252/347/273/203/346/217/220/347/244/272/350/257/215_v2_Part1-Part5.md +0 -649
  247. package/skills/ai-coach-director/references/env-check.md +0 -167
  248. package/skills/ai-coach-director/references/platform-api-pitfalls.md +0 -232
  249. package/skills/ai-coach-director/references/role-resource-matching.md +0 -349
  250. package/skills/ai-coach-director/references/verified-cli-cheatsheet.md +0 -203
  251. package/skills/ai-coach-director/scripts/activator.sh +0 -4
  252. package/skills/ai-coach-director/scripts/error-detector.sh +0 -4
  253. package/skills/ai-coach-director/scripts/extract-skill.sh +0 -7
  254. package/skills/soke-course/scripts/check_readiness.sh +0 -82
  255. /package/skills/{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
  256. /package/skills/{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
  257. /package/skills/{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
  258. /package/skills/{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
  259. /package/skills/{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
  260. /package/skills/{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
  261. /package/skills/{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
  262. /package/skills/{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
  263. /package/skills/{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
  264. /package/skills/{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
  265. /package/skills/{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
  266. /package/skills/{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
  267. /package/skills/{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
  268. /package/skills/{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
  269. /package/skills/{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
  270. /package/skills/{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
  271. /package/skills/{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
  272. /package/skills/{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
  273. /package/skills/{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
  274. /package/skills/{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
  275. /package/skills/{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
  276. /package/skills/{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
  277. /package/skills/{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
  278. /package/skills/{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
  279. /package/skills/{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
  280. /package/skills/{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
  281. /package/skills/{ai-coach-director → mono}/references/cases//345/233/233/345/244/247/345/234/272/346/231/257_GoodCase_BadCase_20260701.md" +0 -0
  282. /package/skills/{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
  283. /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/assets/ERRORS-TEMPLATE.md +0 -0
  284. /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/assets/FEATURE_REQUESTS-TEMPLATE.md +0 -0
  285. /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/assets/LEARNINGS-TEMPLATE.md +0 -0
  286. /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/assets/SKILL-TEMPLATE.md +0 -0
  287. /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/coaching/prompt-engineer/parts/part1-basic.md +0 -0
  288. /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/coaching/prompt-engineer/parts/part4-scoring.md +0 -0
  289. /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/coaching/prompt-engineer/parts/part5-constraints.md +0 -0
  290. /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/coaching/role-profiler/role-profiler.md +0 -0
  291. /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/adapters/README.md +0 -0
  292. /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/adapters/qclaw.md +0 -0
  293. /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/adapters/wukong.md +0 -0
  294. /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/adapters/zework.md +0 -0
  295. /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/api-fallback.md +0 -0
  296. /package/skills/{soke-assign/SKILL.md → mono/references/modules/soke-assign/MODULE.md} +0 -0
  297. /package/skills/{soke-course → mono/references/modules/soke-course}/agents/openai.yaml +0 -0
  298. /package/skills/{soke-course → mono/references/modules/soke-course}/examples/create-basic.md +0 -0
  299. /package/skills/{soke-course → mono/references/modules/soke-course}/references/sop-lesson-types.md +0 -0
  300. /package/skills/{soke-course → mono/references/modules/soke-course}/references/sop-publish-check.md +0 -0
  301. /package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/ai/SOP.md +0 -0
  302. /package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/category/SOP.md +0 -0
  303. /package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/charge/SOP.md +0 -0
  304. /package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/copy/SOP.md +0 -0
  305. /package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/template/SOP.md +0 -0
  306. /package/skills/{soke-course → mono/references/modules/soke-course}/references/troubleshoot.md +0 -0
  307. /package/skills/{soke-exam → mono/references/modules/soke-exam}/references/exam-get-exam-user.md +0 -0
  308. /package/skills/{soke-lesson/SKILL.md → mono/references/modules/soke-lesson/MODULE.md} +0 -0
  309. /package/skills/{soke-material/SKILL.md → mono/references/modules/soke-material/MODULE.md} +0 -0
  310. /package/skills/{soke-shared/SKILL.md → mono/references/modules/soke-shared/MODULE.md} +0 -0
  311. /package/skills/{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
  312. /package/skills/{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
  313. /package/skills/{soke-lesson → multi/soke-lesson}/README.md +0 -0
  314. /package/skills/{soke-material → multi/soke-material}/README.md +0 -0
@@ -0,0 +1,553 @@
1
+ ---
2
+ name: soke-learning-map
3
+ description: "授客学堂学习地图管理:完整的学习地图生命周期管理,包括创建学习地图、查询课程分类与课程、检查课程可用性、创建阶段、发布地图、指派部门/学员、查询学员进度的全链路流程。集成 soke-assign(指派管理)子 skill。学习地图学员统计导出任务已独立到 soke-task skill。当用户需要创建学习地图、添加阶段和课程内容、发布地图、指派学员、查询学习进度时使用。 | Soke Academy learning map management: complete learning map lifecycle management, covering the full workflow of creating learning maps, querying course categories and courses, checking course availability, creating stages, publishing maps, assigning departments/learners, and querying learner progress. Integrates soke-assign (assignment management) sub-skill. Learning map learner statistics export tasks are handled by the standalone soke-task skill. Use when users need to create learning maps, add stages and course content, publish maps, assign learners, or query learning progress."
4
+ metadata:
5
+ requires:
6
+ bins: ["soke-cli"]
7
+ skills: ["soke-assign"]
8
+ cliHelp: "soke-cli learning-map --help"
9
+ ---
10
+
11
+ # 学习地图管理 (soke-learning-map)
12
+
13
+ **CRITICAL — 开始前 MUST 先用 Read 工具读取 [`./references/installation.md`](./references/installation.md),其中包含认证、配置、权限处理**
14
+
15
+ ## 使用前提
16
+
17
+ 1. 已安装 `soke-cli`
18
+ 2. 已登录授权:`soke-cli auth login`
19
+
20
+ ```bash
21
+ soke-cli auth login
22
+ soke-cli config show # 验证登录状态
23
+ ```
24
+
25
+ ---
26
+
27
+ ## 端到端创建工作流
28
+
29
+ 完整创建一个可学习的学习地图需要以下步骤:
30
+
31
+ ```
32
+ ┌─────────────────────────────────────────────────────────────────────┐
33
+ │ 1. 查询地图分类 → 获取 category-uuid (path[0]) │
34
+ │ 2. 创建学习地图 → 获取 map-uuid │
35
+ │ 3. 查询课程分类子树 → 获取课程分类 uuid │
36
+ │ 4. 搜索课程列表 → 获取课程 uuid + 课程元数据 │
37
+ │ 5. 检查课程可用性 → 确认课程可加入该地图 │
38
+ │ 6. 创建学习地图阶段 → 添加课程内容,获取 stage-uuid │
39
+ │ 7. 发布学习地图 → 学员可见 │
40
+ │ 8. (可选) 指派 → 分配给部门/学员 → 学员开始学习 │
41
+ │ 9. 查询学习地图详情 → 查看地图完整信息 │
42
+ └─────────────────────────────────────────────────────────────────────┘
43
+ ```
44
+
45
+ ### 数据流转图
46
+
47
+ ```
48
+ 地图分类查询 课程分类子树查询
49
+ │ │
50
+ ▼ ▼
51
+ category-uuid course-category-uuid
52
+ │ │
53
+ ▼ ▼
54
+ 创建学习地图 ──→ map-uuid ──→ 搜索课程列表 ──→ course-uuid
55
+ │ │
56
+ └──────────────┬─────────────────┘
57
+
58
+ 检查课程可用性 ──→ availabelIds
59
+
60
+
61
+ 创建学习地图阶段 ──→ stage-uuid
62
+
63
+
64
+ 发布学习地图 ◄── 至少 1 个阶段
65
+
66
+
67
+ 指派给学员 ◄── assign +create (可选)
68
+
69
+
70
+ 学员可开始学习
71
+ ```
72
+
73
+ ### 各步骤参数依赖
74
+
75
+ | 步骤 | 命令 | 关键输出 | 传入下一步 |
76
+ |------|------|----------|------------|
77
+ | 1 | `+list-categories` | `data.list[].uuid` | 步骤2 `--path` |
78
+ | 2 | `+create-map` | `data.info.uuid` | 步骤5/6/7 `--map-id` / `--uuid` |
79
+ | 3 | `+course-category-tree` | `data[].uuid` | 步骤4 `--category-id` |
80
+ | 4 | `+search-courses` | `data[].uuid` | 步骤5 `--course-ids`;步骤6 `--item-uuids` |
81
+ | 5 | `+check-item-status` | `data.availabelIds[]` | 步骤6 `--item-uuids`(只传可用 UUID) |
82
+ | 6 | `+create-stage` | `data.info.uuid` | 可创建多个阶段 |
83
+ | 7 | `+publish` | `data.info.status=1` | 发布成功 |
84
+ | 9 | `+detail` | `data.info.*` | 查看完整地图信息 |
85
+
86
+ ---
87
+
88
+ ## 步骤1:查询学习地图分类
89
+
90
+ 创建学习地图前必须先获取分类 ID。
91
+
92
+ ```bash
93
+ soke-cli learning-map +list-categories --page 1 --page-size 10
94
+
95
+ # JSON 输出供解析:
96
+ soke-cli learning-map +list-categories --format json
97
+ ```
98
+
99
+ **响应关键字段**:
100
+ - `data.list[].uuid` → 分类 UUID(传入步骤2 `--path`)
101
+ - `data.list[].title` → 分类名称
102
+
103
+ ---
104
+
105
+ ## 步骤2:创建学习地图
106
+
107
+ ```bash
108
+ soke-cli learning-map +create-map \
109
+ --path "CATEGORY-UUID" \
110
+ --title "学习地图标题" \
111
+ --type "cycle" \
112
+ --template "14" \
113
+ --picture "https://newsokecdn.soke.cn/dingfc5d942826fce9d9/public/image/learning_map/other.png"
114
+
115
+ # 带可选参数:
116
+ soke-cli learning-map +create-map \
117
+ --path "CATEGORY-UUID" \
118
+ --title "新员工入职培训" \
119
+ --type "cycle" \
120
+ --template "14" \
121
+ --picture "https://newsokecdn.soke.cn/.../other.png" \
122
+ --description "<p>新员工培训学习地图</p>" \
123
+ --is-new "1" \
124
+ --unlock-type "0" \
125
+ --format json
126
+ ```
127
+
128
+ **参数说明**:
129
+
130
+ | 参数 | 必填 | 说明 |
131
+ |------|------|------|
132
+ | `--path` | 是 | 所属分类 UUID(步骤1 获取) |
133
+ | `--title` | 是 | 学习地图名称 |
134
+ | `--type` | 是 | `fixed`(固定时间)/ `cycle`(周期型) |
135
+ | `--template` | 是 | 模板 ID,如 `14` |
136
+ | `--picture` | 是 | 封面图片 URL |
137
+ | `--description` | 否 | 简介(支持 HTML) |
138
+ | `--is-new` | 否 | 是否新员工专属:`0` 否 / `1` 是(默认 `0`) |
139
+ | `--is-ojt` | 否 | 是否 OJT:`0` 否 / `1` 是(默认 `0`) |
140
+ | `--is-public` | 否 | 是否公开:`0` 否 / `1` 是(默认 `0`) |
141
+ | `--open-time` | 否 | 开放时间(`YYYY-MM-DD HH:mm:ss`),`0000-00-00 00:00:00` 不限 |
142
+ | `--end-time` | 否 | 结束时间,`0000-00-00 00:00:00` 不限 |
143
+ | `--unlock-type` | 否 | `0` 顺序解锁 / `1` 自由解锁(默认 `0`) |
144
+
145
+ **响应提取**:`data.info.uuid` → 地图 UUID(`map-uuid`),后续所有步骤均使用此值。
146
+
147
+ ---
148
+
149
+ ## 步骤3:查询课程分类子树
150
+
151
+ 查询可加入学习地图的课程所在分类。
152
+
153
+ ```bash
154
+ soke-cli course +category-tree \
155
+ --parent-id "PARENT-CATEGORY-UUID"
156
+
157
+ # JSON 输出:
158
+ soke-cli course +category-tree --parent-id "UUID" --format json
159
+ ```
160
+
161
+ **参数说明**:
162
+
163
+ | 参数 | 必填 | 说明 |
164
+ |------|------|------|
165
+ | `--parent-id` | 是 | 父分类 UUID(根分类一般已知,可从平台获取) |
166
+ | `--lang` | 否 | 语言,默认 `zh` |
167
+
168
+ **响应关键字段**:
169
+ - `data[].uuid` → 子分类 UUID(传入步骤4 `--category-id`)
170
+ - `data[].title` → 分类名称
171
+ - `data[].has_children` → 是否还有子分类(`1` 表示有,可继续递归查询)
172
+
173
+ ---
174
+
175
+ ## 步骤4:搜索课程列表
176
+
177
+ 根据分类 UUID 搜索该分类下的课程。
178
+
179
+ ```bash
180
+ soke-cli course +search \
181
+ --category-id "COURSE-CATEGORY-UUID"
182
+
183
+ # JSON 输出:
184
+ soke-cli course +search \
185
+ --category-id "COURSE-CATEGORY-UUID" \
186
+ --format json
187
+ ```
188
+
189
+ **响应关键字段**:
190
+
191
+ | 字段 | 用途 |
192
+ |------|------|
193
+ | `data[].uuid` | 课程 UUID(步骤5 `--course-ids`;步骤6 `--item-uuids`) |
194
+ | `data[].title` | 课程标题(供展示确认) |
195
+
196
+ ---
197
+
198
+ ## 步骤5:检查课程可用性
199
+
200
+ 验证所选课程能否加入该学习地图(避免无效操作)。
201
+
202
+ ```bash
203
+ soke-cli learning-map +check-item-status \
204
+ --map-id "MAP-UUID" \
205
+ --course-ids "COURSE-UUID-1,COURSE-UUID-2"
206
+
207
+ # JSON 输出:
208
+ soke-cli learning-map +check-item-status \
209
+ --map-id "MAP-UUID" \
210
+ --course-ids "COURSE-UUID-1" \
211
+ --format json
212
+ ```
213
+
214
+ **参数说明**:
215
+
216
+ | 参数 | 必填 | 说明 |
217
+ |------|------|------|
218
+ | `--map-id` | 是 | 学习地图 UUID(步骤2 获取) |
219
+ | `--course-ids` | 是 | 课程 UUID 列表,多个以英文逗号分隔 |
220
+
221
+ **响应关键字段**:
222
+ - `data.canUse` → `true` 表示全部可用
223
+ - `data.availabelIds[]` → 可用课程 UUID 列表(只将此列表中的 UUID 传入步骤6 `--item-uuids`)
224
+
225
+ ---
226
+
227
+ ## 步骤6:创建学习地图阶段
228
+
229
+ 提供阶段内容类型和课程 UUID 列表,CLI 会自动调用课程详情接口获取完整信息并构建 `selectItems`,无需手动传入 JSON。
230
+
231
+ ```bash
232
+ soke-cli learning-map +create-stage \
233
+ --map-id "MAP-UUID" \
234
+ --title "阶段1:基础学习" \
235
+ --item-type "course" \
236
+ --item-uuids "COURSE-UUID-1,COURSE-UUID-2" \
237
+ --cycle "7" \
238
+ --unlock-type "0" \
239
+ --finish-all "1"
240
+ ```
241
+
242
+ **参数说明**:
243
+
244
+ | 参数 | 必填 | 说明 |
245
+ |------|------|------|
246
+ | `--map-id` | 是 | 学习地图 UUID(步骤2 获取) |
247
+ | `--title` | 是 | 阶段名称 |
248
+ | `--item-type` | 是 | 阶段内容类型,目前支持 `course`(课程) |
249
+ | `--item-uuids` | 是 | 资源 UUID 列表,多个以英文逗号分隔(步骤5 `availabelIds` 中的 UUID) |
250
+ | `--cycle` | 否 | 学习周期(天),`0` 不限(默认 `0`) |
251
+ | `--description` | 否 | 阶段描述 |
252
+ | `--display` | 否 | 是否显示:`1` 显示 / `0` 隐藏(默认 `1`) |
253
+ | `--start-time` | 否 | 开始时间,`0000-00-00 00:00:00` 不限 |
254
+ | `--end-time` | 否 | 结束时间,`0000-00-00 00:00:00` 不限 |
255
+ | `--unlock-type` | 否 | `0` 顺序解锁 / `1` 自由解锁(默认 `0`) |
256
+ | `--finish-all` | 否 | 是否需完成全部:`1` 是 / `0` 否(默认 `1`) |
257
+ | `--need-count` | 否 | 需完成数量(`--finish-all 0` 时有效,默认 `1`) |
258
+ | `--certificate-id` | 否 | 证书 ID |
259
+
260
+ > **说明**:`--item-type course` 时,CLI 自动调用 `/course/course/info` 获取每个课程的标题、封面、时长、积分、学分等信息,自动组装 `selectItems` 字段后再提交创建请求,无需手动构造 JSON。
261
+
262
+ **响应提取**:`data.info.uuid` → 阶段 UUID;可重复步骤6创建多个阶段。
263
+
264
+ ---
265
+
266
+ ## 步骤7:发布学习地图
267
+
268
+ **前提**:学习地图至少包含 1 个阶段。
269
+
270
+ ```bash
271
+ soke-cli learning-map +publish --uuid "MAP-UUID"
272
+
273
+ # 下架:
274
+ soke-cli learning-map +publish --uuid "MAP-UUID" --status "0"
275
+ ```
276
+
277
+ **参数说明**:
278
+
279
+ | 参数 | 必填 | 说明 |
280
+ |------|------|------|
281
+ | `--uuid` | 是 | 学习地图 UUID(步骤2 获取) |
282
+ | `--status` | 否 | `1` 发布 / `0` 下架(默认 `1`) |
283
+
284
+ **响应验证**:`data.info.status` = `1` 表示发布成功。
285
+
286
+ ---
287
+
288
+ ## 步骤8:指派学习地图(可选)
289
+
290
+ > 详见 [`./references/dependencies/soke-assign.md`](./references/dependencies/soke-assign.md)
291
+
292
+ 发布后指派给部门或学员,学员才能看到并开始学习。
293
+
294
+ ### 8.1 查询可用部门/用户
295
+
296
+ ```bash
297
+ soke-cli assign +list-departments --keyword "关键词"
298
+ soke-cli assign +list-users --dept-id "DEPT-ID" --keyword "关键词"
299
+ ```
300
+
301
+ ### 8.2 创建指派
302
+
303
+ ```bash
304
+ # 指派给部门
305
+ soke-cli assign +create \
306
+ --module "learning_map" \
307
+ --target-id "MAP-UUID" \
308
+ --dept-ids "DEPT-ID" \
309
+ --dept-names "部门名称" \
310
+ --learn-type "required"
311
+
312
+ # 指派给用户
313
+ soke-cli assign +create \
314
+ --module "learning_map" \
315
+ --target-id "MAP-UUID" \
316
+ --user-ids "USER-ID" \
317
+ --user-names "学员姓名" \
318
+ --learn-type "required"
319
+ ```
320
+
321
+ ---
322
+
323
+ ## 步骤9:查询学习地图详情
324
+
325
+ ```bash
326
+ soke-cli learning-map +detail --uuid "MAP-UUID"
327
+
328
+ # JSON 输出:
329
+ soke-cli learning-map +detail --uuid "MAP-UUID" --format json
330
+ ```
331
+
332
+ **参数说明**:
333
+
334
+ | 参数 | 必填 | 说明 |
335
+ |------|------|------|
336
+ | `--uuid` | 是 | 学习地图 UUID |
337
+
338
+ **响应关键字段**:
339
+ - `data.info.uuid` → 地图 UUID
340
+ - `data.info.title` → 地图名称
341
+ - `data.info.status` → 状态(`0` 未发布 / `1` 已发布)
342
+ - `data.info.stage_number` → 阶段数量
343
+ - `data.info.learning_num` → 学习人数
344
+ - `data.info.finish_num` → 完成人数
345
+ - `data.info.point` / `data.info.credit` → 积分 / 学分
346
+
347
+ ---
348
+
349
+ ## 可用命令全览
350
+
351
+ ### 学习地图创建(本 skill 新增)
352
+
353
+ | 命令 | 说明 | 风险 |
354
+ |------|------|------|
355
+ | `learning-map +create-map` | 创建学习地图 | write |
356
+ | `course +category-tree` | 获取课程分类子树 | read |
357
+ | `course +search` | 按分类搜索课程 | read |
358
+ | `learning-map +check-item-status` | 检查课程是否可加入地图 | read |
359
+ | `learning-map +create-stage` | 创建学习地图阶段 | write |
360
+ | `learning-map +publish` | 发布/下架学习地图 | write |
361
+
362
+ ### 学习地图查询
363
+
364
+ | 命令 | 说明 | 风险 |
365
+ |------|------|------|
366
+ | `+list-categories` | 查询学习地图分类 | read |
367
+ | `+list-maps` | 查询学习地图列表 | read |
368
+ | `+detail` | 查询学习地图详情 | read |
369
+ | `+list-stages` | 查询阶段列表 | read |
370
+ | `+list-items` | 查询阶段内容列表 | read |
371
+
372
+ ### 学员进度查询
373
+
374
+ | 命令 | 说明 | 风险 |
375
+ |------|------|------|
376
+ | `+list-map-users` | 查询地图学员列表 | read |
377
+ | `+list-stage-users` | 查询阶段学员列表 | read |
378
+ | `+list-item-users` | 查询内容学员列表 | read |
379
+ | `+get-map-user` | 查询单个学员详情 | read |
380
+
381
+ 学员统计导出任务使用独立模块:`soke-cli task +create` / `soke-cli task +get`,详见 [`./references/dependencies/soke-task.md`](./references/dependencies/soke-task.md)。
382
+
383
+ ### 指派管理(soke-assign)
384
+
385
+ | 命令 | 说明 |
386
+ |------|------|
387
+ | `assign +list-departments` | 查询可用部门 |
388
+ | `assign +list-users` | 查询可用用户 |
389
+ | `assign +create` | 创建指派 |
390
+ | `assign +list` | 查询指派记录 |
391
+
392
+ ---
393
+
394
+ ## 调试与故障排除
395
+
396
+ ### 常见错误速查
397
+
398
+ | 错误 | 原因 | 解决 |
399
+ |------|------|------|
400
+ | `未登录授权` | Token 过期 | `soke-cli auth login` |
401
+ | `分类不存在` | category UUID 无效 | 重新查询 `+list-categories` |
402
+ | `学习地图不存在` | map-id 无效 | 确认创建成功 |
403
+ | `课程不可用` | 课程已在其他地图或未发布 | 检查 `+check-item-status` 返回的 `availabelIds` |
404
+ | `发布失败` | 无阶段或阶段无内容 | 先创建至少 1 个有课程的阶段 |
405
+ | `参数错误` | 必填参数缺失或格式不对 | `soke-cli learning-map <cmd> --help` |
406
+
407
+ ### 调试检查清单
408
+
409
+ ```bash
410
+ # 1. 认证状态
411
+ soke-cli config show
412
+
413
+ # 2. 确认地图存在
414
+ soke-cli learning-map +list-maps \
415
+ --start-time 1700000000000 --end-time 1800000000000 --format json | \
416
+ jq '.data.list[] | select(.uuid=="MAP-UUID")'
417
+
418
+ # 3. 查询阶段
419
+ soke-cli learning-map +list-stages --map-id "MAP-UUID" --format json | \
420
+ jq '.data.list | length'
421
+
422
+ # 4. 确认发布状态(status=1 已发布)
423
+ soke-cli learning-map +list-maps \
424
+ --start-time 1700000000000 --end-time 1800000000000 --format json | \
425
+ jq '.data.list[] | select(.uuid=="MAP-UUID") | .status'
426
+
427
+ # 始终用 --format json 获取结构化输出
428
+ ```
429
+
430
+ ---
431
+
432
+ ## 完整示例
433
+
434
+ ```bash
435
+ # === 1. 查询地图分类 ===
436
+ MAP_CATEGORY_ID=$(soke-cli learning-map +list-categories --format json | \
437
+ jq -r '.data.list[0].uuid')
438
+
439
+ # === 2. 创建学习地图 ===
440
+ MAP_UUID=$(soke-cli learning-map +create-map \
441
+ --path "$MAP_CATEGORY_ID" \
442
+ --title "新员工入职培训" \
443
+ --type "cycle" \
444
+ --template "14" \
445
+ --picture "https://newsokecdn.soke.cn/dingfc5d942826fce9d9/public/image/learning_map/other.png" \
446
+ --description "<p>新员工入职培训学习地图</p>" \
447
+ --is-new "1" \
448
+ --format json | jq -r '.data.info.uuid')
449
+
450
+ echo "地图 UUID: $MAP_UUID"
451
+
452
+ # === 3. 查询课程分类子树 ===
453
+ COURSE_CATEGORY_ID=$(soke-cli course +category-tree \
454
+ --parent-id "COURSE-ROOT-CATEGORY-UUID" \
455
+ --format json | jq -r '.data[0].uuid')
456
+
457
+ # === 4. 搜索课程 ===
458
+ COURSES=$(soke-cli course +search \
459
+ --category-id "$COURSE_CATEGORY_ID" \
460
+ --format json | jq '.data')
461
+
462
+ COURSE_UUID=$(echo "$COURSES" | jq -r '.[0].uuid')
463
+
464
+ # === 5. 检查课程可用性 ===
465
+ AVAILABLE=$(soke-cli learning-map +check-item-status \
466
+ --map-id "$MAP_UUID" \
467
+ --course-ids "$COURSE_UUID" \
468
+ --format json | jq -r '.data.canUse')
469
+
470
+ if [ "$AVAILABLE" != "true" ]; then
471
+ echo "课程不可用,请检查"
472
+ exit 1
473
+ fi
474
+
475
+ # === 6. 创建阶段(CLI 自动获取课程详情并构建 selectItems)===
476
+ STAGE_UUID=$(soke-cli learning-map +create-stage \
477
+ --map-id "$MAP_UUID" \
478
+ --title "阶段1:基础学习" \
479
+ --item-type "course" \
480
+ --item-uuids "$COURSE_UUID" \
481
+ --cycle "7" \
482
+ --unlock-type "0" \
483
+ --finish-all "1" \
484
+ --format json | jq -r '.data.info.uuid')
485
+
486
+ echo "阶段 UUID: $STAGE_UUID"
487
+
488
+ # === 7. 发布学习地图 ===
489
+ soke-cli learning-map +publish --uuid "$MAP_UUID"
490
+
491
+ # === 8. 指派给部门(可选)===
492
+ DEPT_ID=$(soke-cli assign +list-departments --keyword "研发" --format json | \
493
+ jq -r '.data.list[0].uuid')
494
+
495
+ soke-cli assign +create \
496
+ --module "learning_map" \
497
+ --target-id "$MAP_UUID" \
498
+ --dept-ids "$DEPT_ID" \
499
+ --dept-names "研发部" \
500
+ --learn-type "required"
501
+
502
+ # === 9. 验证 ===
503
+ soke-cli learning-map +list-maps \
504
+ --start-time 1700000000000 --end-time 1800000000000 \
505
+ --format json | jq '.data.list[] | select(.uuid=="'"$MAP_UUID"'")'
506
+ ```
507
+
508
+ ---
509
+
510
+ ## API 接口映射
511
+
512
+ | CLI 命令 | API 路径 | 方法 |
513
+ |----------|----------|------|
514
+ | `learning-map +list-categories` | `/learningMap/category/list` | GET |
515
+ | `learning-map +list-maps` | `/learningMap/learningMap/list` | GET |
516
+ | `learning-map +create-map` | `/skills/learningMap/create` | POST (form) |
517
+ | `course +category-tree` | `/skills/course/category/tree` | GET |
518
+ | `course +search` | `/skills/course/search` | GET |
519
+ | `learning-map +check-item-status` | `/skills/learningMap/item/checkUseStatus` | POST (form) |
520
+ | `learning-map +create-stage` | `/skills/learningMap/stage/create` | POST (form) |
521
+ | `learning-map +publish` | `/skills/learningMap/update/{uuid}` | PUT (form) |
522
+ | `learning-map +detail` | `/skills/learningMap/detail/{uuid}` | GET |
523
+ | `learning-map +list-stages` | `/learningMap/stage/list` | GET |
524
+ | `learning-map +list-items` | `/learningMap/item/list` | GET |
525
+ | `learning-map +list-map-users` | `/learningMap/user/list` | GET |
526
+ | `learning-map +list-stage-users` | `/learningMap/stageUser/list` | GET |
527
+ | `learning-map +list-item-users` | `/learningMap/itemUser/list` | GET |
528
+ | `learning-map +get-map-user` | `/learningMap/user/info` | GET |
529
+ | `assign +list-departments` | `/skills/department/list` | GET |
530
+ | `assign +list-users` | `/skills/user/list` | GET |
531
+ | `assign +create` | `/skills/assignLog/create` | POST |
532
+ | `assign +list` | `/skills/assignLog/list` | GET |
533
+
534
+ ## 权限要求
535
+
536
+ | 操作 | 权限范围 |
537
+ |------|----------|
538
+ | 学习地图读写 | `learningMap:learningMap:write` / `learningMap:learningMap:readonly` |
539
+ | 指派读写 | `assign:write` / `assign:read` |
540
+
541
+ ## 注意事项
542
+
543
+ 1. **学习地图至少需要 1 个阶段才能发布**
544
+ 2. **创建阶段前必须先检查课程可用性**(`+check-item-status`),只将 `data.availabelIds` 中的 UUID 传入 `--item-uuids`
545
+ 3. **`--item-type` 和 `--item-uuids` 替代了旧的 `--select-items`**,CLI 自动获取资源详情并构建完整的 `selectItems` 字段,无需手动构造 JSON
546
+ 4. **发布后学员才可见**
547
+ 5. **指派是可选的**,未指派时学员看不到学习地图
548
+ 6. **可以创建多个阶段**,重复步骤6即可
549
+
550
+ ## 相关文档
551
+
552
+ - [`./references/shared.md`](./references/shared.md) — 认证、配置、权限
553
+ - [`./references/dependencies/soke-assign.md`](./references/dependencies/soke-assign.md) — 指派管理
@@ -0,0 +1,103 @@
1
+ ---
2
+ name: soke-assign
3
+ version: 1.0.0
4
+ description: 指派管理 — 查询部门/用户并指派课程给学员,支持必修/选修
5
+ tags: [soke, assign, department, user, enrollment]
6
+ ---
7
+
8
+ # 指派管理
9
+
10
+ ## 触发描述
11
+
12
+ 课程创建并发布后,需要将课程指派给部门或具体学员时触发本技能。支持查询组织架构、查询用户列表、创建指派记录及查看指派列表。
13
+
14
+ ## 前置条件
15
+
16
+ - 目标课程 `status = 1`(已发布),未发布的课程不可指派
17
+ - 具有指派权限(管理员或课程负责人)
18
+
19
+ ## 执行流程
20
+
21
+ ### 1. 查询部门 `assign +list-departments`
22
+
23
+ ```bash
24
+ soke assign +list-departments
25
+ ```
26
+
27
+ 返回当前租户下所有部门结构。输出格式预期为部门 ID 与名称的层级列表。
28
+
29
+ > 该项为辅助查询,不直接参与指派创建,但可用于确认用户所属部门。
30
+
31
+ ### 2. 查询用户 `assign +list-users`
32
+
33
+ ```bash
34
+ soke assign +list-users --department-id <departmentId>
35
+ ```
36
+
37
+ | 参数 | 必填 | 说明 |
38
+ |------|------|------|
39
+ | `--department-id` | 否 | 按部门过滤,不传则返回全部用户 |
40
+
41
+ 返回用户列表,包含用户 ID、姓名、所属部门等基本信息。
42
+
43
+ ### 3. 创建指派 `assign +create`
44
+
45
+ ```bash
46
+ soke assign +create \
47
+ --module course \
48
+ --module-id <courseId> \
49
+ --compulsory <1|0> \
50
+ --user-ids "<userId1>,<userId2>,<userId3>"
51
+ ```
52
+
53
+ | 参数 | 必填 | 说明 |
54
+ |------|------|------|
55
+ | `--module` | 是 | 固定值 `course` |
56
+ | `--module-id` | 是 | 课程 ID |
57
+ | `--compulsory` | 是 | `1` = 必修,`0` = 选修 |
58
+ | `--user-ids` | 是 | 逗号分隔的用户 ID 列表 |
59
+
60
+ > ⚠️ 课程必须 `status = 1`(已发布),否则指派会失败。
61
+
62
+ ### 4. 查询指派 `assign +list`
63
+
64
+ ```bash
65
+ soke assign +list --module-id <courseId>
66
+ ```
67
+
68
+ | 参数 | 必填 | 说明 |
69
+ |------|------|------|
70
+ | `--module-id` | 是 | 课程 ID |
71
+
72
+ 返回该课程所有已指派的学员列表,包含用户信息、必修/选修标记、学习进度。
73
+
74
+ ## 输出标准
75
+
76
+ 创建指派成功后输出:
77
+
78
+ ```
79
+ ✅ 指派创建成功
80
+ - 课程: {courseTitle} (ID: {courseId})
81
+ - 类型: {必修/选修}
82
+ - 指派人数: {N} 人
83
+ - 用户: {userName1}, {userName2}...
84
+ ```
85
+
86
+ 查询操作以表格或列表形式输出结果。
87
+
88
+ ## 注意事项
89
+
90
+ 1. **课程必须先发布**(status=1)才能指派,未发布课程无法创建指派记录
91
+ 2. `--module` 当前仅支持 `course`,扩展模块后可能支持其他值
92
+ 3. 必修课(compulsory=1)学员不可跳过,选修课(compulsory=0)学员可自主选择
93
+ 4. 指派后可重复指派同一用户,以最新一次为准(覆盖更新)
94
+ 5. 批量指派建议单次 user-ids 不超过 500 人,超出分批处理
95
+ 6. 取消指派(删除指派记录)需通过后台操作,CLI 不直接支持
96
+
97
+ ## 检查清单
98
+
99
+ - [ ] 课程 status = 1(已发布确认)
100
+ - [ ] 已通过 list-departments / list-users 确认目标用户 ID
101
+ - [ ] compulsory 正确设定(1=必修, 0=选修)
102
+ - [ ] user-ids 为逗号分隔的有效用户 ID 列表
103
+ - [ ] 指派完成后通过 assign +list 验证结果