4f8ee0a8c5
按项目方给的规则重做 CHANGELOG 与检查器(本轮不推、不打 tag、不部署): - 条目形状:四个自定义必填节(改了什么/兼容性与迁移影响/怎么验收/已知问题) → 固定四类 Added/Changed/Fixed/Security;分类可省略,**不许空栏目**;每个版本块 至少一个非空分类;`[Unreleased]` 段不得写日期。 - 破坏性变化:固定写在 Changed 里、以 `**破坏性**` 开头,**必须链接发布文档**; 仓内 `docs/….md` 链接**对账**(不存在 ⇒ 红)。写在别的分类里也判红。 - 结构判据补强:非法日期、重复版本、顺序必须严格递减、前导零;围栏代码块里的 `##`/`###` 不算标题;**块正文以任意二级标题为界**(「## 能力基线(未发布)」这类 不带方括号的标题原先不是边界,会把后文算成上一节的内容 ⇒ 空栏目被兜成"有内容", 夹具真的抓到了这个假绿)。 - tag 一致性:远端专属清单 `.ci-remote-tags` → `ls-remote` → 本地 refs 三级来源; **没核对远端就不许说校验成功**(CI/预检用 `--require-remote`,拿不到清单即红), 非正式 tag(如本地 `x`)不当作发布版本、不判红,没有 tag 不判红。 - `0.1.0` 定为**未发布的能力基线**(远端无 tag、无 Release):改成不带方括号的 「## 能力基线(未发布)」,不补造 tag/发布日期/发布事实。 - 过程记录迁出:审查轮次与命令输出 → `docs/archive/CI_接入留档.md`(原文保留); 未合并事项 → `docs/BACKLOG.md`;补 `docs/RELEASE_RUNBOOK.md`(破坏性变化的链接目标, 同时修掉 CHANGELOG 里指向不存在文档的悬空引用)。 - 发版预检:无版本基线时把「首个正式版本号由人指定」列成阻塞项(不再要求先有基线才能跑); 打印破坏性变化条数;远端 tag 查不到时明说未核对并阻塞;不再硬读已删除的『已知问题』节。 - traps trap-5 口径修正:不是"不用 tag",而是"构建时不要用 git describe 取版本号"。 验证:check_changelog --self-test 全过;反仓夹具 80/0(含五条真改文件的结构负例、 六条只在临时仓库里造 tag 的场景);make verify 15/15 success。
21 lines
1.4 KiB
Markdown
21 lines
1.4 KiB
Markdown
# 待办(未合并事项)
|
|
|
|
> **这里的东西都不是已完成变更**,不写进 `CHANGELOG.md`。做完并验收后,把使用者可见的部分写成
|
|
> `[Unreleased]` 条目,再从这里划掉。
|
|
>
|
|
> 建立于 2026-10-13(从 `CHANGELOG.md` 的 `[Unreleased]` 段迁出)。
|
|
|
|
## 待合并 / 待评审
|
|
|
|
| # | 事项 | 现状 | 完成判据 |
|
|
|---|---|---|---|
|
|
| 1 | PR #2:批量发布 / 建批即锁定 / 需下架逐条移除 / 数据源勾选改造(23 个提交,80 个文件) | **未合并** | 合并进 `main` 且 CI 绿;合完写 `[Unreleased]` |
|
|
| 2 | 仓库卫生:撤出误入库的 `node_modules/.vite/.../results.json` 与 8 个历史 `scripts/__pycache__/*.pyc` | **未做** | `git ls-files` 反查干净(`git check-ignore -v` 命中规则) |
|
|
| 3 | `AGENTS.md` 现状表修正稿(写着"main 已启用分支保护",实际 `GET /branch_protections` = `[]`) | 修正稿已拟,**受写入保护待人工批准** | 人工批准后应用,并读回核对 |
|
|
| 4 | ESLint 接入、格式基线收尾、密钥/依赖扫描器覆盖度 | **未做** | 各自带 `--self-test` 反向自检,接进 `make verify` |
|
|
|
|
## 做完之后怎么收尾
|
|
|
|
1. 跑 `make verify`(本地全绿不等于远端跑通,需要一次真实 run 的证据)。
|
|
2. 把**使用者可见**的变化写成 `CHANGELOG.md` 的 `[Unreleased]` 条目(按四类,别写过程)。
|
|
3. 从本文件划掉该项;过程记录归档到 `docs/archive/`。 |