helloloop 0.1.1 → 0.2.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 +14 -0
- package/.codex-plugin/plugin.json +6 -6
- package/LICENSE +176 -0
- package/README.md +323 -146
- package/hosts/claude/marketplace/.claude-plugin/marketplace.json +14 -0
- package/hosts/claude/marketplace/plugins/helloloop/.claude-plugin/plugin.json +9 -0
- package/hosts/claude/marketplace/plugins/helloloop/commands/helloloop.md +28 -0
- package/hosts/claude/marketplace/plugins/helloloop/skills/helloloop/SKILL.md +38 -0
- package/hosts/gemini/extension/GEMINI.md +29 -0
- package/hosts/gemini/extension/commands/helloloop.toml +24 -0
- package/hosts/gemini/extension/gemini-extension.json +13 -0
- package/package.json +9 -3
- package/skills/helloloop/SKILL.md +59 -31
- package/src/analyze_confirmation.mjs +128 -0
- package/src/analyze_prompt.mjs +75 -0
- package/src/analyzer.mjs +208 -0
- package/src/cli.mjs +148 -91
- package/src/cli_support.mjs +307 -0
- package/src/discovery.mjs +155 -0
- package/src/discovery_inference.mjs +220 -0
- package/src/discovery_paths.mjs +166 -0
- package/src/guardrails.mjs +59 -0
- package/src/install.mjs +142 -28
- package/src/process.mjs +31 -129
- package/src/prompt.mjs +10 -12
- package/src/shell_invocation.mjs +225 -0
- package/templates/analysis-output.schema.json +144 -0
package/README.md
CHANGED
|
@@ -1,185 +1,315 @@
|
|
|
1
1
|
# HelloLoop
|
|
2
2
|
|
|
3
|
-
`HelloLoop` 是一个面向 Codex
|
|
3
|
+
`HelloLoop` 是一个面向 `Codex CLI`、`Claude Code`、`Gemini CLI` 的多宿主开发工作流插件,用来把“根据开发文档持续接续开发”变成一条可分析、可确认、可验证、可追踪的标准流程。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
它有两层定位:
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- `Codex CLI`:首发平台、参考实现、最佳体验路径
|
|
8
|
+
- `Claude Code` / `Gemini CLI`:各自按原生 agent 逻辑执行,但共享同一套 `.helloloop/` 工作流规范
|
|
9
|
+
|
|
10
|
+
Codex 路径的主工作流只有两种 CLI 入口:
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npx helloloop
|
|
14
|
+
npx helloloop <PATH>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
无论从哪个宿主进入,`HelloLoop` 都遵循同一条主线:
|
|
18
|
+
|
|
19
|
+
1. 自动识别项目仓库与开发文档
|
|
20
|
+
2. 分析当前代码与文档目标的真实差距
|
|
21
|
+
3. 生成或刷新目标仓库根目录下的 `.helloloop/`
|
|
22
|
+
4. 输出中文执行确认单
|
|
23
|
+
5. 用户确认后,继续按当前宿主的原生 agent 逻辑推进开发、测试和验收
|
|
8
24
|
|
|
9
25
|
## 目录
|
|
10
26
|
|
|
11
|
-
- [
|
|
12
|
-
- [
|
|
13
|
-
- [适用场景](#适用场景)
|
|
27
|
+
- [核心流程](#核心流程)
|
|
28
|
+
- [支持矩阵](#支持矩阵)
|
|
14
29
|
- [安装](#安装)
|
|
15
30
|
- [快速开始](#快速开始)
|
|
31
|
+
- [自动发现规则](#自动发现规则)
|
|
32
|
+
- [自动执行边界](#自动执行边界)
|
|
33
|
+
- [Doctor 检查](#doctor-检查)
|
|
16
34
|
- [命令速查](#命令速查)
|
|
17
35
|
- [状态目录](#状态目录)
|
|
18
|
-
- [
|
|
36
|
+
- [Skill 用法](#skill-用法)
|
|
37
|
+
- [在 Codex 中使用](#在-codex-中使用)
|
|
38
|
+
- [跨平台与安全](#跨平台与安全)
|
|
19
39
|
- [仓库结构](#仓库结构)
|
|
20
|
-
- [
|
|
40
|
+
- [许可证](#许可证)
|
|
41
|
+
|
|
42
|
+
## 核心流程
|
|
21
43
|
|
|
22
|
-
|
|
44
|
+
`HelloLoop` 的默认流程固定为 5 步:
|
|
23
45
|
|
|
24
|
-
|
|
46
|
+
1. 自动发现项目仓库与开发文档
|
|
47
|
+
2. 对比文档目标与当前代码,识别当前进度和偏差
|
|
48
|
+
3. 生成或刷新目标仓库根目录下的 `.helloloop/`
|
|
49
|
+
4. 输出执行确认单,明确展示仓库、文档、当前进度、待办任务、验证命令和执行边界
|
|
50
|
+
5. 用户确认后,自动推进后续开发、测试和验收,直到全部完成或遇到硬阻塞
|
|
25
51
|
|
|
26
|
-
|
|
27
|
-
- 你希望 Codex 能按顺序接着做,而不是每次都从头解释背景
|
|
28
|
-
- 你希望每一轮执行前都自动带上项目状态、必读文档和实现约束
|
|
29
|
-
- 你希望每次运行后都留下状态记录、验证结果和运行痕迹
|
|
52
|
+
如果分析识别出偏差修正任务,`HelloLoop` 会优先先收口偏差,再继续后面的开发任务。
|
|
30
53
|
|
|
31
|
-
|
|
54
|
+
工作流统一,但执行器分为两类:
|
|
32
55
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
3. 生成面向 Codex 的执行提示
|
|
36
|
-
4. 调用 Codex 完成实现
|
|
37
|
-
5. 执行验证命令
|
|
38
|
-
6. 回写状态、日志和运行记录
|
|
56
|
+
- `Codex CLI`:通过 `npx helloloop` / `$helloloop` 进入,使用当前仓库内的 Node CLI 与 Codex 插件链路
|
|
57
|
+
- `Claude Code` / `Gemini CLI`:通过 `/helloloop` 进入,使用各自原生插件 / 扩展与 agent 工具链
|
|
39
58
|
|
|
40
|
-
##
|
|
59
|
+
## 支持矩阵
|
|
41
60
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
- **循环执行**:连续执行多个任务,直到完成、阻塞或达到上限
|
|
48
|
-
- **验证联动**:优先使用任务级验证命令,缺省时读取仓库验证配置
|
|
49
|
-
- **运行留痕**:把提示词、stdout、stderr、验证输出沉淀到 `runs/`
|
|
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 原生扩展工作流 |
|
|
50
66
|
|
|
51
|
-
|
|
67
|
+
如果你希望一次性装好三家宿主:
|
|
52
68
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
- 你希望执行失败后不是停住,而是能按既定策略继续推进
|
|
57
|
-
- 你希望多人协作时,每个人都能快速看懂当前任务状态
|
|
69
|
+
```bash
|
|
70
|
+
npx helloloop install --host all
|
|
71
|
+
```
|
|
58
72
|
|
|
59
73
|
## 安装
|
|
60
74
|
|
|
61
|
-
###
|
|
75
|
+
### npm / npx
|
|
62
76
|
|
|
63
|
-
|
|
77
|
+
默认安装 `Codex` 宿主:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
64
80
|
npx helloloop install --codex-home <CODEX_HOME>
|
|
65
81
|
```
|
|
66
82
|
|
|
67
|
-
|
|
83
|
+
安装到指定宿主:
|
|
68
84
|
|
|
69
|
-
```
|
|
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
|
+
```
|
|
91
|
+
|
|
92
|
+
可选 home 参数:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
--codex-home <CODEX_HOME>
|
|
96
|
+
--claude-home <CLAUDE_HOME>
|
|
97
|
+
--gemini-home <GEMINI_HOME>
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### 源码仓库
|
|
101
|
+
|
|
102
|
+
```bash
|
|
70
103
|
node ./scripts/helloloop.mjs install --codex-home <CODEX_HOME>
|
|
71
104
|
```
|
|
72
105
|
|
|
73
|
-
|
|
106
|
+
Windows PowerShell 也可以直接运行:
|
|
74
107
|
|
|
75
108
|
```powershell
|
|
76
109
|
pwsh -NoLogo -NoProfile -File .\scripts\install-home-plugin.ps1 -CodexHome <CODEX_HOME>
|
|
77
110
|
```
|
|
78
111
|
|
|
79
|
-
|
|
112
|
+
安装完成后:
|
|
80
113
|
|
|
81
|
-
|
|
82
|
-
|
|
114
|
+
- Codex 会写入 `<CODEX_HOME>/plugins/helloloop`
|
|
115
|
+
- Claude 会写入 `<CLAUDE_HOME>/marketplaces/helloloop-local`
|
|
116
|
+
- Gemini 会写入 `<GEMINI_HOME>/extensions/helloloop`
|
|
117
|
+
|
|
118
|
+
如果你想在安装后做一次全宿主环境检查:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
npx helloloop doctor --host all
|
|
83
122
|
```
|
|
84
123
|
|
|
85
|
-
|
|
124
|
+
## 快速开始
|
|
125
|
+
|
|
126
|
+
### 1. 选择宿主入口
|
|
86
127
|
|
|
87
128
|
```text
|
|
88
|
-
|
|
129
|
+
Codex -> $helloloop / npx helloloop
|
|
130
|
+
Claude -> /helloloop
|
|
131
|
+
Gemini -> /helloloop
|
|
89
132
|
```
|
|
90
133
|
|
|
91
|
-
|
|
134
|
+
说明:
|
|
92
135
|
|
|
93
|
-
|
|
136
|
+
- `Codex` 路径下,`$helloloop` 与 `npx helloloop` 对齐同一主流程
|
|
137
|
+
- `Claude` 与 `Gemini` 路径下,`/helloloop` 会走各自原生 agent 执行逻辑
|
|
138
|
+
- 三家都会维护同一个 `.helloloop/` 状态目录规范
|
|
94
139
|
|
|
95
|
-
|
|
96
|
-
|
|
140
|
+
### 2. 进入项目仓库或开发文档目录
|
|
141
|
+
|
|
142
|
+
最短命令:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
npx helloloop
|
|
97
146
|
```
|
|
98
147
|
|
|
99
|
-
|
|
148
|
+
如果你只知道一个路径,也可以只传一个:
|
|
100
149
|
|
|
101
|
-
```
|
|
102
|
-
npx helloloop <
|
|
150
|
+
```bash
|
|
151
|
+
npx helloloop <PATH>
|
|
103
152
|
```
|
|
104
153
|
|
|
105
|
-
|
|
154
|
+
这里的 `<PATH>` 可以是:
|
|
106
155
|
|
|
107
|
-
|
|
108
|
-
|
|
156
|
+
- 项目仓库路径
|
|
157
|
+
- 开发文档目录
|
|
158
|
+
- 开发文档文件
|
|
159
|
+
|
|
160
|
+
### 3. 查看执行确认单
|
|
161
|
+
|
|
162
|
+
分析完成后,`HelloLoop` 会展示一份执行确认单,至少包含:
|
|
163
|
+
|
|
164
|
+
- 识别出的目标仓库
|
|
165
|
+
- 识别出的开发文档
|
|
166
|
+
- 当前进度摘要
|
|
167
|
+
- 已实现事项
|
|
168
|
+
- 待完成事项
|
|
169
|
+
- 任务统计
|
|
170
|
+
- 首个待执行任务
|
|
171
|
+
- 验证命令预览
|
|
172
|
+
- 自动推进边界
|
|
173
|
+
|
|
174
|
+
### 4. 确认后自动继续执行
|
|
175
|
+
|
|
176
|
+
你确认后,`HelloLoop` 会:
|
|
177
|
+
|
|
178
|
+
- 按 backlog 顺序自动推进
|
|
179
|
+
- 每个任务都走当前宿主的原生 agent 执行与验证
|
|
180
|
+
- 遇到失败、风险超阈值、依赖未满足或环境硬阻塞时立即停下
|
|
181
|
+
- 把分析结果、状态和运行记录都写进目标仓库的 `.helloloop/`
|
|
182
|
+
|
|
183
|
+
如果你已经做了全局安装,也可以把 `npx helloloop` 简写成 `helloloop`。
|
|
184
|
+
|
|
185
|
+
如果你想手动查看或接管某一步,也可以使用:
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
npx helloloop status
|
|
189
|
+
npx helloloop next
|
|
190
|
+
npx helloloop run-once
|
|
109
191
|
```
|
|
110
192
|
|
|
111
|
-
|
|
193
|
+
## 自动发现规则
|
|
112
194
|
|
|
113
|
-
|
|
195
|
+
- 不传路径:默认分析当前目录
|
|
196
|
+
- 只传一个路径:自动判断它是仓库路径还是开发文档路径
|
|
197
|
+
- 当前目录是仓库:自动查找开发文档
|
|
198
|
+
- 当前目录是文档目录:自动尝试反推目标仓库
|
|
199
|
+
- 只给开发文档但无法推断仓库:停止并提示补充 `--repo`
|
|
200
|
+
- 只给仓库但找不到开发文档:停止并提示补充 `--docs`
|
|
114
201
|
|
|
115
|
-
|
|
116
|
-
|
|
202
|
+
推荐始终优先使用:
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
npx helloloop
|
|
206
|
+
npx helloloop <PATH>
|
|
117
207
|
```
|
|
118
208
|
|
|
119
|
-
|
|
209
|
+
只有自动发现无法收敛时,再补充高级参数:
|
|
120
210
|
|
|
121
|
-
|
|
211
|
+
```bash
|
|
212
|
+
npx helloloop --repo <REPO_ROOT> --docs <DOCS_PATH>
|
|
213
|
+
```
|
|
122
214
|
|
|
123
|
-
|
|
124
|
-
|
|
215
|
+
## 自动执行边界
|
|
216
|
+
|
|
217
|
+
默认主命令会在确认后尽量自动完成整轮 backlog,而不是只跑一个任务。
|
|
218
|
+
|
|
219
|
+
### 常用执行模式
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
npx helloloop
|
|
223
|
+
npx helloloop <PATH>
|
|
224
|
+
npx helloloop --dry-run
|
|
225
|
+
npx helloloop -y
|
|
125
226
|
```
|
|
126
227
|
|
|
127
|
-
|
|
228
|
+
含义如下:
|
|
128
229
|
|
|
129
|
-
|
|
130
|
-
npx helloloop
|
|
131
|
-
npx helloloop
|
|
230
|
+
- `npx helloloop`:分析 → 展示确认单 → 等待你确认 → 自动执行
|
|
231
|
+
- `npx helloloop <PATH>`:同上,但先用你给的单一路径做自动识别
|
|
232
|
+
- `npx helloloop --dry-run`:只分析并输出确认单,不真正开始执行
|
|
233
|
+
- `npx helloloop -y`:跳过交互确认,分析后直接自动执行
|
|
234
|
+
|
|
235
|
+
### 停止条件
|
|
236
|
+
|
|
237
|
+
出现以下情况时,`HelloLoop` 会停止并保留现场,而不是静默降级:
|
|
238
|
+
|
|
239
|
+
- 无法自动确定目标仓库或开发文档
|
|
240
|
+
- backlog 已存在失败任务、阻塞任务或未满足依赖
|
|
241
|
+
- 后续任务风险超出自动阈值,且你没有显式加 `--allow-high-risk`
|
|
242
|
+
- 验证命令失败
|
|
243
|
+
- 当前宿主 CLI、插件资产或 shell 环境不可安全执行
|
|
244
|
+
|
|
245
|
+
## Doctor 检查
|
|
246
|
+
|
|
247
|
+
你可以用 `doctor` 检查当前宿主是否已具备基本运行条件。
|
|
248
|
+
|
|
249
|
+
### 只检查 Codex
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
npx helloloop doctor
|
|
132
253
|
```
|
|
133
254
|
|
|
134
|
-
###
|
|
255
|
+
### 检查全部宿主
|
|
135
256
|
|
|
136
|
-
```
|
|
137
|
-
npx helloloop
|
|
138
|
-
npx helloloop run-loop --repo <REPO_ROOT> --max-tasks 2
|
|
257
|
+
```bash
|
|
258
|
+
npx helloloop doctor --host all
|
|
139
259
|
```
|
|
140
260
|
|
|
261
|
+
### 检查已安装目录
|
|
262
|
+
|
|
263
|
+
```bash
|
|
264
|
+
npx helloloop doctor --host all --codex-home <CODEX_HOME> --claude-home <CLAUDE_HOME> --gemini-home <GEMINI_HOME>
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
`doctor` 当前可检查:
|
|
268
|
+
|
|
269
|
+
- 宿主 CLI 是否存在
|
|
270
|
+
- 本地运行时资产是否齐全
|
|
271
|
+
- 目标仓库 `.helloloop/` 基础文件是否存在
|
|
272
|
+
- 已安装宿主目录是否已写入对应插件 / 扩展
|
|
273
|
+
|
|
141
274
|
## 命令速查
|
|
142
275
|
|
|
143
276
|
| 命令 | 作用 |
|
|
144
277
|
| --- | --- |
|
|
145
|
-
| `
|
|
146
|
-
| `
|
|
147
|
-
| `
|
|
148
|
-
| `
|
|
149
|
-
| `
|
|
150
|
-
| `
|
|
151
|
-
| `
|
|
278
|
+
| `analyze` | 主工作流;分析并输出确认单,确认后自动接续执行 |
|
|
279
|
+
| `status` | 查看 backlog 汇总与当前状态 |
|
|
280
|
+
| `next` | 预览下一任务,不真正执行 |
|
|
281
|
+
| `run-once` | 手动执行一个任务 |
|
|
282
|
+
| `run-loop` | 手动连续执行多个任务 |
|
|
283
|
+
| `doctor` | 检查所选宿主、运行时资产与目标仓库是否满足运行条件 |
|
|
284
|
+
| `init` | 手动初始化 `.helloloop/` 模板 |
|
|
285
|
+
| `install` | 安装插件到所选宿主目录 |
|
|
152
286
|
|
|
153
287
|
### 常用选项
|
|
154
288
|
|
|
155
289
|
| 选项 | 说明 |
|
|
156
290
|
| --- | --- |
|
|
157
|
-
| `--
|
|
158
|
-
| `--
|
|
159
|
-
| `--
|
|
160
|
-
| `--
|
|
161
|
-
| `--
|
|
162
|
-
| `--max-tasks <n>` | `run-loop` 最多执行的任务数 |
|
|
163
|
-
| `--max-attempts <n>` | 每种策略的最大重试次数 |
|
|
164
|
-
| `--max-strategies <n>` | 单任务最大换路次数 |
|
|
291
|
+
| `-y`, `--yes` | 跳过交互确认,分析后直接开始执行 |
|
|
292
|
+
| `--dry-run` | 只分析并输出确认单,不真正开始执行 |
|
|
293
|
+
| `--host <name>` | 选择安装宿主:`codex`、`claude`、`gemini`、`all` |
|
|
294
|
+
| `--repo <dir>` | 高级选项:显式指定项目仓库根目录 |
|
|
295
|
+
| `--docs <dir\|file>` | 高级选项:显式指定开发文档目录或文件 |
|
|
165
296
|
| `--allow-high-risk` | 允许执行 `medium` 及以上风险任务 |
|
|
297
|
+
| `--max-tasks <n>` | 限制手动 `run-loop` 的最大任务数 |
|
|
298
|
+
| `--max-attempts <n>` | 单策略最大重试次数 |
|
|
299
|
+
| `--max-strategies <n>` | 单任务最大换路次数 |
|
|
166
300
|
| `--required-doc <path>` | 追加全局必读文档 |
|
|
167
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` |
|
|
168
306
|
| `--force` | 覆盖已有安装目录 |
|
|
169
307
|
|
|
170
|
-
### Skill 名称
|
|
171
|
-
|
|
172
|
-
安装为 Codex 插件后,推荐显式使用:
|
|
173
|
-
|
|
174
|
-
```text
|
|
175
|
-
helloloop:helloloop
|
|
176
|
-
```
|
|
177
|
-
|
|
178
308
|
## 状态目录
|
|
179
309
|
|
|
180
|
-
`HelloLoop`
|
|
310
|
+
`HelloLoop` 始终把运行状态写入目标仓库根目录,而不是插件目录自身。
|
|
181
311
|
|
|
182
|
-
|
|
312
|
+
默认目录:
|
|
183
313
|
|
|
184
314
|
```text
|
|
185
315
|
.helloloop/
|
|
@@ -191,73 +321,120 @@ helloloop:helloloop
|
|
|
191
321
|
└── runs/
|
|
192
322
|
```
|
|
193
323
|
|
|
194
|
-
|
|
324
|
+
其中:
|
|
325
|
+
|
|
326
|
+
- `backlog.json`:分析后生成的任务队列
|
|
327
|
+
- `policy.json`:自动推进策略、重试上限和 Codex 参数
|
|
328
|
+
- `project.json`:开发文档入口和全局约束
|
|
329
|
+
- `status.json`:最近一次运行状态
|
|
330
|
+
- `STATE.md`:面向人的进度摘要
|
|
331
|
+
- `runs/`:提示词、stdout、stderr、验证日志等留痕
|
|
332
|
+
|
|
333
|
+
## Skill 用法
|
|
334
|
+
|
|
335
|
+
如果你已经把 `HelloLoop` 安装成 Codex 插件,也可以直接在 Codex 里调用:
|
|
336
|
+
|
|
337
|
+
```text
|
|
338
|
+
$helloloop
|
|
339
|
+
```
|
|
195
340
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
341
|
+
或:
|
|
342
|
+
|
|
343
|
+
```text
|
|
344
|
+
helloloop:helloloop
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
此时推荐理解为:
|
|
348
|
+
|
|
349
|
+
- `$helloloop` 是插件入口
|
|
350
|
+
- `npx helloloop` / `npx helloloop <PATH>` 是实际执行入口
|
|
351
|
+
|
|
352
|
+
也就是说,用户显式调用 `$helloloop` 时,目标行为应当与主命令保持一致:
|
|
353
|
+
|
|
354
|
+
1. 先自动识别仓库和开发文档
|
|
355
|
+
2. 再分析当前代码与文档目标
|
|
356
|
+
3. 再展示执行确认单
|
|
357
|
+
4. 最后在你确认后自动接续执行
|
|
358
|
+
|
|
359
|
+
如果当前目录无法判断目标仓库、缺少开发文档,或者你明确只想先讲解不执行,`HelloLoop` 才应该先停下来问你,而不是直接启动执行。
|
|
360
|
+
|
|
361
|
+
如果你安装的是 Claude 或 Gemini 宿主,则推荐直接使用:
|
|
362
|
+
|
|
363
|
+
```text
|
|
364
|
+
/helloloop
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
它们会按各自 CLI 的原生 agent 逻辑执行,但共享同一套 `.helloloop/` 工作流规范。
|
|
368
|
+
|
|
369
|
+
## 在 Codex 中使用
|
|
370
|
+
|
|
371
|
+
可以直接在当前 Codex 会话里运行:
|
|
372
|
+
|
|
373
|
+
```bash
|
|
374
|
+
npx helloloop
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
不需要重开终端。
|
|
378
|
+
|
|
379
|
+
如果你使用的是全局安装后的 `helloloop` 短命令,是否立刻可用取决于当前 shell 是否已经刷新 PATH。
|
|
380
|
+
|
|
381
|
+
安装为 Codex 插件后,推荐显式使用的 skill 名称是:
|
|
382
|
+
|
|
383
|
+
```text
|
|
384
|
+
helloloop:helloloop
|
|
385
|
+
```
|
|
202
386
|
|
|
203
|
-
##
|
|
387
|
+
## 跨平台与安全
|
|
204
388
|
|
|
205
|
-
|
|
389
|
+
`HelloLoop` 默认兼容 Windows、macOS 和 Linux。
|
|
206
390
|
|
|
207
|
-
|
|
391
|
+
### shell 策略
|
|
208
392
|
|
|
209
|
-
- `
|
|
210
|
-
- `
|
|
211
|
-
- `
|
|
212
|
-
- `priority`:`P0` 到 `P3`
|
|
213
|
-
- `risk`:`low`、`medium`、`high`、`critical`
|
|
214
|
-
- `goal`:本任务要达成的目标
|
|
215
|
-
- `docs`:执行前必须阅读的文档
|
|
216
|
-
- `paths`:本任务主要涉及的目录
|
|
217
|
-
- `acceptance`:验收条件
|
|
218
|
-
- `dependsOn`:依赖的上游任务
|
|
219
|
-
- `verify`:任务专属验证命令
|
|
393
|
+
- Windows:`pwsh` → `bash`(如 Git Bash)→ `powershell`
|
|
394
|
+
- macOS / Linux:`bash` → `sh`
|
|
395
|
+
- Windows 不会回退到 `cmd.exe`
|
|
220
396
|
|
|
221
|
-
|
|
397
|
+
说明:
|
|
222
398
|
|
|
223
|
-
`
|
|
399
|
+
- `Codex` 路径由当前 Node CLI 严格控制 shell 选择
|
|
400
|
+
- `Claude` / `Gemini` 路径走各自原生插件 / 扩展,但仍应遵守 `HelloLoop` 的安全约束
|
|
224
401
|
|
|
225
|
-
|
|
226
|
-
2. 读取仓库状态、任务描述和必读文档
|
|
227
|
-
3. 生成清晰的 Codex 执行提示
|
|
228
|
-
4. 运行 Codex 完成开发
|
|
229
|
-
5. 执行验证命令
|
|
230
|
-
6. 更新任务状态和运行记录
|
|
402
|
+
### 内建兜底规则
|
|
231
403
|
|
|
232
|
-
|
|
404
|
+
当开发文档没有给出足够约束时,`HelloLoop` 会自动附加一层最低安全边界,包括但不限于:
|
|
233
405
|
|
|
234
|
-
-
|
|
235
|
-
-
|
|
236
|
-
-
|
|
237
|
-
-
|
|
406
|
+
- 代码是事实源
|
|
407
|
+
- 验证必须执行
|
|
408
|
+
- 不能静默失败
|
|
409
|
+
- 不能吞掉错误
|
|
410
|
+
- 危险命令必须阻断
|
|
411
|
+
- 路径与 shell 调用必须按跨平台安全方式执行
|
|
238
412
|
|
|
239
413
|
## 仓库结构
|
|
240
414
|
|
|
241
415
|
```text
|
|
242
416
|
helloloop/
|
|
243
|
-
├── .
|
|
244
|
-
├──
|
|
245
|
-
├──
|
|
246
|
-
├──
|
|
247
|
-
├──
|
|
248
|
-
├──
|
|
249
|
-
├──
|
|
250
|
-
|
|
417
|
+
├── .claude-plugin/
|
|
418
|
+
├── .codex-plugin/
|
|
419
|
+
├── bin/
|
|
420
|
+
├── docs/
|
|
421
|
+
├── hosts/
|
|
422
|
+
├── scripts/
|
|
423
|
+
├── skills/
|
|
424
|
+
├── src/
|
|
425
|
+
├── templates/
|
|
426
|
+
└── tests/
|
|
251
427
|
```
|
|
252
428
|
|
|
253
429
|
其中:
|
|
254
430
|
|
|
255
|
-
-
|
|
256
|
-
-
|
|
257
|
-
- `
|
|
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/` 时写入的模板
|
|
258
437
|
|
|
259
|
-
##
|
|
438
|
+
## 许可证
|
|
260
439
|
|
|
261
|
-
|
|
262
|
-
- `docs/install.md`:安装说明
|
|
263
|
-
- `docs/plugin-standard.md`:官方插件结构与标准对照
|
|
440
|
+
`HelloLoop` 使用 `Apache-2.0`,许可证文件位于仓库根目录 `LICENSE`。
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "helloloop-local",
|
|
3
|
+
"owner": {
|
|
4
|
+
"name": "HelloLoop"
|
|
5
|
+
},
|
|
6
|
+
"plugins": [
|
|
7
|
+
{
|
|
8
|
+
"name": "helloloop",
|
|
9
|
+
"displayName": "HelloLoop",
|
|
10
|
+
"description": "基于开发文档分析当前进度、展示确认单,并在确认后继续接续开发的 Claude Code 原生插件。",
|
|
11
|
+
"source": "./plugins/helloloop"
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 根据开发文档分析当前进度、生成确认单,并在确认后继续接续开发
|
|
3
|
+
argument-hint: [PATH]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
你现在正在执行 HelloLoop 的 Claude Code 原生工作流。
|
|
7
|
+
|
|
8
|
+
规则如下:
|
|
9
|
+
|
|
10
|
+
1. 将当前代码视为事实源,将开发文档视为目标源。
|
|
11
|
+
2. 如果用户在命令后提供了 `$ARGUMENTS`,只把它解释为一个路径;该路径可能是项目仓库、开发文档目录或开发文档文件。
|
|
12
|
+
3. 自动识别目标仓库与开发文档,并先分析“当前代码做到哪里了”“与文档目标是否存在偏差”。
|
|
13
|
+
4. 在目标仓库根目录创建或刷新 `.helloloop/`,至少维护 `backlog.json`、`project.json`、`status.json`、`STATE.md` 与 `runs/`。
|
|
14
|
+
5. 如果用户给了开发文档但无法定位项目仓库,或者给了项目路径但无法定位开发文档,必须停下来询问用户,而不是猜测。
|
|
15
|
+
6. 在真正执行开发前,必须输出一份中文执行确认单,至少包含:
|
|
16
|
+
- 目标仓库
|
|
17
|
+
- 开发文档
|
|
18
|
+
- 当前进度
|
|
19
|
+
- 已实现事项
|
|
20
|
+
- 待完成事项
|
|
21
|
+
- 任务统计
|
|
22
|
+
- 首个待执行任务
|
|
23
|
+
- 验证命令预览
|
|
24
|
+
- 自动执行停止条件
|
|
25
|
+
7. 未经用户确认,不要开始正式修改代码。
|
|
26
|
+
8. 用户确认后,使用 Claude Code 的原生工具持续推进 backlog,直到完成、遇到硬阻塞或需要用户补充关键信息。
|
|
27
|
+
9. 始终优先使用安全 shell 与原生文件工具;在 Windows 上避免危险的嵌套命令、路径拼接删除和 `cmd` 风格破坏性命令。
|
|
28
|
+
10. 不要调用外部 `npx helloloop` 来替代这个原生工作流;你现在就在 HelloLoop 的 Claude Code 原生模式中。
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: helloloop
|
|
3
|
+
description: 当用户希望 Claude Code 按开发文档先分析当前进度,再展示确认单,并在确认后持续接续开发时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# HelloLoop for Claude Code
|
|
7
|
+
|
|
8
|
+
这是 `HelloLoop` 的 Claude Code 原生技能入口。
|
|
9
|
+
|
|
10
|
+
## 默认流程
|
|
11
|
+
|
|
12
|
+
1. 自动识别目标仓库与开发文档
|
|
13
|
+
2. 分析当前代码与文档目标之间的真实进度和偏差
|
|
14
|
+
3. 在目标仓库根目录创建或刷新 `.helloloop/`
|
|
15
|
+
4. 输出中文执行确认单
|
|
16
|
+
5. 用户确认后,继续用 Claude Code 原生工具接续开发、测试和验收
|
|
17
|
+
|
|
18
|
+
## 关键规则
|
|
19
|
+
|
|
20
|
+
- 如果缺少目标仓库或开发文档,必须停下来询问用户。
|
|
21
|
+
- 不允许跳过执行确认单直接开始正式开发。
|
|
22
|
+
- 不允许把开发文档整体压成一个大任务;需要输出足够细的 backlog。
|
|
23
|
+
- 代码是事实源,开发文档是目标源。
|
|
24
|
+
- 遇到失败、阻塞、依赖未满足或风险超出自动阈值时,必须明确说明当前状态。
|
|
25
|
+
|
|
26
|
+
## `.helloloop/` 最低要求
|
|
27
|
+
|
|
28
|
+
- `backlog.json`
|
|
29
|
+
- `project.json`
|
|
30
|
+
- `status.json`
|
|
31
|
+
- `STATE.md`
|
|
32
|
+
- `runs/`
|
|
33
|
+
|
|
34
|
+
## 安全要求
|
|
35
|
+
|
|
36
|
+
- Windows 上避免使用危险的嵌套命令、拼接删除命令和 `cmd` 风格破坏性流程。
|
|
37
|
+
- 不允许静默失败、静默回退、吞掉错误。
|
|
38
|
+
- 真正执行前先确认,真正结束前先验证。
|