helloagents 3.0.33 → 3.0.37

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 (66) hide show
  1. package/.claude-plugin/marketplace.json +1 -4
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/.codex-plugin/plugin.json +3 -4
  4. package/README.md +78 -74
  5. package/README_CN.md +78 -74
  6. package/bootstrap-lite.md +9 -11
  7. package/bootstrap.md +21 -23
  8. package/gemini-extension.json +1 -1
  9. package/install.ps1 +27 -4
  10. package/install.sh +27 -3
  11. package/package.json +2 -2
  12. package/scripts/capability-registry.mjs +5 -3
  13. package/scripts/cli-doctor-codex.mjs +153 -1
  14. package/scripts/cli-doctor-render.mjs +2 -1
  15. package/scripts/cli-doctor.mjs +3 -3
  16. package/scripts/cli-hosts.mjs +1 -1
  17. package/scripts/cli-lifecycle-hosts.mjs +124 -54
  18. package/scripts/cli-lifecycle.mjs +50 -15
  19. package/scripts/cli-messages.mjs +7 -7
  20. package/scripts/cli-runtime-root.mjs +9 -1
  21. package/scripts/delivery-gate-messages.mjs +5 -4
  22. package/scripts/delivery-gate.mjs +11 -22
  23. package/scripts/guard.mjs +1 -1
  24. package/scripts/notify-closeout.mjs +61 -22
  25. package/scripts/notify-context.mjs +5 -5
  26. package/scripts/notify-route.mjs +1 -1
  27. package/scripts/notify-sound.mjs +2 -1
  28. package/scripts/notify.mjs +2 -2
  29. package/scripts/plan-contract.mjs +10 -14
  30. package/scripts/project-session-cleanup.mjs +91 -31
  31. package/scripts/qa-review-state.mjs +313 -0
  32. package/scripts/ralph-loop.mjs +32 -13
  33. package/scripts/runtime-artifacts.mjs +2 -2
  34. package/scripts/runtime-scope.mjs +14 -13
  35. package/scripts/runtime-ttl.mjs +7 -4
  36. package/scripts/session-capsule.mjs +75 -13
  37. package/scripts/session-token.mjs +44 -9
  38. package/scripts/state-document.mjs +77 -0
  39. package/scripts/workflow-core.mjs +13 -19
  40. package/scripts/workflow-plan-files.mjs +1 -1
  41. package/scripts/workflow-recommendation.mjs +55 -67
  42. package/scripts/workflow-state.mjs +8 -8
  43. package/skills/commands/auto/SKILL.md +12 -12
  44. package/skills/commands/build/SKILL.md +9 -10
  45. package/skills/commands/commit/SKILL.md +1 -1
  46. package/skills/commands/help/SKILL.md +11 -13
  47. package/skills/commands/init/SKILL.md +18 -9
  48. package/skills/commands/loop/SKILL.md +70 -96
  49. package/skills/commands/plan/SKILL.md +7 -8
  50. package/skills/commands/prd/SKILL.md +3 -3
  51. package/skills/commands/qa/SKILL.md +49 -0
  52. package/skills/hello-ui/SKILL.md +3 -3
  53. package/skills/helloagents/SKILL.md +11 -14
  54. package/skills/qa-review/SKILL.md +92 -0
  55. package/templates/plans/contract.json +4 -7
  56. package/templates/plans/plan.md +1 -1
  57. package/templates/plans/tasks.md +1 -1
  58. package/templates/verify.yaml +1 -1
  59. package/scripts/review-state.mjs +0 -193
  60. package/scripts/verify-state.mjs +0 -175
  61. package/skills/commands/global/SKILL.md +0 -71
  62. package/skills/commands/verify/SKILL.md +0 -46
  63. package/skills/commands/wiki/SKILL.md +0 -57
  64. package/skills/hello-review/SKILL.md +0 -42
  65. package/skills/hello-verify/SKILL.md +0 -144
  66. /package/hooks/{hooks.json → hooks-gemini.json} +0 -0
