| content |
{"Commits":[{"Sha1":"d10dae4ab {"Commits":[{"Sha1":"d10dae4ab5cf2e2f61c009033f00970b9a51c600","Message":"fix(governance): 门禁按 workspace.json 定位平台层,恢复迁移后失效的审计\n\n阶段 3 把平台目录从 基础/ 移到 企业控制面/ 之后,仍按 resolve(scriptDir,'..')\n推导的门禁全部失效:派生仓探测不到 git 仓(13/13 missing-git-repo)、平台发现\n数为 0、候选契约 ENOENT、audit-ci-gates 直接 ERR_MODULE_NOT_FOUND。冻结证据\n一直都在,只是脚本找错了路。\n\nlib/workspace.mjs 新增平台层解析器:\n- platformLayerRoot 取清单 layers.基础设施,platformDir / derivedRepo 据此展开\n (git 仓在 \u003c平台\u003e/base-framework,不在平台目录本身)\n- frameworkSourceRepo 取清单 paths.baseFramework\n- discoverPlatformNames 以「含 base-framework/ 子目录」为判据,宿主仓\n enterprise-platform、真源仓 企业IdP快照 与四个无派生仓的候选目录据此自动排除,\n 不再维护 excluded 目录名黑名单\n\n改接清单的脚本与测试:\n- workspace-evidence-status / audit-platform-openings / check-archived-derived-repos\n- audit-ci-gates 只改兼容入口传参——审计核心在 archived-20260910 冻结的\n 统一交付平台仓内,不可改\n- validate-new-platform-contracts、check-new-platform-contract-compatibility 与\n tests/new-platform-consumer-contracts:治理脚本与候选平台契约是两个基准,\n 原先共用一个变量,拆开\n- tests/helpers/devx-review-* 的 new URL 相对定位改走清单(pathname 对中文是\n 百分号编码,findWorkspaceRoot 认不出会回落到 cwd)\n\n验证:\n check-archived-derived-repos 13/13 冻结在 tag(原 0/13)\n audit-platform-openings 13/18 通过(原「应为 18,实际 0」)\n audit-ci-gates 18/18 结构通过,仅数量 19 vs 18(企业 IdP 已登记缺失)\n validate-new-platform-contracts 8 schemas / 19 accepted / 8 rejected\n check-new-platform-contract-compatibility 4 projects / 8 schemas / 19 types\n audit-foundation 恢复出具审计(原 exit 2 崩溃)\n tests/ 10/11 文件全绿\n\n余 new-platform-catalog-readiness 6 例失败,成因不是路径:阶段 4 改动了\nCHG-001 修订 6 的三个冻结输入,指纹失配,另行处理。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-14T21:52:14-07:00"},{"Sha1":"65c7ba829fdaa95b4373a4ced80246f6265b603c","Message":"feat(governance): 新增工作区一致性门禁,把迁移破坏类型固化成机器检查\n\n2026-09-14 迁移暴露的三类破坏都不在既有门禁视野里:判定逻辑按旧布局写死、\n冻结物摘要相符而内容过期、git worktree 两侧路径失联。新增 L1—L8 八项检查:\n\n L1 清单 layers/paths 声明的目录必须存在\n L2 `X/X/` 二次替换(替换脚本跑了两遍的痕迹)\n L3 旧层名残留(历史记录文件豁免)\n L4 受控 Markdown 本地链接可解析\n L5 Catalog / 候选清单登记路径可解析\n L6 worktree 两侧 gitdir 互指\n L7 冻结物摘要与磁盘内容一致\n L8 摘要相符但内容仍是旧布局 —— 本轮真正咬人的一类\n\n纯判定逻辑拆入 lib/workspace-consistency-core.mjs,7 个夹具用例覆盖正反向,\n其中一例直接锁住 L8 的教训:冻结 patch 摘要完好、内容仍写 `基础/\u003c平台\u003e`。\n门禁只读,不写任何文件;退出码 0/1/2。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-14T21:51:09-07:00"},{"Sha1":"f29bbbbeb8371825387d9437b91291af58f075d9","Message":"fix(governance): 基础审计改以清单定位基础设施层\n\n阶段 3 把 19 个平台仓从 基础/ 移入 企业控制面/,但 audit-foundation\n仍按 基础/ 的子目录枚举平台,且随后的机械替换把前缀改成了 平台治理/基础/\n——方向相反:那里只剩治理脚本与文档,平台一个也发现不了,\nclassifyDirectories 遂以 Invalid candidate directory 抛错,整条门禁跑不起来。\n\n- foundation-audit-core: 层前缀参数化(默认 企业控制面,可由调用方覆盖),\n 候选目录校验改用前缀比较而非硬编码正则;新增 externalDirectories,\n 使 工程基础框架 / 数字员工OS 这类跨层登记项不再被误判 missing-directory\n- audit-foundation: 平台层、框架真源仓与 OS 仓改由 workspace.json 解析\n (platformLayerRoot / frameworkSourceRepo / workspacePath)。\n try 块内 workspace 被同名 const 遮蔽,故派生路径一律在顶层先解析以避开 TDZ\n- 测试前缀改正,并补两个用例:跨层登记项、层名可覆盖\n\n回归:foundation-audit 11 → 13 用例全绿;audit-foundation 恢复可执行,\n阻塞项 8 项与迁移前基线逐项一致,派生仓发现 18/18。\ncontracts test 104 pass、governance test 193 pass、contracts check 4 项已知,\n三者亦与基线相同。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-14T21:50:36-07:00"}],"HeadCommit":{"Sha1":"d10dae4ab5cf2e2f61c009033f00970b9a51c600","Message":"fix(governance): 门禁按 workspace.json 定位平台层,恢复迁移后失效的审计\n\n阶段 3 把平台目录从 基础/ 移到 企业控制面/ 之后,仍按 resolve(scriptDir,'..')\n推导的门禁全部失效:派生仓探测不到 git 仓(13/13 missing-git-repo)、平台发现\n数为 0、候选契约 ENOENT、audit-ci-gates 直接 ERR_MODULE_NOT_FOUND。冻结证据\n一直都在,只是脚本找错了路。\n\nlib/workspace.mjs 新增平台层解析器:\n- platformLayerRoot 取清单 layers.基础设施,platformDir / derivedRepo 据此展开\n (git 仓在 \u003c平台\u003e/base-framework,不在平台目录本身)\n- frameworkSourceRepo 取清单 paths.baseFramework\n- discoverPlatformNames 以「含 base-framework/ 子目录」为判据,宿主仓\n enterprise-platform、真源仓 企业IdP快照 与四个无派生仓的候选目录据此自动排除,\n 不再维护 excluded 目录名黑名单\n\n改接清单的脚本与测试:\n- workspace-evidence-status / audit-platform-openings / check-archived-derived-repos\n- audit-ci-gates 只改兼容入口传参——审计核心在 archived-20260910 冻结的\n 统一交付平台仓内,不可改\n- validate-new-platform-contracts、check-new-platform-contract-compatibility 与\n tests/new-platform-consumer-contracts:治理脚本与候选平台契约是两个基准,\n 原先共用一个变量,拆开\n- tests/helpers/devx-review-* 的 new URL 相对定位改走清单(pathname 对中文是\n 百分号编码,findWorkspaceRoot 认不出会回落到 cwd)\n\n验证:\n check-archived-derived-repos 13/13 冻结在 tag(原 0/13)\n audit-platform-openings 13/18 通过(原「应为 18,实际 0」)\n audit-ci-gates 18/18 结构通过,仅数量 19 vs 18(企业 IdP 已登记缺失)\n validate-new-platform-contracts 8 schemas / 19 accepted / 8 rejected\n check-new-platform-contract-compatibility 4 projects / 8 schemas / 19 types\n audit-foundation 恢复出具审计(原 exit 2 崩溃)\n tests/ 10/11 文件全绿\n\n余 new-platform-catalog-readiness 6 例失败,成因不是路径:阶段 4 改动了\nCHG-001 修订 6 的三个冻结输入,指纹失配,另行处理。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-14T21:52:14-07:00"},"CompareURL":"luoanwu/platform-governance/compare/98ec9e9e61a1efb0e49011c06c28f63377accc23...d10dae4ab5cf2e2f61c009033f00970b9a51c600","Len":3}... |