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