@seanyao/roll 4.706.1 → 4.707.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 (29) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +1 -1
  3. package/dist/roll.mjs +2290 -1600
  4. package/docs/architecture.md +5 -0
  5. package/guide/en/acceptance-evidence.md +11 -6
  6. package/guide/en/loop.md +7 -4
  7. package/guide/zh/acceptance-evidence.md +7 -5
  8. package/guide/zh/loop.md +4 -3
  9. package/package.json +1 -1
  10. package/lib/__pycache__/changelog_audit.cpython-314.pyc +0 -0
  11. package/lib/__pycache__/changelog_generate.cpython-314.pyc +0 -0
  12. package/lib/__pycache__/github_sync.cpython-314.pyc +0 -0
  13. package/lib/__pycache__/loop-fmt.cpython-314.pyc +0 -0
  14. package/lib/__pycache__/loop_result_eval.cpython-314.pyc +0 -0
  15. package/lib/__pycache__/loop_unstick.cpython-314.pyc +0 -0
  16. package/lib/__pycache__/model_prices.cpython-314.pyc +0 -0
  17. package/lib/__pycache__/prices_fetcher.cpython-314.pyc +0 -0
  18. package/lib/__pycache__/roll-home.cpython-314.pyc +0 -0
  19. package/lib/__pycache__/roll-loop-status.cpython-314.pyc +0 -0
  20. package/lib/__pycache__/roll_git.cpython-314.pyc +0 -0
  21. package/lib/__pycache__/roll_render.cpython-314.pyc +0 -0
  22. package/lib/__pycache__/slides-render.cpython-314.pyc +0 -0
  23. package/lib/agent_usage/__pycache__/__init__.cpython-314.pyc +0 -0
  24. package/lib/agent_usage/__pycache__/gemini.cpython-314.pyc +0 -0
  25. package/lib/agent_usage/__pycache__/kimi.cpython-314.pyc +0 -0
  26. package/lib/agent_usage/__pycache__/openai.cpython-314.pyc +0 -0
  27. package/lib/agent_usage/__pycache__/pi.cpython-314.pyc +0 -0
  28. package/lib/agent_usage/__pycache__/pi_emit.cpython-314.pyc +0 -0
  29. package/lib/agent_usage/__pycache__/qwen.cpython-314.pyc +0 -0
@@ -131,6 +131,11 @@ no-TCR/gave-up、成功交付、成本档位和角色能力标签排序。运行
131
131
  [--json]` 暴露 route trace:候选池、ranked score/reasons、warnings、skipped 候选及原因、策略、
132
132
  近期使用输入、最终 agent 和 source 配置路径。
133
133
 
134
+ **Rig lifecycle**:quota、auth、network 和 agent stall 是运行级状态,不回写
135
+ `agents.yaml`。loop 把不可用 rig 写入 runtime lifecycle 文件并发出 `rig:suspended` /
136
+ `rig:recovered` 事件;挂起 rig 按恢复窗口轻量探活,恢复后自动回到候选池。若当前池全挂起,
137
+ cycle 写 `loop:pending`,只做恢复探测,不启动 Builder、不把卡记失败、不触发全局熔断。
138
+
134
139
  **反规则**:不因历史表现自动改写角色绑定。不做失败后的静默跨 agent 重试。指标可以*建议*
135
140
  策略变更,但绝不绕过 human-on-the-loop。
136
141
 
@@ -40,8 +40,8 @@ the archive rebuild; they are a convenience/archive view, not the delivery-truth
40
40
  into `ROLL_EVIDENCE_DIR`; visual lanes write screenshots into
41
41
  `ROLL_SCREENSHOTS_DIR` when the surface requires inspection. The agent keeps
42
42
  `ac-map.json` in the story card root, mapping each AC to the evidence files
43
- that support it, with a status per AC: `pass` · `readonly` · `partial` ·
44
- `claimed` · `missing`.
43
+ that support it, with a status per AC: `pass` · `pass-with-evidence` ·
44
+ `readonly` · `partial` · `claimed` · `missing`.
45
45
  3. Close with the hard attest gate. The runner calls
46
46
  `roll attest <story-id> --run-dir "$ROLL_RUN_DIR"` at the end of delivery.
47
47
  `roll attest` sweeps the hard facts (TCR commits, latest CI run, optional
@@ -75,7 +75,10 @@ when any of these facts are true:
75
75
  card archive, except allowed GitHub PR/commit/check URLs for this repository;
76
76
  - an AC remains `claimed`, which means the Builder asserted completion without
77
77
  pass/fail evidence;
78
- - a positive AC has no real evidence reference;
78
+ - an AC remains `needs-confirmation`, which means the harness draft still needs
79
+ Builder review;
80
+ - a positive AC (`pass`, `pass-with-evidence`, `readonly`, or `partial`) has no
81
+ real evidence reference;
79
82
  - a non-exempt visual card has no captured screenshot or recorded machine
80
83
  capture skip;
81
84
  - a declared `deliverable_url`, `deliverable_cmd`, or `physical_terminal`
@@ -99,9 +102,11 @@ any issue exits 1 and lists the story IDs and missing references.
99
102
 
100
103
  ## The red line
101
104
 
102
- An AC with **zero evidence** can never claim `pass`: the renderer forces it
103
- down to 🟧 Claimed and lists it under **Discrepancies**. Verbal completion
104
- ("I confirmed it works") is exactly what this rules out.
105
+ An AC with **zero evidence** can never claim `pass` or `pass-with-evidence`: the
106
+ renderer forces it down to 🟧 Claimed and lists it under **Discrepancies**.
107
+ `pass-with-evidence` is a harness-confirmed status backed by strong on-disk
108
+ evidence; it is explicitly not the same as an agent-confirmed `pass`. Verbal
109
+ completion ("I confirmed it works") is exactly what this rules out.
105
110
 
106
111
  ## Declaring visual evidence at design time
107
112
 
package/guide/en/loop.md CHANGED
@@ -390,10 +390,13 @@ defaults:
390
390
  candidate pool, runtime health notes, and any legacy compatibility inputs. Use
391
391
  `roll agent migrate --dry-run` to preview conversion from old agent files.
392
392
 
393
- Runtime health is not static policy. Auth, network, VPN, account, or missing
394
- binary failures skip a candidate for the current resolution and are recorded as
395
- runtime facts. If no candidate remains, loop pauses and writes an ALERT instead
396
- of silently rewriting the pool.
393
+ Runtime health is not static policy. Quota, auth, network, VPN, account, stall,
394
+ or missing binary failures suspend only the runtime rig and are recorded as
395
+ runtime facts; Roll does not rewrite `agents.yaml`. Suspended rigs are probed on
396
+ the recovery interval and return to the pool automatically when reachable. If no
397
+ candidate remains, the cycle records `loop:pending` and only runs recovery probes
398
+ instead of starting a Builder, charging the card's failure budget, or silently
399
+ rewriting the pool.
397
400
 
398
401
  For open casting, `health-aware` ranks the same visible pool across Builder,
399
402
  Designer, Evaluator, and Peer Reviewer roles. `roll supervisor route --role
