@sokeai/cli 1.0.76 → 1.0.77

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) 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 +6 -2
  48. package/skills/soke-course/SKILL.md +3 -3
  49. package/skills/soke-course/references/course-list-courses.md +49 -84
  50. package/skills/soke-course/references/intent-cases.md +2 -2
  51. package/skills/soke-course/references/sop-full-workflow.md +4 -2
  52. package/skills/soke-course/references/subs/publish/SOP.md +21 -3
  53. package/skills/soke-course/references/subs/query/SOP.md +9 -7
  54. package/skills/soke-course/references/subs/settings/SOP.md +2 -1
  55. package/skills/soke-exam-question-pool/SKILL.md +2 -2
  56. package/skills/soke-task/SKILL.md +32 -10
  57. package/skills/soke-training-demand/SKILL.md +2 -2
  58. package/skills/ai-coach-director/SKILL.md +0 -1563
  59. package/skills/ai-coach-director/coaching/prompt-engineer/parts/part2-roles.md +0 -317
  60. package/skills/ai-coach-director/coaching/prompt-engineer/prompt-engineer.md +0 -244
  61. package/skills/ai-coach-director/platform/interaction.md +0 -315
  62. package/skills/ai-coach-director/platform/sync-engine.md +0 -1101
  63. 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
  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/347/237/245/350/257/206/345/272/223.md +0 -388
  65. 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
  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-p03-first-call-scenario-prompt.md +0 -428
  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//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
  68. 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
  69. 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
  70. 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
  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/2062_/345/202/254/350/217/234/345/256/211/346/212/232_20260701.md +0 -257
  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/2063_/345/267/256/350/257/204/345/233/236/350/256/277_20260701.md +0 -259
  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/345/234/272/346/231/257/346/226/271/346/241/210_20260701.md +0 -452
  74. 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
  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_/351/231/252/347/273/203/346/217/220/347/244/272/350/257/215_v1.md +0 -333
  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_v2_Part1-Part5.md +0 -649
  77. package/skills/ai-coach-director/references/env-check.md +0 -167
  78. package/skills/ai-coach-director/references/platform-api-pitfalls.md +0 -232
  79. package/skills/ai-coach-director/references/role-resource-matching.md +0 -349
  80. package/skills/ai-coach-director/references/verified-cli-cheatsheet.md +0 -203
  81. /package/skills/{ai-coach-director → soke-ai-coach-director}/assets/ERRORS-TEMPLATE.md +0 -0
  82. /package/skills/{ai-coach-director → soke-ai-coach-director}/assets/FEATURE_REQUESTS-TEMPLATE.md +0 -0
  83. /package/skills/{ai-coach-director → soke-ai-coach-director}/assets/LEARNINGS-TEMPLATE.md +0 -0
  84. /package/skills/{ai-coach-director → soke-ai-coach-director}/assets/SKILL-TEMPLATE.md +0 -0
  85. /package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-engineer/parts/part1-basic.md +0 -0
  86. /package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-engineer/parts/part4-scoring.md +0 -0
  87. /package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-engineer/parts/part5-constraints.md +0 -0
  88. /package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/role-profiler/role-profiler.md +0 -0
  89. /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/README.md +0 -0
  90. /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/qclaw.md +0 -0
  91. /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/wukong.md +0 -0
  92. /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/zework.md +0 -0
  93. /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/api-fallback.md +0 -0
  94. /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
  95. /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
  96. /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
  97. /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
  98. /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
  99. /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
  100. /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
  101. /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
  102. /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
  103. /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
  104. /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
  105. /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
  106. /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
  107. /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
  108. /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
  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/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
  110. /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
  111. /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
  112. /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
  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.2_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_/345/216/213/347/274/251/347/211/210_V2.0_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/344/274/230/345/214/226_20260616.md" +0 -0
  116. /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
  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/277KYC/344/277/241/344/273/273/345/200/274/347/246/201/344/273/244_2026-06-09_0932.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/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_v2_20260608.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/277/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_v1.1.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.2.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_V2_/350/257/212/346/226/255/344/272/244/344/273/230_20260609.md" +0 -0
  122. /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
  123. /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
