跳转至

听写助手对话记录49 — AI 特定行为扩展与 URL 短路径重写机制

记录编号:DLG-49 日期:2026-08-07 智能体:听写(DT) 参与方:用户、DT 沟通渠道:AI 助手对话 主题:PMG/PJM 新增 git同步与公开文档同步 AI 特定行为;MkDocs 站点 URL 短路径重写机制


一、用户需求

需求 1:PMG/PJM AI 特定行为扩展

  • PMG 和 PJM 新增两个 AI 特定行为:
  • git同步:上传到私有(hk2026)和公开(hk2026-docs)两个 Gitee 仓库
  • 公开文档同步:git同步 + 发布到 hk2026-docs.pages.dev 网站
  • 确保这两个行为非用户直接指令不执行
  • 然后执行公开文档同步

需求 2:URL 短路径重写机制

  • 解决 MkDocs 构建中的相对路径链接错误
  • 域名后 URL 尽量简短,最好 5 位字符流水号(0-9, a-z)
  • 从整体规划角度建立路径重写机制
  • 如代价较高或存在架构风险,可适当降级实现
  • 完成并确认成功后,与前面工作一并记录日志

二、工作过程记录

步骤 1:PMG/PJM AI 特定行为扩展

修改 agents.md(PMG V7.6 → V7.7): - AI特定行为新增 #3 git同步、#4 公开文档同步 - 均标注「⚠ 仅在用户明确指令时执行,不得自动触发」 - 导航表 PJM 版本号同步至 V2.0 - WLG 版本号同步至 V5.2,DLG 范围 01~48

修改 项目管理.md(PJM V1.9 → V2.0): - §4.3.5 新增 AI 行为输出目标表(含 git同步、公开文档同步) - 添加执行约束说明(需用户直接指令,AI 不得自动触发) - 修订记录补充 V2.0 变更

修改 工作日志/README.md(WLG V5.1 → V5.2): - 补全 DLG-45/46 索引 - 新增 DLG-47(MVP 启动前综合评审)、DLG-48(P0 修复)

步骤 2:公开文档同步执行(第一轮)

  • 主仓提交 61437e5 推送至 dev 分支
  • 公开文档仓同步 commit e01516c(解决远程 LICENSE 提交冲突)
  • MkDocs 站点部署至 hk2026-docs.pages.dev 成功
  • 发现 60+ 链接 WARNING(工作日志历史相对路径错误)

步骤 3:URL 短路径重写机制设计

方案选型

方案 URL 示例 优点 缺点 选用
纯 5 位流水号 /00001/ 极短 不可读、需维护映射表、丢失后全断
项目术语缩写 /pjm//rqds//cptd/ 3-5 字符、自描述、零维护 非纯流水号
混合(缩写+编号) /qsv1//cpt2/ 可读 需维护编号

降级决策:用户原期望 5 位纯流水号,但纯流水号不可读且需维护映射表(映射丢失即全站断链)。改用项目已有术语缩写(PMG/PJM/GLY/RQD-S 等),同样 3-5 字符,且自描述、零维护、无映射丢失风险。

步骤 4:创建 scripts/url_map.py

新建 URL 映射核心模块,包含:

  • MANUAL_MAP:35 个主文档的手动 slug 映射(repo 路径 → slug)
  • 主文档用项目术语缩写:pmgpjmglyrqdscptdmdsdopsd
  • 工作日志对话记录:dlg01~dlg48(从文件名提取 DLG 编号)
  • 其他工作日志子页面:wlgwx(微信)、wlgof(线下)、wlgat(附件)
  • 评审文档:rev01rev02
  • 桩页面:ref(参考资料)、arc(归档说明)
  • generate_slug():自动 slug 生成(手动映射 → DLG 编号提取 → 5 位 base36 hash)
  • resolve_link_target():全量链接解析器,处理:
  • agents.md 大小写不敏感 → pmg.md
  • ref/ 目录链接 → ref.md 桩页面
  • 归档/ 目录链接 → arc.md 桩页面
  • Markdown 链接:解析 → url_map 查找 → basename 回退(修复深度错误)
  • 非 Markdown 链接:解析 → 已知目录查找 → 发布/ 回退(.pdf/.html)
  • NAV_STRUCTURE:动态 nav 生成(与 PMG 导航表层级一致)
  • NOT_IN_NAV_PATTERNS:工作日志子页面不显示在侧栏

步骤 5:重构 scripts/build-site.py

