@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.
- 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/scripts/install.js +2 -2
- package/scripts/local-test.js +1 -1
- package/scripts/test-auto-detect.js +20 -3
- package/skills/README.md +25 -174
- package/skills/SKILL.md +17 -222
- package/skills/mono/README.md +10 -0
- package/skills/mono/SKILL.md +223 -0
- 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
- package/skills/mono/references/modules/soke-ai-coach-director/CHANGELOG.md +203 -0
- package/skills/mono/references/modules/soke-ai-coach-director/MODULE.md +221 -0
- package/skills/mono/references/modules/soke-ai-coach-director/README.md +121 -0
- package/skills/mono/references/modules/soke-ai-coach-director/coaching/knowledge-packager/knowledge-packager.md +91 -0
- package/skills/mono/references/modules/soke-ai-coach-director/coaching/prompt-engineer/parts/part2-roles.md +97 -0
- package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/coaching/prompt-engineer/parts/part3-flow.md +3 -3
- package/skills/mono/references/modules/soke-ai-coach-director/coaching/prompt-engineer/prompt-engineer.md +76 -0
- package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/coaching/prompt-optimizer/prompt-optimizer.md +77 -58
- package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/adapters/workbuddy.md +2 -3
- package/skills/mono/references/modules/soke-ai-coach-director/platform/interaction.md +103 -0
- package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/publish-gate.md +3 -3
- package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/resource-finalizer.md +10 -35
- package/skills/mono/references/modules/soke-ai-coach-director/platform/soke-ai-training/soke-ai-training.md +123 -0
- package/skills/mono/references/modules/soke-ai-coach-director/platform/sync-engine.md +39 -0
- package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/change-log-partwise-refactor.md +1 -1
- package/skills/mono/references/modules/soke-ai-coach-director/references/env-check.md +146 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/exec-common.md +126 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/exec-handbook.md +621 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/exec-part1.md +86 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/exec-part2.md +145 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/exec-part3.md +91 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/exec-part4.md +187 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/gate-check-matrix.md +46 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/micro-tune-labels.md +30 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/platform-api-pitfalls.md +49 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/role-resource-matching.md +45 -0
- package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/references/self-improvement-examples.md +2 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/self-learning-engine.md +485 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/subs/part1/SOP.md +17 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/subs/part2/SOP.md +34 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/subs/part3/SOP.md +27 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/subs/part4/SOP.md +31 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/subs/publish/SOP.md +81 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/subs/tune/SOP.md +92 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/verified-cli-cheatsheet.md +56 -0
- package/skills/mono/references/modules/soke-ai-coach-director/scripts/gate_check.py +112 -0
- package/skills/mono/references/modules/soke-ai-coach-director/scripts/validate_operations.py +403 -0
- package/skills/{soke-ai-training/SKILL.md → mono/references/modules/soke-ai-training/MODULE.md} +1 -1
- package/skills/mono/references/modules/soke-assign/README.md +308 -0
- package/skills/mono/references/modules/soke-certificate/MODULE.md +717 -0
- package/skills/mono/references/modules/soke-course/MODULE.md +402 -0
- package/skills/mono/references/modules/soke-course/README.md +291 -0
- package/skills/{soke-course → mono/references/modules/soke-course}/references/course-list-courses.md +49 -84
- package/skills/{soke-course → mono/references/modules/soke-course}/references/examples.md +3 -3
- package/skills/{soke-course → mono/references/modules/soke-course}/references/intent-cases.md +2 -2
- package/skills/{soke-course → mono/references/modules/soke-course}/references/sop-full-workflow.md +4 -2
- package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/publish/SOP.md +21 -3
- package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/query/SOP.md +9 -7
- package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/settings/SOP.md +2 -1
- package/skills/{soke-exam/SKILL.md → mono/references/modules/soke-exam/MODULE.md} +1 -1
- package/skills/mono/references/modules/soke-exam-question-pool/MODULE.md +123 -0
- package/skills/{soke-learning-map/SKILL.md → mono/references/modules/soke-learning-map/MODULE.md} +5 -6
- package/skills/{soke-learning-profile/SKILL.md → mono/references/modules/soke-learning-profile/MODULE.md} +2 -2
- package/skills/mono/references/modules/soke-lesson/README.md +53 -0
- package/skills/mono/references/modules/soke-material/README.md +49 -0
- package/skills/{soke-photo-gallery/SKILL.md → mono/references/modules/soke-photo-gallery/MODULE.md} +2 -3
- package/skills/mono/references/modules/soke-supervisor/MODULE.md +186 -0
- package/skills/mono/references/modules/soke-task/MODULE.md +146 -0
- package/skills/mono/references/modules/soke-training-demand/MODULE.md +221 -0
- package/skills/mono/references/shared/cli-basics.md +185 -0
- package/skills/mono/scripts/check_readiness.py +28 -0
- package/skills/mono/scripts/gate_check.py +112 -0
- package/skills/mono/scripts/validate_operations.py +403 -0
- package/skills/multi/README.md +18 -0
- package/skills/multi/soke-ai-coach-director/CHANGELOG.md +203 -0
- package/skills/multi/soke-ai-coach-director/README.md +121 -0
- package/skills/multi/soke-ai-coach-director/SKILL.md +220 -0
- package/skills/multi/soke-ai-coach-director/assets/ERRORS-TEMPLATE.md +5 -0
- package/skills/multi/soke-ai-coach-director/assets/FEATURE_REQUESTS-TEMPLATE.md +5 -0
- package/skills/multi/soke-ai-coach-director/assets/LEARNINGS-TEMPLATE.md +44 -0
- package/skills/multi/soke-ai-coach-director/assets/SKILL-TEMPLATE.md +177 -0
- package/skills/multi/soke-ai-coach-director/coaching/knowledge-packager/knowledge-packager.md +91 -0
- package/skills/multi/soke-ai-coach-director/coaching/prompt-engineer/parts/part1-basic.md +59 -0
- package/skills/multi/soke-ai-coach-director/coaching/prompt-engineer/parts/part2-roles.md +97 -0
- package/skills/multi/soke-ai-coach-director/coaching/prompt-engineer/parts/part3-flow.md +72 -0
- package/skills/multi/soke-ai-coach-director/coaching/prompt-engineer/parts/part4-scoring.md +87 -0
- package/skills/multi/soke-ai-coach-director/coaching/prompt-engineer/parts/part5-constraints.md +48 -0
- package/skills/multi/soke-ai-coach-director/coaching/prompt-engineer/prompt-engineer.md +76 -0
- package/skills/multi/soke-ai-coach-director/coaching/prompt-optimizer/prompt-optimizer.md +381 -0
- package/skills/multi/soke-ai-coach-director/coaching/role-profiler/role-profiler.md +87 -0
- package/skills/multi/soke-ai-coach-director/platform/adapters/README.md +68 -0
- package/skills/multi/soke-ai-coach-director/platform/adapters/qclaw.md +67 -0
- package/skills/multi/soke-ai-coach-director/platform/adapters/workbuddy.md +44 -0
- package/skills/multi/soke-ai-coach-director/platform/adapters/wukong.md +70 -0
- package/skills/multi/soke-ai-coach-director/platform/adapters/zework.md +89 -0
- package/skills/multi/soke-ai-coach-director/platform/api-fallback.md +262 -0
- package/skills/multi/soke-ai-coach-director/platform/interaction.md +103 -0
- package/skills/multi/soke-ai-coach-director/platform/publish-gate.md +44 -0
- package/skills/multi/soke-ai-coach-director/platform/resource-finalizer.md +103 -0
- package/skills/{ai-coach-director → multi/soke-ai-coach-director}/platform/soke-ai-training/soke-ai-training.md +34 -4
- package/skills/multi/soke-ai-coach-director/platform/sync-engine.md +39 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/skills/multi/soke-ai-coach-director/references/change-log-partwise-refactor.md +74 -0
- package/skills/multi/soke-ai-coach-director/references/env-check.md +146 -0
- package/skills/multi/soke-ai-coach-director/references/exec-common.md +126 -0
- package/skills/multi/soke-ai-coach-director/references/exec-handbook.md +621 -0
- package/skills/multi/soke-ai-coach-director/references/exec-part1.md +86 -0
- package/skills/multi/soke-ai-coach-director/references/exec-part2.md +145 -0
- package/skills/multi/soke-ai-coach-director/references/exec-part3.md +91 -0
- package/skills/multi/soke-ai-coach-director/references/exec-part4.md +187 -0
- package/skills/multi/soke-ai-coach-director/references/gate-check-matrix.md +46 -0
- 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
- package/skills/multi/soke-ai-coach-director/references/micro-tune-labels.md +30 -0
- package/skills/multi/soke-ai-coach-director/references/platform-api-pitfalls.md +49 -0
- package/skills/multi/soke-ai-coach-director/references/role-resource-matching.md +45 -0
- package/skills/multi/soke-ai-coach-director/references/self-improvement-examples.md +373 -0
- package/skills/multi/soke-ai-coach-director/references/self-learning-engine.md +485 -0
- package/skills/multi/soke-ai-coach-director/references/shared.md +185 -0
- package/skills/multi/soke-ai-coach-director/references/subs/part1/SOP.md +17 -0
- package/skills/multi/soke-ai-coach-director/references/subs/part2/SOP.md +34 -0
- package/skills/multi/soke-ai-coach-director/references/subs/part3/SOP.md +27 -0
- package/skills/multi/soke-ai-coach-director/references/subs/part4/SOP.md +31 -0
- package/skills/multi/soke-ai-coach-director/references/subs/publish/SOP.md +81 -0
- package/skills/multi/soke-ai-coach-director/references/subs/tune/SOP.md +92 -0
- package/skills/multi/soke-ai-coach-director/references/verified-cli-cheatsheet.md +56 -0
- package/skills/multi/soke-ai-coach-director/scripts/gate_check.py +112 -0
- package/skills/multi/soke-ai-coach-director/scripts/validate_operations.py +403 -0
- package/skills/multi/soke-ai-training/SKILL.md +247 -0
- 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
- package/skills/multi/soke-ai-training/references/shared.md +185 -0
- package/skills/{soke-assign → multi/soke-assign}/README.md +3 -5
- package/skills/multi/soke-assign/SKILL.md +101 -0
- package/skills/{soke-course/SKILL.md → multi/soke-assign/references/dependencies/soke-course.md} +4 -4
- package/skills/multi/soke-assign/references/dependencies/soke-exam.md +600 -0
- package/skills/multi/soke-assign/references/installation.md +451 -0
- package/skills/multi/soke-assign/references/shared.md +185 -0
- package/skills/multi/soke-certificate/SKILL.md +715 -0
- package/skills/multi/soke-certificate/references/installation.md +451 -0
- package/skills/multi/soke-certificate/references/shared.md +185 -0
- package/skills/{soke-course → multi/soke-course}/README.md +11 -9
- package/skills/multi/soke-course/SKILL.md +399 -0
- package/skills/multi/soke-course/agents/openai.yaml +7 -0
- package/skills/multi/soke-course/examples/create-basic.md +70 -0
- package/skills/multi/soke-course/references/course-list-courses.md +216 -0
- package/skills/multi/soke-course/references/dependencies/soke-assign.md +103 -0
- package/skills/multi/soke-course/references/dependencies/soke-lesson.md +119 -0
- package/skills/multi/soke-course/references/dependencies/soke-material.md +105 -0
- package/skills/multi/soke-course/references/examples.md +480 -0
- package/skills/multi/soke-course/references/installation.md +451 -0
- package/skills/multi/soke-course/references/intent-cases.md +99 -0
- package/skills/multi/soke-course/references/shared.md +185 -0
- package/skills/multi/soke-course/references/sop-full-workflow.md +177 -0
- package/skills/multi/soke-course/references/sop-lesson-types.md +66 -0
- package/skills/multi/soke-course/references/sop-publish-check.md +76 -0
- package/skills/multi/soke-course/references/subs/ai/SOP.md +153 -0
- package/skills/multi/soke-course/references/subs/category/SOP.md +112 -0
- package/skills/multi/soke-course/references/subs/charge/SOP.md +107 -0
- package/skills/multi/soke-course/references/subs/copy/SOP.md +80 -0
- package/skills/multi/soke-course/references/subs/publish/SOP.md +168 -0
- package/skills/multi/soke-course/references/subs/query/SOP.md +165 -0
- package/skills/multi/soke-course/references/subs/settings/SOP.md +136 -0
- package/skills/multi/soke-course/references/subs/template/SOP.md +223 -0
- package/skills/multi/soke-course/references/troubleshoot.md +68 -0
- package/skills/multi/soke-course/scripts/check_readiness.py +87 -0
- package/skills/multi/soke-exam/SKILL.md +598 -0
- package/skills/multi/soke-exam/references/exam-get-exam-user.md +212 -0
- package/skills/multi/soke-exam/references/installation.md +451 -0
- package/skills/multi/soke-exam/references/shared.md +185 -0
- package/skills/{soke-exam-question-pool → multi/soke-exam-question-pool}/SKILL.md +2 -4
- package/skills/multi/soke-exam-question-pool/references/installation.md +451 -0
- package/skills/multi/soke-exam-question-pool/references/shared.md +185 -0
- package/skills/multi/soke-learning-map/SKILL.md +553 -0
- package/skills/multi/soke-learning-map/references/dependencies/soke-assign.md +103 -0
- package/skills/multi/soke-learning-map/references/dependencies/soke-task.md +146 -0
- package/skills/multi/soke-learning-map/references/installation.md +451 -0
- package/skills/multi/soke-learning-map/references/shared.md +185 -0
- package/skills/multi/soke-learning-profile/SKILL.md +221 -0
- package/skills/multi/soke-learning-profile/references/installation.md +451 -0
- package/skills/multi/soke-learning-profile/references/shared.md +185 -0
- package/skills/multi/soke-lesson/SKILL.md +117 -0
- package/skills/multi/soke-lesson/references/installation.md +451 -0
- package/skills/multi/soke-lesson/references/shared.md +185 -0
- package/skills/multi/soke-material/SKILL.md +103 -0
- package/skills/multi/soke-material/references/installation.md +451 -0
- package/skills/multi/soke-material/references/shared.md +185 -0
- package/skills/multi/soke-photo-gallery/SKILL.md +284 -0
- package/skills/multi/soke-photo-gallery/references/installation.md +451 -0
- package/skills/multi/soke-photo-gallery/references/shared.md +185 -0
- package/skills/multi/soke-shared/SKILL.md +183 -0
- package/skills/multi/soke-supervisor/SKILL.md +184 -0
- package/skills/multi/soke-supervisor/references/installation.md +451 -0
- package/skills/multi/soke-supervisor/references/shared.md +185 -0
- package/skills/{soke-task → multi/soke-task}/SKILL.md +31 -11
- package/skills/multi/soke-task/references/installation.md +451 -0
- package/skills/multi/soke-task/references/shared.md +185 -0
- package/skills/{soke-training-demand → multi/soke-training-demand}/SKILL.md +2 -4
- package/skills/multi/soke-training-demand/references/installation.md +451 -0
- package/skills/multi/soke-training-demand/references/shared.md +185 -0
- 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/scripts/activator.sh +0 -4
- package/skills/ai-coach-director/scripts/error-detector.sh +0 -4
- package/skills/ai-coach-director/scripts/extract-skill.sh +0 -7
- package/skills/soke-course/scripts/check_readiness.sh +0 -82
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/assets/ERRORS-TEMPLATE.md +0 -0
- /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/assets/FEATURE_REQUESTS-TEMPLATE.md +0 -0
- /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/assets/LEARNINGS-TEMPLATE.md +0 -0
- /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/assets/SKILL-TEMPLATE.md +0 -0
- /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/coaching/prompt-engineer/parts/part1-basic.md +0 -0
- /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/coaching/prompt-engineer/parts/part4-scoring.md +0 -0
- /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/coaching/prompt-engineer/parts/part5-constraints.md +0 -0
- /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/coaching/role-profiler/role-profiler.md +0 -0
- /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/adapters/README.md +0 -0
- /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/adapters/qclaw.md +0 -0
- /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/adapters/wukong.md +0 -0
- /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/adapters/zework.md +0 -0
- /package/skills/{ai-coach-director → mono/references/modules/soke-ai-coach-director}/platform/api-fallback.md +0 -0
- /package/skills/{soke-assign/SKILL.md → mono/references/modules/soke-assign/MODULE.md} +0 -0
- /package/skills/{soke-course → mono/references/modules/soke-course}/agents/openai.yaml +0 -0
- /package/skills/{soke-course → mono/references/modules/soke-course}/examples/create-basic.md +0 -0
- /package/skills/{soke-course → mono/references/modules/soke-course}/references/sop-lesson-types.md +0 -0
- /package/skills/{soke-course → mono/references/modules/soke-course}/references/sop-publish-check.md +0 -0
- /package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/ai/SOP.md +0 -0
- /package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/category/SOP.md +0 -0
- /package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/charge/SOP.md +0 -0
- /package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/copy/SOP.md +0 -0
- /package/skills/{soke-course → mono/references/modules/soke-course}/references/subs/template/SOP.md +0 -0
- /package/skills/{soke-course → mono/references/modules/soke-course}/references/troubleshoot.md +0 -0
- /package/skills/{soke-exam → mono/references/modules/soke-exam}/references/exam-get-exam-user.md +0 -0
- /package/skills/{soke-lesson/SKILL.md → mono/references/modules/soke-lesson/MODULE.md} +0 -0
- /package/skills/{soke-material/SKILL.md → mono/references/modules/soke-material/MODULE.md} +0 -0
- /package/skills/{soke-shared/SKILL.md → mono/references/modules/soke-shared/MODULE.md} +0 -0
- /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
- /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
- /package/skills/{soke-lesson → multi/soke-lesson}/README.md +0 -0
- /package/skills/{soke-material → multi/soke-material}/README.md +0 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: soke-course-settings
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: 课程设置 — 基础信息编辑及高级设置项说明,支持通过 CLI 更新课程高级设置
|
|
5
|
+
tags: [soke, course, settings, configuration, advanced]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# 课程设置
|
|
9
|
+
|
|
10
|
+
## 触发描述
|
|
11
|
+
|
|
12
|
+
课程创建后需要对课程标题、描述等基础信息进行修改,或需要更新高级设置项(学习模式、人脸识别、提醒、倍速等)时触发本技能。
|
|
13
|
+
|
|
14
|
+
## CLI 支持的操作
|
|
15
|
+
|
|
16
|
+
### 基础信息更新 `course +update`
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
soke course +update \
|
|
20
|
+
--course-id <courseId> \
|
|
21
|
+
--title "<新标题>" \
|
|
22
|
+
--credit 10 \
|
|
23
|
+
--description "<新描述>" \
|
|
24
|
+
--image "<图片库 photoUri>"
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
| 参数 | 必填 | 说明 |
|
|
28
|
+
|------|------|------|
|
|
29
|
+
| `--course-id` | 是 | 课程 ID |
|
|
30
|
+
| `--action` | 否 | 操作类型,默认 `update`;传 `close` 可关闭课程 |
|
|
31
|
+
| `--title` | 否 | 课程标题 |
|
|
32
|
+
| `--credit` | 否 | 学分 |
|
|
33
|
+
| `--description` | 否 | 课程描述/简介 |
|
|
34
|
+
| `--image` | 否 | 课程封面图片地址,使用图片库列表接口返回的 `photoUri` |
|
|
35
|
+
| `--image-x` | 否 | 封面裁剪 x 坐标,默认 0 |
|
|
36
|
+
| `--image-y` | 否 | 封面裁剪 y 坐标,默认 0 |
|
|
37
|
+
| `--image-w` | 否 | 封面裁剪宽度,默认 0 |
|
|
38
|
+
| `--image-h` | 否 | 封面裁剪高度,默认 0 |
|
|
39
|
+
|
|
40
|
+
> 至少传一个可更新字段,可同时更新。`--description ""` 会清空课程描述。
|
|
41
|
+
|
|
42
|
+
### 高级设置更新 `course +advanced`
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
soke course +advanced \
|
|
46
|
+
--course-id <courseId> \
|
|
47
|
+
--study-type 2 \
|
|
48
|
+
--is-accelerate 1 \
|
|
49
|
+
--is-drag 0 \
|
|
50
|
+
--evaluate-required 1
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
| 参数 | 默认 | 说明 |
|
|
54
|
+
|------|------|------|
|
|
55
|
+
| `--course-id` | 必填 | 课程 ID |
|
|
56
|
+
| `--open-workrecord` | 0 | 待办推送,1 开启,0 不开启 |
|
|
57
|
+
| `--allow-after-expiration` | 1 | 截止后继续学习,1 允许,0 不允许 |
|
|
58
|
+
| `--open-face-recognition` | 0 | 课程前人脸识别,1 开启,0 不开启 |
|
|
59
|
+
| `--is-first-face` | 0 | 0 不识别,1 首次使用,2 每次进入 |
|
|
60
|
+
| `--learning-face-recognition` | 0 | 视频学习中人脸识别,1 开启,0 不开启 |
|
|
61
|
+
| `--face-recognition-times` | 1 | 视频学习中人脸识别次数 |
|
|
62
|
+
| `--study-type` | 1 | 学习模式,1 自由式,2 解锁式 |
|
|
63
|
+
| `--is-remind` | 0 | 未学提醒,1 开启,0 不开启 |
|
|
64
|
+
| `--remind-days` | 1 | 未学提醒推送周期,单位天 |
|
|
65
|
+
| `--remind-time` | 空 | 推送时间,格式 HH:MM:SS |
|
|
66
|
+
| `--remind-content` | 管理员提醒文案 | 未学提醒推送内容 |
|
|
67
|
+
| `--is-accelerate` | 1 | 视频或音频倍速,1 开启,0 不开启 |
|
|
68
|
+
| `--is-drag` | 0 | 视频是否可拖动,1 允许,0 不允许 |
|
|
69
|
+
| `--drag-type` | 1 | 1 仅首次播放不允许拖动,2 每次播放均不允许拖动 |
|
|
70
|
+
| `--evaluate-required` | 0 | 完成学习后打星评价,1 开启,0 不开启 |
|
|
71
|
+
| `--image-file` | 空 | 本地交流群二维码图片路径,命令内部上传到 OSS 并写入 `imageOssUrl`,不进入图片库;支持 jpg/jpeg/png |
|
|
72
|
+
| `--image-oss-url` | 空 | 已上传到 OSS/CDN 的交流群二维码完整访问 URL;与 `--image-file` 二选一 |
|
|
73
|
+
| `--is-hang` | 0 | 文档防挂机,1 开启,0 不开启 |
|
|
74
|
+
| `--hang-time` | 0 | 文档防挂机时间,单位分钟,最多 60 |
|
|
75
|
+
| `--comment-switch` | 1 | 课程评论,1 开启,0 不开启 |
|
|
76
|
+
|
|
77
|
+
该命令请求 `PUT /skills/course/advanceSetting/{id}`,请求体固定带 `action=advanced`。
|
|
78
|
+
|
|
79
|
+
**交流群二维码 `imageOssUrl` 取值规则:**
|
|
80
|
+
|
|
81
|
+
1. 如果用户提供的是本地二维码图片,直接使用 `--image-file`。命令会在内部调用 OSS 上传能力,使用 `Module: "image"` 上传,并把签名里的 `editorHost`(优先)或 `cdnhost` 与 OSS object 拼成完整 URL 写入 `imageOssUrl`。该图片不会进入图片库。
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
soke-cli course +advanced \
|
|
85
|
+
--course-id <courseId> \
|
|
86
|
+
--image-file "./qrcode.png"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
2. 如果用户已经有 OSS/CDN 完整访问 URL,直接传 `--image-oss-url`:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
soke-cli course +advanced \
|
|
93
|
+
--course-id <courseId> \
|
|
94
|
+
--image-oss-url "$IMAGE_URL"
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
3. `--image-file` 和 `--image-oss-url` 只能传一个。不要把图片 UUID、素材 UUID 或纯 `data.object` 当作 `imageOssUrl`;该字段需要可访问的完整图片 URL。
|
|
98
|
+
|
|
99
|
+
## ⚠️ CLI 暂不支持的设置
|
|
100
|
+
|
|
101
|
+
| 设置项 | 说明 | 后台操作路径 |
|
|
102
|
+
|--------|------|-------------|
|
|
103
|
+
| **证书设置** `certificate` | 配置结业证书模板(背景图、字段、盖章)和通过条件 | 后台 → 课程管理 → 课程列表 → 编辑 → 证书设置 |
|
|
104
|
+
| **证书签名** `signature` | 配置证书上的签名图片(讲师/负责人手写签名) | 后台 → 课程管理 → 课程列表 → 编辑 → 证书设置 → 签名管理 |
|
|
105
|
+
|
|
106
|
+
## 输出标准
|
|
107
|
+
|
|
108
|
+
基础信息更新成功后:
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
✅ 课程信息更新成功
|
|
112
|
+
- 课程: {newTitle} (ID: {courseId})
|
|
113
|
+
- 描述: {newDescription 摘要}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
高级设置更新成功后:
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
✅ 课程高级设置更新成功
|
|
120
|
+
- 课程: {courseId}
|
|
121
|
+
- 结果: 1
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## 注意事项
|
|
125
|
+
|
|
126
|
+
1. `course +update` 支持标题、学分、描述、封面图、分类 ID 修改,以及通过 `--action close` 关闭课程
|
|
127
|
+
2. 封面图地址来自图片库列表接口返回的 `photoUri`
|
|
128
|
+
3. 分类修改可通过 `--category-id` 更新
|
|
129
|
+
4. 高级设置项之间可能存在依赖关系(如开启视频学习中人脸识别后再设置识别次数),建议按表格顺序逐项配置
|
|
130
|
+
5. 钉钉二维码设置与课程复制时的行为有关联(复制时不携带,见 `soke-course-copy`)
|
|
131
|
+
|
|
132
|
+
## 检查清单
|
|
133
|
+
|
|
134
|
+
- [ ] CLI 操作:title/description 或高级设置参数已准备完毕,courseId 确认存在
|
|
135
|
+
- [ ] 高级设置需求已识别,优先使用 `course +advanced`
|
|
136
|
+
- [ ] 证书/签名等未支持设置已提供对应后台路径
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: course-template
|
|
3
|
+
version: 1.1.0
|
|
4
|
+
description: 课程模板选择 — 7套预置配置,按业务场景快速初始化课程设置
|
|
5
|
+
tags: [soke, course, template, preset]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# 课程模板
|
|
9
|
+
|
|
10
|
+
## 触发描述
|
|
11
|
+
|
|
12
|
+
创建课程(Step 1.3 完成)后立即触发。根据用户业务场景推荐对应模板,输出预置配置清单。Phase 3 时展示当前所有设置项,用户可用自然语言逐项覆盖。
|
|
13
|
+
|
|
14
|
+
## 模板速查
|
|
15
|
+
|
|
16
|
+
| # | 模板名称 | 一句话场景 | 特征标签 |
|
|
17
|
+
|---|---------|-----------|---------|
|
|
18
|
+
| 1 | 合规必修(最严) | 安全/合规/法务培训 | 🔒最严管控 |
|
|
19
|
+
| 2 | 考核认证 | 上岗/资格/技能鉴定 | 📝考试+证书 |
|
|
20
|
+
| 3 | 新人入职 | 新员工/转岗培训 | 🚀快速上手 |
|
|
21
|
+
| 4 | 知识分享 | 内部分享/兴趣课程 | 📖自由学习 |
|
|
22
|
+
| 5 | 领导力/软技能 | 管理/沟通/职业素养 | 🎓进阶提升 |
|
|
23
|
+
| 6 | 产品/业务培训 | 新产品上线/业务更新 | 📦快速推送 |
|
|
24
|
+
| 7 | 不选择模板 | 手动逐项配置 | ✋自行设置 |
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 配置映射表
|
|
29
|
+
|
|
30
|
+
### 1. 合规必修(最严)
|
|
31
|
+
|
|
32
|
+
| 设置项 | 值 | CLI | 说明 |
|
|
33
|
+
|--------|-----|:---:|------|
|
|
34
|
+
| 学习模式 | 必修 + 解锁式(LongDragon) | ⚠️ | 后台:学习设置 |
|
|
35
|
+
| 人脸识别 | 开启 | ⚠️ | 后台:学习设置 → 人脸识别 |
|
|
36
|
+
| 倍速播放 | 禁用 | ⚠️ | 后台:学习设置 → 播放控制 |
|
|
37
|
+
| 拖动进度条 | 禁用 | ⚠️ | 后台:学习设置 → 播放控制 |
|
|
38
|
+
| 电子签名 | 开启 | ⚠️ | 后台:证书设置 → 签名管理 |
|
|
39
|
+
| 收费 | 可选 | ⚠️ | 后台:收费设置 |
|
|
40
|
+
| 截止时间 | 需设置 | ⚠️ | 后台:学习设置 |
|
|
41
|
+
| 课程评价 | 打星评价 | ⚠️ | 后台:评价设置 |
|
|
42
|
+
| 关联证书 | 是 | ⚠️ | 后台:证书设置 |
|
|
43
|
+
| 发布方式 | 审批发布 | ⚠️ | 后台:发布设置 |
|
|
44
|
+
|
|
45
|
+
**适用场景**:安全培训、合规培训、法务必修课。需要强制学习+防作弊+可追溯。
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
### 2. 考核认证
|
|
50
|
+
|
|
51
|
+
| 设置项 | 值 | CLI | 说明 |
|
|
52
|
+
|--------|-----|:---:|------|
|
|
53
|
+
| 学习模式 | 必修 + 解锁式(LongDragon) | ⚠️ | 后台:学习设置 |
|
|
54
|
+
| 小测验 | 限制次数 | ⚠️ | 后台:课件设置 |
|
|
55
|
+
| 作业 | 多级审批 | ⚠️ | 后台:课件设置 |
|
|
56
|
+
| 人脸识别 | 选开 | ⚠️ | 后台:学习设置 → 人脸识别 |
|
|
57
|
+
| 关联证书 | 是 | ⚠️ | 后台:证书设置 |
|
|
58
|
+
| 发布方式 | 审批发布 | ⚠️ | 后台:发布设置 |
|
|
59
|
+
|
|
60
|
+
**适用场景**:上岗考试、资格认证、技能鉴定。需考核+认证背书。
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
### 3. 新人入职
|
|
65
|
+
|
|
66
|
+
| 设置项 | 值 | CLI | 说明 |
|
|
67
|
+
|--------|-----|:---:|------|
|
|
68
|
+
| 学习模式 | 必修 + 自由模式(Free) | ⚠️ | 后台:学习设置 |
|
|
69
|
+
| 倍速播放 | 开启 | ⚠️ | 后台:学习设置 → 播放控制 |
|
|
70
|
+
| 未学提醒 | 开启 | ⚠️ | 后台:学习设置 → 提醒设置 |
|
|
71
|
+
| 截止时间 | 需设置 | ⚠️ | 后台:学习设置 |
|
|
72
|
+
| 自动配课 | 开启 | ⚠️ | 后台:指派设置 |
|
|
73
|
+
| 课程评价 | 打星评价 | ⚠️ | 后台:评价设置 |
|
|
74
|
+
|
|
75
|
+
**适用场景**:新员工培训、转岗培训。需快速覆盖+自动推送+追踪完成。
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
### 4. 知识分享
|
|
80
|
+
|
|
81
|
+
| 设置项 | 值 | CLI | 说明 |
|
|
82
|
+
|--------|-----|:---:|------|
|
|
83
|
+
| 学习模式 | 选修 + 自由模式(Free) | ⚠️ | 后台:学习设置 |
|
|
84
|
+
| 倍速播放 | 开启 | ⚠️ | 后台:学习设置 → 播放控制 |
|
|
85
|
+
| 拖动进度条 | 允许 | ⚠️ | 后台:学习设置 → 播放控制 |
|
|
86
|
+
| 收费 | 免费 | ⚠️ | 后台:收费设置 |
|
|
87
|
+
| 小测验 | 不限次数 | ⚠️ | 后台:课件设置 |
|
|
88
|
+
|
|
89
|
+
**适用场景**:内部分享、兴趣课程、文化宣传。低门槛+自由学习+无考核压力。
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### 5. 领导力/软技能
|
|
94
|
+
|
|
95
|
+
| 设置项 | 值 | CLI | 说明 |
|
|
96
|
+
|--------|-----|:---:|------|
|
|
97
|
+
| 学习模式 | 选修或必修 + 自由模式(Free) | ⚠️ | 后台:学习设置 |
|
|
98
|
+
| 作业 | 无需批改 | ⚠️ | 后台:课件设置 |
|
|
99
|
+
| 课程评价 | 打星评价 | ⚠️ | 后台:评价设置 |
|
|
100
|
+
| 关联证书 | 可选 | ⚠️ | 后台:证书设置 |
|
|
101
|
+
| 钉钉群 | 可配置 | ⚠️ | 后台:学习设置 → 钉钉二维码 |
|
|
102
|
+
|
|
103
|
+
**适用场景**:管理培训、沟通课程、职业素养。互动+讨论+可选认证。
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
### 6. 产品/业务培训
|
|
108
|
+
|
|
109
|
+
| 设置项 | 值 | CLI | 说明 |
|
|
110
|
+
|--------|-----|:---:|------|
|
|
111
|
+
| 学习模式 | 必修 + 自由模式(Free) | ⚠️ | 后台:学习设置 |
|
|
112
|
+
| 倍速播放 | 开启 | ⚠️ | 后台:学习设置 → 播放控制 |
|
|
113
|
+
| 拖动进度条 | 允许 | ⚠️ | 后台:学习设置 → 播放控制 |
|
|
114
|
+
| 小测验 | 开启 | ⚠️ | 后台:课件设置 |
|
|
115
|
+
| 定时发布 | 需设置 | ⚠️ | 后台:发布设置 |
|
|
116
|
+
| 未学提醒 | 开启 | ⚠️ | 后台:学习设置 → 提醒设置 |
|
|
117
|
+
|
|
118
|
+
**适用场景**:新产品上线、业务知识更新。需快速推送+检验理解+追踪覆盖。
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
### 7. 不选择模板
|
|
123
|
+
|
|
124
|
+
不预置任何配置项,所有设置在 Phase 3 逐项手动确认。适合模板不匹配的场景或需要精细控制的课程。
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 执行流程
|
|
129
|
+
|
|
130
|
+
### Step 1: 模板选择弹窗(Phase 1 创建课程后立即触发)
|
|
131
|
+
|
|
132
|
+
**先输出速查表:**
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
📋 可选模板(7种):
|
|
136
|
+
|
|
137
|
+
| # | 名称 | 适用场景 | 核心配置 |
|
|
138
|
+
|---|------|---------|---------|
|
|
139
|
+
| 1 | 合规必修 | 安全/合规/法务培训 | 人脸+签名+证书+审批 |
|
|
140
|
+
| 2 | 考核认证 | 上岗考试/资格认证 | 考试+证书+多级审批 |
|
|
141
|
+
| 3 | 新人入职 | 新员工/转岗培训 | 提醒+自动配课+评价 |
|
|
142
|
+
| 4 | 知识分享 | 内部分享/兴趣课程 | 自由学习+免费+不限测验 |
|
|
143
|
+
| 5 | 领导力/软技能 | 管理/沟通/职业素养 | 作业+评价+证书+钉钉群 |
|
|
144
|
+
| 6 | 产品/业务培训 | 新产品上线/业务更新 | 定时发布+小测验+提醒 |
|
|
145
|
+
| 7 | 不选择模板 | 模板不匹配/精细控制 | 无预设,后续逐项手动配置 |
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**再弹窗让用户选:**
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
ask_user_question
|
|
152
|
+
question: "选择课程模板(7选1,详情见上方表格)"
|
|
153
|
+
header: "模板"
|
|
154
|
+
options:
|
|
155
|
+
- label: "1. 合规必修" description: "安全/合规/法务 · 人脸+签名+证书+审批"
|
|
156
|
+
- label: "2. 考核认证" description: "上岗考试/资格认证 · 考试+证书"
|
|
157
|
+
- label: "3. 新人入职" description: "新员工/转岗 · 提醒+配课+评价"
|
|
158
|
+
- label: "4. 知识分享" description: "内部分享/兴趣 · 自由学习+免费"
|
|
159
|
+
- label: "5. 领导力/软技能" description: "管理/沟通/素养 · 作业+证书+钉钉群"
|
|
160
|
+
- label: "6. 产品/业务培训" description: "产品上线/业务更新 · 定时+测验+提醒"
|
|
161
|
+
- label: "7. 不选择模板" description: "无预设,逐项手动配置"
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Step 2: 输出模板配置
|
|
165
|
+
|
|
166
|
+
用户选 1-6 → 输出该模板完整配置表:
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
✅ 已选择「{模板名称}」模板
|
|
170
|
+
|
|
171
|
+
📋 该模板预置以下设置(CLI 不支持,需后台操作):
|
|
172
|
+
|
|
173
|
+
| 设置项 | 预置值 | 后台路径 |
|
|
174
|
+
|--------|--------|---------|
|
|
175
|
+
| xxx | xxx | 后台 → xxx |
|
|
176
|
+
| ... | ... | ... |
|
|
177
|
+
|
|
178
|
+
⏭️ 后续进入 Phase 3 时,可以逐项修改以上设置。回复"继续"进入下一步。
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
用户选 7.「不选择模板」→ 不输出配置清单,直接进入 Phase 1 的路由弹窗。
|
|
182
|
+
|
|
183
|
+
### Step 3: Phase 3 展示当前设置(可逐项修改)
|
|
184
|
+
|
|
185
|
+
进入 Phase 3 时,将当前课程所有设置项以表格形式展示:
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
📋 当前设置(模板: {模板名称}):
|
|
189
|
+
|
|
190
|
+
| 设置项 | 当前值 |
|
|
191
|
+
|--------|--------|
|
|
192
|
+
| 标题 | "xxx" |
|
|
193
|
+
| 描述 | "xxx" |
|
|
194
|
+
| 学习模式 | 必修+解锁式 |
|
|
195
|
+
| 人脸识别 | 开启 |
|
|
196
|
+
| ... | ... |
|
|
197
|
+
|
|
198
|
+
💬 想修改哪项?直接告诉我就行,比如:
|
|
199
|
+
- "标题改成 xxx"
|
|
200
|
+
- "学习模式改成自由式"
|
|
201
|
+
- "关掉人脸识别"
|
|
202
|
+
- "加一个证书"
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
用户输入修改指令后的处理:
|
|
206
|
+
|
|
207
|
+
| 修改项 | CLI 支持 | 处理方式 |
|
|
208
|
+
|--------|:---:|------|
|
|
209
|
+
| 标题/描述 | ✅ | 执行 `course +update` 更新,表中同步刷新 |
|
|
210
|
+
| 其他所有设置 | ⚠️ | "该设置需在后台修改(路径: xxx)。我会在清单中标注为待修改。" |
|
|
211
|
+
| 修改模板预设值 | ⚠️ | "已记录:{设置项} → {新值}(需在后台操作)" |
|
|
212
|
+
|
|
213
|
+
每次修改后刷新配置表,直到用户说"可以了"/"继续"进入下一步。
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## 注意事项
|
|
218
|
+
|
|
219
|
+
1. 模板选择后不自动通过 CLI 修改课程 — 大部分设置 CLI 不支持
|
|
220
|
+
2. 模板选择不影响已创建的 title/description/category-id
|
|
221
|
+
3. Phase 3 必须展示完整设置清单,让用户逐项确认/修改
|
|
222
|
+
4. 用户选「不选择模板」(7)时,Phase 3 也需展示所有可配置项,方便用户了解能做什么
|
|
223
|
+
5. 若用户选了模板但没去后台配置,发布阶段 Gate Check 可能阻塞
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# 常见问题排错指南
|
|
2
|
+
|
|
3
|
+
## 认证类
|
|
4
|
+
|
|
5
|
+
| 错误信息 | 原因 | 修复 |
|
|
6
|
+
|---------|------|------|
|
|
7
|
+
| `access_key_id not configured` | 未配置登录凭证 | `soke-cli config set --key access_key_id --value <your-key>` |
|
|
8
|
+
| `Token 过期 / 401 Unauthorized` | 登录 Token 已过期 | `soke-cli auth login` |
|
|
9
|
+
| `Permission denied / 403` | 当前账号无操作权限 | 联系管理员在开放平台开通权限 |
|
|
10
|
+
|
|
11
|
+
## 课程操作类
|
|
12
|
+
|
|
13
|
+
| 错误信息 | 原因 | 修复 |
|
|
14
|
+
|---------|------|------|
|
|
15
|
+
| `课程标题为空` | 未设置标题 | `course +update --course-id <id> --title "标题"` |
|
|
16
|
+
| `分类不存在 / category not found` | category-id 无效 | `course +list-categories` 重新查询有效分类 |
|
|
17
|
+
| `课程不存在 / Course not found` | course-id 无效或已删除 | `course +list-courses` 确认课程列表 |
|
|
18
|
+
| `课程状态不是未发布,不能发布` | status=1(已发布)或2(已关闭) | 已发布无需操作;已关闭不能重新发布 |
|
|
19
|
+
| `课件数量不足` | 课程无课件 | 进入 Phase 2 添加课件 |
|
|
20
|
+
|
|
21
|
+
## 上传类
|
|
22
|
+
|
|
23
|
+
| 错误信息 | 原因 | 修复 |
|
|
24
|
+
|---------|------|------|
|
|
25
|
+
| `file not found` | 文件路径错误或不存在 | 检查路径是否正确,使用绝对路径 |
|
|
26
|
+
| `文件类型不支持` | 格式不在支持列表中 | 转换为 .mp4/.mp3/.pdf 等支持格式 |
|
|
27
|
+
| `文件大小超过限制` | 文件超过上限 | 压缩文件后重试 |
|
|
28
|
+
| `OSS upload failed` | 网络问题或 Token 失效 | 重新登录后重试 |
|
|
29
|
+
| `转码失败` | 文件损坏或格式异常 | 删除失败课件,确认源文件可用后重新上传 |
|
|
30
|
+
|
|
31
|
+
## 课件操作类
|
|
32
|
+
|
|
33
|
+
| 错误信息 | 原因 | 修复 |
|
|
34
|
+
|---------|------|------|
|
|
35
|
+
| `素材不存在 / media not found` | media-id 无效 | 确认素材已上传成功 `file +list-files` |
|
|
36
|
+
| `课件类型不匹配` | type 与素材不符 | type 必须与素材上传响应的 type 一致 |
|
|
37
|
+
| `课件已存在` | 重复创建 | 检查 `course +lesson-list` |
|
|
38
|
+
| `课件数量达到上限` | 课程课件数超标 | 删除不需要的课件 |
|
|
39
|
+
|
|
40
|
+
## 指派类
|
|
41
|
+
|
|
42
|
+
| 错误信息 | 原因 | 修复 |
|
|
43
|
+
|---------|------|------|
|
|
44
|
+
| `课程未发布,不能指派` | status ≠ 1 | 先发布课程再指派 |
|
|
45
|
+
| `用户不存在` | user-id 无效 | `assign +list-users` 确认有效用户 |
|
|
46
|
+
| `部门不存在` | dept-id 无效 | `assign +list-departments` 确认有效部门 |
|
|
47
|
+
|
|
48
|
+
## 查询类
|
|
49
|
+
|
|
50
|
+
| 错误信息 | 原因 | 修复 |
|
|
51
|
+
|---------|------|------|
|
|
52
|
+
| `时间范围超过365天` | +list-courses 限制 | 分批查询,每年一次 |
|
|
53
|
+
| `数据为空` | 筛选条件无匹配 | 放宽筛选条件或检查权限范围 |
|
|
54
|
+
|
|
55
|
+
## 通用调试步骤
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# 1. 检查认证状态
|
|
59
|
+
soke-cli config show
|
|
60
|
+
|
|
61
|
+
# 2. 检查课程是否存在
|
|
62
|
+
soke-cli course +get-course --course-id "xxx" --format json
|
|
63
|
+
|
|
64
|
+
# 3. 检查课件状态
|
|
65
|
+
soke-cli course +lesson-list --course-id "xxx" --format json
|
|
66
|
+
|
|
67
|
+
# 4. 始终使用 --format json 获取结构化输出
|
|
68
|
+
```
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Check that the soke-course Skill and CLI prerequisites are available."""
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
import shutil
|
|
7
|
+
import subprocess
|
|
8
|
+
import sys
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def check_command() -> bool:
|
|
13
|
+
executable = shutil.which("soke-cli")
|
|
14
|
+
if not executable:
|
|
15
|
+
print(" ❌ soke-cli 未安装")
|
|
16
|
+
print(" 请读取 references/installation.md 按步骤安装")
|
|
17
|
+
return False
|
|
18
|
+
|
|
19
|
+
try:
|
|
20
|
+
version = subprocess.run(
|
|
21
|
+
[executable, "--version"],
|
|
22
|
+
check=False,
|
|
23
|
+
capture_output=True,
|
|
24
|
+
text=True,
|
|
25
|
+
).stdout.strip()
|
|
26
|
+
except OSError as exc:
|
|
27
|
+
print(f" ❌ soke-cli 无法执行: {exc}")
|
|
28
|
+
return False
|
|
29
|
+
|
|
30
|
+
print(f" ✅ soke-cli: {version or '已找到'}")
|
|
31
|
+
return True
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def check_login() -> None:
|
|
35
|
+
executable = shutil.which("soke-cli")
|
|
36
|
+
if not executable:
|
|
37
|
+
return
|
|
38
|
+
result = subprocess.run(
|
|
39
|
+
[executable, "config", "show"],
|
|
40
|
+
check=False,
|
|
41
|
+
capture_output=True,
|
|
42
|
+
text=True,
|
|
43
|
+
)
|
|
44
|
+
output = f"{result.stdout}\n{result.stderr}"
|
|
45
|
+
if "user_token" in output:
|
|
46
|
+
print(" ✅ 已登录")
|
|
47
|
+
else:
|
|
48
|
+
print(" ⚠️ 未登录或 Token 过期")
|
|
49
|
+
print(" 请运行: soke-cli auth login")
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def main() -> int:
|
|
53
|
+
base_dir = Path(__file__).resolve().parent.parent
|
|
54
|
+
print("🔍 课程发布主管 — 环境检查")
|
|
55
|
+
print("============================\n")
|
|
56
|
+
|
|
57
|
+
guide = base_dir / "references" / "installation.md"
|
|
58
|
+
print("📖 前置依赖:")
|
|
59
|
+
print(f" {'✅' if guide.is_file() else '❌'} references/installation.md {'存在' if guide.is_file() else '缺失'}")
|
|
60
|
+
|
|
61
|
+
print("\n🔧 命令行工具:")
|
|
62
|
+
available = check_command()
|
|
63
|
+
if available:
|
|
64
|
+
check_login()
|
|
65
|
+
|
|
66
|
+
print("\n📋 包内依赖:")
|
|
67
|
+
for name in ("soke-material", "soke-lesson", "soke-assign"):
|
|
68
|
+
dependency = base_dir / "references" / "dependencies" / f"{name}.md"
|
|
69
|
+
print(f" {'✅' if dependency.is_file() else '⚠️'} {name}")
|
|
70
|
+
|
|
71
|
+
print("\n📁 子能力 SOP:")
|
|
72
|
+
for name in ("category", "settings", "charge", "publish", "copy", "query", "ai"):
|
|
73
|
+
sop = base_dir / "references" / "subs" / name / "SOP.md"
|
|
74
|
+
print(f" {'✅' if sop.is_file() else '⚠️'} {name}")
|
|
75
|
+
|
|
76
|
+
print("\n📚 参考文档:")
|
|
77
|
+
for name in ("intent-cases.md", "sop-full-workflow.md", "sop-lesson-types.md", "sop-publish-check.md", "troubleshoot.md"):
|
|
78
|
+
reference = base_dir / "references" / name
|
|
79
|
+
print(f" {'✅' if reference.is_file() else '⚠️'} {name}")
|
|
80
|
+
|
|
81
|
+
print("\n✅ 环境检查完成")
|
|
82
|
+
return 0 if available else 1
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
if __name__ == "__main__":
|
|
86
|
+
sys.exit(main())
|
|
87
|
+
|