Files
mdpolish/research-wiki/guides/review-local-cleaning-run.md
T

128 lines
4.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.
# 使用本地页面评审一次 Markdown 清洗运行
## 1. 适用范围
本指南用于打开已经发布在 `artifacts/<YYYY-MM-DD>/runs/<run_id>/` 的本地清洗运行。完整双栏比较要求运行目录包含
`review-locator.json`,并且原文仍位于运行时记录的位置且哈希未改变。
评审器只读文件,不重新运行组件、不修改原文和产物。当前不适用于 GovDoc、远程目录、多人共享或生产部署。
本指南于 2026-08-23 使用 Python 3.13.11、当前用户 nvm 中的 Node.js 24.19.0 和运行
`clindb-first-batch-reviewer-v1` 实际验证。
## 2. 准备一次可评审运行
先按 [`run-local-clindb-first-batch-experiment.md`](run-local-clindb-first-batch-experiment.md) 产生一次新的运行。成功终端摘要
会给出绝对 artifact 路径,例如:
```text
artifacts=/home/lihaoze/work/mdpolish/artifacts/<YYYY-MM-DD>/runs/<run_id>
```
确认该目录内存在:
```text
manifest.json
review-locator.json
documents/
```
不要编辑定位文件,也不要向旧运行目录手工补写它。历史运行缺少 locator 时,使用不同运行 ID 重新实验。
## 3. 准备评审器
评审器前端的安装、检查和构建要求 Node.js 24 LTS。当前用户 nvm 已安装与 `.nvmrc` 匹配的版本。在仓库根目录执行:
```bash
cd reviewer
nvm use
node --version
npm --version
```
`node --version` 必须是受支持的 `v24`。本仓库不负责修改系统级 Node.js;版本不符时先在开发环境外准备正确运行时。
首次安装或锁文件变化后,仍在 `reviewer/` 目录执行:
```bash
npm ci
```
当前有效的 Python 与 reviewer 检查命令只以根目录 [`README.md`](../../README.md#当前可用检查) 为准。检查通过后构建页面:
```bash
npm run build
```
## 4. 启动一次运行
回到仓库根目录,用当前 Python 虚拟环境启动只读服务并传入运行目录:
```bash
.venv/bin/python -m reviewer.server \
--run-dir /home/lihaoze/work/mdpolish/artifacts/<YYYY-MM-DD>/runs/<run_id>
```
启动成功时只打印运行 ID、文档数量和随机本机端口,不打印原文或绝对源路径:
```text
mdpolish 评审器已启动:http://127.0.0.1:<port><run_id><count> 份文档)
```
在本机浏览器打开该地址。评审结束后回到终端按 `Ctrl+C` 停止服务。
开发页面时开两个终端。第一个终端在仓库根目录把 Python API 固定到 Vite 代理使用的本机端口:
```bash
.venv/bin/python -m reviewer.server \
--run-dir /home/lihaoze/work/mdpolish/artifacts/<YYYY-MM-DD>/runs/<run_id> \
--port 4174
```
第二个终端启动只绑定 `127.0.0.1:5173` 的 Vite 页面;它只把 `/api/` 代理给上述 Python 服务,Node.js 不读取 artifact
```bash
cd reviewer
npm run dev
```
## 5. 页面怎么查看
1. 先确认顶部整体状态和总修改数与 `manifest.json` 一致;
2. 在左侧选择文档,主双栏默认显示清洗前和最终成功输出;
3. 在组件时间线选择一个组件,双栏切换为该组件执行前后;
4. 检查组件版本和修改数,零修改应显示 `0`,而不是从时间线消失;
5. 点击修改详情,跳到对应组件阶段的位置并核对理由、`before``after`
6.`failed` / `unstable` 只查看错误和残留候选,不寻找不存在的正式输出。
页面中的总修改数是实际 `Change` 条数,不是 diff hunk 数、字符数或问题数量。
## 6. 常见错误
### 原文路径失效或哈希改变
评审器不会搜索同名文件。确认输入没有被移动或修改;如果需要在新位置运行,使用新的运行 ID 重新执行实验。不要改 locator
绕过哈希检查。
### 历史运行没有 `review-locator.json`
历史产物仍可在页面查看清单和已有审计,也可人工查看 manifest、result 和 diff,但第一版页面不能自动找到完整原文或
组件阶段。不要回写历史目录;需要完整双栏时重新运行一次即可。
### 不支持 schema
评审器只支持当前文档列出的 schema 版本。不要删除或伪造 `schema_version`;应升级评审器适配器或使用与产物匹配的代码。
### 没有 `cleaned.md`
对应文档状态是 `failed``unstable` 时这是正常边界。页面不会从 Change 重建并冒充正式结果。
### 服务拒绝 Host、Origin 或写请求
评审器只接受本机同源的只读请求。不要通过反向代理、远程端口转发或网页跨域调用它;这些用法没有批准。
## 7. 数据边界
页面会在本机内存中读取完整原文和成功输出。不要截图、复制或通过浏览器扩展分享真实内容。运行目录继续受 Git 忽略并按
manifest 的 `retention_until` 管理;页面不会自动删除到期产物。