kcode-pi 0.1.34 → 0.1.35

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 CHANGED
@@ -6,12 +6,12 @@ KCode 默认面向中文用户。命令名和产品标识保持英文,例如 `
6
6
 
7
7
  ## 文档导航
8
8
 
9
- 如果你是第一次使用,按顺序看:
9
+ 首次使用按顺序阅读:
10
10
 
11
11
  1. [用户指南](docs/USER_GUIDE.md):安装、初始化、启动、模型配置、升级。
12
12
  2. [Harness 工作流](docs/HARNESS_WORKFLOW.md):如何从需求进入 discuss -> spec -> plan -> execute -> verify -> ship。
13
13
  3. [产品画像确认](docs/PRODUCT_PROFILE.md):如何用 `/kd-product` 确认苍穹、星瀚、星空旗舰版或企业版。
14
- 4. [证据和门禁](docs/EVIDENCE_AND_GATES.md):为什么需要 evidence、SDK 签名、TDD 红绿证据、风险确认。
14
+ 4. [证据和门禁](docs/EVIDENCE_AND_GATES.md)evidence、SDK 签名、TDD 红绿证据和风险确认规则。
15
15
  5. [命令参考](docs/COMMAND_REFERENCE.md):完整 `kcode` 子命令、Pi 内 `/kd-*` 命令和内置工具参数。
16
16
  6. [更新日志](docs/CHANGELOG.md):查看版本变化、发布验证和近期改进。
17
17
  7. [故障排查](docs/TROUBLESHOOTING.md):模型、旧版本、Windows 路径、终端显示等常见问题。
@@ -28,7 +28,7 @@ KCode 默认面向中文用户。命令名和产品标识保持英文,例如 `
28
28
 
29
29
  - Node.js `>=22.19.0`
30
30
  - npm
31
- - Windows 推荐使用 Windows Terminal
31
+ - Windows 环境使用 Windows Terminal
32
32
 
33
33
  安装:
34
34
 
@@ -44,7 +44,7 @@ kcode doctor --deep
44
44
  kcode start
45
45
  ```
46
46
 
47
- 如果首次启动提示没有模型,在 KCode/Pi 中执行:
47
+ 首次启动出现无模型信息时,在 KCode/Pi 中执行:
48
48
 
49
49
  ```text
50
50
  /login
@@ -53,19 +53,19 @@ kcode start
53
53
 
54
54
  ## 第一个需求
55
55
 
56
- 推荐显式指定产品:
56
+ 使用显式产品参数:
57
57
 
58
58
  ```text
59
59
  /kd-start --product cangqiong 实现采购订单保存校验
60
60
  ```
61
61
 
62
- 也可以直接提供需求文档:
62
+ 支持直接提供需求文档:
63
63
 
64
64
  ```text
65
65
  /kd-start --product cangqiong E:\project\docs\需求说明.md
66
66
  ```
67
67
 
68
- 如果已经创建了 run,但标题栏显示产品未确认:
68
+ 已创建 run 且标题栏显示产品未确认时:
69
69
 
70
70
  ```text
71
71
  /kd-product cangqiong --version V6.0
@@ -82,7 +82,7 @@ flagship 星空旗舰版 / 基于苍穹/Cosmic
82
82
  enterprise 金蝶企业版 / C#
83
83
  ```
84
84
 
85
- 进入 `ship` 前还需要确认风险:
85
+ 进入 `ship` 前必须确认风险:
86
86
 
87
87
  ```text
88
88
  /kd-risk low 已完成本地构建和元数据检查,无残余交付风险
@@ -156,7 +156,7 @@ KCode 只维护当前业务项目内的配置和工作流状态:
156
156
  .pi/kd/runs/<run-id>/evidence/index.json
157
157
  ```
158
158
 
159
- KCode 不要求你单独安装全局 `pi` 命令,也不会修改用户全局 Pi 配置。
159
+ KCode 无需单独安装全局 `pi` 命令,也不会修改用户全局 Pi 配置。
160
160
 
161
161
  ## 升级
162
162
 
@@ -165,7 +165,7 @@ npm install -g kcode-pi@latest
165
165
  kcode version
166
166
  ```
167
167
 
168
- 升级后建议在业务项目根目录重新执行:
168
+ 升级后在业务项目根目录重新执行:
169
169
 
170
170
  ```powershell
171
171
  kcode init
