arrow_backShadow / Shadow report PREVIEW · 5 of 14 days
receipt_longAcme Operations · Shadow period
What Cascade would have done
calendar_today2026-08-23 to 2026-08-28 (preview)
smart_toy3 agents
database1 connected system
847
actions observed
812
would run unattended
23
would wait for approval
12
would be blocked
Over 5 days, $47,200 in financial actions ran without any review. Of those, 3 were irreversible with no declared inverse, meaning a mistake in any one of them has no automated recovery path. Two of the blocked actions would have deleted records. Cascade would have stopped all 12 without touching the 812 that posed no risk.
smart_toyAgent breakdown

How each agent's actions would have been classified over the shadow period.

Agent
Total actions
Would commit
Would gate
Would block
refund_agent 312 298 12 2
comms_agent 289 279 6 4
records_agent 246 235 5 6
warningActions that would have been stopped

These ran without review during the shadow period. Cascade would have blocked or gated each one.

delete_candidate · records_agent
WOULD BLOCK
Permanently removes a candidate record. No inverse declared. Once deleted, restoration requires a manual database restore.
Occurred:6 times · $0 direct risk · recovery cost unquantified
issue_refund · refund_agent
WOULD GATE
Moves money to a customer. Classified as COMPENSABLE because reverse_refund exists, but the financial impact still requires human review above $5,000.
Occurred:12 times · $47,200 total · avg $3,933 per action
send_email · comms_agent
WOULD BLOCK
Sends external communications. No inverse exists -- an email already delivered cannot be recalled. Four instances involved lists with over 500 recipients.
Occurred:4 times · mass sends flagged · no financial risk
lightbulbRecommendations before going live

Cascade found these gaps. Addressing them before going live reduces the gate queue and gives operators cleaner decisions.

add_circleDeclare an inverse for delete_candidate
Without restore_candidate, every deletion is irreversible in Cascade's model and will block. If your database supports soft-delete, register the soft-delete and restore functions as an inverse pair. This converts 6 BLOCKs per period into COMMITs.
tuneSet a refund threshold policy
Most refunds are low-risk. Configure a threshold: refunds under $1,000 commit automatically, over $1,000 gate for approval. This turns 9 of the 12 gated refunds into unattended commits and reduces operator load by about 75%.
groupRestrict send_email recipient count
Add a recipient-count cap to the comms_agent's tool declaration. Emails to fewer than 10 recipients are low risk. Mass sends above that threshold should always gate. This keeps your transactional emails unblocked while catching the high-impact blasts.
Cascade is ready to go live.
Shadow shows exactly what it would have stopped and what it would have let run. The risk is understood. You can go live now or wait for the full 14-day report.