@seanyao/roll 2.604.2 → 3.606.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.
- package/CHANGELOG.md +39 -0
- package/README.md +26 -3
- package/bin/roll +8 -1
- package/dist/roll.mjs +13793 -0
- package/lib/__pycache__/changelog_audit.cpython-314.pyc +0 -0
- package/lib/__pycache__/github_sync.cpython-314.pyc +0 -0
- package/lib/__pycache__/loop-fmt.cpython-314.pyc +0 -0
- package/lib/__pycache__/loop_result_eval.cpython-314.pyc +0 -0
- package/lib/__pycache__/loop_unstick.cpython-314.pyc +0 -0
- package/lib/__pycache__/model_prices.cpython-314.pyc +0 -0
- package/lib/__pycache__/prices_fetcher.cpython-314.pyc +0 -0
- package/lib/__pycache__/roll-home.cpython-314.pyc +0 -0
- package/lib/__pycache__/roll-loop-status.cpython-314.pyc +0 -0
- package/lib/__pycache__/roll_git.cpython-314.pyc +0 -0
- package/lib/__pycache__/roll_render.cpython-314.pyc +0 -0
- package/lib/__pycache__/slides-render.cpython-314.pyc +0 -0
- package/lib/agent_usage/__pycache__/__init__.cpython-314.pyc +0 -0
- package/lib/agent_usage/__pycache__/gemini.cpython-314.pyc +0 -0
- package/lib/agent_usage/__pycache__/kimi.cpython-314.pyc +0 -0
- package/lib/agent_usage/__pycache__/openai.cpython-314.pyc +0 -0
- package/lib/agent_usage/__pycache__/pi.cpython-314.pyc +0 -0
- package/lib/agent_usage/__pycache__/pi_emit.cpython-314.pyc +0 -0
- package/lib/agent_usage/__pycache__/qwen.cpython-314.pyc +0 -0
- package/package.json +20 -6
- package/skills/README.md +51 -0
- package/skills/roll-.changelog/SKILL.md +13 -0
- package/skills/roll-build/SKILL.md +21 -1
- package/skills/roll-fix/SKILL.md +21 -1
- package/bin/dream-test-quality-scan +0 -110
- package/lib/__pycache__/changelog_generate.cpython-314.pyc +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,44 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v3.606.1
|
|
4
|
+
|
|
5
|
+
### 新功能
|
|
6
|
+
|
|
7
|
+
- **`roll attest` 验收证据链上线** — 每个交付的 story 可生成单文件验收报告:逐条 AC 判定(五档徽章)、证据卡片(截图 / 可搜索的 CLI 文本 / commit·CI·部署链接)、零证据强制降级红线 + 缺口附录;离线可开、可打印 PDF。web/iOS/Android 三端截屏各带前置自动跳过;同 story 自评条目折叠展示
|
|
8
|
+
- **发版一致性闸** — 每个 v* tag 在创建 Release 前先过 `roll consistency check`:任一维度对不上即中止发版,差异清单见 job 日志
|
|
9
|
+
- **loop 调度面 TS 化** — `loop on/off/pause/resume/now` 原生实现;`loop on` 生成自包含 v3 runner(周期心脏 = `loop run-once`);`loop now` 检测旧版模板自动再生成后再跑(根治 command not found)
|
|
10
|
+
|
|
11
|
+
### 稳定性
|
|
12
|
+
|
|
13
|
+
- **backlog 状态端到端确定性** — 取卡即标 🔨 进行中、交付完成确定性翻 ✅ Done、崩溃残留的认领自动回收;普通项目(.roll 被 gitignore)布局下状态不再悬空
|
|
14
|
+
- **changelog 不再漏卡** — 裸 ID(非链接形)的 Done 行正确入草稿;空草稿时 `--write` 不写占位句
|
|
15
|
+
- **peer 硬触发留痕** — 高复杂度交付未经评审会在事件流与 ALERT 留下可审计记录
|
|
16
|
+
|
|
17
|
+
### 精简
|
|
18
|
+
|
|
19
|
+
- **tart 隔离 lane 移除** — `test_isolation.type` 只留 `none`;残留 tart 配置显式报错退出,绝不静默回落宿主
|
|
20
|
+
- **bats 测试套件退役** — 51k 行 bash 测试由 TS diff-test 体系接管(对使用者无感;v2 分支保留全量历史)
|
|
21
|
+
|
|
22
|
+
### 文档
|
|
23
|
+
|
|
24
|
+
- **架构与理念文档归仓** — `docs/architecture.md`(分层 / 领域 / 12 条不变量)、`docs/verification.md`、`docs/manifesto.md`
|
|
25
|
+
- **双语新章** — 验收证据指南、一致性与发版闸指南、README 仓库结构章节与环境要求修正
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
## v3.0.0
|
|
29
|
+
|
|
30
|
+
### TypeScript 重写
|
|
31
|
+
|
|
32
|
+
- **引擎从 bash 换成 TypeScript** — roll 的核心重写为 pnpm monorepo(`packages/`:spec/core/infra/cli/web 分层)。这是一次引擎替换,不是功能改版
|
|
33
|
+
- **命令一个不变** — `roll init` / `loop` / `status` / `backlog` / `prices` / `slides` 等全部子命令的入参、输出、副作用、退出码保持原样;升级后照旧用
|
|
34
|
+
- **逐层对拍迁移** — 地基、CLI、领域服务、infra、loop 各层逐条移植,每条命令写 diff-test 断言「TS 输出 == 原 bash 输出」,逐字节对齐冻结的 v2 oracle
|
|
35
|
+
- **1031 项 TS 测试全绿** — 单测覆盖每个公共入口 + 跨层 diff-test;`npm i -g @seanyao/roll` 装的就是这套 TS-first CLI
|
|
36
|
+
|
|
37
|
+
### 兼容与回滚
|
|
38
|
+
|
|
39
|
+
- **bash 实现留作回落 + oracle** — `bin/roll` 随包一起发布:TS 层尚未接管的命令自动透传 bash,行为零差异;同一份 bash 也是测试套件的标准答案
|
|
40
|
+
- **v2 归档在 `v2` 分支** — 锚点 tag `v2-freeze-2026-06-04`,需要时一键回滚
|
|
41
|
+
|
|
3
42
|
## v2.604.2
|
|
4
43
|
|
|
5
44
|
### 精简
|
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ curl -fsSL https://seanyao.github.io/roll/install | bash
|
|
|
26
26
|
npm install -g @seanyao/roll
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
Requirements:
|
|
29
|
+
Requirements: Node.js ≥ 22 (the CLI entry runs on node). bash 3.2+ for the bundled fallback engine.
|
|
30
30
|
|
|
31
31
|
## Use
|
|
32
32
|
|
|
@@ -53,7 +53,7 @@ roll loop on # let AI work through the backlog (optional)
|
|
|
53
53
|
| `roll status` | Show current state and drift |
|
|
54
54
|
| `roll agent [use <name>]` | Per-project agent selection |
|
|
55
55
|
| `roll ci [--wait]` | Show or wait for current commit's CI status |
|
|
56
|
-
| `roll test [--where] [--reset]` | Run the test suite (routes through isolation adapter;
|
|
56
|
+
| `roll test [--where] [--reset]` | Run the test suite (routes through the isolation adapter; unknown types fail loud) |
|
|
57
57
|
| `roll release` | Run the release script (human-only) |
|
|
58
58
|
| `roll review-pr <number>` | AI-powered code review for a PR |
|
|
59
59
|
| **Machine · global** | |
|
|
@@ -61,6 +61,23 @@ roll loop on # let AI work through the backlog (optional)
|
|
|
61
61
|
| `roll update` | Upgrade to latest + re-sync |
|
|
62
62
|
| `roll version` | Print installed roll version |
|
|
63
63
|
|
|
64
|
+
## Repository layout
|
|
65
|
+
|
|
66
|
+
Dev side — a pnpm monorepo. Publish side — one npm package.
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
packages/ TypeScript engine (pnpm workspaces): spec · core · infra · cli · web
|
|
70
|
+
bin/roll Frozen bash v2 engine — automatic fallback + the diff-test oracle
|
|
71
|
+
lib/ Runtime companions (python/sh) used by the loop & fallback paths
|
|
72
|
+
skills/ Git submodule → seanyao/roll-skills (the agent skill contracts)
|
|
73
|
+
conventions/ Conventions synced into AI clients by `roll setup`
|
|
74
|
+
template/ Project scaffolding installed by `roll init`
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
The frozen v2 bash lives on the `v2` branch (anchor tag `v2-freeze-2026-06-04`). Build & test: `pnpm install && pnpm -r test`.
|
|
78
|
+
|
|
79
|
+
Published as a single npm package `@seanyao/roll`: `dist/` (TS bundled by esbuild) + `bin/` + `lib/` + `skills/` + `conventions/` + `template/`.
|
|
80
|
+
|
|
64
81
|
## Documentation
|
|
65
82
|
|
|
66
83
|
| Topic | English | 中文 |
|
|
@@ -79,7 +96,13 @@ roll loop on # let AI work through the backlog (optional)
|
|
|
79
96
|
| Slides — Layouts reference | [guide/en/slides.md#layouts](guide/en/slides.md#layouts) | [guide/zh/slides.md#layouts布局](guide/zh/slides.md#layouts%E5%B8%83%E5%B1%80) |
|
|
80
97
|
| Feedback (`roll feedback`) | [guide/en/feedback.md](guide/en/feedback.md) | [guide/zh/feedback.md](guide/zh/feedback.md) |
|
|
81
98
|
| Backlog GitHub sync (`roll backlog sync`) | [guide/en/backlog-github-sync.md](guide/en/backlog-github-sync.md) | [guide/zh/backlog-github-sync.md](guide/zh/backlog-github-sync.md) |
|
|
82
|
-
| Test isolation (`roll test`
|
|
99
|
+
| Test isolation (`roll test`) | [guide/en/test-isolation.md](guide/en/test-isolation.md) | [guide/zh/test-isolation.md](guide/zh/test-isolation.md) |
|
|
100
|
+
| Acceptance evidence (`roll attest`) | [guide/en/acceptance-evidence.md](guide/en/acceptance-evidence.md) | [guide/zh/acceptance-evidence.md](guide/zh/acceptance-evidence.md) |
|
|
101
|
+
| Consistency & release gate | [guide/en/consistency.md](guide/en/consistency.md) | [guide/zh/consistency.md](guide/zh/consistency.md) |
|
|
102
|
+
| Architecture (layers · domain · invariants) | [docs/architecture.md](docs/architecture.md) | — |
|
|
103
|
+
| Verification system | [docs/verification.md](docs/verification.md) | — |
|
|
104
|
+
| Manifesto · 理念 | [docs/manifesto.md](docs/manifesto.md) | — |
|
|
105
|
+
| Acceptance evidence (`roll attest`) | [guide/en/acceptance-evidence.md](guide/en/acceptance-evidence.md) | [guide/zh/acceptance-evidence.md](guide/zh/acceptance-evidence.md) |
|
|
83
106
|
| Cross-machine sync | [guide/en/loop.md#cross-machine-sync](guide/en/loop.md#cross-machine-sync) | [guide/zh/loop.md#跨机器同步](guide/zh/loop.md#%E8%B7%A8%E6%9C%BA%E5%99%A8%E5%90%8C%E6%AD%A5) |
|
|
84
107
|
| Remote monitoring (watch loop from a phone via `remote-watch`) | [guide/en/loop.md#remote-monitoring](guide/en/loop.md#remote-monitoring) | [guide/zh/loop.md#远程监控remote-monitoring](guide/zh/loop.md#%E8%BF%9C%E7%A8%8B%E7%9B%91%E6%8E%A7remote-monitoring) |
|
|
85
108
|
| Cycle result eval (`roll loop eval`) | [guide/en/loop.md#cycle-result-eval](guide/en/loop.md#cycle-result-eval) | [guide/zh/loop.md#cycle-结果评分result-eval](guide/zh/loop.md#cycle-%E7%BB%93%E6%9E%9C%E8%AF%84%E5%88%86result-eval) |
|
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="
|
|
7
|
+
VERSION="3.0.0"
|
|
8
8
|
ROLL_HOME="${ROLL_HOME:-${HOME}/.roll}"
|
|
9
9
|
ROLL_CONFIG="${ROLL_HOME}/config.yaml"
|
|
10
10
|
ROLL_GLOBAL="${ROLL_HOME}/conventions/global"
|
|
@@ -1416,6 +1416,13 @@ cmd_setup() {
|
|
|
1416
1416
|
esac
|
|
1417
1417
|
done
|
|
1418
1418
|
|
|
1419
|
+
# P1-3.4 (v3 branch): skills/ is a git submodule — populate it for git clones
|
|
1420
|
+
# whose skills/ is still empty. No-op for npm/curl installs (no .gitmodules).
|
|
1421
|
+
if [[ -d "$ROLL_PKG_DIR/.git" ]] && [[ -f "$ROLL_PKG_DIR/.gitmodules" ]] \
|
|
1422
|
+
&& [[ -z "$(ls -A "$ROLL_PKG_DIR/skills" 2>/dev/null)" ]]; then
|
|
1423
|
+
( cd "$ROLL_PKG_DIR" && git submodule update --init --recursive --quiet ) || true
|
|
1424
|
+
fi
|
|
1425
|
+
|
|
1419
1426
|
# Capture per-step outcomes for the v2 UI render at the end.
|
|
1420
1427
|
local steps_buf=()
|
|
1421
1428
|
_record() { steps_buf+=("$1|$2"); }
|