@winspan/claude-forge 0.1.1 → 0.1.2
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
|
@@ -7,13 +7,15 @@ SDLC 智能编排引擎 — 透明旁听 Claude Code 对话,让 Claude 越用
|
|
|
7
7
|
## 核心功能
|
|
8
8
|
|
|
9
9
|
- **意图识别**:自动分析每条指令的复杂度,决定走直接执行还是多阶段编排
|
|
10
|
+
- **Pattern 工作流**:AI 语义匹配用户意图,按预定义多阶段 Pattern 注入结构化执行指令
|
|
10
11
|
- **技能编排**:根据意图自动匹配并注入高质量技能(TDD、调试、重构、代码审查等)
|
|
11
|
-
- **Team 模式**:复杂任务自动启动并行 Agent
|
|
12
|
+
- **Team 模式**:复杂任务自动启动并行 Agent 分解——需求分析、代码搜索、方案规划三路并发
|
|
12
13
|
- **Pipeline 编排**:复杂任务自动拆解为 analyze → design → code → test → review 五阶段
|
|
13
14
|
- **质量门禁**:Pipeline 模式下每次代码修改后自动触发 AI 审查
|
|
15
|
+
- **项目规范(Convention)**:根据项目技术栈 + 已安装规范自动蒸馏项目级自定义规范,注入 CLAUDE.md
|
|
14
16
|
- **会话蒸馏**:将对话中的决策和时间线自动提炼为 `decisions.md` 和 `timeline.md`
|
|
15
17
|
- **上下文续接**:会话中断后,下次打开自动恢复上次工作状态
|
|
16
|
-
- **结构化事件日志**:所有 Hook 事件按项目分类写入 `events.jsonl`,支持 `
|
|
18
|
+
- **结构化事件日志**:所有 Hook 事件按项目分类写入 `events.jsonl`,支持 `cf logs` 实时查看
|
|
17
19
|
- **CLAUDE.md 优化**:根据积累的决策日志自动优化项目规范文件,支持多语言生态子模块扫描
|
|
18
20
|
- **用户画像**:根据行为自适应调整干预深度(guided / balanced / autonomous)
|
|
19
21
|
|
|
@@ -30,18 +32,19 @@ SDLC 智能编排引擎 — 透明旁听 Claude Code 对话,让 Claude 越用
|
|
|
30
32
|
### 安装
|
|
31
33
|
|
|
32
34
|
```bash
|
|
33
|
-
|
|
34
|
-
npm install
|
|
35
|
-
npm run build
|
|
35
|
+
# 从 npm 安装(推荐)
|
|
36
|
+
npm install -g @winspan/claude-forge
|
|
36
37
|
|
|
37
|
-
#
|
|
38
|
-
|
|
38
|
+
# 或从源码构建
|
|
39
|
+
git clone <repo>
|
|
40
|
+
cd claude-forge
|
|
41
|
+
npm install && npm run build && npm link
|
|
39
42
|
```
|
|
40
43
|
|
|
41
44
|
### 初始化
|
|
42
45
|
|
|
43
46
|
```bash
|
|
44
|
-
|
|
47
|
+
cf init
|
|
45
48
|
```
|
|
46
49
|
|
|
47
50
|
`init` 会完成:
|
|
@@ -54,34 +57,12 @@ claude-forge init
|
|
|
54
57
|
|
|
55
58
|
### 启动守护进程
|
|
56
59
|
|
|
57
|
-
#### 方式一:交互式菜单(推荐)
|
|
58
|
-
|
|
59
60
|
```bash
|
|
60
|
-
|
|
61
|
-
|
|
61
|
+
# 交互式 TUI 菜单(无子命令时自动启动)
|
|
62
|
+
cf
|
|
62
63
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
```bash
|
|
66
|
-
./forge start # 启动
|
|
67
|
-
./forge stop # 停止
|
|
68
|
-
./forge restart # 重启
|
|
69
|
-
./forge status # 查看状态
|
|
70
|
-
./forge logs # 查看日志
|
|
71
|
-
./forge sessions # 查看会话
|
|
72
|
-
./forge distill # 手动蒸馏
|
|
73
|
-
./forge backup # 备份数据
|
|
74
|
-
./forge config # 配置 API
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
#### 方式二:CLI 命令
|
|
78
|
-
|
|
79
|
-
```bash
|
|
80
|
-
claude-forge daemon start # 后台启动
|
|
81
|
-
claude-forge daemon start --foreground # 前台启动(调试用)
|
|
82
|
-
claude-forge daemon stop
|
|
83
|
-
claude-forge daemon status
|
|
84
|
-
claude-forge daemon restart
|
|
64
|
+
# 或直接启动守护进程
|
|
65
|
+
cf daemon start
|
|
85
66
|
```
|
|
86
67
|
|
|
87
68
|
### 验证运行
|
|
@@ -97,12 +78,6 @@ claude-forge daemon restart
|
|
|
97
78
|
┗━━━━━━━━━━━━━━━━━━━━
|
|
98
79
|
```
|
|
99
80
|
|
|
100
|
-
也可以实时查看日志:
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
tail -f ~/.claude-forge/daemon.log | grep "\[Forge:"
|
|
104
|
-
```
|
|
105
|
-
|
|
106
81
|
---
|
|
107
82
|
|
|
108
83
|
## API Key 配置
|
|
@@ -111,16 +86,19 @@ Forge 自动从以下位置获取 API Key(优先级从高到低):
|
|
|
111
86
|
|
|
112
87
|
1. 环境变量 `ANTHROPIC_AUTH_TOKEN`
|
|
113
88
|
2. 环境变量 `ANTHROPIC_API_KEY`
|
|
114
|
-
3. 配置文件 `~/.claude-forge/config.yaml` 中的 `distill.api_key
|
|
89
|
+
3. 配置文件 `~/.claude-forge/config.yaml` 中的 `distill.api_key`
|
|
115
90
|
|
|
116
|
-
**推荐做法**:通过 shell profile
|
|
91
|
+
**推荐做法**:通过 shell profile 设置环境变量:
|
|
117
92
|
|
|
118
93
|
```bash
|
|
119
|
-
# 添加到 ~/.zshrc 或 ~/.bashrc
|
|
120
94
|
export ANTHROPIC_API_KEY="sk-ant-..."
|
|
121
95
|
```
|
|
122
96
|
|
|
123
|
-
|
|
97
|
+
如需使用自定义 API 端点(如代理服务):
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
cf config set distill.base_url https://your-proxy.example.com
|
|
101
|
+
```
|
|
124
102
|
|
|
125
103
|
---
|
|
126
104
|
|
|
@@ -135,7 +113,7 @@ Hook 脚本(bash)发送 JSON 事件到 Unix Socket
|
|
|
135
113
|
↓
|
|
136
114
|
守护进程接收 → 解析 → 分发到对应 Handler → 写入 events.jsonl
|
|
137
115
|
↓
|
|
138
|
-
UserPromptHandler → 意图分析 +
|
|
116
|
+
UserPromptHandler → 意图分析 + Pattern 路由 + 知识注入 + Pipeline 建议
|
|
139
117
|
PreToolUseHandler → 技能推荐注入 + Pipeline 阶段指令
|
|
140
118
|
PostToolUseHandler → 质量门禁 + Pipeline 进度跟踪 + 命中率记录
|
|
141
119
|
StopHandler → 蒸馏 + 续接快照 + 技能进化 + CLAUDE.md 自动更新
|
|
@@ -153,166 +131,169 @@ Claude 读取 additionalContext,按指令执行
|
|
|
153
131
|
| `~/.claude-forge/data.db` | SQLite 数据库 |
|
|
154
132
|
| `~/.claude-forge/config.yaml` | 配置文件 |
|
|
155
133
|
| `~/.claude-forge/daemon.log` | 守护进程日志 |
|
|
156
|
-
| `~/.claude-forge/events.jsonl` | 结构化事件日志(JSONL
|
|
134
|
+
| `~/.claude-forge/events.jsonl` | 结构化事件日志(JSONL,按项目分类) |
|
|
157
135
|
| `~/.claude-forge/orchestration-config.json` | 技能编排关键词映射 |
|
|
158
|
-
| `~/.claude-forge/
|
|
136
|
+
| `~/.claude-forge/patterns/` | Pattern 工作流定义(YAML) |
|
|
159
137
|
| `{project}/.claude-forge/decisions.md` | 项目决策日志 |
|
|
160
138
|
| `{project}/.claude-forge/timeline.md` | 项目时间线 |
|
|
161
|
-
| `{project}/.claude/
|
|
162
|
-
|
|
163
|
-
### 日志标签
|
|
164
|
-
|
|
165
|
-
| 标签 | 模块 |
|
|
166
|
-
|------|------|
|
|
167
|
-
| `[Forge:意图]` | 意图分析 |
|
|
168
|
-
| `[Forge:知识库]` | 知识库搜索 |
|
|
169
|
-
| `[Forge:Pipeline]` | Pipeline 编排 |
|
|
170
|
-
| `[Forge:处理器]` | 通用 Handler |
|
|
171
|
-
| `[Forge:编排]` | 技能编排匹配 |
|
|
172
|
-
| `[Forge:技能]` | 技能推荐 |
|
|
173
|
-
| `[Forge:质量门禁]` | 质量门禁审查 |
|
|
174
|
-
| `[Forge:蒸馏]` | 蒸馏触发 |
|
|
175
|
-
| `[Forge:画像]` | 用户画像 |
|
|
176
|
-
| `[Forge:团队]` | Team 模式并行 Agent 分解 |
|
|
177
|
-
| `[Forge:决策]` | 决策历史注入与去重 |
|
|
178
|
-
| `[Forge:预算]` | 上下文预算分配 |
|
|
179
|
-
| `[进化器]` | 技能进化 |
|
|
139
|
+
| `{project}/.claude-forge/custom-convention.yaml` | 项目级自定义规范 |
|
|
180
140
|
|
|
181
141
|
---
|
|
182
142
|
|
|
183
143
|
## CLI 命令参考
|
|
184
144
|
|
|
145
|
+
CLI 入口:`claude-forge`(完整命令)或 `cf`(别名)。无子命令时自动启动交互式 TUI 菜单。
|
|
146
|
+
|
|
185
147
|
### daemon — 守护进程管理
|
|
186
148
|
|
|
187
149
|
```bash
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
150
|
+
cf daemon start [-f] # 启动(-f 前台模式)
|
|
151
|
+
cf daemon stop # 停止
|
|
152
|
+
cf daemon status # 查看状态
|
|
153
|
+
cf daemon restart # 重启
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### convention — 项目规范管理
|
|
157
|
+
|
|
158
|
+
Convention 系统根据项目技术栈和已安装的源规范,自动蒸馏生成项目级自定义规范,并注入 CLAUDE.md。
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
cf convention list # 列出所有已安装的源规范
|
|
162
|
+
cf convention show <id> # 查看规范详情
|
|
163
|
+
cf convention add <url|path> # 安装源规范(自动触发蒸馏)
|
|
164
|
+
cf convention distill # 将已安装规范蒸馏为项目自定义规范
|
|
165
|
+
cf convention status # 查看当前项目规范绑定状态
|
|
166
|
+
cf convention evolve # AI 自进化自定义规范(基于决策日志)
|
|
192
167
|
```
|
|
193
168
|
|
|
169
|
+
**蒸馏逻辑**:
|
|
170
|
+
- 无源规范时:根据项目技术栈自动生成规范
|
|
171
|
+
- 有源规范时:融合所有源规范的核心优势,冲突维度生成"视场景而定"的折中原则
|
|
172
|
+
- 已有自定义规范时:增量合并,不删除现有内容
|
|
173
|
+
|
|
174
|
+
**自动初始化**:在未初始化的项目中打开 Claude Code 时,Forge 会自动提示是否初始化,确认后自动执行 `cf convention distill`。
|
|
175
|
+
|
|
176
|
+
### pattern — Pattern 工作流
|
|
177
|
+
|
|
178
|
+
Pattern 是多阶段工作流定义,存储在 `~/.claude-forge/patterns/*.yaml`。Forge 根据用户意图 AI 语义匹配最合适的 Pattern,并按阶段注入结构化执行指令。
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
cf pattern list # 列出所有已安装的 Pattern
|
|
182
|
+
cf pattern show <id> # 查看 Pattern 详情
|
|
183
|
+
cf pattern evolve [id] # AI 自进化(基于执行历史优化 YAML)
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
**内置 Pattern**:
|
|
187
|
+
- `bmad` — BMad 敏捷开发模式(产品分析 → 架构设计 → 编码实现 → 代码审查)
|
|
188
|
+
- `harness-engineering` — 安全重构模式(理解 → 织网 → 修改 → 验证)
|
|
189
|
+
- `spec-driven` — 规格驱动开发
|
|
190
|
+
|
|
194
191
|
### skill — 技能管理
|
|
195
192
|
|
|
196
193
|
```bash
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
194
|
+
cf skill list # 列出所有技能
|
|
195
|
+
cf skill search <query> # 搜索技能
|
|
196
|
+
cf skill install <url> # 从 URL 安装技能
|
|
197
|
+
cf skill evolve # 触发技能进化(淘汰低质量、生成项目专属)
|
|
198
|
+
cf skill distill # 手动触发社区蒸馏
|
|
199
|
+
cf skill orchestration list # 查看编排关键词映射(含命中率统计)
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### pipeline — Pipeline 编排
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
cf pipeline list # 查看活跃 Pipeline
|
|
206
|
+
cf pipeline close --expired # 关闭过期 Pipeline(>2小时未更新)
|
|
207
|
+
cf pipeline close --all # 关闭全部 Pipeline
|
|
208
|
+
cf pipeline close <id> # 关闭指定 Pipeline
|
|
201
209
|
```
|
|
202
210
|
|
|
203
211
|
### profile — 用户画像
|
|
204
212
|
|
|
205
213
|
```bash
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
214
|
+
cf profile show # 查看当前画像
|
|
215
|
+
cf profile init [--infer] # 初始化(--infer 从现有数据推断)
|
|
216
|
+
cf profile set # 更新画像字段
|
|
217
|
+
cf profile reset # 重置为默认值
|
|
218
|
+
cf profile export # 导出画像文件
|
|
219
|
+
cf profile evolve # AI 分析行为日志,自动进化画像
|
|
212
220
|
```
|
|
213
221
|
|
|
214
|
-
`profile
|
|
222
|
+
`profile set` 支持的选项:
|
|
215
223
|
|
|
216
224
|
| 选项 | 说明 |
|
|
217
225
|
|------|------|
|
|
218
|
-
| `--role <role>` |
|
|
226
|
+
| `--role <role>` | 角色(backend / frontend / fullstack) |
|
|
219
227
|
| `--level <level>` | 经验水平(junior / mid / senior) |
|
|
220
228
|
| `--style <style>` | 工作风格(guided / balanced / autonomous) |
|
|
221
229
|
| `--stack <stack>` | 技术栈(逗号分隔) |
|
|
222
|
-
| `--infer`(仅 init)| 从现有数据自动推断 |
|
|
223
230
|
|
|
224
|
-
###
|
|
231
|
+
### claudemd — CLAUDE.md 管理
|
|
225
232
|
|
|
226
233
|
```bash
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
234
|
+
cf claudemd detect # 检测项目技术栈(无需 API)
|
|
235
|
+
cf claudemd init # 生成项目级 CLAUDE.md
|
|
236
|
+
cf claudemd init -m # 生成模块级 CLAUDE.md(继承父项目规范)
|
|
237
|
+
cf claudemd init -f # 强制重新生成(覆盖已有)
|
|
238
|
+
cf claudemd scan # 扫描并批量生成所有子模块的 CLAUDE.md
|
|
239
|
+
cf claudemd refine # 基于蒸馏数据手动触发 CLAUDE.md 细化
|
|
240
|
+
cf claudemd show # 查看当前 CLAUDE.md 内容
|
|
241
|
+
cf claudemd modules show # 查看业务模块配置
|
|
242
|
+
cf claudemd modules add-root <dir> # 将目录下每个子目录视为独立模块
|
|
243
|
+
cf claudemd modules add-dir <path> # 将具体路径注册为独立模块
|
|
244
|
+
cf claudemd modules skip <dir> # 扫描时跳过该目录
|
|
230
245
|
```
|
|
231
246
|
|
|
232
247
|
### logs — 事件日志查看
|
|
233
248
|
|
|
234
249
|
```bash
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
claude-forge logs --daemon # 只看守护进程日志
|
|
243
|
-
claude-forge logs --compact # 紧凑格式
|
|
244
|
-
claude-forge logs --raw # 原始 JSON 输出
|
|
245
|
-
claude-forge logs --projects # 列出所有有日志的项目名
|
|
250
|
+
cf logs # 查看最近事件(过滤 PreToolUse/PostToolUse 噪音)
|
|
251
|
+
cf logs --verbose # 查看所有事件(含 PreToolUse/PostToolUse)
|
|
252
|
+
cf logs -p <name> # 按项目名过滤
|
|
253
|
+
cf logs -n <N> # 只看最后 N 条
|
|
254
|
+
cf logs -f # 实时跟踪(follow)
|
|
255
|
+
cf logs --daemon # 只看守护进程日志
|
|
256
|
+
cf logs --projects # 列出所有有日志的项目名
|
|
246
257
|
```
|
|
247
258
|
|
|
248
|
-
###
|
|
259
|
+
### distill — 手动蒸馏
|
|
249
260
|
|
|
250
261
|
```bash
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
262
|
+
cf distill # 立即蒸馏
|
|
263
|
+
cf distill -s <session-id> # 蒸馏指定会话
|
|
264
|
+
cf distill -p <project-path> # 蒸馏指定项目
|
|
254
265
|
```
|
|
255
266
|
|
|
256
267
|
### config — 配置管理
|
|
257
268
|
|
|
258
269
|
```bash
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
270
|
+
cf config show # 查看当前配置
|
|
271
|
+
cf config set <key> <value> # 设置配置项(支持嵌套键,如 distill.base_url)
|
|
272
|
+
cf config reset # 重置为默认值
|
|
262
273
|
```
|
|
263
274
|
|
|
264
275
|
### backup — 备份与恢复
|
|
265
276
|
|
|
266
277
|
```bash
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
claude-forge restore <file> # 从备份恢复(默认策略:merge)
|
|
271
|
-
claude-forge restore <file> -s overwrite # 覆盖恢复
|
|
272
|
-
claude-forge export -p <project> # 导出指定项目数据
|
|
273
|
-
```
|
|
274
|
-
|
|
275
|
-
### claudemd — CLAUDE.md 管理
|
|
276
|
-
|
|
277
|
-
```bash
|
|
278
|
-
claude-forge claudemd detect # 检测项目技术栈(无需 API)
|
|
279
|
-
claude-forge claudemd init # 生成项目级 CLAUDE.md
|
|
280
|
-
claude-forge claudemd init -m # 生成模块级 CLAUDE.md(继承父项目规范)
|
|
281
|
-
claude-forge claudemd init -f # 强制重新生成(覆盖已有)
|
|
282
|
-
claude-forge claudemd init -f --reset # 完全重置(丢弃用户内容)
|
|
283
|
-
claude-forge claudemd scan # 扫描并批量生成所有子模块的 CLAUDE.md
|
|
284
|
-
claude-forge claudemd refine # 基于蒸馏数据手动触发 CLAUDE.md 细化
|
|
285
|
-
claude-forge claudemd show # 查看当前 CLAUDE.md 内容
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
所有子命令支持 `-p, --project <path>` 指定项目路径(默认 `cwd`)。
|
|
289
|
-
|
|
290
|
-
#### 业务模块配置(.forge-modules.yaml)
|
|
291
|
-
|
|
292
|
-
`claudemd scan` 默认通过语言标记文件(`package.json`、`go.mod` 等)自动识别子模块。对于没有构建系统的业务功能模块(如 `services/user`、`modules/payment`),可以用 `claudemd modules` 手动配置:
|
|
293
|
-
|
|
294
|
-
```bash
|
|
295
|
-
claude-forge claudemd modules show # 查看当前配置
|
|
296
|
-
claude-forge claudemd modules add-root services # services/ 下每个子目录视为独立模块
|
|
297
|
-
claude-forge claudemd modules add-dir infrastructure/k8s # 将具体路径注册为独立模块
|
|
298
|
-
claude-forge claudemd modules skip legacy # 扫描时跳过该目录
|
|
299
|
-
claude-forge claudemd modules remove root services # 移除配置项(root | dir | skip)
|
|
278
|
+
cf backup # 创建备份
|
|
279
|
+
cf restore <file> # 从备份恢复
|
|
280
|
+
cf export -p <project> # 导出指定项目数据
|
|
300
281
|
```
|
|
301
282
|
|
|
302
|
-
配置写入项目根目录的 `.forge-modules.yaml`,`claudemd scan` 自动读取,三类配置结果自动去重合并。
|
|
303
|
-
|
|
304
283
|
### 其他
|
|
305
284
|
|
|
306
285
|
```bash
|
|
307
|
-
|
|
308
|
-
|
|
286
|
+
cf init # 初始化(注册 Hook)
|
|
287
|
+
cf uninit # 卸载(移除 Hook,数据保留)
|
|
288
|
+
cf query stats # 统计信息
|
|
289
|
+
cf query sessions # 会话列表
|
|
309
290
|
```
|
|
310
291
|
|
|
311
292
|
---
|
|
312
293
|
|
|
313
294
|
## 配置说明
|
|
314
295
|
|
|
315
|
-
配置文件位于 `~/.claude-forge/config.yaml
|
|
296
|
+
配置文件位于 `~/.claude-forge/config.yaml`。
|
|
316
297
|
|
|
317
298
|
```yaml
|
|
318
299
|
# 存储
|
|
@@ -335,11 +316,6 @@ resume:
|
|
|
335
316
|
timeout_minutes: 10
|
|
336
317
|
max_age_days: 7
|
|
337
318
|
|
|
338
|
-
# 备份
|
|
339
|
-
backup:
|
|
340
|
-
include_profile: false
|
|
341
|
-
encrypt_by_default: false
|
|
342
|
-
|
|
343
319
|
# CLAUDE.md 自动生成
|
|
344
320
|
claudemd:
|
|
345
321
|
auto_generate: true
|
|
@@ -353,9 +329,15 @@ autopilot:
|
|
|
353
329
|
knowledge_search: true
|
|
354
330
|
quality_gate: true
|
|
355
331
|
quality_review_interval: 3 # 每 N 次代码修改触发一次审查
|
|
356
|
-
knowledge_max_age_days: 90
|
|
357
332
|
auto_start_pipeline: true
|
|
358
333
|
pipeline_confirm_mode: prompt # prompt | auto | preview
|
|
334
|
+
|
|
335
|
+
# Pattern 引擎
|
|
336
|
+
pattern_engine:
|
|
337
|
+
enabled: true
|
|
338
|
+
route_timeout_ms: 60000
|
|
339
|
+
evolve_interval_days: 7
|
|
340
|
+
evolve_min_executions: 20
|
|
359
341
|
```
|
|
360
342
|
|
|
361
343
|
### pipeline_confirm_mode 说明
|
|
@@ -368,19 +350,25 @@ autopilot:
|
|
|
368
350
|
|
|
369
351
|
---
|
|
370
352
|
|
|
371
|
-
##
|
|
353
|
+
## 意图识别与编排
|
|
372
354
|
|
|
373
|
-
|
|
374
|
-
|--------|------|----------------|
|
|
375
|
-
| simple | 查询、git 操作、无代码改动 | 否 |
|
|
376
|
-
| moderate | 1-5 个文件改动、范围明确 | 否 |
|
|
377
|
-
| complex | 6+ 文件、架构变更、范围不清 | 是 |
|
|
355
|
+
### 复杂度分级
|
|
378
356
|
|
|
379
|
-
|
|
357
|
+
| 复杂度 | 条件 | 执行路径 |
|
|
358
|
+
|--------|------|---------|
|
|
359
|
+
| `simple` | 查询、git 操作、无代码改动 | 直接放行 |
|
|
360
|
+
| `moderate` | 1-5 个文件改动、范围明确 | 注入技能提示 |
|
|
361
|
+
| `complex` | 6+ 文件、架构变更、范围不清 | Pattern 路由 → Pipeline |
|
|
362
|
+
|
|
363
|
+
### Pattern 路由优先级
|
|
380
364
|
|
|
381
|
-
|
|
365
|
+
1. **Pattern 路由**(AI 语义匹配)— 命中则按 Pattern 阶段执行
|
|
366
|
+
2. **Pipeline 编排**(复杂度 complex)— 未命中 Pattern 时启动
|
|
367
|
+
3. **技能注入**(moderate)— 直接注入相关技能提示
|
|
382
368
|
|
|
383
|
-
|
|
369
|
+
### Pipeline 方案
|
|
370
|
+
|
|
371
|
+
意图分析判断为 `complex` 且未命中 Pattern 时,Forge 展示三种方案:
|
|
384
372
|
|
|
385
373
|
```
|
|
386
374
|
A. 完整编排(推荐)— analyze → design → code → test → review
|
|
@@ -388,24 +376,16 @@ B. 快速编排 — design → code → test
|
|
|
388
376
|
C. 手动控制 — 不使用自动编排
|
|
389
377
|
```
|
|
390
378
|
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
---
|
|
394
|
-
|
|
395
|
-
## Team 模式
|
|
379
|
+
### Team 模式
|
|
396
380
|
|
|
397
381
|
同时满足以下条件时自动启用:复杂度为 `complex`、预估文件 > 5、需要 Pipeline。
|
|
398
382
|
|
|
399
|
-
启用后要求 Claude 并行启动三个子 Agent:
|
|
400
|
-
|
|
401
383
|
| 子 Agent | 职责 |
|
|
402
384
|
|----------|------|
|
|
403
385
|
| Agent A — 需求分析 | 分析核心功能点、边界条件、验收标准 |
|
|
404
386
|
| Agent B — 代码库搜索 | 定位相关文件、测试和可复用组件 |
|
|
405
387
|
| Agent C — 方案规划 | 制定文件改动清单和分阶段实现步骤 |
|
|
406
388
|
|
|
407
|
-
> Team 模式仅在 `pipeline_confirm_mode: auto` 或 `interventionLevel: auto` 时触发。
|
|
408
|
-
|
|
409
389
|
---
|
|
410
390
|
|
|
411
391
|
## 用户画像
|
|
@@ -417,7 +397,7 @@ Pipeline 运行期间,每次代码修改后自动触发质量门禁审查(sp
|
|
|
417
397
|
| `autonomous` | 静默模式,不注入任何上下文 |
|
|
418
398
|
|
|
419
399
|
```bash
|
|
420
|
-
|
|
400
|
+
cf profile set --style autonomous
|
|
421
401
|
```
|
|
422
402
|
|
|
423
403
|
---
|
|
@@ -461,8 +441,8 @@ npm rebuild better-sqlite3
|
|
|
461
441
|
**Q: 如何查看 Forge 是否在工作?**
|
|
462
442
|
|
|
463
443
|
```bash
|
|
464
|
-
|
|
465
|
-
|
|
444
|
+
cf daemon status
|
|
445
|
+
cf logs -f
|
|
466
446
|
```
|
|
467
447
|
|
|
468
448
|
**Q: 重装 Node.js 后守护进程启动失败?**
|
|
@@ -480,7 +460,7 @@ autopilot:
|
|
|
480
460
|
quality_gate: false
|
|
481
461
|
```
|
|
482
462
|
|
|
483
|
-
重启守护进程生效:`
|
|
463
|
+
重启守护进程生效:`cf daemon restart`
|
|
484
464
|
|
|
485
465
|
**Q: decisions.md 和 timeline.md 在哪里?**
|
|
486
466
|
|
|
@@ -488,14 +468,15 @@ autopilot:
|
|
|
488
468
|
your-project/
|
|
489
469
|
└── .claude-forge/
|
|
490
470
|
├── decisions.md
|
|
491
|
-
|
|
471
|
+
├── timeline.md
|
|
472
|
+
└── custom-convention.yaml
|
|
492
473
|
```
|
|
493
474
|
|
|
494
475
|
**Q: 如何完全卸载?**
|
|
495
476
|
|
|
496
477
|
```bash
|
|
497
|
-
|
|
498
|
-
rm -rf ~/.claude-forge
|
|
478
|
+
cf uninit # 移除 Hook(保留数据)
|
|
479
|
+
rm -rf ~/.claude-forge # 彻底清除数据
|
|
499
480
|
```
|
|
500
481
|
|
|
501
482
|
---
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-tool-use-handler.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/pre-tool-use-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKpD,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;gBAE3C,GAAG,EAAE,cAAc;IAIzB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"pre-tool-use-handler.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/pre-tool-use-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKpD,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;gBAE3C,GAAG,EAAE,cAAc;IAIzB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IA8C7D,OAAO,CAAC,mBAAmB;CAkB5B"}
|
|
@@ -21,7 +21,8 @@ export class PreToolUseHandler extends BaseHookHandler {
|
|
|
21
21
|
// 2. Skill 推荐注入
|
|
22
22
|
const skillRec = await skillRegistry.processEvent(event);
|
|
23
23
|
if (skillRec) {
|
|
24
|
-
|
|
24
|
+
const preview = skillRec.replace(/\[Forge 自动编排\]\s*/, '').split('\n')[0].substring(0, 80);
|
|
25
|
+
logger.info(`[Forge:技能] 已注入推荐(触发工具:${event.tool_name}):${preview}`);
|
|
25
26
|
decision = this.appendContext(decision, ForgeFormatter.formatModuleNotification('skill', skillRec));
|
|
26
27
|
}
|
|
27
28
|
// 3. Pipeline 阶段指令注入
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-tool-use-handler.js","sourceRoot":"","sources":["../../../src/daemon/handlers/pre-tool-use-handler.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,MAAM,OAAO,iBAAkB,SAAQ,eAAe;IACnC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAEvD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAiB;QAC5B,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAEzG,IAAI,QAAQ,GAAwB,IAAI,CAAC;QAEzC,0BAA0B;QAC1B,IAAI,aAAa,EAAE,CAAC;YAClB,QAAQ,GAAG,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACnD,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,oBAAoB,KAAK,CAAC,SAAS,aAAa,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/E,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACzD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"pre-tool-use-handler.js","sourceRoot":"","sources":["../../../src/daemon/handlers/pre-tool-use-handler.ts"],"names":[],"mappings":"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"}
|