@seanyao/roll 3.624.1 → 3.624.3

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 (69) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/README.md +4 -1
  3. package/dist/roll.mjs +17473 -14384
  4. package/lib/__pycache__/changelog_audit.cpython-314.pyc +0 -0
  5. package/lib/__pycache__/changelog_generate.cpython-314.pyc +0 -0
  6. package/lib/__pycache__/github_sync.cpython-314.pyc +0 -0
  7. package/lib/__pycache__/loop-fmt.cpython-314.pyc +0 -0
  8. package/lib/__pycache__/loop_result_eval.cpython-314.pyc +0 -0
  9. package/lib/__pycache__/loop_unstick.cpython-314.pyc +0 -0
  10. package/lib/__pycache__/model_prices.cpython-314.pyc +0 -0
  11. package/lib/__pycache__/prices_fetcher.cpython-314.pyc +0 -0
  12. package/lib/__pycache__/roll-home.cpython-314.pyc +0 -0
  13. package/lib/__pycache__/roll-loop-status.cpython-314.pyc +0 -0
  14. package/lib/__pycache__/roll_git.cpython-314.pyc +0 -0
  15. package/lib/__pycache__/roll_render.cpython-314.pyc +0 -0
  16. package/lib/__pycache__/slides-render.cpython-314.pyc +0 -0
  17. package/lib/agent_usage/__pycache__/__init__.cpython-314.pyc +0 -0
  18. package/lib/agent_usage/__pycache__/gemini.cpython-314.pyc +0 -0
  19. package/lib/agent_usage/__pycache__/kimi.cpython-314.pyc +0 -0
  20. package/lib/agent_usage/__pycache__/openai.cpython-314.pyc +0 -0
  21. package/lib/agent_usage/__pycache__/pi.cpython-314.pyc +0 -0
  22. package/lib/agent_usage/__pycache__/pi_emit.cpython-314.pyc +0 -0
  23. package/lib/agent_usage/__pycache__/qwen.cpython-314.pyc +0 -0
  24. package/package.json +1 -1
  25. package/skills/README.md +64 -0
  26. package/skills/docs/skill-authoring.md +74 -0
  27. package/skills/reports/skill-audit-summary.md +53 -0
  28. package/skills/roll-.changelog/SKILL.md +47 -0
  29. package/skills/roll-.changelog/references/full-contract.md +462 -0
  30. package/skills/roll-.clarify/SKILL.md +64 -0
  31. package/skills/roll-.dream/SKILL.md +47 -0
  32. package/skills/roll-.dream/references/full-contract.md +365 -0
  33. package/skills/roll-.echo/SKILL.md +118 -0
  34. package/skills/roll-.qa/SKILL.md +47 -0
  35. package/skills/roll-.qa/references/full-contract.md +256 -0
  36. package/skills/roll-.review/SKILL.md +148 -0
  37. package/skills/roll-build/SKILL.md +49 -0
  38. package/skills/roll-build/references/full-contract.md +968 -0
  39. package/skills/roll-debug/SKILL.md +48 -0
  40. package/skills/roll-debug/assets/injectable-bb.js +263 -0
  41. package/skills/roll-debug/references/full-contract.md +607 -0
  42. package/skills/roll-design/SKILL.md +52 -0
  43. package/skills/roll-design/references/engineering-checklist.md +298 -0
  44. package/skills/roll-design/references/full-contract.md +940 -0
  45. package/skills/roll-doc-audit/SKILL.md +51 -0
  46. package/skills/roll-doc-audit/references/full-contract.md +796 -0
  47. package/skills/roll-doctor/SKILL.md +209 -0
  48. package/skills/roll-fix/SKILL.md +49 -0
  49. package/skills/roll-fix/references/full-contract.md +672 -0
  50. package/skills/roll-idea/SKILL.md +62 -0
  51. package/skills/roll-loop/SKILL.md +50 -0
  52. package/skills/roll-loop/references/full-contract.md +534 -0
  53. package/skills/roll-notes/SKILL.md +107 -0
  54. package/skills/roll-onboard/SKILL.md +238 -0
  55. package/skills/roll-peer/SKILL.md +47 -0
  56. package/skills/roll-peer/references/full-contract.md +313 -0
  57. package/skills/roll-propose/SKILL.md +155 -0
  58. package/skills/roll-review-pr/SKILL.md +62 -0
  59. package/skills/roll-spar/SKILL.md +47 -0
  60. package/skills/roll-spar/references/full-contract.md +288 -0
  61. package/skills/route-cases/skills.json +216 -0
  62. package/skills/scripts/audit-skills.mjs +272 -0
  63. package/skills/scripts/test-audit-skills.mjs +39 -0
  64. package/skills/tests/fixtures/skill-audit/block-skill/SKILL.md +12 -0
  65. package/skills/tests/fixtures/skill-audit/minimal-skill/SKILL.md +8 -0
  66. package/skills/tests/fixtures/skill-audit/quoted-skill/SKILL.md +10 -0
  67. package/skills/tests/fixtures/skill-audit/route-cases.json +21 -0
  68. package/skills/tests/fixtures/skill-audit/spoke-skill/SKILL.md +12 -0
  69. package/skills/tests/fixtures/skill-audit/spoke-skill/references/runbook.md +3 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,76 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## v3.624.3 — 2026-06-24
