---
id: w1/m15/t005
title: Render parity — worker/cron across REST/GraphQL/MCP/UI vs render.com
worker: worker1
status: done
estimate: 20m
depends_on: [w1/m15/t004]
---

## Objective

Standing Render-parity check: verify the new `background_worker` and `cron_job` types are consistent across all four surfaces (REST, GraphQL, MCP, dashboard UI) and track render.com's names/shapes; flag any drift as a follow-up inbox note.

## Context

- This milestone changed the create surface (REST/GraphQL/MCP — t003) and the dashboard (t004), so the standing Render-parity task applies (per the milestone README's "Render parity INCLUDED").
- Parity references: `docs/ADR018-render-parity.md` (the ✖ row that spawned this milestone), Render's public API / official MCP tool names (`create_cron_job`, `/cron-jobs/{id}/runs`), and a live render.com comparison for the worker/cron create + detail shapes.
- The four surfaces must agree: a worker/cron created over REST reads the same over GraphQL/MCP and renders correctly in the UI.

## Steps

1. Compare bex's worker/cron `type` names, create fields (`schedule`), and the cron run trigger against render.com and Render's API/MCP docs.
2. Exercise create + read of a worker and a cron across REST, GraphQL, and MCP; confirm the dashboard reflects both.
3. Record any divergence as a follow-up inbox note (`w1/NNN`) and update `docs/ADR018-render-parity.md`.

## Files

- `docs/ADR018-render-parity.md` (update the worker/cron row)
- `.pm/w1/NNN.md` (only if drift is found)

## Acceptance criteria

- [x] Worker + cron behave consistently across REST/GraphQL/MCP/UI, matching render.com's names/shapes.
- [x] Any drift is captured as a follow-up note; `docs/ADR018-render-parity.md` reflects the new coverage.

## Out of scope

- Building any newly-discovered parity gap (that becomes its own task).
- Static sites (`w1/012`).
