@sokeai/cli 1.0.79 → 1.0.81

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 (128) hide show
  1. package/package.json +1 -1
  2. package/scripts/install.js +8 -0
  3. package/scripts/run.js +3 -2
  4. package/skills/mono/.workbuddy/memory/2026-09-01.md +2 -0
  5. package/skills/mono/.workbuddy/memory/MEMORY.md +4 -0
  6. package/skills/mono/ARCHITECTURE_AND_EXTENSION_GUIDE.md +572 -0
  7. package/skills/mono/README.md +2 -0
  8. package/skills/mono/SKILL.md +125 -119
  9. package/skills/mono/SKILL_MD_/344/274/230/345/214/226/346/226/271/346/241/210.md +478 -0
  10. package/skills/mono/references/modules/README.md +74 -0
  11. package/skills/mono/references/modules/soke-ai-coach-director/CHANGELOG.md +1 -1
  12. package/skills/mono/references/modules/soke-ai-coach-director/MODULE.md +12 -0
  13. package/skills/mono/references/modules/soke-ai-coach-director/README.md +1 -1
  14. package/skills/mono/references/modules/soke-ai-coach-director/coaching/prompt-optimizer/prompt-optimizer.md +3 -3
  15. package/skills/mono/references/modules/soke-ai-coach-director/platform/adapters/README.md +4 -2
  16. package/skills/mono/references/modules/soke-ai-coach-director/platform/adapters/qclaw.md +3 -1
  17. package/skills/mono/references/modules/soke-ai-coach-director/platform/adapters/{wukong.md → qwen.md} +18 -18
  18. package/skills/mono/references/modules/soke-ai-coach-director/platform/adapters/workbuddy.md +1 -1
  19. package/skills/mono/references/modules/soke-ai-coach-director/platform/api-fallback.md +1 -1
  20. package/skills/mono/references/modules/soke-ai-coach-director/platform/interaction.md +1 -1
  21. package/skills/mono/references/modules/soke-ai-coach-director/platform/platform-support-matrix.md +28 -0
  22. package/skills/mono/references/modules/soke-ai-coach-director/platform/soke-ai-training/soke-ai-training.md +5 -3
  23. package/skills/mono/references/modules/soke-ai-coach-director/platform/sync-engine.md +2 -2
  24. package/skills/mono/references/modules/soke-ai-coach-director/references/env-check.md +3 -0
  25. package/skills/mono/references/modules/soke-ai-coach-director/references/exec-handbook.md +2 -2
  26. package/skills/mono/references/modules/soke-ai-coach-director/references/subs/publish/SOP.md +3 -3
  27. package/skills/mono/references/modules/soke-ai-training/MODULE.md +55 -7
  28. package/skills/mono/references/modules/soke-assign/MODULE.md +50 -11
  29. package/skills/mono/references/modules/soke-certificate/MODULE.md +47 -1
  30. package/skills/mono/references/modules/soke-course/CHANGELOG.md +93 -0
  31. package/skills/mono/references/modules/soke-course/MODULE.md +110 -352
  32. package/skills/mono/references/modules/soke-course/README.md +45 -291
  33. package/skills/mono/references/modules/soke-course/cli-facts.md +107 -0
  34. package/skills/mono/references/modules/soke-course/intent-cases.md +41 -0
  35. package/skills/mono/references/modules/soke-course/scripts/check_readiness.sh +45 -0
  36. package/skills/mono/references/modules/soke-course/sop-publish-check.md +46 -0
  37. package/skills/mono/references/modules/soke-course/subs/assign/SOP.md +40 -0
  38. package/skills/mono/references/modules/soke-course/subs/batch/SOP.md +96 -0
  39. package/skills/mono/references/modules/soke-course/{references/subs → subs}/category/SOP.md +18 -27
  40. package/skills/mono/references/modules/soke-course/subs/charge/SOP.md +22 -0
  41. package/skills/mono/references/modules/soke-course/subs/copy/SOP.md +35 -0
  42. package/skills/mono/references/modules/soke-course/subs/exam/SOP.md +39 -0
  43. package/skills/mono/references/modules/soke-course/subs/phase1-create/SOP.md +66 -0
  44. package/skills/mono/references/modules/soke-course/subs/phase2-lesson/SOP.md +34 -0
  45. package/skills/mono/references/modules/soke-course/subs/photo/SOP.md +26 -0
  46. package/skills/mono/references/modules/soke-course/subs/publish/SOP.md +26 -0
  47. package/skills/mono/references/modules/soke-course/subs/query/SOP.md +36 -0
  48. package/skills/mono/references/modules/soke-course/{references/subs → subs}/settings/SOP.md +3 -4
  49. package/skills/mono/references/modules/soke-course/subs/template/SOP.md +58 -0
  50. package/skills/mono/references/modules/soke-exam/MODULE.md +49 -1
  51. package/skills/mono/references/modules/soke-exam-question-pool/MODULE.md +45 -5
  52. package/skills/mono/references/modules/soke-learning-map/MODULE.md +71 -12
  53. package/skills/mono/references/modules/soke-learning-profile/MODULE.md +46 -3
  54. package/skills/mono/references/modules/soke-lesson/MODULE.md +34 -20
  55. package/skills/mono/references/modules/soke-material/MODULE.md +33 -19
  56. package/skills/mono/references/modules/soke-photo-gallery/MODULE.md +40 -20
  57. package/skills/mono/references/modules/soke-shared/MODULE.md +9 -0
  58. package/skills/mono/references/modules/soke-supervisor/MODULE.md +32 -1
  59. package/skills/mono/references/modules/soke-task/MODULE.md +48 -1
  60. package/skills/mono/references/modules/soke-training-demand/MODULE.md +38 -17
  61. package/skills/mono/references/shared/README.md +50 -0
  62. package/skills/mono/references/shared/async-task.md +30 -0
  63. package/skills/mono/references/shared/auth-check.md +57 -0
  64. package/skills/mono/references/shared/command-discovery.md +34 -0
  65. package/skills/mono/references/shared/environment-check.md +31 -0
  66. package/skills/mono/references/shared/error-handling.md +27 -0
  67. package/skills/mono/references/shared/file-input.md +31 -0
  68. package/skills/mono/references/shared/interaction.md +39 -0
  69. package/skills/mono/references/shared/object-context.md +51 -0
  70. package/skills/mono/references/shared/output-policy.md +39 -0
  71. package/skills/mono/references/shared/pagination.md +41 -0
  72. package/skills/mono/references/shared/rule-ownership.md +57 -0
  73. package/skills/mono/references/shared/state-machine.md +35 -0
  74. package/skills/mono/references/shared/write-guard.md +34 -0
  75. package/skills/mono/references/shared/write-verify.md +33 -0
  76. package/skills/mono/references/workflows/README.md +115 -0
  77. package/skills/mono/scripts/check_package.py +310 -0
  78. package/skills/mono/scripts/check_readiness.py +1 -1
  79. package/skills/mono/scripts/check_syntax.py +35 -0
  80. package/skills/mono//357/275/223/357/275/217/357/275/213/357/275/205/357/274/215/357/275/203/357/275/214/357/275/211/346/225/264/344/275/223/346/236/266/346/236/204.html +13 -0
  81. package/skills/multi/soke-course/.skill-metadata.yaml +40 -0
  82. package/skills/multi/soke-course/CHANGELOG.md +77 -0
  83. package/skills/multi/soke-course/README.md +27 -274
  84. package/skills/multi/soke-course/SKILL.md +135 -353
  85. package/skills/multi/soke-course/_user_meta.json +5 -0
  86. package/skills/multi/soke-course/agents/openai.yaml +1 -5
  87. package/skills/multi/soke-course/references/cli-facts.md +105 -0
  88. package/skills/multi/soke-course/references/examples.md +30 -454
  89. package/skills/multi/soke-course/references/intent-cases.md +65 -99
  90. package/skills/multi/soke-course/references/sop-full-workflow.md +81 -177
  91. package/skills/multi/soke-course/references/sop-lesson-types.md +21 -58
  92. package/skills/multi/soke-course/references/sop-publish-check.md +14 -71
  93. package/skills/multi/soke-course/references/subs/assign/SOP.md +37 -0
  94. package/skills/multi/soke-course/references/subs/category/SOP.md +18 -27
  95. package/skills/multi/soke-course/references/subs/exam/SOP.md +28 -0
  96. package/skills/multi/soke-course/references/subs/lesson/SOP.md +28 -0
  97. package/skills/multi/soke-course/references/subs/material/SOP.md +24 -0
  98. package/skills/multi/soke-course/references/subs/photo/SOP.md +23 -0
  99. package/skills/multi/soke-course/references/subs/publish/SOP.md +15 -157
  100. package/skills/multi/soke-course/references/subs/query/SOP.md +22 -151
  101. package/skills/multi/soke-course/references/subs/settings/SOP.md +3 -4
  102. package/skills/multi/soke-course/references/subs/template/SOP.md +37 -210
  103. package/skills/multi/soke-course/references/troubleshoot.md +37 -54
  104. package/skills/multi/soke-course/scripts/check_readiness.sh +45 -0
  105. package/skills/multi/soke-course/{references/installation.md → soke-cli-install-guide.md} +3 -0
  106. package/skills/mono/references/modules/soke-course/agents/openai.yaml +0 -7
  107. package/skills/mono/references/modules/soke-course/references/course-list-courses.md +0 -216
  108. package/skills/mono/references/modules/soke-course/references/examples.md +0 -480
  109. package/skills/mono/references/modules/soke-course/references/intent-cases.md +0 -99
  110. package/skills/mono/references/modules/soke-course/references/sop-full-workflow.md +0 -177
  111. package/skills/mono/references/modules/soke-course/references/sop-lesson-types.md +0 -66
  112. package/skills/mono/references/modules/soke-course/references/sop-publish-check.md +0 -76
  113. package/skills/mono/references/modules/soke-course/references/subs/ai/SOP.md +0 -153
  114. package/skills/mono/references/modules/soke-course/references/subs/charge/SOP.md +0 -107
  115. package/skills/mono/references/modules/soke-course/references/subs/copy/SOP.md +0 -80
  116. package/skills/mono/references/modules/soke-course/references/subs/publish/SOP.md +0 -168
  117. package/skills/mono/references/modules/soke-course/references/subs/query/SOP.md +0 -165
  118. package/skills/mono/references/modules/soke-course/references/subs/template/SOP.md +0 -223
  119. package/skills/mono/references/modules/soke-course/references/troubleshoot.md +0 -68
  120. package/skills/multi/soke-course/examples/create-basic.md +0 -70
  121. package/skills/multi/soke-course/references/course-list-courses.md +0 -216
  122. package/skills/multi/soke-course/references/dependencies/soke-assign.md +0 -103
  123. package/skills/multi/soke-course/references/dependencies/soke-lesson.md +0 -119
  124. package/skills/multi/soke-course/references/dependencies/soke-material.md +0 -105
  125. package/skills/multi/soke-course/references/shared.md +0 -185
  126. package/skills/multi/soke-course/references/subs/ai/SOP.md +0 -153
  127. package/skills/multi/soke-course/scripts/check_readiness.py +0 -87
  128. /package/skills/mono/references/{installation.md → shared/installation.md} +0 -0
