helloagents 3.0.12 → 3.0.15-beta.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.
- package/.claude-plugin/marketplace.json +6 -4
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/README.md +169 -30
- package/README_CN.md +169 -30
- package/bootstrap-lite.md +27 -20
- package/bootstrap.md +30 -23
- package/cli.mjs +119 -11
- package/gemini-extension.json +1 -1
- package/install.ps1 +125 -0
- package/install.sh +118 -0
- package/package.json +23 -4
- package/scripts/advisor-state.mjs +36 -63
- package/scripts/capability-registry.mjs +3 -3
- package/scripts/cli-branch.mjs +84 -0
- package/scripts/cli-codex-config.mjs +11 -20
- package/scripts/cli-codex.mjs +32 -38
- package/scripts/cli-doctor-render.mjs +4 -0
- package/scripts/cli-doctor.mjs +40 -30
- package/scripts/cli-host-detect.mjs +0 -1
- package/scripts/cli-hosts.mjs +16 -8
- package/scripts/cli-lifecycle-hosts.mjs +92 -27
- package/scripts/cli-lifecycle.mjs +9 -7
- package/scripts/cli-messages.mjs +34 -16
- package/scripts/cli-runtime-carrier.mjs +36 -0
- package/scripts/cli-runtime-root.mjs +72 -0
- package/scripts/cli-toml.mjs +0 -79
- package/scripts/cli-utils.mjs +30 -4
- package/scripts/closeout-state.mjs +35 -62
- package/scripts/delivery-gate-messages.mjs +70 -0
- package/scripts/delivery-gate.mjs +9 -75
- package/scripts/guard-rules.mjs +42 -42
- package/scripts/guard.mjs +44 -24
- package/scripts/notify-context.mjs +19 -28
- package/scripts/notify-gates.mjs +2 -0
- package/scripts/notify-route.mjs +9 -7
- package/scripts/notify-ui.mjs +46 -33
- package/scripts/notify.mjs +60 -32
- package/scripts/project-storage.mjs +35 -66
- package/scripts/ralph-loop.mjs +36 -31
- package/scripts/replay-state.mjs +31 -128
- package/scripts/review-state.mjs +34 -61
- package/scripts/runtime-artifacts.mjs +95 -0
- package/scripts/runtime-context.mjs +35 -29
- package/scripts/runtime-scope.mjs +313 -0
- package/scripts/session-capsule.mjs +202 -0
- package/scripts/turn-state-cli.mjs +17 -0
- package/scripts/turn-state.mjs +185 -66
- package/scripts/turn-stop-gate.mjs +24 -6
- package/scripts/verify-state.mjs +34 -85
- package/scripts/visual-state.mjs +38 -65
- package/scripts/workflow-core.mjs +2 -2
- package/scripts/workflow-plan-files.mjs +1 -1
- package/scripts/workflow-recommendation.mjs +17 -13
- package/scripts/workflow-state.mjs +5 -5
- package/skills/commands/build/SKILL.md +1 -1
- package/skills/commands/commit/SKILL.md +1 -1
- package/skills/commands/help/SKILL.md +3 -3
- package/skills/commands/loop/SKILL.md +1 -1
- package/skills/commands/plan/SKILL.md +8 -6
- package/skills/commands/prd/SKILL.md +5 -3
- package/skills/commands/verify/SKILL.md +5 -5
- package/skills/hello-debug/SKILL.md +20 -3
- package/skills/hello-review/SKILL.md +2 -2
- package/skills/hello-subagent/SKILL.md +2 -2
- package/skills/hello-test/SKILL.md +6 -2
- package/skills/hello-ui/SKILL.md +4 -4
- package/skills/hello-verify/SKILL.md +10 -7
- package/skills/helloagents/SKILL.md +12 -7
- package/templates/context.md +6 -0
- package/templates/plans/plan.md +3 -0
- package/templates/plans/tasks.md +8 -3
package/README_CN.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
**面向 AI 编码 CLI 的工作流层:技能、知识库、交付检查、更安全的配置写入,以及可恢复的执行流程。**
|
|
10
10
|
|
|
11
|
-
[](./package.json)
|
|
12
12
|
[](https://www.npmjs.com/package/helloagents)
|
|
13
13
|
[](./package.json)
|
|
14
14
|
[](./skills)
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
## 目录
|
|
31
31
|
|
|
32
32
|
- [HelloAGENTS 做什么](#helloagents-做什么)
|
|
33
|
-
- [相对 v3.0.
|
|
33
|
+
- [相对 v3.0.12 的真实变化](#相对-v3012-的真实变化)
|
|
34
34
|
- [核心功能](#核心功能)
|
|
35
35
|
- [快速开始](#快速开始)
|
|
36
36
|
- [CLI 管理](#cli-管理)
|
|
@@ -77,13 +77,20 @@ HelloAGENTS 叠加在 Claude Code、Gemini CLI 和 Codex CLI 之上,帮助模
|
|
|
77
77
|
| 完成态模糊 | 自然语言说“完成” | 按状态、证据和验证结果交付 |
|
|
78
78
|
| 配置容易漂移 | CLI 文件可能不一致 | 安装、更新、清理和 doctor 会检查受管文件 |
|
|
79
79
|
|
|
80
|
-
## 相对 v3.0.
|
|
80
|
+
## 相对 v3.0.12 的真实变化
|
|
81
81
|
|
|
82
|
-
下面是当前 `v3.0.
|
|
82
|
+
下面是当前 `v3.0.15` 相对 `v3.0.12` 的主要可见变化:
|
|
83
83
|
|
|
84
|
-
-
|
|
85
|
-
-
|
|
86
|
-
-
|
|
84
|
+
- 安装、更新、卸载和切换分支支持通过 npm scripts 与一键脚本完成,更新过程中不再依赖可能已经失效的旧 `helloagents` 可执行文件。
|
|
85
|
+
- 标准模式统一读取稳定运行根目录 `~/.helloagents/helloagents`,受管 hooks 使用 `helloagents-js` 入口,skills、templates 和运行时脚本不再指向带 Node 版本号的全局包路径。
|
|
86
|
+
- 全局模式会自动尝试安装 Claude Code 插件和 Gemini 扩展;Codex 继续使用受管本地插件链路,并刷新 marketplace 与缓存副本。
|
|
87
|
+
- `~auto` 和 `~loop` 的结构化停顿门控更严格;流程确需暂停时,必须写明具体阻塞证据。
|
|
88
|
+
- 运行态状态收敛到 `.helloagents/sessions/<branch>/<session>/` 下的会话胶囊,分别记录 turn-state、事件和交付证据,兼容多 CLI 窗口与多 worktree。
|
|
89
|
+
- 仅在工作流需要运行时状态时,通过稳定入口 `helloagents-turn-state write --kind complete --role main` 写入,不再解析或拼接包内脚本路径。
|
|
90
|
+
- Codex 标准模式刷新和清理会保留用户自有配置,同时更新受管 carrier、本地插件文件、marketplace 条目和 doctor 检查。
|
|
91
|
+
- 输出格式配置在 carrier 与运行时注入中保持一致,减少收尾格式偶发不生效的问题。
|
|
92
|
+
- 调试、测试、验证和规划流程补充反馈循环、垂直切片 TDD、领域语言和 AFK/HITL 任务标记,仍复用现有 skills 与模板体系。
|
|
93
|
+
- 运行时提示统一为更自然的中文表述,并明确重装、刷新或切换模式后需要重启 AI CLI 或新开会话。
|
|
87
94
|
|
|
88
95
|
## 核心功能
|
|
89
96
|
|
|
@@ -110,7 +117,7 @@ HelloAGENTS 内置 14 个 `hello-*` 技能。技能只在当前阶段需要时
|
|
|
110
117
|
|
|
111
118
|
所有 UI 任务都会先受共享的 UI 质量基线约束。
|
|
112
119
|
在已激活项目或明确的 UI 工作流里,`hello-ui` 会进一步补充设计契约执行、设计系统映射与视觉验收。
|
|
113
|
-
当需要视觉证据时,HelloAGENTS
|
|
120
|
+
当需要视觉证据时,HelloAGENTS 会写入当前会话的 `artifacts/visual.json`。
|
|
114
121
|
|
|
115
122
|
### 2)面向不同工作方式的命令
|
|
116
123
|
|
|
@@ -205,11 +212,13 @@ HelloAGENTS 不把“命令通过”和“任务完成”简单画等号。交
|
|
|
205
212
|
|
|
206
213
|
运行态证据文件包括:
|
|
207
214
|
|
|
208
|
-
- `.helloagents
|
|
209
|
-
- `.helloagents
|
|
210
|
-
- `.helloagents
|
|
211
|
-
- `.helloagents
|
|
212
|
-
- `.helloagents/
|
|
215
|
+
- `.helloagents/sessions/<branch>/<session>/capsule.json`
|
|
216
|
+
- `.helloagents/sessions/<branch>/<session>/events.jsonl`
|
|
217
|
+
- `.helloagents/sessions/<branch>/<session>/artifacts/review.json`
|
|
218
|
+
- `.helloagents/sessions/<branch>/<session>/artifacts/advisor.json`
|
|
219
|
+
- `.helloagents/sessions/<branch>/<session>/artifacts/visual.json`
|
|
220
|
+
- `.helloagents/sessions/<branch>/<session>/artifacts/closeout.json`
|
|
221
|
+
- `.helloagents/sessions/<branch>/<session>/artifacts/loop-results.tsv`
|
|
213
222
|
|
|
214
223
|
### 7)更安全的安装、更新、清理和诊断
|
|
215
224
|
|
|
@@ -235,7 +244,7 @@ npm install -g helloagents
|
|
|
235
244
|
helloagents-js
|
|
236
245
|
```
|
|
237
246
|
|
|
238
|
-
|
|
247
|
+
默认情况下,`postinstall` 会安装包命令、初始化 `~/.helloagents/helloagents.json`,并把运行时文件同步到 `~/.helloagents/helloagents`。如果希望 npm 在安装或更新后直接部署,设置 `HELLOAGENTS=目标[:模式]`,例如 `HELLOAGENTS=codex:global`。
|
|
239
248
|
|
|
240
249
|
### 2)部署到目标 CLI
|
|
241
250
|
|
|
@@ -250,8 +259,11 @@ helloagents install --all --standby
|
|
|
250
259
|
|
|
251
260
|
```bash
|
|
252
261
|
helloagents --global
|
|
262
|
+
helloagents install --all --global
|
|
253
263
|
```
|
|
254
264
|
|
|
265
|
+
重装、刷新或切换模式后,请重启对应 AI CLI 或新开会话;已运行会话不会自动重载注入规则。
|
|
266
|
+
|
|
255
267
|
### 3)在 AI CLI 里验证
|
|
256
268
|
|
|
257
269
|
输入:
|
|
@@ -288,6 +300,8 @@ helloagents install --all --global
|
|
|
288
300
|
helloagents update codex
|
|
289
301
|
helloagents cleanup claude --global
|
|
290
302
|
helloagents uninstall gemini
|
|
303
|
+
helloagents switch-branch beta
|
|
304
|
+
helloagents switch-branch beta claude --global
|
|
291
305
|
helloagents doctor
|
|
292
306
|
helloagents doctor codex --json
|
|
293
307
|
```
|
|
@@ -301,13 +315,123 @@ helloagents doctor codex --json
|
|
|
301
315
|
|
|
302
316
|
省略 `--standby` 或 `--global` 时,HelloAGENTS 会先复用该 CLI 已记录或检测到的模式,再回退到 `standby`。
|
|
303
317
|
|
|
318
|
+
### npm 和一键脚本入口
|
|
319
|
+
|
|
320
|
+
当你不想依赖更新过程中的 `helloagents` 可执行文件时,用 npm 或一键脚本。`HELLOAGENTS=目标[:模式]` 中,目标支持 `all`、`claude`、`gemini`、`codex`;模式支持 `standby`、`global`,省略时默认 `standby`。
|
|
321
|
+
|
|
322
|
+
宿主配置使用稳定的 `helloagents-js` 入口和运行根目录 `~/.helloagents/helloagents`,Node 全局包路径变化不会破坏受管 hooks 或 Codex `notify`。
|
|
323
|
+
|
|
324
|
+
#### npm 命令
|
|
325
|
+
|
|
326
|
+
macOS / Linux:
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
# 安装到 Codex,标准模式
|
|
330
|
+
HELLOAGENTS=codex npm install -g helloagents
|
|
331
|
+
|
|
332
|
+
# 安装到 Codex,全局模式
|
|
333
|
+
HELLOAGENTS=codex:global npm install -g helloagents
|
|
334
|
+
|
|
335
|
+
# 更新并同步 Claude,标准模式
|
|
336
|
+
HELLOAGENTS=claude:standby npm update -g helloagents
|
|
337
|
+
|
|
338
|
+
# 切换到 beta 分支并同步全部 CLI,标准模式
|
|
339
|
+
HELLOAGENTS=all:standby npm install -g github:hellowind777/helloagents#beta
|
|
340
|
+
|
|
341
|
+
# 卸载包前清理 Gemini 集成
|
|
342
|
+
npm explore -g helloagents -- npm run uninstall -- gemini --standby
|
|
343
|
+
npm uninstall -g helloagents
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
Windows PowerShell:
|
|
347
|
+
|
|
348
|
+
```powershell
|
|
349
|
+
# 安装到 Codex,标准模式
|
|
350
|
+
$env:HELLOAGENTS="codex"; npm install -g helloagents
|
|
351
|
+
|
|
352
|
+
# 安装到 Codex,全局模式
|
|
353
|
+
$env:HELLOAGENTS="codex:global"; npm install -g helloagents
|
|
354
|
+
|
|
355
|
+
# 更新并同步 Claude,标准模式
|
|
356
|
+
$env:HELLOAGENTS="claude:standby"; npm update -g helloagents
|
|
357
|
+
|
|
358
|
+
# 切换到 beta 分支并同步全部 CLI,标准模式
|
|
359
|
+
$env:HELLOAGENTS="all:standby"; npm install -g github:hellowind777/helloagents#beta
|
|
360
|
+
|
|
361
|
+
# 卸载包前清理 Gemini 集成
|
|
362
|
+
npm explore -g helloagents -- npm run uninstall -- gemini --standby
|
|
363
|
+
npm uninstall -g helloagents
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
包已安装后,也可以直接调用包内 npm scripts:
|
|
367
|
+
|
|
368
|
+
```bash
|
|
369
|
+
npm explore -g helloagents -- npm run deploy:global
|
|
370
|
+
npm explore -g helloagents -- npm run sync-hosts -- --all --standby
|
|
371
|
+
npm explore -g helloagents -- npm run cleanup-hosts -- codex --standby
|
|
372
|
+
npm explore -g helloagents -- npm run uninstall -- --all --standby
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
#### 一键脚本
|
|
376
|
+
|
|
377
|
+
macOS / Linux:
|
|
378
|
+
|
|
379
|
+
```bash
|
|
380
|
+
# 安装
|
|
381
|
+
HELLOAGENTS=codex curl -fsSL https://raw.githubusercontent.com/hellowind777/helloagents/main/install.sh | sh
|
|
382
|
+
|
|
383
|
+
# 更新
|
|
384
|
+
HELLOAGENTS=claude:standby HELLOAGENTS_ACTION=update curl -fsSL https://raw.githubusercontent.com/hellowind777/helloagents/main/install.sh | sh
|
|
385
|
+
|
|
386
|
+
# 切换分支
|
|
387
|
+
HELLOAGENTS=all:global HELLOAGENTS_ACTION=switch-branch HELLOAGENTS_BRANCH=beta curl -fsSL https://raw.githubusercontent.com/hellowind777/helloagents/main/install.sh | sh
|
|
388
|
+
|
|
389
|
+
# 卸载
|
|
390
|
+
HELLOAGENTS=gemini HELLOAGENTS_ACTION=uninstall curl -fsSL https://raw.githubusercontent.com/hellowind777/helloagents/main/install.sh | sh
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
Windows PowerShell:
|
|
394
|
+
|
|
395
|
+
```powershell
|
|
396
|
+
# 安装
|
|
397
|
+
$env:HELLOAGENTS="codex"; irm https://raw.githubusercontent.com/hellowind777/helloagents/main/install.ps1 | iex
|
|
398
|
+
|
|
399
|
+
# 更新
|
|
400
|
+
$env:HELLOAGENTS="claude:standby"; $env:HELLOAGENTS_ACTION="update"; irm https://raw.githubusercontent.com/hellowind777/helloagents/main/install.ps1 | iex
|
|
401
|
+
|
|
402
|
+
# 切换分支
|
|
403
|
+
$env:HELLOAGENTS="all:global"; $env:HELLOAGENTS_ACTION="switch-branch"; $env:HELLOAGENTS_BRANCH="beta"; irm https://raw.githubusercontent.com/hellowind777/helloagents/main/install.ps1 | iex
|
|
404
|
+
|
|
405
|
+
# 卸载
|
|
406
|
+
$env:HELLOAGENTS="gemini"; $env:HELLOAGENTS_ACTION="uninstall"; irm https://raw.githubusercontent.com/hellowind777/helloagents/main/install.ps1 | iex
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
### 分支切换
|
|
410
|
+
|
|
411
|
+
`switch-branch` 会先安装指定 npm/GitHub ref,再通过 npm 脚本同步宿主 CLI,避免依赖更新过程中的 `helloagents` 可执行文件:
|
|
412
|
+
|
|
413
|
+
```bash
|
|
414
|
+
helloagents switch-branch beta
|
|
415
|
+
helloagents switch-branch beta claude --global
|
|
416
|
+
helloagents branch github:hellowind777/helloagents#beta --all --standby
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
如果只想切换包本身,暂不同步宿主 CLI,可以直接使用 npm:
|
|
420
|
+
|
|
421
|
+
```bash
|
|
422
|
+
npm install -g github:hellowind777/helloagents#beta
|
|
423
|
+
npm update -g helloagents
|
|
424
|
+
npm explore -g helloagents -- npm run uninstall -- --all --standby
|
|
425
|
+
npm uninstall -g helloagents
|
|
426
|
+
```
|
|
427
|
+
|
|
304
428
|
### 标准模式文件
|
|
305
429
|
|
|
306
430
|
| CLI | 写入或更新的文件 | 清理行为 |
|
|
307
431
|
|-----|------------------|----------|
|
|
308
|
-
| Claude Code | `~/.claude/CLAUDE.md`、`~/.claude/settings.json`、`~/.claude/helloagents ->
|
|
309
|
-
| Gemini CLI | `~/.gemini/GEMINI.md`、`~/.gemini/settings.json`、`~/.gemini/helloagents ->
|
|
310
|
-
| Codex CLI | `~/.codex/AGENTS.md`、`~/.codex/config.toml`、`~/.codex/helloagents ->
|
|
432
|
+
| Claude Code | `~/.claude/CLAUDE.md`、`~/.claude/settings.json`、`~/.claude/helloagents -> ~/.helloagents/helloagents` | 删除受管标记块、HelloAGENTS hooks / 权限和符号链接 |
|
|
433
|
+
| Gemini CLI | `~/.gemini/GEMINI.md`、`~/.gemini/settings.json`、`~/.gemini/helloagents -> ~/.helloagents/helloagents` | 删除受管标记块、HelloAGENTS hooks 和符号链接 |
|
|
434
|
+
| Codex CLI | `~/.codex/AGENTS.md`、`~/.codex/config.toml`、`~/.codex/helloagents -> ~/.helloagents/helloagents`、受管备份 | 删除受管标记块、受管配置键、符号链接和最近一次受管备份 |
|
|
311
435
|
|
|
312
436
|
### 全局模式文件
|
|
313
437
|
|
|
@@ -317,13 +441,16 @@ helloagents doctor codex --json
|
|
|
317
441
|
| Gemini CLI | 原生扩展安装 | 由 Gemini 扩展系统管理 |
|
|
318
442
|
| Codex CLI | 原生本地插件链路 | `~/.agents/plugins/marketplace.json`、`~/plugins/helloagents/`、`~/.codex/plugins/cache/local-plugins/helloagents/local/`、`~/.codex/config.toml`、`~/.codex/helloagents -> ~/plugins/helloagents` |
|
|
319
443
|
|
|
320
|
-
|
|
444
|
+
全局模式下,HelloAGENTS 会自动尝试宿主原生命令。若宿主命令不可用,再手动执行:
|
|
321
445
|
|
|
322
446
|
```text
|
|
323
447
|
/plugin marketplace add hellowind777/helloagents
|
|
448
|
+
/plugin install helloagents@helloagents
|
|
324
449
|
gemini extensions install https://github.com/hellowind777/helloagents
|
|
325
450
|
```
|
|
326
451
|
|
|
452
|
+
Claude Code 会自动尝试等价的 `claude plugin marketplace add ...` 和 `claude plugin install ...` 命令。marketplace 名称和插件名称都是 `helloagents`,所以安装目标是 `helloagents@helloagents`。全局安装后需要重启宿主 CLI。
|
|
453
|
+
|
|
327
454
|
Codex 全局模式由 HelloAGENTS 通过本地插件路径自动安装。
|
|
328
455
|
|
|
329
456
|
## 对话命令
|
|
@@ -377,8 +504,20 @@ Codex 全局模式由 HelloAGENTS 通过本地插件路径自动安装。
|
|
|
377
504
|
运行态文件仍保留在当前项目本地:
|
|
378
505
|
|
|
379
506
|
- `state_path`
|
|
380
|
-
- `.
|
|
381
|
-
-
|
|
507
|
+
- `.helloagents/sessions/<branch>/<session>/capsule.json`
|
|
508
|
+
- `.helloagents/sessions/<branch>/<session>/events.jsonl`
|
|
509
|
+
- `.helloagents/sessions/<branch>/<session>/artifacts/*.json`
|
|
510
|
+
- `.helloagents/sessions/<branch>/<session>/artifacts/loop-results.tsv`
|
|
511
|
+
|
|
512
|
+
### 未激活或临时会话
|
|
513
|
+
|
|
514
|
+
如果当前目录及其父级没有项目激活目录 `.helloagents/`,HelloAGENTS 不会自动写入项目目录。临时运行态写到用户级目录:
|
|
515
|
+
|
|
516
|
+
```text
|
|
517
|
+
~/.helloagents/runtime/<scope-key>/
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
这里仅保存短期的 `capsule.json`、`events.jsonl` 和 `artifacts/`,不作为项目知识库。过期临时会话会按 TTL 清理。
|
|
382
521
|
|
|
383
522
|
### 知识创建规则
|
|
384
523
|
|
|
@@ -432,7 +571,7 @@ UI 任务遵循以下优先级:
|
|
|
432
571
|
- `ui.styleAdvisor.required`
|
|
433
572
|
- `ui.visualValidation.required`
|
|
434
573
|
|
|
435
|
-
|
|
574
|
+
这些要求分别通过当前会话的 `artifacts/advisor.json` 和 `artifacts/visual.json` 收尾。
|
|
436
575
|
|
|
437
576
|
### 验证命令来源
|
|
438
577
|
|
|
@@ -471,9 +610,9 @@ UI 任务遵循以下优先级:
|
|
|
471
610
|
| 键 | 默认值 | 含义 |
|
|
472
611
|
|----|--------|------|
|
|
473
612
|
| `output_language` | `""` | 默认跟随用户语言 |
|
|
474
|
-
| `output_format` | `true` |
|
|
613
|
+
| `output_format` | `true` | 主代理最终收尾必须使用 HelloAGENTS 格式;中间输出和子代理输出保持自然 |
|
|
475
614
|
| `notify_level` | `0` | `0` 关闭,`1` 桌面通知,`2` 声音,`3` 两者 |
|
|
476
|
-
| `ralph_loop_enabled` | `true` |
|
|
615
|
+
| `ralph_loop_enabled` | `true` | 显式 `~verify` / `~loop` 或收尾要求时运行验证 |
|
|
477
616
|
| `guard_enabled` | `true` | 拦截危险命令 |
|
|
478
617
|
| `kb_create_mode` | `1` | 控制知识库自动更新 |
|
|
479
618
|
| `project_store_mode` | `"local"` | `local` 或 `repo-shared` |
|
|
@@ -486,14 +625,14 @@ UI 任务遵循以下优先级:
|
|
|
486
625
|
|
|
487
626
|
- 标准模式写入 `~/.claude/CLAUDE.md`
|
|
488
627
|
- 标准模式在 `~/.claude/settings.json` 中写入受管 hooks 和权限
|
|
489
|
-
- 标准模式创建 `~/.claude/helloagents ->
|
|
628
|
+
- 标准模式创建 `~/.claude/helloagents -> ~/.helloagents/helloagents`
|
|
490
629
|
- 全局模式使用 Claude Code 插件系统
|
|
491
630
|
|
|
492
631
|
### Gemini CLI
|
|
493
632
|
|
|
494
633
|
- 标准模式写入 `~/.gemini/GEMINI.md`
|
|
495
634
|
- 标准模式在 `~/.gemini/settings.json` 中写入受管 hooks
|
|
496
|
-
- 标准模式创建 `~/.gemini/helloagents ->
|
|
635
|
+
- 标准模式创建 `~/.gemini/helloagents -> ~/.helloagents/helloagents`
|
|
497
636
|
- 全局模式使用 Gemini 扩展系统
|
|
498
637
|
|
|
499
638
|
### Codex CLI
|
|
@@ -501,9 +640,9 @@ UI 任务遵循以下优先级:
|
|
|
501
640
|
Codex 默认走规则文件驱动。
|
|
502
641
|
|
|
503
642
|
- 标准模式写入 `~/.codex/AGENTS.md`
|
|
504
|
-
- 标准模式写入受管 `model_instructions_file`
|
|
505
|
-
- 标准模式写入受管 `notify` 命令用于收尾通知
|
|
506
|
-
- 标准模式创建 `~/.codex/helloagents ->
|
|
643
|
+
- 标准模式写入受管 `model_instructions_file = "~/.codex/AGENTS.md"`
|
|
644
|
+
- 标准模式写入受管 `notify = ["helloagents-js", "codex-notify"]` 命令用于收尾通知
|
|
645
|
+
- 标准模式创建 `~/.codex/helloagents -> ~/.helloagents/helloagents`
|
|
507
646
|
- 全局模式安装原生本地插件链路
|
|
508
647
|
- HelloAGENTS 默认不启用 Codex hooks
|
|
509
648
|
|
|
@@ -522,7 +661,7 @@ npm test
|
|
|
522
661
|
- Codex 受管 `model_instructions_file`、`notify`、本地插件、marketplace 和缓存行为
|
|
523
662
|
- `helloagents doctor`
|
|
524
663
|
- 项目存储和 `repo-shared`
|
|
525
|
-
- 会话级 `state_path
|
|
664
|
+
- 会话级 `state_path`、运行态信号和证据
|
|
526
665
|
- 运行时选路、Guard、验证、视觉证据和交付门控
|
|
527
666
|
- README 与 skill 契约一致性
|
|
528
667
|
|
|
@@ -562,7 +701,7 @@ npm test
|
|
|
562
701
|
|
|
563
702
|
### `npm uninstall -g helloagents` 会删除项目知识库吗?
|
|
564
703
|
|
|
565
|
-
|
|
704
|
+
不会。卸载包前运行 `npm explore -g helloagents -- npm run uninstall -- --all --standby`,会清理宿主集成和稳定运行副本。项目 `.helloagents/` 文件和 `~/.helloagents/helloagents.json` 会保留,除非你手动删除。
|
|
566
705
|
|
|
567
706
|
## 故障排除
|
|
568
707
|
|
package/bootstrap-lite.md
CHANGED
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
## 配置
|
|
6
6
|
配置文件: ~/.helloagents/helloagents.json
|
|
7
|
-
如果当前上下文中已包含"当前用户设置"
|
|
7
|
+
如果当前上下文中已包含"当前用户设置"且包含本轮所需配置项,视为配置已完成读取,本轮直接复用。
|
|
8
8
|
否则,当本轮首次遇到受配置影响的行为时,再读取一次配置文件并复用本轮结果;不要为了展示、确认或同一结论重复读取。
|
|
9
|
+
输出格式判定属于受配置影响的行为;上下文没有"当前用户设置"时,最终收尾前必须读取一次该配置。
|
|
9
10
|
同一轮内对同一配置文件、模块、SKILL、模板只读取一次,后续直接复用已得结论,不要重复探测或重复读取同一路径。
|
|
10
11
|
在受限 CLI(如工作区限制导致家目录不可读)中,确需读取但失败时必须明确说明,并按默认值或当前已知设置执行;禁止静默回退或假装读取成功。
|
|
11
12
|
|
|
@@ -97,7 +98,7 @@
|
|
|
97
98
|
|
|
98
99
|
## 输出格式
|
|
99
100
|
适用条件:
|
|
100
|
-
- 当 `helloagents.json` 的 `output_format` 为 `true`
|
|
101
|
+
- 当 `helloagents.json` 的 `output_format` 为 `true` 时,主代理必须在本轮最后一条、且确认**不再继续调用工具、不再继续执行**的**收尾消息**中使用输出格式。
|
|
101
102
|
- 若某个 skill 在本轮明确要求输出停顿、确认或总结,也仅当该消息同时是**本轮最终收尾消息**时,才可使用输出格式。
|
|
102
103
|
|
|
103
104
|
排除条件:
|
|
@@ -116,16 +117,18 @@
|
|
|
116
117
|
图标:💡直接响应 | ⚡快速执行 | 🔵规划流程 | ✅完成 | ❓等待输入 | ⚠️警告 | ❌错误
|
|
117
118
|
|
|
118
119
|
使用约束:
|
|
119
|
-
-
|
|
120
|
-
- `🔄 下一步`
|
|
121
|
-
- `🔄 下一步` 只写真实下一步,不改写成条件式能力表述或询问句。
|
|
120
|
+
- 状态图标与收尾内容必须一致。正文仍在等待用户输入、确认、授权或补充信息(含确认是否执行已给出的方案)时,只能使用 `❓等待输入`;仅在本轮执行已完成且不存在待确认动作时,才能使用 `✅完成`。
|
|
121
|
+
- `🔄 下一步` 必须写真实下一步,不改写成条件式能力表述或空泛询问。若正在等待确认,写清待确认动作;若存在自然后续动作,直接给出明确引导;若当前任务已完整结束且确无合理后续,可填写“当前任务已完成;无后续动作。”
|
|
122
122
|
|
|
123
123
|
### 收尾状态信号
|
|
124
|
-
-
|
|
125
|
-
-
|
|
126
|
-
-
|
|
124
|
+
- `turn-state` 只在运行时必须识别本轮“完成 / 等待输入 / 阻塞”时写入;普通问候、普通问答、T0 只读分析和一次性解释不调用
|
|
125
|
+
- 必须调用场景:显式 `~auto` / `~loop`;非只读任务完成验证并进入收尾;需要 delivery gate / Ralph Loop / closeout evidence;需要等待或阻塞且运行时必须识别状态;已进入项目连续流程或方案包闭环
|
|
126
|
+
- 首选参数式调用,保证一次完成:`helloagents-turn-state write --kind complete --role main`;也可用 stdin JSON。不要查找、读取或拼接 `turn-state.mjs` 源码路径
|
|
127
|
+
- 本轮已完成且不再等待用户输入 → `helloagents-turn-state write --kind complete --role main`
|
|
128
|
+
- 因阻塞判定等待用户输入、确认、授权或补充信息(含未授权的外部副作用确认) → 写 `kind=waiting`、`role=main`,并同时写 `reasonCategory` 与 `reason`
|
|
127
129
|
- 因错误、缺少前置条件或外部依赖而本轮停下 → 写 `kind=blocked`、`role=main`,并同时写 `reasonCategory` 与 `reason`
|
|
128
130
|
- `reasonCategory` 只允许:`ambiguity`、`missing-input`、`missing-file`、`missing-credential`、`unauthorized-side-effect`、`high-risk-confirmation`、`external-dependency`、`error`
|
|
131
|
+
- 显式 `~auto` / `~loop` 下,`waiting` / `blocked` 还必须写入 `blocker.target`、`blocker.evidence`、`blocker.requiredAction`;阶段汇报、单轮 probe 完成、内部路线调整或“下一步建议”不构成停下理由
|
|
129
132
|
- 子代理不得写 turn-state;子代理结束只直接返回结果,不为主代理代写完成态
|
|
130
133
|
|
|
131
134
|
## 交互规则
|
|
@@ -163,7 +166,7 @@
|
|
|
163
166
|
以下情况才构成中途停下并请求用户输入的正当理由:
|
|
164
167
|
- 需求存在影响执行结果的真实歧义
|
|
165
168
|
- 缺少继续执行所必需的信息、文件、路径或凭据
|
|
166
|
-
-
|
|
169
|
+
- 将产生外部副作用,但本轮尚未获得对应授权(含等待确认是否实施已给方案)
|
|
167
170
|
- 操作属于高风险或不可逆,按安全规则必须确认
|
|
168
171
|
除上述情况外,默认继续执行,不以“建议下一步”替代实际推进。
|
|
169
172
|
|
|
@@ -186,22 +189,26 @@
|
|
|
186
189
|
- 未激活项目且未进入方案包 / `contract.json` / 证据文件时,声称完成前必须完成与任务类型匹配的必要检查;无法执行的检查必须明确说明,不得直接宣称完成
|
|
187
190
|
- 当前项目已激活,或已存在方案包 / `contract.json` / 证据文件时,以完整流程、对应 skill 与运行时交付约束为准,不得降级为本节
|
|
188
191
|
- 只读分析、创意探索、方案比较、中间进度和阻塞汇报不适用本节
|
|
192
|
+
- 本地版本检查点:非只读任务完成验证且产生工作区变更时,最终收尾前自动执行本地提交。先检查 `git status --short`;若不是 git 仓库或无变更则跳过。若发现 `.env`、密钥、凭据、明显不应提交的大文件或二进制产物,停止提交并说明风险;否则执行 `git add -A`,使用当前回复语言生成简洁 conventional commit message 后执行 `git commit`。不自动远程 `git push`,除非用户明确要求
|
|
189
193
|
|
|
190
194
|
## 路由
|
|
191
195
|
- `~do` 是 `~build` 的兼容别名;`~design` 是 `~plan` 的兼容别名;`~review` 是 `~verify` 的兼容别名
|
|
192
196
|
- `~test` — 为指定模块或最近变更编写测试
|
|
193
|
-
- 路径定义:`{HELLOAGENTS_READ_ROOT}` = 本轮已确定的 HelloAGENTS
|
|
197
|
+
- 路径定义:`{HELLOAGENTS_READ_ROOT}` = 本轮已确定的 HelloAGENTS 读取根目录,统一用于读取 `skills/` 与 `templates/`
|
|
194
198
|
- `~command` 路由:用户输入 `~xxx` 时,立即读取对应的 SKILL.md 并按其流程执行,不要自行探索或猜测。若当前上下文已解析出具体命令技能文件路径,直接使用它;否则先确定当前技能根目录:
|
|
195
199
|
- 优先使用当前上下文中已注入的“本轮 HelloAGENTS 读取根目录”
|
|
196
|
-
-
|
|
200
|
+
- 若当前上下文未注入,则使用稳定运行根目录 `~/.helloagents/helloagents`
|
|
201
|
+
- 宿主固定链接(Codex `~/.codex/helloagents`、Claude `~/.claude/helloagents`、Gemini `~/.gemini/helloagents`)只作为兼容别名,不作为优先探测路径
|
|
202
|
+
- 仍无法确定时,明确说明缺少 HelloAGENTS 读取根目录;不要递归扫描 `$HOME`、`Downloads`、项目目录或旧版本目录
|
|
197
203
|
确定根目录后读取其中的 `skills/commands/{name}/SKILL.md`;标准模式下即使项目目录存在本地 HelloAGENTS skills,也不要读取项目路径。不要扫描整个目录,也不要对同一命令重复探测多个路径。
|
|
204
|
+
包内脚本优先使用稳定命令入口;需要写收尾状态时优先调用 `helloagents-turn-state write --kind complete --role main`,不要拼接 `turn-state.mjs` 路径。
|
|
198
205
|
|
|
199
206
|
## .helloagents/ 目录
|
|
200
207
|
路径: {CWD}/.helloagents/
|
|
201
208
|
所有文件的创建和更新必须按 templates/ 目录中对应模板的格式执行,不可自由发挥格式。
|
|
202
209
|
说明:
|
|
203
210
|
- `.helloagents/` 表示项目级存储路径,也是 standby 模式的激活信号
|
|
204
|
-
- `state_path`
|
|
211
|
+
- `state_path` 指向的状态文件、当前会话 `capsule.json`、`events.jsonl`、`artifacts/*.json`、`artifacts/loop-results.tsv` 等运行态文件始终保留在项目本地 `.helloagents/sessions/{branch}/{session}/`
|
|
205
212
|
- `state_path` 是状态文件的唯一位置。宿主提供会话标识时,写入 `.helloagents/sessions/{branch}/{session}/STATE.md`;没有稳定会话标识时,写入 `.helloagents/sessions/{branch}/default/STATE.md`
|
|
206
213
|
- 若 helloagents.json 中 `project_store_mode = "repo-shared"`,`context.md`、`guidelines.md`、`CHANGELOG.md`、`verify.yaml`、`DESIGN.md`、`modules/`、`plans/`、`archive/` 改按当前上下文中已注入的“当前项目存储”/“项目知识/方案目录”解析;未注入具体路径时,按当前存储模式自行解析,不要假定这些文件一定实际位于当前工作树中
|
|
207
214
|
templates/ 查找路径(按优先级;首次确定模板根目录后,本轮复用):
|
|
@@ -227,7 +234,7 @@ templates/ 查找路径(按优先级;首次确定模板根目录后,本轮
|
|
|
227
234
|
- “关键上下文”只保留恢复所需的信息,已不再相关的决策和变更移除
|
|
228
235
|
- DESIGN.md — 项目级稳定 UI 契约(仅 UI 项目),`~plan` / `~auto` / `~prd` 创建或更新;不存在且当前任务涉及 UI → 按 templates/DESIGN.md 创建;不替代单次需求的 `plan.md`
|
|
229
236
|
- plans/{feature}/ — 活跃方案包。`~plan` / `~auto` 生成:`requirements.md` + `plan.md` + `tasks.md` + `contract.json`;`~prd` 生成:`prd/` 目录(多维度文档)+ `tasks.md` + `decisions.md` + `contract.json`
|
|
230
|
-
-
|
|
237
|
+
- artifacts/advisor.json — 当前会话的可选 advisor 证据;仅当 `contract.json` 明确要求独立 advisor 时写入,记录 reason / focus / consultedSources / outcome
|
|
231
238
|
- archive/YYYY-MM/ — 已归档的方案包(整个 plans/{feature}/ 目录移入)
|
|
232
239
|
- archive/_index.md — 归档索引
|
|
233
240
|
|
|
@@ -239,11 +246,11 @@ templates/ 查找路径(按优先级;首次确定模板根目录后,本轮
|
|
|
239
246
|
- modules/*.md — 模块文档和经验
|
|
240
247
|
|
|
241
248
|
### 临时文件(流程产物,~clean 时清理)
|
|
242
|
-
- loop-results.tsv — ~loop 迭代记录
|
|
243
|
-
-
|
|
244
|
-
-
|
|
245
|
-
-
|
|
246
|
-
-
|
|
249
|
+
- artifacts/loop-results.tsv — 当前会话的 ~loop 迭代记录
|
|
250
|
+
- artifacts/loop-breaker.json — 当前会话的 hello-verify 断路器状态,仅在 `~loop` 或自动验证触发时写入
|
|
251
|
+
- artifacts/verify.json — 当前会话最近一次成功验证的证据快照
|
|
252
|
+
- artifacts/review.json — 当前会话最近一次成功审查的证据快照
|
|
253
|
+
- artifacts/closeout.json — 当前会话最近一次成功收尾的交付证据快照
|
|
247
254
|
|
|
248
255
|
## 项目上下文
|
|
249
256
|
|
|
@@ -256,11 +263,11 @@ templates/ 查找路径(按优先级;首次确定模板根目录后,本轮
|
|
|
256
263
|
### .helloagents/ 文件读取优先级
|
|
257
264
|
以下文件在任务需要时按需读取,按优先级分层:
|
|
258
265
|
说明:
|
|
259
|
-
- Tier 1
|
|
266
|
+
- Tier 1 在恢复、压缩、连续流程或活跃方案包场景读取当前 `state_path`;普通问答和一次性只读任务不强制读取
|
|
260
267
|
- Tier 2 / Tier 3 中的 `.helloagents/...` 路径默认按项目级存储路径解析;`project_store_mode=repo-shared` 时按共享知识/方案目录解析
|
|
261
268
|
|
|
262
269
|
Tier 1 — 恢复当前任务时优先读取:
|
|
263
|
-
- 当前状态文件(`state_path`)→
|
|
270
|
+
- 当前状态文件(`state_path`)→ 仅在恢复、压缩、连续流程或活跃方案包场景读取;先确认当前消息仍是同一任务,再用它找回最近进度
|
|
264
271
|
|
|
265
272
|
Tier 2 — 理解项目时读取:
|
|
266
273
|
- .helloagents/context.md → 项目架构、技术栈、目录结构、模块索引
|
package/bootstrap.md
CHANGED
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
## 配置
|
|
6
6
|
配置文件: ~/.helloagents/helloagents.json
|
|
7
|
-
如果当前上下文中已包含"当前用户设置"
|
|
7
|
+
如果当前上下文中已包含"当前用户设置"且包含本轮所需配置项,视为配置已完成读取,本轮直接复用。
|
|
8
8
|
否则,当本轮首次遇到受配置影响的行为时,再读取一次配置文件并复用本轮结果;不要为了展示、确认或同一结论重复读取。
|
|
9
|
+
输出格式判定属于受配置影响的行为;上下文没有"当前用户设置"时,最终收尾前必须读取一次该配置。
|
|
9
10
|
同一轮内对同一配置文件、模块、SKILL、模板只读取一次,后续直接复用已得结论,不要重复探测或重复读取同一路径。
|
|
10
11
|
在受限 CLI(如工作区限制导致家目录不可读)中,确需读取但失败时必须明确说明,并按默认值或当前已知设置执行;禁止静默回退或假装读取成功。
|
|
11
12
|
|
|
@@ -97,7 +98,7 @@
|
|
|
97
98
|
|
|
98
99
|
## 输出格式
|
|
99
100
|
适用条件:
|
|
100
|
-
- 当 `helloagents.json` 的 `output_format` 为 `true`
|
|
101
|
+
- 当 `helloagents.json` 的 `output_format` 为 `true` 时,主代理必须在本轮最后一条、且确认**不再继续调用工具、不再继续执行**的**收尾消息**中使用输出格式。
|
|
101
102
|
- 若某个 skill 在本轮明确要求输出停顿、确认或总结,也仅当该消息同时是**本轮最终收尾消息**时,才可使用输出格式。
|
|
102
103
|
|
|
103
104
|
排除条件:
|
|
@@ -116,16 +117,18 @@
|
|
|
116
117
|
图标:💡直接响应 | ⚡快速执行 | 🔵规划流程 | ✅完成 | ❓等待输入 | ⚠️警告 | ❌错误
|
|
117
118
|
|
|
118
119
|
使用约束:
|
|
119
|
-
-
|
|
120
|
-
- `🔄 下一步`
|
|
121
|
-
- `🔄 下一步` 只写真实下一步,不改写成条件式能力表述或询问句。
|
|
120
|
+
- 状态图标与收尾内容必须一致。正文仍在等待用户输入、确认、授权或补充信息(含确认是否执行已给出的方案)时,只能使用 `❓等待输入`;仅在本轮执行已完成且不存在待确认动作时,才能使用 `✅完成`。
|
|
121
|
+
- `🔄 下一步` 必须写真实下一步,不改写成条件式能力表述或空泛询问。若正在等待确认,写清待确认动作;若存在自然后续动作,直接给出明确引导;若当前任务已完整结束且确无合理后续,可填写“当前任务已完成;无后续动作。”
|
|
122
122
|
|
|
123
123
|
### 收尾状态信号
|
|
124
|
-
-
|
|
125
|
-
-
|
|
126
|
-
-
|
|
124
|
+
- `turn-state` 只在运行时必须识别本轮“完成 / 等待输入 / 阻塞”时写入;普通问候、普通问答、T0 只读分析和一次性解释不调用
|
|
125
|
+
- 必须调用场景:显式 `~auto` / `~loop`;非只读任务完成验证并进入收尾;需要 delivery gate / Ralph Loop / closeout evidence;需要等待或阻塞且运行时必须识别状态;已进入项目连续流程或方案包闭环
|
|
126
|
+
- 首选参数式调用,保证一次完成:`helloagents-turn-state write --kind complete --role main`;也可用 stdin JSON。不要查找、读取或拼接 `turn-state.mjs` 源码路径
|
|
127
|
+
- 本轮已完成且不再等待用户输入 → `helloagents-turn-state write --kind complete --role main`
|
|
128
|
+
- 因阻塞判定等待用户输入、确认、授权或补充信息(含未授权的外部副作用确认) → 写 `kind=waiting`、`role=main`,并同时写 `reasonCategory` 与 `reason`
|
|
127
129
|
- 因错误、缺少前置条件或外部依赖而本轮停下 → 写 `kind=blocked`、`role=main`,并同时写 `reasonCategory` 与 `reason`
|
|
128
130
|
- `reasonCategory` 只允许:`ambiguity`、`missing-input`、`missing-file`、`missing-credential`、`unauthorized-side-effect`、`high-risk-confirmation`、`external-dependency`、`error`
|
|
131
|
+
- 显式 `~auto` / `~loop` 下,`waiting` / `blocked` 还必须写入 `blocker.target`、`blocker.evidence`、`blocker.requiredAction`;阶段汇报、单轮 probe 完成、内部路线调整或“下一步建议”不构成停下理由
|
|
129
132
|
- 子代理不得写 turn-state;子代理结束只直接返回结果,不为主代理代写完成态
|
|
130
133
|
|
|
131
134
|
## 交互规则
|
|
@@ -163,7 +166,7 @@
|
|
|
163
166
|
以下情况才构成中途停下并请求用户输入的正当理由:
|
|
164
167
|
- 需求存在影响执行结果的真实歧义
|
|
165
168
|
- 缺少继续执行所必需的信息、文件、路径或凭据
|
|
166
|
-
-
|
|
169
|
+
- 将产生外部副作用,但本轮尚未获得对应授权(含等待确认是否实施已给方案)
|
|
167
170
|
- 操作属于高风险或不可逆,按安全规则必须确认
|
|
168
171
|
除上述情况外,默认继续执行,不以“建议下一步”替代实际推进。
|
|
169
172
|
|
|
@@ -205,13 +208,16 @@
|
|
|
205
208
|
|
|
206
209
|
### 3. PLAN — 规划与上下文准备
|
|
207
210
|
根据 skills/ 目录下各 hello-* 技能的 SKILL.md frontmatter(name + description),标记本次任务可能需要的技能(不读取文件内容,仅记录名称)。
|
|
208
|
-
路径定义:`{HELLOAGENTS_READ_ROOT}` = 本轮已确定的 HelloAGENTS
|
|
211
|
+
路径定义:`{HELLOAGENTS_READ_ROOT}` = 本轮已确定的 HelloAGENTS 读取根目录,统一用于读取 `skills/` 与 `templates/`
|
|
209
212
|
先确定当前技能根目录:
|
|
210
213
|
- 优先使用当前上下文中已注入的“本轮 HelloAGENTS 读取根目录”
|
|
211
|
-
-
|
|
214
|
+
- 若当前上下文未注入,则使用稳定运行根目录 `~/.helloagents/helloagents`
|
|
215
|
+
- 宿主固定链接(Codex `~/.codex/helloagents`、Claude `~/.claude/helloagents`、Gemini `~/.gemini/helloagents`)只作为兼容别名,不作为优先探测路径
|
|
216
|
+
- 仍无法确定时,明确说明缺少 HelloAGENTS 读取根目录;不要递归扫描 `$HOME`、`Downloads`、项目目录或旧版本目录
|
|
212
217
|
- 已激活项目或全局模式下,技能是否需要使用由当前已加载 AGENTS 规则决定;不要因此额外探测项目目录里的 HelloAGENTS skills 路径
|
|
213
218
|
路径确定一次即可,不预读、不扫描整个目录,也不重复探测同一路径。
|
|
214
219
|
hello-* 技能读取路径:`{HELLOAGENTS_READ_ROOT}/skills/{技能名}/SKILL.md`
|
|
220
|
+
包内脚本优先使用稳定命令入口;需要写收尾状态时优先调用 `helloagents-turn-state write --kind complete --role main`,不要拼接 `turn-state.mjs` 路径。
|
|
215
221
|
|
|
216
222
|
命令职责:
|
|
217
223
|
- `~plan` 生成 `requirements.md`、`plan.md`、`tasks.md`、`contract.json`
|
|
@@ -235,7 +241,7 @@ hello-* 技能读取路径:`{HELLOAGENTS_READ_ROOT}/skills/{技能名}/SKILL.m
|
|
|
235
241
|
### 5. VERIFY — 审查与验证
|
|
236
242
|
编码任务:
|
|
237
243
|
- 读取 `skills/hello-verify/SKILL.md`,执行完整验证循环(Ralph Loop)→ 失败则修复 → 循环直到通过
|
|
238
|
-
- 审查优先或显式使用 `~review` 时,先读取 `skills/hello-review/SKILL.md` 做范围审查;审查完成后调用 `scripts/review-state.mjs write`
|
|
244
|
+
- 审查优先或显式使用 `~review` 时,先读取 `skills/hello-review/SKILL.md` 做范围审查;审查完成后调用 `scripts/review-state.mjs write` 写当前会话 `artifacts/review.json`,再进入验证
|
|
239
245
|
- 通过后收集已读取技能的交付检查清单,逐项附带证据确认,并确认用户目标已达成
|
|
240
246
|
|
|
241
247
|
非编码任务(文档 / 方案 / 审查等):
|
|
@@ -243,14 +249,15 @@ hello-* 技能读取路径:`{HELLOAGENTS_READ_ROOT}/skills/{技能名}/SKILL.m
|
|
|
243
249
|
|
|
244
250
|
### 6. CONSOLIDATE — 状态、资料与归档
|
|
245
251
|
所有任务:
|
|
246
|
-
- 有方案包且准备报告完成 → 优先调用 `scripts/closeout-state.mjs write`
|
|
252
|
+
- 有方案包且准备报告完成 → 优先调用 `scripts/closeout-state.mjs write` 写当前会话 `artifacts/closeout.json`,记录“需求覆盖”和“交付清单”;每项写明 `PASS` / `BLOCKED` 与简要摘要,再进入最终交付
|
|
247
253
|
- 状态文件维护:按上文“流程状态”中的适用范围执行。属于“强制创建并持续更新”范围时,重写 `state_path` 指向的文件(“正在做什么”更新为已完成,清空关键上下文 / 下一步 / 阻塞项);属于“已有则更新”范围时,仅在文件已存在时重写;属于“不创建”范围时不生成此文件
|
|
248
|
-
- 有方案包且任务已完成 → 将整个 `plans/{feature}/` 目录归档到 `.helloagents/archive/YYYY-MM/`,并更新 `archive/_index.md
|
|
254
|
+
- 有方案包且任务已完成 → 将整个 `plans/{feature}/` 目录归档到 `.helloagents/archive/YYYY-MM/`,并更新 `archive/_index.md`。清理当前会话临时文件(`artifacts/loop-results.tsv`、`capsule.json`、`events.jsonl`、`artifacts/loop-breaker.json`、`artifacts/verify.json`、`artifacts/review.json`、`artifacts/closeout.json`)
|
|
249
255
|
- 按 `kb_create_mode` 同步知识库(0=关闭 / 1=已激活项目或全局模式中编码自动 / 2=已激活项目或全局模式中始终):
|
|
250
256
|
- `.helloagents/` 不存在则按 templates/ 创建知识库文件(`context.md`、`guidelines.md`、`verify.yaml`、`CHANGELOG.md`、`modules/`)
|
|
251
257
|
- 已存在但不完整(缺少上述核心文件)→ 按 templates/ 补全缺失文件,不覆盖已有文件
|
|
252
258
|
- 已存在且完整则按模板格式更新 `CHANGELOG.md`、相关 `modules/*.md`、增量经验 delta 追加
|
|
253
259
|
- 符合条件时触发 `hello-reflect`(详见 `hello-reflect` SKILL.md)
|
|
260
|
+
- 本地版本检查点:非只读任务完成验证且产生工作区变更时,最终收尾前自动执行本地提交。先检查 `git status --short`;若不是 git 仓库或无变更则跳过。若发现 `.env`、密钥、凭据、明显不应提交的大文件或二进制产物,停止提交并说明风险;否则执行 `git add -A`,使用当前回复语言生成简洁 conventional commit message 后执行 `git commit`。不自动远程 `git push`,除非用户明确要求
|
|
254
261
|
|
|
255
262
|
## 完成约束
|
|
256
263
|
- 未进入 VERIFY / CONSOLIDATE 的路径,声称完成前必须完成与任务类型匹配的必要检查;无法执行的检查必须明确说明,不得直接宣称完成
|
|
@@ -270,7 +277,7 @@ hello-* 技能读取路径:`{HELLOAGENTS_READ_ROOT}/skills/{技能名}/SKILL.m
|
|
|
270
277
|
所有文件的创建和更新必须按 templates/ 目录中对应模板的格式执行,不可自由发挥格式。
|
|
271
278
|
说明:
|
|
272
279
|
- `.helloagents/` 表示项目级存储路径,也是 standby 模式的激活信号
|
|
273
|
-
- `state_path`
|
|
280
|
+
- `state_path` 指向的状态文件、当前会话 `capsule.json`、`events.jsonl`、`artifacts/*.json`、`artifacts/loop-results.tsv` 等运行态文件始终保留在项目本地 `.helloagents/sessions/{branch}/{session}/`
|
|
274
281
|
- `state_path` 是状态文件的唯一位置。宿主提供会话标识时,写入 `.helloagents/sessions/{branch}/{session}/STATE.md`;没有稳定会话标识时,写入 `.helloagents/sessions/{branch}/default/STATE.md`
|
|
275
282
|
- 若 helloagents.json 中 `project_store_mode = "repo-shared"`,`context.md`、`guidelines.md`、`CHANGELOG.md`、`verify.yaml`、`DESIGN.md`、`modules/`、`plans/`、`archive/` 改按当前上下文中已注入的“当前项目存储”/“项目知识/方案目录”解析;未注入具体路径时,按当前存储模式自行解析,不要假定这些文件一定实际位于当前工作树中
|
|
276
283
|
templates/ 查找路径(按优先级;首次确定模板根目录后,本轮复用):
|
|
@@ -296,7 +303,7 @@ templates/ 查找路径(按优先级;首次确定模板根目录后,本轮
|
|
|
296
303
|
- “关键上下文”只保留恢复所需的信息,已不再相关的决策和变更移除
|
|
297
304
|
- DESIGN.md — 项目级稳定 UI 契约(仅 UI 项目),`~plan` / `~auto` / `~prd` 创建或更新;不存在且当前任务涉及 UI → 按 templates/DESIGN.md 创建;不替代单次需求的 `plan.md`
|
|
298
305
|
- plans/{feature}/ — 活跃方案包。`~plan` / `~auto` 生成:`requirements.md` + `plan.md` + `tasks.md` + `contract.json`;`~prd` 生成:`prd/` 目录(多维度文档)+ `tasks.md` + `decisions.md` + `contract.json`
|
|
299
|
-
-
|
|
306
|
+
- artifacts/advisor.json — 当前会话的可选 advisor 证据;仅当 `contract.json` 明确要求独立 advisor 时写入,记录 reason / focus / consultedSources / outcome
|
|
300
307
|
- archive/YYYY-MM/ — 已归档的方案包(整个 plans/{feature}/ 目录移入)
|
|
301
308
|
- archive/_index.md — 归档索引
|
|
302
309
|
|
|
@@ -308,11 +315,11 @@ templates/ 查找路径(按优先级;首次确定模板根目录后,本轮
|
|
|
308
315
|
- modules/*.md — 模块文档和经验
|
|
309
316
|
|
|
310
317
|
### 临时文件(流程产物,~clean 时清理)
|
|
311
|
-
- loop-results.tsv — ~loop 迭代记录
|
|
312
|
-
-
|
|
313
|
-
-
|
|
314
|
-
-
|
|
315
|
-
-
|
|
318
|
+
- artifacts/loop-results.tsv — 当前会话的 ~loop 迭代记录
|
|
319
|
+
- artifacts/loop-breaker.json — 当前会话的 hello-verify 断路器状态,仅在 `~loop` 或自动验证触发时写入
|
|
320
|
+
- artifacts/verify.json — 当前会话最近一次成功验证的证据快照
|
|
321
|
+
- artifacts/review.json — 当前会话最近一次成功审查的证据快照
|
|
322
|
+
- artifacts/closeout.json — 当前会话最近一次成功收尾的交付证据快照
|
|
316
323
|
|
|
317
324
|
## 项目上下文
|
|
318
325
|
|
|
@@ -325,11 +332,11 @@ templates/ 查找路径(按优先级;首次确定模板根目录后,本轮
|
|
|
325
332
|
### .helloagents/ 文件读取优先级
|
|
326
333
|
以下文件在任务需要时按需读取,按优先级分层:
|
|
327
334
|
说明:
|
|
328
|
-
- Tier 1
|
|
335
|
+
- Tier 1 在恢复、压缩、连续流程或活跃方案包场景读取当前 `state_path`;普通问答和一次性只读任务不强制读取
|
|
329
336
|
- Tier 2 / Tier 3 中的 `.helloagents/...` 路径默认按项目级存储路径解析;`project_store_mode=repo-shared` 时按共享知识/方案目录解析
|
|
330
337
|
|
|
331
338
|
Tier 1 — 恢复当前任务时优先读取:
|
|
332
|
-
- 当前状态文件(`state_path`)→
|
|
339
|
+
- 当前状态文件(`state_path`)→ 仅在恢复、压缩、连续流程或活跃方案包场景读取;先确认当前消息仍是同一任务,再用它找回最近进度
|
|
333
340
|
|
|
334
341
|
Tier 2 — 理解项目时读取:
|
|
335
342
|
- .helloagents/context.md → 项目架构、技术栈、目录结构、模块索引
|