helloloop 0.2.1 → 0.6.1

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 (58) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +3 -3
  3. package/README.md +297 -272
  4. package/hosts/claude/marketplace/plugins/helloloop/.claude-plugin/plugin.json +1 -1
  5. package/hosts/claude/marketplace/plugins/helloloop/commands/helloloop.md +19 -9
  6. package/hosts/claude/marketplace/plugins/helloloop/skills/helloloop/SKILL.md +12 -4
  7. package/hosts/gemini/extension/GEMINI.md +13 -4
  8. package/hosts/gemini/extension/commands/helloloop.toml +19 -8
  9. package/hosts/gemini/extension/gemini-extension.json +1 -1
  10. package/package.json +2 -2
  11. package/scripts/uninstall-home-plugin.ps1 +25 -0
  12. package/skills/helloloop/SKILL.md +42 -7
  13. package/src/analyze_confirmation.mjs +108 -8
  14. package/src/analyze_prompt.mjs +17 -1
  15. package/src/analyze_user_input.mjs +321 -0
  16. package/src/analyzer.mjs +167 -42
  17. package/src/cli.mjs +34 -308
  18. package/src/cli_analyze_command.mjs +248 -0
  19. package/src/cli_args.mjs +106 -0
  20. package/src/cli_command_handlers.mjs +120 -0
  21. package/src/cli_context.mjs +31 -0
  22. package/src/cli_render.mjs +70 -0
  23. package/src/cli_support.mjs +95 -31
  24. package/src/completion_review.mjs +243 -0
  25. package/src/config.mjs +50 -0
  26. package/src/discovery.mjs +243 -9
  27. package/src/discovery_inference.mjs +62 -18
  28. package/src/discovery_paths.mjs +143 -8
  29. package/src/discovery_prompt.mjs +273 -0
  30. package/src/engine_metadata.mjs +79 -0
  31. package/src/engine_selection.mjs +335 -0
  32. package/src/engine_selection_failure.mjs +51 -0
  33. package/src/engine_selection_messages.mjs +119 -0
  34. package/src/engine_selection_probe.mjs +78 -0
  35. package/src/engine_selection_prompt.mjs +48 -0
  36. package/src/engine_selection_settings.mjs +38 -0
  37. package/src/guardrails.mjs +15 -4
  38. package/src/install.mjs +20 -266
  39. package/src/install_claude.mjs +189 -0
  40. package/src/install_codex.mjs +114 -0
  41. package/src/install_gemini.mjs +43 -0
  42. package/src/install_shared.mjs +90 -0
  43. package/src/process.mjs +482 -39
  44. package/src/prompt.mjs +9 -5
  45. package/src/prompt_session.mjs +40 -0
  46. package/src/rebuild.mjs +116 -0
  47. package/src/runner.mjs +3 -341
  48. package/src/runner_execute_task.mjs +301 -0
  49. package/src/runner_execution_support.mjs +155 -0
  50. package/src/runner_loop.mjs +106 -0
  51. package/src/runner_once.mjs +29 -0
  52. package/src/runner_status.mjs +104 -0
  53. package/src/runtime_recovery.mjs +301 -0
  54. package/src/shell_invocation.mjs +16 -0
  55. package/templates/analysis-output.schema.json +58 -1
  56. package/templates/policy.template.json +27 -0
  57. package/templates/project.template.json +2 -0
  58. package/templates/task-review-output.schema.json +70 -0
package/README.md CHANGED
@@ -1,414 +1,433 @@
1
1
  # HelloLoop
2
2
 
3
- `HelloLoop` 是一个面向 `Codex CLI`、`Claude Code`、`Gemini CLI` 的多宿主开发工作流插件,用来把“根据开发文档持续接续开发”变成一条可分析、可确认、可验证、可追踪的标准流程。
3
+ `HelloLoop` 是一个面向 `Codex CLI`、`Claude Code`、`Gemini CLI` 的多宿主开发工作流插件,用来把“根据开发文档持续接续开发、测试、验收,直到最终目标完成”收敛成一条统一、可确认、可追踪的标准流程。
4
4
 
5
- 它有两层定位:
5
+ 它的核心原则很简单:
6
6
 
7
- - `Codex CLI`:首发平台、参考实现、最佳体验路径
8
- - `Claude Code` / `Gemini CLI`:各自按原生 agent 逻辑执行,但共享同一套 `.helloloop/` 工作流规范
7
+ - 三家都能安装、都能用、都按各自原生 agent 逻辑执行
8
+ - `Codex CLI` 仍然是首发平台、参考实现和最佳体验路径
9
+ - 运行状态统一写入目标仓库根目录的 `.helloloop/`
10
+ - 真正执行前先分析、先确认,执行中不静默失败、不静默切换
9
11
 
