Skip to content

SW-1 Lead 独立审计与真实 UI 复验方案(2026-09-28) ​

1. 裁定与事实边界 ​

本文件是 Lead 对 SW-1 原合同 和实施方未提交 §6 的独立审计及下一步唯一方案。当前审计基线为 65f82c1a22862af9d1cddcee11b8c7a7028bd94a;执行前必须重核 HEAD、状态和真实远端,不能把这个快照当未来事实。产品代码提交已在本地 main,但实施记录、索引、归档和 locator 布局补丁尚未提交;共享区另外四项他方 WIP/trace 原样保全。

SW-1 合同整体 = REPAIR REQUIRED;正式真实 UI E3 = NOT SATISFIED;启动时间稳定性改善 = NOT PROVEN;A1 正式 UI E4 = OPEN;Phase C Hybrid = FROZEN。 这不是说实验代码已证明有缺陷,而是实施方把「包内核心的命令入口」误标为「App SwiftUI 入口」。原 E3 脚本直接 subprocess.Popen 包内 perfowl_collector_core stream --prewarm,再向 stdin 发送 prepare_app → start → stop;它没有通过 App 的 perfowl.capture.toggle 操作,也没有由 App 自身启动该核心。它产出的两份真机 Raw 是有效的命令入口辅助证据,不能充当原合同要求的两份真实 UI Session。相同 CapturePlan/hash 只证明 Start 后配置,不证明入口、预热、App 生命周期相同。

已独立复核的子事实:聚焦 144/144 测试通过(需设置测试导入路径);实验 ZIP SHA-256 为 4234c273995e5f2e86c4043533e0f83752d2a8fa9c67a62ceba7b169d8fd0216,独立解包 App 的 deep-strict 签名、Gatekeeper、stapler 与 notary Accepted 成立;两轮 Raw SHA 与清单相符,分析前后各 30/30 文件相同,离线 OFF 主字段重放差异为空。命令入口 OFF 轮 CLOSER-ONLY,ON 轮 OPENER-ONLY;ON manifest Enabled=true、Eligible=false、ExtensionApplied=false、reason=scene-open-phase-absent,故没有发生延长。全量 Sidecar 六项异常的基线同形归因仍须保留原始双侧日志供 Lead 复验;目前独立证据只足以确认聚焦 144 项。

实施方待提交的公开 devlog 含两处真实 PID(其中一处在历史样本描述、一处在 O1 closer 归属),违反 AGENTS.md 隐私边界;归档虽未显示同样数字,也必须逐文件扫。公开材料只写「目标进程」「其他进程」「身份未知」,原始数字只留私有证据。索引/归档里「真实 UI 两轮」「E3 已完成」及「E4 inconclusive」必须改为命令入口辅助实验 inconclusive;正式 UI E3 未满足、E4 未评估。已经测得的 Raw/hash/端点数字不能抹掉或改写,只改证据等级与归属。

2. R1 · 最小文档和交付修正(Implementation AI;不采新会话) ​

  1. 先冻结当前 Git 状态和受保护四项 WIP 指纹;仅操作原 SW-1 devlog §6、site/devlog/index.md 的本批新增文字、新增未发布归档 HTML,以及本批 locator 的平铺/嵌套布局兼容补丁。不得触碰已发表历史数字、旧归档、原 Session、产品代码或首页 WIP。若这些路径已被他方推进,停止并交 Lead 比对。
  2. 将两轮统一命名为「包内核心命令入口真机辅助轮」。如实保留 OFF/ON 开关读回、配置、hash、locator、stop/资源、主字段重放、未 applied、同域时间 null 等测量;把正式 UI E3 标为未满足,不把辅助轮算作真实 UI 轮次,也不推出稳定性提升。把「无功能性偏差」更正为「存在实质性入口偏差」;不要把现场实验的 inconclusive 写成正式 UI E4 判定。
  3. 对 devlog、索引、归档的新增内容做隐私扫描,去除真实 PID、设备身份、Bundle ID 等公开泄漏;私有目录保留原始值。核对归档与源 devlog 的状态、数字和入口一致,严格 HTML 标签校验。locator 28 行布局补丁的算法与身份门不变,用聚焦测试复核;PYTHONPATH=tests:. 下 144 项通过才报告 144/144。全量六项异常若无可核双侧日志,只列「基线归因未独立闭合」,不得写成已证明零回归。
  4. 运行文档知识门禁与站点 build(只构建,不部署生产),验证归档同步、死链、diff check 和本批隐私零命中。显式暂存且仅提交上述四条本批路径;先核对 staged 清单与他方 WIP 不相交。普通推送 GitHub 一次、GitLab 最多一次;GitLab 失败单列 partial,不重试、不阻断其他技术工作。按 AGENTS.md 发送单次交付 Webhook,报告真实状态与产物;不要把网站生产发布冒充本批交付。完成后交 Lead 独立复核 R1,未经复核不要开始 R2。

