@sokeai/cli 1.0.75 → 1.0.77

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/README.md +7 -7
  2. package/package.json +1 -1
  3. package/scripts/build-binaries.sh +1 -1
  4. package/scripts/e2e-test.sh +75 -3
  5. package/skills/SKILL.md +18 -1
  6. package/skills/soke-ai-coach-director/CHANGELOG.md +203 -0
  7. package/skills/soke-ai-coach-director/README.md +123 -0
  8. package/skills/soke-ai-coach-director/SKILL.md +221 -0
  9. package/skills/soke-ai-coach-director/coaching/knowledge-packager/knowledge-packager.md +91 -0
  10. package/skills/soke-ai-coach-director/coaching/prompt-engineer/parts/part2-roles.md +97 -0
  11. package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-engineer/parts/part3-flow.md +3 -3
  12. package/skills/soke-ai-coach-director/coaching/prompt-engineer/prompt-engineer.md +76 -0
  13. package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-optimizer/prompt-optimizer.md +77 -58
  14. package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/workbuddy.md +2 -3
  15. package/skills/soke-ai-coach-director/platform/interaction.md +103 -0
  16. package/skills/{ai-coach-director → soke-ai-coach-director}/platform/publish-gate.md +3 -3
  17. package/skills/{ai-coach-director → soke-ai-coach-director}/platform/resource-finalizer.md +10 -35
  18. package/skills/{ai-coach-director → soke-ai-coach-director}/platform/soke-ai-training/soke-ai-training.md +33 -3
  19. package/skills/soke-ai-coach-director/platform/sync-engine.md +39 -0
  20. package/skills/{ai-coach-director → soke-ai-coach-director}/references/change-log-partwise-refactor.md +1 -1
  21. package/skills/soke-ai-coach-director/references/env-check.md +146 -0
  22. package/skills/soke-ai-coach-director/references/exec-common.md +126 -0
  23. package/skills/soke-ai-coach-director/references/exec-handbook.md +621 -0
  24. package/skills/soke-ai-coach-director/references/exec-part1.md +86 -0
  25. package/skills/soke-ai-coach-director/references/exec-part2.md +145 -0
  26. package/skills/soke-ai-coach-director/references/exec-part3.md +91 -0
  27. package/skills/soke-ai-coach-director/references/exec-part4.md +187 -0
  28. package/skills/soke-ai-coach-director/references/gate-check-matrix.md +46 -0
  29. package/skills/soke-ai-coach-director/references/micro-tune-labels.md +30 -0
  30. package/skills/soke-ai-coach-director/references/platform-api-pitfalls.md +49 -0
  31. package/skills/soke-ai-coach-director/references/role-resource-matching.md +45 -0
  32. package/skills/{ai-coach-director → soke-ai-coach-director}/references/self-improvement-examples.md +2 -0
  33. package/skills/soke-ai-coach-director/references/self-learning-engine.md +489 -0
  34. package/skills/soke-ai-coach-director/references/subs/part1/SOP.md +17 -0
  35. package/skills/soke-ai-coach-director/references/subs/part2/SOP.md +34 -0
  36. package/skills/soke-ai-coach-director/references/subs/part3/SOP.md +27 -0
  37. package/skills/soke-ai-coach-director/references/subs/part4/SOP.md +31 -0
  38. package/skills/soke-ai-coach-director/references/subs/publish/SOP.md +81 -0
  39. package/skills/soke-ai-coach-director/references/subs/tune/SOP.md +92 -0
  40. package/skills/soke-ai-coach-director/references/verified-cli-cheatsheet.md +56 -0
  41. package/skills/{ai-coach-director → soke-ai-coach-director}/scripts/activator.sh +0 -0
  42. package/skills/{ai-coach-director → soke-ai-coach-director}/scripts/error-detector.sh +0 -0
  43. package/skills/{ai-coach-director → soke-ai-coach-director}/scripts/extract-skill.sh +0 -0
  44. package/skills/soke-ai-coach-director/scripts/gate_check.py +112 -0
  45. package/skills/soke-ai-coach-director/scripts/validate_operations.py +403 -0
  46. package/skills/soke-certificate/SKILL.md +717 -0
  47. package/skills/soke-course/README.md +12 -2
  48. package/skills/soke-course/SKILL.md +12 -10
  49. package/skills/soke-course/references/course-list-courses.md +49 -84
  50. package/skills/soke-course/references/intent-cases.md +8 -8
  51. package/skills/soke-course/references/sop-full-workflow.md +11 -6
  52. package/skills/soke-course/references/sop-publish-check.md +3 -1
  53. package/skills/soke-course/references/subs/publish/SOP.md +34 -4
  54. package/skills/soke-course/references/subs/query/SOP.md +9 -7
  55. package/skills/soke-course/references/subs/settings/SOP.md +87 -25
  56. package/skills/soke-exam-question-pool/SKILL.md +80 -112
  57. package/skills/soke-task/SKILL.md +32 -10
  58. package/skills/soke-training-demand/SKILL.md +150 -43
  59. package/skills/ai-coach-director/SKILL.md +0 -1563
  60. package/skills/ai-coach-director/coaching/prompt-engineer/parts/part2-roles.md +0 -317
  61. package/skills/ai-coach-director/coaching/prompt-engineer/prompt-engineer.md +0 -244
  62. package/skills/ai-coach-director/platform/interaction.md +0 -315
  63. package/skills/ai-coach-director/platform/sync-engine.md +0 -1101
  64. 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
  65. 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
  66. 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
  67. 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
  68. 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
  69. 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
  70. 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
  71. 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
  72. 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
  73. 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
  74. 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
  75. 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
  76. 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
  77. 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
  78. package/skills/ai-coach-director/references/env-check.md +0 -167
  79. package/skills/ai-coach-director/references/platform-api-pitfalls.md +0 -232
  80. package/skills/ai-coach-director/references/role-resource-matching.md +0 -349
  81. package/skills/ai-coach-director/references/verified-cli-cheatsheet.md +0 -203
  82. /package/skills/{ai-coach-director → soke-ai-coach-director}/assets/ERRORS-TEMPLATE.md +0 -0
  83. /package/skills/{ai-coach-director → soke-ai-coach-director}/assets/FEATURE_REQUESTS-TEMPLATE.md +0 -0
  84. /package/skills/{ai-coach-director → soke-ai-coach-director}/assets/LEARNINGS-TEMPLATE.md +0 -0
  85. /package/skills/{ai-coach-director → soke-ai-coach-director}/assets/SKILL-TEMPLATE.md +0 -0
  86. /package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-engineer/parts/part1-basic.md +0 -0
  87. /package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-engineer/parts/part4-scoring.md +0 -0
  88. /package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-engineer/parts/part5-constraints.md +0 -0
  89. /package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/role-profiler/role-profiler.md +0 -0
  90. /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/README.md +0 -0
  91. /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/qclaw.md +0 -0
  92. /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/wukong.md +0 -0
  93. /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/zework.md +0 -0
  94. /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/api-fallback.md +0 -0
  95. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/345/256/242/346/210/267/350/247/222/350/211/262/346/250/241/346/235/277/345/272/223.md" +0 -0
  96. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203Bad Case/346/240/267/346/234/254/345/272/223.md" +0 -0
  97. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/345/210/233/345/273/272/351/227/256/351/242/230/345/272/223.md" +0 -0
  98. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/345/234/272/346/231/257/345/210/206/347/261/273/345/272/223.md" +0 -0
  99. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/345/256/242/346/210/267/346/235/220/346/226/231/346/270/205/345/215/225/344/270/216/350/256/277/350/260/210/351/242/230/345/272/223.md" +0 -0
  100. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/345/276/256/350/260/203/351/227/256/351/242/230/345/272/223.md" +0 -0
  101. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/346/212/200/346/234/257/350/276/271/347/225/214/344/270/216/346/216/222/351/232/234/345/272/223.md" +0 -0
  102. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/346/217/220/347/244/272/350/257/215/346/250/241/345/235/227/345/272/223.md" +0 -0
  103. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/346/225/260/346/215/256/346/214/207/346/240/207/344/270/216/347/234/213/346/235/277/345/217/243/345/276/204/345/272/223.md" +0 -0
  104. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/346/265/213/350/257/225/347/224/250/344/276/213/345/272/223.md" +0 -0
  105. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/350/257/204/345/210/206/346/240/207/345/207/206/347/273/204/344/273/266/345/272/223.md" +0 -0
  106. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/351/241/271/347/233/256/346/241/210/344/276/213/345/244/215/347/233/230/345/272/223.md" +0 -0
  107. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/241/276/345/256/242/350/247/222/350/211/262/346/250/241/346/213/237_GoodCase_BadCase_20260701.md" +0 -0
  108. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/create//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/224/265/350/257/235/347/272/246/350/256/277//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/345/256/242/346/210/267/346/235/220/346/226/231/346/261/207/346/200/273_2026-05-19_1341.md" +0 -0
  109. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/create//346/226/260/350/203/275/346/272/220/350/275/246/344/270/273/350/264/267//346/226/260/350/203/275/346/272/220/350/275/246/344/270/273/350/264/267/347/237/245/350/257/206/345/272/223/347/224/237/346/210/220_20260615.md" +0 -0
  110. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/create//346/226/260/350/203/275/346/272/220/350/275/246/344/270/273/350/264/267//346/226/260/350/203/275/346/272/220/350/275/246/344/270/273/350/264/267/351/231/252/347/273/203/346/217/220/347/244/272/350/257/215/347/224/237/346/210/220_20260615.md" +0 -0
  111. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/create//346/237/220/345/233/275/351/231/205/346/243/200/346/265/213/346/234/272/346/236/204//346/237/220/345/233/275/351/231/205/346/243/200/346/265/213/346/234/272/346/236/204/351/231/252/347/273/203/346/211/247/350/241/214/346/226/271/346/241/210/344/272/244/344/273/230/350/256/260/345/275/225_20260610.md" +0 -0
  112. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/create//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206_/346/217/220/347/244/272/350/257/215/346/220/255/345/273/272_20260622.md" +0 -0
  113. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/347/263/273/345/210/227//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_V1.1_20260616.md" +0 -0
  114. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/347/263/273/345/210/227//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_V1.2_20260616.md" +0 -0
  115. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/347/263/273/345/210/227//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/346/217/220/347/244/272/350/257/215_/345/216/213/347/274/251/347/211/210_V2.0_20260616.md" +0 -0
  116. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/347/263/273/345/210/227//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/346/217/220/347/244/272/350/257/215/344/274/230/345/214/226_20260616.md" +0 -0
  117. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277AI/351/231/252/347/273/203/347/263/273/347/273/237_/346/265/213/350/257/225/345/217/215/351/246/210/346/261/207/346/200/273_2026-06-01.md" +0 -0
  118. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277KYC/344/277/241/344/273/273/345/200/274/347/246/201/344/273/244_2026-06-09_0932.md" +0 -0
  119. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277KYC/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_v2_20260608.md" +0 -0
  120. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_v1.1.md" +0 -0
  121. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_v1.2.md" +0 -0
  122. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/346/217/220/347/244/272/350/257/215/344/274/230/345/214/226_V2_/350/257/212/346/226/255/344/272/244/344/273/230_20260609.md" +0 -0
  123. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases//345/233/233/345/244/247/345/234/272/346/231/257_GoodCase_BadCase_20260701.md" +0 -0
  124. /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases//346/241/210/344/276/213/345/272/223/350/241/245/345/205/205_2026-06-24.md" +0 -0
