fix(changelog): restore stable path aliases for #5252
changelog-filename-gate / validate (pull_request) Successful in 2s

这个提交包含在:
wx
2026-07-26 15:02:13 +08:00
父节点 e35ff35c58
当前提交 5c7fa5dbe6
共修改 11 个文件,包含 675 行新增和 15 行删除
+12 -1
查看文件
@@ -30,7 +30,9 @@ changelogs-v2-mp/YYYY-MM/DD_issue_业务标题-{新增接口|修改接口|删除
检测器读取 `git diff --name-status -z --find-renames` 的结果,只校验本次 diff 新出现的目标路径:
- `A`(新增)、`C`(复制)和 `R`(重命名)的目标路径必须通过规则。
- `M`(修改历史文件)和 `D`(删除)豁免,不会因存量错误命名阻断。
- `M`(修改历史文件)豁免,不会因存量错误命名阻断。
- 已发布文件的 `D`(删除)和 `R`(重命名)默认以 `E_PATH_STABILITY` 阻断。确需迁移时,必须在
`changelog-path-aliases.json` 登记旧路径到 canonical 的精确关系,并保留可读取的兼容入口。
- 重命名到受控目录时,新目标路径必须使用校验当天的上海日期。
本地校验:
@@ -38,6 +40,7 @@ changelogs-v2-mp/YYYY-MM/DD_issue_业务标题-{新增接口|修改接口|删除
```bash
npm test
npm run check:filenames -- --base origin/main --head HEAD
npm run check:path-aliases
```
生产 CLI 故意不提供 `--date` 或日期环境变量;测试只通过导出的纯函数注入 `Date`。规则失败返回退出码 `1`,Git/事件/参数等基础设施错误返回 `2`。
@@ -70,12 +73,20 @@ pending → claimed → implemented → released → verified
- `FRONTEND_CONSUMPTION_STATUS_GUIDE.md`
- `BACKEND_CHANGELOG_DELIVERY_GUIDE.md`
已下发路径是消费契约的一部分,不通过重命名表达状态。历史路径已发生迁移时:
- `changelog-path-aliases.json` 是机器可识别的唯一映射源;
- alias 文件必须保留完整 `hl-changelog/v2` frontmatter,并用 `canonical_path` 指向 canonical;
- 前端状态更新使用 `npm run changelog:transition -- <path> <status> ... --write`,命令会同时更新
canonical 与全部 alias;对同一状态和证据重复执行不会产生文件变更。
本地校验:
```bash
npm test
npm run check:filenames -- --base origin/main --head HEAD
npm run check:frontmatter -- --base origin/main --head HEAD
npm run check:path-aliases
```
## CI 与服务端阻断边界