@bbyx0011/ghostcode 0.1.0

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 (42) hide show
  1. package/bin/ghostcode-mcp +11 -0
  2. package/bin/ghostcode-mcp-darwin-arm64 +0 -0
  3. package/bin/ghostcode-mcp-darwin-x64 +0 -0
  4. package/bin/ghostcode-mcp-linux-x64 +0 -0
  5. package/bin/ghostcode-wrapper +11 -0
  6. package/bin/ghostcode-wrapper-darwin-arm64 +0 -0
  7. package/bin/ghostcode-wrapper-darwin-x64 +0 -0
  8. package/bin/ghostcode-wrapper-linux-x64 +0 -0
  9. package/bin/ghostcoded-darwin-arm64 +0 -0
  10. package/bin/ghostcoded-darwin-x64 +0 -0
  11. package/bin/ghostcoded-linux-x64 +0 -0
  12. package/dist/cli.d.ts +21 -0
  13. package/dist/cli.js +97 -0
  14. package/dist/daemon.d.ts +72 -0
  15. package/dist/index.d.ts +31 -0
  16. package/dist/index.js +35 -0
  17. package/dist/install.d.ts +61 -0
  18. package/dist/ipc.d.ts +121 -0
  19. package/dist/postinstall.d.ts +42 -0
  20. package/dist/session-lease.d.ts +110 -0
  21. package/dist/web.d.ts +51 -0
  22. package/hooks/hooks.json +101 -0
  23. package/package.json +29 -0
  24. package/prompts/codex-analyzer.md +64 -0
  25. package/prompts/codex-reviewer.md +73 -0
  26. package/prompts/gemini-analyzer.md +82 -0
  27. package/prompts/gemini-reviewer.md +91 -0
  28. package/scripts/hook-pre-compact.mjs +128 -0
  29. package/scripts/hook-pre-tool-use.mjs +225 -0
  30. package/scripts/hook-session-end.mjs +108 -0
  31. package/scripts/hook-session-start.mjs +243 -0
  32. package/scripts/hook-stop.mjs +143 -0
  33. package/scripts/hook-subagent-start.mjs +231 -0
  34. package/scripts/hook-subagent-stop.mjs +168 -0
  35. package/scripts/hook-user-prompt-submit.mjs +134 -0
  36. package/scripts/lib/daemon-client.mjs +165 -0
  37. package/scripts/lib/stdin.mjs +88 -0
  38. package/scripts/run.mjs +98 -0
  39. package/skills/execute/SKILL.md +481 -0
  40. package/skills/plan/SKILL.md +318 -0
  41. package/skills/research/SKILL.md +267 -0
  42. package/skills/review/SKILL.md +238 -0