R1 交付门:修正后的仓库材料明确区分命令入口与 UI 入口,公开隐私扫描零命中,原始数值/旧归档不变,构建通过,范围与远端/Webhook 状态完整。R1 是证据归类和交付修正,不给 SW-1 产品 E4 PASS。

3. R2 · 真实 App UI OFF→ON 复验(Test AI 执行;Lead 独立判定) ​

仅在 R1 经 Lead 复核后实施。 复用当前已公证的 experimental ZIP;不重建、不安装覆盖原 App、不改 Collector/算法/过滤/Total/质量,也不改默认 OFF。使用一处私有批次目录和先前已验证的 AX 驱动思路;只允许少量适配脚本,不新增常驻 worktree/venv。设备 A、目标 App A、同一 controlled-cold-launch、只选 Startup Timing 的 12 项、关闭产品截图指标。原两份命令轮作为辅助对照,不冒充本轮基线。

R2-0 无 Session 预检(失败即停,不消耗轮次) ​

  • 核实验 ZIP、独立解包 App 可执行与包内核心的完整 SHA、版本、签名/staple/Gatekeeper;确认界面进程执行路径确为该解包 App,而非旧 /Applications 或别的构建。确认设备经 USB 在线、GUI 已解锁、辅助功能可读;旧 App/旧预热核心退出,且无同名进程占用目标 Session 库。
  • 通过真实 AX 控件选择设备/目标 App/Startup Timing 组并确认截图组关闭;记录界面 Ready 状态、指标组状态、perfowl.capture.toggle 可用性与进程树。不得以 wire prepare_app_accepted 替代 App Ready。
  • OFF 启动 App 时不带实验环境变量;ON 完整退出 App 与它派生的预热核心,再以实验变量 1 启动同一个 App 包。预检保留两个不同 App PID、预热核心 PID/父子关系/可执行路径,并核对启动命令的环境设置与子进程继承方式;实际核心开关值以采集后的 manifest 读回为准,若不符即 INVALID、计入轮次且停止,不补刷。不能用直接启动 Core 或全局常驻环境变量冒充 App 启动。

R2-1 最多两份真实 UI Session ​

仅 OFF→ON 各一轮,包括 INVALID 轮也占预算;每轮真实 AX 按 perfowl.capture.toggle Start 一次、30 s 后 Stop 一次,前后保存界面状态、操作时间/结果、App 与其子核心进程关系、Session 库差集。任何轮次不能调用 Core wire start/stop;不能用 CLI finalize 回写原 UI Session。每轮封存前记录 App 原生 live/final,封存后在字节隔离副本上离线分析。

逐轮断言:App/核心确来自同一实验 ZIP;核心 manifest 的开关读回分别 OFF/ON;capturePlanHash、12 个 metricID、registryHash、identity、四类 kdf2、csd=0、bm=0、rp=100、exact-debug-id、来源 start/stop/restart 与冻结配置逐项一致。任一开关或配置不合格,标 INVALID、执行安全 Stop,不补刷。先全文件封存,再只读 locator/原生报告/隔离回放,结束后逐文件重算 SHA/size/mtime;明确 active 与 post-stop-drain 窗口,不把离线诊断冒充 App 原生报告。