@@ -1,42 +0,0 @@
1
- ---
2
- name: hello-review
3
- description: 审查代码变更、检查 PR、review 代码质量,或用户要求看看代码、检查代码时使用。
4
- ---
5
-
6
- 代码审查必须遵循以下规范。
7
-
8
- ## 审查维度
9
-
10
- 逐文件检查以下维度:
11
- - 逻辑正确性:Bug、边界条件、空值处理、竞态条件
12
- - 安全漏洞:注入、XSS、硬编码密钥、权限绕过
13
- - 性能问题:N+1 查询、内存泄漏、不必要的重渲染、大循环
14
- - 可维护性:命名清晰、职责单一、重复代码、过度抽象
15
- - 错误处理:异常是否被正确捕获和处理
16
-
17
- ## 严重度分类
18
-
19
- - 🔴 严重:必须修复(Bug、安全漏洞、数据丢失风险)
20
- - 🟡 建议:应该修复(性能问题、可维护性、代码风格)
21
- - 🟢 良好:值得肯定的好实践
22
-
23
- ## 审查原则
24
-
25
- - 指出问题时给出具体修复建议和代码示例
26
- - 不只挑毛病,也肯定好的实践
27
- - 关注变更本身,不扩大审查范围到未修改的代码
28
- - 严重问题优先,建议性问题其次
29
-
30
- ## 输出要求
31
-
32
- - 审查结束时必须单独给出一行“审查结论:...”
33
- - 若发现阻塞问题,结论中明确写出存在问题,并在正文中为每个问题附文件定位
34
- - 若未发现阻塞问题,明确写“审查结论:未发现阻塞问题。”
35
- - 若当前项目已初始化,或当前审查结果需要进入后续交付检查或收尾,审查结论确定后立即调用 `scripts/review-state.mjs write` 写当前会话 `artifacts/review.json`
36
- - `artifacts/review.json` 必须使用结构化字段记录:`outcome`(`clean` / `findings`)、`conclusion`、`findings`、`fileReferences`
37
- - 不要依赖“审查结论:...”这行让运行时再从自然语言里猜机器结论;这行只服务于人类阅读
38
-
39
- ## 交付检查
40
- - [ ] 每个文件都已审查
41
- - [ ] 严重问题都有修复建议
42
- - [ ] 按严重度分类输出
@@ -1,144 +0,0 @@
1
- ---
2
- name: hello-verify
3
- description: 声称工作完成前、提交代码前、创建 PR 前、报告任务完成前使用。确保验证命令已运行并检查输出后才能声称成功。
4
- ---
5
-
6
- 声称完成之前,必须有验证证据。
7
- `.helloagents/` 在本 skill 中统一按项目级存储路径理解:交付证据写入当前 `state_path` 所在目录下的 `artifacts/*.json`;若 `project_store_mode=repo-shared`,`verify.yaml`、方案包与 `DESIGN.md` 按当前上下文中已注入的项目知识/方案目录解析。
8
-
9
- ## 铁律
10
-
11
- 没有运行验证命令 = 不能说"完成"、"通过"、"已修复"。
12
- 没有看到验证输出 = 不能声称结果。
13
-
14
- ## 验证循环
15
-
16
- 验证不是一次性操作,而是循环直到通过:
17
-
18
- ```
19
- 任务完成
20
-
21
- 运行验证命令(lint/test/build/typecheck)
22
-
23
- 全部通过?
24
- ├─ 是 → 收集已激活技能的交付检查清单 → 逐项确认 → 报告完成
25
- └─ 否 → 反思 → 修复 → 重新运行验证(回到循环开头)
26
- ```
27
-
28
- 这个循环没有上限。验证失败就修复,修复后再验证,直到全部通过。
29
- 不允许在验证失败的状态下报告完成或询问用户是否跳过。
30
-
31
- ## 反思(验证失败时必须执行)
32
-
33
- 验证失败后,禁止跳过反思直接改代码。必须先回答:
34
- 1. 失败的根本原因是什么?
35
- 2. 之前的实现遗漏了什么?
36
- 3. 修复方案是什么?会不会引入新问题?
37
-
38
- ### 断路器
39
- 连续 3 次以上验证失败 → 激活 hello-debug 的卡住升级机制。
40
-
41
- ### 进展检测
42
- 声称任务完成时,必须有实际文件变更。如果 git diff 为空(没有任何文件变更),不能声称完成了产出文件的任务。
43
-
44
- ### 原子性自检
45
- 提交前检查变更范围:
46
- - 如果单次变更涉及 >5 个文件 → 暂停,重新评估是否应该拆分为多个独立变更
47
- - 用一句话描述变更内容,如果需要用"和"连接不相关的操作 → 拆分为多次提交
48
- - 每次提交应该是一个原子操作:要么全部有意义,要么全部回滚
49
-
50
- ### 代码体积检查
51
- 变更涉及的文件必须符合 HelloAGENTS 编码原则中的体积控制规则:
52
- - 文件/类 >300 行 → 评估是否需要拆分
53
- - 文件/类 >400 行 → 必须按职责拆分(例外:生成代码、大型测试夹具、迁移脚本、协议常量表)
54
- - 函数/方法 >40 行 → 评估是否需要拆分
55
- - 函数/方法 >60 行 → 必须拆分
56
-
57
- ### 回归守卫
58
- 优化或新增功能不能破坏已有测试:
59
- - 修改代码后,先运行已有测试确认无回归
60
- - 如果新代码让指标改善但已有测试失败 → 修复回归(最多 2 次尝试),不修改已有测试
61
- - 已有测试是底线,不能为了新功能而降低底线
62
- - Bug 修复必须复跑最初的复现循环;如果没有自动化回归测试,必须记录替代验证和无法补测试的原因
63
- - 新增或修改测试时,确认测试验证公共接口和用户可观察行为,而不是实现细节
64
-
65
- ## 验证命令来源
66
- - 逻辑 `.helloagents/verify.yaml` 中的 commands(优先;`project_store_mode=repo-shared` 时按共享知识目录解析)
67
- - package.json 中的 lint/test/typecheck 脚本
68
- - pyproject.toml 中的 ruff/mypy/pytest
69
-
70
- ## 交付检查清单把关
71
-
72
- 验证命令全部通过后,还需要:
73
- 这些标记只用于交付检查清单、验收记录和验证结果,不用于普通说明、方案解释或进度汇报。
74
- 1. 收集所有已激活 hello-* 技能的交付检查清单
75
- 2. 逐项确认每个检查项,标记 [√] 并附带证据(如:`src/api.ts:42` 使用了参数化查询)
76
- 3. 不适用的项标记 [-] 并说明原因
77
- 4. 有未通过项 → 修复 → 重新运行验证循环
78
- 5. 若当前存在方案包并准备最终回复,优先调用 `scripts/closeout-state.mjs write` 写当前会话 `artifacts/closeout.json`,记录 `requirementsCoverage` 与 `deliveryChecklist` 两项结论;两项都必须包含 `status`(`PASS` / `BLOCKED`)和 `summary`
79
- 6. 若当前方案包要求 `review-first`,必须先确认当前会话 `artifacts/review.json` 已通过 `scripts/review-state.mjs write` 写成最新结构化证据;不要把审查自然语言消息直接当成交付证据
80
- 7. 若 `contract.json` 中 `ui.visualValidation.required=true`,必须确认当前会话 `artifacts/visual.json` 已通过 `scripts/visual-state.mjs write` 写成最新结构化证据;若没有视觉验收证据,不得把当前结果视为 UI 可交付
81
- 8. 本地版本检查点:非只读任务完成验证且产生工作区变更时,若 `auto_commit_enabled=true`,最终回复前自动执行本地提交;若 `auto_commit_enabled=false`,跳过这一步。先检查 `git status --short`;若不是 git 仓库或无变更则跳过。若发现 `.env`、密钥、凭据、明显不应提交的大文件或二进制产物,停止提交并说明风险;否则执行 `git add -A`,使用当前回复语言生成简洁 conventional commit message 后执行 `git commit`。显式 `~commit` 不受这个开关影响。不自动远程 `git push`,除非用户明确要求
82
- 9. 若当前对话需要运行时识别验证收尾状态,优先调用 `helloagents-turn-state write --kind complete --role main`;若因阻塞判定等待输入或因前置条件缺失而停下,写 `kind=waiting` 或 `kind=blocked`,并同时写 `reasonCategory` 与 `reason`;显式 `~auto` / `~loop` 下还要写 `blocker.target`、`blocker.evidence`、`blocker.requiredAction`,不要让运行时从自然语言消息里猜状态
83
-
84
- ## 需求追踪验证
85
-
86
- 如果有方案包(requirements.md),执行完成后必须交叉检查:
87
- 1. 逐条读取 requirements.md 的需求(核心目标、功能边界、质量要求)
88
- 2. 确认每条需求都有对应的任务实现,没有被静默丢弃
89
- 3. 确认非目标章节列出的内容确实没有被实现(防止范围蔓延)
90
- 4. 若 tasks.md 中定义了“完成标准”,逐项确认每个任务的完成标准确实成立,不能只因为代码存在或命令通过就视为完成
91
- 5. 若存在 `contract.json`,逐项确认其中的 `verifyMode`、reviewer / tester 关注边界都已被本次验证覆盖
92
- 6. 若 `contract.json` 中 `advisor.required=true` 或 `ui.styleAdvisor.required=true`,额外确认当前会话 `artifacts/advisor.json` 已存在且结论为 clean;若没有 advisor 证据,不得把当前结果视为可交付
93
- 7. 若 `contract.json` 中 `ui.visualValidation.required=true`,额外确认当前会话 `artifacts/visual.json` 已存在、覆盖要求的关键 screens / states,且结论为 `PASS`;若没有视觉验收证据,不得把当前结果视为 UI 可交付
94
- 8. 发现遗漏 → 补充实现 → 重新验证
95
-
96
- ## 目标偏移检查
97
-
98
- 验证时必须区分真正目标和代理指标:
99
- - 真正目标:用户实际要解决的问题(功能正确、体验达标、需求满足)
100
- - 代理指标:测试通过、lint 干净、类型检查通过、diff 整洁
101
-
102
- 代理指标全部通过 ≠ 真正目标达成。验证时必须回答:
103
- 1. 用户的真正目标是什么?
104
- 2. 代码是否真的实现了这个目标?(不是"测试说通过了",而是"功能确实能用")
105
- 3. 是否存在测试通过但功能实际不工作的情况?(如:测试 mock 了关键依赖、测试只验证了 happy path)
106
-
107
- ## 目标反向验证
108
-
109
- 不要从"任务完成了吗"出发,而是从目标反向推导:
110
- 1. 明确阶段目标(用户要什么结果?)
111
- 2. 反向推导:要达成这个目标,哪些条件必须为真?
112
- 3. 逐条验证每个条件,使用四级验证深度
113
-
114
- ### 四级验证深度
115
- 每个关键产出必须通过四级检查:
116
- 1. 存在 — 文件/函数/组件确实存在
117
- 2. 真实 — 包含真实实现(不是 stub、TODO、placeholder、空函数)
118
- 3. 连接 — 被其他代码导入/调用/使用(不是孤立的死代码)
119
- 4. 数据流 — 有真实数据流过(API 返回真实数据、UI 渲染真实内容、事件真实触发)
120
-
121
- 未通过任何一级 → 视为未完成,必须修复。
122
-
123
- ## 危险信号
124
-
125
- 以下想法意味着你在合理化跳过验证:
126
- - "应该没问题了" → 运行验证
127
- - "我很有信心" → 信心 ≠ 证据
128
- - "linter 过了" → linter ≠ 测试 ≠ 构建
129
- - "代码改了应该修好了" → 运行验证确认
130
- - "就这一次跳过" → 没有例外
131
- - "问问用户要不要跳过" → 不允许,必须修复
132
- - "先写完再测" → 未经测试的代码是负债不是资产
133
- - "已经手动测过了" → 手动测试无记录、不可重复、不可回归
134
- - "太简单不需要测" → 简单代码在复杂系统中照样出错
135
- - "这次例外" → 每个例外都成为先例
136
- - "用户没要求测试" → 质量是底线不是选项
137
-
138
- ## 五步证据链(每次声称完成前必须走完)
139
-
140
- 1. 识别 — 确定哪个命令能证明你的声明
141
- 2. 运行 — 完整执行该命令
142
- 3. 阅读 — 审查完整输出和退出码
143
- 4. 验证 — 确认输出确实支持你的声明
144
- 5. 声明 — 附带证据报告结果
File without changes