@@ -0,0 +1,481 @@
1
+ ---
2
+ name: execute
3
+ description: 智能执行引擎:读取 gc:plan 计划文件,按 execution_mode 自动选择并行(Team Builder)或串行(TDD)执行模式
4
+ aliases:
5
+ - gc execute
6
+ - 执行
7
+ do_not_use_when: 尚未运行 gc:plan 生成计划文件
8
+ ---
9
+
10
+ ## Purpose
11
+
12
+ 统一执行入口,读取 gc:plan 产出的计划文件(`.claude/plan/<任务名>.md`)中的
13
+ `execution_mode` 字段,自动分叉到两种执行模式:
14
+
15
+ - **parallel**:Daemon 在线 + Agent Teams 并行实施(原 team-exec)
16
+ - **serial**:单 Agent TDD 串行实施 + 归档闭环(原 spec-impl)
17
+
18
+ 两种模式根本不同:parallel 需要 GhostCode Daemon 在线和 Agent Teams 环境,
19
+ serial 不依赖 Daemon,单 Agent 独立完成全部 TDD 流程。
20
+
21
+ ## Use When
22
+
23
+ - 用户输入 "gc execute"、"gc:execute"、"执行"
24
+ - 已完成 gc:plan,计划文件存在于 `.claude/plan/` 目录
25
+ - 需要按计划执行实施
26
+
27
+ ## Do Not Use When
28
+
29
+ - gc:plan 尚未运行(计划文件不存在)
30
+ - 任务已全部完成
31
+
32
+ ## Steps
33
+
34
+ ### Step 0: 读取计划文件
35
+
36
+ 确认任务名称。读取 `.claude/plan/<任务名>.md`,提取 `execution_mode` 字段。
37
+
38
+ - 若 `execution_mode: parallel` → 进入 **parallel 分支**(Step P1 ~ P3)
39
+ - 若 `execution_mode: serial` → 进入 **serial 分支**(Step S1 ~ S2)
40
+ - 若计划文件不存在 → 报错:「计划文件不存在,请先运行 `gc:plan <任务名>` 生成计划」,终止
41
+
42
+ ---
43
+
44
+ ## Parallel 分支(Team Builder 并行执行)
45
+
46
+ ### Step P1: Daemon 健康检查
47
+
48
+ 调用 GhostCode MCP 工具验证 Daemon 在线:
49
+
50
+ 1. 调用 ToolSearch 搜索 "+ghostcode message" 加载 GhostCode MCP 工具
51
+ 2. 调用 `ghostcode_group_info` 确认 Daemon 在线且 Group 存在
52
+ - 如果失败:报错「GhostCode Daemon 未运行,parallel 模式需要 Daemon,请先启动 Daemon」,终止
53
+ 3. 检测 Agent Teams 是否可用:
54
+ ```bash
55
+ echo $CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS
56
+ ```
57
+ 若不可用,输出启用指引后终止:
58
+ ```
59
+ Agent Teams 未启用。请先在 settings.json 中添加:
60
+ { "env": { "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" } }
61
+ ```
62
+
63
+ **MCP 调用**:健康检查通过后发送消息:
64
+ ```
65
+ ghostcode_message_send({ text: "gc:execute parallel 启动:Daemon 在线,准备解析计划文件" })
66
+ ```
67
+
68
+ ### Step P2: Team Builder 并行执行
69
+
70
+ 解析计划文件中的子任务列表、文件范围、依赖关系、并行分组(Layer 结构)。
71
+
72
+ 向用户展示摘要并确认:
73
+ ```
74
+ 即将并行实施:
75
+ - 子任务:N 个
76
+ - 并行分组:Layer 1 (X 个并行) -> Layer 2 (Y 个)
77
+ - Builder 数量:N 个
78
+ 确认开始?
79
+ ```
80
+
81
+ 用户确认后,创建 Agent Team,按 Layer 分组 spawn Builder teammates(Sonnet)。
82
+
83
+ 每个 Builder 的 spawn prompt 必须包含:
84
+
85
+ ```
86
+ 你是 Builder,负责实施一个子任务。严格按照以下指令执行。
87
+
88
+ ## 你的任务
89
+ <从计划文件中提取该 Builder 负责的子任务全部内容,包括实施步骤>
90
+
91
+ ## 工作目录
92
+ <绝对路径>
93
+
94
+ ## 文件范围约束(硬性规则)
95
+ 你只能创建或修改以下文件:
96
+ <文件列表>
97
+ 严禁修改任何其他文件。违反此规则等于任务失败。
98
+
99
+ ## GhostCode 验收规范
100
+ - Rust 文件:cargo build 零警告 + cargo test 全通过
101
+ - TS 文件:pnpm typecheck + pnpm test 全通过
102
+ - 遵循中文注释规范,作者署名 Atlas.oi
103
+
104
+ ## TDD 要求
105
+ 1. 先创建测试文件(xxx_test.rs 或 xxx.test.ts)
106
+ 2. 运行测试确认 Red(测试失败)
107
+ 3. 写实现代码让测试通过(Green)
108
+ 4. 重构(Refactor)
109
+
110
+ ## GhostCode 消息报告(MANDATORY)
111
+ 使用 ToolSearch 搜索 "+ghostcode message" 加载 GhostCode MCP 工具,然后在关键节点发送消息:
112
+ - 开始任务:ghostcode_message_send({ text: "开始: <任务名>", to: ["lead"] })
113
+ - 完成任务:ghostcode_message_send({ text: "完成: <任务名>,文件: <列表>", to: ["lead"] })
114
+ - 遇到阻塞:ghostcode_message_send({ text: "阻塞: <描述>", to: ["lead"], priority: "attention" })
115
+ MCP 工具调用失败时报告错误,不静默忽略。
116
+
117
+ 完成所有步骤后,使用 TaskUpdate 将任务标记为 completed。
118
+ ```
119
+
120
+ 依赖关系:Layer 2 的 Builder 任务设为依赖 Layer 1 的对应任务,等 Layer 1 完成后自动解锁。
121
+ Spawn 完成后,Lead 进入 delegate 模式,只协调不写码。
122
+
123
+ **监控进度**:
124
+
125
+ 等待所有 Builder 完成。定期调用 `ghostcode_dashboard_snapshot` 展示 Dashboard 实时状态。
126
+
127
+ 如果某个 Builder 遇到问题并发消息求助:
128
+ - 分析问题,给出指导建议
129
+ - 不要自己写代码替它完成
130
+
131
+ 如果某个 Builder 失败:
132
+ - 记录失败原因
133
+ - 不影响其他 Builder 继续执行
134
+
135
+ ### Step P3: 汇总 + 清理
136
+
137
+ 所有 Builder 完成后,汇总报告:
138
+
139
+ ```markdown
140
+ ## Team 并行实施完成
141
+
142
+ ### 变更摘要
143
+ | Builder | 子任务 | 状态 | 修改文件 |
144
+ |---------|--------|------|----------|
145
+ | Builder 1 | <名称> | 完成/失败 | file1, file2 |
146
+ | Builder 2 | <名称> | 完成/失败 | file3, file4 |
147
+
148
+ ### 后续建议
149
+ 1. 运行完整测试验证集成:cargo test + pnpm test
150
+ 2. 检查 Rust 核心与 TS Plugin 的 IPC 接口是否对齐
151
+ 3. 运行 gc:review 进行审查
152
+ ```
153
+
154
+ **MCP 调用**:汇总完成后发送消息:
155
+ ```
156
+ ghostcode_message_send({ text: "gc:execute parallel 完成:N/M 个子任务成功,详见变更摘要" })
157
+ ```
158
+
159
+ 关闭所有 teammates,清理 team。
160
+
161
+ ---
162
+
163
+ ## Serial 分支(TDD 串行执行)
164
+
165
+ ### Step S1: TDD 串行执行
166
+
167
+ 按计划文件的任务列表顺序逐一执行,每个任务遵循 TDD 三阶段:
168
+
169
+ #### Red 阶段
170
+
171
+ 先创建测试文件,让测试编译通过但断言失败:
172
+
173
+ **Rust 测试**:
174
+ ```rust
175
+ // src/core/src/<模块>/<功能>_test.rs
176
+ #[cfg(test)]
177
+ mod tests {
178
+ use super::*;
179
+
180
+ #[test]
181
+ fn test_<功能名>() {
182
+ // Red: 断言预期结果,实现还不存在
183
+ let result = <功能函数>(/* 参数 */);
184
+ assert_eq!(result, <预期值>);
185
+ }
186
+ }
187
+ ```
188
+
189
+ 验证 Red(必须):
190
+ ```bash
191
+ cargo test <测试名> 2>&1
192
+ # 预期:测试失败(编译错误或断言失败均可)
193
+ ```
194
+
195
+ **TS 测试**:
196
+ ```typescript
197
+ // src/plugin/src/<模块>/<功能>.test.ts
198
+ import { describe, it, expect } from "vitest";
199
+
200
+ describe("<功能名>", () => {
201
+ it("应该 <预期行为>", () => {
202
+ // Red: 写断言,函数还未实现
203
+ expect(<功能函数>()).toBe(<预期值>);
204
+ });
205
+ });
206
+ ```
207
+
208
+ 验证 Red:
209
+ ```bash
210
+ pnpm vitest run src/plugin/src/<模块>/<功能>.test.ts
211
+ # 预期:测试失败
212
+ ```
213
+
214
+ #### Green 阶段
215
+
216
+ 写最少实现代码,让测试通过:
217
+
218
+ **Rust 实现**:
219
+ ```rust
220
+ // src/core/src/<模块>/<功能>.rs
221
+ pub fn <功能函数>(/* 参数 */) -> <返回类型> {
222
+ // 最少实现,不过度设计
223
+ }
224
+ ```
225
+
226
+ 验证 Green:
227
+ ```bash
228
+ cargo test <测试名>
229
+ # 预期:测试通过
230
+ cargo build 2>&1 | grep -E "^error"
231
+ # 预期:无编译错误
232
+ ```
233
+
234
+ **TS 实现**:
235
+ ```typescript
236
+ // src/plugin/src/<模块>/<功能>.ts
237
+ export function <功能函数>(/* 参数 */): <返回类型> {
238
+ // 最少实现
239
+ }
240
+ ```
241
+
242
+ 验证 Green:
243
+ ```bash
244
+ pnpm vitest run src/plugin/src/<模块>/<功能>.test.ts
245
+ # 预期:测试通过
246
+ ```
247
+
248
+ #### Refactor 阶段
249
+
250
+ 集成到现有模块(mod.rs / index.ts),确保测试仍通过:
251
+
252
+ ```bash
253
+ # Rust:集成后验证
254
+ cargo test && cargo build
255
+
256
+ # TS:集成后验证
257
+ pnpm test && pnpm typecheck
258
+ ```
259
+
260
+ #### 外部模型协作(可选)
261
+
262
+ 对复杂算法或性能敏感代码,可调用外部模型获取参考实现。
263
+
264
+ **CRITICAL**: 必须在一条消息中同时发起两个 Bash 后台调用,run_in_background: true。
265
+
266
+ **Bash 调用 1(Codex 后端分析)**:
267
+ ```bash
268
+ ~/.ghostcode/bin/ghostcode-wrapper --backend codex --workdir "$(pwd)" --timeout 600 --stdin <<'CODEX_TASK'
269
+ ROLE_FILE: ~/.ghostcode/prompts/codex-analyzer.md
270
+
271
+ 你正在为 GhostCode 项目(Rust 核心 + TS Plugin 多 Agent 协作平台)提供 Rust 核心实现参考。
272
+
273
+ 请针对当前实施任务,提供:
274
+ 1. Rust 实现参考方案:数据结构设计、核心算法逻辑、关键函数签名
275
+ 2. 注意事项:内存安全、并发安全、错误处理的具体建议
276
+ 3. 示例代码片段:仅作参考,实际实现需人工重写为生产级代码
277
+
278
+ 注意:输出仅作原型参考,最终代码必须由人工重写,确保符合项目规范(中文注释、Atlas.oi 署名)。
279
+ CODEX_TASK
280
+ ```
281
+
282
+ **Bash 调用 2(Gemini 前端分析)**:
283
+ ```bash
284
+ ~/.ghostcode/bin/ghostcode-wrapper --backend gemini --workdir "$(pwd)" --timeout 600 --stdin <<'GEMINI_TASK'
285
+ ROLE_FILE: ~/.ghostcode/prompts/gemini-analyzer.md
286
+
287
+ 你正在为 GhostCode 项目(Rust 核心 + TS Plugin 多 Agent 协作平台)提供 TS Plugin 实现参考。
288
+
289
+ 请针对当前实施任务,提供:
290
+ 1. TypeScript 实现参考方案:类型定义、函数实现、接口设计
291
+ 2. 注意事项:类型安全、hook 生命周期、IPC 协议合规的具体建议
292
+ 3. 示例代码片段:仅作参考,实际实现需人工重写为生产级代码
293
+
294
+ 注意:输出仅作原型参考,最终代码必须由人工重写,确保符合项目规范(中文注释、Atlas.oi 署名)。
295
+ GEMINI_TASK
296
+ ```
297
+
298
+ 等待两个后台任务完成:使用 TaskOutput(block: true, timeout: 600000) 读取各自结果。
299
+
300
+ **wrapper 失败处理(按退出码分级)**:
301
+ - exit 127(命令不存在)→ 终止流程,提示「ghostcode-wrapper 未安装,请检查环境」
302
+ - exit 124(超时)→ 自动重试一次,仍失败则进入用户确认
303
+ - 其他(如 429 额度用完)→ AskUserQuestion 让用户选择:
304
+ [重试] / [跳过并记录 bypass_reason] / [终止整个流程]
305
+ - 用户选「跳过」→ ghostcode_session_gate_submit(session_id, model,
306
+ output_type="bypass", data={}, bypass=true, bypass_reason="quota_exceeded")
307
+ - 用户选「终止」→ ghostcode_session_gate_abort(session_id) 后退出
308
+
309
+ **MANDATORY 原则**:外部模型输出仅作原型参考,必须人工重写为生产级代码:
310
+ - 移除冗余
311
+ - 确保命名清晰简洁
312
+ - 对齐项目风格(中文注释、Atlas.oi 署名)
313
+ - 验证无新依赖引入
314
+
315
+ #### 副作用审查(应用前必须执行)
316
+
317
+ 在将变更应用到代码库前,逐项验证:
318
+
319
+ - [ ] 变更范围不超过计划文件中的文件范围
320
+ - [ ] 不影响计划文件范围外的模块
321
+ - [ ] 未引入新的外部依赖(Cargo.toml / package.json 未变)
322
+ - [ ] 未破坏现有接口(IPC 协议向后兼容)
323
+
324
+ 若发现问题,修正后重新验证。
325
+
326
+ #### 多模型交叉审查(PARALLEL)
327
+
328
+ ##### 开启 Session Gate(MANDATORY,不可跳过)
329
+
330
+ 调用 ghostcode_session_gate_open(command_type="execute_review", required_models=["codex", "gemini"])
331
+ → 得到 session_id,后续所有 submit/close 都使用此 session_id
332
+ 若 Daemon 离线 → 终止流程,报告错误「GhostCode Daemon 未运行」
333
+
334
+ **CRITICAL**: 必须在一条消息中同时发起两个 Bash 后台调用,run_in_background: true。
335
+
336
+ **Bash 调用 1(Codex 代码审查)**:
337
+ ```bash
338
+ ~/.ghostcode/bin/ghostcode-wrapper --backend codex --workdir "$(pwd)" --timeout 600 --stdin <<'CODEX_REVIEW'
339
+ ROLE_FILE: ~/.ghostcode/prompts/codex-reviewer.md
340
+
341
+ 你正在对 GhostCode 项目的代码变更进行审查。
342
+
343
+ 请审查以下维度:
344
+ 1. 正确性:逻辑错误、边界条件、off-by-one 错误
345
+ 2. 安全性:Rust unsafe 块使用、注入风险、权限问题
346
+ 3. 规范合规性:约束集 HC-N 满足情况、TDD 覆盖率
347
+
348
+ 输出 JSON findings:
349
+ {
350
+ "findings": [
351
+ {
352
+ "severity": "Critical|Warning|Info",
353
+ "dimension": "logic|security|compliance",
354
+ "file": "文件路径",
355
+ "line": 行号,
356
+ "description": "问题描述",
357
+ "fix_suggestion": "修复建议"
358
+ }
359
+ ]
360
+ }
361
+ CODEX_REVIEW
362
+ ```
363
+
364
+ **Bash 调用 2(Gemini 代码审查)**:
365
+ ```bash
366
+ ~/.ghostcode/bin/ghostcode-wrapper --backend gemini --workdir "$(pwd)" --timeout 600 --stdin <<'GEMINI_REVIEW'
367
+ ROLE_FILE: ~/.ghostcode/prompts/gemini-reviewer.md
368
+
369
+ 你正在对 GhostCode 项目的代码变更进行审查。
370
+
371
+ 请审查以下维度:
372
+ 1. 可维护性:可读性、代码复杂度、函数长度
373
+ 2. 模式一致性:与项目现有风格对齐、命名规范、注释质量
374
+ 3. 集成影响:跨模块影响、IPC 协议兼容性、接口变更影响
375
+
376
+ 输出 JSON findings:
377
+ {
378
+ "findings": [
379
+ {
380
+ "severity": "Critical|Warning|Info",
381
+ "dimension": "maintainability|patterns|integration",
382
+ "file": "文件路径",
383
+ "line": 行号,
384
+ "description": "问题描述",
385
+ "fix_suggestion": "修复建议"
386
+ }
387
+ ]
388
+ }
389
+ GEMINI_REVIEW
390
+ ```
391
+
392
+ 等待两个后台任务完成。处理所有 Critical 发现后继续。
393
+
394
+ **wrapper 失败处理(按退出码分级)**:
395
+ - exit 127(命令不存在)→ 终止流程,提示「ghostcode-wrapper 未安装,请检查环境」
396
+ - exit 124(超时)→ 自动重试一次,仍失败则进入用户确认
397
+ - 其他(如 429 额度用完)→ AskUserQuestion 让用户选择:
398
+ [重试] / [跳过并记录 bypass_reason] / [终止整个流程]
399
+ - 用户选「跳过」→ ghostcode_session_gate_submit(session_id, model,
400
+ output_type="bypass", data={}, bypass=true, bypass_reason="quota_exceeded")
401
+ - 用户选「终止」→ ghostcode_session_gate_abort(session_id) 后退出
402
+
403
+ Codex wrapper 完成后,调用:
404
+ ```
405
+ ghostcode_session_gate_submit(session_id=<session_id>,
406
+ model="codex",
407
+ output_type="review_findings",
408
+ data=<codex wrapper 输出>)
409
+ ```
410
+
411
+ Gemini wrapper 完成后,调用:
412
+ ```
413
+ ghostcode_session_gate_submit(session_id=<session_id>,
414
+ model="gemini",
415
+ output_type="review_findings",
416
+ data=<gemini wrapper 输出>)
417
+ ```
418
+
419
+ 调用 ghostcode_session_gate_close(session_id=<session_id>)
420
+ → 返回合并输出(含 partial 标记和 missing_models 列表)
421
+ → 若 SESSION_INCOMPLETE → 终止,必须补全 missing_models
422
+ → 若 partial=true → 报告顶部标注 WARNING PARTIAL_SESSION(有模型使用了 bypass)
423
+
424
+ #### 上下文检查点
425
+
426
+ 完成一个 Phase 后报告上下文使用量:
427
+ - 低于 80K:询问用户「继续下一个 Phase?」
428
+ - 接近 80K:建议「运行 `/clear` 后恢复 `gc:execute <任务名>`」
429
+
430
+ ### Step S2: 归档闭环
431
+
432
+ 当所有任务完成后:
433
+
434
+ 1. 运行验收测试确认全部通过:
435
+ ```bash
436
+ # Rust 验收
437
+ cargo test && cargo build
438
+
439
+ # TS 验收
440
+ pnpm test && pnpm typecheck
441
+ ```
442
+
443
+ 2. 写入执行报告到 `.claude/execute/<任务名>-report.md`,包含:
444
+ - 变更摘要(每个任务的完成状态)
445
+ - TDD 执行记录(Red/Green/Refactor 各阶段结果)
446
+ - 审查发现与修复记录
447
+
448
+ 3. 归档变更记录:
449
+ ```bash
450
+ mkdir -p .claude/archive/
451
+ cp -r .claude/plan/<任务名>.md .claude/archive/<任务名>-$(date +%Y%m%d).md
452
+ ```
453
+
454
+ ---
455
+
456
+ ## Step 3(公共): 汇总报告
457
+
458
+ 无论 parallel 还是 serial 分支,最终都输出:
459
+
460
+ - 变更摘要:修改的文件列表、新增/删除行数
461
+ - 测试状态:cargo test / pnpm test 结果
462
+ - 建议:运行 `gc:review` 进行代码审查
463
+
464
+ ## Exit Criteria
465
+
466
+ ### Parallel 模式
467
+ - [ ] Daemon 健康检查通过
468
+ - [ ] 所有 Builder 任务完成(或明确失败并记录原因)
469
+ - [ ] Rust 任务:cargo build 零警告 + cargo test 全通过
470
+ - [ ] TS 任务:pnpm typecheck + pnpm test 全通过
471
+ - [ ] 变更摘要已输出
472
+ - [ ] Team 已清理
473
+
474
+ ### Serial 模式
475
+ - [ ] 计划文件中所有任务均完成
476
+ - [ ] 每个任务均通过 TDD(Red -> Green -> Refactor)
477
+ - [ ] Rust 任务:cargo test 全通过 + cargo build 零警告
478
+ - [ ] TS 任务:pnpm test 全通过 + pnpm typecheck 零错误
479
+ - [ ] 多模型审查通过(无 Critical 发现)
480
+ - [ ] 副作用审查确认无回归
481
+ - [ ] 变更已归档