@sokeai/cli 1.0.76 → 1.0.77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/package.json +1 -1
- package/scripts/build-binaries.sh +1 -1
- package/scripts/e2e-test.sh +75 -3
- package/skills/SKILL.md +18 -1
- package/skills/soke-ai-coach-director/CHANGELOG.md +203 -0
- package/skills/soke-ai-coach-director/README.md +123 -0
- package/skills/soke-ai-coach-director/SKILL.md +221 -0
- package/skills/soke-ai-coach-director/coaching/knowledge-packager/knowledge-packager.md +91 -0
- package/skills/soke-ai-coach-director/coaching/prompt-engineer/parts/part2-roles.md +97 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-engineer/parts/part3-flow.md +3 -3
- package/skills/soke-ai-coach-director/coaching/prompt-engineer/prompt-engineer.md +76 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-optimizer/prompt-optimizer.md +77 -58
- package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/workbuddy.md +2 -3
- package/skills/soke-ai-coach-director/platform/interaction.md +103 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/platform/publish-gate.md +3 -3
- package/skills/{ai-coach-director → soke-ai-coach-director}/platform/resource-finalizer.md +10 -35
- package/skills/{ai-coach-director → soke-ai-coach-director}/platform/soke-ai-training/soke-ai-training.md +33 -3
- package/skills/soke-ai-coach-director/platform/sync-engine.md +39 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/references/change-log-partwise-refactor.md +1 -1
- package/skills/soke-ai-coach-director/references/env-check.md +146 -0
- package/skills/soke-ai-coach-director/references/exec-common.md +126 -0
- package/skills/soke-ai-coach-director/references/exec-handbook.md +621 -0
- package/skills/soke-ai-coach-director/references/exec-part1.md +86 -0
- package/skills/soke-ai-coach-director/references/exec-part2.md +145 -0
- package/skills/soke-ai-coach-director/references/exec-part3.md +91 -0
- package/skills/soke-ai-coach-director/references/exec-part4.md +187 -0
- package/skills/soke-ai-coach-director/references/gate-check-matrix.md +46 -0
- package/skills/soke-ai-coach-director/references/micro-tune-labels.md +30 -0
- package/skills/soke-ai-coach-director/references/platform-api-pitfalls.md +49 -0
- package/skills/soke-ai-coach-director/references/role-resource-matching.md +45 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/references/self-improvement-examples.md +2 -0
- package/skills/soke-ai-coach-director/references/self-learning-engine.md +489 -0
- package/skills/soke-ai-coach-director/references/subs/part1/SOP.md +17 -0
- package/skills/soke-ai-coach-director/references/subs/part2/SOP.md +34 -0
- package/skills/soke-ai-coach-director/references/subs/part3/SOP.md +27 -0
- package/skills/soke-ai-coach-director/references/subs/part4/SOP.md +31 -0
- package/skills/soke-ai-coach-director/references/subs/publish/SOP.md +81 -0
- package/skills/soke-ai-coach-director/references/subs/tune/SOP.md +92 -0
- package/skills/soke-ai-coach-director/references/verified-cli-cheatsheet.md +56 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/scripts/activator.sh +0 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/scripts/error-detector.sh +0 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/scripts/extract-skill.sh +0 -0
- package/skills/soke-ai-coach-director/scripts/gate_check.py +112 -0
- package/skills/soke-ai-coach-director/scripts/validate_operations.py +403 -0
- package/skills/soke-certificate/SKILL.md +717 -0
- package/skills/soke-course/README.md +6 -2
- package/skills/soke-course/SKILL.md +3 -3
- package/skills/soke-course/references/course-list-courses.md +49 -84
- package/skills/soke-course/references/intent-cases.md +2 -2
- package/skills/soke-course/references/sop-full-workflow.md +4 -2
- package/skills/soke-course/references/subs/publish/SOP.md +21 -3
- package/skills/soke-course/references/subs/query/SOP.md +9 -7
- package/skills/soke-course/references/subs/settings/SOP.md +2 -1
- package/skills/soke-exam-question-pool/SKILL.md +2 -2
- package/skills/soke-task/SKILL.md +32 -10
- package/skills/soke-training-demand/SKILL.md +2 -2
- package/skills/ai-coach-director/SKILL.md +0 -1563
- package/skills/ai-coach-director/coaching/prompt-engineer/parts/part2-roles.md +0 -317
- package/skills/ai-coach-director/coaching/prompt-engineer/prompt-engineer.md +0 -244
- package/skills/ai-coach-director/platform/interaction.md +0 -315
- package/skills/ai-coach-director/platform/sync-engine.md +0 -1101
- package/skills/ai-coach-director/references/cases/create//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/224/265/350/257/235/347/272/246/350/256/277//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/224/265/350/257/235/347/272/246/350/256/277_/346/240/207/345/207/206/347/237/245/350/257/206/345/272/223.md +0 -199
- package/skills/ai-coach-director/references/cases/create//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/224/265/350/257/235/347/272/246/350/256/277//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/224/265/350/257/235/347/272/246/350/256/277/347/237/245/350/257/206/345/272/223.md +0 -388
- package/skills/ai-coach-director/references/cases/create//346/237/220/345/233/275/351/231/205/346/243/200/346/265/213/346/234/272/346/236/204/tuv-knowledge-base.md +0 -125
- package/skills/ai-coach-director/references/cases/create//346/237/220/345/233/275/351/231/205/346/243/200/346/265/213/346/234/272/346/236/204/tuv-p03-first-call-scenario-prompt.md +0 -428
- package/skills/ai-coach-director/references/cases/create//346/237/220/345/233/275/351/231/205/346/243/200/346/265/213/346/234/272/346/236/204//346/237/220/345/233/275/351/231/205/346/243/200/346/265/213/346/234/272/346/236/204P03/351/231/252/347/273/203/346/211/247/350/241/214/346/226/271/346/241/210_20260610.md +0 -225
- package/skills/ai-coach-director/references/cases/create//346/237/220/345/234/260/346/226/271/351/223/266/350/241/214//346/237/220/345/234/260/346/226/271/351/223/266/350/241/214/345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/224/265/350/257/235/347/272/246/350/256/277AI/351/231/252/347/273/203/346/265/213/350/257/225/347/224/250/344/276/213/345/220/210/351/233/206.md +0 -525
- package/skills/ai-coach-director/references/cases/create//347/211/251/346/265/201/350/241/214/344/270/232//347/211/251/346/265/201/350/241/214/344/270/232-/345/210/235/346/254/241/346/213/234/350/256/277/351/246/231/347/262/276/351/246/231/346/226/231/345/256/242/346/210/267.md +0 -146
- package/skills/ai-coach-director/references/cases/create//351/205/222/345/272/227/351/244/220/351/245/256//351/205/222/345/272/227/351/244/220/351/245/256AI/351/231/252/347/273/203_/346/240/207/346/235/2061_/346/226/260/345/223/201/346/216/250/351/224/200_20260701.md +0 -230
- package/skills/ai-coach-director/references/cases/create//351/205/222/345/272/227/351/244/220/351/245/256//351/205/222/345/272/227/351/244/220/351/245/256AI/351/231/252/347/273/203_/346/240/207/346/235/2062_/345/202/254/350/217/234/345/256/211/346/212/232_20260701.md +0 -257
- package/skills/ai-coach-director/references/cases/create//351/205/222/345/272/227/351/244/220/351/245/256//351/205/222/345/272/227/351/244/220/351/245/256AI/351/231/252/347/273/203_/346/240/207/346/235/2063_/345/267/256/350/257/204/345/233/236/350/256/277_20260701.md +0 -259
- package/skills/ai-coach-director/references/cases/create//351/205/222/345/272/227/351/244/220/351/245/256//351/205/222/345/272/227/351/244/220/351/245/256AI/351/231/252/347/273/203/345/234/272/346/231/257/346/226/271/346/241/210_20260701.md +0 -452
- package/skills/ai-coach-director/references/cases/create//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206_/345/256/242/346/210/267/347/241/256/350/256/244/345/217/215/351/246/210/350/241/250.md +0 -133
- package/skills/ai-coach-director/references/cases/create//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206_/351/231/252/347/273/203/346/217/220/347/244/272/350/257/215_v1.md +0 -333
- package/skills/ai-coach-director/references/cases/create//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206_/351/231/252/347/273/203/346/217/220/347/244/272/350/257/215_v2_Part1-Part5.md +0 -649
- package/skills/ai-coach-director/references/env-check.md +0 -167
- package/skills/ai-coach-director/references/platform-api-pitfalls.md +0 -232
- package/skills/ai-coach-director/references/role-resource-matching.md +0 -349
- package/skills/ai-coach-director/references/verified-cli-cheatsheet.md +0 -203
- /package/skills/{ai-coach-director → soke-ai-coach-director}/assets/ERRORS-TEMPLATE.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/assets/FEATURE_REQUESTS-TEMPLATE.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/assets/LEARNINGS-TEMPLATE.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/assets/SKILL-TEMPLATE.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-engineer/parts/part1-basic.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-engineer/parts/part4-scoring.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-engineer/parts/part5-constraints.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/role-profiler/role-profiler.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/README.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/qclaw.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/wukong.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/zework.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/api-fallback.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/345/256/242/346/210/267/350/247/222/350/211/262/346/250/241/346/235/277/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203Bad Case/346/240/267/346/234/254/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/345/210/233/345/273/272/351/227/256/351/242/230/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/345/234/272/346/231/257/345/210/206/347/261/273/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/345/256/242/346/210/267/346/235/220/346/226/231/346/270/205/345/215/225/344/270/216/350/256/277/350/260/210/351/242/230/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/345/276/256/350/260/203/351/227/256/351/242/230/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/346/212/200/346/234/257/350/276/271/347/225/214/344/270/216/346/216/222/351/232/234/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/346/217/220/347/244/272/350/257/215/346/250/241/345/235/227/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/346/225/260/346/215/256/346/214/207/346/240/207/344/270/216/347/234/213/346/235/277/345/217/243/345/276/204/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/346/265/213/350/257/225/347/224/250/344/276/213/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/350/257/204/345/210/206/346/240/207/345/207/206/347/273/204/344/273/266/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/351/241/271/347/233/256/346/241/210/344/276/213/345/244/215/347/233/230/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/241/276/345/256/242/350/247/222/350/211/262/346/250/241/346/213/237_GoodCase_BadCase_20260701.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/create//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/224/265/350/257/235/347/272/246/350/256/277//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/345/256/242/346/210/267/346/235/220/346/226/231/346/261/207/346/200/273_2026-05-19_1341.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/create//346/226/260/350/203/275/346/272/220/350/275/246/344/270/273/350/264/267//346/226/260/350/203/275/346/272/220/350/275/246/344/270/273/350/264/267/347/237/245/350/257/206/345/272/223/347/224/237/346/210/220_20260615.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/create//346/226/260/350/203/275/346/272/220/350/275/246/344/270/273/350/264/267//346/226/260/350/203/275/346/272/220/350/275/246/344/270/273/350/264/267/351/231/252/347/273/203/346/217/220/347/244/272/350/257/215/347/224/237/346/210/220_20260615.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/create//346/237/220/345/233/275/351/231/205/346/243/200/346/265/213/346/234/272/346/236/204//346/237/220/345/233/275/351/231/205/346/243/200/346/265/213/346/234/272/346/236/204/351/231/252/347/273/203/346/211/247/350/241/214/346/226/271/346/241/210/344/272/244/344/273/230/350/256/260/345/275/225_20260610.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/create//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206_/346/217/220/347/244/272/350/257/215/346/220/255/345/273/272_20260622.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/347/263/273/345/210/227//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_V1.1_20260616.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/347/263/273/345/210/227//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_V1.2_20260616.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/347/263/273/345/210/227//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/346/217/220/347/244/272/350/257/215_/345/216/213/347/274/251/347/211/210_V2.0_20260616.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/347/263/273/345/210/227//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/346/217/220/347/244/272/350/257/215/344/274/230/345/214/226_20260616.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277AI/351/231/252/347/273/203/347/263/273/347/273/237_/346/265/213/350/257/225/345/217/215/351/246/210/346/261/207/346/200/273_2026-06-01.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277KYC/344/277/241/344/273/273/345/200/274/347/246/201/344/273/244_2026-06-09_0932.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277KYC/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_v2_20260608.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_v1.1.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_v1.2.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/346/217/220/347/244/272/350/257/215/344/274/230/345/214/226_V2_/350/257/212/346/226/255/344/272/244/344/273/230_20260609.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases//345/233/233/345/244/247/345/234/272/346/231/257_GoodCase_BadCase_20260701.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases//346/241/210/344/276/213/345/272/223/350/241/245/345/205/205_2026-06-24.md" +0 -0
package/README.md
CHANGED
|
@@ -278,20 +278,20 @@ SOKE_APP_CONFIG=app.pre.yaml go run main.go
|
|
|
278
278
|
|
|
279
279
|
#### 1️⃣ 接口封装为 CLI 命令
|
|
280
280
|
|
|
281
|
-
**步骤 1: 在
|
|
281
|
+
**步骤 1: 在 operations 目录下定义接口元数据**
|
|
282
282
|
|
|
283
283
|
```bash
|
|
284
284
|
# 创建新模块目录
|
|
285
|
-
mkdir -p
|
|
285
|
+
mkdir -p operations/your-module
|
|
286
286
|
|
|
287
287
|
# 创建命令定义文件
|
|
288
|
-
touch
|
|
288
|
+
touch operations/your-module/list_items.go
|
|
289
289
|
```
|
|
290
290
|
|
|
291
291
|
**示例:定义一个查询列表的命令**
|
|
292
292
|
|
|
293
293
|
```go
|
|
294
|
-
//
|
|
294
|
+
// operations/your-module/list_items.go
|
|
295
295
|
package yourmodule
|
|
296
296
|
|
|
297
297
|
import "soke-cli/internal/client"
|
|
@@ -332,7 +332,7 @@ func ListItemsShortcut() client.Shortcut {
|
|
|
332
332
|
**步骤 2: 注册命令到模块**
|
|
333
333
|
|
|
334
334
|
```go
|
|
335
|
-
//
|
|
335
|
+
// operations/your-module/registry.go
|
|
336
336
|
package yourmodule
|
|
337
337
|
|
|
338
338
|
import "soke-cli/internal/client"
|
|
@@ -354,7 +354,7 @@ package yourmodule
|
|
|
354
354
|
|
|
355
355
|
import (
|
|
356
356
|
"soke-cli/internal/client"
|
|
357
|
-
yourmodule "soke-cli/
|
|
357
|
+
yourmodule "soke-cli/operations/your-module"
|
|
358
358
|
"github.com/spf13/cobra"
|
|
359
359
|
)
|
|
360
360
|
|
|
@@ -698,7 +698,7 @@ soke-cli/
|
|
|
698
698
|
│ ├── client/ # API 客户端封装
|
|
699
699
|
│ ├── core/ # 配置管理
|
|
700
700
|
│ └── output/ # 输出格式化
|
|
701
|
-
├──
|
|
701
|
+
├── operations/ # 业务模块快捷命令元数据定义
|
|
702
702
|
│ └── your-module/ # 各模块的 API 路径、参数、默认值等
|
|
703
703
|
├── skills/ # AI Agent Skills 定义
|
|
704
704
|
│ ├── README.md # Skills 使用说明
|
package/package.json
CHANGED
|
@@ -28,7 +28,7 @@ CONFIG_BASE64=$(base64 < "${CONFIG_FILE}" | tr -d '\n')
|
|
|
28
28
|
echo -e "${YELLOW}使用配置文件: ${CONFIG_FILE}${NC}"
|
|
29
29
|
|
|
30
30
|
# 编译参数
|
|
31
|
-
LDFLAGS="-s -w -X
|
|
31
|
+
LDFLAGS="-s -w -X soke-cli/internal/version.Version=${VERSION} -X soke-cli/internal/core.EmbeddedConfigBase64=${CONFIG_BASE64}"
|
|
32
32
|
|
|
33
33
|
# 创建输出目录
|
|
34
34
|
BIN_DIR="bin"
|
package/scripts/e2e-test.sh
CHANGED
|
@@ -123,6 +123,16 @@ should_test_module() {
|
|
|
123
123
|
echo -e "${BLUE}开始测试...${NC}"
|
|
124
124
|
echo ""
|
|
125
125
|
|
|
126
|
+
# ==================== AI Training 模块 ====================
|
|
127
|
+
if should_test_module "ai-training"; then
|
|
128
|
+
echo -e "${YELLOW}[AI Training 模块]${NC}"
|
|
129
|
+
test_command "ai-training" "+list-packages" "--page 1 --page-size 10" "获取AI教练知识包列表"
|
|
130
|
+
test_command "ai-training" "+list-scenarios" "--page 1 --page-size 10" "获取AI陪练场景列表"
|
|
131
|
+
test_command "ai-training" "+list-role-avatars" "" "获取AI陪练角色头像列表"
|
|
132
|
+
test_command "ai-training" "+list-role-voices" "" "获取AI陪练角色音色列表"
|
|
133
|
+
echo ""
|
|
134
|
+
fi
|
|
135
|
+
|
|
126
136
|
# ==================== Contact 模块 ====================
|
|
127
137
|
if should_test_module "contact"; then
|
|
128
138
|
echo -e "${YELLOW}[Contact 模块]${NC}"
|
|
@@ -131,6 +141,7 @@ if should_test_module "contact"; then
|
|
|
131
141
|
test_command "contact" "+list-department-users" "--dept-id 1" "获取部门用户列表"
|
|
132
142
|
test_command "contact" "+list-lectors" "" "获取讲师列表"
|
|
133
143
|
test_command "contact" "+list-groups" "--start-time 1672502400000 --end-time 1704038400000" "获取用户组列表"
|
|
144
|
+
test_command "contact" "+list-positions" "--page 1 --page-size 10" "获取职位列表"
|
|
134
145
|
# 搜索接口暂未授权,跳过
|
|
135
146
|
# test_command "contact" "+search-user" "--dept-user-name 测试" "搜索用户"
|
|
136
147
|
# test_command "contact" "+search-dept" "--dept-name 测试" "搜索部门"
|
|
@@ -140,6 +151,7 @@ fi
|
|
|
140
151
|
# ==================== Learning Profile 模块 ====================
|
|
141
152
|
if should_test_module "learning-profile"; then
|
|
142
153
|
echo -e "${YELLOW}[Learning Profile 模块]${NC}"
|
|
154
|
+
test_command "learning-profile" "+list" "--help" "检查学习档案列表命令"
|
|
143
155
|
# 学习档案接口暂未授权,跳过
|
|
144
156
|
# test_command "learning-profile" "+list" "--offset 0 --page-size 10" "获取学习档案列表"
|
|
145
157
|
# test_command "learning-profile" "+list" "--is-new 1 --page-size 5" "获取新员工学习档案"
|
|
@@ -149,8 +161,10 @@ fi
|
|
|
149
161
|
# ==================== Course 模块 ====================
|
|
150
162
|
if should_test_module "course"; then
|
|
151
163
|
echo -e "${YELLOW}[Course 模块]${NC}"
|
|
152
|
-
test_command "course" "+list-courses" "--
|
|
164
|
+
test_command "course" "+list-courses" "--page 1 --page-size 10" "获取课程列表"
|
|
153
165
|
test_command "course" "+list-categories" "" "获取课程分类"
|
|
166
|
+
test_command "course" "+category-tree" "--parent-id 1" "获取课程分类树"
|
|
167
|
+
test_command "course" "+search" "--category-id 1" "按分类搜索课程"
|
|
154
168
|
test_command "course" "+list-lessons" "--course-id F4025496-6566-4ACD-8CD4-06E3D55BBA79" "获取课程章节"
|
|
155
169
|
echo ""
|
|
156
170
|
fi
|
|
@@ -166,6 +180,19 @@ if should_test_module "exam"; then
|
|
|
166
180
|
echo ""
|
|
167
181
|
fi
|
|
168
182
|
|
|
183
|
+
# ==================== Exam Question Pool 模块 ====================
|
|
184
|
+
if should_test_module "exam-question-pool"; then
|
|
185
|
+
echo -e "${YELLOW}[Exam Question Pool 模块]${NC}"
|
|
186
|
+
test_command "exam-question-pool" "+list" "--page 1 --page-size 10" "获取可练习题库列表"
|
|
187
|
+
test_command "exam-question-pool" "+get" "--help" "检查题库详情命令"
|
|
188
|
+
test_command "exam-question-pool" "+questions" "--help" "检查题库题目命令"
|
|
189
|
+
test_command "exam-question-pool" "+finish" "--help" "检查题库交卷命令"
|
|
190
|
+
# 详情/题目/交卷接口需要有效题库 UUID,避免在默认 e2e 中硬编码环境数据
|
|
191
|
+
# test_command "exam-question-pool" "+get" "--pool-id <pool_uuid>" "获取可练习题库详情"
|
|
192
|
+
# test_command "exam-question-pool" "+questions" "--pool-id <pool_uuid>" "获取可练习题库题目"
|
|
193
|
+
echo ""
|
|
194
|
+
fi
|
|
195
|
+
|
|
169
196
|
# ==================== Exam Write 模块 (写操作) ====================
|
|
170
197
|
# 创建题库接口服务端故障,暂时跳过写操作测试
|
|
171
198
|
if false && should_test_module "exam-write"; then
|
|
@@ -223,8 +250,8 @@ fi
|
|
|
223
250
|
# ==================== Certificate 模块 ====================
|
|
224
251
|
if should_test_module "certificate"; then
|
|
225
252
|
echo -e "${YELLOW}[Certificate 模块]${NC}"
|
|
226
|
-
test_command "certificate" "+list
|
|
227
|
-
test_command "certificate" "
|
|
253
|
+
test_command "certificate" "+list" "--page 1 --limit 10" "获取证书列表"
|
|
254
|
+
test_command "certificate" "++category" "" "获取证书分类"
|
|
228
255
|
echo ""
|
|
229
256
|
fi
|
|
230
257
|
|
|
@@ -258,9 +285,54 @@ if should_test_module "learning-map"; then
|
|
|
258
285
|
echo ""
|
|
259
286
|
fi
|
|
260
287
|
|
|
288
|
+
# ==================== Photo Gallery 模块 ====================
|
|
289
|
+
if should_test_module "photo-gallery"; then
|
|
290
|
+
echo -e "${YELLOW}[Photo Gallery 模块]${NC}"
|
|
291
|
+
test_command "photo-gallery" "+list-categories" "--page 1 --limit 100" "获取图片库分类列表"
|
|
292
|
+
test_command "photo-gallery" "+list" "--page 1 --limit 20" "获取图片库列表"
|
|
293
|
+
test_command "photo-gallery" "+get" "--help" "检查图片详情命令"
|
|
294
|
+
test_command "photo-gallery" "+create" "--help" "检查图片上传命令"
|
|
295
|
+
test_command "photo-gallery" "+batch-delete" "--help" "检查图片批量删除命令"
|
|
296
|
+
# 上传/删除为写操作,默认 e2e 不执行
|
|
297
|
+
# test_command "photo-gallery" "+get" "--uuid <photo_uuid>" "获取图片详情"
|
|
298
|
+
echo ""
|
|
299
|
+
fi
|
|
300
|
+
|
|
301
|
+
# ==================== Task 模块 ====================
|
|
302
|
+
if should_test_module "task"; then
|
|
303
|
+
echo -e "${YELLOW}[Task 模块]${NC}"
|
|
304
|
+
test_command "task" "+create" "--help" "检查创建异步任务命令"
|
|
305
|
+
test_command "task" "+get" "--help" "检查查询异步任务命令"
|
|
306
|
+
# +create 会创建异步任务,+get 需要任务 ID;默认 e2e 不执行真实写入
|
|
307
|
+
# test_command "task" "+get" "--id <task_id>" "查询异步任务"
|
|
308
|
+
echo ""
|
|
309
|
+
fi
|
|
310
|
+
|
|
311
|
+
# ==================== Training Demand 模块 ====================
|
|
312
|
+
if should_test_module "training-demand"; then
|
|
313
|
+
echo -e "${YELLOW}[Training Demand 模块]${NC}"
|
|
314
|
+
test_command "training-demand" "+list-categories" "" "获取培训需求分类列表"
|
|
315
|
+
test_command "training-demand" "+list" "--page 1 --limit 10 --create-time-order desc" "获取培训需求列表"
|
|
316
|
+
test_command "training-demand" "+create" "--help" "检查提交培训需求命令"
|
|
317
|
+
test_command "training-demand" "+vote" "--help" "检查培训需求投票命令"
|
|
318
|
+
# 创建/投票为写操作,默认 e2e 不执行
|
|
319
|
+
# test_command "training-demand" "+create" "--title 测试需求 --category-uuid <category_uuid> --level 0" "提交培训需求"
|
|
320
|
+
# test_command "training-demand" "+vote" "--uuid <demand_uuid>" "投票培训需求"
|
|
321
|
+
echo ""
|
|
322
|
+
fi
|
|
323
|
+
|
|
324
|
+
# ==================== User 模块 ====================
|
|
325
|
+
if should_test_module "user"; then
|
|
326
|
+
echo -e "${YELLOW}[User 模块]${NC}"
|
|
327
|
+
test_command "user" "+setting" "--name system_setting --cloud-storage 0" "获取用户系统设置"
|
|
328
|
+
echo ""
|
|
329
|
+
fi
|
|
330
|
+
|
|
261
331
|
# ==================== News 模块 ====================
|
|
262
332
|
if should_test_module "news"; then
|
|
263
333
|
echo -e "${YELLOW}[News 模块]${NC}"
|
|
334
|
+
test_command "news" "+list-news" "--help" "检查新闻列表命令"
|
|
335
|
+
test_command "news" "+list-categories" "--help" "检查新闻分类命令"
|
|
264
336
|
# 新闻接口暂未上线,跳过
|
|
265
337
|
# test_command "news" "+list-news" "" "获取新闻列表"
|
|
266
338
|
# test_command "news" "+list-categories" "" "获取新闻分类"
|
package/skills/SKILL.md
CHANGED
|
@@ -89,10 +89,12 @@ metadata:
|
|
|
89
89
|
|
|
90
90
|
**路径**: [soke-task/SKILL.md](./soke-task/SKILL.md)
|
|
91
91
|
|
|
92
|
-
|
|
92
|
+
独立异步任务模块,支持创建和查询导出任务。目前用于学习地图和课程学员统计导出。
|
|
93
93
|
|
|
94
94
|
**核心能力**:
|
|
95
95
|
- 创建异步导出任务(`soke-cli task +create`)
|
|
96
|
+
- 使用 `--target-id` 统一传入学习地图或课程 UUID,通过 `--module learningMapUser|courseUser` 区分任务类型
|
|
97
|
+
- 支持按部门 ID(`--departments`)和用户 ID(`--users`)筛选导出范围
|
|
96
98
|
- 支持选择部门导出类型:单列导出 `aloneDept`(默认)或部门多列导出 `manyDept`
|
|
97
99
|
- 查询任务状态与导出文件地址(`soke-cli task +get`)
|
|
98
100
|
|
|
@@ -144,6 +146,19 @@ metadata:
|
|
|
144
146
|
|
|
145
147
|
---
|
|
146
148
|
|
|
149
|
+
### soke-certificate — 证书管理
|
|
150
|
+
|
|
151
|
+
**路径**: [soke-certificate/SKILL.md](./soke-certificate/SKILL.md)
|
|
152
|
+
|
|
153
|
+
证书管理查询,支持查询证书列表、证书分类和证书获得人员。
|
|
154
|
+
|
|
155
|
+
**核心能力**:
|
|
156
|
+
- 查询证书列表(`certificate +list`,对接 `/skills/certificate/list`)
|
|
157
|
+
- 按状态筛选已发布/未发布/关闭/删除证书
|
|
158
|
+
- 查询证书分类和证书获得人员
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
147
162
|
### soke-material — 素材库管理
|
|
148
163
|
|
|
149
164
|
**路径**: [soke-material/SKILL.md](./soke-material/SKILL.md)
|
|
@@ -210,6 +225,7 @@ soke-cli安装指南.md (所有 skill 的前置条件)
|
|
|
210
225
|
├── soke-exam-question-pool
|
|
211
226
|
├── soke-assign
|
|
212
227
|
├── soke-learning-profile
|
|
228
|
+
├── soke-certificate
|
|
213
229
|
├── soke-material
|
|
214
230
|
├── soke-lesson
|
|
215
231
|
├── soke-learning-map ──→ soke-assign
|
|
@@ -236,5 +252,6 @@ soke-cli安装指南.md (所有 skill 的前置条件)
|
|
|
236
252
|
| 将课程/考试/地图指派给部门或用户 | [soke-assign](./soke-assign/SKILL.md) |
|
|
237
253
|
| 创建/发布/查询学习地图 | [soke-learning-map](./soke-learning-map/SKILL.md) |
|
|
238
254
|
| 查询学员学习档案/统计数据 | [soke-learning-profile](./soke-learning-profile/SKILL.md) |
|
|
255
|
+
| 查询证书列表/证书分类/证书获得人员 | [soke-certificate](./soke-certificate/SKILL.md) |
|
|
239
256
|
| 上传/查询/删除图片库图片 | [soke-photo-gallery](./soke-photo-gallery/SKILL.md) |
|
|
240
257
|
| 提交培训需求/需求投票/查询需求分类 | [soke-training-demand](./soke-training-demand/SKILL.md) |
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# 变更日志
|
|
2
|
+
|
|
3
|
+
## v2.43.1 — 2026-08-19
|
|
4
|
+
|
|
5
|
+
### exec-part5.md 并入 exec-part4.md(文件删除)
|
|
6
|
+
|
|
7
|
+
**背景**:v2.43 已将 Part5 固定配置合并进 Part4 弹窗+同批 apply,exec-part5.md 仅剩向后兼容用途,创建型任务不再加载。用户要求彻底合并去掉该文件。
|
|
8
|
+
|
|
9
|
+
**变更**:
|
|
10
|
+
1. 删除 `references/exec-part5.md`——独有规则(6 项固定值禁按场景调整 / 字段名以实际发布版本为准 / 不同步 closing_dialogue 等已在前序 Part 同步的字段)已并入 exec-part4.md 注意事项区
|
|
11
|
+
2. 删除 `references/subs/part5/`(SOP 自检清单已内联 exec-part4 断言区)
|
|
12
|
+
3. 更新引用:SKILL.md(版本行/规则 34/加载清单/禁止加载清单)、interaction.md(模板 4 改为 Part4+5 合并确认,原模板 5 删除)、sync-engine.md(文件产出表+一致性扫描合并为 Part4+5 行)、adapters/workbuddy.md(按钮表合并)、README.md
|
|
13
|
+
4. 加载清单不变(仍 ≤9 次读取)——exec-part5.md 本就不在加载路径上,本次是清理死文件
|
|
14
|
+
|
|
15
|
+
**收益**:技能包文件数 -2,消除"发现 exec-part5.md 会不会要读"的歧义;对积分无影响(该文件已不在加载路径)。
|
|
16
|
+
|
|
17
|
+
## v2.43.0 — 2026-08-19
|
|
18
|
+
|
|
19
|
+
### 交付后不写日志 + 剩余 5 项优化(88.37 → 目标 ~73-77)
|
|
20
|
+
|
|
21
|
+
**背景**:v2.42 实测 88.37(场景内容量更大:6 环节+803字OS+7知识条目,工具化收益真实)。用户要求:分发版同步平台后不写日志 + 继续压积分。
|
|
22
|
+
|
|
23
|
+
**日志规则(规则 31,分发版核心诉求)**:
|
|
24
|
+
- 创建型任务在平台同步、发布、知识包绑定成功后直接输出完成摘要并结束
|
|
25
|
+
- 禁止自动编辑 SKILL.md、CHANGELOG.md、README.md、项目工作日志或新增学习条目
|
|
26
|
+
- 仅用户明确要求"更新技能/记录经验/维护日志"时才执行维护写入
|
|
27
|
+
- `state-snapshot.json` 仍保留断点恢复状态(每个 Part apply 后写),不作为运行日志
|
|
28
|
+
|
|
29
|
+
**5 项优化(规则 32-35)**:
|
|
30
|
+
1. **get 回读零上下文(规则 32)**:/tmp/scenario_get.json 只允许 gate_check.py 读取,AI 禁止 Read/tail 引入上下文;闸门结果只看脚本单行输出(省 ~3-4,Step6-8 实测 7.40 偏高,脚本校验后又人工核对是双份)
|
|
31
|
+
2. **知识包条目预生成(规则 33)**:Step 0.5 写提炼稿时同步产出 /tmp/kb-entries.json,Step 10 只剩 sync+bind(省 ~2-3,Step10 实测 13.07 里拆条是二次推导)
|
|
32
|
+
3. **Part4+5 合并应用(规则 34)**:Part5 固定配置不再单独弹窗+apply,并入 Part4 弹窗和同批 operations(省 1 弹窗+1 apply ≈ 2-3)
|
|
33
|
+
4. **材料 sed 限流(规则 35)**:sed 抓段后接 `| head -c 6000`,防关键词密集段一次抓几万字(省 ~1-2)
|
|
34
|
+
5. **交付后不写日志(规则 31)**:见上
|
|
35
|
+
|
|
36
|
+
**成本结构结论**(88.37 实测):
|
|
37
|
+
- 内容生成 48.90(55.3%)是**不可压地板**——角色画像/环节/评分就是陪练质量本身
|
|
38
|
+
- 可压空间只有执行浪费 ~11-15 分;再往下只能砍内容(角色 3→2、环节 6→5)或砍知识包,属产品决策非执行优化
|
|
39
|
+
- 积分目标从 ≤60 修正为 **≤75**(诚实反映内容生成成本)
|
|
40
|
+
|
|
41
|
+
**文件变更**:
|
|
42
|
+
- 更新:SKILL.md(规则 31-35、Step 0.5/5/6-8/10 描述、加载清单 Part4+5 合并行)
|
|
43
|
+
- 更新:exec-part4.md(并入 Part5 固定配置 + 合并弹窗引导语)
|
|
44
|
+
- exec-part5.md 保留(向后兼容,但创建型任务不再加载)→ **v2.43.1 已删除并彻底并入 exec-part4.md**
|
|
45
|
+
|
|
46
|
+
## v2.42.0 — 2026-08-19
|
|
47
|
+
|
|
48
|
+
### 工具化优化(79.64 → 目标 ~62)
|
|
49
|
+
|
|
50
|
+
**背景**:v2.41.1 实测 79.64 积分(较 142.19 大幅下降,加载清单生效),但离 60 目标还差 ~19.6 分。超支点全是"规则已有但没执行":
|
|
51
|
+
1. 闸门阶段 8 轮 Python 逐步探查 get-scenario 返回结构(~8 分,最大头)
|
|
52
|
+
2. 材料分 4 轮 sed 逐段读手册(~4.5 分)
|
|
53
|
+
3. 读取禁止加载文件 3 个(~3.5 分,其中 part2-roles.md 是被迫——exec-part2 引用 A1-A7 却没内联结构)
|
|
54
|
+
4. apply 后额外校验(~3.6 分)
|
|
55
|
+
|
|
56
|
+
**根因**:规则是声明性的,AI 执行时因"不知道返回结构"只能边看边猜拆轮探查。
|
|
57
|
+
|
|
58
|
+
**4 项工具化修复(规则 → 现成工具)**:
|
|
59
|
+
1. **闸门工具化(规则 27)**:新增 `scripts/gate_check.py`——一次跑完 Step 7+8 全部校验(4 项发布闸门 + 3 项补查),自动解包 {data:{...}} 嵌套,Part3 steps 空值告警不阻塞,Part4 权重校验。输出单行 GATE PASS/FAIL。已双路径测试通过。**禁止再用 Python 逐步探查返回结构**(省 ~8 分)
|
|
60
|
+
2. **材料 sed 单命令(规则 28)**:提炼稿只允许一个 sed 命令用多模式一次抓完全部关键段落,禁止分轮读(省 ~4.5 分)
|
|
61
|
+
3. **OS 结构内联(规则 29)**:A1-A7 OS 写作结构从 part2-roles.md 内联到 exec-part2.md,消除被迫读取(省 ~1.5 分)
|
|
62
|
+
4. **apply 后零校验(规则 30)**:apply/publish/sync/bind 成功后只看 tail -3 状态行,禁止任何额外校验,验证统一收敛到闸门 gate_check.py(省 ~3.6 分)
|
|
63
|
+
|
|
64
|
+
**预期**:79.64 - 8 - 4.5 - 1.5 - 3.6 ≈ 62 积分(接近 60 目标)
|
|
65
|
+
|
|
66
|
+
**文件变更**:
|
|
67
|
+
- 新增:`scripts/gate_check.py`(闸门一次性校验器,双路径测试通过)
|
|
68
|
+
- 更新:`SKILL.md` 版本 v2.42.0 + 规则 27-30 + 加载清单 Step 6-8 行
|
|
69
|
+
- 更新:`references/exec-part2.md` 内联 A1-A7 OS 写作结构
|
|
70
|
+
|
|
71
|
+
## v2.41.1 — 2026-08-18
|
|
72
|
+
|
|
73
|
+
### Bug 修复(用户反馈 3 个问题)
|
|
74
|
+
|
|
75
|
+
**问题 1:弹窗仍显示完整内容**
|
|
76
|
+
- 根因:`interaction.md` 仍保留 v2.37 规则(question 字段承载完整内容),与 SKILL.md v2.41 规则(摘要化展示)冲突
|
|
77
|
+
- 修复:重写 interaction.md 核心规则 5 + v2.41 弹窗规则 + question 字段模板 + AskUserQuestion 调用示例 + 模板 1-5 的 question 字段,全部改为 ≤2 行引导语
|
|
78
|
+
- 同步修复 SKILL.md 前台可见行和输出格式行
|
|
79
|
+
|
|
80
|
+
**问题 2:创建完成后为什么要写入 gkill(state-snapshot.json)**
|
|
81
|
+
- 回答:state-snapshot.json 是**断点续传**机制——记录 scenario_id / current_part / applied 标志 / confirmed_data。如果中途中断(网络断/会话超时),下次可以从断点恢复,不用从头创建。这不是浪费,是必要的容错机制。但 v2.41 已将 file_reads 计数器加入其中。
|
|
82
|
+
|
|
83
|
+
**问题 3:优化后比优化前消耗更多(142.19 vs 93.19)**
|
|
84
|
+
- 根因分析:
|
|
85
|
+
1. **技能文件过度加载(~27 次 Read)**:规则要求 ≤8 次,实际读了 27 次(exec-part1-5 + part1-5 框架 + 3 个子 SOP + cheatsheet + sync-engine + interaction + publish-gate + gate-matrix + 场景分类库 + soke-ai-training)。这是最大浪费源——"求稳求全"而非"按需加载"
|
|
86
|
+
2. **CLI 命令 help 探测(~6 次)**:规则明确禁止为查格式跑 --help,实际跑了 6 次
|
|
87
|
+
3. **知识包 sync 重试 1 次**:--output 参数不存在导致失败重跑
|
|
88
|
+
- 根本原因:v2.41 的规则是**声明性**的——说了"≤8 次"但没有强制拦截机制。AI 在执行时"求稳求全",把所有可能用到的文件都预读了
|
|
89
|
+
- 修复方向:需要从"声明规则"转向"结构性约束"——在 SKILL.md 中加入**加载顺序清单**(精确到每个 Step 读哪个文件),让 AI 按清单执行而非自行判断
|
|
90
|
+
|
|
91
|
+
## v2.41.0 — 2026-08-18
|
|
92
|
+
|
|
93
|
+
### 深度结构优化(目标 60 积分)
|
|
94
|
+
|
|
95
|
+
**背景**:v2.40 后实测 94 积分,用户要求控制在 60 左右。分析 94 积分构成:
|
|
96
|
+
- Part1-5 生成 35 (37%) / 技能加载 15 (16%) / CLI 15 (16%) / 回读排障 13 (14%) / 材料 10 (11%) / 弹窗 6 (6%)
|
|
97
|
+
- 可避免 ~14 分:Part2 重试 5 + 无关 PDF 4 + 积分排查 5
|
|
98
|
+
|
|
99
|
+
**5 项结构性优化**:
|
|
100
|
+
1. **exec-handbook 按 Part 拆分(规则 22)**:26KB 单文件 → 5 个 ~5KB Part 文件 + 4KB common 文件。每个 Part 只加载对应文件,总加载量 26KB → ~9KB(-65%)
|
|
101
|
+
2. **Part 展示摘要化(规则 23)**:聊天正文只展示关键字段摘要,完整 JSON 直接 Write 落盘 /tmp/。中文 token 密度降低 ~60%
|
|
102
|
+
3. **材料预过滤(规则 24)**:pdftotext 前先看文件名/标题,无关材料直接跳过(省 ~4 分)
|
|
103
|
+
4. **apply --reason 内联(规则 25)**:apply 必须带 --reason 参数,格式内联 CLI 速查表(省 Part2 重试 ~5 分)
|
|
104
|
+
5. **CLI 合并调用(规则 26)**:Part2 头像+语音列表合并为 1 次 Bash 调用(省 1 次独立调用)
|
|
105
|
+
|
|
106
|
+
**预期效果**:
|
|
107
|
+
- 技能加载 15 → 7(-8):exec-handbook 拆分省 8KB token
|
|
108
|
+
- Part1-5 生成 35 → 28(-7):摘要化展示省中文 token
|
|
109
|
+
- CLI 15 → 11(-4)+ 回读 13 → 8(-5):合并调用 + --reason 防重试
|
|
110
|
+
- 材料 10 → 6(-4):预过滤省无关 PDF
|
|
111
|
+
- 总计:94 - 8 - 7 - 9 - 4 = 66 积分(接近 60 目标)
|
|
112
|
+
|
|
113
|
+
**文件变更**:
|
|
114
|
+
- 新增:`references/exec-common.md` / `exec-part1.md` / `exec-part2.md` / `exec-part3.md` / `exec-part4.md` / `exec-part5.md`
|
|
115
|
+
- 保留:`references/exec-handbook.md`(向后兼容,微调型任务仍可引用)
|
|
116
|
+
- 更新:`SKILL.md` 版本 v2.40 → v2.41,规则 22-26,CLI 速查表,Step 0.5/5 描述
|
|
117
|
+
|
|
118
|
+
## v2.40.0 — 2026-08-18
|
|
119
|
+
|
|
120
|
+
### 结构性优化(积分增长根因修复)
|
|
121
|
+
|
|
122
|
+
**问题**:v2.39 优化后积分从 126 增至 147(+21),原因:
|
|
123
|
+
1. 分析阶段自身消耗 ~10 积分(读 20+ 文件 + 改 5 文件)
|
|
124
|
+
2. 文件膨胀反噬 ~6 积分(SKILL +2 规则、矩阵 +列、SOP +表)
|
|
125
|
+
3. 规则无强制机制 ~3 积分(规则 17/18 是声明,无计数器)
|
|
126
|
+
4. 三大浪费未触及 ~2 积分(CLI 探索/标杆查找/Part3 调查)
|
|
127
|
+
|
|
128
|
+
**修复**:
|
|
129
|
+
- **规则 17-18 精简**:从 ~400 字缩减为 2 行指针引用,详细说明留在 `gate-check-matrix.md`
|
|
130
|
+
- **规则 19 CLI 命令内联**:高频命令格式直接写入 SKILL.md「CLI 速查」表,禁止为查格式而 Read cheatsheet 文件(省 5 次文件读取)
|
|
131
|
+
- **规则 20 禁止标杆查找**:创建型任务不搜索不加载标杆案例(省 2 次操作)
|
|
132
|
+
- **规则 21 Part3 回读限制**:apply 后只做 1 次布尔断言,禁止多次 get 调查(省 3 次操作)
|
|
133
|
+
- **文件读取计数器**:state-snapshot.json 记录 `file_reads`,超 8 次触发警告(声明→强制)
|
|
134
|
+
|
|
135
|
+
**预期效果**:消除 18 次可避免操作中的 10 次(CLI 探索 5 + 标杆 2 + Part3 调查 3),预估 147 → ~125 积分。剩余 ~45 积分差距需后续版本通过管线合并(Part2 头像/语音列表合并为 1 次调用)等结构性优化解决。
|
|
136
|
+
|
|
137
|
+
## v2.39.0 — 2026-08-18
|
|
138
|
+
|
|
139
|
+
### 优化(积分分析驱动)
|
|
140
|
+
- **闸门精简(Part 自检通过后跳过重叠项)**:分析发现 Step 7 质量闸门 12 项中 9 项与 Part1-5 自检清单完全重叠(闸门1↔Part1自检、闸门3/4/9↔Part2自检、闸门5↔Part3自检、闸门6/10↔Part4自检、闸门7↔Part5自检)。Part 自检全部通过后,闸门仅需补查 3 项(测试用例/整体字数/展示完整度),批量校验脚本从 16 个断言缩减为 7 个。
|
|
141
|
+
- **技能文件按需加载一次复用**:SKILL.md / exec-handbook.md / 各 Part SOP.md / gate-check-matrix.md 在管线首次加载后全程复用,禁止后续 Part 生成时重复 Read。全流程技能文件读取控制在 ≤8 次。
|
|
142
|
+
- **积分目标 ≤80 可达性确认**:基于升舱场景实测(126 积分),识别 3 大浪费源(Part3 apply 验证+回滚 28 积分、闸门重复 get-scenario 16 积分、技能文件重复读 14 积分),通过 v2.39 两条新规则可节省 ~62 积分,预期降至 ~64 积分。
|
|
143
|
+
|
|
144
|
+
### 问题回答
|
|
145
|
+
- **Q: Part 已检验没有问题,是否不需要再检验?** → A: 是。Part 自检通过后,Step 7 闸门中与之重叠的 9 项自动视为通过,不再重复检查。仅补查 3 项非 Part 自检覆盖的内容。
|
|
146
|
+
- **Q: 质量检验和 Part 是否有冲突?** → A: 无冲突,但存在冗余。Part 自检是字段级校验(执行期),闸门是发布前汇总校验。两者检查内容 75% 重叠(9/12),v2.39 通过精简规则消除冗余。
|
|
147
|
+
|
|
148
|
+
## v2.30.0 — 2026-08-17
|
|
149
|
+
|
|
150
|
+
### 优化
|
|
151
|
+
- **Part 展示完成 → 立即弹窗确认**:移除「先输出文字请确认 → 用户输入'确认' → 再弹出确认窗」的中间文字闸门。Part 内容在对话中完整展示后立即弹出确认窗(render_ui / AskUserQuestion),弹窗即确认环节,用户直接通过弹窗选项作答,无需先回复"确认"
|
|
152
|
+
- **SKILL.md / interaction.md / prompt-engineer.md / prompt-optimizer.md / exec-handbook.md / workbuddy 适配器 / part2 SOP 同步更新**:各 Part 弹窗步骤与核心规则统一补充「展示检查通过 → 立即弹窗」时序约束;正文文字确认格式仅保留给无弹窗环境的降级场景(悟空/QClaw/Zework/纯文本)
|
|
153
|
+
|
|
154
|
+
## v2.29.0 — 2026-08-17
|
|
155
|
+
|
|
156
|
+
### 优化
|
|
157
|
+
- **登录自动化**:Step 0 检测到未登录时,AI 自动后台执行 `soke-cli auth login`(OAuth 设备流),自动打开浏览器并输出授权链接,前台一句话引导用户扫码,授权完成后自动重检并继续管线;不再要求用户手动运行命令
|
|
158
|
+
- **env-check.md 重写第 3 步**:移除「无法自动化、提示用户手动执行」的旧约定,改为「后台拉起 → 提取授权链接 → 引导扫码 → 授权完成重检」四步自动流程;补充授权链接带 `cli_redirect_uri` 回调参数不可截断的注意项
|
|
159
|
+
- **字段名对齐实测输出**:登录判定统一为 `config show` 的「用户凭证」,企业绑定统一为「corpid」(原 implementation_corp_id 字段实际不存在)
|
|
160
|
+
- **故障速查表更新**:登录时浏览器未打开 / 授权链接无法访问的修复方式对齐自动执行流程
|
|
161
|
+
|
|
162
|
+
### 触发方式
|
|
163
|
+
- 创建型 / 微调型 / 同步型任务 Step 0 检测到 `用户凭证` 为空时自动触发,无需用户干预
|
|
164
|
+
|
|
165
|
+
## v2.24.2 — 2026-08-07
|
|
166
|
+
|
|
167
|
+
### 重构
|
|
168
|
+
- **SKILL.md 瘦身**:608 → 262 → 289 行(-57%),保留 Step 0-10 流程骨架,细节委托 exec-handbook.md
|
|
169
|
+
- **sync-engine.md 精简**:1154 → 294 行(-74%),从「执行手册+字段参考」双重身份精简为纯「字段参考手册」
|
|
170
|
+
- **exec-handbook.md 扩充**:521 → 588 行,新增「JSON 字段类型硬规则」和「状态快照与缓存规则」两章
|
|
171
|
+
|
|
172
|
+
### 策略统一
|
|
173
|
+
- Part2 同步策略全局收口为「整包 `replace_ai_roles` 优先,失败降级逐个」
|
|
174
|
+
- 清理 5 个文件中的旧策略残留(platform-api-pitfalls / sync-engine / interaction / prompt-engineer / subs/part2/SOP)
|
|
175
|
+
|
|
176
|
+
### 结构清理
|
|
177
|
+
- 删除 3 个僵尸目录:`coaching/role-generator`、`knowledge-architect`、`script-architect`
|
|
178
|
+
- 删除 5 个 `api_reference.md` 副本、10 个 example 文件、残留空目录
|
|
179
|
+
- `coaching/` 精简为 4 个有效技能
|
|
180
|
+
|
|
181
|
+
### 新增
|
|
182
|
+
- SKILL.md 新增「参考规则」表,收录 8 个 references 文件
|
|
183
|
+
- SKILL.md 新增「闸门编号与确认模板映射」表(G1-G5 ↔ 模板 1-6)
|
|
184
|
+
- `references/exec-handbook.md` 新增 2 章节
|
|
185
|
+
- `scripts/validate_operations.py`(396 行,operations 校验工具)
|
|
186
|
+
- `references/exec-handbook.md` 新增「平台头像库 URL 对照表」
|
|
187
|
+
|
|
188
|
+
### 交付准备
|
|
189
|
+
- 清除回归测试产物(part2-5 operations.json / state-snapshot.json / step1-create.json / kb/ 测试数据)
|
|
190
|
+
- 新增 README.md(入口说明 + 依赖清单 + 快速上手)
|
|
191
|
+
- 新增 CHANGELOG.md
|
|
192
|
+
|
|
193
|
+
## v2.24.1 — 2026-08-06
|
|
194
|
+
|
|
195
|
+
- P0+P1 重构:部署缺失文件(exec-handbook.md / validate_operations.py)
|
|
196
|
+
- Part2 同步策略冲突修复
|
|
197
|
+
- 僵尸目录清理
|
|
198
|
+
- SKILL.md 瘦身
|
|
199
|
+
- sync-engine.md 关键段并入 exec-handbook.md
|
|
200
|
+
|
|
201
|
+
## v2.24.0 — 2026-08-04
|
|
202
|
+
|
|
203
|
+
- 初始版本,从历史版本整合重构
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# soke-ai-coach-director
|
|
2
|
+
|
|
3
|
+
> 授客 AI 陪练场景创建与微调技能包 · v2.43.1
|
|
4
|
+
|
|
5
|
+
## 这是什么
|
|
6
|
+
|
|
7
|
+
面向授客 AI 平台的陪练场景全流程技能包,覆盖从客户材料到场景上线全链路:
|
|
8
|
+
|
|
9
|
+
- **创建型**:PDF/Word/Excel 等非结构化材料 → 提炼 → Part1-5 五段式生成 → 平台同步 → 发布
|
|
10
|
+
- **微调型**:已有陪练提示词 → 诊断(F/I/O/L/E/S/R/K/T/D 十标签)→ 优化改稿 → 复测方案
|
|
11
|
+
- **技术排障**:ASR/TTS/权限/跳转等平台问题分流处理
|
|
12
|
+
|
|
13
|
+
适用对象:AI 陪练运营人员、场景设计师、技术对接人员。
|
|
14
|
+
|
|
15
|
+
## 环境依赖
|
|
16
|
+
|
|
17
|
+
| 依赖 | 最低版本 | 用途 |
|
|
18
|
+
|------|----------|------|
|
|
19
|
+
| Node.js | v22+ | 运行时 |
|
|
20
|
+
| Python 3 | 3.10+ | 脚本执行(validate_operations.py 等) |
|
|
21
|
+
| soke-cli | 1.0.76+ | 平台 CLI(场景创建/同步/发布) |
|
|
22
|
+
| pdftotext | 系统自带 | PDF 材料文本提取 |
|
|
23
|
+
|
|
24
|
+
### soke-cli 安装与登录
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# 安装(如平台已提供安装包,按平台指引安装)
|
|
28
|
+
soke-cli --version # 确认安装成功
|
|
29
|
+
|
|
30
|
+
# 登录(必须人工执行,无法自动化)
|
|
31
|
+
soke-cli auth login
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
> ⚠️ `auth login` 需要用户在浏览器中手动授权,这是平台安全设计,不可跳过。详见 `references/env-check.md`。
|
|
35
|
+
|
|
36
|
+
## 快速上手
|
|
37
|
+
|
|
38
|
+
### 创建一个新陪练
|
|
39
|
+
|
|
40
|
+
1. **准备材料**:客户提供的 PDF/Word/Excel/URL 等非结构化材料
|
|
41
|
+
2. **发起请求**:在 OpenClaw 对话中说「帮我搭建一个 [行业] [场景] AI 陪练」
|
|
42
|
+
3. **跟随流程**:技能包会自动执行 Step 0-10 管线,你只需在确认闸门做决策
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
Step 0 平台就绪检测 🔇 后台
|
|
46
|
+
Step 0.5 材料格式分流 🔇 后台
|
|
47
|
+
Step 1 材料完整性检查 📺 仅缺口
|
|
48
|
+
Step 2 场景类型判定 📺 前台确认
|
|
49
|
+
Step 3 链路需求判定 📺 前台判定
|
|
50
|
+
Step 4 7项清单确认 📺 仅 ⚠️ 项
|
|
51
|
+
Step 5 Part1-3 逐段生成 📺 摘要+弹窗确认(Part4+5 合并一个弹窗,v2.43)
|
|
52
|
+
Step 6 平台同步验证 🔇 后台(get 结果仅 gate_check.py 读取)
|
|
53
|
+
Step 7 质量闸门(精简) 🔇 后台(gate_check.py 单行输出 PASS/FAIL)
|
|
54
|
+
Step 8 发布闸门(资源) 🔇 后台(同一脚本内含资源校验)
|
|
55
|
+
Step 9 场景发布 🔇 后台
|
|
56
|
+
Step 10 知识包绑定 📺 弹窗询问(条目用预生成 kb-entries.json)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 微调一个已有陪练
|
|
60
|
+
|
|
61
|
+
1. **准备材料**:当前提示词原文 + 对话样本 + 反馈
|
|
62
|
+
2. **发起请求**:「帮我微调 [陪练名称]」
|
|
63
|
+
3. **诊断输出**:自动匹配标签 → 优化改稿 → 复测方案
|
|
64
|
+
|
|
65
|
+
## 目录结构
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
soke-ai-coach-director/
|
|
69
|
+
├── SKILL.md # 技能入口(调度表+管线总览)
|
|
70
|
+
├── README.md # 本文件
|
|
71
|
+
├── CHANGELOG.md # 变更日志
|
|
72
|
+
├── assets/ # 模板文件
|
|
73
|
+
├── coaching/ # 子技能
|
|
74
|
+
│ ├── knowledge-packager/ # 材料提炼
|
|
75
|
+
│ ├── prompt-engineer/ # Part1-5 生成
|
|
76
|
+
│ ├── prompt-optimizer/ # 微调诊断
|
|
77
|
+
│ └── role-profiler/ # 按需角色画像
|
|
78
|
+
├── platform/ # 平台层
|
|
79
|
+
│ ├── sync-engine.md # 字段参考手册
|
|
80
|
+
│ ├── interaction.md # 弹窗交互规则
|
|
81
|
+
│ ├── api-fallback.md # REST API 降级
|
|
82
|
+
│ ├── resource-finalizer.md # 资源回填
|
|
83
|
+
│ ├── publish-gate.md # 发布闸门
|
|
84
|
+
│ ├── adapters/ # 跨平台适配器
|
|
85
|
+
│ └── soke-ai-training/ # 知识包同步
|
|
86
|
+
├── references/ # 参考规则
|
|
87
|
+
│ ├── exec-handbook.md # 唯一执行事实源
|
|
88
|
+
│ ├── env-check.md # 环境检测协议
|
|
89
|
+
│ ├── verified-cli-cheatsheet.md # CLI 速查
|
|
90
|
+
│ ├── role-resource-matching.md # 资源匹配规则
|
|
91
|
+
│ ├── platform-api-pitfalls.md # 平台 API 陷阱
|
|
92
|
+
│ ├── gate-check-matrix.md # 闸门矩阵
|
|
93
|
+
│ ├── micro-tune-labels.md # 微调标签
|
|
94
|
+
│ ├── self-learning-engine.md # 自主学习
|
|
95
|
+
│ ├── cases/ # 案例库
|
|
96
|
+
│ └── subs/ # 分段 SOP
|
|
97
|
+
└── scripts/ # 工具脚本
|
|
98
|
+
├── validate_operations.py
|
|
99
|
+
├── extract-skill.sh
|
|
100
|
+
├── error-detector.sh
|
|
101
|
+
└── activator.sh
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## 关键规则速查
|
|
105
|
+
|
|
106
|
+
- **创建型管线锁**:Step 0→10 严格串行,禁止跳步
|
|
107
|
+
- **Part2 同步策略**:整包 `replace_ai_roles` 优先,失败降级逐个
|
|
108
|
+
- **JSON 硬规则**:string 字段禁写数组;number 不加引号;boolean 不加引号;null 写 null 不写 ""
|
|
109
|
+
- **头像库**:前缀 `https://newsokeeditorcdn.soke.cn/public/ai/roles_avatars/`
|
|
110
|
+
- **Part5 固定配置**:6 项写死值,禁止按场景调整(v2.43.1 起规则并入 exec-part4.md,exec-part5.md 已删除)
|
|
111
|
+
- **积分优化(v2.43.1)**:交付后不写日志 / get 回读零上下文(gate_check.py 专读)/ 知识包条目预生成 / Part4+5 合并应用 / 加载顺序清单 / 材料预过滤+限流
|
|
112
|
+
- **交付边界**:平台同步+发布+知识包绑定完成后直接结束,不写技能日志(仅用户明确要求维护时才写)
|
|
113
|
+
|
|
114
|
+
> 完整执行规则见 `references/exec-partN.md`(按 Part 加载)+ `references/exec-common.md`(通用约束)。
|
|
115
|
+
|
|
116
|
+
## 版本
|
|
117
|
+
|
|
118
|
+
- **当前版本**:v2.43.1(2026-08-19)
|
|
119
|
+
- **变更日志**:`CHANGELOG.md`
|
|
120
|
+
|
|
121
|
+
## 反馈
|
|
122
|
+
|
|
123
|
+
问题或建议请通过 OpenClaw 对话反馈。
|