Per quarter: re-check every spec_items currency, validate compliance certs (USDA, K-12, kosher), flag stale specs that block bid eligibility.
cron0 9 1 */3 *stale_specsspec_itemsSELECT
id, item_code, brand, sub_category
FROM spec_items
WHERE deleted_at IS NULL
AND (updated_at < datetime('now','-180 days')
OR (kosher = 'Y'
AND kosher_certificate IS NULL))Risk level 2 < 3 — no HITL gate. Fan-out runs immediately after preconditions pass.
propose_updates stage_proposed_action REALpropose_spec_updateemail_owners hitl_email_draft STUBpropose_email_to_customernutrition_adminsrc/lib/workflow_runner.ts (kind hitl_email_draft hits the placeholder branch at line ~340 and emits step status 'stub'). Documented intent only.| id | action | source |
|---|---|---|
runner_log_run | INSERT into workflow_run_log (run_id, workflow_type, status, started_at, completed_at, summary_json) | runner automatic |
runner_reflexion | INSERT into reflexion_log (tags=quarterly_bid_eligibility_refresh, run_id, narrative) | runner automatic (reflexion_enabled=1) |
log_run | INSERT workflow_runs | declared in contract |
reflexion | INSERT reflexion_log with tags=bid_eligibility_refresh | declared in contract |
workflow_verify_results (pending — verify cron not yet wired)proposals_stagedSELECT COUNT(*) FROM proposed_actions WHERE action_type='propose_spec_update' AND proposed_at > ?
2linear5000true| system | table / resource | action | status | source |
|---|---|---|---|---|
| D1 | proposed_actions | INSERT (action_type=propose_spec_update, entity_type=workflow_run) | REAL | fan-out #1 (propose_updates) |
| D1 | workflow_run_log | INSERT (run summary) | REAL | runner automatic |
| D1 | reflexion_log | INSERT (tags=quarterly_bid_eligibility_refresh) | REAL | runner automatic |
| Event | workflow.completed (or workflow.failed) | fire | REAL | runner automatic |
| D1 | workflow_verify_results | INSERT pending × 1 | REAL | runner verify staging |
| D1 | proposed_actions | INSERT (email draft via propose_email_to_customer) | STUB | fan-out #2 (email_owners) |