@@ -1,10 +1,10 @@
1
- # 悟空 (Wukong) 平台适配器
1
+ # 千问 (Qwen) 平台适配器
2
2
 
3
- > 悟空是阿里钉钉的企业级 AI Agent 平台,通过钉钉 IM 进行自然语言对话交互。不支持 `AskUserQuestion` 或 `render_ui`。
3
+ > 千问是阿里钉钉的企业级 AI Agent 平台,通过钉钉 IM 进行自然语言对话交互。不支持 `AskUserQuestion` 或 `render_ui`。
4
4
 
5
5
  ## 运行环境检测
6
6
 
7
- - 对话上下文包含钉钉/悟空平台特征
7
+ - 对话上下文包含钉钉/千问平台特征
8
8
  - 无 `AskUserQuestion` 工具可用
9
9
  - 交互方式为自然语言对话
10
10
 
@@ -14,11 +14,11 @@
14
14
 
15
15
  在对话中以 Markdown 纯文本完整展示 Part 内容。使用 `## 🔨 PartN:{标题}` 格式开头,逐字段输出全部正文。
16
16
 
17
- 悟空平台支持 Markdown 渲染(标题、列表、加粗),按标准 Markdown 输出即可。
17
+ 千问平台支持 Markdown 渲染(标题、列表、加粗),按标准 Markdown 输出即可。
18
18
 