@@ -1,20 +1,20 @@
1
1
  ---
2
2
  name: prompt-optimizer
3
- description: 提示词微调与优化专家。当用户需要分析对话问题、优化提示词、修复AI角色偏差、评分不准、信息泄露、流程跳跃、提前结束、场景规则违规、知识/合规错误时触发。必须基于证据诊断,区分提示词问题与技术问题,按"四段式"输出:一、问题分析;二、优化方案;三、优化后的提示词(全部提示词);四、主要变更说明。优化后的提示词中,修改处用【修改】标注,新增处用【新增】标注。
3
+ description: 提示词微调与优化专家。当用户需要分析对话问题、优化提示词、修复AI角色偏差、评分不准、信息泄露、流程跳跃、提前结束、场景规则违规、知识/合规错误时触发。必须基于证据诊断,区分提示词问题与技术问题,按"四段式"输出:一、问题分析;二、优化方案;三、优化后的提示词(全部提示词);四、主要变更说明。优化后的提示词中,修改处用【修改】标注,新增处用【新增】标注。
4
4
  ---
5
5
 
6
6
  # 提示词微调与优化专家
7
7
 
8
8
  ## 双层分工
9
9
 
10
- 本技能内部两层分工:
10
+ 本技能内部两层分工:
11
11
 
12
12
  | 层 | 职责 | 文件 |
13
13
  |---|---|---|
14
- | **coaching** | 纯内容诊断:接收对话+提示词 → 四段式诊断报告 | 本文件 |
15
- | **platform** | 平台同步:弹窗确认 + JSON 生成(optimize-operations.json)+ CLI 命令 | `../../platform/interaction.md` + `../../platform/sync-engine.md` |
14
+ | **coaching** | 纯内容诊断:接收对话+提示词 → 四段式诊断报告 | 本文件 |
15
+ | **platform** | 平台同步:弹窗确认 + JSON 生成(optimize-operations.json)+ CLI 命令 | `../../platform/interaction.md` + `../../platform/sync-engine.md` |
16
16
 
17
- prompt-optimizer 只管"诊断出什么问题、怎么改"platform 层管"怎么确认、怎么同步到平台"。
17
+ prompt-optimizer 只管"诊断出什么问题、怎么改",platform 层管"怎么确认、怎么同步到平台"。
18
18
 
19
19
  ---
20
20
 
@@ -32,9 +32,9 @@ prompt-optimizer 只管"诊断出什么问题、怎么改",platform 层管"怎
32
32
  6. 技术问题不强行改提示词。
33
33
  7. 修改后必须给复测方案。
34
34
  8. 生成优化后提示词时,所有修改位置必须用【修改】标注,所有新增位置必须用【新增】标注。
35
- 9. 默认输出格式必须采用四段式:一、问题分析;二、优化方案;三、优化后的提示词(全部提示词);四、主要变更说明。
36
- 10. 🚨 诊断前先声明分析对象:陪练场景中"AI"和"学员"是两个不同角色,诊断时必须先明确"本次分析的是 AI(客户角色)还是学员",避免对象混淆导致全盘误诊。
37
- 11. **【新增】整体设定字数控制**:生成/优化后的提示词,`整体设定` 节总字符数(去空白)控制在 3000 以内。阶段专属规则(开场防备、信息核验、顾虑处理等)不堆在整体设定里,而是下沉到 `对话流程设置` 对应环节的 AI 规则中。整体设定只保留跨阶段通用规则:核心输出协议、身份准则、内核运行机制、合规红线、考核与反馈。
35
+ 9. 默认输出格式必须采用四段式:一、问题分析;二、优化方案;三、优化后的提示词(全部提示词);四、主要变更说明。
36
+ 10. 🚨 诊断前先声明分析对象:陪练场景中"AI"和"学员"是两个不同角色,诊断时必须先明确"本次分析的是 AI(客户角色)还是学员",避免对象混淆导致全盘误诊。
37
+ 11. **【新增】整体设定字数控制**:生成/优化后的提示词,`整体设定` 节总字符数(去空白)控制在 3000 以内。阶段专属规则(开场防备、信息核验、顾虑处理等)不堆在整体设定里,而是下沉到 `对话流程设置` 对应环节的 AI 规则中。整体设定只保留跨阶段通用规则:核心输出协议、身份准则、内核运行机制、合规红线、考核与反馈。
38
38
 
