## 缺陷 `sync` 在 **squash 合并**的仓库里两头都过不去,导致 PR 合并后无法用规定的命令收口基线: - 停在 feature 分支:`brief` 读得到,但 `merge-base --is-ancestor HEAD origin/main` 因 squash 提交与分支头不同源而失败 → `SYNC_NOT_FAST_FORWARD`。 - 切到 main:可以 fast-forward,但 `sync.mjs` 的 `planData` 第一步就 `brief(r, n)`,而 brief 尚未取回 → `BRIEF_NOT_FOUND`。 连锁后果:`review.verifiedCommit` 指向合并前的分支 HEAD,与 squash 后的 main HEAD 不同源,`archive plan` 被 `REVIEW_NOT_PASSED` 拒;目前只能按 `shadow-dev-release` SKILL §4 在 main 上重跑一次 review 才能归档(同一次 change 的 review 记录被写两遍)。 ## 实测复现 - 2026-10-12 本仓 PR #56(squash → `c00f030`):`sync plan` 在 feature 分支 → `SYNC_NOT_FAST_FORWARD`;`git switch main` 后 `sync plan` → `BRIEF_NOT_FOUND`。归档需重跑 review 才通过。 ## 期望 - `sync plan` 的读序调整或提供跨分支定位:允许在 main 上按名称/`baseBranch` 取回 brief 后再 fetch + `--ff-only`(与现 `execute` 同语义,不动 fast-forward 判定)。 - squash 合并下 `verifiedCommit` 的同源判定应能识别「squash 提交即本次变更的落地提交」,不要求重跑 review。 ## 影响面 仅收口体验,不产生数据破坏;规避手段是 `git merge --ff-only origin/main` 加一次 review 重跑。
Activity
stack-wuh commentedon Oct 12, 2026
前半的浅修复试过并回退:抛错点在 cli.mjs 的 readBrief(进域逻辑之前),且 planDomain 无条件 write(b) 使 blob 派生的 brief 无处持久化。真修复的形状与取舍见 #65。后半(verifiedCommit 同源)按规范仍是 main 上重跑 review。
stack-wuh commentedon Oct 13, 2026
结论:sync 那一半已修,verifiedCommit 那一半裁定为设计内的门
现象一(squash 后 sync 取不回基线)—— 已修复并发版
sync不再以 brief 为前置条件。基线解析序固定为--base-branch>brief.baseBranch> 当前分支;无 brief 时--plan-hash为唯一凭证。harness 零改动——cli.mjs的!o.name分支本来就是无 brief 域的凭证通路,缺陷只在sync.mjs自己硬调brief()。origin/<base>不可解析 → 新增SYNC_UPSTREAM_NOT_FOUND响亮失败,不退化为空操作。840ee88;资产shadow-dev-cli-v1.7.0.tar.gz由发布链自动产出,uploadergithub-actions[bot],run38356779724completed/success)。sync plan --name …→BRIEF_NOT_FOUNDsync plan(无--name)→base=main、upstream=origin/main→sync execute --plan-hash …→head=92515be,工作树干净92515be、840ee88;workflow 仓83914bc、95197ae--base-branch。docs/cli-guide.md+shadow-dev-release/shadow-dev-publish两处 SKILL),已随插件 v7.1.1 发布(run38361592740success,OK materialized … skills=9)。现象二(归档前须在 main 重跑 review)—— 裁定为设计内的门,不作为缺陷修
review.verifiedCommit === HEAD。squash / merge 产生的合并提交必然不等于审查时记录的提交,这个对账是故意保留的:不在合并后的树上重跑一次 review,就是带着未对账的漂移归档。skills/shadow-dev-release/SKILL.md§4 明确写成流程的一部分("squash 合并必然带来漂移,这是设计内的门而非缺陷"),不再被记录为 CLI 缺陷。关闭本 issue:现象一已修复并发版(v1.7.0),现象二按裁定归入 SKILL 流程说明。
stack-wuh commentedon Oct 13, 2026
sync 半边由 PR #70 / v1.7.0 修复并四次真实收口验证;verifiedCommit 半边裁定为设计内的门,已写进 release SKILL §4。