19
19
  ### 选项确认
20
20
 
21
- 使用结构化文本编号确认(悟空不支持弹窗按钮):
21
+ 使用结构化文本编号确认(千问不支持弹窗按钮):
22
22
 
23
23
  ```
24
24
  请选择:
@@ -38,33 +38,33 @@
38
38
 
39
39
  ### CLI 执行
40
40
 
41
- 悟空内置 Python 3.12 + Node.js + Bun + Chromium,通过 Tauri + Rust 架构执行系统命令。
41
+ 千问内置 Python 3.12 + Node.js + Bun + Chromium,通过 Tauri + Rust 架构执行系统命令。
42
42
 
43
- soke-cli 在悟空中的执行方式:
44
- - 悟空有企业级安全沙箱(不同于 WorkBuddy 的沙箱)
43
+ soke-cli 在千问中的执行方式:
44
+ - 千问有企业级安全沙箱(不同于 WorkBuddy 的沙箱)
45
45
  - soke-cli 是 npm 全局安装的 Go 编译二进制,可直接调用
46
- - 若悟空中 `soke-cli` 命令受限,降级为 REST API 直接调用(参考 `../api-fallback.md`)
46
+ - 若千问中 `soke-cli` 命令受限,降级为 REST API 直接调用(参考 `../api-fallback.md`)
47
47
 
48
48
  ```bash
49
- # 悟空中执行 soke-cli 命令(无需 dangerouslyDisableSandbox)
50
- soke-cli ai-training +create-scenario --request-file ./step1-create.json --pretty
49
+ # 千问中执行 soke-cli 命令(无需 dangerouslyDisableSandbox)
50
+ soke-cli ai-training +create-scenario --request-file ./step1-create.json > /tmp/step1-create.json 2>/dev/null
51
51
  ```
52
52
 
53
- ### 悟空 Skill 市场打包说明
53
+ ### 千问 Skill 市场打包说明
54
54
 
55
- 悟空有自己的 AI 能力市场(Skill 市场),使用独立的 Skill 格式。
55
+ 千问有自己的 AI 能力市场(Skill 市场),使用独立的 Skill 格式。
56
56
 
57
- 要将本技能发布到悟空 Skill 市场:
58
- 1. 将 SKILL.md 转换为悟空 Skill 格式(需查阅悟空 Skill 开发文档)
57
+ 要将本技能发布到千问 Skill 市场:
58
+ 1. 将 SKILL.md 转换为千问 Skill 格式(需查阅千问 Skill 开发文档)
59
59
  2. 交互逻辑使用本适配器的纯文本模式
60
60
  3. CLI 执行层保持 soke-cli 原生调用
61
- 4. 如有 MCP 协议需求,悟空内置 MCP 支持
61
+ 4. 如有 MCP 协议需求,千问内置 MCP 支持
62
62
 
63
63
  ## 适配器路由
64
64
 
65
- 当检测到以下特征时,启用悟空适配器:
65
+ 当检测到以下特征时,启用千问适配器:
66
66
  - 对话环境无 `AskUserQuestion` / `render_ui` 工具
67
67
  - 平台支持 Markdown 渲染
68
68
  - 可执行系统 CLI 命令
69
69
 
70
- > 若 soke-cli 在悟空中完全不可用(如企业安全策略禁止),整条管线降级为:纯文本展示 Part 内容 → 用户确认 → 生成 JSON → 通过 REST API (api-fallback.md) 直接调用 MentorAI API 完成同步。
70
+ > 若 soke-cli 在千问中完全不可用(如企业安全策略禁止),整条管线降级为:纯文本展示 Part 内容 → 用户确认 → 生成 JSON → 通过 REST API (api-fallback.md) 直接调用 MentorAI API 完成同步。
@@ -36,7 +36,7 @@ WebChat 环境额外支持 `render_ui` QuestionForm jsonl。
36
36
 
37
37
  ```bash
38
38
  # 示例
39
- soke-cli ai-training +create-scenario --request-file ./step1-create.json --pretty
39
+ soke-cli ai-training +create-scenario --request-file ./step1-create.json > /tmp/step1-create.json 2>/dev/null
40
40
  ```
41
41
 
42
42
  ## 适配器路由
@@ -51,7 +51,7 @@ Body: step1-create.json 内容
51
51
 
52
52
  ### 场景查询
53
53
 
54
- **CLI**: `soke-cli ai-training +get-scenario --scenario-id <id> --pretty`
54
+ **CLI**: `soke-cli ai-training +get-scenario --scenario-id <id> --raw > /tmp/scenario_get.json 2>/dev/null`
55
55
 
56
56
  **API**:
57
57
  ```
@@ -1,6 +1,6 @@
1
1
  # 弹窗交互规则
2
2
 
