kcode-pi 0.1.31 → 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 +10 -10
- package/dist/cli/kcode.js +3 -3
- package/dist/context/project-context.js +3 -3
- package/docs/CHANGELOG.md +28 -2
- package/docs/COMMAND_REFERENCE.md +10 -10
- package/docs/DEVELOPMENT.md +3 -3
- package/docs/EVIDENCE_AND_GATES.md +8 -8
- package/docs/HARNESS_WORKFLOW.md +12 -12
- package/docs/KCODE_DISTRIBUTION.md +7 -7
- package/docs/PRODUCT_PROFILE.md +9 -9
- package/docs/TROUBLESHOOTING.md +8 -8
- package/docs/USER_GUIDE.md +10 -10
- package/extensions/kingdee-harness.ts +61 -48
- package/extensions/kingdee-header.ts +3 -3
- package/extensions/kingdee-subagents.ts +1 -1
- package/extensions/kingdee-tools.ts +171 -43
- package/package.json +6 -2
- package/src/cli/kcode.ts +3 -3
- package/src/context/project-context.ts +3 -3
- package/src/harness/artifacts.ts +6 -7
- package/src/harness/data-source-policy.ts +302 -0
- package/src/harness/delegation.ts +23 -23
- package/src/harness/gates.ts +26 -1
- package/src/harness/messages.ts +70 -11
- package/src/harness/path-policy.ts +1 -0
- package/src/harness/plan-steps.ts +3 -3
- package/src/harness/prompt-policy.ts +196 -0
- package/src/harness/prompt.ts +8 -16
- package/src/harness/repair.ts +2 -2
- package/src/harness/state.ts +58 -1
- package/src/official/kingdee-skills.ts +4 -4
- package/src/product/profile.ts +2 -2
- package/src/rules/checker.ts +27 -27
- package/src/tools/build-debug.ts +5 -5
- package/src/tools/sdk-signature.ts +4 -4
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)
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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 : "
|
|
75
|
-
lines.push(`项目上下文:${existsSync(projectContextPath) ? projectContextPath : "
|
|
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
|
|
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
|
-
"-
|
|
62
|
-
"-
|
|
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`
|
|
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
|
|
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`
|
|
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
|
-
|
|
266
|
+
用于检查状态机漏洞、门禁绕过、证据缺口、工程指令分散和测试缺口。子 agent 不修改文件,主 agent 负责采纳结论和后续修复。
|
|
267
267
|
|
|
268
268
|
### /kd-delegate
|
|
269
269
|
|
|
@@ -288,7 +288,7 @@ verify 只读分析验证命令和失败证据,实际验证由主 agent 执
|
|
|
288
288
|
|
|
289
289
|
## 内置工具
|
|
290
290
|
|
|
291
|
-
|
|
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
|
|
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
|
## 常用组合
|
package/docs/DEVELOPMENT.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# KCode 开发与发布说明
|
|
2
2
|
|
|
3
|
-
本文档面向 KCode
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
package/docs/HARNESS_WORKFLOW.md
CHANGED
|
@@ -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
|
-
|
|
26
|
+
在线文档要求登录或权限时,KCode 会要求提供可访问链接、导出文件路径或关键内容。
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
直接输入自然语言需求时,KCode 会自动创建 run,并进入 `discuss` 阶段分析需求来源和范围。
|
|
29
29
|
|
|
30
30
|
查看当前状态:
|
|
31
31
|
|
|
@@ -34,7 +34,7 @@ run 可以是一条明确需求,也可以是一组同一目标下的需求。
|
|
|
34
34
|
/kd-gate
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
|
|
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
|
-
|
|
61
|
+
门禁不通过时,按 `/kd-gate` 给出的原因补齐产品、文档、计划、证据或风险说明。
|
|
62
62
|
|
|
63
63
|
## 阶段文档
|
|
64
64
|
|
|
@@ -96,7 +96,7 @@ evidence/index.json
|
|
|
96
96
|
|
|
97
97
|
## 待确认问题
|
|
98
98
|
|
|
99
|
-
|
|
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
|
-
|
|
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
|
-
-
|
|
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
|
|
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
|
-
-
|
|
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`
|
|
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
|
-
|
|
42
|
+
后续接入第三方 Pi package 时,进入 allowlist 后再固定版本写入项目配置:
|
|
43
43
|
|
|
44
44
|
```json
|
|
45
45
|
{
|
|
@@ -64,10 +64,10 @@ kcode 全局命令,负责项目初始化、环境检查和启动随包
|
|
|
64
64
|
|
|
65
65
|
通过审查后有两种接入方式:
|
|
66
66
|
|
|
67
|
-
1.
|
|
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
|
|
91
|
+
当前仓库已可作为 npm 包发布,并提供全局 `kcode` 命令。真实交互式 Pi runtime smoke 必须在具备可用模型/API 配置的环境中执行。
|
package/docs/PRODUCT_PROFILE.md
CHANGED
|
@@ -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
|
-
|
|
34
|
+
run 已经创建且标题栏显示以下内容时:
|
|
35
35
|
|
|
36
36
|
```text
|
|
37
37
|
产品:未确认
|
|
@@ -45,7 +45,7 @@ enterprise 金蝶企业版 / C#
|
|
|
45
45
|
/kd-status
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
具体产品不确定但明确属于金蝶苍穹相关技术栈时,确认业务实际使用的是苍穹、星瀚还是星空旗舰版。禁止把 `cosmic` 当成产品名。
|
|
49
49
|
|
|
50
50
|
## 如何选择
|
|
51
51
|
|
|
@@ -57,7 +57,7 @@ enterprise 金蝶企业版 / C#
|
|
|
57
57
|
选择 `xinghan`:
|
|
58
58
|
|
|
59
59
|
- 明确是金蝶星瀚。
|
|
60
|
-
- 基于苍穹/Cosmic
|
|
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
|
-
-
|
|
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
|
-
|
|
97
|
+
刚升级过 KCode 时,重新启动:
|
|
98
98
|
|
|
99
99
|
```powershell
|
|
100
100
|
kcode start
|
package/docs/TROUBLESHOOTING.md
CHANGED
|
@@ -15,7 +15,7 @@ Warning: No models available.
|
|
|
15
15
|
/model
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
|
|
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
|
-
|
|
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
|
-
|
|
75
|
+
`packages` 中存在多条 `kcode-pi` 路径时:
|
|
76
76
|
|
|
77
77
|
```powershell
|
|
78
78
|
kcode repair
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
-
|
|
129
|
+
- 禁止使用 `/mnt/d/...` 或 `/d/...`。
|
|
130
130
|
|
|
131
131
|
刷新项目上下文:
|
|
132
132
|
|