# WBV2-P0-003 Status status: done task: WBV2-P0-003 gate: G0 updated: 2026-08-24 America/New_York The capability error-budget contract is now a versioned, bounded protocol slice. The minimal fixture stores one canonical contract Text datablock with stable schema and source hashes, an explicit revision, error budget, cancellation policy, migration policy, and an opaque extension field. Blender desktop and the rebuilt WASM/Main reader expose the same contract through `capabilityContractStatus`/`capabilityContract`. Acceptance evidence: - generator exit: 0 - desktop field read and save/reopen exit: 0 - `npm --prefix web run test:generated-gap -- --task WBV2-P0-003` exit: 0 - `node tools/web/check-generated-gap.mjs --task WBV2-P0-003` exit: 0 - TypeScript contract check exit: 0 - malformed blend is rejected without changing Main snapshot; unsupported schema, duplicate error, over-budget, and schema-hash drift cases are recorded as pre-commit rejects Artifacts: - report: `tests/golden/WBV2-P0-003/capability-contract-report.json` - desktop report: `tests/golden/WBV2-P0-003/capability-contract-desktop-report.json` - command log: `tests/golden/WBV2-P0-003/command.log` - WASM build log: `tests/golden/WBV2-P0-003/wasm-build.log` - fixture SHA-256: `ffc4a6635abd4f6d905945da8f79d475f5947d38df16e64a18740e443b6f111c` - WASM SHA-256: `63877fb8e5ad0fa6ffbe9a69c7f3a66c8997a59fe959bbefda185eb0bb6d0ab6` - report SHA-256: `436127af44928dfbfec193229789c64c12e98af6ba2035c572712d22071e49bc` The legacy next-task-plan hash drift was repaired through the repository's official manifest-update mode, then the protected plan checker and all execution/context governance gates passed. The queue may advance to the declared successor without rewriting task history. nextTask: WBV2-P1-001