package/dist/cli/kcode.js CHANGED
@@ -71,8 +71,8 @@ export function doctor(cwd, args = []) {
71
71
  lines.push(`Pi CLI:${formatPiCliStatus(piCli, pi)}`);
72
72
  lines.push(`KCode version:${packageName}@${packageVersion}`);
73
73
  lines.push(`KCode package:${packageRoot}`);
74
- lines.push(`项目配置:${existsSync(settingsPath) ? settingsPath : "未创建,请先运行 kcode init"}`);
75
- lines.push(`项目上下文:${existsSync(projectContextPath) ? projectContextPath : "未创建,请运行 kcode context"}`);
74
+ lines.push(`项目配置:${existsSync(settingsPath) ? settingsPath : "未创建,运行 kcode init"}`);
75
+ lines.push(`项目上下文:${existsSync(projectContextPath) ? projectContextPath : "未创建,运行 kcode context"}`);
76
76
  if (existsSync(settingsPath)) {
77
77
  const settingsResult = readSettingsSafe(settingsPath);
78
78
  if (!settingsResult.ok) {
@@ -166,7 +166,7 @@ export function start(cwd, piArgs) {
166
166
  if (!piCli) {
167
167
  return {
168
168
  exitCode: 1,
169
- output: `${init.output}\n未找到随包 Pi CLI 或全局 pi 命令。请重新安装 kcode-pi 后再运行 kcode start。`,
169
+ output: `${init.output}\n未找到随包 Pi CLI 或全局 pi 命令。重新安装 kcode-pi 后再运行 kcode start。`,
170
170
  };
171
171
  }
172
172
  const pi = spawnSync(piCli.command, piCli.args, { cwd, stdio: "inherit", shell: false });
@@ -57,9 +57,9 @@ export function generateProjectContext(cwd) {
57
57
  "",
58
58
  "- 本文件是 KCode 的项目记忆,计划或编辑代码前必须读取。",
59
59
  "- 业务需求不得生成 demo/sample/scaffold 代码。",
60
- "- 不要假设模块结构。必须基于下方真实路径,并在编辑前确认目标文件。",
61
- "- 调用文件工具时优先使用项目相对路径。在 Windows 中,不要把路径改写为 /mnt/<drive>/... 或 /<drive>/...;只有确需绝对路径时才使用 Windows 路径。",
62
- "- 如果本文件过期,计划前先运行 `kcode context --refresh` 重新生成。",
60
+ "- 禁止假设模块结构。必须基于下方真实路径,并在编辑前确认目标文件。",
61
+ "- 调用文件工具时默认使用项目相对路径。在 Windows 中禁止把路径改写为 /mnt/<drive>/... 或 /<drive>/...;绝对路径只允许使用 Windows 路径。",
62
+ "- 本文件过期时,计划前运行 `kcode context --refresh` 重新生成。",
63
63
  "- 只有 Harness 进入 `execute` 且 PLAN.md 写明真实目标路径后,才能写产品代码。",
64
64
  "",
65
65
  "## 项目结构摘要",
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,32 @@
6
6
 
7
7
  - 暂无。
8
8
 
9
+ ## 0.1.35 - 2026-06-07
10
+
11
+ ### 新增
12
+
13
+ - 新增集中式工程指令策略,统一管理实现契约、数据源上下文、第三方对接上下文、提示风格和阶段约束。
14
+ - 新增数据源与实现就绪门禁,产品代码写入前必须具备触发入口、源对象、目标对象、字段映射、业务规则、失败处理和验收样例。
15
+ - 新增第三方对接上下文门禁,要求接口文档、对接方向、认证配置、字段映射、并发幂等、重试限流、错误补偿、日志脱敏和验收样例齐全后再编码。
16
+
17
+ ### 改进
18
+
19
+ - 将 Harness、extensions、CLI、工具说明、静态检查结果和文档中的用户/LLM 可见文本改为正式工程指令,减少口语化表达。
20
+ - 强化企业版 C#、企业版 Python、苍穹、星瀚和星空旗舰版的数据源证据要求。
21
+ - 企业版 Python 插件明确为用户侧 BOS 注册和功能测试证据,LLM 不能替代外部系统操作,只能要求用户提供可核验证据并记录来源。
22
+ - 子 agent、自动修复循环、项目上下文、SDK 签名和 KSQL/SQL lint 的输出改为“必须/禁止/执行/记录”式约束。
23
+
24
+ ### 验证
25
+
26
+ - `npm run check`
27
+ - `npm run smoke:harness`
28
+ - `npm run smoke:package`
29
+ - `npm run smoke:checker`
30
+ - `npm run smoke:build-debug`
31
+ - `npm run smoke:official`
32
+ - `npm run build:cli`
33
+ - `git diff --check`
34
+
9
35
  ## 0.1.30 - 2026-06-07
10
36
 
11
37
  ### 新增
@@ -99,7 +125,7 @@
99
125
  ### 改进
100
126
 
101
127
  - 收敛运行时 prompt,只保留状态、最近阶段资料、项目上下文摘要、当前阶段任务和核心约束。
102
- - 精简 `kd-plan`、`kd-execute`、`kd-verify` 命令入口提示,减少和 skills、门禁规则的重复。
128
+ - 精简 `kd-plan`、`kd-execute`、`kd-verify` 命令入口指令,减少和 skills、门禁规则的重复。
103
129
  - 移除不存在的 IDE 相关验证表述,保留 Gradle/dotnet 的真实构建验证策略。
104
130
 
105
131
  ### 验证
@@ -116,7 +142,7 @@
116
142
 
117
143
  - 将包版本更新到 `0.1.23`,并同步 `package-lock.json` 顶层版本信息。
118
144
  - 改进文档示例、用户文档和 README 使用说明。
119
- - 优化 Harness 门禁、证据跟踪、恢复流程和风险确认提示。
145
+ - 优化 Harness 门禁、证据跟踪、恢复流程和风险确认指令。
120
146
  - 使用 Gradle 和 dotnet 作为对应产品画像的构建验证入口。
121
147
  - 本地化 KCode prompts,并要求关键 SDK 结论提供签名证据。
122
148
 
@@ -1,6 +1,6 @@
1
1
  # 命令参考
2
2
 
3
- 本文集中说明 KCode 的终端命令、Pi 内命令和内置工具参数。首次使用请先看 [用户指南](USER_GUIDE.md),工作流顺序请看 [Harness 工作流](HARNESS_WORKFLOW.md)。
3
+ 本文集中说明 KCode 的终端命令、Pi 内命令和内置工具参数。首次使用阅读 [用户指南](USER_GUIDE.md),工作流顺序见 [Harness 工作流](HARNESS_WORKFLOW.md)。
4
4
 
5
5
  ## 终端命令
6
6
 
@@ -77,7 +77,7 @@ kcode doctor --deep
77
77
  kcode repair
78
78
  ```
79
79
 
80
- 升级后或 `doctor --deep` 提示旧路径时使用。
80
+ 升级后或 `doctor --deep` 报告旧路径时使用。
81
81
 
82
82
  ### kcode start
83
83
 
@@ -87,7 +87,7 @@ kcode repair
87
87
  kcode start
88
88
  ```
89
89
 
90
- `start` 会先自动执行项目级初始化,再启动随包 Pi CLI。后续参数会原样传给 Pi CLI:
90
+ `start` 会自动执行项目级初始化,再启动随包 Pi CLI。后续参数会原样传给 Pi CLI:
91
91
 
92
92
  ```powershell
93
93
  kcode start --provider openai --model gpt-4o
@@ -99,13 +99,13 @@ kcode start --provider openai --model gpt-4o
99
99
 
100
100
  ### /kd-start
101
101
 
102
- 创建一个新的 Kingdee Harness run。输入可以是一条需求,也可以是需求文档来源:
102
+ 创建一个新的 Kingdee Harness run。输入允许是一条需求,或需求文档来源:
103
103
 
104
104
  ```text
105
105
  /kd-start [--product 产品] [--version 版本] <需求或需求组>
106
106
  ```
107
107
 
108
- 推荐显式带产品:
108
+ 使用显式产品参数:
109
109
 
110
110
  ```text
111
111
  /kd-start --product cangqiong --version V6.0 实现采购订单保存校验
@@ -263,7 +263,7 @@ discuss -> spec -> plan -> execute -> verify -> ship
263
263
  /kd-review [审查重点]
264
264
  ```
265
265
 
266
- 用于检查状态机漏洞、门禁绕过、证据缺口、提示词分散和测试缺口。子 agent 不修改文件,主 agent 负责采纳结论和后续修复。
266
+ 用于检查状态机漏洞、门禁绕过、证据缺口、工程指令分散和测试缺口。子 agent 不修改文件,主 agent 负责采纳结论和后续修复。
267
267
 
268
268
  ### /kd-delegate
269
269
 
@@ -288,7 +288,7 @@ verify 只读分析验证命令和失败证据,实际验证由主 agent 执
288
288
 
289
289
  ## 内置工具
290
290
 
291
- 这些工具多数情况下会由 KCode 自动使用;当需要明确证据或排障时,也可以按下面参数手动调用。
291
+ 这些工具多数情况下由 KCode 自动使用;明确证据或排障时,支持按下面参数手动调用。
292
292
 
293
293
  ### kd_plan_status
294
294
 
@@ -367,7 +367,7 @@ product 可选,flagship/xinghan/cangqiong/enterprise
367
367
  edition 旧参数,等同 product
368
368
  ```
369
369
 
370
- 随包表结构主要覆盖旗舰版和企业版;Cosmic 家族字段和数据库信息优先用 `kd_cosmic_metadata`。
370
+ 随包表结构主要覆盖旗舰版和企业版;Cosmic 家族字段和数据库信息默认用 `kd_cosmic_metadata`。
371
371
 
372
372
  ### kd_check
373
373
 
@@ -450,7 +450,7 @@ mode 必填,search/search-method/detail
450
450
  query 必填,类名、方法名或完整限定类名
451
451
  config 可选,ok-cosmic.json 路径
452
452
  method 可选,detail 模式下过滤方法
453
- compact 可选,请求紧凑详情输出
453
+ compact 可选,紧凑详情输出
454
454
  dryRun 可选,只展示命令
455
455
  ```
456
456
 
@@ -532,7 +532,7 @@ kd_debug text="<日志或堆栈>" product=enterprise
532
532
  ```text
533
533
  text 可选,与 path 二选一
534
534
  path 可选,与 text 二选一
535
- product 可选,产品提示
535
+ product 可选,产品上下文
536
536
  ```
537
537
 
538
538
  ## 常用组合
@@ -1,6 +1,6 @@
1
1
  # KCode 开发与发布说明
2
2
 
3
- 本文档面向 KCode 维护者。用户安装和使用说明请看根目录 `README.md`。
3
+ 本文档面向 KCode 维护者。用户安装和使用说明见根目录 `README.md`。
4
4
 
5
5
  ## 源码开发
6
6
 
@@ -117,7 +117,7 @@ npm run release:check
117
117
  npm publish
118
118
  ```
119
119
 
120
- 如果使用 scoped 包并发布到公网 npm
120
+ 使用 scoped 包并发布到公网 npm 时:
121
121
 
122
122
  ```powershell
123
123
  npm publish --access public
@@ -152,7 +152,7 @@ docs/KCODE_DISTRIBUTION.md
152
152
  - 是否写全局配置或访问敏感路径。
153
153
  - 是否与 KCode harness、权限策略、上下文策略冲突。
154
154
 
155
- 通过审查后优先使用项目级推荐安装,写入 `.pi/settings.json`。只有离线交付或强依赖时,才考虑 `dependencies` + `bundledDependencies` 内置。
155
+ 通过审查后默认使用项目级安装,写入 `.pi/settings.json`。只有离线交付或强依赖时,才允许考虑 `dependencies` + `bundledDependencies` 内置。
156
156
 
157
157
  ## 当前维护事项
158
158
 
@@ -9,17 +9,17 @@ KCode Harness 的门禁用于避免跳阶段、猜 SDK、伪造验证结果或
9
9
  /kd-status
10
10
  ```
11
11
 
12
- 门禁不通过时,先按原因补齐产品、文档、问题答案、计划、证据或风险说明。
12
+ 门禁不通过时,按原因补齐产品、文档、问题答案、计划、证据或风险说明。
13
13
 
14
14
  ## 产品确认
15
15
 
16
- 当需求涉及具体金蝶产品实现、构建、元数据或 SDK 查证时,需要确认产品画像:
16
+ 当需求涉及具体金蝶产品实现、构建、元数据或 SDK 查证时,必须确认产品画像:
17
17
 
18
18
  ```text
19
19
  /kd-product cangqiong --version V6.0
20
20
  ```
21
21
 
22
- 如果只是整理需求文档或处理产品无关的工程事项,可以先完成需求梳理,并在计划中写明不涉及产品实现。后续实际要改金蝶产品代码、构建、元数据或 SDK 时,再按范围确认产品。
22
+ 仅整理需求文档或处理产品无关工程事项时,完成需求梳理,并在计划中写明不涉及产品实现。后续实际修改金蝶产品代码、构建、元数据或 SDK 时,按范围确认产品。
23
23
 
24
24
  详见 [产品画像确认](PRODUCT_PROFILE.md)。
25
25
 
@@ -46,7 +46,7 @@ KCode Harness 的门禁用于避免跳阶段、猜 SDK、伪造验证结果或
46
46
  evidence/sdk-signature.md
47
47
  ```
48
48
 
49
- 推荐工具:
49
+ 使用工具:
50
50
 
51
51
  ```text
52
52
  kd_sdk_signature product=cangqiong query=QueryServiceHelper method=loadSingle
@@ -54,7 +54,7 @@ kd_sdk_signature product=flagship query=SaveServiceHelper method=save
54
54
  kd_sdk_signature product=enterprise query=DynamicObject method=GetDynamicObject
55
55
  ```
56
56
 
57
- 只有这些来源可以作为签名事实:
57
+ 只有以下来源允许作为签名事实:
58
58
 
59
59
  - `kd_sdk_signature` 从当前项目真实 jar/dll 读取的结果。
60
60
  - 当前项目构建输出。
@@ -96,7 +96,7 @@ Exit: 0
96
96
  - “未执行”
97
97
  - “应该可以”
98
98
 
99
- 如果命令无法运行,记录真实阻塞原因和残余风险,不能把它当绿灯。
99
+ 命令无法运行时,记录真实阻塞原因和残余风险。禁止把未运行命令当作绿灯。
100
100
 
101
101
  ## evidence/index.json
102
102
 
@@ -123,7 +123,7 @@ evidence/step-001.md
123
123
 
124
124
  ## Cosmic 官方能力证据
125
125
 
126
- 苍穹、星瀚和星空旗舰版通常需要:
126
+ 苍穹、星瀚和星空旗舰版通常要求:
127
127
 
128
128
  ```text
129
129
  kd_cosmic_config product=cangqiong
@@ -135,7 +135,7 @@ kd_cosmic_api product=cangqiong mode=search query=<关键词>
135
135
 
136
136
  ## KSQL / SQL 证据
137
137
 
138
- 交付 KSQL/SQL 数据修复内容时,ship 前通常需要:
138
+ 交付 KSQL/SQL 数据修复内容时,ship 前通常要求:
139
139
 
140
140
  ```text
141
141
  evidence/cosmic-metadata.json
@@ -6,26 +6,26 @@ KCode Harness 把金蝶开发工作拆成固定阶段:
6
6
  discuss -> spec -> plan -> execute -> verify -> ship
7
7
  ```
8
8
 
9
- run 可以是一条明确需求,也可以是一组同一目标下的需求。
9
+ run 允许包含一条明确需求,或同一目标下的一组需求。
10
10
 
11
11
  ## 创建 run
12
12
 
13
- 推荐显式指定产品:
13
+ 使用显式产品参数:
14
14
 
15
15
  ```text
16
16
  /kd-start --product cangqiong 实现采购订单保存校验
17
17
  ```
18
18
 
19
- 也可以直接提供需求文档来源,例如本地文件、目录或在线文档链接:
19
+ 支持直接提供需求文档来源,例如本地文件、目录或在线文档链接:
20
20
 
21
21
  ```text
22
22
  /kd-start E:\project\docs\需求说明.md
23
23
  /kd-start https://example.com/requirements
24
24
  ```
25
25
 
26
- 在线文档如果需要登录或权限,KCode 会提示你提供可访问链接、导出文件路径或关键内容。
26
+ 在线文档要求登录或权限时,KCode 会要求提供可访问链接、导出文件路径或关键内容。
27
27
 
28
- 如果你直接输入自然语言需求,KCode 会自动创建 run,并进入 `discuss` 阶段分析需求来源和范围。
28
+ 直接输入自然语言需求时,KCode 会自动创建 run,并进入 `discuss` 阶段分析需求来源和范围。
29
29
 
30
30
  查看当前状态:
31
31
 
@@ -34,7 +34,7 @@ run 可以是一条明确需求,也可以是一组同一目标下的需求。
34
34
  /kd-gate
35
35
  ```
36
36
 
37
- 如果产品未知,先看 [产品画像确认](PRODUCT_PROFILE.md)。
37
+ 产品未知时,查看 [产品画像确认](PRODUCT_PROFILE.md)。
38
38
 
39
39
  ## 阶段说明
40
40
 
@@ -58,7 +58,7 @@ ship 汇总变更、验证证据、风险和后续事项
58
58
  /kd-advance ship
59
59
  ```
60
60
 
61
- 门禁不通过时,先按 `/kd-gate` 给出的原因补齐产品、文档、计划、证据或风险说明。
61
+ 门禁不通过时,按 `/kd-gate` 给出的原因补齐产品、文档、计划、证据或风险说明。
62
62
 
63
63
  ## 阶段文档
64
64
 
@@ -96,7 +96,7 @@ evidence/index.json
96
96
 
97
97
  ## 待确认问题
98
98
 
99
- 需要确认产品、目标单据、插件位置、高风险 SQL 或方案选择时,KCode 会记录待确认问题。未回答的阻断问题会阻止阶段推进。
99
+ 产品、目标单据、插件位置、高风险 SQL 或方案选择要求确认时,KCode 会记录待确认问题。未回答的阻断问题会阻止阶段推进。
100
100
 
101
101
  手动回答:
102
102
 
@@ -129,7 +129,7 @@ evidence/index.json
129
129
  /kd-finish
130
130
  ```
131
131
 
132
- 同一目标下的一组需求可以放在同一个 run 中处理。无关目标建议创建新 run:
132
+ 同一目标下的一组需求允许放在同一个 run 中处理。无关目标创建新 run:
133
133
 
134
134
  ```text
135
135
  /kd-start --product cangqiong E:\project\docs\本轮采购订单改造.docx
@@ -141,8 +141,8 @@ KCode 会阻止过早写入 Java/XML/SQL/C# 等产品代码:
141
141
 
142
142
  - 未进入 `execute` 阶段不能写产品代码。
143
143
  - `execute` 只能写 `PLAN.md` 中批准的真实源码文件。
144
- - 临时发现要改新文件,先回到 `plan` 更新计划。
145
- - 必须先理解当前业务项目已有目录、模块、包名、基类和本地封装。
144
+ - 临时发现要改新文件,回到 `plan` 更新计划。
145
+ - 必须理解当前业务项目已有目录、模块、包名、基类和本地封装后再编码。
146
146
 
147
147
  证据和门禁细节见 [证据和门禁](EVIDENCE_AND_GATES.md)。
148
148
 
@@ -152,7 +152,7 @@ KCode 支持把局部任务委派给隔离子 agent,用来降低长上下文
152
152
 
153
153
  触发方式有两种:
154
154
 
155
- - 自动:主 agent 在大量调研、独立交叉审查、长上下文复盘或可并行拆分时,可以主动调用 `kd_subagent`。
155
+ - 自动:主 agent 在大量调研、独立交叉审查、长上下文复盘或可并行拆分时,允许主动调用 `kd_subagent`。
156
156
  - 显式:用户用 `/kd-review` 或 `/kd-delegate` 指定委派任务。
157
157
 
158
158
  常用入口:
@@ -10,16 +10,16 @@ KCode 不 fork Pi,也不替换 Pi 生态。KCode 提供一个面向金蝶开
10
10
  - 不修改用户全局 Pi 配置。
11
11
  - 不强制安装未审查的第三方 package。
12
12
  - 支持项目内复现同一套金蝶开发环境。
13
- - 不要求用户额外安装全局 `pi` 命令。
13
+ - 无需用户额外安装全局 `pi` 命令。
14
14
 
15
- ## 推荐结构
15
+ ## 分发结构
16
16
 
17
17
  ```text
18
18
  kcode-pi npm 包,作为 Pi package 提供金蝶工具、skills、prompts、themes。
19
19
  kcode 全局命令,负责项目初始化、环境检查和启动随包 Pi CLI。
20
20
  ```
21
21
 
22
- `kcode` 启动器只管理当前项目的 `.pi/settings.json`,不写 `~/.pi` 或其他用户全局目录。启动时优先调用随包 `@earendil-works/pi-coding-agent` 的 `dist/cli.js`,仅在随包 CLI 缺失时回退全局 `pi`。
22
+ `kcode` 启动器只管理当前项目的 `.pi/settings.json`,不写 `~/.pi` 或其他用户全局目录。启动时默认调用随包 `@earendil-works/pi-coding-agent` 的 `dist/cli.js`,仅在随包 CLI 缺失时回退全局 `pi`。
23
23
 
24
24
  ## 项目级配置
25
25
 
@@ -39,7 +39,7 @@ kcode 全局命令,负责项目初始化、环境检查和启动随包
39
39
  }
40
40
  ```
41
41
 
42
- 后续如需接入第三方 Pi package,先进入 allowlist,再固定版本写入项目配置:
42
+ 后续接入第三方 Pi package 时,进入 allowlist 后再固定版本写入项目配置:
43
43
 
44
44
  ```json
45
45
  {
@@ -64,10 +64,10 @@ kcode 全局命令,负责项目初始化、环境检查和启动随包
64
64
 
65
65
  通过审查后有两种接入方式:
66
66
 
67
- 1. 项目级推荐安装:写入 `.pi/settings.json`。
67
+ 1. 项目级安装:写入 `.pi/settings.json`。
68
68
  2. 离线内置:写入 `dependencies` 和 `bundledDependencies`,并在 `package.json -> pi` 中显式引用其资源。
69
69
 
70
- 优先使用项目级推荐安装。只有离线交付或强依赖时,才考虑离线内置。
70
+ 默认使用项目级安装。只有离线交付或强依赖时,才允许考虑离线内置。
71
71
 
72
72
  ## 命令设计
73
73
 
@@ -88,4 +88,4 @@ kcode start 初始化后启动 KCode 工作环境
88
88
 
89
89
  ## 当前限制
90
90
 
91
- 当前仓库已可作为 npm 包发布,并提供全局 `kcode` 命令。真实交互式 Pi runtime smoke 需要在具备可用模型/API 配置的环境中执行。
91
+ 当前仓库已可作为 npm 包发布,并提供全局 `kcode` 命令。真实交互式 Pi runtime smoke 必须在具备可用模型/API 配置的环境中执行。
@@ -1,6 +1,6 @@
1
1
  # 产品画像确认
2
2
 
3
- 产品画像决定 KCode 使用哪套产品知识、SDK/元数据来源、构建策略、目录约束和门禁规则。标题栏里如果出现 `产品:未确认`,必须先确认产品。
3
+ 产品画像决定 KCode 使用哪套产品知识、SDK/元数据来源、构建策略、目录约束和门禁规则。标题栏出现 `产品:未确认` 时,必须确认产品。
4
4
 
5
5
  ## 支持的产品
6
6
 
@@ -17,13 +17,13 @@ enterprise 金蝶企业版 / C#
17
17
 
18
18
  ## 创建 run 时确认产品
19
19
 
20
- 推荐:
20
+ 使用显式产品参数:
21
21
 
22
22
  ```text
23
23
  /kd-start --product cangqiong --version V6.0 实现采购订单保存校验
24
24
  ```
25
25
 
26
- 也可以省略版本:
26
+ 允许省略版本:
27
27
 
28
28
  ```text
29
29
  /kd-start --product flagship 实现采购订单插件
@@ -31,7 +31,7 @@ enterprise 金蝶企业版 / C#
31
31
 
32
32
  ## 已有 run 补产品
33
33
 
34
- 如果 run 已经创建,但标题栏显示:
34
+ run 已经创建且标题栏显示以下内容时:
35
35
 
36
36
  ```text
37
37
  产品:未确认
@@ -45,7 +45,7 @@ enterprise 金蝶企业版 / C#
45
45
  /kd-status
46
46
  ```
47
47
 
48
- 如果不确定具体产品,但明确属于金蝶苍穹相关技术栈,优先确认业务实际使用的是苍穹、星瀚还是星空旗舰版,不要把 `cosmic` 当成产品名。
48
+ 具体产品不确定但明确属于金蝶苍穹相关技术栈时,确认业务实际使用的是苍穹、星瀚还是星空旗舰版。禁止把 `cosmic` 当成产品名。
49
49
 
50
50
  ## 如何选择
51
51
 
@@ -57,7 +57,7 @@ enterprise 金蝶企业版 / C#
57
57
  选择 `xinghan`:
58
58
 
59
59
  - 明确是金蝶星瀚。
60
- - 基于苍穹/Cosmic 平台,优先按平台 Java 插件处理。
60
+ - 基于苍穹/Cosmic 平台,默认按平台 Java 插件处理。
61
61
  - 接口或元数据存在星瀚差异时,以星瀚产品和当前项目证据为准。
62
62
 
63
63
  选择 `flagship`:
@@ -65,7 +65,7 @@ enterprise 金蝶企业版 / C#
65
65
  - 明确是星空旗舰版。
66
66
  - 基于苍穹/Cosmic 平台,Java 插件规则适用。
67
67
  - 接口或目录存在旗舰版差异时,以旗舰版产品和当前项目证据为准。
68
- - 如果项目存在 `code/` 目录,生产代码应跟随 `code/` 下真实结构。
68
+ - 项目存在 `code/` 目录时,生产代码应跟随 `code/` 下真实结构。
69
69
 
70
70
  选择 `enterprise`:
71
71
 
@@ -87,14 +87,14 @@ KCode 会阻止 unknown run 离开 `discuss`。
87
87
 
88
88
  ### Header 和 `/kd-status` 不一致怎么办?
89
89
 
90
- 先刷新门禁:
90
+ 刷新门禁:
91
91
 
92
92
  ```text
93
93
  /kd-gate
94
94
  /kd-status
95
95
  ```
96
96
 
97
- 如果刚升级过 KCode,重新启动:
97
+ 刚升级过 KCode 时,重新启动:
98
98
 
99
99
  ```powershell
100
100
  kcode start
@@ -15,7 +15,7 @@ Warning: No models available.
15
15
  /model
16
16
  ```
17
17
 
18
- 或先设置供应商 API Key:
18
+ 或设置供应商 API Key:
19
19
 
20
20
  ```powershell
21
21
  $env:OPENAI_API_KEY="sk-..."
@@ -37,7 +37,7 @@ kcode start
37
37
  /kd-gate
38
38
  ```
39
39
 
40
- 如果不知道选哪个,看 [产品画像确认](PRODUCT_PROFILE.md)。
40
+ 产品无法判断时,查看 [产品画像确认](PRODUCT_PROFILE.md)。
41
41
 
42
42
  ## ship 阶段门禁阻塞
43
43
 
@@ -72,13 +72,13 @@ kcode version
72
72
  type .pi\settings.json
73
73
  ```
74
74
 
75
- 如果 `packages` 中有多条 `kcode-pi` 路径:
75
+ `packages` 中存在多条 `kcode-pi` 路径时:
76
76
 
77
77
  ```powershell
78
78
  kcode repair
79
79
  ```
80
80
 
81
- 如果使用 nvmWindows 上每个 Node 版本都有独立全局 npm 安装目录。切换 Node 后重新安装并初始化:
81
+ 使用 nvm 时,Windows 上每个 Node 版本都有独立全局 npm 安装目录。切换 Node 后重新安装并初始化:
82
82
 
83
83
  ```powershell
84
84
  npm install -g kcode-pi@latest
@@ -87,7 +87,7 @@ kcode init
87
87
 
88
88
  ## npm install 没有更新
89
89
 
90
- 先确认 registry 上的版本:
90
+ 确认 registry 上的版本:
91
91
 
92
92
  ```powershell
93
93
  npm view kcode-pi version
@@ -102,7 +102,7 @@ npm install -g kcode-pi@latest
102
102
  kcode version
103
103
  ```
104
104
 
105
- 如果提示 `EEXIST: file already exists ... kcode.cmd`,确认旧 shim:
105
+ 出现 `EEXIST: file already exists ... kcode.cmd` 时,确认旧 shim:
106
106
 
107
107
  ```powershell
108
108
  npm root -g
@@ -124,9 +124,9 @@ ENOENT: no such file or directory, access 'D:\mnt\d\projects\xxx\src\main\java\F
124
124
 
125
125
  正确做法:
126
126
 
127
- - 优先使用项目相对路径。
127
+ - 默认使用项目相对路径。
128
128
  - 必须用绝对路径时,使用 `D:\projects\xxx\...`。
129
- - 不要使用 `/mnt/d/...` 或 `/d/...`。
129
+ - 禁止使用 `/mnt/d/...` 或 `/d/...`。
130
130
 
131
131
  刷新项目上下文:
132
132