iter(g347): iter done 加分支护栏
This commit is contained in:
+1
-1
@@ -48,7 +48,7 @@ qa/probe ──门禁通过──▶ qa/stable ──人工审阅──▶ main
|
||||
4. **门禁**:跑 `npm run check`(build → demo → style → typecheck → smoke → index → verify → lint-iterations → audit:visual → audit:contrast → audit:motion)。
|
||||
- **通过**:提交到 `qa/probe`,提交信息按 `COMMITTING.md` 规范(`iter(<条目id>): <中文祈使句>`,元数据变更用 `chore(backlog): 记录 <id> 完成`;commit-msg 钩子自动校验),推送 `qa/probe`,fast-forward 合并到 `qa/stable` 并推送;将 backlog 条目 `status` 置为 `done` 并随迭代提交。
|
||||
- **失败**:尝试修复一次;仍失败则放弃本轮——`qa/probe` 直接重置回 `qa/stable`,backlog 条目在 `notes` 里追加失败原因、`status` 保持 `open`,提交并推送该元数据变更(仅改 `.ua/backlog.json`,不碰代码)。
|
||||
5. **留痕**:在 `.ua/iterations.log` 追加一行 JSON,**字段统一**:`{"ts":"本地ISO时间","id":"条目id","result":"done|aborted","commit":"短哈希","summary":"一句话"}`。硬性规范:`ts` 必须来自 `date` 命令实测(本地时间,带 +08:00 偏移,**禁止手写或用 UTC 换算**);时长结论必须来自两次时间查询之差,禁止使用「大约/接近」等估算词;并发实例格式不得自创变体。随本轮提交。`ua lint-iterations` 会把每行 `commit` 拿到 git 历史里回查:哈希必须真实存在、主题必须指向同一条目(`iter(<id>)`,早期无 scope 的 `iter: <id>` 也认),伪造或抄错哈希直接判违规。
|
||||
5. **留痕**:在 `.ua/iterations.log` 追加一行 JSON,**字段统一**:`{"ts":"本地ISO时间","id":"条目id","result":"done|aborted","commit":"短哈希","summary":"一句话"}`。硬性规范:`ts` 必须来自 `date` 命令实测(本地时间,带 +08:00 偏移,**禁止手写或用 UTC 换算**);时长结论必须来自两次时间查询之差,禁止使用「大约/接近」等估算词;并发实例格式不得自创变体。随本轮提交。`ua lint-iterations` 会把每行 `commit` 拿到 git 历史里回查:哈希必须真实存在、主题必须指向同一条目(`iter(<id>)`,早期无 scope 的 `iter: <id>` 也认),伪造或抄错哈希直接判违规。用 `ua iter done <id> <commit> <summary>` 一次写完(`ts` 由本机时钟生成);它只肯在 `qa/probe` 上执行,分支不对直接退出——留痕写下去之后才发现分支错了,等于把这一轮记在了别人头上(历史上多次把提交直落 `qa/stable`,probe 远端原地不动)。
|
||||
6. **边界**:不改 `main` 分支保护、不删分支、不动 `.workbuddy/`、不重写历史、不 force push 到 `qa/stable` 与 `main`。
|
||||
|
||||
## 选题规则(自主补点子时)
|
||||
|
||||
@@ -2155,6 +2155,12 @@ function cmdIter(args) {
|
||||
process.exit(2);
|
||||
}
|
||||
if (!/^[0-9a-f]{7,40}$/.test(commit)) { console.error(`commit 须为 7-40 位短哈希:${commit}`); process.exit(2); }
|
||||
// 分支护栏:留痕写进 backlog 之后才发现分支错了,等于把一轮迭代记在别人头上(历史事故:提交直落 qa/stable)
|
||||
const branch = spawnSync('git', ['branch', '--show-current'], { cwd: ROOT }).stdout?.toString().trim() ?? '';
|
||||
if (branch !== 'qa/probe' && !process.argv.includes('--force')) {
|
||||
console.error(`iter done 只能在 qa/probe 上收尾(当前 ${branch || '游离 HEAD'}):这轮提交若落在 qa/stable,probe 远端会原地不动。确认要在这里留痕就加 --force`);
|
||||
process.exit(2);
|
||||
}
|
||||
const data = load();
|
||||
const items = itemsOf(data);
|
||||
const item = items.find((i) => i.id === id);
|
||||
|
||||
Reference in New Issue
Block a user