@seanyao/roll 4.630.2 → 4.702.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 +64 -0
- package/README.md +65 -56
- package/conventions/global/AGENTS.md +8 -7
- package/dist/roll.mjs +12909 -8532
- package/docs/INDEX.md +32 -0
- package/docs/architecture.md +444 -0
- package/docs/difftest-freeze-paradigm.md +113 -0
- package/docs/live-console.md +203 -0
- package/docs/manifesto.md +65 -0
- package/docs/migration/role-taxonomy-v4.md +60 -0
- package/docs/verification.md +83 -0
- package/guide/INDEX.md +86 -0
- package/guide/assets/layouts/cards-2.png +0 -0
- package/guide/assets/layouts/cards-3.png +0 -0
- package/guide/assets/layouts/cards-4.png +0 -0
- package/guide/assets/layouts/compare.png +0 -0
- package/guide/assets/layouts/highlight.png +0 -0
- package/guide/assets/layouts/pipeline.png +0 -0
- package/guide/assets/layouts/plain.png +0 -0
- package/guide/assets/layouts/quote.png +0 -0
- package/guide/assets/layouts/timeline.png +0 -0
- package/guide/en/acceptance-evidence.md +231 -0
- package/guide/en/ai-agents.md +185 -0
- package/guide/en/backlog-github-sync.md +108 -0
- package/guide/en/changelog.md +66 -0
- package/guide/en/configuration.md +112 -0
- package/guide/en/consistency.md +58 -0
- package/guide/en/conventions.md +113 -0
- package/guide/en/dream.md +121 -0
- package/guide/en/faq.md +855 -0
- package/guide/en/feedback.md +31 -0
- package/guide/en/getting-started.md +103 -0
- package/guide/en/installation.md +86 -0
- package/guide/en/legacy-onboarding.md +195 -0
- package/guide/en/loop-data-layout.md +256 -0
- package/guide/en/loop-driven-architecture.md +186 -0
- package/guide/en/loop.md +1324 -0
- package/guide/en/methodology.md +715 -0
- package/guide/en/migration-2.0.md +154 -0
- package/guide/en/overview.md +190 -0
- package/guide/en/pairing.md +151 -0
- package/guide/en/patterns/README.md +76 -0
- package/guide/en/patterns/graft-pattern.md +110 -0
- package/guide/en/patterns/replant-pattern.md +114 -0
- package/guide/en/patterns/seed-pattern.md +132 -0
- package/guide/en/peer.md +71 -0
- package/guide/en/pr-review.md +62 -0
- package/guide/en/practices/engineering-common-sense.md +395 -0
- package/guide/en/pricing.md +116 -0
- package/guide/en/project-setup.md +126 -0
- package/guide/en/roll-doc-audit.md +98 -0
- package/guide/en/skills.md +206 -0
- package/guide/en/test-isolation.md +51 -0
- package/guide/en/testing/quality-rubric.md +340 -0
- package/guide/en/testing.md +123 -0
- package/guide/en/tools.md +173 -0
- package/guide/skills.md +30 -0
- package/guide/zh/acceptance-evidence.md +194 -0
- package/guide/zh/ai-agents.md +170 -0
- package/guide/zh/backlog-github-sync.md +105 -0
- package/guide/zh/changelog.md +57 -0
- package/guide/zh/configuration.md +99 -0
- package/guide/zh/consistency.md +48 -0
- package/guide/zh/conventions.md +96 -0
- package/guide/zh/dream.md +97 -0
- package/guide/zh/faq.md +773 -0
- package/guide/zh/feedback.md +30 -0
- package/guide/zh/getting-started.md +96 -0
- package/guide/zh/installation.md +83 -0
- package/guide/zh/legacy-onboarding.md +192 -0
- package/guide/zh/loop-data-layout.md +236 -0
- package/guide/zh/loop-driven-architecture.md +186 -0
- package/guide/zh/loop.md +1124 -0
- package/guide/zh/methodology.md +702 -0
- package/guide/zh/migration-2.0.md +154 -0
- package/guide/zh/overview.md +186 -0
- package/guide/zh/pairing.md +117 -0
- package/guide/zh/patterns/README.md +74 -0
- package/guide/zh/patterns/graft-pattern.md +108 -0
- package/guide/zh/patterns/replant-pattern.md +112 -0
- package/guide/zh/patterns/seed-pattern.md +130 -0
- package/guide/zh/peer.md +63 -0
- package/guide/zh/pr-review.md +54 -0
- package/guide/zh/practices/engineering-common-sense.md +393 -0
- package/guide/zh/pricing.md +97 -0
- package/guide/zh/project-setup.md +114 -0
- package/guide/zh/roll-doc-audit.md +90 -0
- package/guide/zh/skills.md +191 -0
- package/guide/zh/test-isolation.md +46 -0
- package/guide/zh/testing/quality-rubric.md +284 -0
- package/guide/zh/testing.md +116 -0
- package/guide/zh/tools.md +173 -0
- package/package.json +4 -1
- package/skills/README.md +1 -0
- package/skills/roll-.qa/SKILL.md +1 -1
- package/skills/roll-.review/SKILL.md +1 -1
- package/skills/roll-build/SKILL.md +1 -1
- package/skills/roll-build/references/full-contract.md +16 -13
- package/skills/roll-design/SKILL.md +3 -3
- package/skills/roll-design/references/full-contract.md +17 -13
- package/skills/roll-fix/SKILL.md +1 -1
- package/skills/roll-fix/references/full-contract.md +13 -10
- package/skills/roll-peer/SKILL.md +1 -1
- package/skills/roll-prime/SKILL.md +77 -0
- package/skills/roll-prime/references/explorer-annex.md +39 -0
- package/skills/roll-prime/references/supervisor-prompt.md +165 -0
- package/skills/route-cases/skills.json +10 -0
- package/template/AGENTS.md +3 -1
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Roll — 约定与 AGENTS.md
|
|
2
|
+
|
|
3
|
+
Roll 的约定系统让每个 AI Agent 对你的项目有相同的共识——领域模型、编码规范和文档导航。
|
|
4
|
+
|
|
5
|
+
## AGENTS.md
|
|
6
|
+
|
|
7
|
+
`AGENTS.md` 是主约定文件,定义:
|
|
8
|
+
|
|
9
|
+
- **领域模型**:限界上下文、聚合、核心实体
|
|
10
|
+
- **编码规范**:语言惯用法、命名、禁止模式
|
|
11
|
+
- **作用域规则**:Agent 允许修改的文件范围
|
|
12
|
+
- **Where to Look**:关键文档和目录的命名指针
|
|
13
|
+
- **Goal-Driven Execution**:要求 Agent 在行动前定义可验证目标
|
|
14
|
+
|
|
15
|
+
Roll 在 `roll init` 时写入 `AGENTS.md` 骨架,你来填写项目特有的领域模型和规范。
|
|
16
|
+
|
|
17
|
+
## Goal-Driven Execution 规则
|
|
18
|
+
|
|
19
|
+
每个 Agent 在开始工作前必须定义可验证目标:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
Verifiable Goal: <一句话,可判断真假>
|
|
23
|
+
Success Criteria: <可衡量的完成标准>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
这避免了模糊执行("重构 auth 模块"),强制 Agent 说清楚"完成"是什么样。Roll 的技能在每个故事开始时强制执行此规则。
|
|
27
|
+
|
|
28
|
+
## Where to Look
|
|
29
|
+
|
|
30
|
+
`AGENTS.md` 导航段将概念名映射到文件路径。Roll 2.0 将所有 Roll 接触的内容
|
|
31
|
+
统一收进 `.roll/`,导航也以此为锚点:
|
|
32
|
+
|
|
33
|
+
```markdown
|
|
34
|
+
## Where to Look
|
|
35
|
+
|
|
36
|
+
| 概念 | 位置 |
|
|
37
|
+
|------|------|
|
|
38
|
+
| Backlog 索引 | `.roll/backlog.md` |
|
|
39
|
+
| Feature 规格 | `.roll/features/<name>.md` |
|
|
40
|
+
| 领域模型 | `.roll/domain/context-map.md` |
|
|
41
|
+
| 架构决策 | `.roll/decisions/` |
|
|
42
|
+
| 自主层产出(briefs / dream) | `.roll/briefs/`、`.roll/dream/` |
|
|
43
|
+
| 用户指南 | `guide/en/`、`guide/zh/` |
|
|
44
|
+
| 测试辅助函数 | `tests/unit/helpers.bash` |
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
约定如下:`AGENTS.md` 留在项目根目录(每个 AI 客户端的第一个读取点),它
|
|
48
|
+
指向的一切都在 `.roll/` 之下。根目录保持干净,导航表就是 Agent 唯一需要
|
|
49
|
+
的地图。
|
|
50
|
+
|
|
51
|
+
`$roll-design` 在新增文档和目录时维护此表。任何进入项目的 Agent 无需扫描整棵树就能导航到权威来源。
|
|
52
|
+
|
|
53
|
+
## 语言表面政策
|
|
54
|
+
|
|
55
|
+
Roll 把契约语言和用户可见语言分开:
|
|
56
|
+
|
|
57
|
+
- Agent 契约、TypeScript 代码、git 元数据、schema 与稳定 key 保持英文。
|
|
58
|
+
- 与 owner 的对话跟随当前任务中 owner 使用的语言。
|
|
59
|
+
- CLI 输出、帮助、文档和 HTML 页面一次只显示一种语言,由 `ROLL_LANG`、
|
|
60
|
+
`roll config lang`、`roll help --lang` 或系统语言探测决定。
|
|
61
|
+
|
|
62
|
+
用户文档写进对应 locale 文件:英文放 `guide/en/`,中文放 `guide/zh/`。CLI
|
|
63
|
+
和生成 HTML 需要改 i18n catalog,不要把翻译对写进同一个输出字符串。
|
|
64
|
+
当约定、帮助、文档或生成表面变化时,发版前运行 `roll doctor language`。
|
|
65
|
+
这条政策由 `packages/cli/test/cli-language-surface.test.ts`、
|
|
66
|
+
`packages/cli/test/__snapshots__/cli-language-surface.test.ts.snap` 和
|
|
67
|
+
`packages/cli/test/doctor-language.test.ts` 覆盖。
|
|
68
|
+
|
|
69
|
+
## 已有代码库:`$roll-onboard` 与 `$roll-doc-audit`
|
|
70
|
+
|
|
71
|
+
对于尚无 `.roll/` 的已有代码库,入口是 `$roll-onboard`(**graft(嫁接)**
|
|
72
|
+
接入模式):扫描代码、问一组聚焦的认知 / 范围 / 隐私问题、产出
|
|
73
|
+
`.roll/onboard-plan.yaml` 作为可审阅的契约。审阅通过后执行
|
|
74
|
+
`roll init --apply`,它会打印计划操作检查点并在落盘前等待确认;非交互自动化必须使用
|
|
75
|
+
`roll init --apply --auto` —— 见
|
|
76
|
+
[legacy-onboarding.md](legacy-onboarding.md) 和
|
|
77
|
+
[patterns/](patterns/README.md)。
|
|
78
|
+
|
|
79
|
+
对于已有 `AGENTS.md` 但文档散落或过期的项目:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
$roll-doc-audit
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
`roll-doc-audit` 会核对 README、指南、网站页面、CLI help 与文档是否匹配真实实现。
|
|
86
|
+
需要文档盘点时,它从已有代码推断领域结构,刷新 `Where to Look` 导航表,并标记
|
|
87
|
+
文档缺口(缺少架构文档、未记录的公开 API)供 `$roll-build` 补全。
|
|
88
|
+
|
|
89
|
+
## 全局约定
|
|
90
|
+
|
|
91
|
+
`~/.roll/conventions/global/` 中的文件由 `roll setup` 和 `roll sync` 同步到每个 AI 工具的配置目录。修改全局约定后,下次 sync 时自动传播到所有项目。
|
|
92
|
+
|
|
93
|
+
## 另见
|
|
94
|
+
|
|
95
|
+
- [project-setup.md](project-setup.md) — `roll init` 创建 AGENTS.md
|
|
96
|
+
- [overview.md](overview.md) — 三层模型(人 / BACKLOG / 自主)
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# roll-.dream — 夜间代码健康巡检
|
|
2
|
+
|
|
3
|
+
`roll-.dream` 是每晚自动运行的代码巡检技能,扫描代码库中的架构摩擦、死代码和技术债。
|
|
4
|
+
它由 launchd 在凌晨 3 点触发(通过 `roll loop on` 安装),
|
|
5
|
+
并将发现的问题以 `REFACTOR-NNN` 条目的形式追加到 BACKLOG.md,等待 loop 执行。
|
|
6
|
+
|
|
7
|
+
调度触发的是一个自包含的 v3 runner,其心脏是 `roll dream run-once`
|
|
8
|
+
(解析 `roll-.dream` skill 并就地起 agent 扫描的 TS 命令)——与 loop runner 同形,
|
|
9
|
+
不依赖任何 bash 引擎函数。
|
|
10
|
+
|
|
11
|
+
## Dream 做什么
|
|
12
|
+
|
|
13
|
+
每晚 dream 完整扫描一次代码库,输出这些结果:
|
|
14
|
+
|
|
15
|
+
1. **`.roll/dream/YYYY-MM-DD.md`** — 中文详细报告(每晚一个文件)
|
|
16
|
+
2. **BACKLOG.md 条目** — 可操作的 `REFACTOR-NNN` 条目追加到 `## ♻️ Refactor` 表格
|
|
17
|
+
3. **`.roll/dream/structure-scan.json`** — 代码结构发现的确定性 TypeScript/AST 证据
|
|
18
|
+
|
|
19
|
+
报告覆盖以下方面:
|
|
20
|
+
|
|
21
|
+
- 死代码和未使用函数,先由 TypeScript Language Service 引用图给出证据
|
|
22
|
+
- 跨模块的重复逻辑,先由规范化 AST fingerprint 给出证据
|
|
23
|
+
- 模块边界违反(一个关注点泄漏到另一个模块)
|
|
24
|
+
- 已上线功能缺少测试
|
|
25
|
+
- 文档覆盖度缺口(缺 EN/ZH 指南、过时引用)
|
|
26
|
+
|
|
27
|
+
代码结构类发现现在先走确定性 pre-scan:dead export、不可达分支、重复 AST 形状、
|
|
28
|
+
单实现抽象和未文档化 env 变量都会在 agent 运行前写入 `structure-scan.json`。
|
|
29
|
+
agent 消费这份 artifact,不再用 grep 式启发兜底。文档覆盖、新鲜度和存在性漂移
|
|
30
|
+
仍保留在原有 Dream 流程里。
|
|
31
|
+
|
|
32
|
+
## 如何读 Dream 报告
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# 查看最近 3 次报告
|
|
36
|
+
ls -lt .roll/dream/ | head -4
|
|
37
|
+
|
|
38
|
+
# 读取最新报告
|
|
39
|
+
cat .roll/dream/$(ls -1t .roll/dream/ | head -1)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
每个报告章节末尾有优先级分类:
|
|
43
|
+
|
|
44
|
+
- **P0** — 阻碍其他工作,本迭代内处理
|
|
45
|
+
- **P1** — 显著摩擦,2 周内处理
|
|
46
|
+
- **P2** — 低优先级,有空时处理
|
|
47
|
+
|
|
48
|
+
## REFACTOR 条目生成
|
|
49
|
+
|
|
50
|
+
发现具体可操作的问题时,dream 向 BACKLOG.md 追加一行:
|
|
51
|
+
|
|
52
|
+
```markdown
|
|
53
|
+
| REFACTOR-005 | 提取 _for_each_ai_tool() — 4 处重复的迭代逻辑 | 📋 Todo |
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Loop 按正常优先级处理这些条目(晚于 FIX-XXX,与 US-XXX 并列)。
|
|
57
|
+
|
|
58
|
+
Dream **不会**生成 REFACTOR 条目的场景:
|
|
59
|
+
- 修复需要超过 1 天(改为追加为 IDEA)
|
|
60
|
+
- 纯粹的风格偏好问题
|
|
61
|
+
- BACKLOG 中已有对应 US 或 FIX 条目的问题
|
|
62
|
+
|
|
63
|
+
## 调度配置
|
|
64
|
+
|
|
65
|
+
Dream 默认在凌晨 3 点运行。推荐用 `roll config dream-time` 改时间——
|
|
66
|
+
一条命令同时写 `loop_dream_hour` 与 `loop_dream_minute` 两个 key:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
roll config dream-time 03:20 # 同时写 loop_dream_hour + loop_dream_minute
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
改完时间只写配置;用 `roll loop on` 重挂应用新调度(config 写入不再自动重挂
|
|
73
|
+
launchd —— US-PORT-006)。`roll loop on` 会把 dream plist 和 loop、pr plist 一起安装。
|
|
74
|
+
三个服务统一管理:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
roll loop on # 安装 loop + pr + dream
|
|
78
|
+
roll loop off # 卸载 loop + pr + dream
|
|
79
|
+
roll loop status # 查看三个服务的状态
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## 手动触发
|
|
83
|
+
|
|
84
|
+
无需等到凌晨 3 点,随时可以手动跑一次 dream 巡检:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# v3 原生——与夜间 runner 同一个心脏
|
|
88
|
+
roll dream run-once
|
|
89
|
+
|
|
90
|
+
# 或在 Claude Code 里直接调用 skill
|
|
91
|
+
$roll-.dream
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Dream 每次运行写入当天日期的文件,并追加到 BACKLOG.md。
|
|
95
|
+
同一天运行两次是安全的(只是产生第二次追加,不会覆盖)。
|
|
96
|
+
每次运行也会刷新 `.roll/dream/structure-scan.json`;需要核对代码结构 REFACTOR
|
|
97
|
+
背后的机器证据时,看这份文件。
|