10
- Codex 路径的主工作流只有两种 CLI 入口:
12
+ ## 宿主与执行引擎
13
+
14
+ `HelloLoop` 区分两个概念:
15
+
16
+ - **宿主**:你从哪里进入,例如终端、`Codex`、`Claude`、`Gemini`
17
+ - **执行引擎**:真正负责本轮分析 / 开发 / 测试推进的 CLI
18
+
19
+ 这意味着:
20
+
21
+ - 无论在终端还是在 `Codex` / `Claude` / `Gemini` 宿主内,只要用户未明确指定引擎,`HelloLoop` 都会先询问本轮执行引擎
22
+ - 当前宿主、项目历史、用户历史只作为推荐依据,不会自动替你选中引擎
23
+ - 如果你已经显式指定,或已经在首轮确认中明确选定了引擎,本轮就固定按该引擎执行
24
+ - 如果后续因为登录、配额、限流等问题需要改用别的引擎,`HelloLoop` 也会先询问,不会静默切换
25
+
26
+ ## 支持矩阵
27
+
28
+ | 宿主 | 安装方式 | 原生入口 | 说明 |
29
+ | --- | --- | --- | --- |
30
+ | `Codex CLI` | `helloloop install` / `helloloop install --host codex` | `$helloloop` / `npx helloloop` | Codex 原生插件 + CLI |
31
+ | `Claude Code` | `helloloop install --host claude` | `/helloloop` | Claude 原生 marketplace / plugin |
32
+ | `Gemini CLI` | `helloloop install --host gemini` | `/helloloop` | Gemini 原生 extension |
33
+
34
+ ## 最短使用方式
35
+
36
+ 推荐先记住下面四种:
11
37
 
12
38
  ```bash
13
39
  npx helloloop
14
40
  npx helloloop <PATH>
41
+ npx helloloop claude
42
+ npx helloloop gemini <PATH> 接续完成剩余开发
15
43
  ```
16
44
 
17
- 无论从哪个宿主进入,`HelloLoop` 都遵循同一条主线:
45
+ 其中:
18
46
 
19
- 1. 自动识别项目仓库与开发文档
20
- 2. 分析当前代码与文档目标的真实差距
21
- 3. 生成或刷新目标仓库根目录下的 `.helloloop/`
22
- 4. 输出中文执行确认单
23
- 5. 用户确认后,继续按当前宿主的原生 agent 逻辑推进开发、测试和验收
47
+ - `<PATH>` 可以是项目仓库路径、开发文档目录、开发文档文件
48
+ - 命令后可以继续追加自然语言要求
49
+ - 不确定时,优先只输入 `npx helloloop`
24
50
 
25
- ## 目录
51
+ ## 执行引擎选择规则
26
52
 