6
+
7
+ - **验收报告内容判定与视觉证据闸分离**:`attest:gate` 不再把“报告有 AC/ac-map/E2E 证据但声明的截图面未真实捕获”误报成 empty-shell;这类情况现在按视觉证据缺口给出可操作 reason,避免 correction loop 反复走错修复方向。(FIX-400 follow-up) `[acceptance-evidence]`
8
+
9
+ ## v3.624.2 — 2026-06-24
10
+
11
+ ### 稳定性
12
+
13
+ - **内置工具补齐 JSON Schema 契约并在调用前校验输入**:所有 builtin tools 现在声明真实 `inputSchema` / `outputSchema`,普通调用和既有委派调用都会在执行前拒绝结构非法的输入并返回 `invalid_input`;`roll tool status` 和机器级 Tools 页同步显示参数契约,便于 agent 内省与排障。(US-TOOL-022) `[tools-layer]`
14
+
15
+ - **工具依赖现在有真实 readiness gate**:内置工具会按声明的 requirement 检测 Git/GitHub/系统命令等依赖,缺少非可选依赖时不再假装可用,而是拦截或给出可操作提示;`roll doctor` 同步展示这些依赖状态。(US-TOOL-020) `[tools-layer]`
16
+
17
+ - **Tools 页显示依赖链和可用性**:机器级 Tools 页面为每个 tool 展示 input/output 契约、requirement 链、live readiness 和修复提示,工具边界与环境问题更容易排查。(US-TOOL-021) `[tools-layer]`
18
+
19
+ - **实时控制台项目切换更可信**:live 模式下项目切换器会按 registry/slug 分发对应项目快照,非当前项目不会误用当前帧;删除或不可达项目不再表现为可切换的真项目。(US-OBS-023) `[delivery-dossier]`
20
+
21
+ - **可观测 daemon 有正式生命周期命令**:新增 `roll daemon start|stop|status` 管理本机只读观测进程,进程 PID、启动/停止和状态输出都有测试覆盖。(US-OBS-024) `[delivery-dossier]`
22
+
23
+ - **实时控制台文档补齐**:架构文档和新增 live-console 指南记录了 `roll cycle watch`、三流权威边界、静态导出与未来 live serve 的关系,以及证据按构造产生的方向。(US-OBS-025) `[documentation]`
24
+
25
+ - **单 cycle 实时窗口可回放 activity 流**:`roll cycle watch` 能围绕一个 cycle 展示标准 activity 事件,把生命周期、TCR、gate、stdout 和工具调用投影到同一条实时观察线。(US-OBS-027) `[delivery-dossier]`
26
+
27
+ - **pi/kimi 工具调用信号被规范化并持久化**:normalizer 补齐工具调用粒度,cycle 信号写入 `signals.jsonl`,后续 dossier、watch 和证据草稿都能消费同一份活动流。(US-OBS-028) `[delivery-dossier]`
28
+
29
+ - **TruthSnapshot 覆盖所有控制台面板**:casting、charter、skills、git hooks、live feed 等原本 off-schema 的面板进入结构化 snapshot,页面不再绕开同一真相选择器。(US-OBS-029) `[delivery-dossier]`
30
+
31
+ - **档案页新增 snapshot 适应度闸**:控制台渲染如果读取 snapshot 之外的数据会被测试拦住,防止未来再出现页面局部真相口径漂移。(US-OBS-030) `[delivery-dossier]`
32
+
33
+ - **ac-map 证据草稿从 activity 流生成**:loop 会结合 activity signals 与 diff 起草 AC→证据映射、报告和截图引用,默认保守不自动通过,但让缺证据问题更早、更具体地暴露。(US-OBS-031) `[acceptance-evidence]`
34
+
35
+ - **验收报告软链缺失时不再误判空壳**:无人值守 loop 现在能从真实 run 目录找到验收报告和 ac-map,`attest:gate` 的失败原因也会指向真实路径,不再显示 `<epic>` 占位。(FIX-400) `[acceptance-evidence]`
36
+
37
+ - **成功交付的 builder 收尾不再误触发登录暂停**:builder exit 0 的交付总结即使提到 login、credential 或鉴权,也不会被误判成 auth block;真正的登录失败和网络失败仍照常归因。(FIX-401) `[loop-engine]`
38
+
39
+ - **失败 cycle 救援不再冲掉 backlog Done**:`rescue_leaked` 清理泄漏 main 提交时会保留已写入但尚未提交的 `.roll/backlog.md` 状态,避免已合并卡回到 Todo 后被重做。(FIX-402) `[loop-engine]`
40
+
41
+ - **peer reviewer/scorer 不再漏掉 agent 文件凭据**:reasonix 等 agent 的 profile env 现在由真实 spawn 层统一注入,peer review、Review Score 和 ac-map 补救路径都会拿到 `~/.reasonix/.env` 里的密钥;tmux cycle 窗口也追加透传 agent secret env 名,避免 env-only 配置在无人值守 loop 里丢失。(FIX-403) `[loop-engine]`
42
+
43
+ - **agent 缺密钥会在 spawn 前明确阻塞**:builder、reviewer、Review Score scorer 和 ac-map 补救在真正启动 agent 前会检查必需 credential env;env 与 agent 文件凭据都缺失时写出点名 agent 和变量名的 `agent:blocked` / ALERT,不再等到 mid-cycle 才掉成模糊 auth block。可用的其它 scorer/reviewer 仍会继续接手。(FIX-404) `[loop-engine]`
44
+
45
+ - **agent 名册收敛到 6 个一等成员**:`claude`、`kimi`、`codex`、`pi`、`antigravity (agy)`、`reasonix` 成为唯一可列出/探测/派发的 agent roster;`openai`、`deepseek` 继续作为 provider/model alias 保留,不再作为独立 agent 冒出。(US-AGENT-043) `[agents]`
46
+
47
+ - **agent 名册改为单一真相源派生**:`AGENTS` 现在承载一等 agent 身份、显示名、PATH 探测 bin、默认模型和能力标记;registry、`roll agent list`、doctor/setup 探测和 spawn profile 覆盖都从同一组 6 个身份派生,减少后续名册漂移。(US-AGENT-044) `[agents]`
48
+
49
+ - **交付真相重建不再丢无 PR 号的 story-only merge**:多个只含 story id、没有 `(#PR)` 的合并提交现在按 commit SHA 保留,不会因 `prNumber=0` 互相覆盖;release gate 可稳定识别这类已合主干的卡。(FIX-924) `[feedback-truth-alignment]`
50
+
51
+ - **旧 agent 配置开始显式迁移/拒绝**:`openai`、`deepseek` 作为 provider alias 会静默迁移到 `codex`、`pi`;`cursor`、`trae`、`qwen`、`opencode`、`openclaw` 等已删除 agent 在 `roll agent use/set` 和 doctor/setup 面上不再静默回退,而是明确过滤或报错。(US-AGENT-045) `[agents]`
52
+
53
+ - **文档/站点/技能收口到 6 agent**:docs、guide(中英)、skills 中作为 agent 提及的 `cursor`、`trae`、`opencode`、`openclaw` 及 `openai`/`deepseek`/`qwen` 独立 agent 条目已移除;model/provider 提及不动(`deepseek-v4-pro` 等 model id、`openai` 等 provider alias 保留)。(US-AGENT-046) `[agents]`
54
+
55
+ - **agent roster 适应度闸与 Rig 类型**:新增结构化 roster gate,CI 测试会校验 core/CLI/spawn/runner-label 等 roster 面都保持六 agent,并用合成 `qwen` 回流证明会红;`Rig` 明确建模 `agent × model`,阻止 `deepseek` 这类 model/provider 被当作 agent 指派。(US-AGENT-047) `[agents]`
56
+
57
+ - **项目切换器不再显示已删除项目**:档案页项目列表的 reachable 过滤移动到 `collectDossierState` 读侧,`truth.json`、静态首页和机器页都消费同一份已过滤项目行;删除目录后的 stale registry 行不会再渲染成 phantom switcher 项。(US-OBS-019) `[delivery-dossier]`
58
+
59
+ - **交付真相重建补齐无 PR 号 story-only merge 的跨阶段去重**:`ensureDeliveriesFresh` 两阶段 git log 合并现在按 `pr:<n>` / `sha:<commit>` 去重,避免某个 `prNumber=0` 事实挡掉后续已合主干的 story-only squash commit。(FIX-925) `[feedback-truth-alignment]`
60
+
61
+ - **release gate 接受无 PR 号交付的 merge SHA 证据**:Done 行现在可用 `merged <sha>` 作为可验证 merge ref;truth-live 在 PR 号缺失时校验 merge commit,避免 story-only squash merge 被迫伪造 PR ref。(FIX-926) `[feedback-truth-alignment]`
62
+
63
+ - **loop 已合并卡不再回流**:合进 main 的卡会被稳定识别为已交付,不再反复被选回待办。(FIX-399 / FIX-923) `[feedback-truth-alignment]`
64
+
65
+ - **评审评分池不再太早放弃**:异构 reviewer 都不可用时,会继续尝试同厂可用候选,减少无谓失败。(FIX-911) `[loop-engine]`
66
+
67
+ - **发版闸不再放过假 Done**:待发布卡会核对真实交付记录,backlog 写错会直接拦住。(FIX-391) `[feedback-truth-alignment]`
68
+
69
+ - **缺验收件的已完成工作不再沉底**:loop 会开待复评 draft PR,并把卡标成待复评等待补件。(FIX-909) `[loop-engine]`
70
+
71
+ - **ac-map 补救草稿不再只有引用没有证据文件**:loop 自动生成验收映射草稿时,会同步写出提交、改动文件和测试信号文本,方便复评者逐条确认;草稿状态仍需被确认后才可过 attest 闸。(FIX-912) `[acceptance-evidence]`
72
+
73
+ - **切换 agent 槽位后档案页自动刷新**:`roll agent use` / `roll agent set` 写入槽位后会 best-effort 重建静态档案聚合,Casting/Agents 视图不用等下一次手动 `roll index` 才更新;刷新失败只 WARN,不回滚已写槽位。(FIX-378) `[delivery-dossier]`
74
+
5
75
  ## v3.624.1 — 2026-06-24
