{ "audit_scope": { "code_domains": [ "workspace", "task", "interpreter", "TP/motion", "kinematics", "HAL/PLC/IO", "Python/remap/VCP", "recovery", "Web/UI" ], "p0_p8_task_count": 39, "plan": "docs/linuxcnc-web-wasm-complete-simulation-plan.md", "source_test_track": "S5-01..S5-08" }, "boundaries": [ "verified module reports are not equivalent to full LinuxCNC behavior parity", "official oracle, source/resource blockers and browser/OPFS blockers remain explicit", "no ABI/protocol/schema/manifest changes are made by this audit" ], "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", "gap_ledger": [ { "domain": "authoritative_runtime", "evidence": [ "docs/linuxcnc-web-wasm-system-flow-and-execution-baseline.md", "coverage/sim-task.report.json", "coverage/linuxcnc-source-parity-s5.report.json" ], "gap_id": "GAP-TASK-TICK-INTEGRATION", "next_task": "S6-02", "reason": "interpreter/TP/motion/kinematics/HAL/IO modules have isolated evidence, but the full authoritative sim_task fixed-tick chain is not yet proven against LinuxCNC source behavior", "status": "OPEN" }, { "domain": "oracle", "evidence": [ "coverage/native-oracle-closure.report.json", "coverage/linuxcnc-source-parity-s5.report.json" ], "gap_id": "GAP-OFFICIAL-NATIVE-ORACLE", "next_task": "OWNER/CONTEXT INPUT REQUIRED", "reason": "locked source lacks the official kinematics/recovery oracle and desktop native unit environment", "status": "SOURCE_BLOCKED" }, { "domain": "configuration", "evidence": [ "coverage/linuxcnc-source-config-s5.report.json", "coverage/full-configuration-startup-matrix.report.json" ], "gap_id": "GAP-CONFIG-RESOURCE-CLOSURE", "next_task": "S6-03", "reason": "981 resource rows and 208 configuration entries remain blocked by missing, unindexed or unregistered dependencies", "status": "OPEN_BLOCKED" }, { "domain": "source_parity", "evidence": [ "coverage/linuxcnc-source-parity-s5.report.json" ], "gap_id": "GAP-SOURCE-ADAPTER-PENDING", "next_task": "S6-04", "reason": "G64/DO, full canonical logger, custom .comp, startup tool tables, ClassicLadder and motion-logger paths remain explicitly pending or excluded", "status": "OPEN_BLOCKED" }, { "domain": "recovery_browser", "evidence": [ "coverage/recovery-offline-fault-matrix.report.json", "coverage/browser-matrix-closure.report.json" ], "gap_id": "GAP-BROWSER-OPFS-CLOSURE", "next_task": "S6-05", "reason": "logical Worker recovery is verified, while browser OPFS crash, Safari/performance and physical browser oracle remain incomplete", "status": "OPEN_BLOCKED" } ], "inputs": [ { "bytes": 20277, "path": "docs/linuxcnc-web-wasm-complete-simulation-plan.md", "sha256": "b82611bc121a715ac17ce59d258547c7d202b309261ac0c27092ce17c662c08b", "status": "present" }, { "bytes": 15650, "path": "docs/linuxcnc-web-wasm-source-map.md", "sha256": "cb407a32b95d0772564b262541c21eb556e02e5e36ade394a4498fc666e5a10a", "status": "present" }, { "bytes": 7647, "path": "context-lock.json", "sha256": "bf6651f8d1803f2219d40e61f5e86dcf0821862d087eec2e19f99f593561353e", "status": "present" }, { "bytes": 459392, "path": "coverage/linuxcnc-source-test-s5.report.json", "sha256": "5e8be188f808cc95de2d18b76a33814ac045fb0d42a0f6bf8dc23af3af0fc7a5", "status": "present" }, { "bytes": 12170, "path": "coverage/linuxcnc-source-test-execution-s5.report.json", "sha256": "49f911fc8ecf6ceaee25be2dc42b2f1ea331e3f0ac1a480335ffdd69c086d21b", "status": "present" }, { "bytes": 13338, "path": "coverage/linuxcnc-source-unit-execution-s5.report.json", "sha256": "d8a3cd57479d6000beea9ca7fe02ae70523c58a4999ca2e52625e83f8ed0e1c9", "status": "present" }, { "bytes": 12698, "path": "coverage/linuxcnc-source-interp-s5.report.json", "sha256": "d68df986bbb6e730b8fc1499146954776f782d677095d675f7a5dda6378af77a", "status": "present" }, { "bytes": 14049, "path": "coverage/linuxcnc-source-hal-s5.report.json", "sha256": "2e4c2b7ba2eb63951f2a22a97e2769b05525b5881e74e2dab008db126fd2093c", "status": "present" }, { "bytes": 15823, "path": "coverage/linuxcnc-source-io-s5.report.json", "sha256": "098e471ef105e6c363f6e48ae180a5c7ea7a4f38417da8b4c2194d00fe0844f9", "status": "present" }, { "bytes": 134124, "path": "coverage/linuxcnc-source-config-s5.report.json", "sha256": "baf06fbaf9d657253ca29fcee549b33bda61fb777a73c0ffb29170c9b0ae7c26", "status": "present" }, { "bytes": 10820, "path": "coverage/linuxcnc-source-parity-s5.report.json", "sha256": "08e93248dbd0fac9722ed12336546d2f63e4b80b3a2eee755cbda7f91f55b1ff", "status": "present" } ], "next_execution": { "depends_on": [ "S6-01" ], "direct_gaps": [ "GAP-TASK-TICK-INTEGRATION" ], "required_evidence": [ "native/WASM/Worker task snapshot parity", "first divergent tick or explicit blocked reason", "pause/resume/abort/recovery endpoint" ], "status": "queued", "task_id": "S6-02", "title": "integrate authoritative sim_task fixed tick across interpreter/TP/motion/kinematics/HAL/IO" }, "report_sha256": "10853a2327f1467e098a2119fb2130b73fb072a6bd9cb8ce3ef9ece14eee9c56", "schema": "full-linuxcnc-simulation-gap-audit.v1", "source_test_summary": { "all_verified": true, "configuration_entries": 264, "s5_parity_report_sha256": "08e93248dbd0fac9722ed12336546d2f63e4b80b3a2eee755cbda7f91f55b1ff", "tasks": [ "S5-01", "S5-02", "S5-03", "S5-04", "S5-05", "S5-06", "S5-07", "S5-08" ] }, "status": "verified", "task_id": "S6-01", "task_ledger": { "counts": { "EVIDENCE_BLOCKED": 1, "EVIDENCE_VERIFIED": 36, "NO_DIRECT_REPORT": 2 }, "tasks": [ { "acceptance": "baseline 可重建,缺输入 fail closed", "depends_on": "无", "evidence": null, "evidence_state": "NO_DIRECT_REPORT", "planned_outputs": "context/source baseline", "task_id": "P0-01", "title": "冻结来源、工具链、schema 和 source hash" }, { "acceptance": "无孤儿、重复、未知 ID", "depends_on": "P0-01", "evidence": null, "evidence_state": "NO_DIRECT_REPORT", "planned_outputs": "coverage graph/manifest", "task_id": "P0-02", "title": "建立 source→feature→task→test 图" }, { "acceptance": "版本 mismatch 和字段缺失拒绝", "depends_on": "P0-01", "evidence": { "implementation_status": "verified", "path": "coverage/sim-contract.report.json", "schema": "sim-contract-report.v1", "sha256": "6ce37e8e6ccd4152d456a69fd764e82ee12dbb7fa9c215712019fa048c27160f", "status": "passed", "task_id": "P0-03" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "schema + compatibility tests", "task_id": "P0-03", "title": "固定 ABI/protocol/snapshot/event/workspace 契约" }, { "acceptance": "state hash、状态机、错误码一致", "depends_on": "P0-03", "evidence": { "implementation_status": "verified", "path": "coverage/sim-task.report.json", "schema": "sim-task-report.v1", "sha256": "768f8dd6af9a3ccfaa6f62ce8e7c2ab6bcb4af77036d1098feb7d344b96091d1", "status": "passed", "task_id": "P1-01" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "Task state/native/WASM tests", "task_id": "P1-01", "title": "建立 `sim_task.v1` authoritative 状态对象" }, { "acceptance": "快速/1x/单步终点一致", "depends_on": "P1-01", "evidence": { "implementation_status": "verified", "path": "coverage/sim-scheduler.report.json", "schema": "sim-scheduler-report.v1", "sha256": "df5699b9cd4f15c3d6351ab172b21af579ffbec8fad90cee3d00043418581d36", "status": "passed", "task_id": "P1-02" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "scheduler + tick golden", "task_id": "P1-02", "title": "固定 `sim_step` 调度顺序和 tick budget" }, { "acceptance": "operation replay 不重复副作用", "depends_on": "P1-01", "evidence": { "implementation_status": "verified", "path": "coverage/sim-ledger.report.json", "schema": "sim-ledger-report.v1", "sha256": "724268cac1ee78a63c14c8660c24ebe55458051ba24200ed9bdbc303a2f5772c", "status": "passed", "task_id": "P1-03" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "ledger/replay tests", "task_id": "P1-03", "title": "接入 command ledger、幂等和 abort" }, { "acceptance": "当前行、模态、程序状态可观察", "depends_on": "P1-01", "evidence": { "implementation_status": "verified", "path": "coverage/sim-runner.report.json", "schema": "sim-runner-report.v1", "sha256": "e54c4bffcd25c60346bd5ad73a36393b1350dd5ba18f6bd4962b60851f3ba762", "status": "passed", "task_id": "P1-04" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "Worker/native/WASM report", "task_id": "P1-04", "title": "将现有 G-code/MDI runner 接入 Task snapshot" }, { "acceptance": "路径、编码、配额、事务错误稳定", "depends_on": "P1-01", "evidence": { "implementation_status": "verified", "path": "coverage/workspace-runtime.report.json", "schema": "workspace-runtime-report.v1", "sha256": "3ee78c0fa0fce5c1b1658a4d7b13a993c0bf053010c77d006d7d9a78a7bfb3b1", "status": "passed", "task_id": "P2-01" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "workspace runtime", "task_id": "P2-01", "title": "虚拟 POSIX/Workspace API" }, { "acceptance": "行号、循环、缺失资源可诊断", "depends_on": "P2-01", "evidence": { "implementation_status": "verified", "path": "coverage/ini-parser.report.json", "schema": "ini-parser-report.v1", "sha256": "1d542427354419bcd897c3f05dc3119aa81157abaa740edfb4a9b38e65103a3c", "status": "passed", "task_id": "P2-02" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "parser/resource graph", "task_id": "P2-02", "title": "INI/include/变量解析器" }, { "acceptance": "所有依赖可定位、不静默替换", "depends_on": "P2-01", "evidence": { "implementation_status": "verified", "path": "coverage/resource-resolver.report.json", "schema": "resource-resolver-report.v1", "sha256": "4e3830a05f43c2cb1c65b71d597e4d16264d2cc56972c1422f783ba85d4da78d", "status": "passed", "task_id": "P2-03" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "config resource graph", "task_id": "P2-03", "title": "HAL/工具表/参数/程序/Python/VCP/CLP resolver" }, { "acceptance": "入口只进入 READY 或 BLOCKED", "depends_on": "P2-02/P2-03/P1-02", "evidence": { "implementation_status": "verified", "path": "coverage/configuration-startup-runtime.report.json", "schema": "configuration-startup-runtime-report.v1", "sha256": "6990bf07dabb06c82e21dd022ff7ae149af8c51e42aa443d465a70c9fa315f59", "status": "passed", "task_id": "P2-04" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "startup resolver/233-entry report", "task_id": "P2-04", "title": "统一配置启动状态机" }, { "acceptance": "block、错误列和 modal hash 一致", "depends_on": "P1-04", "evidence": { "implementation_status": null, "path": "coverage/rs274-interpreter-closure.report.json", "schema": "rs274-interpreter-closure-report.v1", "sha256": "f89b09eb912bcca4f75cf0392b889e0051fcdc61b6b2f14663c72fca63b8f608", "status": "verified", "task_id": "S1-01A" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "native/WASM interpreter oracle", "task_id": "P3-01", "title": "rs274 grammar/modal/parameter 完整闭环" }, { "acceptance": "深度、预算、异常边界完整", "depends_on": "P3-01/P5-02", "evidence": { "implementation_status": null, "path": "coverage/o-word-runtime.report.json", "schema": "o-word-runtime-report.v1", "sha256": "c9b02d51f2ba5a1a1248ec75d52f15feac65d389dd60dda198ee1844d35b50de", "status": "verified", "task_id": "P3-02" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "interpreter golden", "task_id": "P3-02", "title": "O-word、子程序、循环、宏和过滤器" }, { "acceptance": "segment 顺序、速度和首差 tick", "depends_on": "P1-02/P3-01", "evidence": { "implementation_status": null, "path": "coverage/tp-blend.report.json", "schema": "tp-blend-report.v1", "sha256": "a4387c31f508297bdd28bd8eb432e9f9113cf505fb5aa711d158720b291df2f6", "status": "verified", "task_id": "P3-03" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "TP golden/diff report", "task_id": "P3-03", "title": "canonical queue、TP 前瞻、blend/exact-stop" }, { "acceptance": "run/pause/resume/step/abort 可恢复", "depends_on": "P1-03/P3-01", "evidence": { "implementation_status": null, "path": "coverage/task-program-state.report.json", "schema": "task-program-state-report.v1", "sha256": "6b22540591a974f8d648a70287412ecdefd9114b1f63095873154983d8d3d659", "status": "verified", "task_id": "P3-04" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "command golden", "task_id": "P3-04", "title": "Task mode、MDI、program state machine" }, { "acceptance": "轴/关节、estop、limit、home 一致", "depends_on": "P3-03", "evidence": { "implementation_status": null, "path": "coverage/motion-state.report.json", "schema": "motion-state-report.v1", "sha256": "20a48fbf735b184b5211be6d0487fcb1637060af91ddb59f43f7d82b689e9dd6", "status": "verified", "task_id": "P3-05" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "motion state/故障矩阵", "task_id": "P3-05", "title": "motion、jog、override、home、limits、following error" }, { "acceptance": "forward/inverse/branch/limits", "depends_on": "P3-05", "evidence": { "implementation_status": null, "path": "coverage/kinematics-base.report.json", "schema": "kinematics-base-report.v1", "sha256": "c836235f11bb0c1afebe4937c776de88cbeb2ac5e5081ac0784a97aa40c36809", "status": "verified", "task_id": "P3-06" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "registry + native/WASM tests", "task_id": "P3-06", "title": "kinematics registry 和 trivkins/gantry/CoreXY" }, { "acceptance": "singularity、非有限、缺 oracle 明确", "depends_on": "P3-06", "evidence": { "implementation_status": null, "path": "coverage/advanced-kinematics.report.json", "schema": "advanced-kinematics-report.v1", "sha256": "b4b649631b120f2a9f94648a7f9ee24386da9fa85224f1500e0e43784cfd8bdc", "status": "verified", "task_id": "P3-07" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "每族 report/golden", "task_id": "P3-07", "title": "5/6-axis、TRT、机器人、并联和 switch/user kins" }, { "acceptance": "顺序、类型、重复、未知组件 fail closed", "depends_on": "P2-03/P1-02", "evidence": { "implementation_status": null, "path": "coverage/hal-graph.report.json", "schema": "hal-graph-report.v1", "sha256": "2fe96f9b3ae0e6143be95c0a9378f40147eb2e2678c23de3d92f19cd8b6b0fc9", "status": "verified", "task_id": "P4-01" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "HAL graph/runtime", "task_id": "P4-01", "title": "HAL graph/twopass/pin/signal/thread/function" }, { "acceptance": "不动态加载、不访问宿主", "depends_on": "P4-01", "evidence": { "implementation_status": null, "path": "coverage/component-capability.report.json", "schema": "component-capability-report.v1", "sha256": "93a109d165c5b10a799aa8ef5fff1d5a03f50929ac3094bc73f6d4e3a1b2b949", "status": "verified", "task_id": "P4-02" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "component manifest/tests", "task_id": "P4-02", "title": "静态 `.comp` 组件和能力 manifest" }, { "acceptance": "scan 顺序、寄存器、故障可回放", "depends_on": "P4-01", "evidence": { "implementation_status": null, "path": "coverage/plc-runtime.report.json", "schema": "plc-runtime-report.v1", "sha256": "dcc892df8a3d9d194213af541b9003e9c58f39bdde4066ec5265bcb17f29bcf3", "status": "verified", "task_id": "P4-03" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "PLC runtime/report", "task_id": "P4-03", "title": "ClassicLadder/采样/触发/背压" }, { "acceptance": "延迟、故障、恢复、hash 一致", "depends_on": "P4-01/P3-05", "evidence": { "implementation_status": null, "path": "coverage/device-twin.report.json", "schema": "device-twin-report.v1", "sha256": "11a818854805b5b80e4de5dae6158b6e588010f2369afddf76597f9173902672", "status": "verified", "task_id": "P4-04" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "device model/fault matrix", "task_id": "P4-04", "title": "spindle/encoder/probe/limit/home/tool/coolant twin" }, { "acceptance": "ack 丢失和恢复不重复副作用", "depends_on": "P4-04/P1-03", "evidence": { "implementation_status": null, "path": "coverage/io-ack.report.json", "schema": "io-ack-report.v1", "sha256": "516de819b6875559139adccc1584534f8b6a92be198c5982ad295ea2b37aa538", "status": "verified", "task_id": "P4-05" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "IO Worker/native tests", "task_id": "P4-05", "title": "IO command/ack/timeout/estop/recover" }, { "acceptance": "资源和能力限制稳定", "depends_on": "P2-01", "evidence": { "implementation_status": null, "path": "coverage/python-runtime-closure.report.json", "schema": "python-runtime-closure-report.v1", "sha256": "f2e81ac33c971766f759e92aaba1a358a9bc37bd84b53e574d2295c07ac51d8f", "status": "verified", "task_id": "P5-01" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "runtime manifest/report", "task_id": "P5-01", "title": "Pyodide runtime、模块白名单和虚拟时钟" }, { "acceptance": "正常、异常、禁止能力", "depends_on": "P5-01/P3-04", "evidence": { "implementation_status": null, "path": "coverage/python-api.report.json", "schema": "python-api-report.v1", "sha256": "536b5901ce88101da7b91e63fa6ddd2fc404778b58c75ed2e22b02408b479f85", "status": "verified", "task_id": "P5-02" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "API compatibility tests", "task_id": "P5-02", "title": "Python linuxcnc/hal/INI/tool/parameter API" }, { "acceptance": "异常不破坏 Worker 核心", "depends_on": "P5-02/P4-01", "evidence": { "implementation_status": null, "path": "coverage/python-callbacks.report.json", "schema": "python-callbacks-report.v1", "sha256": "5001e9824ad34a024c1f2c0fe16fbdab9aa242ae4412ac0830f993954ff6b660", "status": "verified", "task_id": "P5-03" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "remap/VCP report", "task_id": "P5-03", "title": "remap/filter/VCP callback 和隔离" }, { "acceptance": "导入导出 round-trip", "depends_on": "P1-02/P3-05/P4-05/P5-03", "evidence": { "implementation_status": null, "path": "coverage/trace-export.report.json", "schema": "trace-export-report.v1", "sha256": "57e0d9a0a0a98907a73d25d01d19cfd525c4c2f4c33baf470b32f657b8ab7abb", "status": "verified", "task_id": "P6-01" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "schema/hash tests", "task_id": "P6-01", "title": "snapshot/event/trace 全状态导出" }, { "acceptance": "crash、半提交、确认丢失", "depends_on": "P6-01/P1-03", "evidence": { "implementation_status": null, "path": "coverage/reconciliation.report.json", "schema": "reconciliation-report.v1", "sha256": "e882196ab3ef32f7071fb6924db8a8f56aadeadd85e7602c20fdb1659ec21f7c", "status": "verified", "task_id": "P6-02" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "recovery matrix", "task_id": "P6-02", "title": "journal/checkpoint/operation reconciliation" }, { "acceptance": "离线、配额、版本迁移", "depends_on": "P6-02/P2-01", "evidence": { "implementation_status": null, "path": "coverage/offline-migration.report.json", "schema": "offline-migration-report.v1", "sha256": "bc931f4100f791347020842d0ed2bf9cdf449af2c97446320219b839ed9c70b1", "status": "verified", "task_id": "P6-03" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "browser recovery report", "task_id": "P6-03", "title": "OPFS/offline/migration/rollback" }, { "acceptance": "seq、schema、timeout、cancel", "depends_on": "P1-03/P6-01", "evidence": { "implementation_status": null, "path": "coverage/worker-protocol.report.json", "schema": "worker-protocol-report.v1", "sha256": "bf729cb4168f11613ff5629b1fb2ddc44e55655419ac74909839bb08cc693d61", "status": "verified", "task_id": "P7-01" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "protocol E2E", "task_id": "P7-01", "title": "Worker protocol/client、backpressure、cancel" }, { "acceptance": "真实 Worker,不用 mock", "depends_on": "P3-04/P7-01", "evidence": { "implementation_status": null, "path": "coverage/editor-workflow.report.json", "schema": "editor-workflow-report.v1", "sha256": "1e21b24b54123a830025c0f2bbfeac202d415e489c360521ee8c831767970241", "status": "verified", "task_id": "P7-02" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "browser E2E", "task_id": "P7-02", "title": "editor/diagnostic/MDI/run workflow" }, { "acceptance": "snapshot/event 单向消费", "depends_on": "P4/P5/P7-01", "evidence": { "implementation_status": null, "path": "coverage/authoritative-panels.report.json", "schema": "authoritative-panels-report.v1", "sha256": "8d12e32b2032ab248b743591b3cbad1e55bcd620dab1845f90d0e317fb58865f", "status": "verified", "task_id": "P7-03" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "UI tests", "task_id": "P7-03", "title": "state/HAL/IO/Python/PLC/alarm panels" }, { "acceptance": "非空、姿态和轨迹跟随 authoritative state", "depends_on": "P3-05/P7-03", "evidence": { "implementation_status": null, "path": "coverage/machine-view.report.json", "schema": "machine-view-report.v1", "sha256": "067ef64e9e20e27e46f675bdf1977c4950847e2f537196fcc6f391cd03214155", "status": "verified", "task_id": "P7-04" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "WebGL/canvas tests", "task_id": "P7-04", "title": "Three.js pose/joint/toolpath/stock view" }, { "acceptance": "恢复状态可操作、错误可定位", "depends_on": "P6-03/P7-02", "evidence": { "implementation_status": null, "path": "coverage/recovery-ux.report.json", "schema": "recovery-ux-report.v1", "sha256": "156aa7ab88172325922ee65479a1380dec01763ad8d784702fcff160e8bb2375", "status": "verified", "task_id": "P7-05" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "browser fault E2E", "task_id": "P7-05", "title": "recovery/offline/error/permission UX" }, { "acceptance": "同输入、同命令、首差 tick", "depends_on": "P0-03/P3/P4", "evidence": { "implementation_status": null, "path": "coverage/native-oracle-closure.report.json", "schema": "native-oracle-closure-report.v1", "sha256": "d001ce551dde7451efa113ec986f34d631c2ff9d14e7e9135377033ce1f1fb53", "status": "verified", "task_id": "P8-01" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "JSONL oracle", "task_id": "P8-01", "title": "native oracle runner 和 golden schema" }, { "acceptance": "每入口 READY 或诊断 BLOCKED", "depends_on": "P2-04/P8-01", "evidence": { "implementation_status": null, "path": "coverage/startup-matrix-closure.report.json", "schema": "startup-matrix-closure-report.v1", "sha256": "359ab4318841cbab7b6c3256b217df9a7aa4b4559d6cd026a22cbb88f23b260f", "status": "verified", "task_id": "P8-02" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "startup/diff matrix", "task_id": "P8-02", "title": "全量 sim entrypoint matrix" }, { "acceptance": "1x/fast/step/recover hash 一致", "depends_on": "P8-02/P6", "evidence": { "implementation_status": null, "path": "coverage/determinism.report.json", "schema": "determinism-report.v1", "sha256": "48ea763cfbea64314d9d97dc550a14a67ae4306e2c322d9be5e5a776c00995e6", "status": "verified", "task_id": "P8-03" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "determinism report", "task_id": "P8-03", "title": "三次重复和执行模式 determinism" }, { "acceptance": "P95/P99、配额、WebGL、离线", "depends_on": "P7/P8-03", "evidence": { "implementation_status": null, "path": "coverage/browser-matrix-closure.report.json", "schema": "browser-matrix-closure-report.v1", "sha256": "f191a6e5bc2ec2887cf8bbc29806bda16b16449a7524a08ff6fcd38ab2a20b99", "status": "verified", "task_id": "P8-04" }, "evidence_state": "EVIDENCE_VERIFIED", "planned_outputs": "perf/compat report", "task_id": "P8-04", "title": "browser/performance/memory/offline matrix" }, { "acceptance": "所有排除项和剩余 blocker 显式保留", "depends_on": "P8-02/P8-04", "evidence": { "implementation_status": null, "path": "coverage/release-closure.report.json", "schema": "release-closure-report.v1", "sha256": "229a7dc2caef03dc6b90507b5f692f2592e7928da6094c9040b02321cc50bd5c", "status": "blocked", "task_id": null }, "evidence_state": "EVIDENCE_BLOCKED", "planned_outputs": "release evidence", "task_id": "P8-05", "title": "来源/许可证/下载/迁移/回滚交付闭合" } ] } }