boardx / boardx/workspacex

AT 验收 B3 + 平台前置:运行/HITL/产物(10 个 WX-T)+ WX-E001/E002/E006/E007/E008/E009 定级

Open
#3,004 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
0
Forks
0
Avg merge
1h 7m
Merged PRs (30d)
969

Description

> 权威方案:`docs/design/standard-capabilities/acceptance-test-plan.md`,分支 `codex/2985-capability-acceptance-plan`(跟踪 #2985)。**先完整读 §1 §3 §11 §12。**
> 基线见 **#2996**,绑定 SHA `938d16bf3a49c4047f42bbc697833cd921d1053e`。

## 范围

方案 §6 Tools 矩阵中「组合」列为 **RUN(5)**、**HITL(3)**、**ART(2)** 的全部行,共 10 个 WX-T。

加 §5 平台前置六项:**WX-E001 runtime-baseline**、**WX-E002 capability-contracts**、**WX-E006 run-artifact-events**、**WX-E007 acceptance-runner**、**WX-E008 migration-router**、**WX-E009 scheduled-run-adapter**。

## ⚠ AT-E007 是元验收,请当重点做

它验的正是「**验收本身会不会假绿**」——反证逐字要求「空测试集合、静态文件或 skipped lane 不能报告通过」。

而 #2991 已经证明方案 §10 的命令**确实会产生零收集假信号**,#2996 又证明 `harness-verify` 的绿灯里 `e2e-full` 常常是 **skipped**。

**AT-E007 的结论直接决定其余 93 项的可信度。**

## 与你相关的已知事实

- **HITL**:本轮实测 TW-A11Y-5 曾因**审批对话框 120 秒没出现**而红,证据包 a11y 树显示线程卡在「正在处理你的请求……」,而侧栏其它线程停在「等待你确认」——**审批路径本身是通的**,是那一个 run 没在 120 秒内到达审批态。
- **Artifact**:durable subtask 产物写回刚由 PR #2962 打通(子任务用自己的 attempt/lease 身份走 native 会话,`allowedTools` 收窄到只有 `wx_artifact_publish`)。
- 记分牌里 P0-3/4/6/7、P1-3/4/5 属 **peer 的统一控制面**,方案明令**禁止旁路新增状态机**让它们变绿。碰到只定级、不修。

## 交付物:状态表 + issue,不是「把它修绿」

对负责的每一项,按方案 §1 的枚举定级并给出**实测证据**(命令 + 真实用例数 + exact SHA):

| 状态 | 含义 |
|---|---|
| `PASS` | 所有适用层级和反证通过(**必须同时有正向与至少一条反向/越权证据**) |
| `PARTIAL` | 组件通过,但真实模型 / DevApp / 视觉 / 权限层尚缺 |
| `BLOCKED` | 实现或环境前置缺失 |
| `FAIL` | 已执行且行为不符合契约 |
| `N/A` | 该层不适用,须写明理由 |

⚠ **缺实现或缺环境 ⇒ `BLOCKED`,不是 `FAIL`。** 每个 `FAIL` / `BLOCKED` 单独开 issue,标题带 AT-* / WX-* ID,并在本 issue 里登记编号。

## 方案本身有两处缺陷(已立案,别照抄)

- **#2991**:§10 的真库命令**收集到零个测试文件**(`No test files found`),而 §11 自己明令「零收集必须失败」。另有三条 api 命令写成裸跑(实测 `no tests` + exit 1),并漏写两个前置(`uv sync --frozen --extra dev`;SQL-TLS 要求 `COMPOSE_PROJECT_NAME` 以 `wsx-` 开头)。
- **§14 把记分牌当红线**:`chat-task-workbench` **按设计就是红的**(`playwright.chat-read.config.ts:210-214`),是能力缺口记分牌不是回归门。**别去修它那 14 条。**

## 判据纪律(本轮已栽六次)

1. **红 ≠ 跑过**:先在日志里找**该测试自己的断言输出**(用例数、期望 vs 实际)。只有 `beforeEach` 报错、`spawn ENOENT`、连接失败、超时这类,一律先判「没跑到」。本轮 19 项 e2e-full 失败里有 **9 项从来没执行过一条断言**。
2. **绿灯 ≠ 跑过**:`harness-verify` 的 `success` 里 `e2e-full` 常常是 **skipped**(见 #2996)。引用绿灯前先确认该 job 不是 skipped。
3. **重跑绿才是判据**,重跑本身不是。
4. **空测试集合 = 失败**:`pnpm --filter` 缺脚本时 exit 0;vitest 过滤器按 **cwd** 解析不按 `--root`。**每条命令核对真实用例数。**
5. `cmd | grep` 的退出码是 grep 的。
6. 已知 #2989:fixture id 撞**全局**主键,**碰撞确定、受害者随机**。看到 `beforeEach` duplicate key 先想到它。
7. 已知 #2968:整族 `agui-bridge-*` 共享固定 30s 预算,**一天内骗过三个不相关的 PR**。

## 进度回写(硬性要求)

**每完成一个子项就在本 issue 回一条评论**,不要攒到最后:已定级哪些、证据是什么、开了哪些 issue。协调者靠这些评论掌握进度,写在别处看不到。

## 边界

- **绝不碰 `/Users/shenyanbin/Documents/workspacex` 根工作区**。独立 worktree,先 `./init.sh`。
- 尽量不起 docker compose 栈;必须起说明理由,跑完 `down -v`。可复用已运行的 `workspacex-kernel-postgres-1`(`127.0.0.1:55432`),独立 `WORKSPACEX_DB`,用完 DROP。
- 修法很小可直接开 PR(正文首行 `Closes #NNNN`);大改先开 issue 写清根因与建议。**不要合并 PR。**

Contributor guide

No contributing guide indexed for this repository

Research direction

Read docs/design/standard-capabilities/acceptance-test-plan.md sections 1, 3, 11, and 12, using baseline SHA 938d16bf3a49c4047f42bbc697833cd921d1053e. Start by verifying harness-verify did not skip e2e-full, then run the applicable acceptance commands and record real assertion counts and output. Done means a status table with evidence, separate issues for each FAIL or BLOCKED item, registration here, and a progress comment after every subitem.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, playwright, postgresql, typescript
Domain
backend-api-design, devops, testing
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.