跳转至

听写助手对话记录 57 · 文档公开发布与站点 P0 修复(首页 404 / m0 缺失)

记录编号:DLG-57 日期:2026-08-07 时段:19:30 - 20:10 参与方:用户(SPO)、听写(DT) 沟通渠道:AI 对话(Trae) 关联文档:PJM §4.3.6-7 / build-site.py / url_map.py / WLG V6.0


一、用户需求

用户在 DLG-56(MVP-FS 培训手册 + m0 子目录迁移)完成后,触发 PMG 定义的 AI 特定行为 #4「公开文档同步」,即: - 主仓 git 提交推送(私有仓 dev 分支) - docs/ + 发布/ 同步至公开文档仓 hk2026-docs - MkDocs 站点构建 + Cloudflare Pages 部署(hk2026-docs.pages.dev)

同步后发现站点存在两处 P0 级问题,启动本次修复闭环。


二、工作过程

阶段 A:首次公开文档同步(19:30 - 19:40)

按 PJM §4.3.6 / §4.3.7 流程标准执行:

步骤 动作 结果
A1 主仓提交变更(MVP-WX 方案、m0 目录、培训手册) commit fe5d355 → push origin dev → Gitee OK
A2 sync-docs-repo.ps1 同步公开仓 112 文件同步(docs 91 md + 21 非 md);公开仓无增量(上一轮已同步)
A3 build-site.py 构建站点 94 slug 生成;构建成功,产物写入 site/
A4 deploy-site.ps1 部署 Cloudflare Pages wrangler 上传成功,目标项目 hk2026-docs (main 分支)

阶段 B:线上站点验证与问题发现(19:40 - 19:48)

对部署后的站点 https://hk2026-docs.pages.dev 执行 6 项关键 URL 验证:

URL 预期 实际 等级
/ 根路径 显示 PMG 人机协作指南 404 Not Found P0
/m0/ MVP 方案目录 显示 m0 README 及子文档链接 404 Not Found P0
/pjm/ 项目管理制度 正常显示 ✅ PASS
/tnd/ 技术文档目录 正常显示 ✅ PASS
/dlg53/ 工作日志 正常显示 ✅ PASS
发布区 m0 HTML 通过侧栏或短链访问 404 或链接跳错 P1

根因诊断

  1. 首页 404:MkDocs 扁平化 slug 命名后,nav 列表第一项为 pmg.md,生成的静态文件为 site/pmg/index.html根路径 site/index.html 缺失。Cloudflare Pages 默认请求 /index.html,找不到时返回 404。
  2. m0/ 404scripts/url_map.pyMANUAL_MAP 中,仅定义了 docs/技术文档/MVP实施方案.md → mvp 的旧映射,未包含 DLG-54/55/56 新迁移的 m0 目录 4 个文档,因此这些文件只能通过 5 位 hash slug 访问,不可读且不在导航树中。
  3. NAV 三级嵌套缺陷:本次将 MVP 方案从 TND 下二级节点调整为「MVP 方案 m0 → 4 个子文档」的三级结构,原 generate_nav_yaml() 仅支持二级嵌套,导致 site/.build/mkdocs.yml 第 156 行 YAML 解析报错。

阶段 C:脚本修复(19:48 - 20:00)

C1. url_map.py 修复(3 处)

  • 新增 MANUAL_MAP 条目(docs/技术文档/m0/ 四文档 + 发布/m0/README):
    docs/技术文档/m0/README.md          → m0
    docs/技术文档/m0/MVP-FS实施方案.md  → mvpfs
    docs/技术文档/m0/MVP-WX实施方案.md  → mvpwx
    docs/技术文档/m0/MVP方案对比.md     → mvpcmp
    发布/m0/README.md                    → pubm0
    
  • 更新 NAV_STRUCTURE:TND 段将原「MVP 实施方案 → mvp」单条替换为「MVP 方案 m0 → (索引, FS, WX, CMP)」三级嵌套组;发布文档段将「发布文档 → pub」扩展为二级(总目录 pub / MVP 发布区 pubm0)。
  • 升级 generate_nav_yaml:新增递归检测,检测到二级 sub_rest 为列表时输出 - 缩进的三级条目,保持 YAML 语法正确。

