Files
mnote/design/07-ai/reference/7-35-reasonix-browser-test-contract-v1.md
T
lix-2026 1882db7681 收口 MNote P0 P1 P2 审查尾项
- 归档 OnlyOffice live bridge、Page AI、mindmap、design governance 与相关 bug 条目
- 补齐 MinerU OCR 后端 runtime 合同与 smoke/test 基线
- 收口 ChatOnly/Doubao、ObjectIdentity、Page Aggregate compat 与 runtime owner 文档口径

验证:
- cargo test --manifest-path rust/Cargo.toml -p mnote-web local_ocr -- --test-threads=1
- cargo test --manifest-path rust/Cargo.toml -p mnote-web onlyoffice_bridge -- --test-threads=1
- git diff --check
- git diff --cached --check
- codegraph index . --force && codegraph status .
- codegraph sync . && codegraph status .
2026-06-01 09:29:12 +08:00

151 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Reasonix Browser Test Contract v1
## 状态
- 状态:reference
- OwnerAI runtime / browser verification
- 背景:Reasonix 已能作为独立辅助 agent 执行只读审计,但浏览器验收若只输出自然语言结论,主控仍需重测,无法稳定节省 token。
## 目标
把 Reasonix 浏览器测试从“描述性结论”收口为“可审计证据包”。Codex/Hermes 主控只接受带截图、日志、网络、断言和环境前置条件的 Reasonix 浏览器结论。
## 非目标
- 不让 Reasonix 直接裁决业务 bug 是否完成。
- 不让 Reasonix 修改源码、提交 git、回滚文件。
- 不把浏览器测试结论写成长期产品事实源;长期事实仍以 bug/design/checklist 和真实验证日志为准。
## 合同
每个 Reasonix 浏览器测试任务必须产出以下文件:
```text
result.json
final.md
process-handoff.md
process-handoff.json
artifacts/
screenshots/
console.json
network.json
trace-or-steps.md
```
`result.json` 至少包含:
```json
{
"status": "passed | failed | blocked",
"run_id": "reasonix-...",
"target_url": "http://127.0.0.1:3000",
"environment": {
"dev_server_restarted": true,
"cache_cleared": true,
"browser_context": "isolated",
"auth_mode": "test-account",
"workspace_root": "/tmp/..."
},
"steps": [
{
"name": "upload first attachment",
"action": "drag file into editor",
"screenshot": "artifacts/screenshots/01-upload-first.png"
}
],
"assertions": [
{
"name": "attachment opens in tab after second upload",
"expected": "tab count increases and active tab kind is resource",
"actual": "click produced no tab change",
"passed": false,
"evidence": "artifacts/screenshots/04-click-after-second-upload.png"
}
],
"console_errors": [],
"network_failures": [],
"screenshots": [],
"modified_files": []
}
```
## 浏览器前置条件
- 测试前重启 `npm run dev:hot` 或复用主控明确提供的已重启服务。
- 使用全新 isolated browser context;清空 cookies、localStorage、sessionStorage、IndexedDB、Cache Storage。
- 默认使用 `http://127.0.0.1:3000/auth` 的测试账号快速登录。
- local-first 测试必须创建临时页面或临时 workspace,并记录路径。
- 所有上传文件路径必须记录,不能只写“上传文件”。
## 截图要求
用户可见 bug 至少保留:
- 初始状态截图。
- 关键动作后截图。
- 失败状态截图。
- 修复验证时的通过状态截图。
如果 bug 涉及 “点击无反应”,必须同时记录:
- 点击前 tab 列表。
- 点击后 tab 列表。
- 点击目标节点截图。
- console/network。
## 0524 试验集映射
`bugs/0524.md` 可作为第一批协同测试样本:
1. 我的空间拖入附件路径错误:
- 验收:上传后文件实际路径应在当前页面 bundle/下级,而不是与主文件夹同级。
- Reasonix 输出:文件树截图、实际磁盘路径、上传请求、编辑区附件截图。
2. 上传后文件冲突:
- 验收:本页面不误报自写冲突;新建页面不继承旧冲突状态。
- Reasonix 输出:冲突弹窗截图、页面切换后截图、console/network。
3. 隐藏本地 Markdown 标题设置:
- 验收:不同 workspace/source 的默认值区分,用户选择刷新后保持。
- Reasonix 输出:设置变更前后截图、刷新后截图、local/session storage 或后端请求证据。
4. Ctrl+Z/Ctrl+Y 删除链接:
- 验收:删除附件链接后 undo/redo 可恢复/再次删除。
- Reasonix 输出:键盘动作步骤、编辑区 DOM/截图、断言结果。
5. md 文件上传后黑色方块刷新变灰:
- 验收:上传前后和刷新后附件 icon 状态一致,或有明确缺失状态样式。
- Reasonix 输出:刷新前后截图、附件节点属性。
## 主控接受条件
Codex/Hermes 只有在以下条件满足时,才能把 Reasonix 浏览器结果作为验收证据:
- `result.json` 存在且能解析。
- 至少一张截图能直接显示用户可见状态。
- console/network 不为空时已被解释;为空时明确记录为空。
- `modified_files``[]``none`,确认 Reasonix 没有改源码。
- `process-handoff` 已 retain 到 Hindsight,主控可 recall。
## 失败处理
- 缺截图:结果降级为线索,不作为验收。
- 缺 console/network:UI 失败只可作为复现证据,不可作为根因证据。
- 没清缓存或没隔离 browser context:结果标记 `blocked``needs_rerun`
- Reasonix 修改源码:本次测试作废,主控检查 diff 后决定是否保留建议。
## 评价指标
- accepted_browser_findingsReasonix 浏览器发现最终被主控采纳的数量。
- false_browser_leadsReasonix 浏览器结论导致主控走错方向的数量。
- retest_required_ratio:主控必须完全重测的比例。
- artifact_read_time:主控读取证据包并形成判断所需时间。
- missing_artifact_count:缺失截图、console、network、断言的数量。
## Done Gate
- [ ] `reasonix-browser-tester` skill 已补入本合同的最小 artifact 要求。
- [ ] 使用 `bugs/0524.md` 中至少 1 个 bug 进行 Reasonix 浏览器试跑。
- [ ] 试跑后记录 accepted findings / false leads / retest required。
- [ ] 根据试跑结果更新本合同或 Reasonix skill。
## 2026-06-01 降级说明
本合同对应的全局 `reasonix-browser-tester` skill 已存在,并已包含 `result.json`、截图、console/network、isolated context、`modified_files` 等 artifact 要求。本文不再作为 MNote 产品 runtime 的 active process 项,降级为协作参考;后续若要继续试跑 `bugs/0524.md`,应在 Reasonix skill 维护流程或独立复盘文档中跟踪。