@sokeai/cli 1.0.76 → 1.0.77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/package.json +1 -1
- package/scripts/build-binaries.sh +1 -1
- package/scripts/e2e-test.sh +75 -3
- package/skills/SKILL.md +18 -1
- package/skills/soke-ai-coach-director/CHANGELOG.md +203 -0
- package/skills/soke-ai-coach-director/README.md +123 -0
- package/skills/soke-ai-coach-director/SKILL.md +221 -0
- package/skills/soke-ai-coach-director/coaching/knowledge-packager/knowledge-packager.md +91 -0
- package/skills/soke-ai-coach-director/coaching/prompt-engineer/parts/part2-roles.md +97 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-engineer/parts/part3-flow.md +3 -3
- package/skills/soke-ai-coach-director/coaching/prompt-engineer/prompt-engineer.md +76 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-optimizer/prompt-optimizer.md +77 -58
- package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/workbuddy.md +2 -3
- package/skills/soke-ai-coach-director/platform/interaction.md +103 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/platform/publish-gate.md +3 -3
- package/skills/{ai-coach-director → soke-ai-coach-director}/platform/resource-finalizer.md +10 -35
- package/skills/{ai-coach-director → soke-ai-coach-director}/platform/soke-ai-training/soke-ai-training.md +33 -3
- package/skills/soke-ai-coach-director/platform/sync-engine.md +39 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/references/change-log-partwise-refactor.md +1 -1
- package/skills/soke-ai-coach-director/references/env-check.md +146 -0
- package/skills/soke-ai-coach-director/references/exec-common.md +126 -0
- package/skills/soke-ai-coach-director/references/exec-handbook.md +621 -0
- package/skills/soke-ai-coach-director/references/exec-part1.md +86 -0
- package/skills/soke-ai-coach-director/references/exec-part2.md +145 -0
- package/skills/soke-ai-coach-director/references/exec-part3.md +91 -0
- package/skills/soke-ai-coach-director/references/exec-part4.md +187 -0
- package/skills/soke-ai-coach-director/references/gate-check-matrix.md +46 -0
- package/skills/soke-ai-coach-director/references/micro-tune-labels.md +30 -0
- package/skills/soke-ai-coach-director/references/platform-api-pitfalls.md +49 -0
- package/skills/soke-ai-coach-director/references/role-resource-matching.md +45 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/references/self-improvement-examples.md +2 -0
- package/skills/soke-ai-coach-director/references/self-learning-engine.md +489 -0
- package/skills/soke-ai-coach-director/references/subs/part1/SOP.md +17 -0
- package/skills/soke-ai-coach-director/references/subs/part2/SOP.md +34 -0
- package/skills/soke-ai-coach-director/references/subs/part3/SOP.md +27 -0
- package/skills/soke-ai-coach-director/references/subs/part4/SOP.md +31 -0
- package/skills/soke-ai-coach-director/references/subs/publish/SOP.md +81 -0
- package/skills/soke-ai-coach-director/references/subs/tune/SOP.md +92 -0
- package/skills/soke-ai-coach-director/references/verified-cli-cheatsheet.md +56 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/scripts/activator.sh +0 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/scripts/error-detector.sh +0 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/scripts/extract-skill.sh +0 -0
- package/skills/soke-ai-coach-director/scripts/gate_check.py +112 -0
- package/skills/soke-ai-coach-director/scripts/validate_operations.py +403 -0
- package/skills/soke-certificate/SKILL.md +717 -0
- package/skills/soke-course/README.md +6 -2
- package/skills/soke-course/SKILL.md +3 -3
- package/skills/soke-course/references/course-list-courses.md +49 -84
- package/skills/soke-course/references/intent-cases.md +2 -2
- package/skills/soke-course/references/sop-full-workflow.md +4 -2
- package/skills/soke-course/references/subs/publish/SOP.md +21 -3
- package/skills/soke-course/references/subs/query/SOP.md +9 -7
- package/skills/soke-course/references/subs/settings/SOP.md +2 -1
- package/skills/soke-exam-question-pool/SKILL.md +2 -2
- package/skills/soke-task/SKILL.md +32 -10
- package/skills/soke-training-demand/SKILL.md +2 -2
- package/skills/ai-coach-director/SKILL.md +0 -1563
- package/skills/ai-coach-director/coaching/prompt-engineer/parts/part2-roles.md +0 -317
- package/skills/ai-coach-director/coaching/prompt-engineer/prompt-engineer.md +0 -244
- package/skills/ai-coach-director/platform/interaction.md +0 -315
- package/skills/ai-coach-director/platform/sync-engine.md +0 -1101
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/skills/ai-coach-director/references/env-check.md +0 -167
- package/skills/ai-coach-director/references/platform-api-pitfalls.md +0 -232
- package/skills/ai-coach-director/references/role-resource-matching.md +0 -349
- package/skills/ai-coach-director/references/verified-cli-cheatsheet.md +0 -203
- /package/skills/{ai-coach-director → soke-ai-coach-director}/assets/ERRORS-TEMPLATE.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/assets/FEATURE_REQUESTS-TEMPLATE.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/assets/LEARNINGS-TEMPLATE.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/assets/SKILL-TEMPLATE.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-engineer/parts/part1-basic.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-engineer/parts/part4-scoring.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-engineer/parts/part5-constraints.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/role-profiler/role-profiler.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/README.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/qclaw.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/wukong.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/zework.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/api-fallback.md +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203Bad Case/346/240/267/346/234/254/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases//345/233/233/345/244/247/345/234/272/346/231/257_GoodCase_BadCase_20260701.md" +0 -0
- /package/skills/{ai-coach-director → 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" +0 -0
|
@@ -81,6 +81,7 @@ soke-cli course +list-course-users --course-id "COURSE-UUID"
|
|
|
81
81
|
| `+list-categories` | 查询课程分类(获取 category-id) |
|
|
82
82
|
| `+create` | 创建课程基本信息 |
|
|
83
83
|
| `+update` | 更新课程信息 |
|
|
84
|
+
| `+delete` | 删除未发布或已关闭课程 |
|
|
84
85
|
| `+advanced` | 更新课程高级设置 |
|
|
85
86
|
| `+publish` | 发布课程 |
|
|
86
87
|
| `+get-course` | 查询课程详情 |
|
|
@@ -168,6 +169,9 @@ soke-cli course +update \
|
|
|
168
169
|
--title "新标题" \
|
|
169
170
|
--description "新描述"
|
|
170
171
|
|
|
172
|
+
# 删除未发布或已关闭课程
|
|
173
|
+
soke-cli course +delete --course-id "COURSE-UUID"
|
|
174
|
+
|
|
171
175
|
# 添加新课件
|
|
172
176
|
media_id=$(soke-cli file +upload --file ./new-lesson.mp4 --format json | jq -r '.data.uuid')
|
|
173
177
|
soke-cli course +lesson-create \
|
|
@@ -215,8 +219,8 @@ const endTime = new Date('2024-12-31').getTime(); // 1735660799000
|
|
|
215
219
|
- `2`: 已关闭
|
|
216
220
|
|
|
217
221
|
**课程来源 (is-in)**:
|
|
218
|
-
- `0`:
|
|
219
|
-
- `1`:
|
|
222
|
+
- `0`: 外部课列表
|
|
223
|
+
- `1`: 内部课列表
|
|
220
224
|
|
|
221
225
|
**学习模式 (study_type)**:
|
|
222
226
|
- `1`: 自由式(可任意顺序学习)
|
|
@@ -263,7 +263,7 @@ Gate 4→5: ✅ status=1
|
|
|
263
263
|
#### Phase 6: 运营维护
|
|
264
264
|
|
|
265
265
|
→ read references/subs/query/SOP.md 执行(进度/记录/人脸)
|
|
266
|
-
→ read references/subs/publish/SOP.md
|
|
266
|
+
→ read references/subs/publish/SOP.md 执行(关闭/删除;删除仅允许 status=0/2)
|
|
267
267
|
→ read references/subs/copy/SOP.md 执行(复制,⚠️)
|
|
268
268
|
|
|
269
269
|
### 3.3 课件子流程
|
|
@@ -293,7 +293,7 @@ Gate 4→5: ✅ status=1
|
|
|
293
293
|
|
|
294
294
|
### 3.8 维护子流程
|
|
295
295
|
|
|
296
|
-
流程: read references/subs/publish/SOP.md
|
|
296
|
+
流程: read references/subs/publish/SOP.md(关闭/删除,删除前必须校验 status=0 未发布或 status=2 已关闭)/ references/subs/copy/SOP.md(复制)/ references/subs/category/SOP.md(分类)
|
|
297
297
|
|
|
298
298
|
### SOP 执行 5 步法
|
|
299
299
|
|
|
@@ -384,7 +384,7 @@ Gate 4→5: ✅ status=1
|
|
|
384
384
|
| 高级设置 | 证书/签名 |
|
|
385
385
|
| 收费 | 价格/试看 |
|
|
386
386
|
| 发布 | 审批/批量 |
|
|
387
|
-
| 维护 |
|
|
387
|
+
| 维护 | 复制 |
|
|
388
388
|
|
|
389
389
|
### 中断恢复
|
|
390
390
|
用户"继续"/"接着做": 检查 course-id → 有:查状态+课件→报告→继续 | 无:列课程→选→恢复
|
|
@@ -2,22 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
## 命令说明
|
|
4
4
|
|
|
5
|
-
`soke-cli course +list-courses`
|
|
5
|
+
`soke-cli course +list-courses` 用于查询课程列表,转发到 `/skills/course/list`,支持按课程列表模糊搜索关键字、课程分类、课程状态、课程来源、我的课程和协同关系筛选。
|
|
6
6
|
|
|
7
7
|
## 基本用法
|
|
8
8
|
|
|
9
|
-
###
|
|
9
|
+
### 查询已发布课程
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
12
|
soke-cli course +list-courses \
|
|
13
|
-
--
|
|
14
|
-
--
|
|
13
|
+
--status 1 \
|
|
14
|
+
--page 1 \
|
|
15
|
+
--page-size 10
|
|
15
16
|
```
|
|
16
17
|
|
|
17
18
|
**说明**:
|
|
18
|
-
- `--
|
|
19
|
-
- `--
|
|
20
|
-
-
|
|
19
|
+
- `--status`: 课程状态,默认 `1`
|
|
20
|
+
- `--page`: 页码,默认 `1`
|
|
21
|
+
- `--page-size`: 每页数据,默认 `10`
|
|
21
22
|
|
|
22
23
|
## 高级筛选
|
|
23
24
|
|
|
@@ -26,20 +27,14 @@ soke-cli course +list-courses \
|
|
|
26
27
|
```bash
|
|
27
28
|
# 查询已发布的课程
|
|
28
29
|
soke-cli course +list-courses \
|
|
29
|
-
--start-time 1704038400000 \
|
|
30
|
-
--end-time 1735660799000 \
|
|
31
30
|
--status 1
|
|
32
31
|
|
|
33
32
|
# 查询未发布的课程
|
|
34
33
|
soke-cli course +list-courses \
|
|
35
|
-
--start-time 1704038400000 \
|
|
36
|
-
--end-time 1735660799000 \
|
|
37
34
|
--status 0
|
|
38
35
|
|
|
39
36
|
# 查询已关闭的课程
|
|
40
37
|
soke-cli course +list-courses \
|
|
41
|
-
--start-time 1704038400000 \
|
|
42
|
-
--end-time 1735660799000 \
|
|
43
38
|
--status 2
|
|
44
39
|
```
|
|
45
40
|
|
|
@@ -51,44 +46,46 @@ soke-cli course +list-courses \
|
|
|
51
46
|
### 按课程来源筛选
|
|
52
47
|
|
|
53
48
|
```bash
|
|
54
|
-
#
|
|
49
|
+
# 查询内部课列表
|
|
55
50
|
soke-cli course +list-courses \
|
|
56
|
-
--start-time 1704038400000 \
|
|
57
|
-
--end-time 1735660799000 \
|
|
58
51
|
--is-in 1
|
|
59
52
|
|
|
60
|
-
#
|
|
53
|
+
# 查询外部课列表
|
|
61
54
|
soke-cli course +list-courses \
|
|
62
|
-
--start-time 1704038400000 \
|
|
63
|
-
--end-time 1735660799000 \
|
|
64
55
|
--is-in 0
|
|
65
56
|
```
|
|
66
57
|
|
|
67
58
|
**来源说明**:
|
|
68
|
-
- `0`:
|
|
69
|
-
- `1`:
|
|
59
|
+
- `0`: 外部课列表
|
|
60
|
+
- `1`: 内部课列表
|
|
70
61
|
|
|
71
|
-
###
|
|
62
|
+
### 按关键字筛选
|
|
72
63
|
|
|
73
64
|
```bash
|
|
74
|
-
soke-cli course +list-
|
|
65
|
+
soke-cli course +list-courses \
|
|
66
|
+
--keyword "测试"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**说明**:`--keyword` 是课程列表模糊搜索关键字。
|
|
75
70
|
|
|
71
|
+
### 按课程分类筛选
|
|
72
|
+
|
|
73
|
+
```bash
|
|
76
74
|
soke-cli course +list-courses \
|
|
77
|
-
--
|
|
78
|
-
--end-time 1735660799000 \
|
|
79
|
-
--category-id "category-uuid-here"
|
|
75
|
+
--category-path "category-uuid-here"
|
|
80
76
|
```
|
|
81
77
|
|
|
78
|
+
**说明**:`--category-path` 会作为接口参数 `categoryPath` 传递,用于按照课程分类 ID 筛选课程。
|
|
79
|
+
|
|
82
80
|
### 组合筛选
|
|
83
81
|
|
|
84
82
|
```bash
|
|
85
|
-
#
|
|
83
|
+
# 查询已发布的内部课,只看我创建的,并限制课程分类
|
|
86
84
|
soke-cli course +list-courses \
|
|
87
|
-
--start-time 1704038400000 \
|
|
88
|
-
--end-time 1735660799000 \
|
|
89
85
|
--status 1 \
|
|
90
86
|
--is-in 1 \
|
|
91
|
-
--
|
|
87
|
+
--is-my 1 \
|
|
88
|
+
--category-path "category123"
|
|
92
89
|
```
|
|
93
90
|
|
|
94
91
|
## 分页查询
|
|
@@ -96,22 +93,32 @@ soke-cli course +list-courses \
|
|
|
96
93
|
```bash
|
|
97
94
|
# 第一页,每页10条
|
|
98
95
|
soke-cli course +list-courses \
|
|
99
|
-
--start-time 1704038400000 \
|
|
100
|
-
--end-time 1735660799000 \
|
|
101
96
|
--page 1 \
|
|
102
97
|
--page-size 10
|
|
103
98
|
|
|
104
99
|
# 第二页,每页10条
|
|
105
100
|
soke-cli course +list-courses \
|
|
106
|
-
--start-time 1704038400000 \
|
|
107
|
-
--end-time 1735660799000 \
|
|
108
101
|
--page 2 \
|
|
109
102
|
--page-size 10
|
|
110
103
|
```
|
|
111
104
|
|
|
112
105
|
**分页说明**:
|
|
113
106
|
- `--page`: 页码,从1开始,默认为1
|
|
114
|
-
- `--page-size`:
|
|
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=是 |
|
|
115
122
|
|
|
116
123
|
## 返回数据示例
|
|
117
124
|
|
|
@@ -166,66 +173,24 @@ soke-cli course +list-courses \
|
|
|
166
173
|
| description | String | 课程描述 |
|
|
167
174
|
| pc_url | String | PC端跳转链接 |
|
|
168
175
|
| mobile_url | String | 移动端跳转链接 |
|
|
169
|
-
| create_time | Int |
|
|
170
|
-
| update_time | Int |
|
|
176
|
+
| create_time | Int/String | 创建时间 |
|
|
177
|
+
| update_time | Int/String | 更新时间 |
|
|
171
178
|
| create_dept_user_id | String | 创建人ID |
|
|
172
179
|
| create_dept_user_name | String | 创建人姓名 |
|
|
173
180
|
| has_more | Int | 是否还有更多数据(1=有, 0=没有) |
|
|
174
181
|
|
|
175
|
-
## 时间戳转换
|
|
176
|
-
|
|
177
|
-
### JavaScript/Node.js
|
|
178
|
-
```javascript
|
|
179
|
-
// 获取当前时间戳(毫秒)
|
|
180
|
-
const now = Date.now();
|
|
181
|
-
|
|
182
|
-
// 获取指定日期的时间戳
|
|
183
|
-
const date = new Date('2024-01-01 00:00:00');
|
|
184
|
-
const timestamp = date.getTime();
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
### Python
|
|
188
|
-
```python
|
|
189
|
-
import time
|
|
190
|
-
from datetime import datetime
|
|
191
|
-
|
|
192
|
-
# 获取当前时间戳(毫秒)
|
|
193
|
-
now = int(time.time() * 1000)
|
|
194
|
-
|
|
195
|
-
# 获取指定日期的时间戳
|
|
196
|
-
dt = datetime(2024, 1, 1, 0, 0, 0)
|
|
197
|
-
timestamp = int(dt.timestamp() * 1000)
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
### Go
|
|
201
|
-
```go
|
|
202
|
-
import "time"
|
|
203
|
-
|
|
204
|
-
// 获取当前时间戳(毫秒)
|
|
205
|
-
now := time.Now().UnixMilli()
|
|
206
|
-
|
|
207
|
-
// 获取指定日期的时间戳
|
|
208
|
-
t := time.Date(2024, 1, 1, 0, 0, 0, 0, time.UTC)
|
|
209
|
-
timestamp := t.UnixMilli()
|
|
210
|
-
```
|
|
211
|
-
|
|
212
182
|
## 常见问题
|
|
213
183
|
|
|
214
|
-
### Q: 为什么时间范围不能超过365天?
|
|
215
|
-
A: 这是API的限制,为了防止一次查询返回过多数据。如果需要查询更长时间范围的数据,可以分多次查询。
|
|
216
|
-
|
|
217
184
|
### Q: 如何查询所有课程?
|
|
218
|
-
A:
|
|
185
|
+
A: 使用分页逐页查询,例如:
|
|
219
186
|
```bash
|
|
220
|
-
# 查询2024年的课程
|
|
221
187
|
soke-cli course +list-courses \
|
|
222
|
-
--
|
|
223
|
-
--
|
|
188
|
+
--page 1 \
|
|
189
|
+
--page-size 10
|
|
224
190
|
|
|
225
|
-
# 查询2025年的课程
|
|
226
191
|
soke-cli course +list-courses \
|
|
227
|
-
--
|
|
228
|
-
--
|
|
192
|
+
--page 2 \
|
|
193
|
+
--page-size 10
|
|
229
194
|
```
|
|
230
195
|
|
|
231
196
|
### Q: 如何知道是否还有更多数据?
|
|
@@ -78,8 +78,8 @@
|
|
|
78
78
|
|
|
79
79
|
| # | 用户输入 | 提取 | 路由 |
|
|
80
80
|
|---|---------|------|------|
|
|
81
|
-
| 35 | "关闭这门课" | close | Phase 6
|
|
82
|
-
| 36 | "删除课程" | delete | Phase 6
|
|
81
|
+
| 35 | "关闭这门课" | close | Phase 6(course +update --action close) |
|
|
82
|
+
| 36 | "删除课程" | delete | Phase 6(先查 status,仅 0/2 可删) |
|
|
83
83
|
| 37 | "复制这门课,叫 V2.0" | copy, title=V2.0 | Phase 6(⚠️ 不支持) |
|
|
84
84
|
| 38 | "批量发布这几门" | batch, publish | Phase 6(⚠️ 不支持) |
|
|
85
85
|
|
|
@@ -166,9 +166,11 @@ Gate 4→5: ✅ status=1
|
|
|
166
166
|
读取: subs/query/SOP.md 执行
|
|
167
167
|
操作: course +list-course-users / +get-course-user / +list-lesson-learns / +list-lesson-faces
|
|
168
168
|
|
|
169
|
-
### Step 6.2:
|
|
169
|
+
### Step 6.2: 关闭/删除
|
|
170
170
|
读取: subs/publish/SOP.md 执行
|
|
171
|
-
|
|
171
|
+
关闭: course +update --course-id <uuid> --action close
|
|
172
|
+
删除: 先查 status,仅 status=0 未发布或 status=2 已关闭时执行 course +delete --course-id <uuid>
|
|
173
|
+
阻塞: status=1 已发布课程不能直接删除,先关闭再删除
|
|
172
174
|
|
|
173
175
|
### Step 6.3: 复制(⚠️ CLI 不支持)
|
|
174
176
|
读取: subs/copy/SOP.md 执行
|
|
@@ -76,14 +76,32 @@ soke course +publish \
|
|
|
76
76
|
|
|
77
77
|
发布成功后课程状态由 `0` → `1`。
|
|
78
78
|
|
|
79
|
+
## 关闭课程
|
|
80
|
+
|
|
81
|
+
关闭已发布课程:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
soke course +update --course-id <courseId> --action close
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
关闭成功后课程状态由 `1` → `2`,学员端不可见,历史学习记录保留。已关闭课程可再次执行 `course +publish` 重新发布。
|
|
88
|
+
|
|
89
|
+
## 删除课程
|
|
90
|
+
|
|
91
|
+
删除未发布或已关闭课程:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
soke course +delete --course-id <courseId>
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
删除前必须先查询课程状态。仅允许删除 `status=0` 未发布或 `status=2` 已关闭课程;`status=1` 已发布课程必须先执行 `course +update --course-id <courseId> --action close` 关闭后再删除。删除成功后课程状态变为已删除(`status=-1` 或 `status=3`)。
|
|
98
|
+
|
|
79
99
|
## ⚠️ CLI 不支持的操作
|
|
80
100
|
|
|
81
101
|
| 操作 | 说明 | 替代路径 |
|
|
82
102
|
|------|------|---------|
|
|
83
103
|
| **审批流** | 发布需经过审批流程 | 后台 → 系统设置 → 审批设置 |
|
|
84
104
|
| **批量发布** | 一次发布多门课程 | 后台 → 课程管理 → 批量操作 |
|
|
85
|
-
| **关闭课程** | 将已发布课程下线 | 后台 → 课程管理 → 课程操作 → 关闭 |
|
|
86
|
-
| **删除课程** | 物理删除课程及所有数据 | 后台 → 课程管理 → 课程操作 → 删除 |
|
|
87
105
|
|
|
88
106
|
## 审批规则
|
|
89
107
|
|
|
@@ -135,7 +153,7 @@ Gate Check 不通过(示例):
|
|
|
135
153
|
2. 转码是异步过程,上传视频/音频后需等待转码完成再发布
|
|
136
154
|
3. 课程关闭后学员端不可见,但历史学习记录保留
|
|
137
155
|
4. 关闭后可重新发布,状态回到 1
|
|
138
|
-
5. 删除课程不可逆,CLI
|
|
156
|
+
5. 删除课程不可逆,CLI 只允许删除未发布(status=0)或已关闭(status=2)课程
|
|
139
157
|
6. 审批流默认关闭,如需开启需后台手动配置
|
|
140
158
|
|
|
141
159
|
## 检查清单
|
|
@@ -13,8 +13,8 @@ tags: [soke, query, data, analytics, learning-records]
|
|
|
13
13
|
|
|
14
14
|
## 通用约束
|
|
15
15
|
|
|
16
|
-
-
|
|
17
|
-
-
|
|
16
|
+
- 课程列表走 `/skills/course/list`,不再使用创建时间范围筛选。
|
|
17
|
+
- 学习记录类查询如包含时间参数,时间戳仍使用**毫秒级 Unix timestamp**。
|
|
18
18
|
- **状态码含义**:
|
|
19
19
|
- `status`(课程):`0`=未发布,`1`=已发布,`2`=已关闭
|
|
20
20
|
- `face_status`(人脸):`1`=验证成功,`2`=验证失败
|
|
@@ -29,13 +29,15 @@ soke course +list-courses
|
|
|
29
29
|
|
|
30
30
|
| 参数 | 必填 | 说明 |
|
|
31
31
|
|------|------|------|
|
|
32
|
-
| `--keyword` | 否 |
|
|
32
|
+
| `--keyword` | 否 | 课程列表模糊搜索关键字 |
|
|
33
|
+
| `--category-path` | 否 | 课程分类 ID,用于按照分类筛选课程 |
|
|
33
34
|
| `--status` | 否 | 按状态过滤(0/1/2) |
|
|
34
|
-
| `--
|
|
35
|
+
| `--is-in` | 否 | 课程来源:0=外部课列表,1=内部课列表(默认 1) |
|
|
36
|
+
| `--is-my` | 否 | 是否只看我创建的(默认 0) |
|
|
37
|
+
| `--is-joint` | 否 | 协同给我的(默认 0) |
|
|
38
|
+
| `--joint-out` | 否 | 我协同出去的(默认 0) |
|
|
35
39
|
| `--page` | 否 | 页码(默认 1) |
|
|
36
|
-
| `--page-size` | 否 | 每页条数(默认
|
|
37
|
-
| `--start-time` | 否 | 创建时间起始(ms) |
|
|
38
|
-
| `--end-time` | 否 | 创建时间结束(ms),与 start-time 跨度 ≤ 365 天 |
|
|
40
|
+
| `--page-size` | 否 | 每页条数(默认 10) |
|
|
39
41
|
|
|
40
42
|
返回课程列表,包含课程 ID、标题、状态、创建时间、学习人数等摘要。
|
|
41
43
|
|
|
@@ -27,6 +27,7 @@ soke course +update \
|
|
|
27
27
|
| 参数 | 必填 | 说明 |
|
|
28
28
|
|------|------|------|
|
|
29
29
|
| `--course-id` | 是 | 课程 ID |
|
|
30
|
+
| `--action` | 否 | 操作类型,默认 `update`;传 `close` 可关闭课程 |
|
|
30
31
|
| `--title` | 否 | 课程标题 |
|
|
31
32
|
| `--credit` | 否 | 学分 |
|
|
32
33
|
| `--description` | 否 | 课程描述/简介 |
|
|
@@ -122,7 +123,7 @@ soke-cli course +advanced \
|
|
|
122
123
|
|
|
123
124
|
## 注意事项
|
|
124
125
|
|
|
125
|
-
1. `course +update`
|
|
126
|
+
1. `course +update` 支持标题、学分、描述、封面图、分类 ID 修改,以及通过 `--action close` 关闭课程
|
|
126
127
|
2. 封面图地址来自图片库列表接口返回的 `photoUri`
|
|
127
128
|
3. 分类修改可通过 `--category-id` 更新
|
|
128
129
|
4. 高级设置项之间可能存在依赖关系(如开启视频学习中人脸识别后再设置识别次数),建议按表格顺序逐项配置
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: soke-exam-question-pool
|
|
3
|
-
summary:
|
|
3
|
+
summary: 授客学堂题库答题练习(拉取题库列表/选择题库/随机出题/实时判分/进度追踪),支持填空、判断、单选、多选、不定项五种题型,答题状态持久化
|
|
4
4
|
version: 2.0.0
|
|
5
|
-
description:
|
|
5
|
+
description: "授客学堂题库答题练习:通过 soke-cli exam-question-pool 分页拉取可练习题库列表,选择题库后随机逐题出题、实时判分并反馈进度。支持填空、判断、单选、多选、不定项五种题型,答题状态本地持久化。当用户需要刷题、题库练习、随机答题或查看答题进度时使用。"
|
|
6
6
|
metadata:
|
|
7
7
|
requires:
|
|
8
8
|
bins: [soke-cli]
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: soke-task
|
|
3
|
-
summary:
|
|
4
|
-
version: 1.
|
|
5
|
-
description: "
|
|
3
|
+
summary: 授客学堂异步任务管理(创建统计任务/查询任务状态/获取报表文件),支持学习地图和课程学员统计的报表导出与统计生成,通过 soke-cli 操作
|
|
4
|
+
version: 1.1.0
|
|
5
|
+
description: "授客学堂异步任务管理:通过 soke-cli task 创建统计任务、查询任务状态、获取导出文件。支持学习地图学员统计和课程学员统计的报表导出与统计生成。当用户需要生成学习地图或课程学员统计报表、生成统计、查询任务状态或获取文件下载地址时使用。"
|
|
6
6
|
metadata:
|
|
7
7
|
requires:
|
|
8
8
|
bins: ["soke-cli"]
|
|
@@ -18,7 +18,10 @@ metadata:
|
|
|
18
18
|
- 任务接口是独立模块,命令统一使用 `soke-cli task ...`,不要使用 `soke-cli learning-map ...` 创建或查询任务。
|
|
19
19
|
- 创建任务后必须保存返回的 `data.id`,再调用 `+get` 查询任务详情。
|
|
20
20
|
- 默认用 `--format json` 获取结构化输出;需要人工快速查看时可省略 format 输出表格。
|
|
21
|
-
-
|
|
21
|
+
- 当前已知任务类型是学习地图学员统计和课程学员统计;`--module` 默认 `learningMapUser`,课程学员统计使用 `--module courseUser`。
|
|
22
|
+
- `--target-id` 是统一目标 ID:`--module learningMapUser` 时会提交为 `学习地图id`,`--module courseUser` 时会提交为 `课程id`。
|
|
23
|
+
- `--departments` 和 `--users` 可传英文逗号分隔 ID 或 JSON 数组;CLI 会转换为接口需要的对象数组。
|
|
24
|
+
- `--action` 默认 `export`,`--type` 默认 `aloneDept`。
|
|
22
25
|
- 查询 `soke-cli task +get --id "TASK-ID"` 后,必须根据创建任务时传入的 `--action` 判断状态字段:`action=export` 看 `data.export_status`,`action=report` 看 `data.status`。
|
|
23
26
|
|
|
24
27
|
## 命令
|
|
@@ -27,20 +30,36 @@ metadata:
|
|
|
27
30
|
|
|
28
31
|
```bash
|
|
29
32
|
soke-cli task +create \
|
|
30
|
-
--
|
|
33
|
+
--target-id "MAP-UUID" \
|
|
31
34
|
--learn-type "required" \
|
|
32
35
|
--type "aloneDept" \
|
|
36
|
+
--departments "130110584" \
|
|
37
|
+
--users "1302105847786" \
|
|
33
38
|
--custom-tags "job_number,position" \
|
|
34
39
|
--limit 4500 \
|
|
35
40
|
--format json
|
|
36
41
|
```
|
|
37
42
|
|
|
43
|
+
### 创建课程学员统计任务
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
soke-cli task +create \
|
|
47
|
+
--target-id "COURSE-UUID" \
|
|
48
|
+
--module courseUser \
|
|
49
|
+
--learn-type "required" \
|
|
50
|
+
--type "aloneDept" \
|
|
51
|
+
--departments '[130110584]' \
|
|
52
|
+
--users '[1302105847786]' \
|
|
53
|
+
--limit 4500 \
|
|
54
|
+
--format json
|
|
55
|
+
```
|
|
56
|
+
|
|
38
57
|
完整参数:
|
|
39
58
|
|
|
40
59
|
| 参数 | 必填 | 默认值 | 说明 |
|
|
41
60
|
|------|------|--------|------|
|
|
42
|
-
| `--
|
|
43
|
-
| `--module` | 否 | `learningMapUser` |
|
|
61
|
+
| `--target-id` | 是 | - | 目标 UUID;`learningMapUser` 时作为 `map_id`,`courseUser` 时作为 `course_id` |
|
|
62
|
+
| `--module` | 否 | `learningMapUser` | 任务模块:`learningMapUser` 学习地图学员统计,`courseUser` 课程学员统计 |
|
|
44
63
|
| `--learn-type` | 否 | `required` | 学习类型,如 `required` |
|
|
45
64
|
| `--learn-status` | 否 | 空 | 学习状态筛选:空值表示不限,`learning` 未完成,`finished` 已完成 |
|
|
46
65
|
| `--eligible-status` | 否 | 空 | 达标状态筛选,空值表示不限 |
|
|
@@ -49,6 +68,8 @@ soke-cli task +create \
|
|
|
49
68
|
| `--type` | 否 | `aloneDept` | 部门导出类型:`aloneDept` 单列导出,`manyDept` 部门多列导出 |
|
|
50
69
|
| `--is-leave` | 否 | `0` | 是否离职:`0` 否,`1` 是 |
|
|
51
70
|
| `--taskId` | 否 | 空字符串 | 任务 ID,默认空字符串 |
|
|
71
|
+
| `--departments` | 否 | 空 | 部门 ID 列表,多个 ID 用英文逗号分隔;也可传 JSON 数组 |
|
|
72
|
+
| `--users` | 否 | 空 | 用户 ID 列表,多个 ID 用英文逗号分隔;也可传 JSON 数组 |
|
|
52
73
|
| `--custom-tags` | 否 | 空 | 导出的自定义字段列表,多个字段用英文逗号分隔;也可传 JSON 字符串数组 |
|
|
53
74
|
|
|
54
75
|
响应关键字段:
|
|
@@ -89,7 +110,7 @@ soke-cli task +get --id "TASK-ID" --format json
|
|
|
89
110
|
|
|
90
111
|
```bash
|
|
91
112
|
TASK_ID=$(soke-cli task +create \
|
|
92
|
-
--
|
|
113
|
+
--target-id "$MAP_UUID" \
|
|
93
114
|
--learn-type "required" \
|
|
94
115
|
--type "aloneDept" \
|
|
95
116
|
--custom-tags "工号,岗位,入职日期" \
|
|
@@ -120,5 +141,6 @@ soke-cli task +get --id "$TASK_ID" --format json | jq -r '.data.status'
|
|
|
120
141
|
|
|
121
142
|
- `data.filePath` 为空:任务可能还未完成,等待后重新执行 `task +get --id "TASK-ID" --format json`。
|
|
122
143
|
- `未登录授权`:按 `soke-shared` 执行 `soke-cli auth login` 后重试。
|
|
123
|
-
- 自定义字段没有导出:确认已通过 `--custom-tags "字段1,字段2"`
|
|
124
|
-
- 任务创建失败:确认 `--
|
|
144
|
+
- 自定义字段没有导出:确认已通过 `--custom-tags "字段1,字段2"` 指定,字段名需与当前任务类型支持的自定义字段一致。
|
|
145
|
+
- 任务创建失败:确认 `--target-id` 与 `--module` 匹配;学习地图用 `--module learningMapUser`,课程用 `--module courseUser`。
|
|
146
|
+
- 部门或用户筛选无效:先用 `soke-cli assign +list-departments` / `soke-cli assign +list-users` 确认可用 ID,再传给 `--departments` / `--users`。
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: soke-training-demand
|
|
3
|
-
summary:
|
|
3
|
+
summary: 授客学堂培训需求收集(提交需求/浏览列表/投票),提交时分步引导选择分类、标签、描述、紧急程度,通过 soke-cli 操作
|
|
4
4
|
version: 2.5.0
|
|
5
|
-
description: "
|
|
5
|
+
description: "授客学堂培训需求收集:通过 soke-cli training-demand 浏览需求列表、获取需求分类、分步引导提交培训需求(分类、标签、描述、紧急程度)以及为需求投票。当用户需要提交培训需求、浏览需求列表、给需求投票或查看需求分类时使用。"
|
|
6
6
|
metadata:
|
|
7
7
|
requires:
|
|
8
8
|
bins: ["soke-cli"]
|