每轮 wall ≤120 s、Raw ≤1 GiB;触线即通过真实 UI Stop,标 safety-aborted 并停止余下轮次。宿主 CPU/RSS/I/O 以 ≤1 Hz 有界采样,受策略阻止的值保留 unknown;不加压、不改 drain 或采样过滤。采样是 O(轮次时长) 次轻量进程快照;每个 Session 的 hash/locator 是 O(Raw 字节) 单遍顺序读取,常驻分析内存有界,无反复全量复制。预期采集窗固定 30 s/轮,含准备和收尾每轮不得超过 120 s,超时停止而非等到完成。

R2-2 Lead 判据 ​

  • 先判入口有效性:AX Start/Stop、App 子核心、App Session 库产物、同包/同配置/正确开关,任一缺失即不能称正式 UI E3。
  • ON Eligible=false 或 ExtensionApplied=false:真实 UI 实验仍是 inconclusive,不得从不同轮的 opener 数量推出效果;最多两轮后即停。ON applied 但目标线程仍无 opener/合法 closer:本轮不支持窗口假设,Lead 转源丢失/线程/代际取证,不再加时长或刷次数。
  • 只有 ON applied、目标同线程同代际 opener + 合法 closer、原生 candidate 成立,且端点的主机收到时间晚于 ExtensionStartedMonotonicNs(同域 base 截止),才可判本轮支持「延长保留了端点」。若 base 截止或收到时间缺值,因果结论为 unknown;不得把 0 解释成“截止前”。即使该轮阳性,两轮也不证明稳定性提高,A1 正式 UI E4 继续 OPEN;跨设备/配置重复与生产最小修复须另定方案。
  • 原文件变化、跨线程/跨进程拼链、Stop 失效、预算越界、OFF 语义回归:REPAIR REQUIRED;记录原因,不平滑数据。

R2 仅交 Test AI 原始证据与独立分析,不在 Test AI 自评中判产品 PASS;Lead 收到后复核并更新 handoff。Network、FrameTime、Phase C 与首页改版均不并批。

4. 效率与交付门 ​

R1 不新增进程常驻环境或重建包;对文字/归档做窄范围编辑与一次站点构建。R2 不重复原命令入口实验,不增加轮数;准备失败在 Start 前短路。采集最长两轮 ×120 s,正常观测两轮 ×30 s;离线顺序扫描各一次,吞吐与内存记录随证据交付。没有前后性能/资源或首响应、Stop 响应数据时,不能描述为效率目标已通过;若目标机负载异常到无法可靠采集,先停并报环境阻塞,不用等待/重试掩盖。

交付包括:真实当前 HEAD/parent/status、所有本批路径、私有 Session 与 RAW/blob 完整 SHA、UI AX 操作日志和进程/包来源、配置差分、原生与离线报告、locator 身份/端点/同域时间、性能/资源/安全边界、GitHub/GitLab 各一次状态和 Webhook 结果。公开材料只用设备 A / 目标 App A 别名;私有原始证据不上传。

5. Lead R1 独立复核与 R1a 看板最小返工(2026-09-28) ​

Lead 对 Implementation 的 647b0d6b027c990f6cf637034cae744d0a1597b5(parent 5d700fa)独立复核:提交恰含原 SW-1 devlog、索引、新增 HTML 归档、locator 四文件(+392/−6);GitHub/GitLab 实时 main 同为该提交。聚焦 144/144 测试独立复跑通过;locator 差异仅新增平铺/嵌套路径解析并替换四处取路径点;新归档 SHA-256 23c5777987c4633c8f0b088fb9a6e29eeca4dfba2b653e4b235d3e2582594bf4 与构建同步副本一致,严格 HTML 标签 0 错/0 未闭合;docs/ 相对 parent 仅新增本批归档,无旧归档修改。新增行中未发现真实 PID、UDID 或目标 Bundle ID 数值,工作树仍只有四项受保护他方 WIP。代码与产品 Session 未因 R1 改动。