39
39
  ## 微调输入包
40
40
 
@@ -94,11 +94,11 @@ prompt-optimizer 只管"诊断出什么问题、怎么改",platform 层管"怎
94
94
 
95
95
  没有标签,不进入修改建议。
96
96
 
97
- 诊断分析顺序:T排障 → O拟真 → P指令执行 → N自然度 → I信息释放/K知识 → E结束/S场景 → L逻辑/F格式 → R评分。P标签位于第3位:先确认角色没崩(O),再查指令执行度(P),避免角色OOC导致P误判。N标签位于第4位:先确认行为指令合规(P),再查表达是否自然(N)。
97
+ 诊断分析顺序:T排障 → O拟真 → P指令执行 → N自然度 → I信息释放/K知识 → E结束/S场景 → L逻辑/F格式 → R评分。P标签位于第3位:先确认角色没崩(O),再查指令执行度(P),避免角色OOC导致P误判。N标签位于第4位:先确认行为指令合规(P),再查表达是否自然(N)。
98
98
 
99
99
  ## 资产调用建议
100
100
 
101
- 默认资产路径:`references/cases/`(本技能内置)
101
+ 默认资产路径:`references/cases/`(本技能内置)
102
102
 
103
103
  必读:
104
104
 
@@ -128,36 +128,36 @@ prompt-optimizer 只管"诊断出什么问题、怎么改",platform 层管"怎
128
128
 
129
129
  ### Step 3:问题诊断
130
130
 
131
- #### 🚨 分析对象确认(先于诊断标签,必做)
131
+ #### 🚨 分析对象确认(先于诊断标签,必做)
132
132
 
133
- 在陪练场景中,对话通常有两个参与者:①AI扮演的客户/角色(如农户张老板)②学员(真实用户)。**诊断时必须先明确分析对象是谁**,否则标注全部错误。
133
+ 在陪练场景中,对话通常有两个参与者:1AI扮演的客户/角色(如农户张老板)2学员(真实用户)。**诊断时必须先明确分析对象是谁**,否则标注全部错误。
134
134
 
135
- 判定规则:
136
- - 若场景为「AI模拟客户,学员练习」:诊断对象为 **AI(客户角色)**,分析 AI 在角色一致性、对话自然度、问题随机性、通关逻辑等方面的表现。学员的应对质量不在本技能分析范围。
137
- - 若场景为「AI辅导学员,学员练习」:诊断对象为 **学员**,分析学员的任务完成度、话术合规性等。
138
- - 若两者均需分析:分别建立诊断区,标注"AI侧"和"学员侧",不得混在同一标签列表中。
135
+ 判定规则:
136
+ - 若场景为「AI模拟客户,学员练习」:诊断对象为 **AI(客户角色)**,分析 AI 在角色一致性、对话自然度、问题随机性、通关逻辑等方面的表现。学员的应对质量不在本技能分析范围。
137
+ - 若场景为「AI辅导学员,学员练习」:诊断对象为 **学员**,分析学员的任务完成度、话术合规性等。
138
+ - 若两者均需分析:分别建立诊断区,标注"AI侧"和"学员侧",不得混在同一标签列表中。
139
139
 
140
- 常见误判案例:
140
+ 常见误判案例:
141
141
  - ❌ 把 AI 客户的"通关话术模板化"诊断为学员回应机械 → 对象错误
142
142
  - ❌ 把学员的"术语使用不当"诊断为 AI 角色OOC → 对象错误