6
76
 
7
77
  ### 新功能
package/README.md CHANGED
@@ -51,7 +51,9 @@ First time through? Start with [Getting started](guide/en/getting-started.md).
51
51
  | `roll backlog [sync\|block\|defer\|lint\|…]` | View, manage, and sync (from GitHub Issues) pending tasks |
52
52
  | `roll loop alert [list\|ack\|resolve\|log]` | View / clear loop alerts |
53
53
  | `roll status` | Verdict-first truth summary read from the ONE snapshot — LOOP · CYCLE · RELEASE · STORY, with the STORY line's attest-coverage % (`done ≡ merged ∧ attested`) — then convention/AI-client sync health |
54
+ | `roll pulse [--json]` | Today's delivery pulse: cycles in window, merged count, attested count, plus an ASCII sparkline from the story spectrum. Bilingual EN/中. `--json` for machine-readable output |
54
55
  | `roll doctor [skills]` | Environment + install diagnosis (agents, skill catalog, plists, launchd lanes) |
56
+ | `roll daemon <start\|stop\|status>` | Opt-in read-only observability daemon for the live console; defaults to `127.0.0.1:7077`, records `.roll/loop/daemon.pid`, and is never auto-started by the loop |
55
57
  | `roll tune [reset]` | Suggest-only self-tuning from loop trends — read-only, never auto-applies |
