@andyqiu/codeforge 0.8.4 → 0.8.5
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 +46 -112
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,163 +1,97 @@
|
|
|
1
1
|
# @andyqiu/codeforge
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[opencode](https://github.com/sst/opencode) 的零侵入 AI 编码扩展:让 AI 以「规划 → 编码 → 审阅」闭环完成任务,所有改动隔离在 session worktree,`/merge` 拍板才落地主仓。
|
|
4
4
|
|
|
5
5
|
## 安装
|
|
6
6
|
|
|
7
|
-
需要 **opencode ≥ 1.14**
|
|
7
|
+
需要 **opencode ≥ 1.14** 与 **Node ≥ 20**。
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
10
|
npm install -g @andyqiu/codeforge
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
postinstall 自动完成全局配置,装完**重启 opencode** 即生效。日后升级重跑同一条命令加 `@latest` 即可。
|
|
14
14
|
|
|
15
15
|
## 怎么用
|
|
16
16
|
|
|
17
|
-
进 opencode
|
|
18
|
-
|
|
19
|
-
### 直接对话
|
|
17
|
+
进 opencode 后,默认对话窗口就是 `codeforge`——编排者,判断你的需求该自己答还是派给专门的 agent,你无需关心调度,直接说人话:
|
|
20
18
|
|
|
21
19
|
```
|
|
22
|
-
>
|
|
23
|
-
>
|
|
24
|
-
> 修一下 login 接口 401 那个 bug
|
|
20
|
+
> 帮我修一下 login 接口 401 那个 bug
|
|
21
|
+
> 这个项目怎么组织的?给我画个依赖图
|
|
25
22
|
```
|
|
26
23
|
|
|
27
|
-
|
|
24
|
+
需要时也可 `@` 显式调用某个角色。CodeForge 内置 9 个 agent:`codeforge`(编排)、`planner`(出方案不写码)、三档执行者 `coder-quick` / `coder` / `coder-deep`(按复杂度自动选档)、`reviewer` / `reviewer-lite`(审阅给 通过 / 改 / 拒)、`discover`(虚拟产品经理)及其对抗子 agent `discover-challenger`。
|
|
28
25
|
|
|
29
|
-
|
|
30
|
-
@planner 出实现方案,不写代码
|
|
31
|
-
@coder 按方案改代码(改动先暂存等你审)
|
|
32
|
-
@reviewer 审已暂存的改动,给 通过 / 改 / 拒
|
|
33
|
-
```
|
|
26
|
+
## 命令
|
|
34
27
|
|
|
35
|
-
|
|
28
|
+
最常用一条龙:`/ship <需求>` 跑完整 planner → coder → reviewer → merge 链路。
|
|
36
29
|
|
|
37
30
|
| 命令 | 用途 |
|
|
38
31
|
|---|---|
|
|
39
|
-
| `/
|
|
40
|
-
| `/
|
|
41
|
-
| `/
|
|
42
|
-
| `/refactor <目标>` |
|
|
32
|
+
| `/ship <需求>` | 完整链路:规划 → 编码 → 审阅 → 合并 |
|
|
33
|
+
| `/plan <需求>` | 只出方案,不写代码 |
|
|
34
|
+
| `/debug <问题>` | bugfix 流:取证 → 假设 → 复现 → 修复 → 回归 |
|
|
35
|
+
| `/refactor <目标>` | 安全重构:先补测试锁行为,再改 |
|
|
43
36
|
| `/tdd <需求>` | 严格 RED → GREEN → REFACTOR |
|
|
44
|
-
| `/
|
|
37
|
+
| `/review` | 审当前 session 暂存的改动 |
|
|
38
|
+
| `/merge` | 触发 review-fix-review 闭环 + squash 合并入主仓 |
|
|
45
39
|
| `/discard-session` | 放弃当前 session 的所有改动 |
|
|
46
|
-
| `/
|
|
47
|
-
| `/
|
|
48
|
-
| `/
|
|
49
|
-
| `/
|
|
50
|
-
| `/changes` | 查看当前 session 的改动摘要 |
|
|
40
|
+
| `/changes` | 查看当前 session 改动摘要 |
|
|
41
|
+
| `/deep <需求>` | 强制升档高端推理模型 |
|
|
42
|
+
| `/quick <需求>` | 强制降档快速模型 |
|
|
43
|
+
| `/parallel` | 显式并发多任务(默认已自动并行,保留兜底) |
|
|
51
44
|
| `/pause` | 暂停当前任务 |
|
|
45
|
+
| `/model-switch` | 查看 / 切换 agent 绑定的模型 |
|
|
46
|
+
| `/adr-init` | 为任意 git 项目初始化 ADR 决策记录体系 |
|
|
47
|
+
| `/gc-worktrees` | 清理僵尸 worktree |
|
|
52
48
|
|
|
53
|
-
|
|
49
|
+
## 核心机制
|
|
54
50
|
|
|
55
|
-
|
|
51
|
+
- **Session worktree 隔离**:每个 session 绑定独立 git worktree,AI 改动写在里面不碰主仓,`/merge` 通过审批后才 squash 落地。
|
|
52
|
+
- **Auto-parallel**:描述多个独立需求时自动并发到隔离 lane,汇聚后统一走合入闭环,无需手动 `/parallel`。
|
|
53
|
+
- **三档模型**:`coder-quick`(省钱)/ `coder`(默认)/ `coder-deep`(重型),codeforge 自动选档,也可 `/deep` `/quick` 手动 override。
|
|
54
|
+
- **ADR 体系**:`/adr-init` 一键把 ADR 校验 hooks 下发到任意 git 项目。
|
|
55
|
+
- **Knowledge Hub**(可选):启用后 AI 自动查团队历史经验、自动沉淀踩坑,未配置不影响基础功能。
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
```
|
|
60
|
-
@discover 我想做一个新人推荐 feed
|
|
61
|
-
```
|
|
57
|
+
## Discover —— 把模糊需求收敛成 PRD
|
|
62
58
|
|
|
63
|
-
discover
|
|
64
|
-
1. **散度** — 列各种可能解 + 边界
|
|
65
|
-
2. **收敛** — 5 维加权打分筛选方向
|
|
66
|
-
3. **红旗** — 召唤 `discover-challenger` 强对抗 sycophancy
|
|
67
|
-
4. **PRD 起草** — 生成 EARS 句式 PRD.md + 机读 handoff.yaml
|
|
68
|
-
5. **复核** — challenger 二次复核
|
|
59
|
+
需求不清晰时用 `@discover`,跑 5 阶段(散度 → 收敛 → 红旗对抗 → PRD 起草 → 复核),产出 `docs/specs/<slug>/{PRD.md, handoff.yaml}`,被下游 codeforge / planner / coder 自动消费;`discover-challenger` 全程强对抗,防 sycophancy。详见 [docs/discover/README.md](./docs/discover/README.md)。
|
|
69
60
|
|
|
70
|
-
|
|
61
|
+
## ADR 决策记录
|
|
71
62
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
### ADR 决策记录(adr-init)
|
|
75
|
-
|
|
76
|
-
在任意 git 项目根目录执行一次,把完整的 ADR 校验体系下发到该项目:
|
|
63
|
+
在任意 git 项目根执行一次,下发完整 ADR 校验体系(校验脚本 / 模板 / 索引 / PR 模板 / git hooks):
|
|
77
64
|
|
|
78
65
|
```bash
|
|
79
|
-
#
|
|
80
|
-
codeforge adr-init
|
|
81
|
-
|
|
82
|
-
# opencode 里直接说
|
|
83
|
-
/adr-init
|
|
84
|
-
|
|
85
|
-
# 常用选项
|
|
86
|
-
codeforge adr-init --dry-run # 只预览,不写文件
|
|
87
|
-
codeforge adr-init --force # 已有文件时覆盖(自动备份)
|
|
88
|
-
codeforge adr-init --write-prepare # 同时把 git config 写入 package.json prepare
|
|
66
|
+
codeforge adr-init # 或在 opencode 里说 /adr-init
|
|
67
|
+
codeforge adr-init --dry-run # 仅预览,不写文件
|
|
68
|
+
codeforge adr-init --force # 覆盖已有文件(自动备份)
|
|
89
69
|
```
|
|
90
70
|
|
|
91
|
-
|
|
71
|
+
把生成的文件提交进 git,协作者 clone 后执行 `git config core.hooksPath .githooks` 即可(npm 项目加 `--write-prepare` 可让 `npm install` 自动完成)。
|
|
92
72
|
|
|
93
|
-
|
|
94
|
-
|---|---|
|
|
95
|
-
| `scripts/adr-check.mjs` | ADR 体系合规校验(commit 时自动跑) |
|
|
96
|
-
| `scripts/adr-index-sync.mjs` | 自动同步 docs/adr/README.md 索引 |
|
|
97
|
-
| `docs/adr/template.md` | ADR 模板(含三向引用字段) |
|
|
98
|
-
| `docs/adr/README.md` | ADR 索引骨架 |
|
|
99
|
-
| `.github/pull_request_template.md` | PR 模板(含 ADR checklist) |
|
|
100
|
-
| `.githooks/pre-commit` | commit 时自动校验 ADR 规范 |
|
|
101
|
-
| `.githooks/pre-push` | push 时全量校验 |
|
|
102
|
-
|
|
103
|
-
**把生成的文件提交进 git**,其他人 clone 后跑一次即可:
|
|
104
|
-
|
|
105
|
-
```bash
|
|
106
|
-
git config core.hooksPath .githooks
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
npm 项目可加 `--write-prepare` 让 `npm install` 自动完成上面这步。
|
|
110
|
-
|
|
111
|
-
### 代码改动如何落地
|
|
112
|
-
|
|
113
|
-
每个 session 绑定独立 git worktree,AI 改动直接写到 worktree(不影响主仓);审批通过 `/merge` 命令触发 review-fix-review 闭环,通过后 squash merge 入主仓。
|
|
73
|
+
## Knowledge Hub(可选)
|
|
114
74
|
|
|
115
75
|
```bash
|
|
116
|
-
|
|
117
|
-
/discard-session # 放弃当前 session 的所有改动
|
|
76
|
+
export KNOWLEDGE_API_KEY=你的-token # Windows 用 [Environment]::SetEnvironmentVariable(...)
|
|
118
77
|
```
|
|
119
78
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
启用后 AI 会主动查团队历史经验、自动沉淀踩坑记录。**未配置不影响基础功能**。
|
|
123
|
-
|
|
124
|
-
```bash
|
|
125
|
-
# macOS / Linux
|
|
126
|
-
export KNOWLEDGE_API_KEY=你的-token
|
|
127
|
-
|
|
128
|
-
# Windows PowerShell
|
|
129
|
-
[Environment]::SetEnvironmentVariable("KNOWLEDGE_API_KEY", "你的-token", "User")
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
详细配置 token 找你的团队管理员。
|
|
133
|
-
|
|
134
|
-
## 升级
|
|
135
|
-
|
|
136
|
-
opencode 启动时会自动检查并升级,无需手动操作。
|
|
137
|
-
|
|
138
|
-
如需手动升级:
|
|
139
|
-
|
|
140
|
-
```bash
|
|
141
|
-
npm install -g @andyqiu/codeforge@latest
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
## 卸载
|
|
145
|
-
|
|
146
|
-
```bash
|
|
147
|
-
npm uninstall -g @andyqiu/codeforge
|
|
148
|
-
```
|
|
79
|
+
token 找团队管理员获取。未配置不影响基础功能。
|
|
149
80
|
|
|
150
81
|
## 出问题怎么办
|
|
151
82
|
|
|
152
83
|
| 现象 | 处理 |
|
|
153
84
|
|---|---|
|
|
154
85
|
| 装完 opencode 没识别新命令 | 重启 opencode |
|
|
155
|
-
| AI
|
|
156
|
-
|
|
|
86
|
+
| AI 改动没进主仓 | 改动在 session worktree 内,用 `/merge` 触发审批 + 合并 |
|
|
87
|
+
| 启动报版本不兼容 | 升级 opencode:`npm install -g opencode@latest` |
|
|
157
88
|
| 命令找不到 | 确认 npm global bin 在 PATH:`npm config get prefix` |
|
|
158
|
-
| 需要查当前版本 | `codeforge --version` |
|
|
159
89
|
|
|
160
|
-
|
|
90
|
+
## 卸载
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
npm uninstall -g @andyqiu/codeforge
|
|
94
|
+
```
|
|
161
95
|
|
|
162
96
|
## License
|
|
163
97
|
|
package/dist/index.js
CHANGED
|
@@ -19892,7 +19892,7 @@ import * as https from "node:https";
|
|
|
19892
19892
|
// lib/version-injected.ts
|
|
19893
19893
|
function getInjectedVersion() {
|
|
19894
19894
|
try {
|
|
19895
|
-
const v = "0.8.
|
|
19895
|
+
const v = "0.8.5";
|
|
19896
19896
|
if (typeof v === "string" && /^\d+\.\d+\.\d+/.test(v)) {
|
|
19897
19897
|
return v;
|
|
19898
19898
|
}
|