27
- - [核心流程](#核心流程)
28
- - [支持矩阵](#支持矩阵)
29
- - [安装](#安装)
30
- - [快速开始](#快速开始)
31
- - [自动发现规则](#自动发现规则)
32
- - [自动执行边界](#自动执行边界)
33
- - [Doctor 检查](#doctor-检查)
34
- - [命令速查](#命令速查)
35
- - [状态目录](#状态目录)
36
- - [Skill 用法](#skill-用法)
37
- - [在 Codex 中使用](#在-codex-中使用)
38
- - [跨平台与安全](#跨平台与安全)
39
- - [仓库结构](#仓库结构)
40
- - [许可证](#许可证)
53
+ 执行规则如下:
41
54
 
42
- ## 核心流程
55
+ 1. 命令首参数显式引擎:`codex` / `claude` / `gemini`
56
+ 2. 自然语言中明确且不歧义地指定了引擎
57
+ 3. 如果前两步仍未明确,先停下来询问本轮执行引擎;当前宿主、项目上次 / 默认、用户上次 / 默认只作为推荐依据
58
+ 4. `-y` / `--yes` 等非交互模式下,如果你没有显式指定引擎,`HelloLoop` 会直接停止并要求补充引擎
43
59
 
44
- `HelloLoop` 的默认流程固定为 5 步:
60
+ 补充说明:
45
61
 
46
- 1. 自动发现项目仓库与开发文档
47
- 2. 对比文档目标与当前代码,识别当前进度和偏差
48
- 3. 生成或刷新目标仓库根目录下的 `.helloloop/`
49
- 4. 输出执行确认单,明确展示仓库、文档、当前进度、待办任务、验证命令和执行边界
50
- 5. 用户确认后,自动推进后续开发、测试和验收,直到全部完成或遇到硬阻塞
62
+ - 首参只有第一个裸词会被解释为引擎;如果你真要把 `claude` 当目录名,请写成 `./claude`、`.\claude` 或绝对路径
63
+ - 命令后的自然语言如果明确提到 `codex`、`claude`、`gemini`,也会纳入意图判断
64
+ - 当前宿主、项目历史、用户历史不会触发自动选中,只会影响“推荐项”
65
+ - `已安装` 不等于 `可继续执行`;如果当前引擎在运行中遇到 429、5xx、网络抖动、流中断、长时间卡死等问题,`HelloLoop` 会先按无人值守策略做同引擎自动恢复,不会中途停下来询问
51
66
 
52
- 如果分析识别出偏差修正任务,`HelloLoop` 会优先先收口偏差,再继续后面的开发任务。
67
+ ## 默认工作流
53
68
 
54
- 工作流统一,但执行器分为两类:
69
+ 无论从哪个宿主进入,都遵循同一条主线:
55
70
 
56
- - `Codex CLI`:通过 `npx helloloop` / `$helloloop` 进入,使用当前仓库内的 Node CLI 与 Codex 插件链路
57
- - `Claude Code` / `Gemini CLI`:通过 `/helloloop` 进入,使用各自原生插件 / 扩展与 agent 工具链
71
+ 1. 自动识别目标项目仓库与开发文档
72
+ 2. 分析当前代码进度、偏差和项目匹配性
73
+ 3. 在目标仓库根目录创建或刷新 `.helloloop/`
74
+ 4. 输出中文执行确认单
75
+ 5. 用户确认后,按选中的执行引擎持续推进开发、测试、验收
76
+ 6. 每个任务完成后,自动做一次“任务完成复核”
77
+ 7. backlog 暂时清空后,自动做一次“主线终态复核”
58
78
 
59
- ## 支持矩阵
79
+ 如果分析发现当前实现已经偏离开发文档,`HelloLoop` 会优先先收口偏差,再继续后面的 backlog。
60
80
 
61
- | 宿主 | 安装方式 | 原生使用入口 | 当前定位 |
62
- | --- | --- | --- | --- |
63
- | `Codex CLI` | `helloloop install --host codex` | `$helloloop` / `npx helloloop` | 首发平台、参考实现、最佳体验 |
64
- | `Claude Code` | `helloloop install --host claude` | `/helloloop` | Claude 原生插件工作流 |
65
- | `Gemini CLI` | `helloloop install --host gemini` | `/helloloop` | Gemini 原生扩展工作流 |
81
+ 这意味着:
66
82
 
67
- 如果你希望一次性装好三家宿主:
83
+ - 不会因为执行引擎自己一句“已完成”就直接结束
84
+ - 如果只是部分完成,`HelloLoop` 会继续当前主线任务,而不是跳去做模型随口建议的别的事
85
+ - 如果 backlog 清空了,但主线终态复核仍发现文档目标还有缺口,`HelloLoop` 会自动重新分析并继续推进
86
+ - 如果模型只做了一半就想停下来给“下一步建议”,`HelloLoop` 会优先按主线目标继续推进,而不是把半成品当完成
68
87
 
69
- ```bash
70
- npx helloloop install --host all
71
- ```
88
+ ## 无人值守恢复
72
89
 
73
- ## 安装
90
+ `HelloLoop` 的设计目标不是“跑一轮停一轮”,而是启动前确认一次,启动后持续无人值守推进。
74
91
 
75
- ### npm / npx
92
+ 因此运行中的默认策略是:
76
93
 
77
- 默认安装 `Codex` 宿主:
94
+ - 普通运行故障不再中途提问:不会因为 429、5xx、网络抖动、结果流中断、短时空输出就停下来问用户
95
+ - 同引擎优先恢复:默认不会自动切换引擎,也不会偷偷改用别的 CLI
96
+ - 保留主线上下文恢复:同引擎恢复时会生成恢复记录与恢复 prompt,要求新一轮执行直接基于当前仓库状态继续,而不是从头另起一套
97
+ - 定时心跳检查:运行中会持续写入心跳与恢复状态,用于判断当前阶段是否还在正常推进
98
+ - 先预警再终止:默认每 60 秒刷新一次心跳;若长时间没有可见进展,先标记为疑似卡住;达到更长的自动恢复阈值后,才会终止当前进程并做同引擎恢复
99
+ - 硬错误直接停止:如果识别为 400 请求错误、登录/鉴权/订阅问题、本地 CLI 缺失或权限错误,不会盲目重试
78
100
 
79
- ```bash
80
- npx helloloop install --codex-home <CODEX_HOME>
81
- ```
101
+ 默认恢复节奏:
82
102
 
83
- 安装到指定宿主:
103
+ - 心跳间隔:60 秒
104
+ - 疑似卡住预警:15 分钟无可见进展
105
+ - 自动恢复阈值:45 分钟无可见进展
106
+ - 同阶段最多自动恢复:4 次
107
+ - 恢复等待:2 分钟 → 5 分钟 → 15 分钟 → 30 分钟
84
108
 
85
- ```bash
86
- npx helloloop install --host codex
87
- npx helloloop install --host claude
88
- npx helloloop install --host gemini
89
- npx helloloop install --host all
90
- ```
109
+ 如果你明确指定或确认了本轮引擎,`HelloLoop` 在自动恢复阶段也会继续锁定该引擎,不会擅自切换。
91
110
 
92
- 可选 home 参数:
111
+ ## 自动发现与交互逻辑
93
112
 
94
- ```bash
95
- --codex-home <CODEX_HOME>
96
- --claude-home <CLAUDE_HOME>
97
- --gemini-home <GEMINI_HOME>
98
- ```
113
+ ### 1. 只输入 `npx helloloop`
99
114
 
100
- ### 源码仓库
115
+ 如果你只输入:
101
116
 
102
117
  ```bash
103
- node ./scripts/helloloop.mjs install --codex-home <CODEX_HOME>
118
+ npx helloloop
104
119
  ```
105
120
 
106
- Windows PowerShell 也可以直接运行:
121
+ `HelloLoop` 会先明确执行引擎,再快速扫描当前目录:
107
122
 
108
- ```powershell
109
- pwsh -NoLogo -NoProfile -File .\scripts\install-home-plugin.ps1 -CodexHome <CODEX_HOME>
110
- ```
123
+ - 当前目录本身就是项目仓库或开发文档目录时,直接进入分析
124
+ - 当前目录更像工作区时,优先利用顶层文档,再提示选择候选项目目录
125
+ - 当前目录没有明确开发文档时,不会直接报错,而是先列出:
126
+ - 顶层文档文件
127
+ - 顶层目录
128
+ - 疑似项目目录
129
+ 然后再询问开发文档路径
111
130
 
112
- 安装完成后:
131
+ ### 2. 项目路径只问一次
113
132
 
114
- - Codex 会写入 `<CODEX_HOME>/plugins/helloloop`
115
- - Claude 会写入 `<CLAUDE_HOME>/plugins/marketplaces/helloloop-local`,并生成 `<CLAUDE_HOME>/plugins/cache/helloloop-local/helloloop/<VERSION>`
116
- - Gemini 会写入 `<GEMINI_HOME>/extensions/helloloop`
133
+ 对外只有“项目路径”这一个概念:
117
134
 
118
- 如果你想在安装后做一次全宿主环境检查:
135
+ - 输入已有目录 → 按现有项目继续分析
136
+ - 输入不存在的目录 → 视为准备创建的新项目目录
119
137
 
120
- ```bash
121
- npx helloloop doctor --host all
122
- ```
138
+ 不会再额外追问一个“新项目路径”。
123
139
 
124
- ## 快速开始
140
+ ### 3. 文档和项目缺一不可时会停下询问
125
141
 
126
- ### 1. 选择宿主入口
142
+ 以下情况不会硬猜:
127
143
 
128
- ```text
129
- Codex -> $helloloop / npx helloloop
130
- Claude -> /helloloop
131
- Gemini -> /helloloop
132
- ```
144
+ - 给了开发文档,但无法定位项目仓库
145
+ - 给了项目路径,但无法定位开发文档
146
+ - 同时出现多个冲突的文档路径或项目路径
133
147
 
134
- 说明:
148
+ ### 4. 命令 + 自然语言会一起分析
135
149
 
136
- - `Codex` 路径下,`$helloloop` 与 `npx helloloop` 对齐同一主流程
137
- - `Claude` 与 `Gemini` 路径下,`/helloloop` 会走各自原生 agent 执行逻辑
138
- - 三家都会维护同一个 `.helloloop/` 状态目录规范
150
+ `HelloLoop` 不依赖固定中文关键词做硬编码分流。
139
151
 
140
- ### 2. 进入项目仓库或开发文档目录
152
+ 命令里的:
141
153
 
142
- 最短命令:
154
+ - 显式路径
155
+ - 中文自然语言
156
+ - 英文自然语言
157
+ - 其他语言的补充要求
143
158
 
144
- ```bash
145
- npx helloloop
146
- ```
159
+ 都会一起进入分析和确认单,不会因为语言不同被静默忽略。
147
160
 
148
- 如果你只知道一个路径,也可以只传一个:
161
+ ### 5. 现有项目与文档目标冲突时
149
162
 
150
- ```bash
151
- npx helloloop <PATH>
152
- ```
163
+ 如果当前项目目录已存在,但分析认为它与开发文档目标明显冲突,`HelloLoop` 不会直接清空目录,而是先提示你选择:
153
164
 
154
- 这里的 `<PATH>` 可以是:
165
+ 1. 继续在当前项目上尝试接续
166
+ 2. 清理当前项目内容后按文档目标重建
167
+ 3. 取消本次执行
155
168
 
156
- - 项目仓库路径
157
- - 开发文档目录
158
- - 开发文档文件
169
+ 如果你明确希望非交互模式下直接重建,可以使用:
159
170
 
160
- ### 3. 查看执行确认单
171
+ ```bash
172
+ npx helloloop --rebuild-existing
173
+ ```
161
174
 
162
- 分析完成后,`HelloLoop` 会展示一份执行确认单,至少包含:
175
+ ## 执行确认单
163
176
 
164
- - 识别出的目标仓库
165
- - 识别出的开发文档
166
- - 当前进度摘要
177
+ 真正开始开发前,`HelloLoop` 会先输出中文执行确认单,至少包含:
178
+
179
+ - 路径判断与判断依据
180
+ - 本次命令补充输入
181
+ - 执行引擎
182
+ - 需求语义理解
183
+ - 项目匹配判断
184
+ - 目标仓库
185
+ - 开发文档
186
+ - 当前进度
167
187
  - 已实现事项
168
188
  - 待完成事项
169
189
  - 任务统计
170
190
  - 首个待执行任务
171
191
  - 验证命令预览
172
- - 自动推进边界
192
+ - 自动执行停止条件
173
193
 
174
- ### 4. 确认后自动继续执行
194
+ 未确认前,不会正式修改代码。
175
195
 
176
- 你确认后,`HelloLoop` 会:
196
+ 确认后,默认行为不是“跑一轮就停”,而是:
177
197
 
178
- - backlog 顺序自动推进
179
- - 每个任务都走当前宿主的原生 agent 执行与验证
180
- - 遇到失败、风险超阈值、依赖未满足或环境硬阻塞时立即停下
181
- - 把分析结果、状态和运行记录都写进目标仓库的 `.helloloop/`
198
+ - 先按 backlog 执行当前颗粒度任务
199
+ - 每个任务完成后复核其验收是否真的闭合
200
+ - backlog 清空后再复核一次整个主线目标
201
+ - 只有“任务验收闭合 + 主线目标闭合 + 验证通过”才算真正结束
202
+ - 运行中若出现可恢复的 CLI 故障,则按无人值守策略自动恢复,不打断主线
182
203
 
183
- 如果你已经做了全局安装,也可以把 `npx helloloop` 简写成 `helloloop`。
204
+ ## 安装
184
205
 
185
- 如果你想手动查看或接管某一步,也可以使用:
206
+ ### 通过 npm / npx
207
+
208
+ 默认安装到 `Codex`:
186
209
 
187
210
  ```bash
188
- npx helloloop status
189
- npx helloloop next
190
- npx helloloop run-once
211
+ npx helloloop install
212
+ npx helloloop install --codex-home <CODEX_HOME>
191
213
  ```
192
214
 
193
- ## 自动发现规则
215
+ 安装到指定宿主:
194
216
 
195
- - 不传路径:默认分析当前目录
196
- - 只传一个路径:自动判断它是仓库路径还是开发文档路径
197
- - 当前目录是仓库:自动查找开发文档
198
- - 当前目录是文档目录:自动尝试反推目标仓库
199
- - 只给开发文档但无法推断仓库:停止并提示补充 `--repo`
200
- - 只给仓库但找不到开发文档:停止并提示补充 `--docs`
217
+ ```bash
218
+ npx helloloop install --host codex
219
+ npx helloloop install --host claude
220
+ npx helloloop install --host gemini
221
+ npx helloloop install --host all
222
+ ```
201
223
 
202
- 推荐始终优先使用:
224
+ 可选 home 参数:
203
225
 
204
226
  ```bash
205
- npx helloloop
206
- npx helloloop <PATH>
227
+ --codex-home <CODEX_HOME>
228
+ --claude-home <CLAUDE_HOME>
229
+ --gemini-home <GEMINI_HOME>
207
230
  ```
208
231
 
209
- 只有自动发现无法收敛时,再补充高级参数:
232
+ ### 从源码仓库安装
210
233
 
211
234
  ```bash
212
- npx helloloop --repo <REPO_ROOT> --docs <DOCS_PATH>
235
+ node ./scripts/helloloop.mjs install --host codex
213
236
  ```
214
237
 
215
- ## 自动执行边界
238
+ Windows PowerShell 也可以直接运行:
216
239
 
217
- 默认主命令会在确认后尽量自动完成整轮 backlog,而不是只跑一个任务。
240
+ ```powershell
241
+ pwsh -NoLogo -NoProfile -File .\scripts\install-home-plugin.ps1 -CodexHome <CODEX_HOME>
242
+ ```
218
243
 
219
- ### 常用执行模式
244
+ ### 升级、重装、切换分支
220
245
 
221
246
  ```bash
222
- npx helloloop
223
- npx helloloop <PATH>
224
- npx helloloop --dry-run
225
- npx helloloop -y
247
+ npx helloloop install --force
248
+ npx helloloop install --host claude --force
249
+ npx helloloop install --host gemini --force
250
+ npx helloloop install --host codex --force
251
+ npx helloloop install --host all --force
226
252
  ```
227
253
 
228
- 含义如下:
254
+ 说明:
229
255
 
230
- - `npx helloloop`:分析 展示确认单 等待你确认 → 自动执行
231
- - `npx helloloop <PATH>`:同上,但先用你给的单一路径做自动识别
232
- - `npx helloloop --dry-run`:只分析并输出确认单,不真正开始执行
233
- - `npx helloloop -y`:跳过交互确认,分析后直接自动执行
256
+ - `--force` 会清理当前宿主里旧分支 / 旧版本残留的 `helloloop` 安装目录后再重装
257
+ - `Codex` 会刷新插件目录和 marketplace 条目
258
+ - `Claude` 会刷新 marketplace、缓存插件目录,以及 `settings.json` / `known_marketplaces.json` / `installed_plugins.json` 中的 `helloloop` 条目
259
+ - `Gemini` 会刷新 `extensions/helloloop/`,不会动同目录下其他扩展
234
260
 
235
- ### 停止条件
261
+ ### 卸载
236
262
 
237
- 出现以下情况时,`HelloLoop` 会停止并保留现场,而不是静默降级:
263
+ ```bash
264
+ npx helloloop uninstall --host codex
265
+ npx helloloop uninstall --host claude
266
+ npx helloloop uninstall --host gemini
267
+ npx helloloop uninstall --host all
268
+ ```
238
269
 
239
- - 无法自动确定目标仓库或开发文档
240
- - backlog 已存在失败任务、阻塞任务或未满足依赖
241
- - 后续任务风险超出自动阈值,且你没有显式加 `--allow-high-risk`
242
- - 验证命令失败
243
- - 当前宿主 CLI、插件资产或 shell 环境不可安全执行
270
+ 卸载是定向清理:
244
271
 
245
- ## Doctor 检查
272
+ - 只删除 `helloloop` 自己的安装目录和注册条目
273
+ - 不会顺带删除别的插件、marketplace、扩展或自定义配置
274
+ - 即使某个宿主当前未安装 `helloloop`,也会安全退出,不做破坏性清理
246
275
 
247
- 你可以用 `doctor` 检查当前宿主是否已具备基本运行条件。
276
+ ## 使用入口
248
277
 
249
- ### 只检查 Codex
278
+ ### 终端
250
279
 
251
280
  ```bash
252
- npx helloloop doctor
281
+ npx helloloop
282
+ npx helloloop <PATH>
283
+ npx helloloop codex <PATH>
284
+ npx helloloop claude <PATH>
285
+ npx helloloop gemini <PATH> <补充说明>
253
286
  ```
254
287
 
255
- ### 检查全部宿主
288
+ 如果已经做了全局安装,也可以把 `npx helloloop` 简写为 `helloloop`。是否立刻可用取决于当前 shell 是否已经刷新 `PATH`。
256
289
 
257
- ```bash
258
- npx helloloop doctor --host all
290
+ ### Codex CLI
291
+
292
+ ```text
293
+ $helloloop
294
+ helloloop:helloloop
259
295
  ```
260
296
 
261
- ### 检查已安装目录
297
+ `Codex` 中也可以直接执行:
262
298
 
263
299
  ```bash
264
- npx helloloop doctor --host all --codex-home <CODEX_HOME> --claude-home <CLAUDE_HOME> --gemini-home <GEMINI_HOME>
300
+ npx helloloop
265
301
  ```
266
302
 
267
- `doctor` 当前可检查:
303
+ 如果你在 `Codex` 中直接使用 `$helloloop` 或 `npx helloloop`,但没有明确指定引擎,`HelloLoop` 仍会先让你确认本轮引擎;`Codex` 只会作为推荐项,不会被自动选中。
268
304
 
269
- - 宿主 CLI 是否存在
270
- - 本地运行时资产是否齐全
271
- - 目标仓库 `.helloloop/` 基础文件是否存在
272
- - 已安装宿主目录是否已写入对应插件 / 扩展
305
+ ### Claude Code / Gemini CLI
273
306
 
274
- ## 命令速查
307
+ ```text
308
+ /helloloop
309
+ ```
310
+
311
+ 它们会按各自 CLI 的原生 agent 逻辑执行,但共享同一套 `.helloloop/` 工作流规范。
312
+
313
+ ## 常用命令
275
314
 
276
315
  | 命令 | 作用 |
277
316
  | --- | --- |
278
- | `analyze` | 主工作流;分析并输出确认单,确认后自动接续执行 |
279
- | `status` | 查看 backlog 汇总与当前状态 |
280
- | `next` | 预览下一任务,不真正执行 |
281
- | `run-once` | 手动执行一个任务 |
282
- | `run-loop` | 手动连续执行多个任务 |
283
- | `doctor` | 检查所选宿主、运行时资产与目标仓库是否满足运行条件 |
317
+ | `helloloop` / `analyze` | 自动分析、展示确认单,并在确认后持续接续开发,直到主线目标闭合或遇到硬阻塞 |
318
+ | `install` | 安装运行时 bundle 到指定宿主 |
319
+ | `uninstall` | 从指定宿主卸载运行时 bundle 与注册信息 |
320
+ | `doctor` | 检查宿主环境、插件资产与目标仓库状态 |
284
321
  | `init` | 手动初始化 `.helloloop/` 模板 |
285
- | `install` | 安装插件到所选宿主目录 |
322
+ | `status` | 查看 backlog 摘要和当前状态 |
323
+ | `next` | 生成下一任务的干跑预览 |
324
+ | `run-once` | 执行一个任务 |
325
+ | `run-loop` | 连续执行多个任务 |
286
326
 
287
- ### 常用选项
327
+ 常用选项:
288
328
 
289
- | 选项 | 说明 |
329
+ | 选项 | 作用 |
290
330
  | --- | --- |
291
- | `-y`, `--yes` | 跳过交互确认,分析后直接开始执行 |
292
- | `--dry-run` | 只分析并输出确认单,不真正开始执行 |
293
- | `--host <name>` | 选择安装宿主:`codex`、`claude`、`gemini`、`all` |
294
- | `--repo <dir>` | 高级选项:显式指定项目仓库根目录 |
295
- | `--docs <dir\|file>` | 高级选项:显式指定开发文档目录或文件 |
296
- | `--allow-high-risk` | 允许执行 `medium` 及以上风险任务 |
297
- | `--max-tasks <n>` | 限制手动 `run-loop` 的最大任务数 |
298
- | `--max-attempts <n>` | 单策略最大重试次数 |
299
- | `--max-strategies <n>` | 单任务最大换路次数 |
300
- | `--required-doc <path>` | 追加全局必读文档 |
301
- | `--constraint <text>` | 追加全局实现约束 |
302
- | `--codex-home <dir>` | 指定 Codex Home |
303
- | `--claude-home <dir>` | 指定 Claude Home |
304
- | `--gemini-home <dir>` | 指定 Gemini Home |
305
- | `--config-dir <dir>` | 指定状态目录名,默认 `.helloloop` |
306
- | `--force` | 覆盖已有安装目录 |
307
-
308
- ## 状态目录
309
-
310
- `HelloLoop` 始终把运行状态写入目标仓库根目录,而不是插件目录自身。
311
-
312
- 默认目录:
313
-
314
- ```text
315
- .helloloop/
316
- ├── backlog.json
317
- ├── policy.json
318
- ├── project.json
319
- ├── status.json
320
- ├── STATE.md
321
- └── runs/
322
- ```
331
+ | `codex` / `claude` / `gemini` | 作为 `analyze` 模式的命令首参数,显式指定执行引擎 |
332
+ | `--dry-run` | 只分析并输出确认单,不开始自动执行 |
333
+ | `-y` / `--yes` | 跳过执行确认直接开始;但如果未显式指定引擎,会直接报错而不是自动选引擎 |
334
+ | `--repo <dir>` | 高级覆盖:显式指定项目仓库 |
335
+ | `--docs <dir|file>` | 高级覆盖:显式指定开发文档 |
336
+ | `--rebuild-existing` | 项目与文档冲突时,自动清理现有项目后重建 |
337
+ | `--host <name>` | 安装宿主:`codex` / `claude` / `gemini` / `all` |
338
+ | `--config-dir <dir>` | 状态目录名,默认 `.helloloop` |
323
339
 
324
- 其中:
340
+ 手动控制示例:
325
341
 
326
- - `backlog.json`:分析后生成的任务队列
327
- - `policy.json`:自动推进策略、重试上限和 Codex 参数
328
- - `project.json`:开发文档入口和全局约束
329
- - `status.json`:最近一次运行状态
330
- - `STATE.md`:面向人的进度摘要
331
- - `runs/`:提示词、stdout、stderr、验证日志等留痕
342
+ ```bash
343
+ npx helloloop status
344
+ npx helloloop next
345
+ npx helloloop run-once
346
+ ```
332
347
 
333
- ## Skill 用法
348
+ ## Doctor
334
349
 
335
- 如果你已经把 `HelloLoop` 安装成 Codex 插件,也可以直接在 Codex 里调用:
350
+ 检查默认宿主:
336
351
 
337
- ```text
338
- $helloloop
352
+ ```bash
353
+ npx helloloop doctor
339
354
  ```
340
355
 
341
- 或:
356
+ 检查全部宿主:
342
357
 
343
- ```text
344
- helloloop:helloloop
358
+ ```bash
359
+ npx helloloop doctor --host all
345
360
  ```
346
361
 
347
- 此时推荐理解为:
348
-
349
- - `$helloloop` 是插件入口
350
- - `npx helloloop` / `npx helloloop <PATH>` 是实际执行入口
362
+ 检查指定安装目录:
351
363
 
352
- 也就是说,用户显式调用 `$helloloop` 时,目标行为应当与主命令保持一致:
364
+ ```bash
365
+ npx helloloop doctor --host all --codex-home <CODEX_HOME> --claude-home <CLAUDE_HOME> --gemini-home <GEMINI_HOME>
366
+ ```
353
367
 
354
- 1. 先自动识别仓库和开发文档
355
- 2. 再分析当前代码与文档目标
356
- 3. 再展示执行确认单
357
- 4. 最后在你确认后自动接续执行
368
+ ## 宿主写入范围
358
369
 
359
- 如果当前目录无法判断目标仓库、缺少开发文档,或者你明确只想先讲解不执行,`HelloLoop` 才应该先停下来问你,而不是直接启动执行。
370
+ 为了方便排查安装 / 更新 / 卸载问题,下面是默认写入位置:
360
371
 
361
- 如果你安装的是 Claude 或 Gemini 宿主,则推荐直接使用:
372
+ ### `Codex CLI`
362
373
 
363
- ```text
364
- /helloloop
365
- ```
374
+ - 插件目录:`~/.codex/plugins/helloloop/`
375
+ - 注册文件:`~/.codex/.agents/plugins/marketplace.json`
366
376
 
367
- 它们会按各自 CLI 的原生 agent 逻辑执行,但共享同一套 `.helloloop/` 工作流规范。
377
+ ### `Claude Code`
368
378
 
369
- ## 在 Codex 中使用
379
+ - marketplace:`~/.claude/plugins/marketplaces/helloloop-local/`
380
+ - 已安装插件缓存:`~/.claude/plugins/cache/helloloop-local/helloloop/<VERSION>/`
381
+ - 用户配置:`~/.claude/settings.json`
382
+ - marketplace 索引:`~/.claude/plugins/known_marketplaces.json`
383
+ - 已安装插件索引:`~/.claude/plugins/installed_plugins.json`
370
384
 
371
- 可以直接在当前 Codex 会话里运行:
385
+ ### `Gemini CLI`
372
386
 
373
- ```bash
374
- npx helloloop
375
- ```
387
+ - 扩展目录:`~/.gemini/extensions/helloloop/`
376
388
 
377
- 不需要重开终端。
389
+ `HelloLoop` 只维护自己的目录和自己的注册项,不会重写别的插件条目。
378
390
 
379
- 如果你使用的是全局安装后的 `helloloop` 短命令,是否立刻可用取决于当前 shell 是否已经刷新 PATH。
391
+ ## `.helloloop/` 状态目录
380
392
 
381
- 安装为 Codex 插件后,推荐显式使用的 skill 名称是:
393
+ `HelloLoop` backlog、状态和运行记录始终写入目标仓库根目录下的:
382
394
 
383
395
  ```text
384
- helloloop:helloloop
396
+ .helloloop/
397
+ ├── backlog.json
398
+ ├── policy.json
399
+ ├── project.json
400
+ ├── status.json
401
+ ├── STATE.md
402
+ └── runs/
385
403
  ```
386
404
 
387
- ## 跨平台与安全
388
-
389
- `HelloLoop` 默认兼容 Windows、macOS 和 Linux。
405
+ 不会写回插件目录自身。
390
406
 
391
- ### shell 策略
407
+ ## 跨平台与安全
392
408
 
393
- - Windows:`pwsh` → `bash`(如 Git Bash)→ `powershell`
394
- - macOS / Linux:`bash` → `sh`
395
- - Windows 不会回退到 `cmd.exe`
409
+ ### Windows
396
410
 
397
- 说明:
411
+ - 优先使用 `pwsh`
412
+ - 也支持 `bash`(如 Git Bash)与 `powershell`
413
+ - 不回退到 `cmd.exe`
414
+ - 避免危险的嵌套命令、路径拼接删除和 `cmd` 风格破坏性流程
398
415
 
399
- - `Codex` 路径由当前 Node CLI 严格控制 shell 选择
400
- - `Claude` / `Gemini` 路径走各自原生插件 / 扩展,但仍应遵守 `HelloLoop` 的安全约束
416
+ ### macOS / Linux
401
417
 
402
- ### 内建兜底规则
418
+ - 优先使用 `bash`
419
+ - 如果没有 `bash`,回退到 `sh`
403
420
 
404
- 当开发文档没有给出足够约束时,`HelloLoop` 会自动附加一层最低安全边界,包括但不限于:
421
+ ### 通用安全边界
405
422
 
406
- - 代码是事实源
407
- - 验证必须执行
408
- - 不能静默失败
409
- - 不能吞掉错误
410
- - 危险命令必须阻断
411
- - 路径与 shell 调用必须按跨平台安全方式执行
423
+ - 不静默失败
424
+ - 不静默回退
425
+ - 不静默切换执行引擎
426
+ - 不吞掉错误
427
+ - 真正执行前先确认
428
+ - 真正结束前先验证
429
+ - 不轻信执行引擎口头“已完成”
430
+ - 不接受“先做一半再停下来问要不要继续”
412
431
 
413
432
  ## 仓库结构
414
433
 
@@ -416,6 +435,8 @@ helloloop:helloloop
416
435
  helloloop/
417
436
  ├── .claude-plugin/
418
437
  ├── .codex-plugin/
438
+ ├── .github/
439
+ ├── .helloagents/
419
440
  ├── bin/
420
441
  ├── docs/
421
442
  ├── hosts/
@@ -423,18 +444,22 @@ helloloop/
423
444
  ├── skills/
424
445
  ├── src/
425
446
  ├── templates/
426
- └── tests/
447
+ ├── tests/
448
+ ├── LICENSE
449
+ ├── package.json
450
+ └── README.md
427
451
  ```
428
452
 
429
453
  其中:
430
454
 
431
- - `.claude-plugin/`:Claude plugin 元数据
432
- - `.codex-plugin/`:Codex plugin 元数据
433
- - `hosts/`:Claude marketplace/plugin Gemini extension 的运行时资产
434
- - `src/`:核心实现,例如路径发现、分析提示词、任务调度、执行与安装
435
- - `tests/`:回归测试,覆盖 CLI、安装链路、bundle 结构和关键流程
436
- - `templates/`:初始化目标仓库 `.helloloop/` 时写入的模板
455
+ - `.codex-plugin/`:Codex 插件 manifest
456
+ - `.claude-plugin/`:Claude plugin manifest
457
+ - `hosts/`:Claude marketplace / Gemini extension 资产
458
+ - `skills/`:Codex 插件技能说明
459
+ - `src/`:发现、分析、执行、安装、卸载、doctor 等核心实现
460
+ - `templates/`:初始化目标仓库 `.helloloop/` 的模板
461
+ - `docs/` 与 `tests/`:源码仓库维护资料,不进入运行时安装包
437
462
 
438
463
  ## 许可证
439
464
 
440
- `HelloLoop` 使用 `Apache-2.0`,许可证文件位于仓库根目录 `LICENSE`。
465
+ `HelloLoop` 使用 `Apache-2.0`,许可证文件位于仓库根目录的 `LICENSE`。