@@ -0,0 +1,81 @@
1
+ # 场景发布与交付子 SOP
2
+
3
+ > 由 SKILL.md Step 6-9 调用。执行前已通过 Step 5 全部 Part 验收。
4
+
5
+ ## Step 6: 平台同步验证
6
+
7
+ 1. 读取 `state-snapshot.json`,验证所有 Part 的 `applied` 均为 `true`
8
+ 2. 执行 `soke-cli ai-training +get-scenario --scenario-id <id> --pretty`
9
+ 3. 逐字段验证:
10
+ - `key_points`、`description`、`name` → 与 `step1-create.json` 一致
11
+ - `ai_roles` 非空 + `role_data.name` ≠ "角色数据异常"
12
+ - `scoring_criteria_config` 维度数/名称/权重与 part4-operations.json 一致
13
+ - 练习配置与 part5-operations.json 一致
14
+ 4. 记录 `scenario_id` 和平台 URL
15
+
16
+ > 🚦 闸门:所有 Part `applied: true` + 关键字段一致。
17
+
18
+ ---
19
+
20
+ ## Step 7: 创建质量闸门(v2.39 精简:12 项 → 3 项补查)
21
+
22
+ 内部检查,不在对话窗展示逐项明细。通过后仅输出 `✅ 质量闸门全部通过`。
23
+
24
+ > **v2.39 精简规则**:Part1-5 自检全部通过后,12 项中 9 项自动视为通过(与 Part 自检重叠)。仅补查以下 3 项:
25
+
26
+ | # | 检查项 | 来源步骤 | 不通过处理 | v2.39 |
27
+ |---|--------|---------|-----------|--------|
28
+ | 1 | 材料完整 | Step 1 | 返回 Step 1 | ↔Part1自检(跳过) |
29
+ | 2 | 场景拆解合理 | Step 2 | 返回 Step 2 | ↔Step2确认(跳过) |
30
+ | 3 | 角色行为化 | Part2 | 返回 Part2 | ↔Part2自检(跳过) |
31
+ | 4 | 信息释放规则明确 | Part2 | 返回 Part2 | ↔Part2自检(跳过) |
32
+ | 5 | 每阶段进入/退出条件 | Part3 | 返回 Part3 | ↔Part3自检(跳过) |
33
+ | 6 | 评分可识别(一票否决嵌入) | Part4 | 返回 Part4 | ↔Part4自检(跳过) |
34
+ | 7 | 练习配置匹配固定模板 | Part5 | 返回 Part5 | ↔Part5自检(跳过) |
35
+ | 8 | 有测试用例 | - | 补充 | ⚡仅闸门(🟡可选) |
36
+ | 9 | 整体设定 ≤ 3000 字 | Part2 | 压缩 | ⚡仅闸门 |
37
+ | 10 | 每个 Part 已完整展示 | Step 5 | 重展示 | ⚡仅闸门 |
38
+ | 11 | Part2-Part5 完整度 ≥ Part1 | Step 5 | 补展示 | ↔Part自检(跳过) |
39
+ | 12 | 封面/图片未前台展示 | - | 修正 | ↔Part1自检(跳过) |
40
+
41
+ ---
42
+
43
+ ## Step 8: 发布闸门(资源兜底)
44
+
45
+ 1. 资源收官:`platform/resource-finalizer.md`
46
+ - 固定封面存在
47
+ - 所有角色头像补齐
48
+ - 所有角色语音补齐
49
+ 2. 发布验门:`platform/publish-gate.md`
50
+ - 封面非空
51
+ - avatar 全部非空 URL
52
+ - voice_id 全部非空 ID
53
+ - 无"角色数据异常"
54
+ 3. 任一失败 → 停止发布 → 输出缺口清单
55
+ 4. 全部通过 → Step 9
56
+
57
+ ---
58
+
59
+ ## Step 9: 场景发布
60
+
61
+ ```bash
62
+ soke-cli ai-training +publish-scenario \
63
+ --scenario-id <scenario_id> \
64
+ --version 1 \
65
+ --version-description "CLI发布" \
66
+ --pretty
67
+ ```
68
+
69
+ 发布后验收:`+get-scenario --scenario-id <id> --pretty` 确认状态。
70
+
71
+ > 🚦 闸门:发布成功后方可交付。
72
+
73
+ ---
74
+
75
+ ## 发布后:知识打包(🚦 v2.27 强制弹窗,用户可选跳过)
76
+
77
+ 🚦 **强制闸门**:发布成功后必须触发知识包确认弹窗(模板 7),不可静默跳过。
78
+
79
+ 触发条件:所有创建型流程均须弹出模板 7。资料含"话术/SOP/障碍应对/标准提问"时,弹窗额外提示"检测到话术素材,建议同步知识包"。
80
+
81
+ 流程:发布成功 → 弹模板 7 → 用户选择 → 确认则 `knowledge-packager` 提炼 → `+sync` → `+bind-scenario` → 回读验收;跳过则记录状态并输出"知识包可到平台后台手动上传"提示。
@@ -0,0 +1,92 @@
1
+ # 微调任务子 SOP
2
+
3
+ > 由 SKILL.md「微调型任务流程」调用。
4
+
5
+ ## 执行流程
6
+
7
+ ### 1. 收集微调输入包
8
+
9
+ 必须尽量收集:
10
+ - 当前提示词
11
+ - 原始对话记录
12
+ - 用户反馈原话
13
+ - 期望表现
14
+ - 场景类型
15
+ - 当前评分结果
16
+ - 音频/转写文本(如涉及语音)
17
+ - 设备/账号/操作路径(如涉及技术)
18
+
19
+ ### 2. 🚨 确认分析对象
20
+
21
+ 在陪练对话中,"AI"和"学员"是两个不同角色。诊断前必须先声明:
22
+ - 本次分析对象是 **AI(客户角色)** 还是 **学员**
23
+ - AI 模拟客户让学员练习的场景中,诊断对象为 AI(客户角色)
24
+
25
+ ### 3. 技术分流
26
+
27
+ 凡涉及以下问题,优先按技术处理,**不直接改提示词**:
28
+ - ASR 识别错误
29
+ - 语音尾字丢失
30
+ - TTS 声音不符
31
+ - 播报未结束就跳评分页
32
+ - 授权不同步
33
+ - 部门同步失败
34
+ - 按钮报错
35
+ - iOS 录音权限
36
+ - 评分等待无提示
37
+
38
+ ### 4. 诊断标签
39
+
40
+ 按严格顺序打标签:
41
+
42
+ ```
43
+ T排障 → O拟真 → P指令执行 → N自然度 → I信息释放/K知识 → E结束/S场景 → L逻辑/F格式 → R评分
44
+ ```
45
+
46
+ | 标签 | 含义 | 判定要点 |
47
+ |------|------|---------|
48
+ | T | 技术/体验 | ASR/TTS/权限/跳转 |
49
+ | O | 角色OOC | 太热情/太攻击/不该说的术语 |
50
+ | P | 指令执行度 | AI 行为与提示词指令不一致 |
51
+ | N | 自然度 | 模板化、万能回应、句式单一 |
52
+ | I | 信息释放 | 开场透露全部症状/底线 |
53
+ | K | 知识/合规 | 产品知识错误、禁用话术 |
54
+ | E | 结束违规 | 提前结束、成交后追问 |
55
+ | S | 场景规则 | 药房/合规/B2B 场景规则 |
56
+ | L | 逻辑违规 | 信任值异常、价格防线 |
57
+ | F | 格式违规 | 括号动作、Markdown、后台痕迹 |
58
+ | R | 评分规则 | 评分项抽象、目标错位 |
59
+ | D | 数据/看板 | 指标口径、数据污染 |
60
+
61
+ **没有标签,不进入修改建议。**
62
+
63
+ ### 5. 匹配资产库
64
+
65
+ 按需选读 `references/cases/` 下对应资产。
66
+
67
+ ### 6. 调度 prompt-optimizer
68
+
69
+ 输出标注版改稿、复测方案、版本记录建议。
70
+
71
+ ---
72
+
73
+ ## 缺失规则
74
+
75
+ | 缺失项 | 处理方式 |
76
+ |--------|---------|
77
+ | 无原始对话 | 只能做结构审查,不断言具体行为偏差 |
78
+ | 无当前提示词 | 只能给优化方向,不输出最终修改版 |
79
+ | 只有"感觉不像" | 追问具体对话片段或期望表现 |
80
+
81
+ ---
82
+
83
+ ## 微调闸门(8 项)
84
+
85
+ 1. 有证据
86
+ 2. 已技术分流
87
+ 3. 已打标签
88
+ 4. 有修改决策
89
+ 5. 有标注改稿
90
+ 6. 有复测方案
91
+ 7. 有版本记录建议
92
+ 8. 微调后「整体设定」节去空白字符 ≤ 3000
@@ -0,0 +1,56 @@
1
+ # MentorAI CLI 已验证命令清单
2
+
3
+ > 标准命令速查。统一 `soke-cli ai-training +...`,不省略 `ai-training`。所有 soke-cli 命令经 Bash 执行必须设 `dangerouslyDisableSandbox: true`。
4
+ > **v2.37:所有命令输出一律 `> /tmp/xxx.json 2>/dev/null` 重定向,禁止 `--pretty` 直出到对话。** Python 从重定向文件提取字段。
5
+
6
+ ## 核心命令
7
+
8
+ ```bash
9
+ # 创建场景(Part1)— 重定向,Python 提取 scenario_id
10
+ soke-cli ai-training +create-scenario --request-file ./part1-create.json > /tmp/part1_create.json 2>/dev/null
11
+
12
+ # 读场景(每次 preview/apply 前先取最新 updated_at;apply 后 --raw 验收)— 重定向
13
+ soke-cli ai-training +get-scenario --scenario-id <id> --raw > /tmp/scenario_get.json 2>/dev/null
14
+
15
+ # 预览/应用(默认 request-file 模式)— 重定向,Python 提取 updated_at
16
+ soke-cli ai-training +preview-scenario-update --scenario-id <id> --request-file ./partX-update.json > /tmp/partX_preview.json 2>/dev/null
17
+ soke-cli ai-training +apply-scenario-update --scenario-id <id> --request-file ./partX-update.json > /tmp/partX_apply.json 2>/dev/null
18
+
19
+ # 排障退回 operations 模式(apply 必传 --idempotency-key,preview 不传;两者都要 --reason)
20
+ soke-cli ai-training +preview-scenario-update --scenario-id <id> --operations-file ./partX-operations.json --base-updated-at <updated_at> --reason "PartX: 说明" > /tmp/partX_preview.json 2>/dev/null
21
+ soke-cli ai-training +apply-scenario-update --scenario-id <id> --operations-file ./partX-operations.json --base-updated-at <updated_at> --idempotency-key "cli-<short>-partX-apply" --reason "PartX: 说明" > /tmp/partX_apply.json 2>/dev/null
22
+ ```
23
+
24
+ ## 知识包 / 发布 / 快照
25
+
26
+ ```bash
27
+ # 知识包同步 + 绑定 — 重定向
28
+ soke-cli ai-training +sync --manifest ./knowledge-package.json --idempotency-key "cli-<package_id>-sync" > /tmp/kb_sync.json 2>/dev/null
29
+ soke-cli ai-training +bind-scenario --scenario-id <id> --version-ids <version_id> --compile-plan > /tmp/kb_bind.json 2>/dev/null
30
+
31
+ # 发布 — 重定向
32
+ soke-cli ai-training +publish-scenario --scenario-id <id> --version 1 --version-description "CLI发布" > /tmp/publish.json 2>/dev/null
33
+
34
+ # 快照查询 / 恢复(排障)— 重定向
35
+ soke-cli ai-training +list-scenario-snapshots --scenario-id <id> --page 1 --page-size 20 > /tmp/snapshots.json 2>/dev/null
36
+ soke-cli ai-training +restore-scenario-snapshot --scenario-id <id> --snapshot-id <snapshot_id> --reason "回滚本次 CLI 更新" > /tmp/restore.json 2>/dev/null
37
+ ```
38
+
39
+ ## 资源库查询(Part2 头像/语音)— 重定向,Python 提取 URL/ID
40
+
41
+ ```bash
42
+ # 头像 — 重定向到 /tmp/avatars.json,Python 提取 url 字段
43
+ soke-cli ai-training +list-role-avatars --lang zh --show-detail > /tmp/avatars.json 2>/dev/null
44
+ # 声音 — 重定向到 /tmp/voices.json,Python 提取 id 字段
45
+ soke-cli ai-training +list-role-voices --lang zh > /tmp/voices.json 2>/dev/null
46
+ ```
47
+
48
+ ## ⚠️ v2.37 禁止事项
49
+
50
+ - **禁止 `--pretty` 直出到对话**:所有命令输出必须重定向到 `/tmp/` 文件
51
+ - **禁止用 apply 验证数据**:apply 是写入操作,验证用 `+get-scenario`。用 apply 回读环节会导致 `add_conversation_step` 重复添加
52
+ - **禁止分多轮 sed 回看 PDF**:pdftotext 提取后一次性 grep+sed+Write 落盘提炼稿
53
+
54
+ ## 各 Part 文件名
55
+
56
+ Part2-5 均生成 `partX-operations.json` + `partX-update.json`;微调 `optimize-operations.json` + `optimize-update.json`;全流程 `state-snapshot.json`(不出现聊天)。
@@ -0,0 +1,112 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ soke-ai-coach-director · 闸门一次性校验器(v2.42)
4
+ Usage:
5
+ python3 scripts/gate_check.py /tmp/scenario_get.json
6
+
7
+ 输入:+get-scenario 重定向后的 JSON 文件(自动处理 {data:{...}} 嵌套)
8
+ 输出:单行结果 —— 全过输出 "GATE PASS",否则 "GATE FAIL" + 逐项失败原因
9
+ 退出码:0 = 通过,1 = 失败
10
+
11
+ 设计目的:消除闸门阶段逐字段拆轮探查(历史实测浪费 ~8 积分)。
12
+ AI 只需跑这一个脚本,禁止再用 Python 逐步看返回结构。
13
+ """
14
+
15
+ import json
16
+ import sys
17
+
18
+
19
+ def unwrap(raw):
20
+ """处理 CLI 返回的可能嵌套:{data:{...}} / {code,data} / 裸对象。"""
21
+ if not isinstance(raw, dict):
22
+ return raw
23
+ d = raw.get("data")
24
+ if isinstance(d, dict):
25
+ return d
26
+ return raw
27
+
28
+
29
+ def check(sc: dict) -> list:
30
+ errs = []
31
+
32
+ # ---------- Step 8 发布闸门(4 项,任一缺失禁止发布) ----------
33
+
34
+ # 1. 封面 = 固定默认图(非空且正确前缀)
35
+ cover = sc.get("scenario_cover") or sc.get("cover")
36
+ if not cover or "roles_avatars" in str(cover) or not str(cover).startswith("http"):
37
+ errs.append(f"[发布1] 封面缺失或非法: {cover!r:.80}")
38
+
39
+ # 2/3. 全部角色 avatar / voice_id 非空
40
+ roles = sc.get("ai_roles") or []
41
+ if not roles:
42
+ errs.append("[发布2] ai_roles 为空")
43
+ for i, r in enumerate(roles):
44
+ rd = r.get("role_data") or r
45
+ av = rd.get("avatar")
46
+ vi = rd.get("voice_id")
47
+ if not av or not str(av).startswith("http"):
48
+ errs.append(f"[发布2] 角色{i}({rd.get('name','?')}) avatar 非法: {av!r:.60}")
49
+ if not vi:
50
+ errs.append(f"[发布3] 角色{i}({rd.get('name','?')}) voice_id 为空")
51
+
52
+ # 4. 无"角色数据异常":OS 存在且足够长
53
+ os_text = sc.get("ai_roles_overall_description") or ""
54
+ if len(os_text) < 500:
55
+ errs.append(f"[发布4] OS 过短({len(os_text)}<500),疑似角色数据异常")
56
+
57
+ # ---------- Step 7 补查 3 项(Part 自检已过的 9 项跳过) ----------
58
+
59
+ # 8. Part 内容完整:name/key_points/tags 非空
60
+ if not sc.get("name"):
61
+ errs.append("[闸门8] 场景名为空")
62
+ if not sc.get("key_points"):
63
+ errs.append("[闸门8] key_points 为空(检查 Part1 是否误写数组)")
64
+ if not (sc.get("tags") and len(sc.get("tags", [])) >= 3):
65
+ errs.append("[闸门8] tags 少于 3 个")
66
+
67
+ # 12. 整体设定 ≤ 3000 字
68
+ if len(os_text) > 3000:
69
+ errs.append(f"[闸门12] OS 超长({len(os_text)}>3000)")
70
+
71
+ # 5. Part3 环节存在(回读 conversation_steps 非空;空则提示 CLI 限制,不阻塞)
72
+ steps = sc.get("conversation_steps") or []
73
+ if not steps:
74
+ print("WARN: conversation_steps 为空——已知 CLI/平台限制,发布后走 Web 后台补录(不阻塞)")
75
+
76
+ # 6. Part4 评分维度存在且权重和 = 100
77
+ cd = ((sc.get("scoring_criteria_config") or {}).get("criteria_data")) or sc.get("criteria_data") or {}
78
+ dims = cd.get("dimensions") or []
79
+ if not dims:
80
+ print("WARN: 评分维度在 get 返回中不可见——以 Part4 自检 + apply 成功为准(不阻塞)")
81
+ else:
82
+ w = sum(d.get("weight", 0) for d in dims)
83
+ if w != 100:
84
+ errs.append(f"[闸门6→发布] 维度权重和={w}≠100")
85
+
86
+ return errs
87
+
88
+
89
+ def main() -> int:
90
+ if len(sys.argv) != 2:
91
+ print("Usage: gate_check.py <scenario_get.json>", file=sys.stderr)
92
+ return 1
93
+ try:
94
+ with open(sys.argv[1], encoding="utf-8") as f:
95
+ raw = json.load(f)
96
+ except Exception as e:
97
+ print(f"GATE FAIL: JSON 读取失败 {e}", file=sys.stderr)
98
+ return 1
99
+
100
+ sc = unwrap(raw)
101
+ errs = check(sc)
102
+ if errs:
103
+ print("GATE FAIL")
104
+ for e in errs:
105
+ print(f" {e}")
106
+ return 1
107
+ print("GATE PASS")
108
+ return 0
109
+
110
+
111
+ if __name__ == "__main__":
112
+ sys.exit(main())