@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.
Files changed (43) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/docs/CAPABILITY-MATRIX.md +2 -2
  3. package/docs/CLI.md +3 -2
  4. package/docs/README.md +3 -1
  5. package/docs/RELEASING.md +1 -1
  6. package/example/.buildbeat/manifest.json +1 -1
  7. package/package.json +14 -1
  8. 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
  9. package/docs/CLI-PILOT-2026-08-23.md +0 -25
  10. package/docs/CLI-STRATEGY-2026-08.md +0 -55
  11. package/docs/EXECUTION-PLAN.md +0 -487
  12. package/docs/PHASE1-PILOT-2026-08-24.md +0 -32
  13. package/docs/PHASE2-BUILDBEAT-PILOT-2026-08-25.md +0 -75
  14. package/docs/PHASE2-PILOT-2026-08-25.md +0 -88
  15. package/docs/PHASE2-PILOT-PREFLIGHT-2026-08-25.md +0 -42
  16. package/docs/PHASE4-STABILITY-AUDIT-2026-08-25.md +0 -35
  17. package/docs/PHASE4-V1.20-PILOT-2026-08-25.md +0 -56
  18. package/docs/ROADMAP.md +0 -875
  19. package/docs/V1.21-RELEASE-EVIDENCE-2026-08-25.md +0 -55
  20. package/docs/V2-D2-DECISION-CARD.md +0 -37
  21. package/docs/V2-DECISIONS.md +0 -11
  22. package/docs/V2-ITERATION-01.md +0 -60
  23. package/docs/V2-ITERATION-02.md +0 -32
  24. package/docs/V2-ITERATION-03.md +0 -30
  25. package/docs/V2-ITERATION-04.md +0 -29
  26. package/docs/V2-ITERATION-05.md +0 -20
  27. package/docs/V2-ITERATION-06.md +0 -18
  28. package/docs/V2-ITERATION-07.md +0 -36
  29. package/docs/V2-ITERATION-08.md +0 -62
  30. package/docs/V2-PLAN.md +0 -335
  31. package/docs/V2-PROPOSAL.md +0 -319
  32. package/docs/V2.0.0-BETA.1-RELEASE-EVIDENCE-2026-08-28.md +0 -41
  33. package/docs/V2.0.0-BETA.2-RELEASE-EVIDENCE-2026-08-28.md +0 -8
  34. package/docs/V2.0.0-BETA.3-RELEASE-EVIDENCE-2026-09-01.md +0 -8
  35. package/docs/V2.0.0-BETA.4-RELEASE-EVIDENCE-2026-09-03.md +0 -9
  36. package/docs/V2.0.0-BETA.5-RELEASE-EVIDENCE-2026-09-05.md +0 -10
  37. package/docs/V2.0.0-RELEASE-EVIDENCE-2026-09-05.md +0 -11
  38. package/docs/WP4.3-RELEASE-EVIDENCE-2026-08-25.md +0 -73
  39. package/docs/v2/M1-ACCEPTANCE-2026-08-28.md +0 -38
  40. package/docs/v2/M2-DOD-2026-08-28.md +0 -34
  41. package/docs/v2/M4-EXTERNAL-PILOT-2026-08-28.md +0 -46
  42. package/docs/v2/M4-PILOT-APP-2026-08-28.md +0 -44
  43. package/docs/v2/M4-SELFHOST-2026-08-28.md +0 -53