R1 文档/看板收口 = REPAIR REQUIRED(只剩一个看板行的两个文案问题),不放行 R2。 site/devlog/index.md「未关门门禁」的 P4 SW-1 行虽然在状态栏后半追加了 2026-09-28 正确更正,但在同一当前状态栏前半仍独立写 E4 inconclusive(ON未eligible、两轮形态不满足),未指明这是命令入口辅助实验;读者在读到后半更正前仍会把它误当正式 UI E4。该行「下一动作」栏仍要求 Lead 决定是否加遥测/冻结实验,已被本方案 R1→R2 顺序取代。两栏必须表达同一当前门禁,不能靠远处增量句纠正当前表格的过期动作。

R1a 唯一允许范围(Implementation AI,文档微修):只改上述 P4 SW-1 当前门禁行,保留已测数字和旧历史段;将裸 E4 inconclusive 限定为「命令入口辅助实验 inconclusive」,同栏保留「正式真实 UI E3 NOT SATISFIED / E4 NOT EVALUATED」;将右侧下一动作更新为「R1a 经 Lead 复核后,由 Test AI 按本方案 §3 R2 通过真实 App UI 做 OFF→ON 最多各一轮;不先改产品代码/加遥测,不自行扩样」。整行之外不得改别的索引内容、devlog、归档、locator、产品或原始 Session;如发现不可只改本行,先停报 Lead。严格审计唯一删除行为该超长表格行的整行替换,运行 git diff --check、站点知识门禁与构建、确认归档源及旧归档 SHA 不变;窄范围提交仅 site/devlog/index.md。GitHub 普通推送一次、GitLab最多一次,失败不重试且状态单列;按交付规则通知。Lead 复核该行两个栏位与范围后,R1 才可关闭,继而进入 R2。不需要新 HTML 归档,因本次只纠正尚未发布网站的当前索引看板,归档正文与入口分类已正确。

6. Lead R1a 独立验收与 R2 放行(2026-09-28) ​

Lead 对 Implementation ad14e6fee72c214a51054857f6d13af2bb917744(parent 5c6e0b7)按 §5 独立复核:相对 parent 仅 site/devlog/index.md 第 294 行整行替换(+1/−1),行数不变,其余正文逐行相同;实测数字的行前段逐字保留。状态栏裸 E4 inconclusive 已变为「命令入口辅助实验 inconclusive」,同栏明确正式真实 UI E3 NOT SATISFIED、E4 NOT EVALUATED;下一动作栏已改为 §3 的真实 App UI OFF→ON 最多各一轮,旧「加遥测/冻结实验」动作不再是当前指令。git diff --check 干净,新增行未含真实身份值;归档源及同步副本 SHA 仍为 23c5777987c4633c8f0b088fb9a6e29eeca4dfba2b653e4b235d3e2582594bf4、相对 parent docs/ 零变化。实施方站点日志记录知识门禁 66 contracts、归档同步 283 文件、build exit 0;Lead 检查了该日志。GitHub/GitLab 实时 main 均为 ad14e6f,工作区仍仅有四项他方 WIP;未发现本批改动原 Session、产品代码或旧归档。

裁定:R1 + R1a 文档/证据归类收口 PASS(仅文档交付门);R2 真实 App UI 复验现在放行给 Test AI,按本页 §3 严格执行。 这不等于 SW-1 窗口假设阳性:命令入口辅助轮仍是 inconclusive,正式 UI E3 尚未执行、E4 仍 NOT EVALUATED,A1 正式 UI E4 继续 OPEN、Phase C Hybrid FROZEN。R2 不先修改产品或增设遥测;最多 OFF→ON 各一轮,INVALID 也计数,采完交 Lead 独立判定。不得由测试执行方自判稳定性提高或开启 Network/FrameTime/Hybrid。

Perfowl · Performance Observer