3
- 定义 Part1-Part5 及发布/知识包/微调的确认契约(标题/问题/选项/分支路由)。跨平台:WorkBuddy 用 AskUserQuestion,WebChat 用 render_ui QuestionForm,纯文本平台降级为编号选项(见 `platform/adapters/`)。
3
+ 定义 Part1-Part5 及发布/知识包/微调的确认契约(标题/问题/选项/分支路由)。跨平台:WorkBuddy 用 AskUserQuestion,WebChat 用 render_ui QuestionForm,纯文本平台降级为编号选项(见 `platform/adapters/`)。QClaw 适配器为可选兼容层;未部署 QClaw 时不影响其他平台或通用降级路径。
4
4
 
5
5
  ## 核心规则
6
6
 
@@ -0,0 +1,28 @@
1
+ # 多平台支持矩阵
2
+
3
+ > 本文件是 AI 陪练平台适配器支持状态的唯一事实源。适配器只负责环境检测、内容展示、选项确认和 CLI 执行,不承载 Part1-Part5 业务规则。
4
+
5
+ | 平台 | 适配器文件 | 状态 | 交互方式 | CLI 执行 | 备注 |
6
+ |---|---|---|---|---|---|
7
+ | WorkBuddy | `adapters/workbuddy.md` | 稳定 | AskUserQuestion / render_ui | Bash 沙箱 | 默认平台 |
8
+ | 千问(Qwen) | `adapters/qwen.md` | 可选 | Markdown + 编号确认 | 平台 CLI / API 降级 | 原悟空适配器已迁移为千问适配器 |
9
+ | Zework | `adapters/zework.md` | 待验证 | 纯文本 + 编号确认 | 内部 CLI / API 降级 | 私有平台适配 |
10
+ | QClaw | `adapters/qclaw.md` | 可选 | Markdown + 编号确认 | OpenClaw Bash | 未部署时不影响主流程 |
11
+ | 通用降级 | `adapters/README.md` | 必须保留 | 纯文本 + 编号确认 | REST API fallback | 平台无法识别时使用 |
12
+
13
+ ## 支持状态定义
14
+
15
+ - **稳定**:有明确运行环境和交互契约,作为默认交付路径。
16
+ - **可选**:仅在交付目标包含该平台时加载,不是核心流程依赖。
17
+ - **待验证**:保留适配器,但需要真实平台验收后再升级状态。
18
+ - **已弃用**:不再接受新交付;完成迁移后删除文件和索引项。
19
+
20
+ ## 适配器删除规则
21
+
22
+ 删除平台适配器时,必须同时更新:
23
+
24
+ 1. 本矩阵中的平台行;
25
+ 2. `adapters/README.md` 的路由和文件索引;
26
+ 3. `platform/interaction.md` 中的平台说明;
27
+ 4. `CHANGELOG.md` 的迁移记录;
28
+ 5. 运行包检查,确保矩阵、索引和实际文件一致。
@@ -11,12 +11,14 @@ metadata:
11
11
 
12
12
  # AI教练知识包
13
13
 
14
- **CRITICAL — 开始前 MUST 先读取 [`../../../soke-shared/MODULE.md`](../../../soke-shared/MODULE.md),其中包含认证、配置和权限处理。**
14
+ ## 共用前置
15
+
16
+ 开始前读取 `../../../../../shared/README.md`,并按需加载环境检测、登录验证、对象上下文、输出、写后验证、异步任务和错误处理规则。本子模块只保留知识包同步特例。
15
17
 
16
18
  ## 使用前提
17
19
 
18
- 1. 运行 `soke-cli auth login` 完成用户授权。
19
- 2. 确认 `soke-cli config show` 中有 `APIBaseURL`、`AppKey`、`AppSecret`、`CorpID` 和用户 token。
20
+ 1. 按共享登录验证规则确认授权有效,不在本子模块重复维护认证流程。
21
+ 2. 不要在对话或仓库中回显 `AppSecret`、用户 token 等敏感配置;租户和对象标识必须使用 CLI 查询结果。
20
22
  3. 客户原始 PDF、Word、Excel、网页等资料必须先由本地 Agent/Skills 提炼为 Markdown sources 和结构化 entries JSON。
21
23
 
22
24
  ## 推荐同步
@@ -1,6 +1,6 @@
1
1
  # 平台同步引擎(字段参考手册)
2
2
 
3
- > ⚠️ **本文件已降级为字段参考手册**。执行规则、JSON 模板、字段硬规则、断言均以 `../references/exec-handbook.md` 为唯一事实源。本文件只保留 exec-handbook 未覆盖的:文件产出命名、一致性扫描、跨 Part 交接。
3
+ > ⚠️ **本文件已降级为字段参考手册**。执行规则、JSON 模板、字段硬规则、断言均以 `../references/exec-common.md` 与对应的 `../references/exec-partN.md` 为事实源。本文件只保留执行文件未覆盖的:文件产出命名、一致性扫描、跨 Part 交接。
4
4
 
5
5
  ## 核心原则(补充 exec-handbook)
6
6
 
