@haiyangbg/buildbeat 3.3.1 → 4.0.0
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 +19 -0
- package/README.en.md +20 -124
- package/README.md +20 -124
- package/SKILL.md +73 -84
- package/docs/CAPABILITY-MATRIX.md +30 -39
- package/docs/MIGRATION.md +93 -0
- package/docs/README.md +8 -37
- package/docs/RELEASING.md +4 -3
- package/docs/v2/RFC-0001-product-definition.md +3 -0
- package/docs/v2/RFC-0002-domain-model.md +3 -0
- package/docs/v2/RFC-0003-workflow-policy.md +3 -0
- package/docs/v2/SPEC-0001-events-v1.md +3 -0
- package/docs/v2/guide/00-how-to-talk.en.md +12 -58
- package/docs/v2/guide/00-how-to-talk.md +12 -58
- package/docs/v2/guide/01-quickstart.en.md +41 -112
- package/docs/v2/guide/01-quickstart.md +41 -112
- package/docs/v2/guide/02-workflow-guide.en.md +13 -123
- package/docs/v2/guide/02-workflow-guide.md +14 -122
- package/docs/v2/guide/03-policy-guide.en.md +6 -50
- package/docs/v2/guide/03-policy-guide.md +6 -50
- package/docs/v2/guide/04-adapter-guide.en.md +7 -60
- package/docs/v2/guide/04-adapter-guide.md +7 -60
- package/docs/v2/guide/05-worker-contract.en.md +6 -53
- package/docs/v2/guide/05-worker-contract.md +7 -52
- package/docs/v2/guide/06-evidence-guide.en.md +8 -44
- package/docs/v2/guide/06-evidence-guide.md +9 -43
- package/docs/v2/guide/07-approval-guide.en.md +8 -110
- package/docs/v2/guide/07-approval-guide.md +8 -121
- package/docs/v2/guide/09-security-boundaries.en.md +13 -37
- package/docs/v2/guide/09-security-boundaries.md +13 -37
- package/docs/v2/guide/10-recovery.en.md +12 -96
- package/docs/v2/guide/10-recovery.md +12 -96
- package/docs/v2/guide/11-session-handoff.en.md +7 -78
- package/docs/v2/guide/11-session-handoff.md +7 -78
- package/docs/v2/guide/12-without-runtime.en.md +46 -0
- package/docs/v2/guide/12-without-runtime.md +46 -0
- package/docs/v2/guide/README.en.md +16 -36
- package/docs/v2/guide/README.md +16 -36
- package/example/AGENTS.md +15 -69
- package/example/README.md +8 -23
- package/example/delivery/envelope/prompts/builder.md +3 -1
- package/example/delivery/envelope/prompts/fixer.md +3 -1
- package/example/delivery/envelope/prompts/reviewer.md +3 -1
- package/example//346/214/207/346/214/245/345/217/260.md +8 -40
- package/package.json +2 -1
- package/src/v2/adapters/notification-payload.js +40 -0
- package/src/v2/adapters/shell.js +3 -1
- package/src/v2/cli/run-config-check.js +129 -45
- package/src/v2/cli/run.js +821 -252
- package/src/v2/engine/reducer.js +2 -0
- package/src/v2/engine/risk-preset.js +14 -47
- package/src/v2/engine/workflow.js +177 -185
- package/src/v2/evidence/collector.js +12 -1
- package/src/v2/evidence/image.js +346 -0
- package/src/v2/policy/policy.js +219 -286
- package/src/v2/presets/software-delivery.yaml +1 -16
- package/src/v2/runtime/cache.js +22 -1
- package/src/v2/runtime/decisions.js +185 -31
- package/src/v2/runtime/findings.js +4 -1
- package/src/v2/runtime/notify.js +42 -36
- package/src/v2/runtime/orchestrator.js +811 -297
- package/src/v2/runtime/overview.js +163 -34
- package/src/v2/runtime/release.js +233 -0
- package/src/v2/runtime/run-record.js +1 -0
- package/src/v2/workspace/workspace-manager.js +8 -0
- package/templates/v2/AGENTS.md +15 -69
- package/templates/v2/BUILDBEAT.md +2 -13
- package/templates/v2/envelope/prompts/builder.md +3 -1
- package/templates/v2/envelope/prompts/fixer.md +3 -1
- package/templates/v2/envelope/prompts/reviewer.md +3 -1
- package/templates/v2/run-config.example.yaml +7 -5
- package/templates/v2/work.example.md +16 -0
- package/templates/v2//346/214/207/346/214/245/345/217/260.md +8 -40
- package/docs/v2/skill/01-principles.md +0 -26
- package/docs/v2/skill/02-project-layout.md +0 -31
- package/docs/v2/skill/03-collaboration-rules.md +0 -45
- package/docs/v2/skill/04-rhythm-and-rituals.md +0 -104
- package/docs/v2/skill/05-red-lines.md +0 -13
- package/docs/v2/skill/06-bootstrap-and-takeover.md +0 -84
- package/docs/v2/skill/07-templates-and-lessons.md +0 -24
- package/example/.buildbeat/observe.yaml +0 -31
- package/src/v2/observe/observe-config.js +0 -194
- package/src/v2/observe/observe-reducer.js +0 -117
- package/src/v2/observe/observe.js +0 -427
- package/src/v2/presets/observe.yaml +0 -45
- package/src/v2/presets/policies/ui-render-gate.yaml +0 -13
- package/src/v2/presets/release-readback.yaml +0 -36
- package/src/v2/presets/risk/controlled.yaml +0 -39
- package/src/v2/presets/risk/fast.yaml +0 -19
- package/src/v2/presets/risk/release.yaml +0 -21
- package/src/v2/presets/risk/standard.yaml +0 -28
- package/templates/ARCHITECTURE.md +0 -50
- package/templates/contracts/PROTOCOL.md +0 -28
- package/templates/pm/adr/ADR-0000-template.md +0 -25
- package/templates/pm/adr/README.md +0 -15
- package/templates/pm/decisions.md +0 -11
- package/templates/standards/CODE.md +0 -23
- package/templates/standards/DESIGN.md +0 -36
- package/templates/standards/REVIEW.md +0 -20
- package/templates/standards/STACK.md +0 -31
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# <项目名> 跨边界契约 · PROTOCOL(SSOT)
|
|
2
|
-
|
|
3
|
-
> **这是跨仓/跨服务边界唯一的契约入口。** 谁改接口行为,先改这里;谁要接接口,先读这里。
|
|
4
|
-
> 🔴 规则:**协议变更不照单全收** —— 用 实测 / 读对端代码 / 查部署配置 独立核查后再信,并在 §3 登记一行。
|
|
5
|
-
> 🔴 本文件**不含任何 key / 凭据明文**。
|
|
6
|
-
> 同仓内部的"前后端"接口优先用**共享类型/schema 由编译器强制**,不进本文件;本文件只管跨服务、跨语言、跨部署单元的边界。
|
|
7
|
-
|
|
8
|
-
**契约快照对应版本:`<vX.Y.Z>`**(<上线日期>)。
|
|
9
|
-
> 🔴 **线上实况唯一查询口 = `buildbeat observe status --repo .` 与部署平台实查**;本行只标「本快照写就时对应的版本」,其它文档一律不写「当前线上 vX」(AGENTS ⑨)。
|
|
10
|
-
|
|
11
|
-
> 多仓项目在 §1 按边界逐一列出参与的仓与部署单元;版本对齐由 `release-readback` 车道在上线前后回读,不靠目录名或自然语言猜。
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## 1. 当前契约快照
|
|
16
|
-
|
|
17
|
-
### <边界A:服务X ↔ 服务Y>
|
|
18
|
-
| 端点/字段 | 行为 | 备注 |
|
|
19
|
-
|---|---|---|
|
|
20
|
-
| | | |
|
|
21
|
-
|
|
22
|
-
## 2. 🔴 当前关键对齐点(开工前各域必须一致)
|
|
23
|
-
1. <对齐点>
|
|
24
|
-
|
|
25
|
-
## 3. 契约变更记录(changelog · 倒序)
|
|
26
|
-
| 版本 | 日期 | 变更 | 独立核查 |
|
|
27
|
-
|---|---|---|---|
|
|
28
|
-
| | | | <怎么核的:实测命令/代码行/配置查询> |
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# ADR-0000: <标题>
|
|
2
|
-
|
|
3
|
-
- Status: Proposed
|
|
4
|
-
- Date: <yyyy-mm-dd>
|
|
5
|
-
- Superseded by: n/a
|
|
6
|
-
|
|
7
|
-
## Context
|
|
8
|
-
|
|
9
|
-
<为什么现在必须做这个长期技术决定>
|
|
10
|
-
|
|
11
|
-
## Decision
|
|
12
|
-
|
|
13
|
-
<最终选择及其边界>
|
|
14
|
-
|
|
15
|
-
## Consequences
|
|
16
|
-
|
|
17
|
-
<正向、负向与回滚影响>
|
|
18
|
-
|
|
19
|
-
## Alternatives considered
|
|
20
|
-
|
|
21
|
-
<方案 A / B / C 及未选原因>
|
|
22
|
-
|
|
23
|
-
## Related contracts / work packages / evidence
|
|
24
|
-
|
|
25
|
-
<工作包 / 契约 / evidence 路径或 n/a>
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# ADR 使用约定
|
|
2
|
-
|
|
3
|
-
ADR 只承载长期、难回退的技术决定;普通产品拍板、门前决策卡、短期可逆选择继续写在 `pm/decisions.md`。
|
|
4
|
-
|
|
5
|
-
满足任一条件时建议从 `ADR-0000-template.md` 复制一份新文件:
|
|
6
|
-
|
|
7
|
-
1. 改变核心运行时、框架、数据库或部署方式;
|
|
8
|
-
2. 改变跨服务或跨仓架构;
|
|
9
|
-
3. 改变关键数据模型或公共接口策略;
|
|
10
|
-
4. 形成长期、难以回退的技术约束;
|
|
11
|
-
5. 推翻或替代此前 ADR。
|
|
12
|
-
|
|
13
|
-
命名使用 `ADR-NNNN-kebab-case.md`,编号单调递增。Status 只允许 `Proposed / Accepted / Rejected / Superseded`。若为 Superseded,必须填写一个存在的仓库根相对路径,例如 `pm/adr/ADR-0002-new-choice.md`;新 ADR 解释替代原因,旧 ADR 保留不删除。
|
|
14
|
-
|
|
15
|
-
ADR 收敛后仍在 `pm/decisions.md` 追加一行索引,指向 ADR 和实际回写落点;ADR 不管理团队成员、审批人或组织权限。
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# decisions — 拍板台账(全工作区唯一决策单点)
|
|
2
|
-
|
|
3
|
-
> **规则(AGENTS ⑨ 单点事实)**:一个真实决策包收敛后,**第一动作 = 在此追加一行**(倒序),然后才去回写受影响的 SSOT(契约/设计稿/intent/plan);「回写」列登记落点,没回写完 = 欠账可见。单个独立决定也可以是一项决策包。Run 级批准不进这里,它们由内核落在各 Work 的 `decisions.jsonl`。
|
|
4
|
-
> 验收项先分成「人必须取舍的独立变量」与「由已选变量/现有契约推导的约束」:只记录前者;后者直接回写并随候选验收。`3/14 → 11/14 → 14/14` 之类部分进度只留在 Work 的 intent/plan 草稿或门前决策卡里,不得制造三条永久拍板。
|
|
5
|
-
> 决策单元沿用决策卡的包ID;用户分轮回答或要求解释时不换号,直到整包收敛后在本表出现一次。
|
|
6
|
-
> 改变核心技术栈、跨仓架构、关键数据模型或长期难回退约束时,按 pm/adr/README.md 建独立 ADR;本表仍追加一行 ADR 索引与实际回写落点。未启用 ADR 目录时不因此报错。
|
|
7
|
-
> 「拍板人」单人项目就固定写你的名/代号;多人或要审计时(合并决定与上线关窗未必同一人批),谁批的由此可查。
|
|
8
|
-
|
|
9
|
-
| 日期 | 拍板人 | 决策包 | 回写(落点 → 状态) |
|
|
10
|
-
|---|---|---|---|
|
|
11
|
-
| <yyyy-mm-dd> | <谁> | 【<包ID>】<默认 2–5 个真实取舍的收敛结论;单项决定直接写一句> | <文件/落点> → ✅/⏳ |
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# CODE.md — <项目名> 代码与安全规范
|
|
2
|
-
|
|
3
|
-
> **Optional**: 本文件由项目拥有;缺失时 BuildBeat 直接跳过,不作为告警或错误。
|
|
4
|
-
> **AI write boundary**: 默认只读;普通需求、修构建或装依赖不得顺手改规范,只有用户明确要求或批准规范变更时才可修改。
|
|
5
|
-
> **Status**: Draft
|
|
6
|
-
|
|
7
|
-
## 项目约定
|
|
8
|
-
|
|
9
|
-
- 代码组织与命名:<代码组织与命名约定>
|
|
10
|
-
- 项目特有禁止事项:<项目特有禁止事项>
|
|
11
|
-
|
|
12
|
-
## Rules
|
|
13
|
-
|
|
14
|
-
- `CODE-MUST-001`: Secret、访问令牌、真实身份数据和生产配置值不得进入 Git、日志、测试夹具或交付证据。
|
|
15
|
-
- `CODE-MUST-002`: 鉴权、租户隔离、输入校验、持久化和不可逆副作用必须 fail-closed,并有对应测试或显式未验证边界。
|
|
16
|
-
- `CODE-MUST-003`: 公共接口、数据模型或兼容性语义变化必须先同步契约;不得用实现细节偷偷改写已冻结行为。
|
|
17
|
-
- `CODE-MUST-004`: 新依赖必须核对来源、许可证、锁文件和已知安全风险;不得绕过项目既有供应链检查。
|
|
18
|
-
- `CODE-SHOULD-001`: 错误处理应保留可定位上下文,但不得回显 Secret、个人数据或内部凭据值。
|
|
19
|
-
- `CODE-MAY-001`: 不改变外部语义的局部风格改进可随工作包完成,但不得制造与现有代码库不一致的新体系。
|
|
20
|
-
|
|
21
|
-
## 偏离规则
|
|
22
|
-
|
|
23
|
-
MUST 偏离必须在人批的转换(plan / merge / release)前形成真实决策;SHOULD 偏离需在 Review 证据中写明理由;MAY 不构成阻断项。
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# DESIGN.md — <项目名> UI / 视觉 / 交互规范
|
|
2
|
-
|
|
3
|
-
> **Optional**: 仅有 UI、视觉或交互交付的项目按需创建;缺失时 BuildBeat 直接跳过,不作为告警或错误。
|
|
4
|
-
> **AI write boundary**: 默认只读;普通页面实现不得顺手重写设计系统,只有用户明确批准设计语言变化或项目首次确认本规范时才可修改。
|
|
5
|
-
> **Status**: Draft
|
|
6
|
-
|
|
7
|
-
## Principles
|
|
8
|
-
|
|
9
|
-
<设计原则>
|
|
10
|
-
|
|
11
|
-
## Tokens
|
|
12
|
-
|
|
13
|
-
<排版 / 色彩 / 间距 token 来源>
|
|
14
|
-
|
|
15
|
-
## Components
|
|
16
|
-
|
|
17
|
-
<核心组件与复用边界>
|
|
18
|
-
|
|
19
|
-
## Interaction Patterns
|
|
20
|
-
|
|
21
|
-
- `DESIGN-MUST-001`: 关键操作提供即时、明确且可访问的反馈;不得只靠颜色区分状态。
|
|
22
|
-
- `DESIGN-MUST-002`: 上线界面不得出现调试信息、实现说明、mock 标记或写给开发者的元注释。
|
|
23
|
-
|
|
24
|
-
## States
|
|
25
|
-
|
|
26
|
-
- `DESIGN-MUST-003`: 每个可见流程必须处理 loading、empty、error、disabled 和适用的移动端状态。
|
|
27
|
-
|
|
28
|
-
## Accessibility
|
|
29
|
-
|
|
30
|
-
- `DESIGN-MUST-004`: 键盘路径、焦点、语义标签、对比度和减弱动态效果必须进入真渲染走查。
|
|
31
|
-
|
|
32
|
-
## Project-specific exceptions
|
|
33
|
-
|
|
34
|
-
<项目特有例外>
|
|
35
|
-
|
|
36
|
-
设计拍板与上线前终签以真渲染可点结果为准;静态稿或规范数值不能替代实际走查。
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# REVIEW.md — <项目名> Review 规范
|
|
2
|
-
|
|
3
|
-
> **Optional**: 本文件由项目拥有;缺失时 BuildBeat 直接跳过,不作为告警或错误。
|
|
4
|
-
> **AI write boundary**: 默认只读;只在项目 Review 口径被明确改变时修改,不用它记录成员、岗位、响应 SLA 或审批人。
|
|
5
|
-
> **Status**: Draft
|
|
6
|
-
|
|
7
|
-
## 最小检查维度
|
|
8
|
-
|
|
9
|
-
- `REVIEW-MUST-001`: 核对规格、非目标、验收条件与实现行为,不以“测试绿”替代需求覆盖。
|
|
10
|
-
- `REVIEW-MUST-002`: 核对契约、架构、数据与兼容性变化是否同步,并明确不可外推的未验证范围。
|
|
11
|
-
- `REVIEW-MUST-003`: 核对受影响自动化测试、真渲染走查和 evidence;完成声明必须可追溯到候选与证据。
|
|
12
|
-
- `REVIEW-MUST-004`: 核对 Secret、鉴权、租户、输入、持久化、依赖与不可逆副作用风险。
|
|
13
|
-
- `REVIEW-SHOULD-001`: 识别不必要复杂度、重复抽象、不可维护分支和缺少回滚路径的设计。
|
|
14
|
-
- `REVIEW-SHOULD-002`: 核对 intent / plan、decisions 与交付候选一致,不把旧报告复用于变化后的候选。
|
|
15
|
-
|
|
16
|
-
## 项目增量
|
|
17
|
-
|
|
18
|
-
<项目特有 Review 条件>
|
|
19
|
-
|
|
20
|
-
review 何时跑、跑几轮、哪些 finding 阻断,以 run 配置(`reviewTriage`、`budgets`)与 `AGENTS.md` 为准,本文件不新建第二套流程。
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# STACK.md — <项目名> 技术栈约束
|
|
2
|
-
|
|
3
|
-
> **Optional**: 本文件由项目拥有;缺失时 BuildBeat 直接跳过,不作为告警或错误。
|
|
4
|
-
> **AI write boundary**: 默认只读;首次 Bootstrap 只能依据可观测事实起草,用户确认或明确要求技术栈变化后才可修改已确认内容。
|
|
5
|
-
> **Status**: Draft
|
|
6
|
-
|
|
7
|
-
## 声明
|
|
8
|
-
|
|
9
|
-
| 维度 | 项目约束 | 事实来源 |
|
|
10
|
-
|---|---|---|
|
|
11
|
-
| Runtime | <运行时及版本约束> | 版本文件 / 包清单 / CI |
|
|
12
|
-
| 包管理器 | <包管理器及 lockfile> | lockfile / 包清单 |
|
|
13
|
-
| 语言与框架 | <主要语言与框架> | 依赖与源码入口 |
|
|
14
|
-
| 数据设施 | <数据库 / 缓存 / 消息设施> | 配置 schema / 部署配置 |
|
|
15
|
-
| 部署 | <部署平台 / 容器基线> | Dockerfile / 平台配置 |
|
|
16
|
-
| CI 与测试 | <CI 与测试命令> | CI workflow / 测试配置 |
|
|
17
|
-
| 供应链 | <许可证 / 供应链约束> | LICENSE / lockfile / 安全策略 |
|
|
18
|
-
|
|
19
|
-
## 可核对事实
|
|
20
|
-
|
|
21
|
-
上表每一行都要能指回一个仓库事实(`.nvmrc` / `engines.node`、lockfile 文件名、Dockerfile `FROM` 镜像等)。不确定的值保留占位符或标 `n/a`,不猜。Run 配置里的 `requires:`(command / probe)是这些事实的可执行形态,起跑前 fail-closed。
|
|
22
|
-
|
|
23
|
-
## Rules
|
|
24
|
-
|
|
25
|
-
- `STACK-MUST-001`: 声明状态与 package、lockfile、版本文件、容器和部署配置等可观测状态冲突时,只报告漂移,不自动改代码或本文件。
|
|
26
|
-
- `STACK-MUST-002`: 更换核心运行时、框架、数据库、包管理器或部署平台前,必须建立 ADR,并同步 `contracts/PROTOCOL.md` 中受影响的跨边界事实。
|
|
27
|
-
- `STACK-SHOULD-001`: 版本约束应尽量指向一个可重复核对的仓库事实,无法确认的内容保留为 Draft,不靠猜测补齐。
|
|
28
|
-
|
|
29
|
-
## 变更记录
|
|
30
|
-
|
|
31
|
-
确认后将头部 Status 改为 `Confirmed`;后续变化在 `pm/decisions.md` 留索引,满足 ADR 判据时同时新增 ADR。
|