@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,103 @@
|
|
|
1
|
+
# 弹窗交互规则
|
|
2
|
+
|
|
3
|
+
定义 Part1-Part5 及发布/知识包/微调的确认契约(标题/问题/选项/分支路由)。跨平台:WorkBuddy 用 AskUserQuestion,WebChat 用 render_ui QuestionForm,纯文本平台降级为编号选项(见 `platform/adapters/`)。
|
|
4
|
+
|
|
5
|
+
## 核心规则
|
|
6
|
+
|
|
7
|
+
1. **Part1 确认后强制同步**:模板 1 无"取消/跳过同步"选项,确认即创建场景。
|
|
8
|
+
2. Part2-Part5 确认后自动 preview + apply,立即进下一 Part,不等二次确认。
|
|
9
|
+
3. Part1 封面写入、Part2 头像/语音匹配、整包写角色、回读校验均后台自动,失败才提示。
|
|
10
|
+
4. 若 Part3 apply 后回读 conversation_steps 仍为空,提示"CLI/平台版本限制,改走 Web 后台补录"。
|
|
11
|
+
5. **弹窗即时触发(v2.30)+ 弹窗仅做确认(v2.41)**:Part **关键字段摘要**在聊天正文展示后立即弹窗。**弹窗 question 字段只写 ≤2 行引导语**(如「以上是 Part2 的 3 个角色设定,是否确认同步?」),**禁止把 Part 完整内容塞进 question 字段**。
|
|
12
|
+
6. **选项文案与分支路由不因渲染方式变化**:所有平台完全一致,用户回复编号或选项文字均可。
|
|
13
|
+
|
|
14
|
+
## v2.41 弹窗规则(核心变更,替代 v2.37 弹窗承载完整内容)
|
|
15
|
+
|
|
16
|
+
**弹窗 question 字段只做确认引导,不承载 Part 内容。** 格式要求:
|
|
17
|
+
|
|
18
|
+
1. **question 字段**:≤2 行引导语(如「以上是 Part2 的 3 个角色设定,是否确认同步?」)。**禁止把 Part 完整字段值写入 question**。
|
|
19
|
+
2. **options**:只放「确认」「需要调整」等选择项。
|
|
20
|
+
3. **options 的 description 字段**:可放 ≤15 字摘要(如「确认后同步到平台」),帮助用户快速判断。
|
|
21
|
+
4. **聊天正文**:展示 Part 关键字段摘要(场景名/角色名+关键词/环节名+目标/维度名+权重/固定值确认),完整 JSON 直接 Write 落盘 /tmp/。
|
|
22
|
+
|
|
23
|
+
### question 字段内容模板(v2.41 精简)
|
|
24
|
+
|
|
25
|
+
**Part1**:`以上是 Part1 基础信息(场景名/描述/标签/考核点),是否确认创建?`
|
|
26
|
+
**Part2**:`以上是 Part2 的 3 个角色设定(<角色1名>/<角色2名>/<角色3名>),是否确认同步?`
|
|
27
|
+
**Part3**:`以上是 Part3 流程设置(<环节1名>/<环节2名>/...共 N 个环节),是否确认写入?`
|
|
28
|
+
**Part4+5**(v2.43 合并):`以上是 Part4 评分标准 + Part5 教练配置(6 项固定值),是否确认写入?`
|
|
29
|
+
|
|
30
|
+
## AskUserQuestion 调用形式(WorkBuddy,v2.41 精简)
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
AskUserQuestion(
|
|
34
|
+
questions=[{
|
|
35
|
+
"question": "以上是 Part1 基础信息(场景名/描述/标签/考核点),是否确认创建?",
|
|
36
|
+
"header": "Part1 确认",
|
|
37
|
+
"options": [
|
|
38
|
+
{"label": "确认创建(推荐)", "description": "按上述内容创建场景"},
|
|
39
|
+
{"label": "需要调整", "description": "告诉我需要修改的地方"}
|
|
40
|
+
]
|
|
41
|
+
}]
|
|
42
|
+
)
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
选项顺序与正文模板一致(推荐操作第一位),模糊匹配优先选项 1。
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 确认契约
|
|
50
|
+
|
|
51
|
+
### 模板 1:Part1 基础信息确认(强制同步)
|
|
52
|
+
- **header**:Part1 确认
|
|
53
|
+
- **question 字段(≤2 行引导语)**:`以上是 Part1 基础信息(场景名/描述/标签/考核点),是否确认创建?`
|
|
54
|
+
- **options**:① 确认创建(推荐),description="按上述内容创建场景";② 需要调整,description="告诉我需要修改的地方"
|
|
55
|
+
- ⚠️ 无"取消"逃生路径。确认后立即 `+create-scenario`。
|
|
56
|
+
|
|
57
|
+
### 模板 2:Part2 AI角色设定确认
|
|
58
|
+
- **header**:Part2 确认
|
|
59
|
+
- **question 字段(≤2 行引导语)**:`以上是 Part2 的 3 个角色设定(<角色1名>/<角色2名>/<角色3名>),是否确认同步?`
|
|
60
|
+
- **options**:① 确认写入(推荐),description="<角色1名>/<角色2名>/<角色3名> 3个角色";② 需要调整,description="告诉我需要修改的角色或性格"
|
|
61
|
+
|
|
62
|
+
### 模板 3:Part3 流程设置确认
|
|
63
|
+
- **header**:Part3 确认
|
|
64
|
+
- **question 字段(≤2 行引导语)**:`以上是 Part3 流程设置(<环节1名>/<环节2名>/...共 N 个环节),是否确认写入?`
|
|
65
|
+
- **options**:① 确认写入(推荐),description="<环节1名>/<环节2名>/... N个环节";② 需要调整,description="告诉我需要调整的环节"
|
|
66
|
+
|
|
67
|
+
### 模板 4:Part4 评分标准 + Part5 教练配置合并确认(v2.43)
|
|
68
|
+
- **header**:Part4+5 确认
|
|
69
|
+
- **question 字段(≤2 行引导语)**:`以上是 Part4 评分标准 + Part5 教练配置(6 项固定值),是否确认写入?`
|
|
70
|
+
- **options**:① 确认写入(推荐),description="<维度1名><weight>分/... 权重合计100+6项固定配置";② 需要调整,description="告诉我需要调整的维度或权重"
|
|
71
|
+
- ⚠️ 聊天正文需完整展示 Part4(维度权重表)+ Part5(6 项编号列表)两段内容,禁止只给一行摘要。原模板 5(Part5 单独确认)已随 exec-part5.md 删除(v2.43.1)。
|
|
72
|
+
|
|
73
|
+
### 模板 6:微调诊断确认
|
|
74
|
+
- **标题**:诊断确认 | **问题**:诊断结果和修改方案是否采纳?
|
|
75
|
+
- **选项**:① 确认修改(推荐)→ 生成 optimize JSON → CLI 同步;② 保持原样 → 退出微调;③ 调整诊断 → 重诊。
|
|
76
|
+
|
|
77
|
+
### 模板 7:知识包同步确认
|
|
78
|
+
- **标题**:知识包同步确认 | **问题**:场景已发布成功,是否同步知识包到平台?
|
|
79
|
+
- **选项**:① 确认,同步知识包(推荐)→ `+sync` → `+bind-scenario`;② 跳过,暂不同步 → 仅输出摘要。
|
|
80
|
+
|
|
81
|
+
### 模板 8:发布确认(v2.27)
|
|
82
|
+
- **标题**:发布确认 | **问题**:所有配置已完整同步到平台,确认发布场景吗?
|
|
83
|
+
- **选项**:① 确认,发布场景(推荐)→ `+publish-scenario` → 完成摘要 → 弹模板 7;② 暂不发布 → 保持草稿。
|
|
84
|
+
- 🚦 不可跳过或静默执行。
|
|
85
|
+
|
|
86
|
+
### 模板 9:微调改动清单确认(v2.28)
|
|
87
|
+
- **标题**:微调改动清单确认 | **问题**:以下改动清单,确认后执行同步。
|
|
88
|
+
- **选项**:① 确认,全部同步(推荐);② 仅同步部分改动 → 模板 9.1;③ 调整优化方案。
|
|
89
|
+
- ⚠️ 未过此闸门禁止生成 operations JSON 或 apply。
|
|
90
|
+
|
|
91
|
+
### 模板 9.1:字段级同步范围确认(v2.31,多选)
|
|
92
|
+
- 选项文案禁止用后台字段名,须用业务人员能懂的内容项描述(如「沟通风格与话术样例」而非 `communication_style`)。
|
|
93
|
+
- 映射:`style/tone`→语气风格;`personality/trait`→性格特征;`taboo/objection/red_line`→禁忌底线;`background/story/mindset`→角色背景;`knowledge/fact`→知识水平;`step/flow/opening`→流程环节;`criteria/dimension/scoring`→评分维度。
|
|
94
|
+
- 多选后用 AskUserQuestion `multiSelect=true`,返回选中项映射回字段 → 生成 operations → 模板 6。
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 通用规则
|
|
99
|
+
|
|
100
|
+
- 正向操作带「(推荐)」;选项用业务语言,禁后台字段名。
|
|
101
|
+
- 回复解析:精确匹配编号或完整选项文案;模糊匹配优先选项 1。
|
|
102
|
+
- **状态快照**:每 Part 确认后记录 `state-snapshot.json`(scenario_id/current_part/confirmed_data/applied),仅内部断点续传用,不对用户展示。
|
|
103
|
+
- **回退链路**:模板 2/3/4/5 的「重设」→ 回到内容层重新生成该 Part;「调整」→ 局部修改重确认。
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
- Part5 固定配置有效
|
|
12
12
|
|
|
13
13
|
### 资源验收
|
|
14
|
-
- `scenario_cover`
|
|
14
|
+
- `scenario_cover` 等于固定默认图 `https://newsokeeditorcdn.soke.cn/public/ai/cover/lingshou_daogou.png`
|
|
15
15
|
- 每个角色 `avatar` 非空 URL
|
|
16
16
|
- 每个角色 `voice_id` 非空 ID
|
|
17
17
|
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
## 阻断规则
|
|
23
23
|
|
|
24
24
|
以下情况任一成立,禁止发布:
|
|
25
|
-
-
|
|
25
|
+
- 固定默认封面缺失或不正确
|
|
26
26
|
- 任一角色头像为空
|
|
27
27
|
- 任一角色声音为空
|
|
28
28
|
- 任一角色回读为 `角色数据异常`
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
|
|
38
38
|
### 不可发布
|
|
39
39
|
输出缺口清单,例如:
|
|
40
|
-
-
|
|
40
|
+
- 固定默认封面缺失或不正确
|
|
41
41
|
- 角色何女士缺少 voice_id
|
|
42
42
|
- 角色陆先生缺少 avatar
|
|
43
43
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# 资源完善器(resource-finalizer)
|
|
2
2
|
|
|
3
|
-
> 内部规则文件。作为**最后兜底补救**,仅在 Part1/Part2
|
|
4
|
-
> 正常流程下,封面在 Part1
|
|
3
|
+
> 内部规则文件。作为**最后兜底补救**,仅在 Part1/Part2 的主流程未能写入固定封面/头像/声音时触发。
|
|
4
|
+
> 正常流程下,封面在 Part1 固定写入默认图、头像和声音在 Part2 与角色一起写入,不需要进入本模块。
|
|
5
5
|
> 本模块默认后台执行,除非修复失败,不向用户暴露执行细节。
|
|
6
|
-
> ⚠️
|
|
6
|
+
> ⚠️ 封面与图片资源均为后台资源,不得在前台展示图片预览,不得主动输出本地图片路径。只有用户明确要求查看/预览/导出图片时,才可提供路径或展示。
|
|
7
7
|
|
|
8
8
|
## 目标
|
|
9
9
|
|
|
10
10
|
避免以下半成品状态进入发布:
|
|
11
|
-
- `scenario_cover`
|
|
11
|
+
- `scenario_cover` 为空或不是固定默认封面
|
|
12
12
|
- 任一角色 `avatar` 为空
|
|
13
13
|
- 任一角色 `voice_id` 为空
|
|
14
14
|
|
|
@@ -32,7 +32,7 @@ Part1-Part5 主体完成
|
|
|
32
32
|
以下任一情况判定为未完成:
|
|
33
33
|
- `scenario_cover` 为空
|
|
34
34
|
- `scenario_cover` 为 `null`
|
|
35
|
-
-
|
|
35
|
+
- `scenario_cover` 不等于 `https://newsokeeditorcdn.soke.cn/public/ai/cover/lingshou_daogou.png`
|
|
36
36
|
|
|
37
37
|
### Avatar Gate
|
|
38
38
|
对每个角色检查:
|
|
@@ -50,44 +50,19 @@ Part1-Part5 主体完成
|
|
|
50
50
|
## 封面补齐规则
|
|
51
51
|
|
|
52
52
|
### 标准流程
|
|
53
|
-
1. 检查 `scenario_cover`
|
|
53
|
+
1. 检查 `scenario_cover` 是否为固定默认图或为空
|
|
54
54
|
2. 若是,按以下优先级补齐:
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
**唯一规则:默认固定封面回填**
|
|
57
57
|
- 默认使用:`https://newsokeeditorcdn.soke.cn/public/ai/cover/lingshou_daogou.png`
|
|
58
58
|
- 直接用 `update_basic.scenario_cover` 回填该真实 URL
|
|
59
59
|
- `get-scenario` 验证不再为空且为该固定封面
|
|
60
|
-
|
|
61
|
-
**优先级 1:从平台图片库/已有真实封面库择图**
|
|
62
|
-
- 若业务明确要求替换默认图,再按行业、业务环节、场景气质筛选图片库素材
|
|
63
|
-
- 若当前环境只有场景封面库能力,则执行 `soke-cli ai-training +list-scenarios --page 1 --page-size 50 --status published --pretty`
|
|
64
|
-
- 从结果中筛出非 `default.png` 的 `scenario_cover`,选择与当前场景最匹配的一条
|
|
65
|
-
- 使用 `update_basic.scenario_cover` 回填该真实 URL
|
|
66
|
-
- `get-scenario` 验证不再为空且非默认图
|
|
67
|
-
|
|
68
|
-
**优先级 2:复用工作区已有本地封面文件**
|
|
69
|
-
- 按顺序检查:`./scenario-cover.png` → `./scenario-cover.jpg` → `./cover.png` → `./cover.jpg`
|
|
70
|
-
- 若存在,执行 `soke-cli ai-training +upload-scenario-cover --file <本地文件> --pretty`
|
|
71
|
-
- 使用 `update_basic.scenario_cover` 回填真实 CDN URL
|
|
72
|
-
- `get-scenario` 验证不再是默认图
|
|
73
|
-
|
|
74
|
-
**优先级 3:本地生成封面**
|
|
75
|
-
- 仅当默认图、平台图库/封面库和本地现成图都不可用时,再生成本地封面图 `scenario-cover.png`
|
|
76
|
-
- 生成后仅做后台内部检查,不调用前台图片预览,不向用户展示图片
|
|
77
|
-
- 执行 `soke-cli ai-training +upload-scenario-cover --file ./scenario-cover.png --pretty`
|
|
78
|
-
- 使用 `update_basic.scenario_cover` 回填真实 CDN URL
|
|
79
|
-
- `get-scenario` 验证不再是默认图
|
|
80
|
-
- 若上传失败、未拿到真实 CDN URL、或平台回读仍为空/默认图,则视为“封面未补齐”,禁止发布,不得把“本地已生成文件”误判为已完成
|
|
81
|
-
|
|
82
|
-
**优先级 3:最终兜底**
|
|
83
|
-
若以上均不可行:
|
|
60
|
+
若固定默认封面回填后仍失败:
|
|
84
61
|
- 标注 `cover_pending`
|
|
85
62
|
- 禁止发布
|
|
86
|
-
- 在交付摘要中提醒用户手动补封面
|
|
87
63
|
|
|
88
64
|
### 失败处理
|
|
89
|
-
-
|
|
90
|
-
- 全部降级链路失败 → 标注 `cover_pending`,禁止发布
|
|
65
|
+
- 固定默认封面回填失败 → 标注 `cover_pending`,禁止发布
|
|
91
66
|
|
|
92
67
|
## 头像补齐规则
|
|
93
68
|
|
|
@@ -120,7 +95,7 @@ Part1-Part5 主体完成
|
|
|
120
95
|
## 发布前最终判定
|
|
121
96
|
|
|
122
97
|
只有以下全部满足时,才允许执行 `+publish-scenario`:
|
|
123
|
-
-
|
|
98
|
+
- 封面为固定默认图
|
|
124
99
|
- 所有角色头像非空 URL
|
|
125
100
|
- 所有角色声音非空 ID
|
|
126
101
|
- 无“角色数据异常”
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: soke-ai-training
|
|
3
|
+
summary: AI教练知识包同步、source管理、场景绑定和知识计划查询
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
description: "用于本地Agent通过soke-cli调用开放平台AI教练知识包接口,完成Markdown source上传、结构化entries同步、source管理、场景知识包版本绑定和知识计划编译查询。"
|
|
6
|
+
metadata:
|
|
7
|
+
requires:
|
|
8
|
+
bins: ["soke-cli"]
|
|
9
|
+
cliHelp: "soke-cli ai-training --help"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# AI教练知识包
|
|
13
|
+
|
|
14
|
+
**CRITICAL — 开始前 MUST 先读取 [`../../../soke-shared/MODULE.md`](../../../soke-shared/MODULE.md),其中包含认证、配置和权限处理。**
|
|
15
|
+
|
|
16
|
+
## 使用前提
|
|
17
|
+
|
|
18
|
+
1. 运行 `soke-cli auth login` 完成用户授权。
|
|
19
|
+
2. 确认 `soke-cli config show` 中有 `APIBaseURL`、`AppKey`、`AppSecret`、`CorpID` 和用户 token。
|
|
20
|
+
3. 客户原始 PDF、Word、Excel、网页等资料必须先由本地 Agent/Skills 提炼为 Markdown sources 和结构化 entries JSON。
|
|
21
|
+
|
|
22
|
+
## 推荐同步
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
soke-cli ai-training +sync \
|
|
26
|
+
--manifest ./knowledge-package.json \
|
|
27
|
+
--idempotency-key cli-rcb-loan-products-20260610-001
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
`+sync` 会完成:
|
|
31
|
+
|
|
32
|
+
1. 读取 manifest 和 entries。
|
|
33
|
+
2. 校验 Markdown 文件、source_refs、entry_id/source_id 唯一性。
|
|
34
|
+
3. 调用 `/skills/ai-training/knowledge-packages/upload-tokens`。
|
|
35
|
+
4. 直传 Markdown 到服务端返回的 `upload_url`。
|
|
36
|
+
5. 调用 `/skills/ai-training/knowledge-packages/sync`。
|
|
37
|
+
6. 写入 `.mentorai-sync-state.json`。
|
|
38
|
+
|
|
39
|
+
## Manifest 示例
|
|
40
|
+
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"package": {
|
|
44
|
+
"package_id": "rcb-loan-products",
|
|
45
|
+
"name": "农商银行贷款产品知识包",
|
|
46
|
+
"domain": "banking_loan",
|
|
47
|
+
"tags": ["贷款产品"]
|
|
48
|
+
},
|
|
49
|
+
"sources": [
|
|
50
|
+
{
|
|
51
|
+
"source_id": "src_manual",
|
|
52
|
+
"path": "./sources/manual.md",
|
|
53
|
+
"display_name": "贷款产品手册",
|
|
54
|
+
"origin_type": "pdf",
|
|
55
|
+
"origin_filename": "loan-manual.pdf"
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"entries_path": "./knowledge-package.entries.json"
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## entries 格式(2026-08-18 实测补全)
|
|
63
|
+
|
|
64
|
+
`entries_path` 指向的 JSON 是数组,每项字段:
|
|
65
|
+
|
|
66
|
+
- `entry_id`:条目唯一 ID(如 `e_upgrade_super`)
|
|
67
|
+
- `entry_type`:**必填枚举**,只能是 `customer_topic` / `disclosure_step` / `advisor_golden_script` / `evaluation_rubric_evidence` / `business_fact`(传其他值会 422)
|
|
68
|
+
- `source_id`:来源 source 的 ID
|
|
69
|
+
- `title`:条目标题
|
|
70
|
+
- `content`:条目正文
|
|
71
|
+
- `source_refs`:**对象数组**(不是字符串数组),形如 `[{"source_id": "src_manual"}]`(传字符串数组会 422)
|
|
72
|
+
- `tags`:标签数组
|
|
73
|
+
|
|
74
|
+
```json
|
|
75
|
+
[
|
|
76
|
+
{
|
|
77
|
+
"entry_id": "e_001",
|
|
78
|
+
"entry_type": "business_fact",
|
|
79
|
+
"source_id": "src_manual",
|
|
80
|
+
"title": "产品权益",
|
|
81
|
+
"content": "……",
|
|
82
|
+
"source_refs": [{"source_id": "src_manual"}],
|
|
83
|
+
"tags": ["产品"]
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## 查询和管理
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
soke-cli ai-training +list-packages --format json
|
|
92
|
+
soke-cli ai-training +list-versions --package-id rcb-loan-products
|
|
93
|
+
soke-cli ai-training +list-sources --package-id rcb-loan-products
|
|
94
|
+
soke-cli ai-training +rename-source --package-id rcb-loan-products --source-id src_manual --display-name "贷款产品手册2026Q2"
|
|
95
|
+
soke-cli ai-training +delete-source --package-id rcb-loan-products --source-id src_manual
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## 场景绑定
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
soke-cli ai-training +bind-scenario \
|
|
102
|
+
--scenario-id scenario_micro_loan_sales \
|
|
103
|
+
--version-ids 8ed4c1c4-5b3c-4d44-ae8e-d5b064bf1e12 \
|
|
104
|
+
--compile-plan
|
|
105
|
+
|
|
106
|
+
soke-cli ai-training +compile-plan \
|
|
107
|
+
--scenario-id scenario_micro_loan_sales \
|
|
108
|
+
--version-ids 8ed4c1c4-5b3c-4d44-ae8e-d5b064bf1e12 \
|
|
109
|
+
--force
|
|
110
|
+
|
|
111
|
+
soke-cli ai-training +get-plan --scenario-id scenario_micro_loan_sales --format json
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## 注意
|
|
115
|
+
|
|
116
|
+
- 不要在 manifest 或 entries 中伪造 `corp_id`、`user_id` 或 `object_key`。
|
|
117
|
+
- `object_key` 必须使用 upload-token 返回值。
|
|
118
|
+
- 不要把客户原始资料、token、app_secret 或 OSS 签名写入仓库。
|
|
119
|
+
- `advisor_golden_script` 不应进入 AI 客户角色可见知识。
|
|
120
|
+
- ⚠️ `+sync` **不支持 `--pretty`** 参数(加了会报 unknown flag,用 `--format json` 替代)。
|
|
121
|
+
- ⚠️ `origin_filename` 用**纯 ASCII**(如 `manual.pdf`),中文文件名会触发 500「生成知识包上传凭证失败」(2026-08-18 实测)。
|
|
122
|
+
- ⚠️ **v2.37 知识包复用提炼稿**:知识包 Markdown source 直接复用材料提炼稿(`/tmp/xxx_refined.md`),**禁止从零重写**(内容已在上下文中,重写浪费 3-5 积分)。只需按 entries 格式拆条目。
|
|
123
|
+
- ⚠️ **v2.37 CLI 全重定向**:`+sync` / `+bind-scenario` 输出一律 `> /tmp/xxx.json 2>/dev/null`,Python 从重定向文件提取 `version_id` / `package_id`,**禁止 `--format json` 直出到对话**。
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# 平台同步引擎(字段参考手册)
|
|
2
|
+
|
|
3
|
+
> ⚠️ **本文件已降级为字段参考手册**。执行规则、JSON 模板、字段硬规则、断言均以 `../references/exec-handbook.md` 为唯一事实源。本文件只保留 exec-handbook 未覆盖的:文件产出命名、一致性扫描、跨 Part 交接。
|
|
4
|
+
|
|
5
|
+
## 核心原则(补充 exec-handbook)
|
|
6
|
+
|
|
7
|
+
1. JSON 文件写入工作目录,**严禁在对话中出现任何 `.json` 文件名或路径**;文件名只在终端命令中使用。
|
|
8
|
+
2. `corp_id` / `user_id` / `created_by` 等身份字段禁止写入请求文件。
|
|
9
|
+
3. **JSON 内容 = Part 原文,一字不改**:生成 JSON 后、preview 前必须逐字段与已确认 Part 原文 diff,发现缩略/改写/重排序即修正。
|
|
10
|
+
4. 每步先 `+get-scenario` 取最新 `updated_at` 作基线,禁止沿用上一个 Part 的旧值。
|
|
11
|
+
5. CLI 不可用时按 `api-fallback.md` 降级 REST,JSON 结构/字段映射/自查清单与 CLI 完全一致。
|
|
12
|
+
|
|
13
|
+
## 文件产出规则
|
|
14
|
+
|
|
15
|
+
| 步骤 | 生成文件 | 使用方式 |
|
|
16
|
+
|------|---------|---------|
|
|
17
|
+
| Step1 | `part1-create.json`(或 `step1-create.json`) | `--request-file ./part1-create.json` |
|
|
18
|
+
| Part2 | `part2-operations.json`(+`part2-update.json`) | 整包 `replace_ai_roles`;排障退 operations |
|
|
19
|
+
| Part3 | `part3-operations.json`(+`part3-update.json`) | 默认 request-file;排障退 operations |
|
|
20
|
+
| Part4+5 | `part4-operations.json`(数组含评分+update_basic 两个元素,v2.43 合并) | 默认 request-file;排障退 operations |
|
|
21
|
+
| 全流程 | `state-snapshot.json` | 完全不出现在聊天 |
|
|
22
|
+
|
|
23
|
+
> 默认优先直嵌知识库,不默认生成 `knowledge-package.json`;仅知识库过大或用户要求时才走 `+sync` / `+bind-scenario`。
|
|
24
|
+
|
|
25
|
+
## 一致性扫描(每个 Part 确认后自动执行,无告警不输出)
|
|
26
|
+
|
|
27
|
+
- **Part2**:background 是否复制四段画像完整原文(我是谁/我的困扰/我的过往经历/我今天的心态),缺一段即告警;JSON 的 background 与确认弹窗展示文本是否逐字一致。
|
|
28
|
+
- **Part3**:Part1 key_points 是否全部在学员目标中有对应环节;每个环节是否含 step_name/student_objective/ai_task/max_rounds;ai_task 是否含进入条件+角色行为+退出条件。
|
|
29
|
+
- **Part4+5**:维度是否与 Part1 key_points 一一对应;总权重是否=100;每个维度 scoring_rule 是否含一票否决;criteria_data 是否在 config 下(`data.config.criteria_data`);第二个 operation 是否为 update_basic 且 6 项配置值与固定模板完全一致(不含收尾话术/SOP 摘要/考核点摘要)。
|
|
30
|
+
|
|
31
|
+
## 跨 Part 交接
|
|
32
|
+
|
|
33
|
+
Part2 角色卡的「我的行为模式」(共鸣触发/关键台词/防御机制/决策逻辑)标记为 Part3 素材,不写入 Part2 JSON,仅作 Part3 生成 AI 任务的参考输入。
|
|
34
|
+
|
|
35
|
+
## 边界
|
|
36
|
+
|
|
37
|
+
- `interaction.md` 负责:弹窗确认、按钮分支、回退链路。
|
|
38
|
+
- `exec-handbook.md` 负责:确认后的 JSON 生成、CLI 模板、断言、状态快照更新(唯一事实源)。
|
|
39
|
+
- 本文件负责:字段参考、文件命名、一致性扫描。
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# soke-cli 环境检测
|
|
2
|
+
|
|
3
|
+
独立于页面/创作管线,仅在需要调用平台接口时执行。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 依赖清单
|
|
8
|
+
|
|
9
|
+
| 依赖 | 最低版本 | 用途 | 安装方式 |
|
|
10
|
+
|------|----------|------|----------|
|
|
11
|
+
| Node.js | v14+ | 运行时 | https://nodejs.org/ |
|
|
12
|
+
| soke-cli | 1.0.67+ | 平台 CLI | 平台提供安装包 |
|
|
13
|
+
| Python 3 | 3.10+ | 脚本执行 | https://www.python.org/ |
|
|
14
|
+
| pdftotext | 系统自带 | PDF 文本提取 | macOS: `brew install poppler` · Linux: `apt install poppler-utils` |
|
|
15
|
+
|
|
16
|
+
> ✅ `soke-cli auth login` 采用 **OAuth 设备流**:命令启动后自动尝试打开浏览器,同时输出授权链接,阻塞等待扫码授权。检测到未登录时,**由 AI 自动执行**(后台拉起 → 提取授权链接 → 前台引导用户扫码 → 授权完成后自动重检继续),**不要求用户手动运行命令**。
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 检测流程
|
|
21
|
+
|
|
22
|
+
按顺序执行,任一步不通过则停止并引导修复。
|
|
23
|
+
|
|
24
|
+
### 1. Node.js 版本
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
node --version
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
- ✅ >= 14.0.0 → 通过
|
|
31
|
+
- ❌ 未安装或版本过低 → 提示:`需要 Node.js >= 14.0.0,请先安装或升级`
|
|
32
|
+
- ❌ `command not found` → 提示安装 Node.js
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
### 2. soke-cli 安装
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
which soke-cli && soke-cli --version
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
- ✅ 输出版本号 → 通过
|
|
43
|
+
- ❌ `command not found` → 执行安装:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
mkdir -p ~/.npm-global
|
|
47
|
+
npm config set prefix ~/.npm-global
|
|
48
|
+
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.zshrc
|
|
49
|
+
source ~/.zshrc
|
|
50
|
+
npm install -g @sokeai/cli@latest
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
安装后重新执行 `which soke-cli && soke-cli --version` 验证。
|
|
54
|
+
|
|
55
|
+
> Windows:将 `~/.zshrc` 替换为 PowerShell profile 路径,PATH 追加方式不同(见安装指南 Q2)。
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
### 3. 登录状态
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
soke-cli config show
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
判定字段:`用户凭证`(非空即已登录)。
|
|
66
|
+
|
|
67
|
+
- ✅ 输出含 `用户凭证` 且非空 → 通过,进入下一步企业绑定检查
|
|
68
|
+
- ❌ `用户凭证` 为空 → **AI 自动执行登录**(🔇 后台,无需用户手动跑命令):
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
# Bash 工具参数:run_in_background=true, dangerouslyDisableSandbox=true
|
|
72
|
+
soke-cli auth login
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
自动执行流程:
|
|
76
|
+
|
|
77
|
+
1. 后台启动 `soke-cli auth login`,命令阻塞等待授权(OAuth 设备流,不会自行退出)
|
|
78
|
+
2. 读取命令输出,提取授权链接(形如 `https://saas.soke.cn/...?cli_redirect_uri=http%3A%2F%2F127.0.0.1%3A<port>%2Fcallback`)
|
|
79
|
+
3. 📺 前台告知用户(一句话):「浏览器已自动打开,请扫码完成授权;若未自动打开,请访问:<授权链接>」
|
|
80
|
+
4. 等待命令退出(用户在浏览器完成授权后进程自动结束)→ 重新执行 `soke-cli config show` 确认 `用户凭证` 已存在
|
|
81
|
+
5. 授权完成 → 静默继续下一步企业绑定检查;若用户放弃/超时 → 停掉后台任务,提示用户随时说「继续」重新拉起登录
|
|
82
|
+
|
|
83
|
+
> ⏳ 授权链接带 `cli_redirect_uri` 回调参数,必须完整复制、不可截断;浏览器未自动打开时用户手动访问该链接即可。
|
|
84
|
+
|
|
85
|
+
- ❌ 返回 `401 Unauthorized` → Token 过期,自动重新登录:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
soke-cli auth logout
|
|
89
|
+
soke-cli auth login # 按上述自动执行流程(后台拉起 + 引导扫码)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
登录成功后重新执行 `soke-cli config show`,确认 `用户凭证` 已恢复。
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### 4. 企业绑定(corp binding)
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
soke-cli config show
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
判定字段:`corpid`(非空即已绑定企业)。
|
|
103
|
+
|
|
104
|
+
- ✅ `corpid` 非空 → 通过,记录企业 ID 供后续使用
|
|
105
|
+
- ❌ `corpid` 为空 → 提示用户:
|
|
106
|
+
> 已登录,但当前账号未绑定企业。请先在授客AI平台完成企业绑定,再重新执行 `soke-cli auth login --force`
|
|
107
|
+
|
|
108
|
+
如需强制刷新企业绑定信息,执行:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
soke-cli auth login --force # 自动执行流程同上(后台拉起 + 引导扫码)
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
完成后重新执行 `soke-cli config show`,确认 `corpid` 非空。
|
|
115
|
+
|
|
116
|
+
如果仍为空,说明当前账号未加入任何企业,需联系管理员添加。
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 常见故障速查
|
|
121
|
+
|
|
122
|
+
| 现象 | 原因 | 修复 |
|
|
123
|
+
|------|------|------|
|
|
124
|
+
| `which soke-cli` 无输出但已安装 | PATH 未生效 | `source ~/.zshrc` 或新开终端 |
|
|
125
|
+
| `401 Unauthorized` | Token 过期 | `soke-cli auth logout && soke-cli auth login`(后者自动执行) |
|
|
126
|
+
| 登录时浏览器未打开 | 系统无默认浏览器 | 用户手动访问 AI 提供的授权链接(完整复制含 `cli_redirect_uri`) |
|
|
127
|
+
| 授权链接无法访问 | 链接被截断/过期 | 停掉当前后台任务,重新 `soke-cli auth login` 生成新链接 |
|
|
128
|
+
| `npm: command not found` | Node.js 未安装 | 安装 Node.js >= 14 |
|
|
129
|
+
| `EACCES` 权限错误 | npm 全局安装需要 sudo | 使用 `~/.npm-global` 方案(见步骤2) |
|
|
130
|
+
| `corpid` 为空 | 未绑定企业 | `soke-cli auth login --force` 重新授权,或联系管理员 |
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## 使用方式
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
# 在 ai-coach-director 中
|
|
138
|
+
read references/env-check.md
|
|
139
|
+
按顺序执行 4 步检测:
|
|
140
|
+
1. node --version
|
|
141
|
+
2. which soke-cli && soke-cli --version
|
|
142
|
+
3. soke-cli config show → 确认「用户凭证」非空;为空则自动执行 soke-cli auth login(后台拉起 + 引导扫码)
|
|
143
|
+
4. soke-cli config show → 确认 corpid 非空
|
|
144
|
+
全部通过 → 记录企业 ID,继续调度
|
|
145
|
+
任一步失败 → 按修复流程处理(登录类自动拉起授权),不进入内容生成/同步
|
|
146
|
+
```
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# 通用执行约束(Common Execution Rules)
|
|
2
|
+
|
|
3
|
+
> v2.41 从 exec-handbook.md 拆分。所有 Part 共享的 CLI 参数、材料铁律、字段类型硬规则、状态快照规则。
|
|
4
|
+
> 各 Part 专属模板/断言/反面案例见 `exec-partN.md`。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## CLI 参数固定值
|
|
9
|
+
|
|
10
|
+
- `--scenario-id <id>`(不是 `--scenario <id>`)
|
|
11
|
+
- apply 需要 `--idempotency-key <unique>` 和 `--reason "PartN同步"`(v2.41:省略 --reason 会导致 422)
|
|
12
|
+
- 每次 apply 后必须重新获取 `updated_at` 作为下次 `--base-updated-at`
|
|
13
|
+
- **所有 CLI 输出一律 `> /tmp/xxx.json 2>/dev/null` 重定向**,禁止 `--pretty` 直出到对话。Python 从重定向文件提取字段,不回显 JSON 原文。
|
|
14
|
+
- **apply 禁止用于验证**。验证数据用 `+get-scenario`,apply 后只从返回值提取 `updated_at`(`tail -1` 或 Python 提取),不回显 operations/snapshot_id。用 apply 回读环节会导致 `add_conversation_step` 重复添加。
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 材料预处理铁律(v2.41 强化:预过滤)
|
|
19
|
+
|
|
20
|
+
非结构化材料(PDF/DOCX/PPT)处理流程:
|
|
21
|
+
1. **预过滤(v2.41 新增)**:先看文件名/标题,只对与场景直接相关的材料做 pdftotext。无关材料直接标注「已跳过:与场景无关」。
|
|
22
|
+
2. **一次成型写提炼稿**:pdftotext 提取到 `/tmp/` → **一次性** grep 定位 + sed 读取关键段落 → Write 落盘提炼稿到 `/tmp/xxx_refined.md`。**禁止分多轮 sed 回看**。
|
|
23
|
+
3. **原始材料全文不再进入后续 Part 上下文**——Part1-5 生成只读提炼稿
|
|
24
|
+
4. 提炼稿只保留 Part1-5 所需结构化要素(业务背景/训练对象/话术/画像线索/异议/红线/评分线索)
|
|
25
|
+
5. 提炼稿删除无关段落(目录/版权页/附录/重复章节)
|
|
26
|
+
6. 提炼稿 ≤1500 字(硬上限),超了二次压缩只保留核心要素
|
|
27
|
+
7. **提炼稿落盘后,后续 Part1-5 只 Read 这一个文件**,不再碰原始 PDF/DOCX
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 后台静默规则(G1/G3)
|
|
32
|
+
|
|
33
|
+
所有 CLI 错误(stderr / 非零退出 / 422 / 409)**禁止对用户展示**。AI 内部分析修正(最多 2 次重试),仍失败仅告知"Part N 同步异常"+ ≤50 字原因。
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 输出过滤规则(v2.35 反压缩强化)
|
|
38
|
+
|
|
39
|
+
后台 Python 脚本的 print() 输出、JSON 文件大小、字符数统计、自查断言结果("✅ xxx")→ 🔇 后台静默,**禁止出现在对话消息中**。
|
|
40
|
+
|
|
41
|
+
**CLI 输出强制静默**:
|
|
42
|
+
- 所有 soke-cli 命令输出一律 `> /tmp/xxx.json 2>/dev/null` 重定向
|
|
43
|
+
- preview/apply 命令一律 `2>/dev/null | tail -3`,只看结尾 3 行状态
|
|
44
|
+
- `+get-scenario` 回读一律 `> /tmp/xxx.json` 重定向,Python 只打印 `True/False` 布尔判断
|
|
45
|
+
- snapshot_id / updated_at / warnings / operations 回显**一律吞掉**
|
|
46
|
+
- **apply 禁止用于验证**:apply 是写入操作,不是读取操作。用 apply 回读环节会导致 `add_conversation_step` 重复添加 → 需快照回滚 → 浪费 3-5 积分。验证用 `+get-scenario`。
|
|
47
|
+
- 仅失败时输出 ≤50 字原因
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 平台头像库
|
|
52
|
+
|
|
53
|
+
正确路径前缀:`https://newsokeeditorcdn.soke.cn/public/ai/roles_avatars/`(❌ 错误:`/public/ai/avatar/`,存进去 UI 空白)。
|
|
54
|
+
头像 URL 一律通过 `soke-cli ai-training +list-role-avatars` **重定向到 /tmp/avatars.json 后 Python 按性别/年龄关键词过滤 title 字段提取 url**(禁止 `--pretty` 直出,禁止 `--gender`/`--age-group` 参数——CLI 不支持)。声音同理重定向到 `/tmp/voices.json` 后 Python 提取 `id`。
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## JSON 字段类型硬规则
|
|
59
|
+
|
|
60
|
+
> 原则:**文档是什么类型,就严格按什么类型生成。**
|
|
61
|
+
|
|
62
|
+
### string 字段:必须生成字符串
|
|
63
|
+
|
|
64
|
+
多条内容用顿号、分号、编号或 `\n` 拼接为一个字符串,禁止写成数组。
|
|
65
|
+
|
|
66
|
+
关键 string 字段:`name`、`description`、`key_points`、`role_data.name`、`role_data.description`、`role_data.avatar`、`role_data.communication_style`、`role_data.background`、`role_data.personality_type`、`role_data.personality`、`role_data.voice_id`、`ai_roles_overall_description`、`opening_dialogue`、`conversation_steps[].step_name`、`conversation_steps[].student_objective`、`conversation_steps[].ai_task`、`criteria_data.name`、`criteria_data.description`、`dimensions[].code`、`dimensions[].name`、`dimensions[].description`、`dimensions[].scoring_rule`
|
|
67
|
+
|
|
68
|
+
### string[] 字段:只有明确数组字段才生成数组
|
|
69
|
+
|
|
70
|
+
每条一个元素:`tags`、`conversation_knowledge_base_ids`、`scoring_knowledge_base_ids`、`role_data.tags`、`role_data.knowledge_level`、`role_data.taboos_objections`、`dimensions[].criteria`
|
|
71
|
+
|
|
72
|
+
### number / boolean / null 字段
|
|
73
|
+
|
|
74
|
+
- number 不加引号:`weight`、`total_weight`、`max_rounds`、`max_practice_attempts`、`passing_score`、`pass_difficulty`、`dimensions[].sort_order`
|
|
75
|
+
- boolean 不加引号:`is_custom_role`、`is_custom_criteria`、`ai_assistance_enabled`
|
|
76
|
+
- null 写 `null`,不写空字符串或 `"null"`
|
|
77
|
+
|
|
78
|
+
### 创建/更新差异
|
|
79
|
+
|
|
80
|
+
- 创建 `conversation_steps` 用 `ai_objective`;更新用 `ai_task`。
|
|
81
|
+
- 创建 `conversation_steps[].sort_order` 写字符串(`"1"`);评分维度 `sort_order` 写数字(`1`)。
|
|
82
|
+
|
|
83
|
+
### 生成前自检
|
|
84
|
+
|
|
85
|
+
```text
|
|
86
|
+
☐ string 字段没有被写成数组或对象
|
|
87
|
+
☐ string[] 字段没有被写成逗号分隔字符串
|
|
88
|
+
☐ number 字段没有加引号
|
|
89
|
+
☐ boolean 字段没有加引号
|
|
90
|
+
☐ null 字段没有写成 "" 或 "null"
|
|
91
|
+
☐ 创建/更新 sort_order 类型符合对应接口要求
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 状态快照与缓存规则
|
|
97
|
+
|
|
98
|
+
### state-snapshot.json 结构
|
|
99
|
+
|
|
100
|
+
```json
|
|
101
|
+
{
|
|
102
|
+
"mode": "partwise",
|
|
103
|
+
"scenario_id": "scn_xxx",
|
|
104
|
+
"scenario_short": "b7730195",
|
|
105
|
+
"updated_at": "2026-07-10T01:40:58.216028Z",
|
|
106
|
+
"current_part": "part3",
|
|
107
|
+
"confirmed_data": { "part1": {}, "part2": {}, "part3": {}, "part4": {}, "part5": {} },
|
|
108
|
+
"applied": { "part1": true, "part2": true, "part3": false, "part4": false, "part5": false },
|
|
109
|
+
"cached": { "role_profile": {}, "scenario_type": "" },
|
|
110
|
+
"file_reads": 0
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### 依赖与回滚规则
|
|
115
|
+
|
|
116
|
+
- Part1 修改 → Part2-Part5 全部待复核
|
|
117
|
+
- Part2 修改 → 至少重检 Part3 与 Part5
|
|
118
|
+
- Part3 修改 → 至少重检 Part4 与 Part5
|
|
119
|
+
- Part4 修改 → 重检 Part5
|
|
120
|
+
- Part5 修改通常不反推前序 Part,但若改动通关分数/难度,需检查与 Part4 评分体系一致
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 沙箱绕过(G4)
|
|
125
|
+
|
|
126
|
+
WorkBuddy Bash 调用 soke-cli 必须设 `dangerouslyDisableSandbox: true`。
|