@@ -35,7 +35,7 @@ HTML。那些归档页想看时用 归档重建 按需渲染,它们是便捷/
35
35
  2. 过程采集。`roll test` 把命令输出和摘要写入 `ROLL_EVIDENCE_DIR`;需要视觉
36
36
  验收的端面把截图写入 `ROLL_SCREENSHOTS_DIR`。agent 在故事卡根目录维护
37
37
  `ac-map.json`,把每条 AC 映射到支撑证据,并标注状态:`pass` ·
38
- `readonly` · `partial` · `claimed` · `missing`。
38
+ `pass-with-evidence` · `readonly` · `partial` · `claimed` · `missing`。
39
39
  3. 收尾硬闸。交付结束时 runner 调用
40
40
  `roll attest <story-id> --run-dir "$ROLL_RUN_DIR"`。`roll attest` 清扫硬事实
41
41
  (TCR commits、最新 CI、可选部署探针、test-pass 凭证),渲染验收 Review Page,把
@@ -65,7 +65,8 @@ soft 模式会记录缺口并发出同一类审计信号,但不阻塞本轮交
65
65
  - `ac-map.json` 引用的路径无法在本次 story run 或卡片归档下解析,除非是本仓允许的
66
66
  GitHub PR/commit/check URL;
67
67
  - AC 仍是 `claimed`,表示 Builder 只有完成声明,没有 pass/fail 证据;
68
- - positive AC 没有真实证据引用;
68
+ - AC 仍是 `needs-confirmation`,表示 harness 草稿还没被 Builder 处理;
69
+ - positive AC(`pass`、`pass-with-evidence`、`readonly` 或 `partial`)没有真实证据引用;
69
70
  - 无豁免的可视卡没有截图,也没有记录化的机器采集 skip;
70
71
  - 声明了 `deliverable_url`、`deliverable_cmd` 或 `physical_terminal`,但对应
71
72
  surface 没有真实采集;
@@ -86,9 +87,10 @@ roll attest audit --json
86
87
 
87
88
  ## 红线
88
89
 
89
- **零证据**的 AC 永远不能是 `pass`:渲染层强制降级为 🟧 仅声明,并列入
90
- **Discrepancies(证据缺口)**附录。"我确认它能跑"这类口头完成,正是被这条
91
- 红线挡住的东西。
90
+ **零证据**的 AC 永远不能是 `pass` `pass-with-evidence`:渲染层强制降级为
91
+ 🟧 仅声明,并列入 **Discrepancies(证据缺口)**附录。`pass-with-evidence`
92
+ 表示 harness 基于硬盘上强证据做出的确认,明确不同于 agent 亲自确认的 `pass`。
93
+ "我确认它能跑"这类口头完成,正是被这条红线挡住的东西。
92
94
 
93
95
  ## 设计期声明可视证据
94
96
 
package/guide/zh/loop.md CHANGED
@@ -343,9 +343,10 @@ defaults:
343
343
  以及 legacy compatibility 输入。用 `roll agent migrate --dry-run` 预览旧 agent
344
344
  文件迁移。
345
345
 
346
- 运行时健康不是静态策略。auth、网络、VPN、账号或 binary 缺失只会让候选在本次
347
- resolution 中被跳过,并记录为运行时事实。若没有候选可用,loop PAUSE + ALERT,
348
- 而不是悄悄改写静态 pool。
346
+ 运行时健康不是静态策略。quota、auth、网络、VPN、账号、stall binary 缺失只会
347
+ 挂起运行态 rig,并记录为运行时事实;Roll 不回写 `agents.yaml`。挂起 rig 按恢复窗口
348
+ 轻量探活,恢复后自动回到候选池。若没有候选可用,cycle 记录 `loop:pending`,只做
349
+ 恢复探测,不启动 Builder、不记入卡的失败账,也不悄悄改写静态 pool。
349
350
 
350
351
  ### Agent 工具链健康检查(US-V4-022)
351
352
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seanyao/roll",
3
- "version": "4.706.1",
3
+ "version": "4.707.1",
4
4
  "description": "Roll — Roll out features with AI agents",
5
5
  "packageManager": "pnpm@11.1.3",
6
6
  "scripts": {