# 慧博 10 分钟快速采集工具真实性能测试方案 V003 创建人员:`dev.developer.ana.cai` task:`DEV-ANA-HIBOR-FAST-COLLECTION-20260729-001` plan_id:`PERF-TEST-PLAN-ANA-HIBOR-FAST-COLLECTION-V003` owner / reviewer:`dev.developer.ana.cai` / `dev.reviewer.ana.cai` 前序:V001、V002 均保持不可变;V002 audit=`AUDIT-DEV-ANA-HIBOR-FAST-COLLECTION-REAL-PERFORMANCE-PLAN-V002=HOLD/1/1`,snapshot=`473533/edb4a93f6287a2515122c92b1b2c44e6fdc4f2190c5544005242f24bd6ee74de`。 实现基线:`AUDIT-DEV-ANA-HIBOR-FAST-COLLECTION-FORMAL-PLAN-RUNTIME-BINDING-IMPLEMENTATION-REREVIEW-001=PASS/0/0`,snapshot=`467815/cd787f0418351adafd13edd3ea1e91b964847b50d8bb6092d978e5ae7ee08bdb`。 ## 1. 继承与唯一修订 V003 完整继承 V002 已通过的 V004 TaskSpec、10-primary、额度、SLA、固定 `pdfinfo`、物理 plan、正式非 synthetic SUMMARY、证据根和管理授权边界。仅替换 V002 对“物理 plan 尚未成功冻结”的失败描述,并补齐执行协调者、时间来源和固定输出路径。 执行状态机严格分为: ```text PREPLAN -> PREPLAN_STOP(无有效 10-row plan;不得调用 SUMMARY) -> POSTPLAN(有效 plan + receipt 已冻结) -> POSTPLAN_SUMMARY(PASS / PERFORMANCE_FAILED / INSUFFICIENT_PERFORMANCE_SAMPLES) ``` PREPLAN 与 POSTPLAN 互斥。不存在有效物理 plan 时,禁止生成 `HIBOR_FAST_PERFORMANCE_SUMMARY_V003`;存在有效 plan 后,禁止再用 PREPLAN_STOP 掩盖已进入分母的样本。 ## 2. 固定执行根与协调者 固定 evidence root: `E:\mb-ms-doc\project-info\ana-data\tmp\HIBOR-FAST-PERFORMANCE-20260730-003` 固定目录/文件: | 阶段 | 路径 | |---|---| | 执行上下文 | `control/execution_context.json` | | discovery | `discovery/PERF-S01.json` … `PERF-S06.json`、`discovery/PERF-B01.json` | | 物理计划 | `control/performance_plan.json` | | 计划生成 request | `control/performance_plan_request.json` | | PREPLAN request | `control/preplan_stop_request.json` | | PREPLAN terminal | `preplan/preplan_terminal.json` | | PREPLAN manifest | `preplan/preplan_manifest.csv` | | V004 tasks | `tasks/PERF-S01.json` … `PERF-S06.json`、`tasks/PERF-B01.json` | | 每个 collector run | `runs//` | | SUMMARY request | `control/performance_summary_request.json` | | performance manifest | `package/performance_manifest.csv` | | performance summary | `package/performance_summary.json` | 协调者是当前 exact `dev.developer.ana.cai` 源线程,通过受审 Python 模块入口顺序启动 collector CLI 与 `hibor_fast_collection.performance`。协调者不解析正文,不直接操作模拟器缓存文件,不绕过工具的 quota、CreateNew、hash 或 terminal 合同。 所有控制 JSON、terminal、manifest、task 和输出均 CreateNew/no-overwrite;相同 canonical bytes 可 exact replay,不同 bytes 或非普通文件冲突即 STOP。不得删除、改名、截断或覆盖冲突对象。 ## 3. 时间来源与执行上下文 协调者在任何 APP/ADB 调用前,从单一 UTC wall-clock 读取一次 `execution_started_at_utc`,创建 `HIBOR_FAST_PERFORMANCE_EXECUTION_CONTEXT_V001`: 按顺序仅含: `schema_version,task_id,design_plan_id,evidence_root,execution_started_at_utc,timezone,trigger_cap,subjects`。 固定值:`task_id=DEV-ANA-HIBOR-FAST-COLLECTION-20260729-001`、`design_plan_id=PERF-TEST-PLAN-ANA-HIBOR-FAST-COLLECTION-V003`、`timezone=Asia/Shanghai`、`trigger_cap=10`、`subjects=[三环集团,国瓷材料,MLCC]`。 每个 discovery/task 的 `observed_at_utc` 由协调者在该请求被当前执行观察、创建对应 request/task 之前立即读取一次 UTC wall-clock,并固定在该文件;不得回填、复制前一项或晚于子进程启动。collector 内的 monotonic timing 仍是 SLA 权威。 若进入 POSTPLAN_SUMMARY: - `started_at_utc` 必须等于执行上下文的 `execution_started_at_utc`; - `ended_at_utc` 由协调者在最后一个 collector terminal 已闭合、SUMMARY request CreateNew 之前读取一次; - 必须满足 `ended_at_utc>=started_at_utc`; - 两值写入固定 `performance_summary_request.json`,不得由调用方在 summary 生成后修改。 若进入 PREPLAN_STOP:`started_at_utc` 同上;`ended_at_utc` 在确定 stop_code 后、PREPLAN request CreateNew 前读取一次。 ## 4. PREPLAN 门禁与停止分类 在有效物理 plan 与 receipt 冻结前,严格禁止 quota `RESERVE`、下载 tap、pull、PDF 发布、V004 collect/batch task 和正式 SUMMARY。允许的动作仅为:工具/设备/package/cache 预检、无写入 dry-run、额度 snapshot/必要的 `APP_RECONCILE`、只读 discovery、控制证据 CreateNew。 PREPLAN stop_code 固定枚举: | stop_code | 条件 | |---|---| | `PRECHECK_FAILED` | 工具/cwd/设备/package/cache/dry-run 任一失败或不确定 | | `ACCESS_CONTROL` | 登录、验证码、付费、订阅或权限边界出现 | | `QUOTA_INSUFFICIENT` | safe_available 小于 10,无法执行完整固定 10-primary;不得创建缩减 plan | | `DISCOVERY_FAILED` | discovery 子进程失败、超时、输出无效或 liveness 不确定 | | `CANDIDATES_INSUFFICIENT` | 三类主题无法形成固定顺序的 10 个不同合格 report identity | | `PLAN_CREATE_FAILED` | 计划 request/plan CreateNew、canonical、schema、bytes/hash receipt 失败或冲突 | | `STATE_UNCERTAIN` | 任一事实无法安全分类;治理 exit=27 | 上述分支的正式结果是 `PREPLAN_STOP`,不是 `INSUFFICIENT_PERFORMANCE_SAMPLES`。`QUOTA_INSUFFICIENT` 和 `CANDIDATES_INSUFFICIENT` 只是 stop_code,不得伪造物理 plan 或进入 SLA 分母。 ## 5. PREPLAN terminal 与 manifest 计划复审 PASS 后、真实性能授权前,需在现有 `hibor_fast_collection.performance` 增加并独立审核 `PREPLAN` 写入入口;未通过实现复审不得申请真实执行授权。 `preplan_terminal.json` schema=`HIBOR_FAST_PREPLAN_TERMINAL_V001`,按顺序仅含 20 键: `schema_version,task_id,design_plan_id,execution_started_at_utc,ended_at_utc,phase,status,stop_code,exit_code,evidence_root,plan_path,plan_presence,plan_bytes,plan_sha256,discovery_completed,qualified_candidate_total,reserve_count,trigger_count,quota_write_count,blockers`。 固定交叉规则: - `phase=PREPLAN`、`status=STOPPED`;普通已知 stop `exit_code=10`,`STATE_UNCERTAIN` 为 27; - `plan_presence=N|A|I|U`;PREPLAN_STOP 不允许 `V`;`N/A` 时 plan bytes/hash 为 null,`I` 时记录实际已安全读取的 bytes/hash,`U` 时均为 null; - `discovery_completed` 为 0..7;`qualified_candidate_total>=0`,只统计五字段完整、身份可复算且未重复的候选; - `reserve_count=0`、`trigger_count=0` 必须恒真; - `quota_write_count` 仅允许 0 或已持久化的 `APP_RECONCILE` 数,绝不包含 RESERVE/CONSUME/ARTIFACT; - `blockers` 至少一项且第一项等于 stop_code。 `preplan_manifest.csv` 固定列: `evidence_type,path,bytes,sha256,status`。 行顺序为:execution context、已成功创建的 discovery 文件(固定 slot 顺序)、可安全读取的 plan request/plan(如有)、preplan terminal。只登记普通非链接文件的实际 bytes/hash;不存在或未知对象不造行。manifest 自身不自哈希。 PREPLAN CLI 固定 request 按顺序仅含: `kind,terminal_value,evidence_root,evidence_paths`,其中 `kind=PREPLAN`。固定输出为 `--output preplan_terminal.json --manifest-output preplan_manifest.csv`;入口验证 terminal schema/交叉字段、evidence root containment、证据 bytes/hash后,以 CreateNew/exact replay 写 terminal 和 manifest,并向调用方返回两者 path/bytes/hash receipt。任何 drift 不暴露为有效 receipt。 ## 6. POSTPLAN 切换门禁 只有同时满足以下条件才从 PREPLAN 原子逻辑切换为 POSTPLAN: 1. `performance_plan.json` 是普通非链接文件、strict canonical JSON,schema=`HIBOR_FAST_PERFORMANCE_PLAN_V002`; 2. 顶层/entry/expected-report 键序、10-row 数量、三环集团/国瓷材料/MLCC 固定顺序、唯一 identity、batch I01–I04 与 discovery hash 全部通过; 3. plan CreateNew receipt 的 bytes/SHA-256 已写入协调者内存及后续所有 task/SUMMARY request; 4. reserve count=0、trigger count=0;未发生 collect/batch task; 5. current quota safe_available 仍>=10,子进程 liveness 已知为 0。 满足后,PREPLAN terminal/manifest 均不得创建;物理 plan 及 receipt 成为 POSTPLAN 权威。后续执行完整继承 V002 第 5–9 节:六个 V004 collect-one、一个 V004 batch(4)、最多 10 trigger、所有已 reserve 样本保留在分母、最后走正式非 synthetic SUMMARY。 计划成功后若只完成 0..9 个有序 primary,正式 builder 可读取有效 10-row plan 和对应 evidence reference 前缀,结果为 `INSUFFICIENT_PERFORMANCE_SAMPLES`;任一已 reserve 样本失败则为 `PERFORMANCE_FAILED`;10/10 与所有 SLA/证据通过才为 `PERFORMANCE_PASS`。 ## 7. 可执行验收矩阵 在请求真实授权前,新增 PREPLAN 入口必须完成静态/单元/fake 测试并由 `dev.reviewer.ana.cai` 独立 PASS: | case | 预期 | |---|---| | 工具/设备预检失败 | PREPLAN_STOP/PRECHECK_FAILED;reserve=trigger=0 | | 登录/验证码/付费 | PREPLAN_STOP/ACCESS_CONTROL;无绕过 | | safe_available=9 | PREPLAN_STOP/QUOTA_INSUFFICIENT;无缩减 plan | | discovery 超时/无效/liveness unknown | 对应 DISCOVERY_FAILED 或 STATE_UNCERTAIN;无 reserve/tap | | 仅 9 个不同合格候选 | PREPLAN_STOP/CANDIDATES_INSUFFICIENT;plan absent | | plan CreateNew 冲突/partial/非 canonical | PREPLAN_STOP/PLAN_CREATE_FAILED;冲突不覆盖 | | PREPLAN terminal/manifest 同字节 replay | 接受并返回相同 receipt | | PREPLAN terminal/manifest drift | 拒绝,不暴露冲突文件为有效输出 | | 10-row plan 成功 | 不创建 PREPLAN 输出,进入 POSTPLAN,reserve/trigger 仍 0 | | plan 后只完成 7 个有序样本 | 正式 SUMMARY=`INSUFFICIENT_PERFORMANCE_SAMPLES` | | plan 后一个已 reserve 样本失败 | 正式 SUMMARY=`PERFORMANCE_FAILED`,失败留在分母 | | 完整 10 样本 | 仅全部 SLA/PDF/manifest/quota 通过才 PASS | 所有 fake 测试不得运行真实 ADB/APP、不得创建真实额度事件或触发下载。真实执行时任何 pre-plan stop 仅返回 PREPLAN package;任何 post-plan stop 仅返回物理 plan 与可验证实际子集,不得混合两个终态。 ## 8. 审核与授权边界 本 V003 先提交 exact `dev.reviewer.ana.cai` 独立方案复审。方案 PASS 后,只允许实现并审核第 5 节 PREPLAN 写入入口及协调时间/路径合同;实现 PASS 后才可向 `management.admin` 请求一次真实 APP/ADB、最多 10 trigger 的性能执行授权。 V003 PASS、PREPLAN 实现 PASS 均不是 APP 执行授权。真实执行、quota、下载、性能样本、数据库、正文分析和 BATCH-001 在管理明确授权前全部禁止。 当前状态:`PENDING_INDEPENDENT_REAL_PERFORMANCE_PLAN_V003_REVIEW`。真实 ADB/APP/discovery/download/trigger/quota increment/performance sample/database=`0/0/0/0/0/0/0/0`。