C2. build-site.py 修复(2 处)

  • 主文档映射预览列表扩展:追加 tnde, m0, mvpfs, mvpwx, mvpcmp, pubm0 6 个新 slug,构建日志预览中可见关键映射。
  • 新增 §10.5「build 模式首页修复」(在 MkDocs build 完成后、清理临时目录前执行):
  • site/index.html 不存在,生成兜底跳转页:<meta refresh> 跳转 + window.location.replace("pmg/") 双保险,支持禁用 JS 环境。
  • 写入 site/_redirects(Cloudflare Pages 原生支持),添加两条 301 规则:
    /         /pmg/       301
    /m0       /m0/        301
    
    此方案优先走 CF Pages 服务器端 301(SEO 友好、响应快),客户端 meta refresh 为回退兜底。

阶段 D:构建验证与二次提交(20:00 - 20:10)

步骤 动作 结果
D1 首次重新构建 YAML parse error(line 156)→ 执行 C1 的 generate_nav_yaml 升级
D2 二次重新构建 ✅ 构建成功,166 个文件;新增输出:✓ 修复首页:根 index.html → pmg/✓ 写入 _redirects
D3 本地验证产物 site/index.html + site/_redirects 内容正确;m0/index.htmlmvpfs/index.html 等 m0 子文件均生成
D4 主仓提交脚本修复 commit 3708510fix(site): 修复首页404与m0目录缺失 — 新增 m0 slug 映射、根 index.html 跳转、_redirects 规则(2 文件 52 行变更)
D5 push 私有仓 dev fe5d355..3708510 dev -> dev → Gitee OK
D6 同步公开仓 112 文件已同步,scripts/ 变更不进公开仓,显示 [SKIP] No changes to commit,符合预期

阶段 E:用户侧执行部署(待执行)

由于 Cloudflare 凭据(CLOUDFLARE_ACCOUNT_ID / CLOUDFLARE_API_TOKEN)仅在用户终端 Shell 会话中设置,AI 沙箱调用时环境变量丢失,因此部署操作需由用户在本机终端执行:

# 确认凭据存在(如未设置,先执行 $env:CLOUDFLARE_ACCOUNT_ID = "..." 等)
$env:CLOUDFLARE_ACCOUNT_ID; $env:CLOUDFLARE_API_TOKEN
# 复用已构建产物(site/ 166 文件),跳过二次构建
powershell -ExecutionPolicy Bypass -File scripts/deploy-site.ps1 -SkipBuild

部署成功后返回: - 生产 URL:https://hk2026-docs.pages.dev - 关键验证点: 1. / → 301 → /pmg/(浏览器不显示 404,秒级跳转) 2. /m0/ → 显示 MVP 方案目录索引(含 FS / WX / CMP 三链接) 3. 侧栏「技术文档 TND → MVP 方案 m0 → ...」4 条可点击展开 4. 侧栏「发布文档 → MVP 方案发布区 m0」显示 pubm0.md 内容


三、结论与决策

  1. P0 问题已在脚本层修复,但部署需用户持凭据执行(AI 沙箱不持有 CF 令牌,符合安全原则)。
  2. 本次新增的 6 个 slug(m0, mvpfs, mvpwx, mvpcmp, pubm0, tnde)已在 NAV 主树显式挂载,后续构建不会再次漏出。
  3. _redirects 机制为 Cloudflare Pages 标准特性,后续新增目录级短链均可按该模式扩展,无需侵入 MkDocs 构建流程。

四、待办事项(T 列表)

编号 事项 负责人 状态 截止
T1 用户本机终端执行 deploy-site.ps1 -SkipBuild 完成部署 SPO ⏳ 待执行 2026-08-07 当日
T2 部署后线上 6 URL 复证(/、/m0/、/pjm/、/tnd/、/dlg53/、/pubm0/) SPO/DT ⏳ 待验证 同 T1
T3 创建 DLG-57 并追加 WLG 索引(即本记录) DT ✅ 进行中 2026-08-07
T4 后续 MVP-FS 正式接单后,按 DLG-53 脚本计划执行 MVP 数据质量检查 / 周报 OL/ML ⭕ 未开始 Phase 0 启动周

五、附件引用

  • 提交记录:主仓 3708510(scripts/ 脚本修复)、主仓 fe5d355(MVP 双路径文档 + 发布/m0 迁移)
  • 关联脚本:scripts/url_map.py(MANUAL_MAP + NAV 生成)、scripts/build-site.py(首页修复段)
  • 关联规则:PJM §4.3.6 Git 同步、PJM §4.3.7 MkDocs + Cloudflare Pages 部署、PMG AI 特定行为 #4