56
58
  | **Cards & evidence** | |
57
59
  | `roll idea "<one-sentence description>"` | Capture a card: auto-classify, number, lint, infer epic, mint the full story folder — the one user entry for adding cards |
@@ -60,6 +62,7 @@ First time through? Start with [Getting started](guide/en/getting-started.md).
60
62
  | `roll init` | Set up Roll in this project (agent-driven onboarding for legacy code) |
61
63
  | `roll offboard` | Remove Roll from this project |
62
64
  | `roll test [--where] [--reset]` | Run the test suite (routes through the isolation adapter; unknown types fail loud) |
65
+ | `roll daemon <start\|stop\|status>` | Manage the read-only observability daemon (OPT-IN only; never auto-started) |
63
66
  | `roll ci [--wait]` | Show or wait for current commit's CI status |
64
67
  | `roll release [--dry-run]` | The ONE release flow: bump → changelog fold → package gate → commit-push → consistency gate → PR → auto-merge → tag push (gate runs before merge; drives the merge via GitHub auto-merge) |
65
68
  | `roll showcase [--card <ID>]` | The golden-path standard E2E in an isolated sandbox: reset the card, cast a heterogeneous real-agent trio (kimi/claude/pi), deliver via the loop, capture CLI+web screenshots, assemble the evidence chain, emit a pass/fail verdict |
@@ -77,7 +80,7 @@ First time through? Start with [Getting started](guide/en/getting-started.md).
77
80
  | `roll doctor skills [--strict] [--json]` | Strict skills audit (skills · violations · hub lines + the four invocation groups — the SAME yardstick the web Skills page reads) |
78
81
  | `roll setup skills` | Sync the `guide/skills.md` skill catalog |
79
82
  | `roll doc [--lang en\|zh] [name]` | View the Charter / language guide markdown in the terminal (`--lang` falls back to the configured language) |
80
- | `roll tool status` | Show registered tools and their effective `.roll/policy.yaml` state |
83
+ | `roll tool status` | Show registered tools, effective `.roll/policy.yaml` state, input contracts, and requirement readiness |
81
84
  | `roll prices [refresh]` | Model price table (cost accounting source) |
82
85
  | `roll setup [skills\|-f]` | First-time install, skill catalog generation, or re-sync conventions to all AI clients |
83
86
  | `roll update` | Upgrade to latest + re-sync |