Install
openclaw skills install ray-delivery-diagnosisAutomates delivery lane scans every 4 hours to detect failures, classify issues, update recovery tickets, and attempt specified recovery actions.
openclaw skills install ray-delivery-diagnosisRecovery ticket runner and delivery diagnosis agent. Runs every 4 hours (and on-demand) to scan all delivery lanes, detect unresolved blockers, classify failure type, and execute concrete recovery actions.
recovery-ticket-runner-4hourlypeter-deployment-recovery, social-post-failure-recovery-morning, social-post-failure-recovery-eveningv3-compiled-YYYY-MM-DD.jsonv3-closure-state-YYYY-MM-DD.jsonmission-control/data/recovery-tickets-v3/YYYY-MM-DD/| Class | Meaning | Example |
|---|---|---|
missing_proof | Work happened, proof missing | Post exists but no URL captured |
execution_blocked | Script/tool failed | API timeout, auth error |
missing_artifact | Upstream output missing | No Tony drafts for today |
partial_success_with_debt | Some done, chain incomplete | X posted but acceptance missing |
aggregate_coupling_failure | Child success lost in aggregate | X done but social lane blocked |
human_required | Stop automation, wait for human | Account risk, policy issue |
GENERATED_NOT_PUBLISHEDtony-content-artifact-YYYY-MM-DD.md, tony-asset-check-YYYY-MM-DD.json, tony-blog-preflight-YYYY-MM-DD.jsonnode scripts/tony-blog-publish.mjs --date YYYY-MM-DDblog-qa-receipt-YYYY-MM-DD.jsonGENERATED_NOT_PUBLISHEDsocial-packs/elon-social-pack-YYYY-MM-DD-morning.jsonnode scripts/postiz-publish.mjs --input /tmp/postiz-x.json --output /tmp/postiz-x-receipt.jsonTOOL_FAILUREnode scripts/facebook-verify-browser-use.mjs --check-authnode scripts/facebook-poster.mjs --file /tmp/fb-post.txthuman_required, write blocker receiptTOOL_FAILURE~/.openclaw/workspace-jenny/.env must contain supabaseUrlhuman_required (Ray must fix config)node workspace-jenny/scripts/jenny/send-activation-batch.mjs batchUPSTREAM_MISSINGtony-blog-source-publish-YYYY-MM-DD.json appears → RUN: node scripts/peter-blog-closeout-verify.mjs --date YYYY-MM-DDv3-compiled shows NOT_IN_SCOPE → file v3-compiled bug note, do not downgrade laneFor every run:
recovery-tickets-v3/YYYY-MM-DD/rt-YYYY-MM-DD-{lane}-NN.jsonaction: DIAGNOSIS or action: RECOVERY_ATTEMPTattempt_log entry with resultstatus, recoveryState, updated_atmax_attempts reached → status: ESCALATED, notifydelivery-diagnosis-YYYY-MM-DD-HHMM.json to mission-control/data/recovery-runner-log/--dry-run first when testing a new publish pathhuman_required, do not brute-force