From b0592d8ffe6d379c0511fb51d53f3ed8149b57cb Mon Sep 17 00:00:00 2001 From: unanmed <1319491857@qq.com> Date: Fri, 18 Sep 2026 09:41:24 +0800 Subject: [PATCH] docs(04): mark the read-only audit plan as reversible --- .planning/phases/04-render-adaptation/04-01-PLAN.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.planning/phases/04-render-adaptation/04-01-PLAN.md b/.planning/phases/04-render-adaptation/04-01-PLAN.md index e0c4785..19ba6bb 100644 --- a/.planning/phases/04-render-adaptation/04-01-PLAN.md +++ b/.planning/phases/04-render-adaptation/04-01-PLAN.md @@ -143,6 +143,7 @@ Output: `04-RENDER-INTERFACE-AUDIT.md`(本 run 唯一新增产物;零生产 (6) 写 `## 触发序列(举例)`(至少 1 条:渲染端调用 → 按旧形状解读 → 结果偏离的链路)、`## 判定为「匹配」的同类边界`(至少登记 `core.material.*` 素材族为何不算数据端错配,并给出判据)、`## 未能从阅读确定(未猜测)`(本 tracer 阶段至少登记「② 节是否有缺失项」的不确定性来源)、`## 处置`(含:本步只读;后续适配实施与双布局未在本 run 规划、由用户在对账结果出来后决定拆分;双布局既有资产 `packages-user/client-modules/src/render/use.ts` 的 `Orientation` / `onOrientationChange` 与 `packages-user/client-modules/src/shared.ts` 的布局常量仅登记为后续起点,不展开)。 (7) 全程不得修改任何被查源码;本任务只写审计文档一个文件。 + 审计文档是只读清点的记录,可随时修订或废弃;它不引入生产代码、公共接口或契约约束,因此这一步的任何取舍都不难回退。 node -e "const fs=require('fs');const p='.planning/phases/04-render-adaptation/04-RENDER-INTERFACE-AUDIT.md';const t=fs.readFileSync(p,'utf8');const need=['## \u80cc\u666f','## \u65b9\u6cd5','## \u53d1\u73b0','## \u2461 \u6570\u636e\u7aef\u7f3a\u5931\u63a5\u53e3','## \u89e6\u53d1\u5e8f\u5217\uff08\u4e3e\u4f8b\uff09','## \u5224\u5b9a\u4e3a\u300c\u5339\u914d\u300d\u7684\u540c\u7c7b\u8fb9\u754c','## \u672a\u80fd\u4ece\u9605\u8bfb\u786e\u5b9a\uff08\u672a\u731c\u6d4b\uff09','## \u5904\u7f6e'];const miss=need.filter(h=>t.indexOf(h)<0);if(miss.length>0){console.error('MISSING HEADINGS '+miss.length);process.exit(1)}const rows=t.split(/\r?\n/).filter(l=>/^\|\s*#04-01-[ML]-\d+\s*\|/.test(l));const bad=rows.filter(l=>!/:\d+/.test(l));if(rows.length<2||bad.length>0){console.error('BAD FINDING ROWS '+rows.length+'/'+bad.length);process.exit(1)}if(t.indexOf('#04-01-M-')<0||t.indexOf('#04-01-L-')<0){console.error('MISSING CATEGORY PREFIX');process.exit(1)}if(t.indexOf('\u2461\u8282\u7ed3\u8bba')<0){console.error('GAP SECTION WITHOUT CONCLUSION');process.exit(1)}console.log('OK headings 8 findingRows '+rows.length)" non-zero exit, 或 stderr 含 "MISSING HEADINGS" / "BAD FINDING ROWS" / "MISSING CATEGORY PREFIX" / "GAP SECTION WITHOUT CONCLUSION"