feat(migrate): Halo 全量内容迁移(压缩版)——6文/21图/1瞬间 URL 1:1

- 正文源=线上渲染页(Halo 快照层 patch 残迹:泥潭/赎罪仅 2 字符),
  pandoc html→gfm + tags API 显示名换算后分类:5 书评(五档情绪色)+1 技术
- 图库 21 张:长边 2400/q86 压缩入仓(原图 196M→9.5M——公开仓历史膨胀
  与 nginx 100M 推送上限双杀;原图在 Phase 0 备份 tar 中永久留档)
- 瞬间 1 条;URL 1:1(6 slug 全等,零 301)
- 本提交由 7 个本地提交重写而成(清除已进历史的 196M blob,未推送过);
  因 reset --soft 暂存竞态,一并包含 spec 归档文件
  (.spec/specs/archive/2026-10-24_migrate-blog-content/)

验证: check_urls.py 6==6;astro build 11 页 exit 0(8.67s);
      EXIF 管线跑通;staging 更新;halo healthy+200 全程未动

Co-authored-by: GLM-5.3
This commit is contained in:
wait4xandGLM-5.3 committed 2026-10-25 00:39:08 +08:00
1 parent 7b71acf223
commit aea21c8694
74 files changed
+1381 -97

No files matched your search

@@ -0,0 +1,93 @@
# Phase 2:Halo 内容迁移(6文/21图/1瞬间,URL 1:1)- 项目范围 - 完成总结
## 交付结论
- 结果:完成
- 完成时间:2026-10-25 00:35
## 假设回顾
### 已验证假设
- Halo 正文内嵌图片走 /upload/ 相对路径,可经 127.0.0.1:18090 直下
- 引文(blockquote)经 pandoc 转 md 后结构保留,无需人工重排
### 仍未完全验证的假设
- 无
## 交付范围
### 已交付
- T1 Halo 全量导出脚本
- T2 文章转换入库
- T3 图库迁移
- T4 瞬间迁移
- T5 URL 1:1 断言
- T6 构建验收 + staging + 抽检清单 + 生产复查
### 未交付
- 无
### 偏差说明
- 无
## 简化决策
### 保持简单的关键选择
- 最简单可行方案:导出/转换/断言脚本入 scripts/migrate/,一次性中间产物 .migration/(gitignore);真实内容直接覆盖同 slug 样例文件
- 暂不引入:评论迁移(存量为 0)、双语分流(Phase 3)、封面图 frontmatter 扩展
- 不做的抽象/配置化:不写通用 CMS 迁移框架,只服务本次 Halo 一次性迁移
### 本轮明确不做的内容
- 双语翻译(Phase 3)、上线切换(Phase 4)、Halo 停用(Phase 5)、旧站评论(数为 0)
## 变更边界
### 本轮主要改动模块
- 见 tasks.md 的 boundary 记录
### 明确未触碰的区域
- 双语翻译(Phase 3)、上线切换(Phase 4)、Halo 停用(Phase 5)、旧站评论(数为 0)
## 验证证据
### 备注
- 机器证据:runs.jsonl(见验证范围的机器验证率)
## 验证范围
- 级别:package
- 机器验证率:6/6
- 规则:check 与 done 复用该范围;只有记录升级触发时才执行全项目检查
## 哲学生效证据
### 行为成效回填
- Development Record 行为门禁通过
### 一致性门禁回顾
- 验收面(checklist 或成功标准)已通过
## Git 记录
- 日期时间:2026-10-25 00:35
- 范围:Phase 2:Halo 内容迁移(6文/21图/1瞬间,URL 1:1)- 项目范围
- 功能:T1 Halo 全量导出脚本;T2 文章转换入库;T3 图库迁移;T4 瞬间迁移;T5 URL 1:1 断言;T6 构建验收 + staging + 抽检清单 + 生产复查
- 操作:提交 / 推送
- 成效:Development Record 行为门禁通过
- 提交:pending local commit
- 提交区间:729f4ac147adffc8fe37606508922d2f8bd2176f..729f4ac147adffc8fe37606508922d2f8bd2176f
- 推送:not-run (push stage follows commit)
## AGENTS.md 增量提议
```diff
Halo 内容迁移路径:公共 API 只有摘要,正文真源=线上渲染页 article 块(DB snapshots 有 patch 残迹陷阱);标签内部名需 tags API 换显示名;moments schema 的 text 在 frontmatter。迁移器 scripts/migrate/ 幂等;spec verify 必须只读断言(重跑迁移器会改写产物弄过期指纹)。
```
## 被拒绝的扩展提议
- 无
## 门禁证据
- check_spec_package.py exit 0
## 遗留事项
- 无;问题处置见下方结构化区块
## 问题处置
```json
{
"issues": [],
"version": 1
}
```