49 lines
2.6 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.

---
name: 修复作品抽取结果
description: 对已有 upgrade_book 抽取结果做定向修复与存量迁移,包括 legacy failed 窗口恢复、单卡质量修复、presence 重复清理、存量窗口章号定位和存量回洗。需要修补个别窗口或行而不是重跑全书时使用;正常按窗抽取归 抽取作品知识,全量重置归 重置作品抽取结果,备份恢复归 备份作品抽取结果。
disable-model-invocation: true
---
# 定向修复作品抽取结果
何时用:抽取结果**局部**出问题——某个窗口停在 legacy failed、某张卡字段质量不合格、presence 出现重复行、存量 `[窗N]` 演变条目没有真实章号。全量重抽用 `重置作品抽取结果`,备份恢复用 `备份作品抽取结果`,正常 `windows/run/status` 用 `抽取作品知识`。
## 依赖边界
修复算法的唯一实现在 `抽取作品知识/scripts/upgrade.py`;`maintenance.py` 只是维护命令的入口,不把正常抽取命令混进来。同书互斥同样复用 `upgrade_work_lock.py`。
## 输入
| 入口 | 用途 |
|---|---|
| `scripts/maintenance.py` | 暴露 `recover-legacy-failed`、`repair-card-quality`、`repair-presence-duplicates`。 |
| `scripts/migrate_upgrade_windows.py` | 将存量 `[窗N]` 演变条目定位到真实章号,仅 dry-run。 |
| `scripts/parse_rewash.py` | 存量回洗工具;是否退役由现有数据状态决定。 |
```bash
.venv/bin/python muse/content/entity/skills/ingest/修复作品抽取结果/scripts/maintenance.py \
recover-legacy-failed --work-id 8 --window-no 7 --preview
```
## 输出
`--preview` 输出待修复范围、行集合与一个确认 SHA;`--execute` 输出实际修改行数与回执。`migrate_upgrade_windows.py` 只输出迁移计划。
## 数据边界
- preview 默认只读;execute 只修改目标租户、目标作品、`upgrade_book` 边界内的派生状态。
- 不生成新抽取内容,不提供正常 `run/windows/status`。
- `migrate_upgrade_windows.py` 当前只输出迁移计划,不落库;真实写入仍需另行 gate 与授权。
## 红线
- 定向修复必须先 `preview`,`execute` 精确匹配 preview 的确认 SHA,并显式确认没有同书活进程。
- 修复范围、行集合、revision、payload、owner 或关联状态任一漂移都失败关闭。
- 取锁失败必须在业务 SQL、文件验证、嵌入或模型调用之前非零退出。
- 不得用定向修复代替全量重抽去掩盖成批的抽取缺陷。
## 复利合同
- 存量重洗提交后经 `propose_lesson_dedup` 登记 `example_lesson`(绑清洗统计)。
- 升格仍走人工评审;定向修复不得掩盖成批抽取缺陷。