143
- - ✅ 正确做法:先声明"本次诊断对象为 AI(客户角色)",再逐轮标注 AI 行为
143
+ - ✅ 正确做法:先声明"本次诊断对象为 AI(客户角色)",再逐轮标注 AI 行为
144
144
 
145
- 确认分析对象后,进入正式诊断:
145
+ 确认分析对象后,进入正式诊断:
146
146
 
147
147
  若有对话记录,逐轮标注AI行为和诊断标签。
148
148
 
149
- 诊断顺序:T → O → P → N → I → K → E → S → L → F → R
149
+ 诊断顺序:T → O → P → N → I → K → E → S → L → F → R
150
150
 
151
- P标签检查方法(三步法):
152
- 1. 拆提示词:提取所有"行为指令"(遇到X情况→做Y、禁止做Z、必须包含W
153
- 2. 遍历对话:对每一轮学员输入,按提示词推演"预期AI行为"
154
- 3. 对照:实际回复 vs 预期回复,标记P偏差
151
+ P标签检查方法(三步法):
152
+ 1. 拆提示词:提取所有"行为指令"(遇到X情况→做Y、禁止做Z、必须包含W)
153
+ 2. 遍历对话:对每一轮学员输入,按提示词推演"预期AI行为"
154
+ 3. 对照:实际回复 vs 预期回复,标记P偏差
155
155
 
156
- N标签检查方法:
157
- 1. 检查回复结构多样性:连续多轮回复是否结构雷同(如每轮都是"问候+信息+追问"
158
- 2. 检查万能回应频率:"好的""了解了""嗯嗯"等无实质内容的回应是否过度使用
159
- 3. 检查句式丰富度:是否存在长短句交替、反问、犹豫等自然口语变化
160
- 4. 检查过渡自然度:话题切换是否有铺垫,而非生硬跳转
156
+ N标签检查方法:
157
+ 1. 检查回复结构多样性:连续多轮回复是否结构雷同(如每轮都是"问候+信息+追问")
158
+ 2. 检查万能回应频率:"好的""了解了""嗯嗯"等无实质内容的回应是否过度使用
159
+ 3. 检查句式丰富度:是否存在长短句交替、反问、犹豫等自然口语变化
160
+ 4. 检查过渡自然度:话题切换是否有铺垫,而非生硬跳转
161
161
 
162
162
  若无对话记录但有当前提示词和明确反馈,只能做结构审查与规则匹配,不断言具体运行偏差。
163
163
 
@@ -193,24 +193,24 @@ N标签检查方法:
193
193
 
194
194
  如果原提示词极长导致单次回复无法完整承载,应优先保存到文件,并在回复中给出完整文件路径;聊天中可输出关键修改版或说明已保存完整版本。
195
195
 
196
- #### 整体设定字数控制(硬约束)
196
+ #### 整体设定字数控制(硬约束)
197
197
 
198
- 优化后提示词的 `整体设定` 节,去空白字符数必须控制在 **3000 以内**。超过时,必须将阶段专属规则从整体设定移入 `对话流程设置` 对应环节的 AI 规则中。
198
+ 优化后提示词的 `整体设定` 节,去空白字符数必须控制在 **3000 以内**。超过时,必须将阶段专属规则从整体设定移入 `对话流程设置` 对应环节的 AI 规则中。
199
199
 
200
- 整体设定应保留的内容(跨阶段通用):
201
- - 核心输出协议(格式约束、挤牙膏原则、单一动作原则)
200
+ 整体设定应保留的内容(跨阶段通用):
201
+ - 核心输出协议(格式约束、挤牙膏原则、单一动作原则)
202
202
  - 核心身份与行为准则
203
- - 内核运行机制(状态机、双层逻辑、行为风格)
204
- - 合规红线(一票否决项,跨所有环节生效)
203
+ - 内核运行机制(状态机、双层逻辑、行为风格)
204
+ - 合规红线(一票否决项,跨所有环节生效)
205
205
  - 考核与反馈机制
206
206
 
207
- 应下沉到对话环节的内容:
208
- - 开场防备规则 → 环节1(电话开场)AI规则
209
- - 车辆归属/按揭/需求三问/话题引入规则 → 环节2(客户信息确认)AI规则
210
- - 顾虑抛出顺序/回应判定/防死循环规则 → 环节3(消除客户顾虑)AI规则
211
- - AI技能配置 保留精简版,行为细节引用"详见环节X"
207
+ 应下沉到对话环节的内容:
208
+ - 开场防备规则 → 环节1(电话开场)AI规则
209
+ - 车辆归属/按揭/需求三问/话题引入规则 → 环节2(客户信息确认)AI规则
210
+ - 顾虑抛出顺序/回应判定/防死循环规则 → 环节3(消除客户顾虑)AI规则
211
+ - AI技能配置 保留精简版,行为细节引用"详见环节X"
212
212
 
213
- 下沉时的写法:每个环节的 AI 规则直接写在该环节下方,用 `- AI规则:` 承接,以要点列表写出该阶段 AI 的行为树条目,不另起子标题。
213
+ 下沉时的写法:每个环节的 AI 规则直接写在该环节下方,用 `- AI规则:` 承接,以要点列表写出该阶段 AI 的行为树条目,不另起子标题。
214
214
 
215
215
  #### 标注规则
216
216
 
@@ -260,16 +260,16 @@ N标签检查方法:
260
260
  # 一、问题分析
261
261
 
262
262
  ## 1. 输入情况
263
- - 已收到:
264
- - 缺失:
265
- - 处理边界:
263
+ - 已收到:
264
+ - 缺失:
265
+ - 处理边界:
266
266
 
267
267
  ## 2. 问题诊断
268
- - 问题1
269
- - 问题2
268
+ - 问题1:
269
+ - 问题2:
270
270
 
271
271
  ## 3. 诊断标签
272
- - F/I/O/L/E/S/R/K/T/D
272
+ - F/I/O/L/E/S/R/K/T/D:
273
273
 
274
274
  # 二、优化方案
275
275
 
@@ -281,7 +281,7 @@ N标签检查方法:
281
281
 
282
282
  ## 3. 复测建议
283
283
 
284
- # 三、优化后的提示词(全部提示词)
284
+ # 三、优化后的提示词(全部提示词)
285
285
 
286
286
  在这里输出完整优化版提示词。
287
287
  修改处必须带【修改】。
@@ -290,11 +290,11 @@ N标签检查方法:
290
290
 
291
291
  # 四、主要变更说明
292
292
 
293
- 简要总结本次做了哪些改动(3-5条),方便快速了解变更范围:
293
+ 简要总结本次做了哪些改动(3-5条),方便快速了解变更范围:
294
294
 
295
- 1. 变更点一:简要说明
296
- 2. 变更点二:简要说明
297
- 3. 变更点三:简要说明
295
+ 1. 变更点一:简要说明
296
+ 2. 变更点二:简要说明
297
+ 3. 变更点三:简要说明
298
298
  ...
299
299
  ```
300
300
 
@@ -315,7 +315,7 @@ N标签检查方法:
315
315
 
316
316
  当用户明确要求输出"修改后的提示词""完整优化版提示词""可直接复制的提示词"时:
317
317
 
318
- 1. 必须按四段式输出:一、问题分析;二、优化方案;三、优化后的提示词(全部提示词);四、主要变更说明。
318
+ 1. 必须按四段式输出:一、问题分析;二、优化方案;三、优化后的提示词(全部提示词);四、主要变更说明。
319
319
  2. 第三部分必须是完整提示词,不得只给片段;除非用户明确要求"只输出替换片段"。
320
320
  3. 所有修改点必须在第三部分正文中带【修改】。
321
321
  4. 所有新增点必须在第三部分正文中带【新增】。
@@ -324,9 +324,28 @@ N标签检查方法:
324
324
  7. 若用户要求"不要标注",才可输出无标注干净版;否则默认输出标注版。
325
325
  8. 如同时需要干净版,可先输出标注版,再说明可另存/另出无标注版。
326
326
 
327
+ ### Step 6.5: 改动清单二次确认 🔴 v2.28 新增
328
+
329
+ 四段式诊断报告中的「四、主要变更说明」逐条列出后,**不直接进入 Step 7 同步**。
330
+
331
+ 诊断报告展示完成后**立即**按 `../../platform/interaction.md` 的「模板 9:微调改动清单确认」弹窗(弹窗即时弹出,禁止先输出文字请确认、等用户输入'确认'后再弹窗)。
332
+
333
+ **规则:**
334
+ 1. 将「主要变更说明」的 3-5 条改动逐条展示
335
+ 2. 每条改动标注影响范围(Part2/Part3/Part4/Part5 中哪个 Part)
336
+ 3. 弹窗确认后,按用户选择的优化范围生成对应 operations JSON
337
+ 4. 仅同步用户确认的 Part,不接触用户未确认的 Part
338
+
339
+ **选项:**
340
+ - **A 确认,全部同步(推荐)** → 生成对应 Part 的 operations JSON → 进入 Step 7
341
+ - **B 仅同步部分改动** → 追问确认哪些 Part 同步 → 进入 Step 7
342
+ - **C 调整优化方案** → 返回 Step 4-6 重新诊断
343
+
344
+ > 🔴 **v2.28 硬约束**:未通过模板 9 改动清单确认,禁止生成 operations JSON 或执行任何 apply 操作。
345
+
327
346
  ### Step 7: 弹窗确认 + 平台同步
328
347
 
329
- 四段式报告输出后,不自行决定是否同步。按 `../../platform/interaction.md` 的「模板 6」弹窗确认微调诊断(弹窗策略见 interaction.md 附录 A)。
348
+ Step 6.5 改动清单确认通过后,按 `../../platform/interaction.md` 的「模板 6」弹窗确认最终执行(弹窗策略见 interaction.md 附录 A)。
330
349
 
331
350
  > 需要复制或核对场景同步命令时,统一参考 `../../references/verified-cli-cheatsheet.md`,不要从零手写顶层 `soke-cli +...`。
332
351
 
@@ -340,15 +359,15 @@ soke-cli ai-training +apply-scenario-update --scenario-id <scenario_id> --base-u
340
359
 
341
360
  `<scenario_id>` 取当前任务上下文中已存在的场景 ID;`<updated_at>` 通过 `soke-cli ai-training +get-scenario` 自动获取,不要求用户手工回传。
342
361
 
343
- **选「调整诊断」** → 读取用户修改需求,调整诊断报告和优化方案,重新输出四段式报告,再次弹窗。
362
+ **选「调整诊断」** → 读取用户修改需求,调整诊断报告和优化方案,重新输出四段式报告,再次从 Step 6.5 开始。
344
363
 
345
- **选「保持原样」** → 输出“已保留原场景,未应用本次微调。”,终止。
364
+ **选「保持原样」** → 输出"已保留原场景,未应用本次微调。",终止。
346
365
 
347
366
  ---
348
367
 
349
368
  ## 用户不可见内容清单
350
369
 
351
- 以下内容在本技能流程中发生,但**不进入聊天**:
370
+ 以下内容在本技能流程中发生,但**不进入聊天**:
352
371
 
353
372
  | 内容 | 说明 |
354
373
  |---|---|
@@ -359,4 +378,4 @@ soke-cli ai-training +apply-scenario-update --scenario-id <scenario_id> --base-u
359
378
 
360
379
  ## 标杆参考
361
380
 
362
- 分析问题或生成优化建议时,可根据场景类型引用 `references/cases/` 中的既有标杆案例,但不得用标杆覆盖用户当前业务目标。涵盖:高对抗博弈型、餐饮服务型、流程SOP演练型、金融电话约访型、中医辨证关联销售型等。
381
+ 分析问题或生成优化建议时,可根据场景类型引用 `references/cases/` 中的既有标杆案例,但不得用标杆覆盖用户当前业务目标。涵盖:高对抗博弈型、餐饮服务型、流程SOP演练型、金融电话约访型、中医辨证关联销售型等。
@@ -12,7 +12,7 @@
12
12
 
13
13
  ### 选项确认
14
14
 
15
- 使用 `AskUserQuestion` 工具弹窗确认:
15
+ **Part 内容展示完成 → 立即调用 `AskUserQuestion` 弹窗**,弹窗即确认环节,无需用户先输入"确认"等文字再弹窗。使用 `AskUserQuestion` 工具弹窗确认:
16
16
 
17
17
  ```
18
18
  AskUserQuestion(
@@ -26,8 +26,7 @@ AskUserQuestion(
26
26
  | Part1 | 场景确认 | 确认,同步到平台(推荐) | 内容需要微调 | — |
27
27
  | Part2 | 角色确认 | 确认,同步角色(推荐) | 调整角色设定 | 重设角色设定 |
28
28
  | Part3 | 流程设置确认 | 确认,同步流程设置(推荐) | 调整流程设置 | 重设流程设置 |
29
- | Part4 | 评分确认 | 确认,同步评分(推荐) | 调整评分标准 | 重设评分标准 |
30
- | Part5 | 教练设置确认 | 确认,完成创建(推荐) | 调整教练设置 | 重设教练设置 |
29
+ | Part4+5 | 评分+教练配置确认 | 确认,完成写入(推荐) | 调整评分或配置 | |
31
30
 
32
31
  WebChat 环境额外支持 `render_ui` QuestionForm jsonl。
33
32
 
@@ -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 确定、头像和声音在 Part2 与角色一起写入,不需要进入本模块。
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
- - URL 包含 `default.png`
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
- **优先级 0:默认固定封面回填**
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
  - 无“角色数据异常”
@@ -27,7 +27,7 @@ soke-cli ai-training +sync \
27
27
  --idempotency-key cli-rcb-loan-products-20260610-001
28
28
  ```
29
29
 
30
- `soke-cli ai-training +sync` 会完成:
30
+ `+sync` 会完成:
31
31
 
32
32
  1. 读取 manifest 和 entries。
33
33
  2. 校验 Markdown 文件、source_refs、entry_id/source_id 唯一性。
@@ -42,7 +42,7 @@ soke-cli ai-training +sync \
42
42
  {
43
43
  "package": {
44
44
  "package_id": "rcb-loan-products",
45
- "name": "某地方银行贷款产品知识包",
45
+ "name": "农商银行贷款产品知识包",
46
46
  "domain": "banking_loan",
47
47
  "tags": ["贷款产品"]
48
48
  },
@@ -52,13 +52,39 @@ soke-cli ai-training +sync \
52
52
  "path": "./sources/manual.md",
53
53
  "display_name": "贷款产品手册",
54
54
  "origin_type": "pdf",
55
- "origin_filename": "贷款产品手册.pdf"
55
+ "origin_filename": "loan-manual.pdf"
56
56
  }
57
57
  ],
58
58
  "entries_path": "./knowledge-package.entries.json"
59
59
  }
60
60
  ```
61
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
+
62
88
  ## 查询和管理
63
89
 
64
90
  ```bash
@@ -91,3 +117,7 @@ soke-cli ai-training +get-plan --scenario-id scenario_micro_loan_sales --format
91
117
  - `object_key` 必须使用 upload-token 返回值。
92
118
  - 不要把客户原始资料、token、app_secret 或 OSS 签名写入仓库。
93
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
+ - 本文件负责:字段参考、文件命名、一致性扫描。
@@ -25,7 +25,7 @@
25
25
  ### Step1 创建
26
26
  - 历史误区:只传基础字段即可创建
27
27
  - 实证结论:缺少 `scenario_cover` 会直接失败
28
- - 当前规范:先上传封面,再写入 `step1-create.json`
28
+ - 当前规范:直接写入固定默认封面到 `step1-create.json`
29
29
 
30
30
  ## 3. Part2 角色结构升级
31
31