Sync Airtable Task Status From PRs
Use this skill only after PRs have already been matched to Airtable records. It updates existing tasks; it does not decide matching and does not create missing records.
Read status update rules for status order, write shapes, closed-unmerged behavior, and examples.
Supported Tables
Default to code workflow tables whose status semantics map cleanly to PR state:
Eng BacklogIntake
Do not automatically update Product & Design Backlog from GitHub PR state unless the user explicitly asks.
Airtable Write Tool
Use mcp__codex_apps__airtable._update_records_for_table with typecast: true.
Croft defaults:
- Base id:
appgRWEMtYCttCkjO Eng Backlogtable id:tbla72plmclVzubFKIntaketable id:tblhIvGclMmJw6PFm
Update by Airtable record id. Do not use upsert.
State Mapping
open_draft-> minimum statusIn Progressopen_ready-> minimum statusNeeds Code Reviewmerged->In ProdandPipeline: Completedclosed_unmerged-> no automatic terminal status change
If the table has Date Pushed to Prod and the PR has merged_at, set that field when moving to In Prod.
Non-Regressive Updates
Do not move a task backward. Use the status order in status update rules. Preserve a more advanced Airtable status, except merged PRs may advance to In Prod.
Workflow
- Group matched records by Airtable table.
- Compute the minimum target status for each PR/task pair.
- Compare current Airtable status with the target and skip no-op or backward updates.
- Apply only forward-moving changes.
- Batch updates in groups of 10 or fewer records per Airtable request.
Output
Report how many matched tasks were updated versus skipped, list manual-review items separately, and say when a more advanced Airtable status was intentionally preserved.