# 慧博 10 分钟快速采集工具真实性能测试方案 V001 创建人员:`dev.developer.ana.cai` task:`DEV-ANA-HIBOR-FAST-COLLECTION-20260729-001` plan_id:`PERF-PLAN-ANA-HIBOR-FAST-COLLECTION-20260730-001` owner / reviewer:`dev.developer.ana.cai` / `dev.reviewer.ana.cai` 请求来源:`HANDOFF-YANBAO-DEV-ANA-HIBOR-FAST-COLLECTION-TOOL-20260729-001`、`HANDOFF-YANBAO-DEV-ANA-HIBOR-REAL-TEST-SUBJECTS-20260729-001`。 实现基线:`CODE-DESIGN-ANA-HIBOR-FAST-COLLECTION-V011=PASS/0/0`;`AUDIT-DEV-ANA-HIBOR-FAST-COLLECTION-IMPLEMENTATION-V001-REREVIEW-003=PASS/0/0`,audit snapshot=`445118/7396c2b94345b40efe76a7e75c2c947966d6a7e6727acf1a251b648e5fb22d9a`。 ## 1. 目标与非目标 本阶段只验证已通过实现审核的工具在真实慧博 APP 环境中的性能与证据闭包: - 单份正常样本 median `<=480000ms`,nearest-rank P90 `<=600000ms`; - 每份到 600 秒必须以 `TIME_BUDGET_STOP` 收口,不得静默继续; - 同查询 batch 的 I01 `<=600000ms`,I02–I04 相邻 item terminal 增量各 `<=240000ms`; - 10/10 计入样本均需 PDF magic、remote/local bytes 与 SHA-256、openability、page count、manifest、quota ledger 通过; - 输出 UI/cache/copy/validation/manifest/terminal 分阶段耗时及失败 blocker。 本阶段不解析研报正文、不生成研究结论、目标价或交易建议;不执行数据库、网络抓取、账号操作、BATCH-001 或外部消息写入。 ## 2. 固定环境与工具边界 | 对象 | 绑定 | |---|---| | Python | `C:\Users\Cai\.cache\codex-runtimes\codex-primary-runtime\dependencies\python\python.exe`;`91648/3c6a206b7d93cca823934a83732220dcffd413fd1036d9fb82eebb64599cf7f3` | | ADB | `D:\platform-tools\adb.exe`;`6641760/1e1c2280b90b3f01ad84cd8df4858b1b1995012814f3ca8893bcc3ba3848edec` | | pdfinfo | `C:\Users\Cai\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\poppler\Library\bin\pdfinfo.exe`;`65536/bc2c0f980c9a2a29cd1e06aacd8d1c7b67a5304e9d1d6f75190bdeb9c81a4365` | | Android package | `cn.com.hibor` | | cache | `/sdcard/Android/data/cn.com.hibor/files/myfile/` | | project output root | `ana-data/tmp/HIBOR-FAST-PERFORMANCE-20260730-001/` | | current-day ledger | `ana-data/tmp/report-collection-control/daily_quota_.csv` | | historical baseline | `daily_quota_2026-07-29.csv` 必须保守登记中国中免 3 次已知 distinct trigger | 仅允许顺序启动:一次 Python dry-run;一次历史账本基线登记(仅在该文件不存在时);最多七次真实 CLI(六次 collect-one、一次 batch);一次只读汇总/正式 performance package 写入。CLI 内部仅允许已审核的 ADB/pdfinfo 子进程。不得并发启动两个真实采集任务,不得使用额外 PowerShell/Node/浏览器作为候选采集或后处理工具,也不得手工复制绕开工具闭包;Codex host shell 仅用于启动上述已绑定 Python 命令。 ## 3. 执行前门禁 任何真实 reserve/点击前必须全部通过: 1. 重新校验上述 Python/ADB/pdfinfo 普通文件、bytes/hash,项目 cwd=`E:\mb-ms-doc\project-info\dev\ana-dev`。 2. `python -m hibor_fast_collection --task --dry-run` 返回 V009 terminal、exit 0、ADB action=0、trigger=0、quota write=0。 3. 只读确认单一可用 MEmu device、package=`cn.com.hibor`、cache 可读、APP 可见且无登录/验证码/付费/订阅/权限阻断;多设备或身份不确定立即 STOP。 4. 若 `daily_quota_2026-07-29.csv` 不存在,使用已审核 `QuotaLedger.initialize` 仅追加 `BASELINE_ESTIMATE=3`,evidence_ref=`HIBOR-CHINA-DUTYFREE-20260729-001`;若存在则只读复核,不覆盖、不降低。 5. 对执行当日先读取 APP visible remaining 并写 `APP_RECONCILE`。`safe_available=max(0,27-confirmed-uncertain-active)`;不足 10 时只允许执行实际安全子集并返回 `INSUFFICIENT_PERFORMANCE_SAMPLES`,不得越过 27。 6. 在第一次 reserve 前完成只读候选发现,生成一次 `performance_plan.json`;CreateNew、不可覆盖。每行固定:`plan_id,created_at_utc,slot_id,mode,batch_id,item_order,query,expected_report_identity,external_exclusion_allowed,selected_from_readonly_discovery`。文件 bytes/hash 登记到 performance manifest。 门禁失败不消耗 trigger;保留已产生的普通预检证据并停止,不自授权修复环境或绕过访问控制。 ## 4. 固定样本结构与候选规则 | slot | mode | query pool | 目标 | |---|---|---|---| | `PERF-S01`,`PERF-S02` | collect-one | 三环集团 | 两个不同 report identity | | `PERF-S03`,`PERF-S04` | collect-one | 国瓷材料 | 两个不同 report identity | | `PERF-S05`,`PERF-S06` | collect-one | MLCC | 两个不同 report identity | | `PERF-B01-I01..I04` | 同一 batch(quantity=4) | MLCC | 四个不同 report identity | | `PERF-A01..A03` | no-trigger alternate | 三环集团 / 国瓷材料 / MLCC 各一 | 仅替换 reserve 前 external-excluded primary | 候选必须使用正式硬过滤、评分、3–5 屏早停与 20 屏/100 候选硬上限。十个 primary 的 `expected_report_identity` 在只读 discovery 后锁定;重复、主体不唯一、字段不完整、已在本计划占用、需要登录/付费/权限的候选不得进入 primary。alternate 只能在 primary 尚未 reserve/点击时替换,且总 distinct new trigger 仍 `<=10`;不得触发第 11 份。 每个 slot 使用唯一 task_id、handoff_id、performance_slot_id,全部绑定本 plan_id。六次 collect-one 的后续任务通过已锁定 identity/exclude 约束避免 PROJECT_REUSE 冒充新性能样本;任何 pure reuse 记录为 `NO_TRIGGER_REUSE_NOT_IN_SLA_POPULATION`,不消耗 trigger,也不能补足 10 样本。 ### 4.1 TaskSpec 生成合同 所有 dry-run/真实任务都使用 `HIBOR_FAST_TASK_SPEC_V003` 的既有 43 键顺序,不增删字段。公共值固定为: - `project_id=project-info`;`source_role_instance_id=requester=case_analysis.report_collector`;`source_thread_id=reply_thread_id=019fa8b1-ba04-74a0-883a-e4451bc24503`;`target_role_instance_id=dev.developer.ana.cai`;`target_thread_id=019f8057-49c9-7410-8772-76429bed4909`;`review_owner=human_user_current_thread`。 - `output_root=ana-data/tmp/HIBOR-FAST-PERFORMANCE-20260730-001/output`;`destination=ana-data/tmp/HIBOR-FAST-PERFORMANCE-20260730-001/archive`;quota、tool、package、cache 使用第 2 节绑定。 - `minimum_pages=1`,`min_screens=3`,`normal_max_screens=5`,`hard_max_screens=20`,`hard_max_candidates=100`,`close_reserve_ms=30000`,`batch_increment_budget_ms=240000`。 - collect-one:`quantity=1,total_budget_ms=600000`;batch:`quantity=4,total_budget_ms=1320000`。`performance_plan_id` 固定为本 plan_id,`performance_slot_id` 为表中 slot/batch id。 - `observed_at_utc` 在对应 CLI 启动前立即生成;task_id/handoff_id 唯一且不可复用于另一个 primary。query 仅来自三类授权池;aliases/institutions/analysts/date_range/exclude 只允许取自已锁定的只读 discovery 事实,用于命中 expected identity 与排除已占用 identity,不得扩展主题。 task JSON 是普通内部控制文件,按语义验收和 CreateNew 保存;一旦该 slot 已 reserve,不得修改该 task。run_id 继续由已审核实现从完整 TaskSpec 确定性派生。 ## 5. 额度、失败与恢复 - reserve 前写 `RESERVE`;稳定新增 cache 后写 `CONSUME_CONFIRMED`;无法确认写 `CONSUME_UNCERTAIN`;确认未触发才写 `RELEASE`。 - damaged/non-PDF/duplicate/failed-after-trigger/uncertain 均按正式规则消耗;active reservation 始终占用 safe limit。 - slot 第一次成功 RESERVE 即进入 SLA 分母。触发后的 timeout、internal、validation、mapping、quota-state failure 不得排除或重跑成新样本。 - 只有 reserve 前已证明的登录/验证码/付费/权限、模拟器离线、APP 服务不可用或报告不可访问可使用预登记 alternate;证据为开始/结果/详情/结束截图、UI dump 和 terminal。 - 任务失败可重放同一 task/run 以验证幂等,但 terminalled reservation replay 不得再次点击;重放不算新样本。不得删除、改写或重命名远端缓存原件、账本事件、已发布 PDF 或正式 package。 - 当日额度不足、候选不足或外部 blocker 导致少于 10 个有效样本时,返回有效子集并顺延;不得扩展到三个授权主题以外。 ## 6. 逐项执行与时间定义 1. 先依次执行 `PERF-S01..S06`;每项 observed_at 是正式 task 被当前执行观察的 UTC 时间,item close=`observed+600s`,work close reserve=30s。 2. 再执行 `PERF-B01`;I01 从 batch observed 到 I01 terminal,I02–I04 从前一 item terminal monotonic 到当前 terminal;每项另记录自身 start-to-terminal。 3. 所有 task 只通过 `python -m hibor_fast_collection --task --execute` 执行一次。CLI stdout 保存为对应公开 terminal 的调用端副本;正式权威 terminal/manifest/delivery/timing 使用工具 CreateNew 文件。 4. 任何 task 到时、process liveness unknown、终态不确定或访问控制出现时先终止本 task,按 terminal 决定是否允许继续下一尚未 reserve 的 slot;STATE_UNCERTAIN/27、额度不确定或进程仍存活时停止整个批次。 ## 7. 证据包与验收算法 固定根:`ana-data/tmp/HIBOR-FAST-PERFORMANCE-20260730-001/`。正式 package 至少包含: - `performance_plan.json` 与 10 primary/最多 3 alternate 记录; - 每个 task 的 task spec、V009 terminal、manifest、delivery、timing 和必要截图; - 成功 PDF 原件副本及 remote/local bytes/hash、magic、openability、page count; - `daily_quota_2026-07-29.csv` baseline 证据、执行当日 quota ledger 和最终 snapshot; - `performance_manifest.csv`:逐文件 path/bytes/SHA-256/source slot/type/status; - `performance_summary.json`:固定字段 `schema_version,plan_id,started_at_utc,ended_at_utc,primary_total,included_total,success_total,trigger_total,confirmed_total,uncertain_total,active_total,median_ms,p90_ms,batch_first_ms,batch_increment_ms,magic_pass,byte_match_pass,hash_match_pass,openability_pass,page_count_pass,manifest_pass,quota_pass,result,blockers`。 统计算法继承 V002:10 个计入耗时排序,第 5/6 平均为 median,第 9 个为 nearest-rank P90。`PERFORMANCE_PASS` 必须同时满足:10/10 SUCCESS;trigger<=10;median<=480000;P90<=600000;batch I01<=600000;I02–I04 各<=240000;所有 PDF 与 manifest/quota 校验通过;最终 active=0;全程 effective consumed<=27。否则只能是 `PERFORMANCE_FAILED` 或 `INSUFFICIENT_PERFORMANCE_SAMPLES`,不得用排除项伪造 PASS。 ## 8. 审核、授权与停止边界 本方案先提交 `dev.reviewer.ana.cai` 独立审核。只有 `PASS/0/0` 后,才可向 `management.admin` 申请一次针对本 plan 的真实 APP/ADB/最多 10 trigger 授权。管理授权应允许本方案内普通可恢复 UI/APP 操作与同一 slot 的幂等读取,不使用旧式每 URL/每命令一次性 A001;但额度、访问控制、账号与外部写边界保持 fail closed。 执行后由 `dev.reviewer.ana.cai` 独立复核 performance package 与统计结论;普通下载结果的 review_owner 仍为当前人工请求者/`case_analysis.report_collector`。实现 PASS 不等于性能 PASS,性能 PASS 也不授权研究正文、数据库或 BATCH-001。 当前状态:`PENDING_INDEPENDENT_REAL_PERFORMANCE_PLAN_REVIEW`。当前真实 APP/ADB/download trigger/quota increment=`0/0/0/0`。