@@ -1,46 +0,0 @@
1
- # M4 外部试点证据:pilot-auth 数仓 CLI 标识重命名(RUN-PILOT-EXT-01)
2
-
3
- > 日期:2026-08-28
4
- > 项目:`<试点工作区>/pilot-backend`(真实业务单仓:Java 多模块 + Node portal 测试 + 真实远端)
5
- > 任务:项目所有者点名的真实需求 `LXJ-AUTH-PILOT-EXT-01`——数仓 CLI 公有客户端标识 `client-b-old` 精确重命名为 `client-b`(meta 仓 `pm/decisions.md` 当日拍板行)
6
- > 结论上限:本地候选 + 本地真实测试;不含生产切换(提案 §4 硬门未授权)。**Run 停在合并决定,等待项目所有者。**
7
-
8
- ## 1. 为什么这个试点有分量
9
-
10
- 同一需求今天早些时候已被**人工方式**做过一遍:候选散落在两个仓的未提交工作树里,与无关改动混杂,当日人工 L3 证据自记"没有 clean candidate hash,不满足 review-ready"。本 Run 从**已提交干净基线** `a99d2ad1`(仍是 `client-b-old`)出发,由 v2 Runner 驱动真实 Agent 独立重做,产出可审查的干净 candidate——这正是 M-1 卡点(人是节拍器、无干净候选)的正面对照。人工候选未被触碰,不倒算、不回放。
11
-
12
- ## 2. 流程事实(5.2 分钟全自动到合并决定)
13
-
14
- | 事实 | 值 |
15
- |---|---|
16
- | Workers | **codex CLI 经 Shell Adapter**(厂商中立实证:Claude CLI 未登录不可用,换 codex 零运行时改动,裁决 #5) |
17
- | builder | `codex exec -s workspace-write`(沙箱内只改文件;commit 由包装脚本机械执行);15 文件 +68/−33,**全部在 `pilot-auth/` 内**(allowedPaths 强制) |
18
- | verify | `test-jdk17.sh`(Surefire 全量)+ portal node 测试 + 验收 grep(`client-b-old` 零残留、`client-b` 在册)——一次全绿,退出码回读 |
19
- | review | `codex exec -s read-only` fresh-context 只读审查,结构化信封 `{"status":"succeeded","findings":[]}` |
20
- | candidate | `f97f122`(Git 回读固定,位于 `run/RUN-PILOT-EXT-01` 分支,未合并) |
21
- | UI 证据 | portal 文档页 Chrome headless 真渲染截图(页面源码含 `client-b`、无 `client-b-old`),digest 登记为 screenshot 证据(seq 29);`ui-render-merge-gate` 要求批准前必须存在 |
22
- | 治理 | `standard` 预设:plan/intent digest 绑定接受(`A-WORK-PILOT-EXT-01-1/2`,by haiyangbg)为 build 前置门;env 白名单(宿主凭据不达 codex 子进程);真实远端 上 worktree 推送保护生效 |
23
- | 台账 | 29 事件链校验通过;metrics:自动到达 `WAITING_HUMAN` 100%、证据完整率 100%(3/3 步) |
24
- | 成本 | codex token/费用本轮无采集口径,记 `UNVERIFIED` |
25
-
26
- ## 3. 明确的边界
27
-
28
- - **跨仓未绑定**:契约文件(meta 仓 `contracts/PROTOCOL.md`)不在本单仓 Run 内——MVP 单仓限制(卡点 2/4 的已知项),契约同步由既有人工候选/后续流程处置;
29
- - fixer 未配置真实 Agent(verify 若失败将停为 attended handoff)——本轮未触发;
30
- - 不 merge、不 push、不部署、不改生产 `sys_client`;生产切换硬门(提案 §4)未授权、未执行。
31
-
32
- ## 4. 合并决定(已批准)
33
-
34
- 项目所有者于 2026-08-28 批准:`D-RUN-PILOT-EXT-01-1`(merge-evidence-floor 与 ui-render-merge-gate 在盖章瞬间均为 PASS)。Run 终态 `SUCCEEDED`,压实为 `delivery/work/WORK-PILOT-EXT-01/runs/RUN-PILOT-EXT-01/run-record.json`,最终台账 34 事件链校验通过;worktree 已清理,candidate `f97f122` 保留在 `run/RUN-PILOT-EXT-01` 分支可达。
35
-
36
- 批准仅表示 merge-ready;将候选并入工作分支、与既有人工候选合流、契约同步与生产切换(提案 §4 硬门)均为后续人工决定,本 Run 未执行任何一项。
37
-
38
- ## 4.1 生产切换(2026-08-28 当日晚,所有者逐步授权后完成)
39
-
40
- candidate `f97f122` 经 cherry-pick 到生产血统(`origin/master`,规避了本地分支上未批准的 registry 在途工作与已部署内网文档的双向分叉)→ 全量验证(Surefire 全套 + Portal 29/29 + 零残留)→ 按提案 §4 硬门完成生产切换:只读盘点(唯一 `client-b-old` 行 / 零 Nacos 覆盖 / 零真实消费方登录记录)→ **有界双行窗口**破解新旧健康门顺序死锁(先 INSERT `client-b` 镜像行 → 云效 Run #31 双批发布 SUCCESS → 软删旧行收口)→ L4 全绿(`client-b` 200 ×2、`client-b-old` 400 ×2、`/index` 200 全程无扰动)。证据:meta 仓 `pm/archive/登录二期/evidence/2026-08-28-LXJ-AUTH-PILOT-EXT-01-生产切换.md`。
41
-
42
- ## 5. 对 M4 退出指标的回填
43
-
44
- - 试点 Run 自动到达 `WAITING_HUMAN`:**2/2(self-host + 外部各一)= 100% ≥ 70%** ✓;
45
- - 其余五项维持 [`M4-SELFHOST-2026-08-28.md`](M4-SELFHOST-2026-08-28.md) §4 的达标结论,本 Run 数据同向(完整率 100%、stale 0、超预算 0、Reviewer 写入 0、可追溯 100%)。
46
- - **口径提示**:D6 原文为外部试点 ≥2 个项目(有测试单仓 + 含 UI 各一);本轮为 **1 个项目同时覆盖两个验收面**(所有者明示"文档 web 页面可以理解为 UI")。以此满足 D6、或再补一个独立项目,由项目所有者定夺——定夺后 M4 正式关闭。
@@ -1,44 +0,0 @@
1
- # M4 外部试点 2:pilot-app Bug 看板积压批处理(RUN-CHICK-0037 / 0018)
2
-
3
- > 日期:2026-08-28
4
- > 项目:`<试点工作区>/pilot-frontend`(Next.js 生产应用,基线 `9d571b3`)
5
- > 任务来源:项目所有者点名"异常看板积压了很多 bug,可以去处理一下"。积压读取自钉钉 AI 表格(pilot-app base / Bug看板表,feedback 同步目标):39 条中 **13 未修复 + 2 待定**(P1×3 / P2×4 / P3×8)
6
- > 结论上限:本地候选停在合并决定;不 merge、不 push、不发布;未回写钉钉看板状态。
7
-
8
- ## 1. 本批交付(2 个 Run,全部由 codex Worker 经 Shell Adapter 驱动)
9
-
10
- ### RUN-CHICK-0037(BUG-测试-0037,P3:CSV 下载文件名未按生成标题)
11
-
12
- **这一单完整走出了 Build–Verify–Fix–Review 自动闭环,review 环真实咬合:**
13
-
14
- 1. builder(codex)产出候选 `108553f`(抽 `lib/download-filename.ts` 纯函数 + 单测 + CHANGELOG);verify(`npm ci` + type-check + playwright unit)一轮绿;
15
- 2. **fresh-context 只读 reviewer 阻断**:P1(命名口径未真正与 .md 下载一致、回退语义漂移)+ P2(既有 E2E 断言 `data-*.csv` 必挂——verify 只跑 unit 项目漏掉的,reviewer 抓到了);
16
- 3. `findings-blocking` 路由 fix 步 → 配置 codex fixer(prompt 附最新 findings JSON)→ 修复为两处下载**共用同一派生函数**、更新 E2E 断言;
17
- 4. verify 二轮绿 → review 二轮零 findings → 停在合并决定。candidate `b866d5c`(5 文件)。
18
-
19
- ### RUN-CHICK-0018(BUG-测试-0018,P3:选角色后输入框仍显示「默认助手」)
20
-
21
- 一轮全绿。builder 给出的根因判断质量很高:① `Composer.currentName` 靠 `systemPrompt` 文本反查名称、未保存所选专家元数据(同正文/广场专家场景显示错误);② `newConversation()` 复用空对话时提前返回、跳过默认专家预选。修复在传递链真实断点(`lib/store.ts` 保存元数据 + `lib/role-label.ts` 纯函数 + 单测 57 行)。candidate `fa48729`(7 文件)。review 零 findings。
22
-
23
- ## 2. 运行时事实
24
-
25
- - metrics(本仓):runs 2,自动到达 `WAITING_HUMAN` 100%,证据完整率 100%(9/9 步),fix 轮次分布 {0×1, 1×1},stale 0、超预算 0;
26
- - worktree 隔离 + `npm ci` 仓内自举(主检出的残缺 node_modules 未被触碰);allowedPaths(components/lib/tests/types/CHANGELOG.md)无越界;env 白名单;
27
- - 中途一次 attended handoff(fix 无 adapter)由受托会话批准 `enter-fix`(`D-RUN-CHICK-0037-1`,by claude-delegated,落账可查)后配置 fixer 恢复——攻防记录:**verify 只跑 unit 项目的盲区被 reviewer 补上**,后续批次可考虑把受影响 E2E spec 列入 verify。
28
-
29
- ## 3. 积压分诊(余下 13 条)
30
-
31
- | 组 | 条目 | 处置建议 |
32
- |---|---|---|
33
- | P1×3(0006 生成中断/Key 权限、0029 上传报登录失效、0034 生成超时) | 涉及模型网关/登录态/生产配置,需生产侧排查与授权 | 不适合无授权自动修;建议单独立项(可先只读盘点日志) |
34
- | P2×2 未修复(0033 切换模版重复展示、0035 复核未真正调用模型) | 前端/调用链逻辑,可自动化 | 下一批 v2 Run 候选 |
35
- | P2×2 待定(0012 听写无失败提示、0026 我的模板边界) | 产品语义待定 | 需所有者先定语义再修 |
36
- | P3×6(0005 下载入口格式、0017 loading 提示、0030 数字居中、0032 hover 抖动、0038 模板重复校验、0039 技能错误展示) | 小改动,部分含 UI(0030/0032 适合截图门) | 可按批继续 |
37
-
38
- ## 4. 待项目所有者
39
-
40
- inbox 两单终态决定:`RUN-CHICK-0037`(candidate `b866d5c`)与 `RUN-CHICK-0018`(candidate `fa48729`)。批准后 merge、发布与钉钉看板状态回写仍是人工/另行授权动作。
41
-
42
- ## 5. 对 M4 的意义
43
-
44
- 外部试点项目数达到 **2(pilot-backend + pilot-app)**,D6 原文口径满足;六退出指标在两项目上同向达标(试点 Run 自动到达率 4/4)。M4 就此关闭。
@@ -1,53 +0,0 @@
1
- # M4 Self-host 试点证据:BuildBeat builds BuildBeat
2
-
3
- > 日期:2026-08-28
4
- > Run:`RUN-SELF-001`(Work:`WORK-SELF-001`,工件与 run-config 见 [`delivery/work/WORK-SELF-001/`](../../delivery/work/WORK-SELF-001/intent.md))
5
- > 结论上限:脚本 Worker + 真实 Runner + 真实仓库;验证的是运行时与协议,不是 Agent 智能。**Run 停在 `WAITING_HUMAN`(合并决定),未 merge、未 push,等待项目所有者在 inbox 处置。**
6
-
7
- ## 1. 流程事实(全部由 Runner 回读)
8
-
9
- - 基线 `daf9d79`,`standard` 风险预设(plan 接受为 build 前置门);intent/plan 均以 digest 绑定接受(`A-WORK-SELF-001-1/2`)。
10
- - `build → verify → review` 全部一次通过;candidate `59673e2` 由 Git 回读固定,位于 `run/RUN-SELF-001` 分支(未合并,主分支无此变更)。
11
- - verify 运行本仓库真实测试(`node --test tests/v2-event-ledger.test.js tests/v2-reducer.test.js`),退出码 0 回读入证据日志。
12
- - review 只读、fresh 进程、结构化 findings 信封(空 findings)落 Evidence。
13
- - 事件台账 28 条,`replay` 报告 `chain OK: 28 events verified (digest/prev/seq)`。
14
- - `allowedPaths` 限定 `delivery/work/WORK-SELF-001`,Worker 未越界。
15
-
16
- ## 2. 真实仓库特有的验证点
17
-
18
- - **推送保护实测**:本仓库有真实 remote(origin=GitHub)。在 run worktree 内执行 `git push origin HEAD`:
19
-
20
- ```text
21
- git: 'remote-protected' is not a git command.
22
- fatal: remote helper 'protected' aborted session
23
- ```
24
-
25
- 能力级失败(worktree 级 pushurl 覆盖),非提示词拦截;主检出的 remote 配置不受影响。
26
- - **试点还抓到一个真实缺陷**:YAML 子集解析器把列表项中带冒号的引号标量误判为 map,导致 run-config 无法加载。已修复(引号开头的列表项一律按标量解析)并加永久回归(`tests/v2-workflow.test.js`)——这正是 self-host 试点存在的意义。
27
-
28
- ## 3. inbox 快照(等待项目所有者)
29
-
30
- ```text
31
- RUN-SELF-001 (work WORK-SELF-001) [final-decision] enter-wait-merge
32
- candidate: 59673e2faa19d3aa67339837f16f0db44d6a29cb
33
- planDigest: sha256:a0e3e86f…
34
- reason: terminal step requires a human decision
35
- ```
36
-
37
- 处置方式:`node src/v2/cli/run.js approve --repo . --run RUN-SELF-001 --transition enter-wait-merge --config delivery/work/WORK-SELF-001/run-config.yaml`(或 `reject`)。批准仅表示 merge-ready;merge 本身仍是人工外部动作。
38
-
39
- ## 4. M4 退出指标核验
40
-
41
- | 指标 | 目标 | 当前 | 依据 |
42
- |---|---:|---|---|
43
- | 状态转换可追溯 | 100% | **100%** | 每次转换必有 TRANSITION + POLICY_EVALUATED 事件;`replay` 链校验 28/28 |
44
- | stale Approval 被复用 | 0 | **0** | reducer + approve 双侧强制;eval `stale-approval` |
45
- | 超预算继续运行 | 0 | **0** | maxAttempts / 指纹 / 超时全停;`v2-invariants` / eval `no-progress` |
46
- | 试点 Run 自动到达 `WAITING_HUMAN` | ≥70% | **1/1(100%)** | 仅 self-host 分母;**外部试点 ≥2 未跑,该行整体 `UNVERIFIED` 待 T5(项目所有者点名)** |
47
- | 证据完整率 | ≥95% | **100%** | `metrics`:5/5 finished steps 携带回读证据 |
48
- | Reviewer 自行修改代码 | 0 | **0** | 只读强制 + eval `reviewer-readonly` |
49
-
50
- ## 5. 边界
51
-
52
- - 本次 accept 与 run 启动由受托会话以 `claude-delegated` 身份执行并如实落账;**合并决定未被代行**,留在 inbox。
53
- - 外部试点(D6:试点工作区内有测试的单仓项目 + 含 UI 项目)待项目所有者点名与授权后执行,指标回填前 M4 不宣称关闭。