helloloop 0.9.1 → 0.10.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.
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +230 -506
- package/hosts/claude/marketplace/plugins/helloloop/.claude-plugin/plugin.json +1 -1
- package/hosts/gemini/extension/gemini-extension.json +1 -1
- package/native/windows-hidden-shell-proxy/HelloLoopHiddenShellProxy.csproj +11 -0
- package/native/windows-hidden-shell-proxy/Program.cs +498 -0
- package/package.json +4 -2
- package/src/activity_projection.mjs +294 -0
- package/src/analyze_confirmation.mjs +3 -1
- package/src/analyzer.mjs +2 -1
- package/src/auto_execution_options.mjs +13 -0
- package/src/background_launch.mjs +73 -0
- package/src/cli.mjs +49 -1
- package/src/cli_analyze_command.mjs +9 -5
- package/src/cli_args.mjs +102 -37
- package/src/cli_command_handlers.mjs +44 -4
- package/src/cli_support.mjs +2 -0
- package/src/dashboard_command.mjs +371 -0
- package/src/dashboard_tui.mjs +289 -0
- package/src/dashboard_web.mjs +351 -0
- package/src/dashboard_web_client.mjs +167 -0
- package/src/dashboard_web_page.mjs +49 -0
- package/src/engine_event_parser_codex.mjs +167 -0
- package/src/engine_process_support.mjs +1 -0
- package/src/engine_selection.mjs +24 -0
- package/src/engine_selection_probe.mjs +10 -6
- package/src/engine_selection_settings.mjs +12 -19
- package/src/execution_interactivity.mjs +12 -0
- package/src/host_continuation.mjs +305 -0
- package/src/install_codex.mjs +20 -8
- package/src/install_shared.mjs +9 -0
- package/src/node_process_launch.mjs +28 -0
- package/src/process.mjs +2 -0
- package/src/runner_execute_task.mjs +4 -0
- package/src/runner_execution_support.mjs +69 -3
- package/src/runner_once.mjs +4 -0
- package/src/runner_status.mjs +63 -7
- package/src/runtime_engine_support.mjs +41 -4
- package/src/runtime_engine_task.mjs +7 -0
- package/src/runtime_settings.mjs +105 -0
- package/src/runtime_settings_loader.mjs +19 -0
- package/src/shell_invocation.mjs +227 -9
- package/src/supervisor_cli_support.mjs +3 -2
- package/src/supervisor_guardian.mjs +307 -0
- package/src/supervisor_runtime.mjs +138 -82
- package/src/supervisor_state.mjs +64 -0
- package/src/supervisor_watch.mjs +92 -48
- package/src/terminal_session_limits.mjs +1 -21
- package/src/windows_hidden_shell_proxy.mjs +405 -0
- package/src/workspace_registry.mjs +155 -0
package/README.md
CHANGED
|
@@ -1,657 +1,381 @@
|
|
|
1
1
|
# HelloLoop
|
|
2
2
|
|
|
3
3
|
> [!WARNING]
|
|
4
|
-
>
|
|
5
|
-
> 使用 `HelloLoop` 执行持续 / 持久型任务仍存在不可完全控制的风险。虽然项目已经加入高危行为管控与防护策略,但仍不能排除误删数据、误改文件、异常覆盖或其他不可预期后果。请在使用前务必先备份重要数据,并自行通过人工或借助 AI 对 `HelloLoop` 的安全风险做评估与审计;因使用本插件造成的数据丢失或其他损失,项目方不承担责任。
|
|
4
|
+
> `HelloLoop` 适合“持续推进型”的自动开发任务,不适合在未备份的重要仓库上直接盲跑。请先备份关键数据,并对自动修改结果进行人工复核。
|
|
6
5
|
|
|
7
|
-
`HelloLoop` 是一个面向 `Codex CLI`、`Claude Code`、`Gemini CLI`
|
|
6
|
+
`HelloLoop` 是一个面向 `Codex CLI`、`Claude Code`、`Gemini CLI` 的持续开发工作流插件。
|
|
8
7
|
|
|
9
|
-
|
|
8
|
+
它解决的不是“问一次、答一次”的问题,而是这类场景:
|
|
10
9
|
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
10
|
+
- 根据开发文档持续推进一个仓库,直到 backlog 清空
|
|
11
|
+
- 先分析当前代码进度,再补齐缺口,而不是从头乱做
|
|
12
|
+
- 中途遇到宿主中断、限流、网络抖动后还能继续接上
|
|
13
|
+
- 同时查看多个仓库的任务状态与执行进度
|
|
15
14
|
|
|
16
|
-
|
|
15
|
+
---
|
|
17
16
|
|
|
18
|
-
|
|
17
|
+
## 1. HelloLoop 能做什么
|
|
19
18
|
|
|
20
|
-
|
|
21
|
-
- **执行引擎**:真正负责本轮分析 / 开发 / 测试推进的 CLI
|
|
19
|
+
把“开发文档 + 现有代码 + 持续执行 + 可视化跟踪”收口成一条标准流程:
|
|
22
20
|
|
|
23
|
-
|
|
21
|
+
1. 自动识别项目仓库与开发文档
|
|
22
|
+
2. 分析当前进度、偏差和剩余任务
|
|
23
|
+
3. 生成 / 刷新 `.helloloop/backlog.json`
|
|
24
|
+
4. 输出中文确认单
|
|
25
|
+
5. 确认后持续执行、验证、复核
|
|
26
|
+
6. 中断后支持继续接续,而不是重新来一遍
|
|
24
27
|
|
|
25
|
-
|
|
26
|
-
- 在 `Codex` 中,只有显式输入 `$helloloop` / `#helloloop` / `helloloop:helloloop` 才算调用;仅仅提到 `helloloop` 仓库、README、代码、测试、release、npm 包名,都不算调用
|
|
27
|
-
- 无论在终端还是在 `Codex` / `Claude` / `Gemini` 宿主内,只要用户未明确指定引擎,`HelloLoop` 都会先询问本轮执行引擎
|
|
28
|
-
- 当前宿主、项目历史、用户历史只作为推荐依据,不会自动替你选中引擎
|
|
29
|
-
- 如果你已经显式指定,或已经在首轮确认中明确选定了引擎,本轮就固定按该引擎执行
|
|
30
|
-
- 如果后续因为登录、配额、限流等问题需要改用别的引擎,`HelloLoop` 也会先询问,不会静默切换
|
|
28
|
+
---
|
|
31
29
|
|
|
32
|
-
##
|
|
30
|
+
## 2. 最适合的使用场景
|
|
33
31
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
32
|
+
- 按架构文档、PRD、任务拆解持续完成仓库开发
|
|
33
|
+
- 多仓并行推进,需要统一看板跟踪
|
|
34
|
+
- 任务需要跑很久,不希望因为一次中断就全部停掉
|
|
35
|
+
- 需要让主终端、TUI 看板、Web 看板都能看到当前状态
|
|
36
|
+
- 需要在 `Codex CLI` / `Claude Code` / `Gemini CLI` 之间保持一致体验
|
|
39
37
|
|
|
40
|
-
|
|
38
|
+
不适合的场景:
|
|
41
39
|
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
40
|
+
- 只改一个很小的文件
|
|
41
|
+
- 单轮对话就能完成的简单问答
|
|
42
|
+
- 不允许自动修改文件、只想人工讨论方案
|
|
45
43
|
|
|
46
|
-
|
|
44
|
+
---
|
|
47
45
|
|
|
48
|
-
|
|
46
|
+
## 3. 核心能力
|
|
49
47
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
- `<PATH>` 可以是项目仓库路径、开发文档目录、开发文档文件
|
|
60
|
-
- 命令后可以继续追加自然语言要求
|
|
61
|
-
- 不确定时,优先只输入 `npx helloloop`
|
|
62
|
-
|
|
63
|
-
## 执行引擎选择规则
|
|
64
|
-
|
|
65
|
-
执行规则如下:
|
|
66
|
-
|
|
67
|
-
1. 命令首参数显式引擎:`codex` / `claude` / `gemini`
|
|
68
|
-
2. 自然语言中明确且不歧义地指定了引擎
|
|
69
|
-
3. 如果前两步仍未明确,先停下来询问本轮执行引擎;当前宿主、项目上次 / 默认、用户上次 / 默认只作为推荐依据
|
|
70
|
-
4. `-y` / `--yes` 等非交互模式下,如果你没有显式指定引擎,`HelloLoop` 会直接停止并要求补充引擎
|
|
71
|
-
|
|
72
|
-
补充说明:
|
|
73
|
-
|
|
74
|
-
- 首参只有第一个裸词会被解释为引擎;如果你真要把 `claude` 当目录名,请写成 `./claude`、`.\claude` 或绝对路径
|
|
75
|
-
- 命令后的自然语言如果明确提到 `codex`、`claude`、`gemini`,也会纳入意图判断
|
|
76
|
-
- 当前宿主、项目历史、用户历史不会触发自动选中,只会影响“推荐项”
|
|
77
|
-
- `已安装` 不等于 `可继续执行`;如果当前引擎在运行中遇到 400、鉴权、欠费、429、5xx、网络抖动、流中断、长时间卡死等问题,`HelloLoop` 会先按无人值守策略做同引擎“健康探测 + 条件恢复”,不会中途停下来询问
|
|
78
|
-
|
|
79
|
-
## 默认工作流
|
|
80
|
-
|
|
81
|
-
无论从哪个宿主进入,都遵循同一条主线:
|
|
82
|
-
|
|
83
|
-
1. 自动识别目标项目仓库与开发文档
|
|
84
|
-
2. 分析当前代码进度、偏差和项目匹配性
|
|
85
|
-
3. 在目标仓库根目录创建或刷新 `.helloloop/`
|
|
86
|
-
4. 输出中文执行确认单
|
|
87
|
-
5. 用户确认后,按选中的执行引擎持续推进开发、测试、验收
|
|
88
|
-
6. 每个任务完成后,自动做一次“任务完成复核”
|
|
89
|
-
7. backlog 暂时清空后,自动做一次“主线终态复核”
|
|
90
|
-
|
|
91
|
-
如果分析发现当前实现已经偏离开发文档,`HelloLoop` 会优先先收口偏差,再继续后面的 backlog。
|
|
92
|
-
|
|
93
|
-
这意味着:
|
|
94
|
-
|
|
95
|
-
- 不会因为执行引擎自己一句“已完成”就直接结束
|
|
96
|
-
- 如果只是部分完成,`HelloLoop` 会继续当前主线任务,而不是跳去做模型随口建议的别的事
|
|
97
|
-
- 如果 backlog 清空了,但主线终态复核仍发现文档目标还有缺口,`HelloLoop` 会自动重新分析并继续推进
|
|
98
|
-
- 如果模型只做了一半就想停下来给“下一步建议”,`HelloLoop` 会优先按主线目标继续推进,而不是把半成品当完成
|
|
99
|
-
|
|
100
|
-
## 后台监督执行
|
|
101
|
-
|
|
102
|
-
从当前版本开始,`HelloLoop` 的自动执行主线统一走 **detached supervisor + host lease** 模式:
|
|
103
|
-
|
|
104
|
-
- `analyze` 确认后的自动执行、`run-once`、`run-loop` 都默认切到后台 supervisor
|
|
105
|
-
- 交互终端里默认会**自动附着观察**这个后台 supervisor:你仍然能在当前 CLI 里看到实时进度与流式输出
|
|
106
|
-
- 当前对话 turn 就算被误按 `Esc`、被宿主暂停、或当前工具调用被中断,后台 supervisor 仍会继续
|
|
107
|
-
- 原有的 15 分钟级恢复、健康探测、同引擎自动恢复,也会继续由这个后台 supervisor 接管
|
|
108
|
-
- 这不是“当前进程死掉后每 15 分钟重新拉起一遍主进程”,而是 supervisor 本身持续存活,所以恢复链不会因为当前 turn 消失而断掉
|
|
109
|
-
- 真正的停止边界改成 **宿主租约**:只要宿主 CLI 窗口 / 进程还活着,任务就继续;如果宿主窗口真的关闭,HelloLoop 才会停止当前子进程并把任务回退为 `pending`
|
|
110
|
-
|
|
111
|
-
常见场景:
|
|
112
|
-
|
|
113
|
-
- 在 `Codex` / `Claude` / `Gemini` 宿主里运行 `helloloop`:确认后默认后台执行,并尽量保持当前 CLI 可观察
|
|
114
|
-
- 在普通终端里运行 `npx helloloop`、`npx helloloop run-once`、`npx helloloop run-loop`:默认也是“后台执行 + 当前终端附着观察”
|
|
115
|
-
- 如果你就是想让命令立刻返回、不占当前终端:显式加 `--detach`
|
|
116
|
-
- 如果你稍后想重新接上实时观察:运行 `helloloop watch` 或 `helloloop status --watch`
|
|
117
|
-
- 因此当前版本**不需要先上 Web 看板** 才能解决“后台执行看不到过程”的问题;CLI 观察链已经是第一优先级
|
|
118
|
-
|
|
119
|
-
## 无人值守恢复
|
|
120
|
-
|
|
121
|
-
`HelloLoop` 的设计目标不是“跑一轮停一轮”,而是启动前确认一次,启动后持续无人值守推进。
|
|
122
|
-
|
|
123
|
-
- 因此运行中的默认策略是:
|
|
124
|
-
|
|
125
|
-
- 普通运行故障不再中途提问:不会因为 429、5xx、网络抖动、结果流中断、短时空输出就停下来问用户
|
|
126
|
-
- 同引擎优先恢复:默认不会自动切换引擎,也不会偷偷改用别的 CLI
|
|
127
|
-
- 先探测、后续跑:重试前会先做最小健康探测;只有探测通过后,才会恢复主线任务,而不是盲目把完整任务再跑一遍
|
|
128
|
-
- 保留主线上下文恢复:同引擎恢复时会生成恢复记录与恢复 prompt,要求新一轮执行直接基于当前仓库状态继续,而不是从头另起一套
|
|
129
|
-
- 定时心跳检查:运行中会持续写入心跳与恢复状态,用于判断当前阶段是否还在正常推进
|
|
130
|
-
- 最终停止会告警:如果自动恢复额度真正用尽,且已配置全局邮箱,`HelloLoop` 会把错误类型与具体内容发到指定邮箱
|
|
131
|
-
|
|
132
|
-
默认恢复节奏:
|
|
133
|
-
|
|
134
|
-
- 心跳间隔:60 秒
|
|
135
|
-
- 疑似卡住预警:15 分钟无可见进展
|
|
136
|
-
- 自动终止阈值:45 分钟无可见进展
|
|
137
|
-
- 硬阻塞:每 15 分钟探测 1 次,共 5 次;仍失败则暂停等待人工介入
|
|
138
|
-
- 软阻塞:先每 15 分钟探测 5 次,再 30 分钟 2 次,再按 60 / 90 / 120 / 150 / 180 分钟各探测 1 次;仍失败则暂停等待人工介入
|
|
139
|
-
|
|
140
|
-
如果你明确指定或确认了本轮引擎,`HelloLoop` 在自动恢复阶段也会继续锁定该引擎,不会擅自切换。
|
|
141
|
-
|
|
142
|
-
但要特别注意:
|
|
143
|
-
|
|
144
|
-
- 在 `Codex` / `Claude` / `Gemini` 宿主里,当前 turn 被误按 `Esc`、当前工具调用被取消,或当前会话暂时暂停时,只要宿主窗口本身还活着,后台 supervisor 仍会继续,原有自动恢复节奏也会继续生效
|
|
145
|
-
- 如果真正关闭了宿主 CLI 窗口、终端进程结束,或宿主租约已经失效,HelloLoop 会停止当前子进程,并把未完成任务回退为 `pending`
|
|
146
|
-
- 也就是说:**当前 turn 取消 ≠ 停止 HelloLoop;关闭宿主窗口 = 停止 HelloLoop**
|
|
147
|
-
- 宿主窗口已经关闭后,HelloLoop 不会再脱离宿主自行无限后台驻留;这时需要你重新打开宿主并再次显式调用 `helloloop` 来接续
|
|
48
|
+
- 显式调用才接管,不会默默劫持普通对话
|
|
49
|
+
- 自动对齐“开发文档目标”与“当前代码事实”
|
|
50
|
+
- 分析、执行、验证、任务复核、主线终态复核一体化
|
|
51
|
+
- 默认后台执行,但当前终端可以继续实时观察
|
|
52
|
+
- 宿主中断后可输出自然语言续跑提示
|
|
53
|
+
- 提供终端 TUI 总控台
|
|
54
|
+
- 提供本地 Web 看板
|
|
55
|
+
- 提供结构化 JSON 状态流,方便上层程序消费
|
|
56
|
+
- Windows 下尽量隐藏后台控制台,避免频繁弹窗 / 闪烁
|
|
148
57
|
|
|
149
|
-
|
|
58
|
+
---
|
|
150
59
|
|
|
151
|
-
|
|
60
|
+
## 4. 支持的宿主
|
|
152
61
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
```json
|
|
160
|
-
{
|
|
161
|
-
"notifications": {
|
|
162
|
-
"email": {
|
|
163
|
-
"enabled": true,
|
|
164
|
-
"to": ["you@example.com"],
|
|
165
|
-
"from": "helloloop@example.com",
|
|
166
|
-
"smtp": {
|
|
167
|
-
"host": "smtp.example.com",
|
|
168
|
-
"port": 465,
|
|
169
|
-
"secure": true,
|
|
170
|
-
"username": "helloloop@example.com",
|
|
171
|
-
"passwordEnv": "HELLOLOOP_SMTP_PASSWORD"
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
```
|
|
62
|
+
| 宿主 | 调用方式 |
|
|
63
|
+
| --- | --- |
|
|
64
|
+
| `Codex CLI` | `Codex` 内输入 `$helloloop` / `#helloloop` / `helloloop:helloloop` |
|
|
65
|
+
| `Claude Code` | `/helloloop` |
|
|
66
|
+
| `Gemini CLI` | `/helloloop` |
|
|
67
|
+
| 普通终端 | `npx helloloop` |
|
|
177
68
|
|
|
178
69
|
说明:
|
|
179
70
|
|
|
180
|
-
-
|
|
181
|
-
-
|
|
71
|
+
- 只有用户显式调用时才进入 HelloLoop
|
|
72
|
+
- 只是在对话里提到 `helloloop` 仓库、README、命令示例,不算调用
|
|
182
73
|
|
|
183
|
-
|
|
74
|
+
---
|
|
184
75
|
|
|
185
|
-
|
|
76
|
+
## 5. 安装
|
|
186
77
|
|
|
187
|
-
|
|
188
|
-
- **背景终端** 指 detached supervisor 后台会话
|
|
78
|
+
### 安装到 Codex
|
|
189
79
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
- 背景终端最多 `8`
|
|
194
|
-
- 显示 + 背景合计最多 `8`
|
|
80
|
+
```bash
|
|
81
|
+
npx helloloop install --host codex
|
|
82
|
+
```
|
|
195
83
|
|
|
196
|
-
|
|
84
|
+
### 安装到 Claude Code
|
|
197
85
|
|
|
198
|
-
```
|
|
199
|
-
|
|
86
|
+
```bash
|
|
87
|
+
npx helloloop install --host claude
|
|
200
88
|
```
|
|
201
89
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
"runtime": {
|
|
207
|
-
"terminalConcurrency": {
|
|
208
|
-
"enabled": true,
|
|
209
|
-
"visibleMax": 8,
|
|
210
|
-
"backgroundMax": 8,
|
|
211
|
-
"totalMax": 8
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}
|
|
90
|
+
### 安装到 Gemini CLI
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
npx helloloop install --host gemini
|
|
215
94
|
```
|
|
216
95
|
|
|
217
|
-
|
|
96
|
+
### 一次装到全部宿主
|
|
218
97
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
98
|
+
```bash
|
|
99
|
+
npx helloloop install --host all
|
|
100
|
+
```
|
|
222
101
|
|
|
223
|
-
|
|
102
|
+
---
|
|
224
103
|
|
|
225
|
-
|
|
104
|
+
## 6. 最快上手
|
|
226
105
|
|
|
227
|
-
|
|
106
|
+
### 只让 HelloLoop 自己判断
|
|
228
107
|
|
|
229
108
|
```bash
|
|
230
109
|
npx helloloop
|
|
231
110
|
```
|
|
232
111
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
- 当前目录本身就是开发文档目录时,会先尝试从文档反推项目目录
|
|
236
|
-
- 当前目录看起来像普通项目目录时,默认直接把当前目录作为项目目录
|
|
237
|
-
- 当前目录更像工作区或用户主目录时,才会额外询问项目目录
|
|
238
|
-
- 如果当前项目目录下没有明确开发文档,会只提示补充“开发文档”这一项,并说明已检查的常见位置
|
|
239
|
-
|
|
240
|
-
### 2. 项目路径只问一次
|
|
241
|
-
|
|
242
|
-
对外只有“项目路径”这一个概念:
|
|
243
|
-
|
|
244
|
-
- 输入已有目录 → 按现有项目继续分析
|
|
245
|
-
- 输入不存在的目录 → 视为准备创建的新项目目录
|
|
246
|
-
|
|
247
|
-
不会再额外追问一个“新项目路径”。
|
|
248
|
-
|
|
249
|
-
### 3. 缺什么就只问什么
|
|
250
|
-
|
|
251
|
-
正常情况下只需要两项信息:
|
|
252
|
-
|
|
253
|
-
- 项目目录
|
|
254
|
-
- 开发文档
|
|
255
|
-
|
|
256
|
-
其中:
|
|
257
|
-
|
|
258
|
-
- 项目目录默认优先使用当前打开的目录
|
|
259
|
-
- 当前目录明显不是项目目录时,才会额外询问项目目录
|
|
260
|
-
- 开发文档缺失时,只会询问开发文档
|
|
261
|
-
|
|
262
|
-
以下情况不会硬猜:
|
|
112
|
+
### 指定开发文档或项目路径
|
|
263
113
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
### 4. 命令 + 自然语言会一起分析
|
|
269
|
-
|
|
270
|
-
`HelloLoop` 不依赖固定中文关键词做硬编码分流。
|
|
271
|
-
|
|
272
|
-
命令里的:
|
|
273
|
-
|
|
274
|
-
- 显式路径
|
|
275
|
-
- 中文自然语言
|
|
276
|
-
- 英文自然语言
|
|
277
|
-
- 其他语言的补充要求
|
|
278
|
-
|
|
279
|
-
都会一起进入分析和确认单,不会因为语言不同被静默忽略。
|
|
280
|
-
|
|
281
|
-
### 5. 现有项目与文档目标冲突时
|
|
114
|
+
```bash
|
|
115
|
+
npx helloloop <PATH>
|
|
116
|
+
```
|
|
282
117
|
|
|
283
|
-
|
|
118
|
+
`<PATH>` 可以是:
|
|
284
119
|
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
120
|
+
- 项目仓库目录
|
|
121
|
+
- 开发文档目录
|
|
122
|
+
- 开发文档文件
|
|
288
123
|
|
|
289
|
-
|
|
124
|
+
### 明确指定执行引擎
|
|
290
125
|
|
|
291
126
|
```bash
|
|
292
|
-
npx helloloop
|
|
127
|
+
npx helloloop codex
|
|
128
|
+
npx helloloop claude
|
|
129
|
+
npx helloloop gemini
|
|
293
130
|
```
|
|
294
131
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
真正开始开发前,`HelloLoop` 会先输出中文执行确认单,至少包含:
|
|
298
|
-
|
|
299
|
-
- 路径判断与判断依据
|
|
300
|
-
- 本次命令补充输入
|
|
301
|
-
- 执行引擎
|
|
302
|
-
- 需求语义理解
|
|
303
|
-
- 项目匹配判断
|
|
304
|
-
- 项目目录
|
|
305
|
-
- 开发文档
|
|
306
|
-
- 当前进度
|
|
307
|
-
- 已实现事项
|
|
308
|
-
- 待完成事项
|
|
309
|
-
- 任务统计
|
|
310
|
-
- 首个待执行任务
|
|
311
|
-
- 验证命令预览
|
|
312
|
-
- 自动执行停止条件
|
|
132
|
+
### 跳过确认直接开始
|
|
313
133
|
|
|
314
|
-
|
|
134
|
+
```bash
|
|
135
|
+
npx helloloop -y
|
|
136
|
+
```
|
|
315
137
|
|
|
316
|
-
|
|
138
|
+
### 只分析,不执行
|
|
317
139
|
|
|
318
|
-
|
|
319
|
-
-
|
|
320
|
-
|
|
321
|
-
- 只有“任务验收闭合 + 主线目标闭合 + 验证通过”才算真正结束
|
|
322
|
-
- 运行中若出现可恢复的 CLI 故障,则按无人值守策略自动恢复,不打断主线
|
|
140
|
+
```bash
|
|
141
|
+
npx helloloop --dry-run
|
|
142
|
+
```
|
|
323
143
|
|
|
324
|
-
|
|
144
|
+
---
|
|
325
145
|
|
|
326
|
-
|
|
146
|
+
## 7. 常见使用方式
|
|
327
147
|
|
|
328
|
-
|
|
148
|
+
### 场景 A:根据文档持续完成一个仓库
|
|
329
149
|
|
|
330
150
|
```bash
|
|
331
|
-
npx helloloop
|
|
332
|
-
npx helloloop install --codex-home <CODEX_HOME>
|
|
151
|
+
npx helloloop "D:\GitHub\dev\hellomind-codex\docs"
|
|
333
152
|
```
|
|
334
153
|
|
|
335
|
-
|
|
154
|
+
### 场景 B:指定仓库并补充自然语言要求
|
|
336
155
|
|
|
337
156
|
```bash
|
|
338
|
-
npx helloloop
|
|
339
|
-
npx helloloop install --host claude
|
|
340
|
-
npx helloloop install --host gemini
|
|
341
|
-
npx helloloop install --host all
|
|
157
|
+
npx helloloop "D:\GitHub\dev\repo" 先对齐开发文档,再继续完成剩余任务
|
|
342
158
|
```
|
|
343
159
|
|
|
344
|
-
|
|
160
|
+
### 场景 C:强制某个引擎继续推进
|
|
345
161
|
|
|
346
162
|
```bash
|
|
347
|
-
|
|
348
|
-
--claude-home <CLAUDE_HOME>
|
|
349
|
-
--gemini-home <GEMINI_HOME>
|
|
163
|
+
npx helloloop codex "D:\GitHub\dev\repo" 接着做,不要重新分析无关内容
|
|
350
164
|
```
|
|
351
165
|
|
|
352
|
-
###
|
|
166
|
+
### 场景 D:宿主中断后继续接上
|
|
353
167
|
|
|
354
168
|
```bash
|
|
355
|
-
|
|
169
|
+
helloloop resume-host
|
|
356
170
|
```
|
|
357
171
|
|
|
358
|
-
|
|
172
|
+
如果要让上层程序读取结构化结果:
|
|
359
173
|
|
|
360
|
-
```
|
|
361
|
-
|
|
174
|
+
```bash
|
|
175
|
+
helloloop resume-host --json
|
|
362
176
|
```
|
|
363
177
|
|
|
364
|
-
|
|
178
|
+
---
|
|
365
179
|
|
|
366
|
-
|
|
367
|
-
npx helloloop install --force
|
|
368
|
-
npx helloloop install --host claude --force
|
|
369
|
-
npx helloloop install --host gemini --force
|
|
370
|
-
npx helloloop install --host codex --force
|
|
371
|
-
npx helloloop install --host all --force
|
|
372
|
-
```
|
|
180
|
+
## 8. 后台执行与继续观察
|
|
373
181
|
|
|
374
|
-
|
|
182
|
+
`HelloLoop` 的默认体验是:
|
|
375
183
|
|
|
376
|
-
-
|
|
377
|
-
-
|
|
378
|
-
-
|
|
379
|
-
- `Gemini` 会刷新 `extensions/helloloop/`,不会动同目录下其他扩展
|
|
380
|
-
- 安装 / 升级 / 重装时,会把 `~/.helloloop/settings.json` 严格收敛到当前版本 schema:补齐缺失项、清理未知项、把非法值重置为当前版本默认值
|
|
381
|
-
- 如果 `~/.helloloop/settings.json` 被确认不是合法 JSON,会先备份原文件,再按当前版本结构重建
|
|
382
|
-
- 如果只是首次读取时出现瞬时异常,但重读后内容合法,则不会误生成备份文件
|
|
383
|
-
- 如果宿主自己的配置 JSON(如 `Codex marketplace.json`、`Claude settings.json`、`known_marketplaces.json`、`installed_plugins.json`)本身已损坏,`HelloLoop` 会先明确报错并停止,不会先清理现有安装再失败
|
|
184
|
+
- 自动执行时切到后台继续跑
|
|
185
|
+
- 当前终端仍可继续观察实时输出
|
|
186
|
+
- 当前 turn 被打断,不等于后台任务立即停止
|
|
384
187
|
|
|
385
|
-
|
|
188
|
+
如果你稍后想重新看进度:
|
|
386
189
|
|
|
387
190
|
```bash
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
npx helloloop uninstall --host gemini
|
|
391
|
-
npx helloloop uninstall --host all
|
|
191
|
+
helloloop watch
|
|
192
|
+
helloloop status --watch
|
|
392
193
|
```
|
|
393
194
|
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
- 只删除 `helloloop` 自己的安装目录和注册条目
|
|
397
|
-
- 不会顺带删除别的插件、marketplace、扩展或自定义配置
|
|
398
|
-
- 即使某个宿主当前未安装 `helloloop`,也会安全退出,不做破坏性清理
|
|
399
|
-
|
|
400
|
-
## 使用入口
|
|
401
|
-
|
|
402
|
-
### 终端
|
|
195
|
+
如果你只想后台继续跑,前台命令立即返回:
|
|
403
196
|
|
|
404
197
|
```bash
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
npx helloloop codex <PATH>
|
|
408
|
-
npx helloloop claude <PATH>
|
|
409
|
-
npx helloloop gemini <PATH> <补充说明>
|
|
198
|
+
helloloop run-loop --detach
|
|
199
|
+
helloloop run-once --detach
|
|
410
200
|
```
|
|
411
201
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
### Codex CLI
|
|
202
|
+
---
|
|
415
203
|
|
|
416
|
-
|
|
417
|
-
$helloloop
|
|
418
|
-
helloloop:helloloop
|
|
419
|
-
```
|
|
204
|
+
## 9. 看板与可视化
|
|
420
205
|
|
|
421
|
-
|
|
206
|
+
### 终端 TUI 总控台
|
|
422
207
|
|
|
423
208
|
```bash
|
|
424
|
-
|
|
209
|
+
helloloop dashboard
|
|
210
|
+
helloloop tui
|
|
211
|
+
helloloop dash
|
|
425
212
|
```
|
|
426
213
|
|
|
427
|
-
|
|
428
|
-
未显式调用 `$helloloop`、`helloloop:helloloop` 或 `npx helloloop` 时,普通 `Codex` 会话不会被 HelloLoop 自动接管。
|
|
429
|
-
|
|
430
|
-
### Claude Code / Gemini CLI
|
|
214
|
+
适合:
|
|
431
215
|
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
216
|
+
- 常驻一个终端看多仓任务
|
|
217
|
+
- 在仓库之间快速切换
|
|
218
|
+
- 查看 backlog 的待处理 / 进行中 / 已完成 / 阻塞 / 失败
|
|
435
219
|
|
|
436
|
-
|
|
437
|
-
只有在你显式调用 `/helloloop` 时,它们才会进入 HelloLoop 工作流;普通 Claude / Gemini 会话不会被自动接管。
|
|
220
|
+
快捷键:
|
|
438
221
|
|
|
439
|
-
|
|
222
|
+
- `← / →` 切换仓库
|
|
223
|
+
- `↑ / ↓` 滚动
|
|
224
|
+
- `1-9` 直达仓库
|
|
225
|
+
- `r` 刷新
|
|
226
|
+
- `q` 退出
|
|
440
227
|
|
|
441
|
-
|
|
442
|
-
| --- | --- |
|
|
443
|
-
| `helloloop` / `analyze` | 自动分析、展示确认单,并在确认后持续接续开发,直到主线目标闭合或遇到硬阻塞 |
|
|
444
|
-
| `install` | 安装运行时 bundle 到指定宿主 |
|
|
445
|
-
| `uninstall` | 从指定宿主卸载运行时 bundle 与注册信息 |
|
|
446
|
-
| `doctor` | 检查宿主环境、插件资产与目标仓库状态 |
|
|
447
|
-
| `init` | 手动初始化 `.helloloop/` 模板 |
|
|
448
|
-
| `status` | 查看 backlog 摘要和当前状态 |
|
|
449
|
-
| `watch` | 重新附着后台 supervisor,持续查看实时进度 |
|
|
450
|
-
| `next` | 生成下一任务的干跑预览 |
|
|
451
|
-
| `run-once` | 执行一个任务 |
|
|
452
|
-
| `run-loop` | 连续执行多个任务 |
|
|
453
|
-
|
|
454
|
-
常用选项:
|
|
455
|
-
|
|
456
|
-
| 选项 | 作用 |
|
|
457
|
-
| --- | --- |
|
|
458
|
-
| `codex` / `claude` / `gemini` | 作为 `analyze` 模式的命令首参数,显式指定执行引擎 |
|
|
459
|
-
| `--dry-run` | 只分析并输出确认单,不开始自动执行 |
|
|
460
|
-
| `-y` / `--yes` | 跳过执行确认直接开始;但如果未显式指定引擎,会直接报错而不是自动选引擎 |
|
|
461
|
-
| `--repo <dir>` | 高级覆盖:显式指定项目仓库 |
|
|
462
|
-
| `--docs <dir|file>` | 高级覆盖:显式指定开发文档 |
|
|
463
|
-
| `--watch` | 启动后台 supervisor 后,当前终端继续附着观察实时输出 |
|
|
464
|
-
| `--detach` | 仅启动后台 supervisor,立即返回,不进入观察模式 |
|
|
465
|
-
| `--rebuild-existing` | 项目与文档冲突时,自动清理现有项目后重建 |
|
|
466
|
-
| `--host <name>` | 安装宿主:`codex` / `claude` / `gemini` / `all` |
|
|
467
|
-
| `--config-dir <dir>` | 状态目录名,默认 `.helloloop` |
|
|
468
|
-
|
|
469
|
-
手动控制示例:
|
|
228
|
+
### 本地 Web 看板
|
|
470
229
|
|
|
471
230
|
```bash
|
|
472
|
-
|
|
473
|
-
npx helloloop status --watch
|
|
474
|
-
npx helloloop watch
|
|
475
|
-
npx helloloop next
|
|
476
|
-
npx helloloop run-once
|
|
477
|
-
npx helloloop run-loop --detach
|
|
231
|
+
helloloop web
|
|
478
232
|
```
|
|
479
233
|
|
|
480
|
-
|
|
234
|
+
默认会启动一个本地 Web 服务,并输出访问地址。
|
|
481
235
|
|
|
482
|
-
|
|
236
|
+
可选参数:
|
|
483
237
|
|
|
484
238
|
```bash
|
|
485
|
-
|
|
239
|
+
helloloop web --port 3210
|
|
240
|
+
helloloop web --bind 127.0.0.1
|
|
241
|
+
helloloop web --stop
|
|
486
242
|
```
|
|
487
243
|
|
|
488
|
-
|
|
244
|
+
适合:
|
|
489
245
|
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
246
|
+
- 长时间像 Jira 一样挂着看板
|
|
247
|
+
- 多仓泳道 + 任务列跟踪
|
|
248
|
+
- 点击任务查看详情
|
|
493
249
|
|
|
494
|
-
|
|
250
|
+
### 给主代理或外部程序消费结构化状态
|
|
495
251
|
|
|
496
252
|
```bash
|
|
497
|
-
|
|
253
|
+
helloloop dashboard --json
|
|
254
|
+
helloloop dashboard --json --watch
|
|
255
|
+
helloloop dash -j --watch --poll-ms 2000
|
|
498
256
|
```
|
|
499
257
|
|
|
500
|
-
|
|
258
|
+
---
|
|
501
259
|
|
|
502
|
-
|
|
260
|
+
## 10. 常用命令速查
|
|
503
261
|
|
|
504
|
-
|
|
505
|
-
|
|
262
|
+
| 命令 | 作用 |
|
|
263
|
+
| --- | --- |
|
|
264
|
+
| `helloloop` | 分析并进入主流程 |
|
|
265
|
+
| `helloloop status` / `helloloop st` | 查看当前仓库状态 |
|
|
266
|
+
| `helloloop watch` / `helloloop w` | 重新附着后台会话 |
|
|
267
|
+
| `helloloop next` / `helloloop n` | 预览下一任务 |
|
|
268
|
+
| `helloloop run-once` / `helloloop once` | 执行一个任务 |
|
|
269
|
+
| `helloloop run-loop` / `helloloop loop` | 连续执行多个任务 |
|
|
270
|
+
| `helloloop dashboard` / `helloloop dash` | 打开终端总控台 |
|
|
271
|
+
| `helloloop tui` | 显式打开 TUI 看板 |
|
|
272
|
+
| `helloloop web` | 启动本地 Web 看板 |
|
|
273
|
+
| `helloloop resume-host` / `helloloop rh` | 输出宿主续跑提示 |
|
|
274
|
+
| `helloloop doctor` / `helloloop dr` | 诊断安装与运行环境 |
|
|
275
|
+
| `helloloop install` | 安装插件到宿主 |
|
|
276
|
+
| `helloloop uninstall` | 从宿主卸载插件 |
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## 11. 短命令别名
|
|
281
|
+
|
|
282
|
+
如果你不想每次打很长:
|
|
506
283
|
|
|
507
284
|
```bash
|
|
508
|
-
|
|
509
|
-
|
|
285
|
+
helloloop dash
|
|
286
|
+
helloloop tui
|
|
287
|
+
helloloop web
|
|
288
|
+
helloloop st
|
|
289
|
+
helloloop w
|
|
290
|
+
helloloop rh
|
|
291
|
+
helloloop once
|
|
292
|
+
helloloop loop
|
|
510
293
|
```
|
|
511
294
|
|
|
512
|
-
|
|
295
|
+
---
|
|
513
296
|
|
|
514
|
-
|
|
515
|
-
git tag vX.Y.Z
|
|
516
|
-
git push origin vX.Y.Z
|
|
517
|
-
```
|
|
297
|
+
## 12. 配置文件
|
|
518
298
|
|
|
519
|
-
|
|
299
|
+
全局设置位于:
|
|
520
300
|
|
|
521
|
-
```
|
|
522
|
-
|
|
523
|
-
git push origin vX.Y.Z-beta.N
|
|
301
|
+
```text
|
|
302
|
+
~/.helloloop/settings.json
|
|
524
303
|
```
|
|
525
304
|
|
|
526
|
-
|
|
305
|
+
常见配置包括:
|
|
527
306
|
|
|
528
|
-
-
|
|
529
|
-
-
|
|
530
|
-
-
|
|
531
|
-
-
|
|
532
|
-
- GitHub Release
|
|
307
|
+
- 观察层自动重试
|
|
308
|
+
- 后台守护保活
|
|
309
|
+
- 终端并发上限
|
|
310
|
+
- 告警邮箱
|
|
533
311
|
|
|
534
|
-
|
|
312
|
+
项目级运行状态位于目标仓库:
|
|
535
313
|
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
- GitHub Release 阶段现已改为使用官方 `gh` CLI + `generate-notes` API 创建 / 更新 release,不再依赖会触发 Node runtime deprecation warning 的第三方 action
|
|
540
|
-
|
|
541
|
-
## 宿主写入范围
|
|
542
|
-
|
|
543
|
-
为了方便排查安装 / 更新 / 卸载问题,下面是默认写入位置:
|
|
544
|
-
|
|
545
|
-
### `Codex CLI`
|
|
546
|
-
|
|
547
|
-
- 插件源码目录:`~/plugins/helloloop/`
|
|
548
|
-
- 已安装缓存:`~/.codex/plugins/cache/local-plugins/helloloop/local/`
|
|
549
|
-
- marketplace:`~/.agents/plugins/marketplace.json`
|
|
550
|
-
- 启用配置:`~/.codex/config.toml`
|
|
551
|
-
|
|
552
|
-
### `Claude Code`
|
|
553
|
-
|
|
554
|
-
- marketplace:`~/.claude/plugins/marketplaces/helloloop-local/`
|
|
555
|
-
- 已安装插件缓存:`~/.claude/plugins/cache/helloloop-local/helloloop/<VERSION>/`
|
|
556
|
-
- 用户配置:`~/.claude/settings.json`
|
|
557
|
-
- marketplace 索引:`~/.claude/plugins/known_marketplaces.json`
|
|
558
|
-
- 已安装插件索引:`~/.claude/plugins/installed_plugins.json`
|
|
559
|
-
|
|
560
|
-
### `Gemini CLI`
|
|
314
|
+
```text
|
|
315
|
+
<repo>/.helloloop/
|
|
316
|
+
```
|
|
561
317
|
|
|
562
|
-
|
|
318
|
+
其中通常会包含:
|
|
563
319
|
|
|
564
|
-
|
|
320
|
+
- backlog
|
|
321
|
+
- 运行状态
|
|
322
|
+
- supervisor 状态
|
|
323
|
+
- 宿主续跑信息
|
|
324
|
+
- runs 执行记录
|
|
565
325
|
|
|
566
|
-
|
|
326
|
+
---
|
|
567
327
|
|
|
568
|
-
|
|
328
|
+
## 13. Windows 使用说明
|
|
569
329
|
|
|
570
|
-
|
|
571
|
-
~/.helloloop/
|
|
572
|
-
└── settings.json
|
|
573
|
-
```
|
|
330
|
+
`HelloLoop` 会尽量把后台启动、内部调度和观察链做成隐藏模式,目标是:
|
|
574
331
|
|
|
575
|
-
|
|
332
|
+
- 不弹出空白 PowerShell 窗口
|
|
333
|
+
- 不让后台守护层反复闪烁控制台
|
|
334
|
+
- 主任务在后台继续跑,主终端只负责观察
|
|
576
335
|
|
|
577
|
-
|
|
578
|
-
- 安装 / 升级 / 重装时,会对 `settings.json` 做严格 schema 校准;已知字段只要值不合法,也会按当前版本默认值重置
|
|
579
|
-
- 只有在 `settings.json` 被确认非法时,才会先备份,再重建为当前版本结构
|
|
580
|
-
- 如果只是读取瞬时异常、重读后合法,不会误生成 `.bak`
|
|
336
|
+
但首次安装、系统权限、终端自身限制等因素仍可能影响最终表现。
|
|
581
337
|
|
|
582
|
-
|
|
338
|
+
如果你主要关心状态可视化,优先使用:
|
|
583
339
|
|
|
584
|
-
`
|
|
340
|
+
- `helloloop dashboard`
|
|
341
|
+
- `helloloop tui`
|
|
342
|
+
- `helloloop web`
|
|
585
343
|
|
|
586
|
-
|
|
587
|
-
.helloloop/
|
|
588
|
-
├── backlog.json
|
|
589
|
-
├── policy.json
|
|
590
|
-
├── project.json
|
|
591
|
-
├── status.json
|
|
592
|
-
├── STATE.md
|
|
593
|
-
└── runs/
|
|
594
|
-
```
|
|
344
|
+
---
|
|
595
345
|
|
|
596
|
-
|
|
597
|
-
也不会写入 `~/.helloloop/`。
|
|
346
|
+
## 14. 边界说明
|
|
598
347
|
|
|
599
|
-
|
|
348
|
+
`HelloLoop` 不会做这些事:
|
|
600
349
|
|
|
601
|
-
|
|
350
|
+
- 不会在普通对话里静默接管当前宿主
|
|
351
|
+
- 不会在未确认时默认清空已有项目目录
|
|
352
|
+
- 不会因为一条“已完成”回复就直接宣称任务真正完成
|
|
353
|
+
- 不会在恢复阶段偷偷切换到别的引擎
|
|
602
354
|
|
|
603
|
-
|
|
604
|
-
- 也支持 `bash`(如 Git Bash)与 `powershell`
|
|
605
|
-
- 不回退到 `cmd.exe`
|
|
606
|
-
- 避免危险的嵌套命令、路径拼接删除和 `cmd` 风格破坏性流程
|
|
355
|
+
---
|
|
607
356
|
|
|
608
|
-
|
|
357
|
+
## 15. 推荐工作方式
|
|
609
358
|
|
|
610
|
-
|
|
611
|
-
- 如果没有 `bash`,回退到 `sh`
|
|
359
|
+
### 个人开发者
|
|
612
360
|
|
|
613
|
-
|
|
361
|
+
- 用 `npx helloloop` 或宿主内显式调用开始
|
|
362
|
+
- 用 `watch` 看实时过程
|
|
363
|
+
- 用 `dashboard` / `tui` 看多仓状态
|
|
614
364
|
|
|
615
|
-
|
|
616
|
-
- 不静默回退
|
|
617
|
-
- 不静默切换执行引擎
|
|
618
|
-
- 不吞掉错误
|
|
619
|
-
- 真正执行前先确认
|
|
620
|
-
- 真正结束前先验证
|
|
621
|
-
- 不轻信执行引擎口头“已完成”
|
|
622
|
-
- 不接受“先做一半再停下来问要不要继续”
|
|
365
|
+
### 多仓联动开发
|
|
623
366
|
|
|
624
|
-
|
|
367
|
+
- 每个仓库各自维护 `.helloloop/`
|
|
368
|
+
- 用 `web` 看整体进度
|
|
369
|
+
- 用 `resume-host` 在主代理中断后继续接上
|
|
625
370
|
|
|
626
|
-
|
|
627
|
-
helloloop/
|
|
628
|
-
├── .claude-plugin/
|
|
629
|
-
├── .codex-plugin/
|
|
630
|
-
├── .github/
|
|
631
|
-
├── .helloagents/
|
|
632
|
-
├── bin/
|
|
633
|
-
├── docs/
|
|
634
|
-
├── hosts/
|
|
635
|
-
├── scripts/
|
|
636
|
-
├── skills/
|
|
637
|
-
├── src/
|
|
638
|
-
├── templates/
|
|
639
|
-
├── tests/
|
|
640
|
-
├── LICENSE
|
|
641
|
-
├── package.json
|
|
642
|
-
└── README.md
|
|
643
|
-
```
|
|
371
|
+
### 长时间任务
|
|
644
372
|
|
|
645
|
-
|
|
373
|
+
- 先确认后启动
|
|
374
|
+
- 让后台继续执行
|
|
375
|
+
- 用 `status` / `watch` / `dashboard` / `web` 轮流观察
|
|
646
376
|
|
|
647
|
-
|
|
648
|
-
- `.claude-plugin/`:Claude plugin manifest
|
|
649
|
-
- `hosts/`:Claude marketplace / Gemini extension 资产
|
|
650
|
-
- `skills/`:Codex 插件技能说明
|
|
651
|
-
- `src/`:发现、分析、执行、安装、卸载、doctor 等核心实现
|
|
652
|
-
- `templates/`:初始化目标仓库 `.helloloop/` 的模板
|
|
653
|
-
- `docs/` 与 `tests/`:源码仓库维护资料,不进入运行时安装包
|
|
377
|
+
---
|
|
654
378
|
|
|
655
|
-
##
|
|
379
|
+
## 16. 一句话理解
|
|
656
380
|
|
|
657
|
-
`HelloLoop`
|
|
381
|
+
如果普通 CLI 像“单次回答助手”,那 `HelloLoop` 更像“持续推进开发任务的执行层 + 观察层 + 续跑层”。
|