# 内部公文模块剩余细节与边界结论

## 1. 文档目的

本文档只回答 2 个问题：

- 当前内部公文模块还差哪些细节没有真正收口
- 哪些问题属于运行部署边界，不能再误判成业务逻辑问题

本文档基于 2026-05-17 当前仓库、当前机器、当前联调结果整理。

---

## 2. 先给结论

截至当前，内部公文模块不再是“没接上”的状态。

更准确的结论是：

- 业务语义主线已经对齐
- 前后端主链路已经接通
- 报告产物主闭环已经补齐
- 当前最大的剩余问题是运行部署收口，而不是公文业务逻辑方向错误

因此后续动作应坚持一个边界：

- 可以继续补齐平台化能力和运行稳定性
- 但不要再为了排查运行问题去改动公文业务语义

---

## 3. 当前已经成立的事实

### 3.1 业务主语义已经成立

当前内部公文模块的业务主语义已经能稳定描述为：

- 主对象是 `document`
- 审查历史通过 `run` 保留
- 详情默认展示文档当前最新一次运行结果
- 结果语义仍然包括 `summary / findings / checkedRules / entities / structure / outline`

这与旧 `govdoc-audit` 的业务方向是一致的，只是承载方式换成了当前平台的 `document + run + artifact` 模型。

### 3.2 页面与接口链路已经成立

当前链路已经核实通过：

1. 浏览器访问 `5173`
2. `nginx` 转发到 `5193`
3. `legal-platform-frontend` 页面走 `/api/govdoc/*`
4. `/api/govdoc/*` 代理到当前后端 `8096/api/govdoc/*`
5. 当前后端路由已能实际处理请求

因此：

- 现在再出现 `401`，说明链路已经通了，只是没有有效登录态
- 现在再出现跳 `/login`，优先说明会话 cookie 不完整，而不是页面路由不存在

### 3.3 正式报告产物闭环已经成立

当前真实运行已验证以下产物可以生成并落库：

- `annotated_docx`
- `html_report`
- `paragraph_html`

并且：

- 列表与详情已经能感知这些产物是否存在
- HTML 报告、DOCX 报告、段落视图都已有当前仓库侧实现

---

## 4. 现在还差的细节

### 4.1 旧 worker 干扰还没清掉

当前机器上仍有旧进程：

- `python start_worker_with_routing.py --config-port 8096`
- `cwd=/home/wren-dev/Porject/docauditai`

这件事的影响非常直接：

- 它会让“当前页面 + 旧执行链”混在一起
- 它会导致故障判断失真
- 它会让人误以为是当前仓库业务没实现

这不是业务逻辑缺口，而是运行环境没有彻底收口。

### 4.2 正式启动方式还不够固化

当前 `./leaudit.sh start` 在当前机器上可以把链路拉起来，但仍需注意：

- 临时 shell 启动不等于正式守护方式
- 需要确保正式重启、后台保活、日志落点都固定在当前仓库
- 要避免以后又混回旧仓库进程

### 4.3 登录态验收还没完整做完

当前已经确认：

- 未登录访问 `/govdoc/audits` 会被 `requireAuth()` 正常重定向到 `/login`
- `/api/*` 请求的 `Authorization` 依赖 `access_token` cookie 注入

但还没有完成一轮带真实登录态的完整验收，包括：

- 列表加载
- 详情打开
- HTML 报告打开
- DOCX 报告下载
- 段落视图联动
- 重跑与历史 run 切换

### 4.4 历史运行数据需要补跑

修复前已经成功但没有正式产物的旧 run，不会自动补齐。

因此仍需：

- 对需要交付报告的历史文档重新触发审查
- 确认 `current_run_id` 指向最新有效 run

### 4.5 规则来源策略还没有平台化

当前 `govdoc` 已经有可用规则文件：

- `rules/govdoc/govdoc_general/rules.yaml`

但当前仍是“单路径硬编码解析”：

- 还没有按文种/类型切换规则
- 还没有按版本切换规则
- 还没有接入统一规则管理

这不是阻塞当前链路跑通的 P0 问题，但它是后续正式化必须收口的 P1。

### 4.6 产物语义仍有两个小尾巴

当前最关键的正式产物已经补齐，但还有两点没完全平台化：

- `canonical.docx` 还没有作为显式产物沉淀
- `result.json` 还没有作为显式产物沉淀

这不会阻塞当前页面使用，但会影响与旧系统“完整产物语义”一一对应的程度。

---

## 5. 哪些问题不要再误判

### 5.1 跳 `/login` 不等于页面坏了

当前 `/govdoc/audits` 在服务端布局阶段就会做鉴权。

所以：

- 没有 `user_info` cookie 时跳转是正常行为
- 这不代表 `govdoc` 页面不存在

### 5.2 `401` 不等于没接后端

当前 `/api/govdoc/documents` 返回 `401` 时，更准确的含义是：

- 请求已经到达当前后端
- 只是当前请求没有有效凭证

### 5.3 旧 worker 活着时，不能只看页面表象下判断

只要旧 `docauditai` worker 还在：

- 页面报错不一定是当前仓库逻辑错
- 任务结果异常也不一定是当前仓库执行错

必须先判断任务到底被谁消费。

---

## 6. 后续实施边界

后续如果继续推进，建议边界固定如下：

1. 不改内部公文核心业务语义。
2. 允许继续按当前平台规范补齐运行、规则管理、产物治理。
3. 先处理运行收口，再做带登录态验收。
4. 只有在运行链路完全收口后，才继续判断剩余产品细节是否需要调整。

---

## 7. 一句话结论

内部公文模块当前已经进入“运行部署收口 + 平台化细节补齐”阶段。

主业务逻辑方向当前没有发现需要推翻重做的问题，真正还没做好的，主要是旧链路清退、真实登录态验收、历史数据补跑、规则来源平台化和少量产物治理细节。