核心改动: 1. 扁平化 slug 重命名:所有 .md 文件以 slug 命名复制到 docs-src 根(消除中文路径 URL) 2. 全量链接重写:解析每个 ](path) 链接,映射到目标 slug,自动修复历史工作日志中深度错误的相对路径 3. 非 Markdown 文件保留目录结构:PDF/xlsx/py 等保留原始子目录 4. 动态 nav 生成:从 NAV_STRUCTURE 生成 mkdocs.yml nav 段 5. 桩页面扁平化arc.md 直接在根层(非 归档/README.md

步骤 6:构建测试与迭代修复

第一轮构建:60+ WARNING → 9 WARNING - 修复 agents.md 大小写不匹配(特殊路径检测) - 修复 ref/ 链接未重写为桩页面 - 修复 归档/ 链接未重写为桩页面 - 修复 dlg01 缺失(首篇对话记录文件名无编号) - 修复 arc.md 桩页面位置(扁平化) - 修复 发布/ 文件链接回退(.pdf/.html basename 匹配)

最终构建结果: - 79 个 Markdown 文件以 slug 扁平化 - 15 个非 Markdown 文件保留目录结构 - 86 个页面生成 - 9 个 WARNING(均为工作日志中指向根级项目文件的链接:scripts/、mkdocs.yml,不在文档范围内) - 多个 INFO(锚点不匹配,链接仍可用)

URL 效果对比

文档 旧 URL 新 URL
人机协作指南 /PMG/ /pmg/
项目管理制度 /%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/ /pjm/
战略级需求 /%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/%E6%88%98%E7%95%A5%E7%BA%A7%E9%9C%80%E6%B1%82/ /rqds/
客户跟踪设计 /%E5%AE%A2%E6%88%B7%E9%A1%B9%E7%9B%AE%E8%B7%9F%E8%B8%AA%E6%9C%8D%E5%8A%A1/%E5%AE%A2%E6%88%B7%E9%A1%B9%E7%9B%AE%E8%B7%9F%E8%B8%AA%E6%9C%8D%E5%8A%A1%E8%AE%BE%E8%AE%A1/ /cptd/
对话记录01 /%E5%B7%A5%E4%BD%9C%E6%97%A5%E5%BF%97/%E5%AF%B9%E8%AF%9D%E8%AE%B0%E5%BD%95/20260804_%E5%90%AC%E5%86%99%E5%8A%A9%E6%89%8B%E5%AF%B9%E8%AF%9D%E8%AE%B0%E5%BD%95/ /dlg01/

步骤 7:deploy-site.ps1 部署脚本修复与线上部署

问题deploy-site.ps1 在 Windows PowerShell 5.x 下执行时报解析错误 UnexpectedToken),行 44/46/51 连续报错。

根因: 1. 编码问题:脚本为 UTF-8 无 BOM,PowerShell 5.x 默认按 GBK 解读,中文 + 符号被误解析为乱码,导致字符串终止符丢失(错误信息含 涔夊煙鍚? 即 UTF-8 按 GBK 解读的典型症状) 2. DryRun 参数不兼容:wrangler CLI 不支持 --dry-run 参数,导致 dry-run 模式报错 Unknown arguments: dry-run

修复: 1. 将 deploy-site.ps1 保存为 UTF-8 BOM 编码(PowerShell 5.x 默认识别 BOM) 2. Write-Error @(...) -join "n"简化为单行字符串提示,避免数组语法在旧版 PS 中解析异常 3. DryRun 模式改为仅打印命令、跳过 wrangler 执行(不再传--dry-run` 给 wrangler)

线上部署与验证: - 用户设置 CLOUDFLARE_ACCOUNT_IDCLOUDFLARE_API_TOKEN 环境变量 - 执行 powershell -File scripts\deploy-site.ps1,构建 145 个文件,wrangler 上传完成 - 线上验证:hk2026-docs.pages.dev 短 URL 全部生效(/pmg//pjm//rqds//cptd//mdsd//opsd//dlg01/ 等 27 个 slug)


三、结论与产出

本次对话产出物清单

序号 产出物 位置 状态
1 agents.md V7.7(PMG AI特定行为扩展) AGENTS.md 已完成
2 项目管理.md V2.0(PJM AI行为输出目标表) docs/项目管理.md 已完成
3 工作日志 README V5.2(DLG-47/48 索引) docs/工作日志/README.md 已完成
4 url_map.py(URL 映射与链接解析模块) scripts/url_map.py 已完成
5 build-site.py V2(扁平化 slug + 全量链接重写) scripts/build-site.py 已完成
6 deploy-site.ps1 修复(UTF-8 BOM + DryRun 兼容) scripts/deploy-site.ps1 已完成
7 本对话记录 DLG-49 docs/工作日志/对话记录/20260807_听写助手对话记录49_AI特定行为扩展与URL短路径重写机制.md 已完成

关键决策与说明

  1. URL slug 方案降级:从纯 5 位流水号降级为项目术语缩写(3-5 字符),理由是自描述、零维护、无映射丢失风险
  2. 源文件零修改原则:所有链接重写仅作用于 .build/docs-src/ 临时副本,主仓 docs/ 源文件不动
  3. basename 回退机制:对于源文件中深度错误的相对路径链接(如 ../术语表.md 应为 ../../术语表.md),通过文件名回退自动修复
  4. 根级文件链接保留:工作日志中指向 scripts/mkdocs.yml 等根级文件的链接无法在站点内解析,保留原样(9 个 WARNING,属于历史记录的合理引用)

四、待办事项

序号 待办 负责人 截止时间 状态
1 Cloudflare Pages 站点部署与线上短 URL 验证 用户+DT 2026-08-07 ✅ 已完成(线上 /pjm/、/cptd/、/dlg01/ 等 27 个 slug 全部生效)
2 PJM §4.3.7 更新 URL 重写机制说明(slug 方案) DT 2026-08-07 ✅ 已完成(PJM V2.0→V2.1)
3 构建验证(短 URL slug 全部生效) DT 2026-08-07 ✅ 已完成(27 个 slug 本地验证通过)
4 deploy-site.ps1 编码修复(UTF-8 BOM)+ DryRun 兼容 DT 2026-08-07 ✅ 已完成(修复 PowerShell 解析错误,DryRun 验证通过)

五、备注

  • 本轮工作覆盖两轮对话:第一轮(PMG/PJM AI 特定行为扩展 + 公开文档同步执行)和第二轮(URL 短路径重写机制)
  • 站点部署因 Cloudflare 凭据未在当前会话设置,需用户提供 API Token 后执行 scripts/deploy-site.ps1
  • 9 个残留 WARNING 均为工作日志中指向根级项目文件(scripts/、mkdocs.yml、.gitignore)的链接,这些文件不在文档站点范围内,属于历史记录中的合理引用

修订记录

版本 日期 修订人 修订内容
V1.0 2026-08-07 DT 创建;记录 PMG/PJM AI 特定行为扩展 + URL 短路径重写机制

本记录由听写根据对话全过程整理。