@seanyao/roll 2026.514.1 → 2026.514.2
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/CHANGELOG.md +117 -125
- package/README.md +16 -0
- package/bin/roll +1 -1
- package/package.json +1 -1
- package/skills/roll-.changelog/SKILL.md +71 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,136 +1,128 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
##
|
|
4
|
-
|
|
5
|
-
-
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
## v2026.514.2
|
|
4
|
+
|
|
5
|
+
- Changelog 历史版本全部重新整理:按主题分组、合并同类项、用词更贴近用户视角,附 `[loop]` / `[dream]` 归因标记
|
|
6
|
+
- Changelog Skill 新增 Release Notes 生成规范:分组规则、条目合并、归因标签、措辞原则
|
|
7
|
+
- README 新增 Evolution 章节,梳理 Roll 从工具到自主交付系统的演进脉络
|
|
8
|
+
|
|
9
|
+
## v2026.514.1
|
|
10
|
+
|
|
11
|
+
### 自动化流水线
|
|
12
|
+
|
|
13
|
+
- 故事跑完自动开 PR,CI 过了就合入主分支 — 你不需要盯着,审计记录也完整保留 `[loop]`
|
|
14
|
+
- AI 评审现在有实权:可以批准或打回 PR,配合 CI 形成双重把关;真的很急可以在 PR 描述里加 `[skip-ai-review]` 临时绕过 `[loop]`
|
|
15
|
+
- 散落的 session 分支自动清理,远端仓库不再越来越乱 `[loop]`
|
|
16
|
+
|
|
17
|
+
### Changelog 开始管自己
|
|
18
|
+
|
|
19
|
+
- 生成时自动过滤技术黑话,并对照历史风格保持表达一致 `[loop]`
|
|
20
|
+
- 写入前有一道自审:行文不达标就退回重写,不进 changelog `[loop]`
|
|
21
|
+
|
|
22
|
+
### 可见性
|
|
23
|
+
|
|
24
|
+
- Peer review 协商现在对所有 agent 实时可见,不再只是 claude 专属
|
|
25
|
+
- "Release ready" 只有真的有东西可发时才会亮,纯文档改动不再误报 `[loop]`
|
|
26
|
+
- PROPOSAL 的提示指向了实际有内容的地方 `[loop]`
|
|
27
|
+
|
|
28
|
+
### 其他
|
|
29
|
+
|
|
30
|
+
- 纯文档改动直接合 main,不等 CI,合并更快
|
|
12
31
|
|
|
13
32
|
## v2026.513.1
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
|
|
22
|
-
|
|
33
|
+
|
|
34
|
+
### Loop 更可靠了
|
|
35
|
+
|
|
36
|
+
- 每轮 story 在独立工作区里跑,完了自动合回来清理;跑挂时现场保留,不会碰主分支上你正在改的东西 `[loop]`
|
|
37
|
+
- `depends-on:` 和 `manual-only:` 标签现在真的有用 — Loop 自己会跳过条件没满足的任务,不用再盯着 `[loop]`
|
|
38
|
+
- 同时只有一个 Loop 在跑,并发写入的问题修掉了 `[loop]`
|
|
39
|
+
- `roll update` 之后 loop 状态不再误报 off `[loop]`
|
|
40
|
+
|
|
41
|
+
### 测试和 CI
|
|
42
|
+
|
|
43
|
+
- Unit 和集成测试并行执行,机器有多少核就用多少,等待时间降下来了 `[dream]`
|
|
44
|
+
- 纯文档改动不触发 CI 全套测试,合并更快 `[dream]`
|
|
45
|
+
|
|
46
|
+
### Dashboard
|
|
47
|
+
|
|
48
|
+
- 重新设计:三层自治状态 + 四道防线 + Pipeline 全景 + 当前焦点 + 介入区,一屏看完 AI 正在做什么 `[loop]`
|
|
49
|
+
|
|
50
|
+
### 修复
|
|
51
|
+
|
|
52
|
+
- `roll peer` 协商退出时偶发的崩溃修掉了 `[loop]`
|
|
23
53
|
|
|
24
54
|
## v2026.512.8
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
-
|
|
48
|
-
|
|
49
|
-
## v2026.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
- **Fixed**: 升级 roll 后 loop 服务自动生效,无需手动重启
|
|
75
|
-
- **Improved**: `roll loop status` 三态显示,看得清是真没装、装了没启、还是在跑
|
|
76
|
-
|
|
77
|
-
## v2026.511.4
|
|
78
|
-
- **Fixed**: 升级 roll 后 `roll init` 自动迁移 loop 配置,少一步手动操作
|
|
79
|
-
|
|
80
|
-
## v2026.511.3
|
|
81
|
-
- **Fixed**: 多个项目同时跑 loop,互不干扰
|
|
82
|
-
- **Fixed**: 在 roll 项目里运行 `roll release` 会提示改用 `scripts/release.sh`
|
|
83
|
-
|
|
84
|
-
## v2026.511.2
|
|
85
|
-
- **Added**: `roll loop monitor` — 一屏看 loop/dream/brief 三个调度服务状态
|
|
86
|
-
- **Fixed**: dashboard 待办数、release 状态显示问题
|
|
87
|
-
- **Fixed**: loop 异常退出后队列卡住不再继续执行
|
|
88
|
-
- **Improved**: 简报输出更精简,去掉空白段落和冗余信息
|
|
89
|
-
|
|
90
|
-
## v2026.511.1
|
|
91
|
-
- **Changed**: macOS 上 loop 调度切换到 launchd,比 crontab 更稳定
|
|
92
|
-
- **Added**: agent 跳过 TCR 节奏时自动拦回 Todo,强制重做
|
|
55
|
+
|
|
56
|
+
### 掌控感更强了
|
|
57
|
+
|
|
58
|
+
Loop 已经能跑、能看了——这一批让你对它有更多控制权:
|
|
59
|
+
|
|
60
|
+
- `roll loop pause` / `roll loop resume` — 想自己上手时一键暂停,做完再让 AI 接着跑 `[loop]`
|
|
61
|
+
- `roll alert` — 集中查看、确认、清除 loop 产生的告警,不用翻 loop status `[loop]`
|
|
62
|
+
- macOS 系统通知 — story 完成或有新告警时自动弹通知,静音模式下不打扰 `[loop]`
|
|
63
|
+
- `roll ci [--wait]` — 查看当前 CI 状态,或等 CI 跑完再继续手头的事
|
|
64
|
+
|
|
65
|
+
### Loop 更聪明了
|
|
66
|
+
|
|
67
|
+
- Loop 现在等 CI 通过后才标 story 完成,CI 红了会保持进行中并发出提醒 `[loop]`
|
|
68
|
+
- API 出错时自动重试,不再直接中断 `[loop]`
|
|
69
|
+
- 弹窗认识 Ghostty 和 iTerm2 了,不再强制弹 Terminal.app `[loop]`
|
|
70
|
+
- BACKLOG 支持 `block` / `defer` — 卡住的任务标一下就不占队列了
|
|
71
|
+
|
|
72
|
+
### 文档体系上线
|
|
73
|
+
|
|
74
|
+
- loop / dream / peer 中英文用户指南全部上线,覆盖所有子命令和使用场景 `[dream]`
|
|
75
|
+
- `$roll-doc` — 扫描任意项目的文档现状,找出缺口并生成草稿 `[dream]`
|
|
76
|
+
- Dream 每晚检测文档是否跟代码脱节,发现问题写进重构待办 `[dream]`
|
|
77
|
+
- `roll status` 新增跨项目 loop 状态一览
|
|
78
|
+
|
|
79
|
+
## v2026.511.8
|
|
80
|
+
|
|
81
|
+
### 终于能看到 Loop 在做什么了
|
|
82
|
+
|
|
83
|
+
Loop 上线后最大的感受是「不知道它在干啥」——这一批更新专门解决这个问题:
|
|
84
|
+
|
|
85
|
+
- Loop 开跑时自动弹出终端窗口,AI 干活的过程实时可见 `[loop]`
|
|
86
|
+
- `roll loop attach` — 随时接入正在跑的 loop 现场 `[loop]`
|
|
87
|
+
- `roll loop runs` — 查看 loop 最近几次跑了什么、完成了哪些 `[loop]`
|
|
88
|
+
- BACKLOG 任务执行中实时显示进度标记,不用等做完才知道 `[loop]`
|
|
89
|
+
- 不想被打扰时,`roll loop mute` 关掉弹窗,`roll loop unmute` 恢复
|
|
90
|
+
|
|
91
|
+
### Loop 更稳了
|
|
92
|
+
|
|
93
|
+
- macOS 上调度从 crontab 换成 launchd,重启后不丢 `[loop]`
|
|
94
|
+
- 升级 roll 后 loop 服务自动生效,不用手动重启 `[loop]`
|
|
95
|
+
- 多个项目同时跑 loop,互不干扰 `[loop]`
|
|
96
|
+
- 崩溃或异常退出后,下次启动自动清理残留状态 `[loop]`
|
|
97
|
+
- 并发触发时自动跳过,不重复执行 `[loop]`
|
|
98
|
+
|
|
99
|
+
### 其他改进
|
|
100
|
+
|
|
101
|
+
- `roll loop monitor` — 一屏查看 loop / dream / brief 三个服务状态
|
|
102
|
+
- `roll loop status` 三态显示:没装 / 装了没启 / 正在跑,一眼看清
|
|
103
|
+
- `roll init` 升级后自动迁移 loop 配置,少一步手动操作
|
|
93
104
|
|
|
94
105
|
## v2026.510.10
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
-
|
|
109
|
-
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
- **Fixed**: Agent 调用层统一 — 移除所有 claude -p 硬编码,统一 agent 抽象层,支持 Claude/Kimi/Pi/Codex/OpenCode
|
|
116
|
-
- **Fixed**: pi/codex/opencode 支持补全 — _agent_run_skill/_peer_call 穷举所有 agent,未知 agent 给明确错误
|
|
117
|
-
- **Fixed**: kimi 非交互调用语法修正为 kimi --quiet -p,经实测验证
|
|
118
|
-
- **Fixed**: roll-build / roll-fix Phase 12 强制触发 roll-.changelog,确保 CHANGELOG 与 BACKLOG 同步
|
|
119
|
-
- **Added**: roll release 命令 — 在 roll CLI 内直接调用 roll-release skill
|
|
120
|
-
- **Added**: GitHub Release 自动创建 — tag push 后由 workflow 从 CHANGELOG diff 提取内容
|
|
121
|
-
|
|
122
|
-
## v2026.510.5
|
|
123
|
-
- **Added**: roll-loop — BACKLOG 自主执行器,支持调度、跨 Agent 路由和失败处理,让 AI 自主推进项目任务
|
|
124
|
-
- **Added**: roll-brief — Feature完成汇报、每日晨报、按需简报,一句话掌握项目状态和发布就绪情况
|
|
125
|
-
- **Added**: roll-.dream — 每晚代码架构健康巡检,自动产出 REFACTOR 条目,架构问题持续浮出水面
|
|
126
|
-
- **Added**: roll-build 架构摩擦信号 — 实现遇阻时自动向 BACKLOG 写入 REFACTOR 标记,技术债持续可见
|
|
127
|
-
- **Added**: E2E 自动沉淀 — 每个 Story 交付时自动写一个端到端测试,项目逐步积累可回放的 E2E 套件
|
|
128
|
-
- **Added**: CI E2E 门禁 — 模板 CI 每次推送自动跑 E2E 测试,没有 E2E 时静默跳过不阻塞
|
|
129
|
-
- **Added**: CI 红灯分诊 — 按严重程度分类 CI 失败,自动路由到 backlog 变成可执行的修复项
|
|
130
|
-
- **Added**: roll-debug 自动修复 — 诊断后若根因在项目源码内,自动进入 TCR 修复流程并回验
|
|
131
|
-
- **Added**: Changelog 自动生成 — 每次部署后自动更新,首次运行时回填全部历史记录
|
|
132
|
-
- **Added**: roll status/update 显示最近更新 — 运行 `roll status` 或 `roll update` 时展示最近 3 个版本的 changelog
|
|
133
|
-
- **Fixed**: roll-release 补齐 GitHub Release 创建步骤 — 修复版本更新提醒从不生效的问题
|
|
106
|
+
|
|
107
|
+
### Loop、Dream、Brief 首次亮相
|
|
108
|
+
|
|
109
|
+
Roll 从「技能编排工具」变成了「自主执行系统」——三个新组件同步上线:
|
|
110
|
+
|
|
111
|
+
- `roll loop` — 让 AI 自动调度 BACKLOG,Story 一个接一个跑,不用你盯着
|
|
112
|
+
- `roll brief` — 每天早上自动整理昨天做了什么,帮你快速恢复上下文
|
|
113
|
+
- `roll-.dream` — 每晚自动巡检代码和架构,把发现的问题写成可执行的待办
|
|
114
|
+
|
|
115
|
+
### 自动化能力
|
|
116
|
+
|
|
117
|
+
- 每个 Story 交付时自动沉淀一个 E2E 测试,项目逐步积累可回放的验收套件 `[loop]`
|
|
118
|
+
- CI 失败会自动分诊,按严重程度路由成 backlog 里可执行的修复项 `[loop]`
|
|
119
|
+
- `roll debug` 诊断出根因在源码内时,自动进入修复流程并回验 `[loop]`
|
|
120
|
+
- Changelog 每次部署后自动更新,不再需要手动整理 `[loop]`
|
|
121
|
+
|
|
122
|
+
### 可见性
|
|
123
|
+
|
|
124
|
+
- `roll status` / `roll update` 运行后展示最近几个版本的更新内容
|
|
125
|
+
- `roll release` 命令 — 在 CLI 里直接触发发布,不用记路径
|
|
134
126
|
|
|
135
127
|
## 2026.05.09
|
|
136
128
|
- **Added**: roll-peer 跨 Agent 代码评审 — 支持 Claude Code、Kimi CLI、DeepSeek TUI、Codex CLI 多工具协同评审 (by @seanyao)
|
package/README.md
CHANGED
|
@@ -74,6 +74,22 @@ roll loop on # optional: let the agent work unattended
|
|
|
74
74
|
|
|
75
75
|
---
|
|
76
76
|
|
|
77
|
+
## Evolution
|
|
78
|
+
|
|
79
|
+
Roll didn't start as a framework. It started as a question: *what if the AI didn't just write code, but actually shipped it?*
|
|
80
|
+
|
|
81
|
+
The first version was almost embarrassingly small — a way to push engineering conventions to whatever AI tool you happened to be running. But it needed to be trustworthy before it could be useful, so the early weeks went into making Roll self-maintaining: one-command releases, self-updating installs, a clean npm presence.
|
|
82
|
+
|
|
83
|
+
The next step was making Roll genuinely multi-agent. Kimi, DeepSeek, Codex, Trae — each integrated with its own skill preferences and model bindings. `roll-peer` came from a simple insight: agents shouldn't just review their own work. Have one AI challenge another's design decisions before anything lands on `main`. That turned out to be the first glimpse of what Roll was actually becoming.
|
|
84
|
+
|
|
85
|
+
The real shift happened when `roll loop` went live. Stories started running back-to-back without any human prompt. `roll-.dream` began filing its own refactor tickets after nightly scans. The system had started generating its own work queue — not just executing tasks, but surfacing the next ones.
|
|
86
|
+
|
|
87
|
+
What followed was learning to trust that autonomy: real-time terminal windows, worktree isolation so loop runs never touch your in-progress work, a CI + AI review double gate so nothing merges until it's actually ready. The kind of loop you can leave running overnight and wake up to something mergeable.
|
|
88
|
+
|
|
89
|
+
The goal from here: full delivery, end to end — with humans on the loop, not in it.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
77
93
|
## Contributing
|
|
78
94
|
|
|
79
95
|
PRs welcome. Keep them focused on one thing. For larger changes, open an issue first.
|
package/bin/roll
CHANGED
|
@@ -4,7 +4,7 @@ set -euo pipefail
|
|
|
4
4
|
# Roll — AI Agent Convention Manager
|
|
5
5
|
# Single source of truth for how all AI coding agents behave.
|
|
6
6
|
|
|
7
|
-
VERSION="2026.514.
|
|
7
|
+
VERSION="2026.514.2"
|
|
8
8
|
ROLL_HOME="${ROLL_HOME:-${HOME}/.roll}"
|
|
9
9
|
ROLL_CONFIG="${ROLL_HOME}/config.yaml"
|
|
10
10
|
ROLL_GLOBAL="${ROLL_HOME}/conventions/global"
|
package/package.json
CHANGED
|
@@ -286,3 +286,74 @@ After successful deploy in `$roll-build` / `$roll-fix`:
|
|
|
286
286
|
**Post-Deploy:**
|
|
287
287
|
- `$roll-.changelog` - Sync external changelog
|
|
288
288
|
```
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## 7. Release Notes 生成模式(GitHub Release 正文)
|
|
293
|
+
|
|
294
|
+
`CHANGELOG.md` 里的 `## Unreleased` 条目是**原始数据**,每条对应一个故事或修复。
|
|
295
|
+
发版时(`release.sh` 打 tag 前,或手动 `roll release notes`),把这些散装 bullet 整理成**给人读的 Release 正文**。
|
|
296
|
+
|
|
297
|
+
这是两个不同的产物:
|
|
298
|
+
- `CHANGELOG.md` — 机器写、给 `roll update` 之后展示用,条目可以多
|
|
299
|
+
- GitHub Release 正文 — 给用户 / 关注者读,要分组、要有温度、要简洁
|
|
300
|
+
|
|
301
|
+
### 7.1 何时触发
|
|
302
|
+
|
|
303
|
+
- `release.sh` 在 commit 之前调用本 skill 并传入 `--release-notes` flag
|
|
304
|
+
- 或用户手动说"帮我整理 Release Notes"
|
|
305
|
+
|
|
306
|
+
### 7.2 分组规则
|
|
307
|
+
|
|
308
|
+
把当前版本的 bullet 按**用户感知**归入以下分组,每组最多 5 条,超出的合并:
|
|
309
|
+
|
|
310
|
+
| 分组标题 | 归入条件 |
|
|
311
|
+
|---|---|
|
|
312
|
+
| 自动化流水线 | PR 自动化、Auto-merge、CI 触发、分支管理 |
|
|
313
|
+
| 可见性 | Dashboard、弹窗、实时输出、状态显示 |
|
|
314
|
+
| 稳定性 | 崩溃修复、并发问题、状态误报 |
|
|
315
|
+
| 工程和测试 | CI 速度、测试并行、文档工作流 |
|
|
316
|
+
| 新功能 | 全新命令或用户可感知的新能力 |
|
|
317
|
+
|
|
318
|
+
分组顺序:**影响日常使用的放前面**,纯工程改进放后面。
|
|
319
|
+
分组少于 2 条时可以合并到相邻组,不强制保留空组。
|
|
320
|
+
|
|
321
|
+
### 7.3 合并相似条目
|
|
322
|
+
|
|
323
|
+
同一功能点的多个 bullet(如"开 PR"和"Auto-merge"都在描述同一条流水线)合并为一条,用一句话说清楚整体效果,不要列两条。
|
|
324
|
+
|
|
325
|
+
判断标准:**用户感知到的是同一件事,就合并。**
|
|
326
|
+
|
|
327
|
+
### 7.4 归因标签
|
|
328
|
+
|
|
329
|
+
在每条末尾加标签,说明是谁做的:
|
|
330
|
+
|
|
331
|
+
| 标签 | 归因依据 |
|
|
332
|
+
|---|---|
|
|
333
|
+
| `[loop]` | 对应 `US-AUTO-*` / `FIX-*` / `US-CL-*` 故事,由 Loop 自动执行 |
|
|
334
|
+
| `[dream]` | 对应 `REFACTOR-*` 故事,由 Dream 夜间扫描发现并推入 Backlog |
|
|
335
|
+
| (无标签) | 人工提交,或无法确定来源 |
|
|
336
|
+
|
|
337
|
+
### 7.5 措辞原则
|
|
338
|
+
|
|
339
|
+
- 用**第二人称**("你不需要盯着"、"你可以随时查看")
|
|
340
|
+
- **主语是用户的感受**,不是系统的行为("不再误报" > "修复了误报逻辑")
|
|
341
|
+
- **故意模糊实现细节**:不写函数名、文件名、Phase 编号
|
|
342
|
+
- **有温度**:可以用"真的很急"、"不再越来越乱"这样口语化的表达
|
|
343
|
+
- 每条一行,简洁优先
|
|
344
|
+
|
|
345
|
+
### 7.6 输出格式
|
|
346
|
+
|
|
347
|
+
```markdown
|
|
348
|
+
## <分组标题>
|
|
349
|
+
|
|
350
|
+
- <条目> `[loop]`
|
|
351
|
+
- <条目> `[dream]`
|
|
352
|
+
- <条目>
|
|
353
|
+
|
|
354
|
+
## <分组标题>
|
|
355
|
+
|
|
356
|
+
- ...
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
不需要 `**Added**` / `**Fixed**` 前缀,分组标题已经承担了语义分类的职责。
|