@haiyangbg/buildbeat 2.0.1 → 2.0.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 +6 -0
- package/docs/CAPABILITY-MATRIX.md +2 -2
- package/docs/CLI.md +3 -2
- package/docs/README.md +3 -1
- package/docs/RELEASING.md +1 -1
- package/example/.buildbeat/manifest.json +1 -1
- package/package.json +14 -1
- package/docs/BuildBeat v2/357/274/232AI /345/216/237/347/224/237/350/275/257/344/273/266/344/272/244/344/273/230/346/216/247/345/210/266/345/271/263/351/235/242.md" +0 -2053
- package/docs/CLI-PILOT-2026-08-23.md +0 -25
- package/docs/CLI-STRATEGY-2026-08.md +0 -55
- package/docs/EXECUTION-PLAN.md +0 -487
- package/docs/PHASE1-PILOT-2026-08-24.md +0 -32
- package/docs/PHASE2-BUILDBEAT-PILOT-2026-08-25.md +0 -75
- package/docs/PHASE2-PILOT-2026-08-25.md +0 -88
- package/docs/PHASE2-PILOT-PREFLIGHT-2026-08-25.md +0 -42
- package/docs/PHASE4-STABILITY-AUDIT-2026-08-25.md +0 -35
- package/docs/PHASE4-V1.20-PILOT-2026-08-25.md +0 -56
- package/docs/ROADMAP.md +0 -875
- package/docs/V1.21-RELEASE-EVIDENCE-2026-08-25.md +0 -55
- package/docs/V2-D2-DECISION-CARD.md +0 -37
- package/docs/V2-DECISIONS.md +0 -11
- package/docs/V2-ITERATION-01.md +0 -60
- package/docs/V2-ITERATION-02.md +0 -32
- package/docs/V2-ITERATION-03.md +0 -30
- package/docs/V2-ITERATION-04.md +0 -29
- package/docs/V2-ITERATION-05.md +0 -20
- package/docs/V2-ITERATION-06.md +0 -18
- package/docs/V2-ITERATION-07.md +0 -36
- package/docs/V2-ITERATION-08.md +0 -62
- package/docs/V2-PLAN.md +0 -335
- package/docs/V2-PROPOSAL.md +0 -319
- package/docs/V2.0.0-BETA.1-RELEASE-EVIDENCE-2026-08-28.md +0 -41
- package/docs/V2.0.0-BETA.2-RELEASE-EVIDENCE-2026-08-28.md +0 -8
- package/docs/V2.0.0-BETA.3-RELEASE-EVIDENCE-2026-09-01.md +0 -8
- package/docs/V2.0.0-BETA.4-RELEASE-EVIDENCE-2026-09-03.md +0 -9
- package/docs/V2.0.0-BETA.5-RELEASE-EVIDENCE-2026-09-05.md +0 -10
- package/docs/V2.0.0-RELEASE-EVIDENCE-2026-09-05.md +0 -11
- package/docs/WP4.3-RELEASE-EVIDENCE-2026-08-25.md +0 -73
- package/docs/v2/M1-ACCEPTANCE-2026-08-28.md +0 -38
- package/docs/v2/M2-DOD-2026-08-28.md +0 -34
- package/docs/v2/M4-EXTERNAL-PILOT-2026-08-28.md +0 -46
- package/docs/v2/M4-PILOT-APP-2026-08-28.md +0 -44
- package/docs/v2/M4-SELFHOST-2026-08-28.md +0 -53
package/docs/ROADMAP.md
DELETED
|
@@ -1,875 +0,0 @@
|
|
|
1
|
-
# BuildBeat 新版演进规划书:面向人和 AI 会话的工程交付协议
|
|
2
|
-
|
|
3
|
-
> 文档状态:v1 历史方向基线(受下述 2026-08-24 执行修订约束;2026-08-27 起被 v2 方向取代,见下方修订框)
|
|
4
|
-
> 基线日期:2026-08-23
|
|
5
|
-
> 适用项目:BuildBeat 后续产品设计、协议演进与 CLI 开发
|
|
6
|
-
> 本文替代此前《BuildBeat 演进规划书:从单人工具到尺度无关的工程协议》。旧规划中的团队激活层、Preset/extends、emit 编译层及相应路线不再执行。
|
|
7
|
-
|
|
8
|
-
> **2026-08-27 方向变更(`V2-D0=B`,已生效)**
|
|
9
|
-
> 项目所有者已正式拍板 BuildBeat v2:新开发方向与执行以 [`V2-PLAN.md`](V2-PLAN.md) 为准,决策记录见 [`V2-DECISIONS.md`](V2-DECISIONS.md),当前迭代见 [`V2-ITERATION-01.md`](V2-ITERATION-01.md)。v1(本文所述协议与 CLI)转入维护线——只修缺陷与安全问题,不再按本文及 [`EXECUTION-PLAN.md`](EXECUTION-PLAN.md) 追加新能力。本文保留为 v1 决策存档。
|
|
10
|
-
|
|
11
|
-
> **2026-08-24 执行修订(生效)**
|
|
12
|
-
> 本文保留产品方向与问题定义;交付范围、顺序和验收以 [`EXECUTION-PLAN.md`](EXECUTION-PLAN.md) v3 的 §0 为准,冲突时由执行计划覆盖本文。CLI 仅选择性解冻 `init` / `adopt` 脚手架写入与 `upgrade` 机械升级,`doctor` 保持只读;`gate` / `adr` / `standards` / `check` 等命令面扩张、三方合并引擎和项目卸载引擎继续冻结。具体覆盖关系如下:
|
|
13
|
-
>
|
|
14
|
-
> - §3.2、§10.2:不再以“完整操作入口”为目标;合法主命令锁定为 `doctor / init / adopt / upgrade / version`,`diff / uninstall` 仅保留为明确的不可用保留名。
|
|
15
|
-
> - §10.4:写入采用“哑脚手架 + AI 会话渲染”、干净 Git 工作区、逐文件原子写与失败回删;不实现三方合并或独立 journal。
|
|
16
|
-
> - §10.6:Skill-only 始终完整可用;机械升级只接管 schema 2 manifest 管理的文件,旧项目不猜测所有权,继续走手册迁移或经确认后重建基线。
|
|
17
|
-
> - §11 Phase 2:技术栈判断、Gate 理由和 standards/ADR 起草归 Skill;CLI 只填项目名、日期、版本等确定项并显式保留待 AI 渲染的占位符。
|
|
18
|
-
> - §11 Phase 3/4 与 §17:Phase 3 缩减为机械 `upgrade`、Gate/证据和多仓增强;不再建设完整 CLI 命令面、三方合并、自动卸载或中断恢复。实施顺序以执行计划的工作包依赖为准。
|
|
19
|
-
|
|
20
|
-
> **2026-08-25 品牌决策(生效)**
|
|
21
|
-
> 产品正式更名为 **BuildBeat**。新源码、模板、CLI、Skill 与 Claude plugin 使用 `buildbeat`、`BUILDBEAT.md`、`.buildbeat/manifest.json` 和 `buildbeat-stack-baseline:v1`;旧 `Solobaton` 文件、manifest、marker 与可执行名只作为只读/调用兼容入口。已发布 npm 包 `solobaton` 与当前 GitHub 仓库地址暂作为 legacy distribution/repository ID 保留,任何远端改名、发布或 scoped package 选择仍需独立授权。旧名试点是历史兼容证据,不替代 BuildBeat namespace 的新试点。
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## 0. 一页结论
|
|
26
|
-
|
|
27
|
-
| 决策项 | 新结论 |
|
|
28
|
-
|---|---|
|
|
29
|
-
| 产品定位 | 一套面向人和 AI 会话的工程交付协议,不以单人或团队人数定义产品 |
|
|
30
|
-
| 首要问题 | 多个 AI 上下文和长期迭代过程中,项目事实、契约、状态、Gate 与证据容易失去同步 |
|
|
31
|
-
| 核心机制 | Git 中的文件总线 + 人工 Gate + 证据制完成 + 可执行检查 |
|
|
32
|
-
| 第一优先级 | 执行过程同步:`NOW → 看板 → contracts → status/evidence` 必须持续一致 |
|
|
33
|
-
| 第二优先级 | 新项目 Bootstrap 与存量项目 Adopt |
|
|
34
|
-
| 后续同级能力 | Gate/证据强化、多仓一致性、完整生命周期 |
|
|
35
|
-
| 通用 AI 入口 | `AGENTS.md` 是唯一人工维护的通用 AI 指令入口 |
|
|
36
|
-
| 工具适配 | 不做 `emit`;工具专属文件只能是极薄兼容桥或真正的工具专属增量 |
|
|
37
|
-
| 工程规范 | 可选的 `STACK.md`、`CODE.md`、`REVIEW.md`;UI 项目可选 `DESIGN.md` |
|
|
38
|
-
| 安全规范 | 并入 `CODE.md`,不单独增加 `SECURITY.md` |
|
|
39
|
-
| 规范检查 | 文件不存在时跳过;存在时由 `bus-check`/CLI 检查可机器验证部分 |
|
|
40
|
-
| 技术栈 | `STACK.md` 是当前项目批准采用的技术栈与工程约束单点,默认对 AI 只读 |
|
|
41
|
-
| 决策体系 | 重大、长期架构决策使用独立 ADR;方案比较和规则例外继续进入 `decisions.md` |
|
|
42
|
-
| Gate | 固定规格、设计、合并、上线四类;允许按项目类型标记 `N/A`,但必须写理由 |
|
|
43
|
-
| CLI | 仅承担确定性脚手架、只读体检与 schema 2 机械升级;不内置或调用大模型 |
|
|
44
|
-
| Skill | 不安装 CLI 时仍保留完整能力;CLI 只能增强,不能成为运行前提 |
|
|
45
|
-
| 数据与后端 | 项目文件和 Git 仍是核心持久化;不引入账号、数据库、远程后台或遥测 |
|
|
46
|
-
| 项目管理 | 不建模成员、岗位、Owner、任务分配或审批矩阵,不做项目管理系统 |
|
|
47
|
-
| 暂不做 | 个人/团队默认配置、Preset、extends、跨项目规则继承与同步 |
|
|
48
|
-
| 品牌 | 正式名称为 BuildBeat;本地 namespace 迁移先完成,外部分发标识另行决策 |
|
|
49
|
-
|
|
50
|
-
### 新定位语
|
|
51
|
-
|
|
52
|
-
> **一套面向人和 AI 会话的工程交付协议。它通过 Git 中的文件总线、人工 Gate 和可验证证据,让项目在长期迭代、多个仓库和多个 AI 上下文之间保持同步、可控、可核验。**
|
|
53
|
-
|
|
54
|
-
英文草案:
|
|
55
|
-
|
|
56
|
-
> **An engineering delivery protocol for humans and AI sessions. It uses a Git-based file bus, human gates, and verifiable evidence to keep projects synchronized, controlled, and auditable across long-running iterations, multiple repositories, and multiple AI contexts.**
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
## 1. 产品定义与边界
|
|
61
|
-
|
|
62
|
-
### 1.1 BuildBeat 是什么
|
|
63
|
-
|
|
64
|
-
BuildBeat 是项目内的工程交付协议与配套工具,解决以下问题:
|
|
65
|
-
|
|
66
|
-
1. 不同 AI 会话读取到的项目上下文不一致;
|
|
67
|
-
2. 当前目标、工作范围和实际进度发生漂移;
|
|
68
|
-
3. 跨仓库或跨服务契约被实现先行、文档滞后;
|
|
69
|
-
4. “已完成”缺少测试、渲染、部署或回滚证据;
|
|
70
|
-
5. AI 会话在规格、设计、合并和上线等关键节点越权;
|
|
71
|
-
6. 新项目或存量项目需要重复建立一套交付纪律;
|
|
72
|
-
7. 项目规则存在,但无法被持续检查和维护。
|
|
73
|
-
|
|
74
|
-
BuildBeat 不负责替代开发者、项目负责人或 AI Coding 工具。它负责让这些参与者围绕同一组项目事实工作。
|
|
75
|
-
|
|
76
|
-
### 1.2 BuildBeat 不是什么
|
|
77
|
-
|
|
78
|
-
BuildBeat 不做:
|
|
79
|
-
|
|
80
|
-
- 项目管理系统;
|
|
81
|
-
- 团队成员、岗位、Owner 或任务分配管理;
|
|
82
|
-
- 账号、登录、组织后台、RBAC 或 SSO;
|
|
83
|
-
- Agent Runtime、模型路由或模型调用平台;
|
|
84
|
-
- 实时协作数据库、聊天或通知系统;
|
|
85
|
-
- 团队效能评分、个人产出排行或行为遥测;
|
|
86
|
-
- 业务代码生成器;
|
|
87
|
-
- 跨 AI 工具规则编译器;
|
|
88
|
-
- 企业技术栈默认配置平台。
|
|
89
|
-
|
|
90
|
-
一个人可以使用 BuildBeat,多个人也可以共同使用同一套项目文件,但产品不对“团队”本身建模。
|
|
91
|
-
|
|
92
|
-
### 1.3 人数与产品模型解耦
|
|
93
|
-
|
|
94
|
-
项目中可以存在:
|
|
95
|
-
|
|
96
|
-
- 一个真人调度多个 AI 会话;
|
|
97
|
-
- 多个真人分别使用一个或多个 AI 会话;
|
|
98
|
-
- 真人专家只参与某次 Review、黑盒测试或最终验收。
|
|
99
|
-
|
|
100
|
-
这些都只作为具体交付事实出现,例如某次决策的拍板人、某份 evidence 的验收人,而不形成成员目录、岗位模型或审批矩阵。
|
|
101
|
-
|
|
102
|
-
协作的基本单元是**需求/功能工作包**,不是人类岗位流水线。一个 Builder 对一个工作包端到端负责:产品判断、实现、测试、合并与发布证据都属于同一交付边界;产品、全栈、测试可以是该 Builder 调用的不同 AI 专业视角,但不是必须交接给不同人类角色。多个 Builder 共享同一 Git 项目时,默认按项目或工作包切分,每个 Builder 仍端到端闭环自己的结果;只有共享契约、公共架构或安全边界冲突时才线下协调,并把最终收敛事实落回文件总线。
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
## 2. 不可退让的设计原则
|
|
107
|
-
|
|
108
|
-
### 2.1 文件是总线,Git 是历史
|
|
109
|
-
|
|
110
|
-
项目的当前目标、契约、状态、决策和证据继续存放在普通文本文件中,并由 Git 记录历史。任何新能力优先扩展现有协议,不引入远程数据库作为核心依赖。
|
|
111
|
-
|
|
112
|
-
### 2.2 先解决执行同步,再增加模板
|
|
113
|
-
|
|
114
|
-
BuildBeat 的首要价值不是“生成更多文档”,而是保证项目执行期间的关键事实持续一致。新增模板必须服务于同步、决策或验证,否则不进入核心范围。
|
|
115
|
-
|
|
116
|
-
### 2.3 管交付事实,不管项目管理
|
|
117
|
-
|
|
118
|
-
可以记录:
|
|
119
|
-
|
|
120
|
-
- 当前项目目标;
|
|
121
|
-
- 当前工作包的事实状态;
|
|
122
|
-
- 某次 Gate 是否通过;
|
|
123
|
-
- 某项验收由谁完成;
|
|
124
|
-
- 某个重大决策由谁确认。
|
|
125
|
-
|
|
126
|
-
不记录:
|
|
127
|
-
|
|
128
|
-
- 人员组织关系;
|
|
129
|
-
- 固定岗位;
|
|
130
|
-
- 任务分派体系;
|
|
131
|
-
- 团队权限模型;
|
|
132
|
-
- 人员绩效或协作统计。
|
|
133
|
-
|
|
134
|
-
### 2.4 `AGENTS.md`-first
|
|
135
|
-
|
|
136
|
-
`AGENTS.md` 是唯一需要人工维护的通用 AI 指令入口,负责:
|
|
137
|
-
|
|
138
|
-
- 开工读取顺序;
|
|
139
|
-
- 文件总线路由;
|
|
140
|
-
- 核心红线;
|
|
141
|
-
- Gate 边界;
|
|
142
|
-
- 受保护文件的写入规则;
|
|
143
|
-
- 指向详细项目事实和规范文件。
|
|
144
|
-
|
|
145
|
-
它不复制 `STACK.md`、`CODE.md`、`DESIGN.md`、`REVIEW.md` 或契约全文。
|
|
146
|
-
|
|
147
|
-
### 2.5 Skill-only 必须完整可用
|
|
148
|
-
|
|
149
|
-
未安装 CLI 时,BuildBeat Skill 仍必须支持完整的 Bootstrap、Adopt、文件维护、Gate、ADR、状态和证据流程。任何核心能力不得只存在于 CLI 私有状态中。
|
|
150
|
-
|
|
151
|
-
### 2.6 CLI 有界且可选
|
|
152
|
-
|
|
153
|
-
CLI 只作为确定性、可选的脚手架/体检/机械升级入口,不能成为项目协议的运行时依赖。项目语义理解、同步检查、Gate、ADR、standards 和冲突合并仍由 BuildBeat Skill、项目脚本与当前 AI Coding 会话分工承担。
|
|
154
|
-
|
|
155
|
-
### 2.7 默认 fail-closed
|
|
156
|
-
|
|
157
|
-
无法可靠判断时必须明确报告“未验证”或“扫描不完整”,不得假装已检查;存在冲突时停止自动修改,提供差异和下一步操作。
|
|
158
|
-
|
|
159
|
-
### 2.8 规则是负债
|
|
160
|
-
|
|
161
|
-
规范文件全部可选。文件不存在不报错;文件存在才检查。规则应区分 `MUST / SHOULD / MAY`,其中 `MAY` 不得单独阻断合并。
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
## 3. 当前基线与主要缺口
|
|
166
|
-
|
|
167
|
-
### 3.1 当前承重结构
|
|
168
|
-
|
|
169
|
-
现有 BuildBeat 已具备以下核心:
|
|
170
|
-
|
|
171
|
-
```text
|
|
172
|
-
AGENTS.md / SKILL.md
|
|
173
|
-
↓
|
|
174
|
-
pm/NOW.md
|
|
175
|
-
↓
|
|
176
|
-
当期看板
|
|
177
|
-
↓
|
|
178
|
-
contracts / decisions / status / evidence
|
|
179
|
-
↓
|
|
180
|
-
规格、设计、合并、上线四类人工 Gate
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
配套脚本负责文件总线、一致性、状态、生产漂移和提交前检查;Node.js CLI 已具备项目扫描、安装状态识别、依赖探测、冲突规划和保守的生命周期元数据基础。
|
|
184
|
-
|
|
185
|
-
### 3.2 当前 CLI 状态
|
|
186
|
-
|
|
187
|
-
legacy `solobaton@1.16.3` CLI v0 只承担检查和只读规划,`init/adopt` 必须带 `--dry-run`,所有项目写入 fail-closed;该分发 ID 已 deprecate 但未 unpublish。Canonical `@haiyangbg/buildbeat@1.20.0` / bundle `v1.20` 已通过 Trusted Publishing 独立发布验证:Wave 1 `init/adopt`、schema 2、Confirmed STACK、机械 `upgrade`、Gate/证据强关联、多仓 join、扫描边界和 marketplace plugin 已完成源码/沙箱回归,Wave 1 有 BuildBeat canonical 真实目录与 Gate3 证据,Wave 2 完成真实 schema 2 `v1.16 → v1.20` 升级;registry exact artifact、provenance、签名、隔离安装与 Release 另由 [`WP4.3-RELEASE-EVIDENCE-2026-08-25.md`](WP4.3-RELEASE-EVIDENCE-2026-08-25.md) 闭合。项目 `uninstall`、`diff`、工作流命令扩张与三方合并引擎继续冻结。Skill 仍承担项目语义和人工 Gate。
|
|
188
|
-
|
|
189
|
-
### 3.3 主要缺口
|
|
190
|
-
|
|
191
|
-
| 缺口 | 影响 |
|
|
192
|
-
|---|---|
|
|
193
|
-
| 真实业务仓仍可有自身冲突 | 多仓刷新已完成,但目标仓存在真实 `lessons.md` 断链、未登记 map 和未升级适配器;检查器必须保持 blocked/unverified,不能替业务仓修事实 |
|
|
194
|
-
| 发布远端是可变状态 | 首次 scoped 发布已闭合,但 GitHub ruleset/Environment、Trusted Publisher、publishing access、dist-tags 和版本占用仍须每次发布前重查 |
|
|
195
|
-
|
|
196
|
-
---
|
|
197
|
-
|
|
198
|
-
## 4. 目标架构
|
|
199
|
-
|
|
200
|
-
```mermaid
|
|
201
|
-
flowchart TB
|
|
202
|
-
F["项目文件协议\nAGENTS / NOW / 看板 / contracts / status / evidence / standards / ADR"]
|
|
203
|
-
G["Git\n历史、Diff、回滚、协作"]
|
|
204
|
-
S["BuildBeat Skill\n语义理解、Bootstrap、Adopt、项目维护"]
|
|
205
|
-
C["BuildBeat CLI\n确定性扫描、脚手架、体检、机械升级"]
|
|
206
|
-
L["项目本地脚本\nbus-check / drift-check / verify-status / pre-commit"]
|
|
207
|
-
H["人工 Gate"]
|
|
208
|
-
|
|
209
|
-
S --> F
|
|
210
|
-
C --> F
|
|
211
|
-
L --> F
|
|
212
|
-
F --> G
|
|
213
|
-
H --> F
|
|
214
|
-
|
|
215
|
-
C -.可选调用.-> L
|
|
216
|
-
C -.输出事实与差异供当前 AI 分析.-> S
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
### 4.1 核心关系
|
|
220
|
-
|
|
221
|
-
- **项目文件协议是中心**:Skill 和 CLI 都读写同一套普通文件;
|
|
222
|
-
- **Skill 是语义入口**:理解产品、架构、范围和模糊上下文;
|
|
223
|
-
- **CLI 是有界的确定性入口**:执行可预测的扫描、脚手架、体检和 schema 2 机械升级;
|
|
224
|
-
- **项目脚本是无安装基础能力**:CLI 可以调用,但不能将其私有化;
|
|
225
|
-
- **人工 Gate 保持独立**:CLI 或 AI 都不能自行替代人工确认。
|
|
226
|
-
|
|
227
|
-
### 4.2 禁止的依赖方向
|
|
228
|
-
|
|
229
|
-
```text
|
|
230
|
-
Skill → 必须安装 CLI → 才能工作 禁止
|
|
231
|
-
项目事实 → 仅存在 CLI 私有数据库 禁止
|
|
232
|
-
AGENTS.md → 要求先运行某个 CLI 命令 禁止
|
|
233
|
-
CLI 升级 → 覆盖项目拥有的事实文件 禁止
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
---
|
|
237
|
-
|
|
238
|
-
## 5. 目标文件结构
|
|
239
|
-
|
|
240
|
-
以下为目标结构。`standards/` 和 `pm/adr/` 均按需生成,不作为安装完整性的硬要求。
|
|
241
|
-
|
|
242
|
-
```text
|
|
243
|
-
project/
|
|
244
|
-
├── AGENTS.md # 通用 AI 协议唯一入口
|
|
245
|
-
├── ARCHITECTURE.md # 架构事实与部署单元
|
|
246
|
-
├── BUILDBEAT.md # BuildBeat 版本/安装标记
|
|
247
|
-
├── standards/ # 可选工程规范
|
|
248
|
-
│ ├── STACK.md # 当前项目技术栈与工程约束
|
|
249
|
-
│ ├── CODE.md # 代码、依赖、安全与工程规则
|
|
250
|
-
│ ├── REVIEW.md # Review 标准
|
|
251
|
-
│ └── DESIGN.md # 仅 UI 项目按需生成
|
|
252
|
-
├── contracts/
|
|
253
|
-
│ └── PROTOCOL.md # 跨边界契约 SSOT
|
|
254
|
-
├── pm/
|
|
255
|
-
│ ├── NOW.md # 当前期薄指针
|
|
256
|
-
│ ├── <当前期看板>.md # 当前范围、状态、Gate
|
|
257
|
-
│ ├── decisions.md # 普通决策、方案比较、规则例外
|
|
258
|
-
│ ├── adr/ # 重大长期架构决策
|
|
259
|
-
│ │ └── ADR-<id>-<slug>.md
|
|
260
|
-
│ ├── status/ # 各执行上下文的事实状态
|
|
261
|
-
│ ├── changes/ # 变更提案或增量事实
|
|
262
|
-
│ └── archive/.../evidence/ # 验证与交付证据
|
|
263
|
-
└── scripts/
|
|
264
|
-
├── bus-check.sh
|
|
265
|
-
├── verify-status.sh
|
|
266
|
-
├── drift-check.sh
|
|
267
|
-
└── pre-commit.sh
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
明确不增加:
|
|
271
|
-
|
|
272
|
-
```text
|
|
273
|
-
team/
|
|
274
|
-
policy/
|
|
275
|
-
presets/
|
|
276
|
-
emit 输出目录
|
|
277
|
-
成员、岗位或审批矩阵文件
|
|
278
|
-
```
|
|
279
|
-
|
|
280
|
-
---
|
|
281
|
-
|
|
282
|
-
## 6. 第一优先级:执行过程同步
|
|
283
|
-
|
|
284
|
-
### 6.1 开工同步
|
|
285
|
-
|
|
286
|
-
每个 AI 会话开始工作前,按以下顺序建立上下文:
|
|
287
|
-
|
|
288
|
-
1. 读取 `AGENTS.md`;
|
|
289
|
-
2. 读取 `pm/NOW.md`;
|
|
290
|
-
3. 读取当前期看板;
|
|
291
|
-
4. 读取与当前工作相关的 `contracts/PROTOCOL.md` 片段;
|
|
292
|
-
5. 读取相关 `status` 和最近决策;
|
|
293
|
-
6. 若存在相应 standards,则读取;
|
|
294
|
-
7. 若项目脚本可运行,则执行 `bus-check`;无法运行时明确说明未检查项。
|
|
295
|
-
|
|
296
|
-
### 6.2 执行中同步
|
|
297
|
-
|
|
298
|
-
工作过程中遵守:
|
|
299
|
-
|
|
300
|
-
- 当前范围变化先更新看板或决策,再扩大实现;
|
|
301
|
-
- 跨服务、跨仓或公共接口变化先更新契约事实;
|
|
302
|
-
- 关键实现阶段更新对应 status,不把会话记忆当作项目状态;
|
|
303
|
-
- 技术栈、核心架构或受保护规范不得为解决局部问题而被顺手修改;
|
|
304
|
-
- 发现项目文件彼此冲突时,先报告冲突,不自动选择一方作为真相。
|
|
305
|
-
|
|
306
|
-
### 6.3 收工同步
|
|
307
|
-
|
|
308
|
-
结束工作前必须完成:
|
|
309
|
-
|
|
310
|
-
1. 实际进度写入 status;
|
|
311
|
-
2. 看板状态与 status 一致;
|
|
312
|
-
3. 标记完成的工作具备相应 evidence;
|
|
313
|
-
4. 契约或架构变化已同步;
|
|
314
|
-
5. Gate 状态已更新,或明确仍待人工确认;
|
|
315
|
-
6. `NOW.md` 仍指向真实当前期;
|
|
316
|
-
7. 再次运行可用的一致性检查。
|
|
317
|
-
|
|
318
|
-
### 6.4 文件总线不变量
|
|
319
|
-
|
|
320
|
-
`bus-check`、Skill 和 CLI 应共同维护以下不变量:
|
|
321
|
-
|
|
322
|
-
| 不变量 | 违规示例 |
|
|
323
|
-
|---|---|
|
|
324
|
-
| `NOW.md` 只能指向一个有效当前期 | 指向已归档或不存在的看板 |
|
|
325
|
-
| 当前期看板、status 与实际工作状态一致 | 看板“完成”,status 仍“进行中” |
|
|
326
|
-
| 完成必须有证据 | 工作包已完成但没有测试、渲染、部署或验收记录 |
|
|
327
|
-
| 跨边界变更必须同步契约 | API 已改变但 `PROTOCOL.md` 未更新 |
|
|
328
|
-
| Gate 通过必须可追溯 | 只有“已通过”文字,没有确认或证据引用 |
|
|
329
|
-
| Gate `N/A` 必须有理由 | 直接跳过设计或上线 Gate |
|
|
330
|
-
| 指针和引用必须有效 | AGENTS、NOW、决策或证据引用了不存在的文件 |
|
|
331
|
-
| 无法检查必须显式暴露 | 扫描被截断却报告“全部正常” |
|
|
332
|
-
|
|
333
|
-
### 6.5 检查结果分级
|
|
334
|
-
|
|
335
|
-
建议统一为:
|
|
336
|
-
|
|
337
|
-
```text
|
|
338
|
-
confirmed 已从可观测事实确认
|
|
339
|
-
warning 存在风险或信息不足,但尚不能确认冲突
|
|
340
|
-
unverified 当前工具无法可靠判断
|
|
341
|
-
conflict 项目声明与可观测事实冲突
|
|
342
|
-
error 协议结构损坏或阻断继续执行
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
`--strict` 可以将选定的 warning/conflict 转为非零退出,但不得把自然语言规范伪装成机器已验证。
|
|
346
|
-
|
|
347
|
-
---
|
|
348
|
-
|
|
349
|
-
## 7. 可选工程规范
|
|
350
|
-
|
|
351
|
-
### 7.1 通用规则
|
|
352
|
-
|
|
353
|
-
- standards 默认不强制生成;
|
|
354
|
-
- 文件不存在时 `bus-check` 跳过,不报错;
|
|
355
|
-
- 文件存在时检查结构、占位符、引用和可观测冲突;
|
|
356
|
-
- `AGENTS.md` 只放摘要和文件指针,不复制正文;
|
|
357
|
-
- 可机器引用的规则使用稳定 Rule ID;纯说明内容可不编号;
|
|
358
|
-
- 规范正文由项目拥有,升级不得无条件覆盖。
|
|
359
|
-
|
|
360
|
-
### 7.2 `STACK.md`
|
|
361
|
-
|
|
362
|
-
#### 定位
|
|
363
|
-
|
|
364
|
-
`STACK.md` 记录:
|
|
365
|
-
|
|
366
|
-
> 当前项目经确认采用的技术栈、版本约束、基础设施和工程硬约束。
|
|
367
|
-
|
|
368
|
-
它不是跨项目默认配置,也不继承个人或团队 Preset。新项目可以在 Bootstrap 中按自身需求填写或覆盖扫描/建议结果,但这些覆盖只属于当前项目。
|
|
369
|
-
|
|
370
|
-
#### 声明与观测分离
|
|
371
|
-
|
|
372
|
-
```text
|
|
373
|
-
STACK.md
|
|
374
|
-
= 项目批准采用什么
|
|
375
|
-
= 预期状态 / 工程约束
|
|
376
|
-
|
|
377
|
-
package.json、lockfile、Dockerfile、部署配置等
|
|
378
|
-
= 项目实际上正在使用什么
|
|
379
|
-
= 可观测状态
|
|
380
|
-
```
|
|
381
|
-
|
|
382
|
-
两者冲突时,不自动修改代码,也不自动修改 `STACK.md`,而是报告漂移。
|
|
383
|
-
|
|
384
|
-
#### 写入边界
|
|
385
|
-
|
|
386
|
-
- AI 默认只读;
|
|
387
|
-
- 安装依赖、修复构建或完成普通需求不得顺手修改;
|
|
388
|
-
- 只有用户明确要求技术栈变化时,才可提出变更;
|
|
389
|
-
- 替换运行时、框架、数据库、包管理器、部署平台等重大变化必须建立 ADR;
|
|
390
|
-
- 修改后必须同时验证项目实际配置和回滚路径;
|
|
391
|
-
- BuildBeat 提供规则和漂移检查,不提供访问控制;需要强制防篡改时由 Git 分支保护、Review 规则或 CODEOWNERS 等外部机制承担。
|
|
392
|
-
|
|
393
|
-
#### 可检查事实
|
|
394
|
-
|
|
395
|
-
包括但不限于:
|
|
396
|
-
|
|
397
|
-
- Runtime 与版本文件;
|
|
398
|
-
- 包管理器与 lockfile;
|
|
399
|
-
- 语言、框架和测试依赖;
|
|
400
|
-
- 数据库驱动和容器配置;
|
|
401
|
-
- 部署平台配置;
|
|
402
|
-
- CI 配置;
|
|
403
|
-
- License、lockfile、安全等明确硬约束。
|
|
404
|
-
|
|
405
|
-
无法可靠识别的内容标记为 `unverified`,不做猜测。
|
|
406
|
-
|
|
407
|
-
### 7.3 `CODE.md`
|
|
408
|
-
|
|
409
|
-
包含:
|
|
410
|
-
|
|
411
|
-
- 代码结构和命名;
|
|
412
|
-
- 依赖治理;
|
|
413
|
-
- 测试要求;
|
|
414
|
-
- 错误处理;
|
|
415
|
-
- 数据与兼容性规则;
|
|
416
|
-
- 安全与 Secret 底线;
|
|
417
|
-
- 许可证和供应链要求;
|
|
418
|
-
- 项目特有的禁止事项。
|
|
419
|
-
|
|
420
|
-
规则等级:
|
|
421
|
-
|
|
422
|
-
| 等级 | 语义 | 是否可阻断 |
|
|
423
|
-
|---|---|---:|
|
|
424
|
-
| `MUST` | 安全、数据、兼容和项目统一底线 | 是 |
|
|
425
|
-
| `SHOULD` | 默认最佳实践,有理由时可偏离 | 视 Review 结论 |
|
|
426
|
-
| `MAY` | 建议或风格偏好 | 否 |
|
|
427
|
-
|
|
428
|
-
安全规范并入本文件,不新增独立 `SECURITY.md`。
|
|
429
|
-
|
|
430
|
-
### 7.4 `REVIEW.md`
|
|
431
|
-
|
|
432
|
-
用于 AI Reviewer 和真人 Review,最小检查维度:
|
|
433
|
-
|
|
434
|
-
1. 设计与架构一致性;
|
|
435
|
-
2. 功能与验收范围;
|
|
436
|
-
3. 测试与 evidence;
|
|
437
|
-
4. 安全、兼容和数据风险;
|
|
438
|
-
5. 可维护性与复杂度;
|
|
439
|
-
6. 契约、文档和状态同步。
|
|
440
|
-
|
|
441
|
-
该文件不定义团队岗位、响应 SLA 或审批人。
|
|
442
|
-
|
|
443
|
-
### 7.5 `DESIGN.md`
|
|
444
|
-
|
|
445
|
-
仅在存在 UI、视觉或交互交付时按需生成。推荐结构:
|
|
446
|
-
|
|
447
|
-
```text
|
|
448
|
-
Principles
|
|
449
|
-
→ Tokens
|
|
450
|
-
→ Components
|
|
451
|
-
→ Interaction Patterns
|
|
452
|
-
→ States(loading / empty / error / disabled)
|
|
453
|
-
→ Accessibility
|
|
454
|
-
→ Project-specific exceptions
|
|
455
|
-
```
|
|
456
|
-
|
|
457
|
-
无 UI 项目不生成,也不因缺失而告警。
|
|
458
|
-
|
|
459
|
-
---
|
|
460
|
-
|
|
461
|
-
## 8. 决策与 ADR
|
|
462
|
-
|
|
463
|
-
### 8.1 `decisions.md` 继续负责
|
|
464
|
-
|
|
465
|
-
- 普通产品或工程拍板;
|
|
466
|
-
- 有限方案比较;
|
|
467
|
-
- 临时规则例外;
|
|
468
|
-
- Gate 相关确认;
|
|
469
|
-
- 短期且可逆的技术选择。
|
|
470
|
-
|
|
471
|
-
不新增独立的 `TRADE-STUDY.md` 或 `EXCEPTION.md` 文件体系。
|
|
472
|
-
|
|
473
|
-
### 8.2 独立 ADR 负责
|
|
474
|
-
|
|
475
|
-
满足任一条件时建议使用 ADR:
|
|
476
|
-
|
|
477
|
-
- 改变核心运行时、框架、数据库或部署方式;
|
|
478
|
-
- 改变跨服务或跨仓架构;
|
|
479
|
-
- 改变关键数据模型或公共接口策略;
|
|
480
|
-
- 形成长期、难以回退的技术约束;
|
|
481
|
-
- 推翻或替代此前 ADR。
|
|
482
|
-
|
|
483
|
-
最小字段:
|
|
484
|
-
|
|
485
|
-
```text
|
|
486
|
-
Title
|
|
487
|
-
Status: Proposed / Accepted / Rejected / Superseded
|
|
488
|
-
Context
|
|
489
|
-
Decision
|
|
490
|
-
Consequences
|
|
491
|
-
Alternatives considered
|
|
492
|
-
Related contracts / work packages / evidence
|
|
493
|
-
```
|
|
494
|
-
|
|
495
|
-
ADR 记录决策事实,不用于管理谁属于哪个团队。
|
|
496
|
-
|
|
497
|
-
---
|
|
498
|
-
|
|
499
|
-
## 9. Gate 模型
|
|
500
|
-
|
|
501
|
-
### 9.1 固定四类 Gate
|
|
502
|
-
|
|
503
|
-
1. **Gate 1:规格**——目标、范围、非目标和验收条件明确;
|
|
504
|
-
2. **Gate 2:设计**——视觉、交互或关键设计方案完成确认;
|
|
505
|
-
3. **Gate 3:合并**——实现、Review、测试和必要文档达到合并条件;
|
|
506
|
-
4. **Gate 4:上线**——生产发布、回滚和最终证据满足要求。
|
|
507
|
-
|
|
508
|
-
### 9.2 允许 `N/A`
|
|
509
|
-
|
|
510
|
-
项目可以将某个 Gate 标记为:
|
|
511
|
-
|
|
512
|
-
```text
|
|
513
|
-
pending
|
|
514
|
-
passed
|
|
515
|
-
blocked
|
|
516
|
-
n/a
|
|
517
|
-
```
|
|
518
|
-
|
|
519
|
-
`n/a` 必须包含理由,例如:
|
|
520
|
-
|
|
521
|
-
```markdown
|
|
522
|
-
Gate 2: N/A
|
|
523
|
-
Reason: 本项目为无 UI 的命令行工具,不存在视觉或交互设计交付。
|
|
524
|
-
```
|
|
525
|
-
|
|
526
|
-
### 9.3 不增加自定义 Gate 系统
|
|
527
|
-
|
|
528
|
-
不提供任意创建第五、第六道 Gate 的工作流配置器。特殊检查可写入当前工作包、`CODE.md`、`REVIEW.md` 或 evidence 要求中。
|
|
529
|
-
|
|
530
|
-
### 9.4 不建模审批人
|
|
531
|
-
|
|
532
|
-
Gate 仍要求人工确认,但 BuildBeat 不建立 Owner 或审批矩阵。实际确认人可以记录在该次决策或证据中。
|
|
533
|
-
|
|
534
|
-
---
|
|
535
|
-
|
|
536
|
-
## 10. Skill 与 CLI 双路径
|
|
537
|
-
|
|
538
|
-
### 10.1 Skill-only 路径
|
|
539
|
-
|
|
540
|
-
没有安装 CLI 时,Skill 必须能够:
|
|
541
|
-
|
|
542
|
-
- 分析新项目和存量项目;
|
|
543
|
-
- 执行 Bootstrap 与 Adopt;
|
|
544
|
-
- 创建、更新并检查文件总线;
|
|
545
|
-
- 创建可选 standards;
|
|
546
|
-
- 创建 ADR;
|
|
547
|
-
- 更新 Gate、status 和 evidence;
|
|
548
|
-
- 使用项目内脚本完成检查;
|
|
549
|
-
- 完成完整交付流程。
|
|
550
|
-
|
|
551
|
-
### 10.2 CLI 路径
|
|
552
|
-
|
|
553
|
-
CLI 的目标命令面固定为:
|
|
554
|
-
|
|
555
|
-
```text
|
|
556
|
-
buildbeat doctor
|
|
557
|
-
buildbeat init
|
|
558
|
-
buildbeat adopt
|
|
559
|
-
buildbeat upgrade
|
|
560
|
-
buildbeat version
|
|
561
|
-
```
|
|
562
|
-
|
|
563
|
-
`diff` / `uninstall` 只保留不可用名并明确返回 `command_not_available`;`check/status/gate/adr/standards` 属 Skill 与项目脚本边界,不加入 CLI。legacy v0 仅开放 `doctor`、`init/adopt --dry-run` 和 `version`;WP2.4–WP2.6 当时形成的源码候选已在后续 `@haiyangbg/buildbeat@1.20.0` 中通过真实项目试点、发布门禁与 registry/供应链回读,因此 scoped npm 写能力可用,legacy 包能力不变。
|
|
564
|
-
|
|
565
|
-
### 10.3 CLI 智能边界
|
|
566
|
-
|
|
567
|
-
CLI:
|
|
568
|
-
|
|
569
|
-
- 不内置大模型;
|
|
570
|
-
- 不调用模型 API;
|
|
571
|
-
- 不管理 API Key;
|
|
572
|
-
- 不依据模糊语义自行作产品或架构决定;
|
|
573
|
-
- 可以输出结构化事实、差异和待确认项,供当前 AI Coding 工具或 Skill 继续处理。
|
|
574
|
-
|
|
575
|
-
### 10.4 CLI 写入安全
|
|
576
|
-
|
|
577
|
-
所有多文件或破坏性写入必须:
|
|
578
|
-
|
|
579
|
-
1. 支持完整计划预览 / dry-run;
|
|
580
|
-
2. 展示变更摘要、冲突与待渲染占位符;
|
|
581
|
-
3. 检查工作区脏状态和路径冲突;
|
|
582
|
-
4. 采用逐文件原子写入与进程内回滚,manifest 最后写;
|
|
583
|
-
5. 遇到不确定合并时 fail-closed;
|
|
584
|
-
6. schema 1 只读兼容历史 `three-way-only`;schema 2 只接受 `replace-if-unmodified`、`project-owned`、`merge-only`;
|
|
585
|
-
7. 写入普通、可读、Git 可追踪的文件;
|
|
586
|
-
8. 不把项目事实藏入不可读缓存或远程状态。
|
|
587
|
-
|
|
588
|
-
### 10.5 manifest 的边界
|
|
589
|
-
|
|
590
|
-
`.buildbeat/manifest.json` 可以记录:
|
|
591
|
-
|
|
592
|
-
- 安装版本;
|
|
593
|
-
- 模板基线 hash;
|
|
594
|
-
- 文件生命周期策略;
|
|
595
|
-
- 机械升级基线与手动移除盘点信息。
|
|
596
|
-
|
|
597
|
-
但它不能成为:
|
|
598
|
-
|
|
599
|
-
- 当前目标、状态、契约、Gate 或规范的唯一来源;
|
|
600
|
-
- Skill 工作的必要条件;
|
|
601
|
-
- 项目协议损坏后的不可替代数据库。
|
|
602
|
-
|
|
603
|
-
### 10.6 双向兼容
|
|
604
|
-
|
|
605
|
-
必须保证:
|
|
606
|
-
|
|
607
|
-
```text
|
|
608
|
-
CLI 创建或升级的项目
|
|
609
|
-
→ 在无 CLI、只有 Skill 的环境中可完整维护
|
|
610
|
-
|
|
611
|
-
Skill 创建或维护的项目
|
|
612
|
-
→ CLI doctor 可保守识别和检查;无 schema 2 基线时不猜测所有权或机械升级
|
|
613
|
-
```
|
|
614
|
-
|
|
615
|
-
---
|
|
616
|
-
|
|
617
|
-
## 11. 新路线图
|
|
618
|
-
|
|
619
|
-
路线图按“执行同步 > Bootstrap/Adopt > Gate/证据、多仓、生命周期”的已定优先级推进。CLI 能力分阶段补齐,但每一阶段都必须保持 Skill-only 可用。
|
|
620
|
-
|
|
621
|
-
### Phase 0:基线收敛与兼容契约
|
|
622
|
-
|
|
623
|
-
**目标**:先统一产品定义和协议边界,不急于增加文件。
|
|
624
|
-
|
|
625
|
-
交付:
|
|
626
|
-
|
|
627
|
-
- 重写 README 中英文定位;
|
|
628
|
-
- 用本文替代旧演进规划;
|
|
629
|
-
- 从路线图删除团队层、Preset/extends 和 `emit`;
|
|
630
|
-
- 在 `SKILL.md`、`AGENTS.md` 和文档中写明 CLI 可选、Skill-only 完整;
|
|
631
|
-
- 定义执行同步不变量、Gate `N/A` 语义和检查结果分级;
|
|
632
|
-
- 建立 Skill-only 与 CLI 交叉兼容测试框架。
|
|
633
|
-
|
|
634
|
-
验收:
|
|
635
|
-
|
|
636
|
-
- 文档不存在互相矛盾的产品定位;
|
|
637
|
-
- 不安装 CLI 的现有流程不受影响;
|
|
638
|
-
- 旧项目无需迁移即可继续使用。
|
|
639
|
-
|
|
640
|
-
### Phase 1:执行过程同步
|
|
641
|
-
|
|
642
|
-
**目标**:解决真实使用中最核心的上下文和状态漂移。
|
|
643
|
-
|
|
644
|
-
Skill/协议侧:
|
|
645
|
-
|
|
646
|
-
- 固化开工、执行中和收工同步流程;
|
|
647
|
-
- 明确 NOW、看板、status、contracts、evidence 的更新责任和顺序;
|
|
648
|
-
- 完成状态必须引用证据;
|
|
649
|
-
- 冲突时停止自动修正并报告。
|
|
650
|
-
|
|
651
|
-
脚本/CLI 侧:
|
|
652
|
-
|
|
653
|
-
- 增强 `bus-check` 和 `verify-status`;
|
|
654
|
-
- 检查过期 NOW 指针、失效引用、状态不一致、完成无证据、契约漂移和 Gate 缺失;
|
|
655
|
-
- 输出统一 finding code、严重级别和机器可读结果;
|
|
656
|
-
- 对扫描截断、符号链接或无法访问路径明确标记 `unverified`。
|
|
657
|
-
|
|
658
|
-
验收:
|
|
659
|
-
|
|
660
|
-
- 人工制造的关键不一致能被稳定发现;
|
|
661
|
-
- 无法检查的范围不会被报告为已通过;
|
|
662
|
-
- Skill-only 与 CLI 检查结果语义一致;
|
|
663
|
-
- 至少在一个活跃多仓项目和一个普通项目中完成试点。
|
|
664
|
-
|
|
665
|
-
### Phase 2:Bootstrap / Adopt 与可选规范
|
|
666
|
-
|
|
667
|
-
**目标**:降低新项目建立协议和存量项目接管的成本。
|
|
668
|
-
|
|
669
|
-
Skill 侧:
|
|
670
|
-
|
|
671
|
-
- 新项目扫描并只询问无法推断的项目事实;
|
|
672
|
-
- 存量项目输出实际现状、历史债务和接管边界;
|
|
673
|
-
- 按需创建 `STACK.md`、`CODE.md`、`REVIEW.md`;
|
|
674
|
-
- 识别 UI 项目后才建议 `DESIGN.md`;
|
|
675
|
-
- 识别 Gate 是否适用并生成 `N/A` 理由草案;
|
|
676
|
-
- 重大技术选择建立 ADR。
|
|
677
|
-
|
|
678
|
-
CLI 侧:
|
|
679
|
-
|
|
680
|
-
- `init` 和 `adopt` 从 dry-run 扩展到安全写入;
|
|
681
|
-
- 只填项目名、日期、版本和布局等确定项,将其余占位符明示交给 AI 会话渲染;
|
|
682
|
-
- 写入前展示完整文件计划,要求目标根 Git 工作区干净,任何碰撞都停止;
|
|
683
|
-
- 默认排除可选 standards/ADR,不安装 Hook,不初始化 Git;
|
|
684
|
-
- 全部文件落盘后最后写 schema 2 manifest。
|
|
685
|
-
|
|
686
|
-
验收:
|
|
687
|
-
|
|
688
|
-
- 一个新项目和一个存量项目分别走通;
|
|
689
|
-
- standards 不存在时不报警;存在时可被检查;
|
|
690
|
-
- Skill 与 CLI 生成的结构兼容;
|
|
691
|
-
- `STACK.md` 与实际配置冲突时只报告,不自动改写。
|
|
692
|
-
|
|
693
|
-
### Phase 3:机械升级 + Gate/多仓增强
|
|
694
|
-
|
|
695
|
-
**目标**:在 Wave 1 的 schema 2 基线上补齐有边界的机械升级,并完善多仓和 Gate 检查,不扩张工作流命令面。
|
|
696
|
-
|
|
697
|
-
当前进度:WP3.1–WP3.4 的机械 upgrade、Gate/证据强关联、多仓漂移与扫描边界报告源码及 disposable Git 沙箱候选已完成;真实 schema 2 `v1.16 → v1.20` upgrade 和真实四子仓只读刷新也已归档。WP4.1–WP4.2 的示例/迁移、能力矩阵、双语终校与硬门槛归档已完成;WP4.3 scoped package、新仓库名与 `1.20.0` 外部分发已关闭。
|
|
698
|
-
|
|
699
|
-
交付:
|
|
700
|
-
|
|
701
|
-
- schema 2 `upgrade`:baseline hash 未变才替换,本地改写则报冲突;`--force` 也不触碰 project-owned;
|
|
702
|
-
- 同 major 机械升级,跨 major 需显式 `--major`;不做三方合并、自动删除或项目 uninstall;
|
|
703
|
-
- Gate 令牌/evidence 关联、多仓契约/版本/漂移诊断与扫描覆盖面报告;
|
|
704
|
-
- 项目本地脚本继续是同步检查唯一权威,CLI doctor 不复制其结论。
|
|
705
|
-
|
|
706
|
-
验收:
|
|
707
|
-
|
|
708
|
-
- 脏工作区、schema 1、本地改写、版本跨度和 `.gitignore` marker 异常全部 fail-closed;
|
|
709
|
-
- 多仓漂移能定位到具体仓库、文件和事实来源;
|
|
710
|
-
- CLI 创建/升级的项目可在 Skill-only 环境继续完整交付。
|
|
711
|
-
|
|
712
|
-
### Phase 4:稳定、发布与品牌收尾
|
|
713
|
-
|
|
714
|
-
**目标**:在 BuildBeat 名称已拍板的前提下,基于真实使用结果完成公开定位、兼容声明与外部分发标识决策。
|
|
715
|
-
|
|
716
|
-
交付:
|
|
717
|
-
|
|
718
|
-
- 示例项目和迁移指南;
|
|
719
|
-
- Skill-only / CLI 能力矩阵;
|
|
720
|
-
- 双语文档和发布检查;
|
|
721
|
-
- 兼容性声明;
|
|
722
|
-
- 完成 BuildBeat 外部分发标识决策:继续沿用 legacy `solobaton` 包/仓库地址,或另行批准 scoped package 与远端改名。
|
|
723
|
-
|
|
724
|
-
品牌名与外部分发标识均已在 2026-08-25 拍板并执行:`@haiyangbg/buildbeat` + `HaiYangBG1/BuildBeat`。远端仓库、npm 包和发布动作已按独立读回关闭;这不改变未来版本仍须重新核验可变远端的要求。
|
|
725
|
-
|
|
726
|
-
当前进度:WP4.1 已补齐 schema 2 教学 manifest 与 legacy 指南;WP4.2 已完成能力矩阵、双语终校、双向互操作回归与§15 归档;真实升级和多仓刷新已补证。WP4.3 已完成远端改名、Trusted Publishing、scoped `1.20.0` 首发、供应链/安装回读、GitHub Release 与 legacy deprecation。
|
|
727
|
-
|
|
728
|
-
---
|
|
729
|
-
|
|
730
|
-
## 12. 实现影响范围
|
|
731
|
-
|
|
732
|
-
| 文件/模块 | 主要改动 |
|
|
733
|
-
|---|---|
|
|
734
|
-
| `README.md` / `README.en.md` | 新定位、双路径使用方式、非目标 |
|
|
735
|
-
| `SKILL.md` | 执行同步协议、可选 standards、Gate N/A、CLI 可选原则 |
|
|
736
|
-
| `templates/AGENTS.md` | 唯一通用入口、路由、受保护文件、Skill-only 路径 |
|
|
737
|
-
| `templates/pm/NOW.md` | 当前期指针与有效性要求 |
|
|
738
|
-
| 当前期看板模板 | Gate 状态、N/A 理由、完成与证据关系 |
|
|
739
|
-
| `templates/pm/decisions.md` | 普通方案比较和例外记录 |
|
|
740
|
-
| `templates/pm/adr/` | 新增最小 ADR 模板 |
|
|
741
|
-
| `templates/standards/` | 四个可选规范模板 |
|
|
742
|
-
| `templates/scripts/bus-check.sh` | 执行同步、引用、Gate、standards 结构与 Confirmed STACK 可观测漂移检查 |
|
|
743
|
-
| `templates/scripts/verify-status.sh` | 看板/status/evidence 一致性 |
|
|
744
|
-
| `src/constants.js` | 新文件路径、所有权策略和生命周期规则 |
|
|
745
|
-
| `src/project.js` | standards/ADR/Gate/多仓事实扫描与安全边界 |
|
|
746
|
-
| `src/planner.js` | 从只读计划逐步演进为可执行变更计划 |
|
|
747
|
-
| `src/upgrader.js` | schema 2 机械升级计划、所有权/version/Git 门控、原子事务与回滚 |
|
|
748
|
-
| `src/doctor.js` | 新 finding code、结构与漂移诊断 |
|
|
749
|
-
| `src/cli.js` | 有界的 init/adopt 写入与 upgrade 编排 |
|
|
750
|
-
| `.buildbeat/manifest.json` | 仅作为机械升级基线与手动移除盘点 |
|
|
751
|
-
| `tests/*` | Skill-only、CLI、交叉兼容、脚本、生命周期和文档一致性 |
|
|
752
|
-
|
|
753
|
-
---
|
|
754
|
-
|
|
755
|
-
## 13. 测试矩阵
|
|
756
|
-
|
|
757
|
-
至少覆盖以下组合:
|
|
758
|
-
|
|
759
|
-
| 维度 | 场景 |
|
|
760
|
-
|---|---|
|
|
761
|
-
| 安装方式 | 仅 Skill;Skill + CLI;仅对已有项目运行 CLI |
|
|
762
|
-
| 项目来源 | 新项目 Bootstrap;存量项目 Adopt |
|
|
763
|
-
| 项目类型 | UI;无 UI;有部署;无部署 |
|
|
764
|
-
| 仓库结构 | 单仓;多仓/多部署单元 |
|
|
765
|
-
| standards | 全部缺失;部分存在;全部存在;内容冲突 |
|
|
766
|
-
| Gate | 正常通过;blocked;N/A 有理由;N/A 无理由 |
|
|
767
|
-
| STACK | 声明与事实一致;无法验证;真实冲突;被非预期修改 |
|
|
768
|
-
| 生命周期 | clean;dirty;用户修改模板;升级冲突;手动移除盘点 |
|
|
769
|
-
| 扫描能力 | 正常;目录过大;符号链接;权限不足;工具缺失 |
|
|
770
|
-
| 交叉兼容 | CLI 创建后 Skill 维护;Skill 创建后 CLI 接管 |
|
|
771
|
-
|
|
772
|
-
必须建立两个长期回归测试:
|
|
773
|
-
|
|
774
|
-
### Skill-only compatibility test
|
|
775
|
-
|
|
776
|
-
在没有全局 CLI 的环境中完成 Bootstrap、Adopt、规范、ADR、Gate、状态、证据和检查流程。
|
|
777
|
-
|
|
778
|
-
### CLI/Skill interoperability test
|
|
779
|
-
|
|
780
|
-
验证任一路径产生的项目都能被另一条路径继续读取和维护。
|
|
781
|
-
|
|
782
|
-
---
|
|
783
|
-
|
|
784
|
-
## 14. 主要风险与缓解
|
|
785
|
-
|
|
786
|
-
| 风险 | 表现 | 缓解 |
|
|
787
|
-
|---|---|---|
|
|
788
|
-
| 同步规则变成额外负担 | 会话频繁维护文档,交付反而变慢 | 只维护承重事实;检查真实使用率;无价值字段删除 |
|
|
789
|
-
| standards 官僚化 | 每个项目被迫生成四个空模板 | 全部可选;不存在即跳过;按项目类型建议 |
|
|
790
|
-
| `bus-check` 过度承诺 | 自然语言规则被错误报告为“已验证” | 只验证结构和可观测事实;其余标记 unverified |
|
|
791
|
-
| `STACK.md` 被误改 | AI 为解决局部问题修改栈声明,继而错误改代码 | 默认只读;重大变化需明确请求和 ADR;代码事实交叉校验 |
|
|
792
|
-
| CLI 反向削弱 Skill | 新能力只通过命令或 manifest 可用 | 每项能力必须有 Skill/manual 等价路径;持续 Skill-only 回归 |
|
|
793
|
-
| CLI 写入破坏项目 | 覆盖项目事实或在冲突中强行合并 | preview、diff、原子写入、文件所有权、fail-closed |
|
|
794
|
-
| SSOT 重复 | AGENTS、standards、工具文件重复正文 | AGENTS 只做路由;不做 emit;兼容桥不复制规则 |
|
|
795
|
-
| 多仓扫描不完整 | 部分仓库未访问却宣称无漂移 | 输出扫描覆盖范围和 unverified 项,不做全局保证 |
|
|
796
|
-
| 项目管理范围回流 | 重新出现成员、Owner、审批矩阵、Dashboard | 以“交付事实,不管人员组织”为产品边界审查每项需求 |
|
|
797
|
-
| 新旧 namespace 混用 | 新骨架误写旧标识,或旧项目被强制迁移 | 新生成内容只用 BuildBeat;读取层保留 legacy 兼容;外部迁移独立授权并做新试点 |
|
|
798
|
-
|
|
799
|
-
---
|
|
800
|
-
|
|
801
|
-
## 15. 发布硬门槛
|
|
802
|
-
|
|
803
|
-
任何宣称“新版协议稳定”或“已规划的 CLI 能力可用”的版本,至少满足:
|
|
804
|
-
|
|
805
|
-
1. 执行同步不变量有明确文档和自动检查;
|
|
806
|
-
2. 完成状态不能在无 evidence 时静默通过 strict 检查;
|
|
807
|
-
3. Gate `N/A` 必须有理由;
|
|
808
|
-
4. standards 缺失不会报错,存在时能检查可观测部分;
|
|
809
|
-
5. `STACK.md` 冲突不会触发自动改栈或自动改代码;
|
|
810
|
-
6. CLI 所有写入可预览,冲突时 fail-closed;
|
|
811
|
-
7. 不安装 CLI 时 Skill 保留完整能力;
|
|
812
|
-
8. CLI 创建或升级的项目可由 Skill-only 环境继续维护;
|
|
813
|
-
9. 项目本地脚本仍可独立运行;
|
|
814
|
-
10. 不引入账号、遥测、远程数据库、团队模型或 `emit`;
|
|
815
|
-
11. 真实项目试点通过,而不仅是模板测试通过;
|
|
816
|
-
12. README、SKILL、AGENTS、示例和 CLI 帮助不存在相互矛盾的定位。
|
|
817
|
-
|
|
818
|
-
2026-08-25 的逐条归档见 [`PHASE4-STABILITY-AUDIT-2026-08-25.md`](PHASE4-STABILITY-AUDIT-2026-08-25.md),真实试点补证见 [`PHASE4-V1.20-PILOT-2026-08-25.md`](PHASE4-V1.20-PILOT-2026-08-25.md),外部分发关闭见 [`WP4.3-RELEASE-EVIDENCE-2026-08-25.md`](WP4.3-RELEASE-EVIDENCE-2026-08-25.md)。12/12 源码/真实试点口径与 scoped registry/供应链证据均已闭合,但仍不替业务项目批准 Gate 或外推生产状态。
|
|
819
|
-
|
|
820
|
-
---
|
|
821
|
-
|
|
822
|
-
## 16. 当前明确删除、暂缓与待决事项
|
|
823
|
-
|
|
824
|
-
### 16.1 从产品规划中删除
|
|
825
|
-
|
|
826
|
-
- `team/TEAM.md`;
|
|
827
|
-
- `team/APPROVALS.md`;
|
|
828
|
-
- Working Agreement、Owner、岗位和审批矩阵;
|
|
829
|
-
- 项目管理和人员协作模块;
|
|
830
|
-
- `emit` 及所有跨工具规则编译;
|
|
831
|
-
- emit 生成物同步和漂移检查;
|
|
832
|
-
- 团队 Dashboard、绩效或人员报告。
|
|
833
|
-
|
|
834
|
-
### 16.2 当前路线图暂不包含
|
|
835
|
-
|
|
836
|
-
- 个人全局默认配置;
|
|
837
|
-
- 多场景 Preset;
|
|
838
|
-
- 团队 Preset;
|
|
839
|
-
- `extends`;
|
|
840
|
-
- 跨项目规则继承和同步;
|
|
841
|
-
- 技术雷达产品化;
|
|
842
|
-
- 远程服务或云端协作。
|
|
843
|
-
|
|
844
|
-
### 16.3 已拍板并执行
|
|
845
|
-
|
|
846
|
-
- legacy npm 包 `solobaton` 保留为已 deprecate 的只读兼容分发 ID,不 unpublish;canonical 分发迁移到 `@haiyangbg/buildbeat`。
|
|
847
|
-
- GitHub 仓库已改名为 `HaiYangBG1/BuildBeat`;旧 URL 重定向、文档、Trusted Publishing 与 `v1.20.0` 首发已回读。
|
|
848
|
-
|
|
849
|
-
后续版本按 [`RELEASING.md`](RELEASING.md) 重新核验可变远端状态。
|
|
850
|
-
|
|
851
|
-
---
|
|
852
|
-
|
|
853
|
-
## 17. 下一步执行清单
|
|
854
|
-
|
|
855
|
-
1. [x] 用本文替换旧《演进规划书》;
|
|
856
|
-
2. [x] 更新 README 中英文定位,去除“团队激活”和 `emit` 等旧方向;
|
|
857
|
-
3. [x] 为执行同步不变量建立独立设计说明和测试用例;
|
|
858
|
-
4. [x] 改造 `SKILL.md` 与 `AGENTS.md` 的开工/收工协议;
|
|
859
|
-
5. [x] 增强 `bus-check`、`verify-status`,再增加新的模板;
|
|
860
|
-
6. [x] 建立 Skill-only compatibility test;
|
|
861
|
-
7. [x] 建立 CLI/Skill 双向 interoperability test;
|
|
862
|
-
8. [x] 在执行同步稳定后实现 Bootstrap/Adopt 的安全写入;
|
|
863
|
-
9. [x] 加入可选 standards 与 ADR;
|
|
864
|
-
10. [x] 完成 schema 2 机械升级、多仓增强、真实版本增量 upgrade 和真实多仓只读刷新;项目卸载继续走手册;
|
|
865
|
-
11. [x] 完成 BuildBeat 本地 namespace、能力矩阵、双语文档与硬门槛归档;
|
|
866
|
-
12. [x] 人工决定 WP4.3 外部标识:`@haiyangbg/buildbeat` 与 `HaiYangBG1/BuildBeat`,Phase 0–3 合并首发 `1.20.0`;
|
|
867
|
-
13. [x] 完成远端改名、push、Trusted Publisher、受保护 `v1.20.0` tag、OIDC npm publish、registry/provenance/签名/隔离安装回读、GitHub Release 与 legacy deprecation;关闭证据见 [`WP4.3-RELEASE-EVIDENCE-2026-08-25.md`](WP4.3-RELEASE-EVIDENCE-2026-08-25.md)。
|
|
868
|
-
|
|
869
|
-
---
|
|
870
|
-
|
|
871
|
-
## 附录 A:本规划的决策来源
|
|
872
|
-
|
|
873
|
-
本规划综合了外部研究原始稿、旧版规划和逐项复核后的用户决策。外部原始稿仅保存在本地 `演进规划书参考的文档/` 目录,不进入公开仓库;可公开复核的 CLI 对照与官方来源见 [`CLI-STRATEGY-2026-08.md`](CLI-STRATEGY-2026-08.md)。
|
|
874
|
-
|
|
875
|
-
源报告中关于团队 Policy Pack、成员/Owner、Preset/extends 和 `emit` 的建议均已被本轮决策明确否决或暂缓;2026-08-24 之后的 CLI 边界以本文开头的执行修订和 [`EXECUTION-PLAN.md`](EXECUTION-PLAN.md) 为准。
|