@@ -35,5 +35,5 @@ Part2 角色卡的「我的行为模式」(共鸣触发/关键台词/防御机
35
35
  ## 边界
36
36
 
37
37
  - `interaction.md` 负责:弹窗确认、按钮分支、回退链路。
38
- - `exec-handbook.md` 负责:确认后的 JSON 生成、CLI 模板、断言、状态快照更新(唯一事实源)。
38
+ - `exec-common.md` 与对应 `exec-partN.md` 负责:确认后的 JSON 生成、CLI 模板、断言和状态快照更新;本文件不维护执行事实。
39
39
  - 本文件负责:字段参考、文件命名、一致性扫描。
@@ -1,5 +1,8 @@
1
1
  # soke-cli 环境检测
2
2
 
3
+ > 通用环境与登录规则已抽取到 `../../../shared/environment-check.md` 和 `../../../shared/auth-check.md`。
4
+ > 本文件保留 AI 陪练的兼容入口及额外依赖说明;新流程优先读取共享文件。
5
+
3
6
  独立于页面/创作管线,仅在需要调用平台接口时执行。
4
7
 
5
8
  ---
@@ -12,8 +12,8 @@
12
12
 
13
13
  | # | 操作 | CLI 命令 | 产物 |
14
14
  |---|------|---------|------|
15
- | 1 | 创建场景 | `soke-cli ai-training +create-scenario --request-file ./part1-create.json --pretty` | `scenario_id` |
16
- | 2 | 回读验证 | `soke-cli ai-training +get-scenario --scenario-id <id> --pretty` | name/description/key_points/tags 一致 |
15
+ | 1 | 创建场景 | `soke-cli ai-training +create-scenario --request-file ./part1-create.json > /tmp/part1-create.json 2>/dev/null` | `scenario_id` |
16
+ | 2 | 回读验证 | `soke-cli ai-training +get-scenario --scenario-id <id> --raw > /tmp/scenario_get.json 2>/dev/null` | name/description/key_points/tags 一致 |
17
17
 
18
18
  > Part1 走**创建链路**,不是 preview/apply 更新链路。没有 operations 数组。
19
19
 
@@ -5,7 +5,7 @@
5
5
  ## Step 6: 平台同步验证
6
6
 
7
7
  1. 读取 `state-snapshot.json`,验证所有 Part 的 `applied` 均为 `true`
8
- 2. 执行 `soke-cli ai-training +get-scenario --scenario-id <id> --pretty`
8
+ 2. 执行 `soke-cli ai-training +get-scenario --scenario-id <id> --raw > /tmp/scenario_get.json 2>/dev/null`
9
9
  3. 逐字段验证:
10
10
  - `key_points`、`description`、`name` → 与 `step1-create.json` 一致
11
11
  - `ai_roles` 非空 + `role_data.name` ≠ "角色数据异常"
@@ -63,10 +63,10 @@ soke-cli ai-training +publish-scenario \
63
63
  --scenario-id <scenario_id> \
64
64
  --version 1 \
65
65
  --version-description "CLI发布" \
66
- --pretty
66
+ > /tmp/publish_result.json 2>/dev/null
67
67
  ```
68
68
 
69
- 发布后验收:`+get-scenario --scenario-id <id> --pretty` 确认状态。
69
+ 发布后验收:`+get-scenario --scenario-id <id> --raw > /tmp/scenario_get.json 2>/dev/null`,由闸门脚本确认状态。
70
70
 
71
71
  > 🚦 闸门:发布成功后方可交付。
72
72
 
@@ -11,13 +11,40 @@ metadata:
11
11
 
12
12
  # AI教练知识包与场景管理
13
13
 
14
- **CRITICAL — 开始前 MUST 先读取 [`../soke-shared/MODULE.md`](../soke-shared/MODULE.md),其中包含认证、配置和权限处理。**
14
+ ## 共用前置
15
15
 
16
- ## 使用前提
16
+ 开始前读取 `../../shared/README.md`,并按需加载环境检测、登录验证、对象上下文、输出、写后验证、异步任务和错误处理规则。本模块只保留 AI 教练知识包特有规则;陪练场景的 Part1-Part5 生成、确认、发布闸门由 `soke-ai-coach-director` 负责。
17
17
 
18
- 1. 运行 `soke-cli auth login` 完成用户授权。
19
- 2. 确认 `soke-cli config show` 中有 `APIBaseURL`、`AppKey`、`AppSecret`、`CorpID` 和用户 token。
20
- 3. 客户原始 PDF、Word、Excel、网页等资料必须先由本地 Agent/Skills 提炼为 Markdown sources 和结构化 entries JSON。
18
+ ## 职责
19
+
20
+ 本模块负责 AI 教练知识包的同步与 source 管理、知识包版本与场景绑定、知识计划编译查询,以及已有场景的读取、安全更新、发布和快照恢复;不负责 AI 陪练 Part1-Part5 内容生成及确认流程。
21
+
22
+ ## 输入
23
+
24
+ 根据任务类型提供:
25
+
26
+ - 知识包同步:manifest、Markdown sources、结构化 entries JSON 和幂等键;
27
+ - 场景绑定:真实 `scenario-id` 与知识包 `version-ids`;
28
+ - 场景更新:当前场景基准、`base_updated_at`、operations 和幂等键;
29
+ - 发布或恢复:真实场景 ID,以及发布版本信息或快照 ID。
30
+
31
+ 客户原始 PDF、Word、Excel、网页等资料必须先由本地 Agent/Skills 提炼为 Markdown sources 和结构化 entries JSON。
32
+
33
+ ## 业务流程
34
+
35
+ 1. 按任务读取当前知识包、source、场景或快照状态;
36
+ 2. 校验输入文件、真实对象 ID、版本关系和更新基准;
37
+ 3. 先预览场景更新或执行知识包同步,再进行应用、绑定、编译或发布;
38
+ 4. 使用查询命令或状态文件验证版本、绑定关系、计划和场景状态;
39
+ 5. 只返回已验证的业务对象与状态摘要。
40
+
41
+ ## 放行与完成条件
42
+
43
+ - 知识包同步:manifest、sources 和 entries 校验通过,且同步状态文件记录成功版本;
44
+ - 场景绑定:场景与版本 ID 均来自当前查询,绑定后知识计划可查询;
45
+ - 场景更新:必须先取得最新 `updated_at`,preview 通过后才 apply;
46
+ - 场景发布:仅在业务模块的发布闸门通过后执行,发布后状态可回读;
47
+ - 只有目标对象、版本/绑定关系和最终状态均可验证时,才能报告完成。
21
48
 
22
49
  ## 推荐同步
23
50
 
@@ -238,7 +265,22 @@ soke-cli ai-training +restore-scenario-snapshot \
238
265
 
239
266
  新增场景命令默认输出 MentorAI `BaseResponse.data`;排查错误时加 `--raw` 保留 `success/errorCode/errorMessage/details/traceId`。
240
267
 
241
- ## 注意
268
+ ## 业务产出与验证
269
+
270
+ - 知识包任务产出知识包版本、source 清单和 `.mentorai-sync-state.json`;以同步响应、版本列表和状态文件共同验证。
271
+ - 场景绑定任务产出场景与知识包版本的绑定关系及编译后的知识计划;以 `+get-plan` 回读验证。
272
+ - 场景更新任务产出新的场景配置与更新时间;以 `+get-scenario` 回读目标字段验证。
273
+ - 场景发布或恢复任务产出发布状态或恢复后的快照状态;必须回读实际场景状态,不能以命令已发出代替成功。
274
+
275
+ ## 失败与降级
276
+
277
+ - 发生 409 乐观锁冲突时,重新读取最新场景和 `updated_at`,重新生成更新请求,不复用旧基准重试。
278
+ - manifest、source 或 entries 校验失败时停止同步,不写入伪成功状态文件。
279
+ - 上传、同步、绑定、编译或发布部分成功时,保留已完成对象和失败阶段,先查询真实状态再决定是否重试。
280
+ - 认证、权限、网络和通用 CLI 错误按共享错误处理规则恢复;无法恢复时停止当前任务并报告人工处理入口。
281
+ - 失败后禁止改用伪造 `corp_id`、`user_id`、`object_key` 或未经验证的业务 API 绕过限制。
282
+
283
+ ## 业务特例
242
284
 
243
285
  - 不要在 manifest 或 entries 中伪造 `corp_id`、`user_id` 或 `object_key`。
244
286
  - `object_key` 必须使用 upload-token 返回值。
@@ -248,4 +290,10 @@ soke-cli ai-training +restore-scenario-snapshot \
248
290
  - 场景更新请求体或 query 中不要伪造 `corp_id`、`company_id`、`user_id`。
249
291
  - 场景创建请求体中的 `corp_id`、`company_id`、`user_id`、`implementation_corp_id` 会由代理剥离,不要依赖它们选择租户。
250
292
  - 场景更新前必须以 `+get-scenario` 的 `updated_at` 作为 `base_updated_at`。
251
- - 场景发布需要 `+publish-scenario --scenario-id <id>`,默认带 `version=1` 和 `version_description=CLI发布`;不要把它当作局部更新命令。
293
+ - 场景发布需要 `+publish-scenario --scenario-id <id>`,默认带 `version=1` 和 `version_description="CLI发布"`;不要把它当作局部更新命令。
294
+
295
+ ## 输出
296
+
297
+ - 返回已验证的知识包、source、版本、场景、绑定关系、知识计划或快照状态摘要。
298
+ - 仅在后续流程需要时传递真实对象 ID、版本 ID 和状态文件路径。
299
+ - 原始响应、上传签名、Token 和客户材料遵循共享输出脱敏规则,不直接回显。
@@ -7,21 +7,58 @@ tags: [soke, assign, department, user, enrollment]
7
7
 
8
8
  # 指派管理
9
9
 
10
- ## 触发描述
10
+ ## 共享前置
11
11
 
12
- 课程创建并发布后,需要将课程指派给部门或具体学员时触发本技能。支持查询组织架构、查询用户列表、创建指派记录及查看指派列表。
12
+ 开始操作前读取:
13
13
 
14
- ## 前置条件
14
+ - `../../shared/environment-check.md`
15
+ - `../../shared/auth-check.md`
16
+ - `../../shared/command-discovery.md`
17
+ - `../../shared/object-context.md`
18
+ - `../../shared/interaction.md`
19
+ - `../../shared/write-guard.md`
20
+ - `../../shared/output-policy.md`
21
+
22
+ ## 职责
23
+
24
+ 负责查询部门和用户,并为已发布的课程、考试或学习地图创建和查询指派关系;不负责资源创建、配置或发布。
25
+
26
+ ## 输入
27
+
28
+ - 已发布资源的真实 ID
29
+ - 目标部门或用户的真实 ID
30
+ - 指派资源类型、必修/选修属性和用户范围
31
+ - 用户明确的指派或查询动作
32
+
33
+ ## 流程
34
+
35
+ ```text
36
+ 确认资源已发布 → 查询部门/用户 → 确认目标范围
37
+ → 展示指派摘要并获得确认 → 创建指派 → 查询指派结果
38
+ ```
15
39
 
16
- - 目标课程 `status = 1`(已发布),未发布的课程不可指派
17
- - 具有指派权限(管理员或课程负责人)
40
+ ## 业务特例
18
41
 
19
- ## 执行流程
42
+ - 目标课程必须 `status = 1`(已发布)。
43
+ - 当前命令示例中的 `--module` 为 `course`;考试或学习地图指派须以当前 CLI 帮助和对应模块规则为准。
44
+ - 批量指派建议单次不超过 500 人,超出时分批处理。
45
+ - 取消指派不在 CLI 范围内,需通过后台操作。
46
+
47
+ ## 输出
48
+
49
+ 返回资源名称、指派类型、人数和处理状态等业务摘要;用户姓名可以展示,内部 ID 和完整响应遵循 `../../shared/output-policy.md`。
50
+
51
+ **完成判定**:指派真正创建成功,当且仅当 `assign +list`(基于资源 ID 查询)能查到对应用户的指派记录,且记录中的必修/选修标记与请求一致。仅 `assign +create` 返回成功提示、但 `+list` 查不到记录时,视为未完成,不得向用户报告“指派成功”。
52
+
53
+ ## 前置条件
54
+
55
+ - 目标资源已发布
56
+ - 具有指派权限
20
57
 
21
58
  ### 1. 查询部门 `assign +list-departments`
22
59
 
23
60
  ```bash
24
- soke assign +list-departments
61
+ soke-cli assign +list-departments
25
62
  ```
26
63
 
27
64
  返回当前租户下所有部门结构。输出格式预期为部门 ID 与名称的层级列表。
@@ -31,7 +68,7 @@ soke assign +list-departments
31
68
  ### 2. 查询用户 `assign +list-users`
32
69
 
33
70
  ```bash
34
- soke assign +list-users --department-id <departmentId>
71
+ soke-cli assign +list-users --department-id <departmentId>
35
72
  ```
36
73
 
37
74
  | 参数 | 必填 | 说明 |
@@ -43,7 +80,7 @@ soke assign +list-users --department-id <departmentId>
43
80
  ### 3. 创建指派 `assign +create`
44
81
 
45
82
  ```bash
46
- soke assign +create \
83
+ soke-cli assign +create \
47
84
  --module course \
48
85
  --module-id <courseId> \
49
86
  --compulsory <1|0> \
@@ -62,7 +99,7 @@ soke assign +create \
62
99
  ### 4. 查询指派 `assign +list`
63
100
 
64
101
  ```bash
65
- soke assign +list --module-id <courseId>
102
+ soke-cli assign +list --module-id <courseId>
66
103
  ```
67
104
 
68
105
  | 参数 | 必填 | 说明 |
@@ -94,10 +131,12 @@ soke assign +list --module-id <courseId>
94
131
  5. 批量指派建议单次 user-ids 不超过 500 人,超出分批处理
95
132
  6. 取消指派(删除指派记录)需通过后台操作,CLI 不直接支持
96
133
 
134
+ **失败降级**:若 `+create` 报“课程未发布/status 不符”或用户 ID 无效,立即停止并告知用户失败原因,不得假装成功;若批量中部分用户失败,报告成功与失败明细,不要整体宣称完成。
135
+
97
136
  ## 检查清单
98
137
 
99
138
  - [ ] 课程 status = 1(已发布确认)
100
139
  - [ ] 已通过 list-departments / list-users 确认目标用户 ID
101
140
  - [ ] compulsory 正确设定(1=必修, 0=选修)
102
141
  - [ ] user-ids 为逗号分隔的有效用户 ID 列表
103
- - [ ] 指派完成后通过 assign +list 验证结果
142
+ - [ ] 指派完成后通过 assign +list 验证结果(查不到记录=未完成)
@@ -9,7 +9,53 @@ metadata:
9
9
  cliHelp: "soke-cli certificate --help"
10
10
  ---
11
11
 
12
- **CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../soke-shared/MODULE.md`](../soke-shared/MODULE.md),其中包含认证、配置、权限处理**
12
+ ## 共享前置
13
+
14
+ 开始前按需读取:
15
+
16
+ - `../../shared/environment-check.md`
17
+ - `../../shared/auth-check.md`
18
+ - `../../shared/command-discovery.md`
19
+ - `../../shared/object-context.md`
20
+ - `../../shared/pagination.md`
21
+ - `../../shared/interaction.md`
22
+ - `../../shared/write-guard.md`
23
+ - `../../shared/write-verify.md`
24
+ - `../../shared/output-policy.md`
25
+ - `../../shared/error-handling.md`
26
+
27
+ 本模块只保留证书业务规则;通用规则统一由共享层维护。
28
+
29
+ ## 职责
30
+
31
+ 负责证书模板、证书分类、证书资源、获得人员和证书生命周期查询/管理;不负责课程、考试或学习地图资源配置。
32
+
33
+ ## 输入
34
+
35
+ - 用户明确的证书模板、列表、详情、分类或获得人员查询
36
+ - 创建、更新、发布、关闭、删除或颁发时所需的业务字段
37
+ - 真实证书、分类和学员 ID
38
+
39
+ ## 流程
40
+
41
+ ```text
42
+ 查询模板/分类 → 创建或查询证书 → 配置坐标
43
+ → 发布/关闭/颁发(按需确认) → 查询获得人员或关联关系
44
+ ```
45
+
46
+ ## 业务特例
47
+
48
+ - 证书资源 UUID、证书分类 UUID 与证书获得记录 UUID 不可混用。
49
+ - 发布、关闭、删除、颁发和批量操作必须遵循证书业务校验与共享写守卫。
50
+ - 坐标配置和模板字段以本模块后续命令章节为准。
51
+
52
+ **失败降级**:写操作(create/update/award/close/delete)若返回业务错误、未生成 `uuid` 或状态未达预期,立即停止并说明原因,不要假设成功;发布/关闭/删除等不可逆或状态敏感操作,务必先以 `+get` 或 `+list` 回读确认当前状态,再决定是否继续。
53
+
54
+ ## 输出
55
+
56
+ 返回证书名称、状态、分类、编号、获得人员和处理结果等业务摘要;内部 UUID 和完整响应遵循 `../../shared/output-policy.md`。
57
+
58
+ **完成判定**:写操作以真实状态为准——`+create` 完成当且仅当返回新的 `uuid`;`+update --action publish` 完成当且仅当 `+get` 查到的 `status=1`;`--action close` 完成当且仅当 `status=2`;`+award` 完成当且仅当 `+users` 能查到对应获得记录;`+delete` 完成当且仅当原证书在 `+list` 中不再出现。仅 CLI 返回“成功”提示但状态未变更的,视为未完成。
13
59
 
14
60
  ## 核心概念
15
61
 
@@ -0,0 +1,93 @@
1
+ # 变更日志
2
+
3
+ ## v6.50.0 · 2026-09-03
4
+
5
+ - 修正创建课程模式判定:create 意图下除已明确给出 course-id/目录/单文件+标题外,第一步必须先弹原生二选一「单课程上传/多课程批量上传」,禁止默认进单课程(此前「仅无法判断才弹」与意图路由「默认进单课程」冲突,导致用户只说「创建课程」时看不到模式选择)。
6
+
7
+ ## v6.48.0 · 2026-09-03
8
+
9
+ - 完整落地「创建课程」业务逻辑:新增交互规范(硬规则)、意图路由(Gate 0)、5 Phase 主流程、批量 B0-B7 流程。
10
+ - 模式选择改为按上下文判定(course-id/目录/单文件),仅无法判断时弹原生二选一。
11
+ - 统一 A-H 编码方案(课件来源/分类/模板/小测验/发布/学习类型/指派/出题方式)。
12
+ - 明确弹窗例外清单:模式选择、批量上传确认、加小测验、出题方式、指派+发布条件、指派部门选择、发布警告用原生弹窗;已有试卷选择用 Markdown 表格展示前 20 份。
13
+ - 明确「先上传课件 → 再问小测验 → 最后指派+发布条件弹窗」默认流程,禁止代发布。
14
+ - 新增 subs/assign、subs/exam、subs/photo、subs/charge、subs/copy 五个子 SOP。
15
+ - 新增 intent-cases.md(意图案例库)与 sop-publish-check.md(发布 Gate Check,6 项 + 关闭第 7 项)。
16
+ - 分类编码统一为 B1..Bn;模板设置表列序统一为「设置项|值|状态」;批量固定不加小测验。
17
+ - 修正 check_readiness.sh 路径(subs/ 扁平化);补充 cli-facts.md 的 list-papers/get-paper。
18
+
19
+ ## v6.47.0 · 2026-09-01
20
+
21
+ - 移除单独的“回复格式:课程标题 A1B3C1”和固定编码示例。
22
+ - 改为自然语言提示用户直接提供课程标题、课件来源、分类、模板及本地文件路径。
23
+
24
+ ## v6.46.0 · 2026-09-01
25
+
26
+ - 固定单课程首轮输出顺序,确保标题、A 来源、B 分类、分类提示、C 模板和回复示例完整出现。
27
+ - 分类和模板统一使用“编码在名称前”的展示格式。
28
+ - 指派与发布改为两个连续弹窗:先确认是否指派,再确认是否发布。
29
+ - 指派弹窗固定为「1. 指派(推荐)/2. 不指派」;发布弹窗固定为「1. 发布/2. 不发布」。
30
+
31
+ ## v6.45.0 · 2026-09-01
32
+
33
+ - 统一单课程首轮输出顺序和格式。
34
+ - 分类、模板选项统一采用“编码在名称前”的展示方式。
35
+ - 指派弹窗固定顺序为“1. 指派(推荐)/2. 不指派”。
36
+ - 发布弹窗固定顺序为“1. 发布/2. 不发布”。
37
+
38
+ ## v6.44.0 · 2026-09-01
39
+
40
+ - 修复创建课程时 B 分类列表为空或使用占位内容的问题。
41
+ - 分类选择现在必须先拉取真实分类接口返回,再展示一级分类标题和 UUID。
42
+ - 统一分类字段为 `data.list[].title`、`uuid`、`parent_id`,不再使用未验证的 `name`/`id` 字段。
43
+ - 未确认的 `--parent-id`、`--level` 参数不得直接调用。
44
+
45
+ ## v6.43.0 · 2026-09-01
46
+
47
+ - 优化未登录处理:自动执行 `soke-cli auth login` 调用网页登录授权。
48
+ - 登录完成后自动回查「用户凭证」,失败或取消时停止后续写操作。
49
+ - 修正环境检查脚本对中文登录字段的识别。
50
+
51
+ ## v6.42.0 · 2026-09-01
52
+
53
+ - 优化“查看学习统计”入口:未指定课程时先展示已发布线上课前 20 个。
54
+ - 增加按课程标题模糊搜索和分页选择提示,选定课程后再查询统计。
55
+
56
+ ## v6.41.0 · 2026-09-01
57
+
58
+ - 优化对外分享元数据,移除残留英文示例。
59
+ - 增加已有课程操作不再弹模式选择的使用说明。
60
+
61
+ ## v6.40.0 · 2026-09-01
62
+
63
+ - 补齐关键 CLI 命令的最低返回字段契约。
64
+ - 增加批量目录扫描的隐藏文件、符号链接、大小写扩展名和空目录规则。
65
+ - 完善动作级中断恢复和批量结果记录要求。
66
+ - 清理分享元数据中的英文示例。
67
+
68
+ ## v6.39.0 · 2026-09-01
69
+
70
+ - 修复已有 `course-id`、目录路径与模式选择之间的路由冲突。
71
+ - 增加创建前查重、发布确认前二次状态查询和 Gate Check。
72
+ - 明确批量任务的单课失败隔离、超时回查、失败汇总和恢复位置。
73
+
74
+ ## v6.38.0 · 2026-09-01
75
+
76
+ - 统一为 5 阶段流程:创建、课件、设置、指派与发布、查询与维护。
77
+ - 统一执行顺序:课件 → 设置 → 指派 → Gate Check → 发布。
78
+ - 模板自动应用 CLI 支持的高级设置,后台能力标记为待办。
79
+ - 修正立即发布与定时发布的 Gate Check 和回查规则。
80
+ - 修正图片字段白名单、分类末级选择、素材库分页和 clock 分页字段。
81
+ - 增加写操作回查、批量失败隔离和中断恢复要求。
82
+ - 统一示例、排障文档和 WorkBuddy 安装路径。
83
+
84
+ ## 兼容性说明
85
+
86
+ - 命令参数以 `references/cli-facts.md` 为唯一事实源。
87
+ - 当前事实表实测版本为 `soke-cli v1.0.77`。
88
+ - 旧版示例中的“先发布后指派”流程不再适用。
89
+ - 未经 `--help` 或实际回归验证的参数,不得直接写入其他 SOP。
90
+
91
+ ## 历史版本
92
+
93
+ - v6.37.0 及更早版本的详细记录保留在版本发布包或内部备份中;对外分享包只保留当前版本和兼容性说明。