@agenticmail/core 0.9.31 → 0.9.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/dist/index.cjs +1 -1
  2. package/dist/index.d.cts +3 -3
  3. package/dist/index.d.ts +3 -3
  4. package/dist/index.js +1 -1
  5. package/dist/skills/built-in/accommodation-intake.json +132 -0
  6. package/dist/skills/built-in/add-driver-vehicle-household.json +133 -0
  7. package/dist/skills/built-in/admissions-waitlist-followup.json +129 -0
  8. package/dist/skills/built-in/anchor-and-counter-anchor.json +161 -0
  9. package/dist/skills/built-in/anti-social-engineering.json +153 -0
  10. package/dist/skills/built-in/anything-else-sweep.json +120 -0
  11. package/dist/skills/built-in/apologise-correctly.json +126 -0
  12. package/dist/skills/built-in/ask-for-in-person-meeting.json +114 -0
  13. package/dist/skills/built-in/attorney-new-client-intake.json +133 -0
  14. package/dist/skills/built-in/bant-discovery-call.json +125 -0
  15. package/dist/skills/built-in/book-new-patient-appointment.json +131 -0
  16. package/dist/skills/built-in/bookmark-close.json +113 -0
  17. package/dist/skills/built-in/bypass-i-am-the-supervisor.json +130 -0
  18. package/dist/skills/built-in/bypass-scripted-rep.json +142 -0
  19. package/dist/skills/built-in/calibrated-questions.json +155 -0
  20. package/dist/skills/built-in/call-911-fire.json +118 -0
  21. package/dist/skills/built-in/call-911-medical-emergency.json +126 -0
  22. package/dist/skills/built-in/call-911-violent-crime-in-progress.json +133 -0
  23. package/dist/skills/built-in/call-988-crisis-line.json +106 -0
  24. package/dist/skills/built-in/call-poison-control.json +115 -0
  25. package/dist/skills/built-in/call-police-non-emergency.json +114 -0
  26. package/dist/skills/built-in/call-with-person-in-distress.json +133 -0
  27. package/dist/skills/built-in/cancel-cable-fiber-no-retention-loop.json +156 -0
  28. package/dist/skills/built-in/cancel-policy-clean.json +130 -0
  29. package/dist/skills/built-in/capture-rep-identity.json +113 -0
  30. package/dist/skills/built-in/childcare-provider-intake.json +157 -0
  31. package/dist/skills/built-in/close-account-no-residual-fees.json +127 -0
  32. package/dist/skills/built-in/close-on-concrete-next-step.json +116 -0
  33. package/dist/skills/built-in/confirm-agreement-readback.json +134 -0
  34. package/dist/skills/built-in/confirm-next-step-ownership.json +113 -0
  35. package/dist/skills/built-in/contractor-estimate-request.json +142 -0
  36. package/dist/skills/built-in/court-clerk-administrative-inquiry.json +119 -0
  37. package/dist/skills/built-in/cpa-intake-call.json +134 -0
  38. package/dist/skills/built-in/day-of-flight-cancellation.json +127 -0
  39. package/dist/skills/built-in/de-escalate-angry-rep.json +114 -0
  40. package/dist/skills/built-in/decline-unsolicited-pitch.json +110 -0
  41. package/dist/skills/built-in/deliver-difficult-news.json +122 -0
  42. package/dist/skills/built-in/detect-fake-escalation-loops.json +140 -0
  43. package/dist/skills/built-in/detect-lies-and-contradictions.json +139 -0
  44. package/dist/skills/built-in/dispute-billing-code-eob.json +147 -0
  45. package/dist/skills/built-in/dispute-charge-reg-e-reg-z.json +131 -0
  46. package/dist/skills/built-in/dispute-credit-report-via-bank.json +128 -0
  47. package/dist/skills/built-in/dispute-denied-claim.json +143 -0
  48. package/dist/skills/built-in/dispute-security-deposit.json +130 -0
  49. package/dist/skills/built-in/dispute-usage-spike-meter-reread.json +120 -0
  50. package/dist/skills/built-in/dmv-vehicle-registration-renewal.json +120 -0
  51. package/dist/skills/built-in/document-call-promises.json +145 -0
  52. package/dist/skills/built-in/early-lease-termination.json +126 -0
  53. package/dist/skills/built-in/elite-line-escalation.json +107 -0
  54. package/dist/skills/built-in/equipment-swap-cable-router-modem.json +126 -0
  55. package/dist/skills/built-in/eu261-uk261-dot-compensation.json +113 -0
  56. package/dist/skills/built-in/file-fnol-auto-claim.json +130 -0
  57. package/dist/skills/built-in/file-habitability-complaint.json +115 -0
  58. package/dist/skills/built-in/financial-aid-appeal.json +128 -0
  59. package/dist/skills/built-in/follow-up-stalled-claim.json +118 -0
  60. package/dist/skills/built-in/get-past-gatekeeper.json +115 -0
  61. package/dist/skills/built-in/get-past-tier-1-script.json +130 -0
  62. package/dist/skills/built-in/handle-callback-stall.json +120 -0
  63. package/dist/skills/built-in/handle-outsourced-no-escalation.json +138 -0
  64. package/dist/skills/built-in/handle-send-me-an-email-deflection.json +112 -0
  65. package/dist/skills/built-in/handle-time-pressure.json +159 -0
  66. package/dist/skills/built-in/health-prior-auth-appeal.json +131 -0
  67. package/dist/skills/built-in/hoa-dispute.json +123 -0
  68. package/dist/skills/built-in/hold-time-strategy.json +137 -0
  69. package/dist/skills/built-in/hold-warmth-cold-rep.json +114 -0
  70. package/dist/skills/built-in/hotel-walk-over-recovery.json +114 -0
  71. package/dist/skills/built-in/humour-when-it-lands.json +127 -0
  72. package/dist/skills/built-in/i20-visa-dso.json +134 -0
  73. package/dist/skills/built-in/invoke-regulator-firmly.json +137 -0
  74. package/dist/skills/built-in/irrops-waiver-awareness.json +103 -0
  75. package/dist/skills/built-in/irs-payment-plan-setup.json +134 -0
  76. package/dist/skills/built-in/k12-iep-504-enrollment.json +134 -0
  77. package/dist/skills/built-in/late-add-petition.json +128 -0
  78. package/dist/skills/built-in/leave-of-absence-deferral.json +130 -0
  79. package/dist/skills/built-in/lock-in-terms-verbally.json +127 -0
  80. package/dist/skills/built-in/match-energy-keep-goal.json +120 -0
  81. package/dist/skills/built-in/medical-records-transfer.json +138 -0
  82. package/dist/skills/built-in/medical-withdrawal.json +131 -0
  83. package/dist/skills/built-in/mid-call-evidence-collection.json +159 -0
  84. package/dist/skills/built-in/mirror-technique.json +145 -0
  85. package/dist/skills/built-in/missed-connection-distressed-passenger.json +111 -0
  86. package/dist/skills/built-in/mortgage-loan-hardship.json +130 -0
  87. package/dist/skills/built-in/move-out-walkthrough.json +114 -0
  88. package/dist/skills/built-in/multi-channel-escalation.json +141 -0
  89. package/dist/skills/built-in/multi-issue-tradeoffs.json +155 -0
  90. package/dist/skills/built-in/negotiate-rent-renewal.json +123 -0
  91. package/dist/skills/built-in/no-as-opening.json +154 -0
  92. package/dist/skills/built-in/not-sound-like-spam-dialer.json +118 -0
  93. package/dist/skills/built-in/outage-credit-applied.json +127 -0
  94. package/dist/skills/built-in/passport-expedite-or-appointment.json +123 -0
  95. package/dist/skills/built-in/pediatric-school-forms.json +141 -0
  96. package/dist/skills/built-in/personal-trainer-discovery.json +138 -0
  97. package/dist/skills/built-in/pharmacy-callback.json +134 -0
  98. package/dist/skills/built-in/pivot-mid-call.json +141 -0
  99. package/dist/skills/built-in/port-mobile-number-survive-retention.json +127 -0
  100. package/dist/skills/built-in/prescription-refill-followup.json +132 -0
  101. package/dist/skills/built-in/push-past-invented-policy.json +159 -0
  102. package/dist/skills/built-in/rapport-opening-30-seconds.json +130 -0
  103. package/dist/skills/built-in/reach-executive-office.json +137 -0
  104. package/dist/skills/built-in/read-vocal-cues.json +139 -0
  105. package/dist/skills/built-in/read-vocal-tone.json +159 -0
  106. package/dist/skills/built-in/realestate-agent-vetting.json +144 -0
  107. package/dist/skills/built-in/receive-difficult-news.json +115 -0
  108. package/dist/skills/built-in/recording-claim-conversation-legally.json +121 -0
  109. package/dist/skills/built-in/recover-summary-refusal.json +121 -0
  110. package/dist/skills/built-in/reengage-ghosted-lead.json +115 -0
  111. package/dist/skills/built-in/referral-followup-without-burning.json +116 -0
  112. package/dist/skills/built-in/referral-prior-authorization.json +130 -0
  113. package/dist/skills/built-in/refuse-the-split.json +142 -0
  114. package/dist/skills/built-in/refuse-upsell-at-close.json +114 -0
  115. package/dist/skills/built-in/rental-car-counter-defense.json +116 -0
  116. package/dist/skills/built-in/rental-scam-report.json +125 -0
  117. package/dist/skills/built-in/replace-lost-stolen-card-expedited.json +139 -0
  118. package/dist/skills/built-in/report-downed-line-gas-smell-911-triage.json +130 -0
  119. package/dist/skills/built-in/report-elder-or-child-abuse.json +117 -0
  120. package/dist/skills/built-in/report-fbi-tip.json +109 -0
  121. package/dist/skills/built-in/report-fraud-ic3-or-ftc.json +117 -0
  122. package/dist/skills/built-in/report-fraudulent-transaction.json +126 -0
  123. package/dist/skills/built-in/report-power-outage-get-etr.json +116 -0
  124. package/dist/skills/built-in/report-urgent-maintenance.json +123 -0
  125. package/dist/skills/built-in/request-credit-limit-increase.json +126 -0
  126. package/dist/skills/built-in/request-supervisor-gracefully.json +129 -0
  127. package/dist/skills/built-in/request-welfare-check.json +127 -0
  128. package/dist/skills/built-in/request-written-confirmation.json +113 -0
  129. package/dist/skills/built-in/reschedule-appointment.json +121 -0
  130. package/dist/skills/built-in/reset-by-callback.json +143 -0
  131. package/dist/skills/built-in/resist-urgency-manipulation.json +152 -0
  132. package/dist/skills/built-in/revisit-totaling-decision.json +125 -0
  133. package/dist/skills/built-in/roadside-assistance-dispatch.json +132 -0
  134. package/dist/skills/built-in/roommate-replacement.json +121 -0
  135. package/dist/skills/built-in/same-day-urgent-appointment.json +130 -0
  136. package/dist/skills/built-in/schedule-rental-viewing.json +111 -0
  137. package/dist/skills/built-in/service-move-shutoff-start-no-overlap.json +129 -0
  138. package/dist/skills/built-in/social-security-replacement-card.json +122 -0
  139. package/dist/skills/built-in/specialist-doctor-booking.json +136 -0
  140. package/dist/skills/built-in/spot-bait-and-switch.json +155 -0
  141. package/dist/skills/built-in/stop-recurring-ach.json +127 -0
  142. package/dist/skills/built-in/switch-postpaid-to-prepaid-mid-cycle.json +130 -0
  143. package/dist/skills/built-in/tactical-empathy-labeling.json +147 -0
  144. package/dist/skills/built-in/therapist-intake-call.json +133 -0
  145. package/dist/skills/built-in/train-cancellation-refund-rebook.json +104 -0
  146. package/dist/skills/built-in/transcript-request.json +128 -0
  147. package/dist/skills/built-in/travel-insurance-claim-on-the-road.json +114 -0
  148. package/dist/skills/built-in/travel-notice-unlock-card.json +119 -0
  149. package/dist/skills/built-in/unemployment-claim-status-and-appeal.json +123 -0
  150. package/dist/skills/built-in/uscis-case-status-and-biometrics.json +125 -0
  151. package/dist/skills/built-in/utility-deposit-waiver.json +122 -0
  152. package/dist/skills/built-in/utility-payment-plan-avoid-disconnect.json +122 -0
  153. package/dist/skills/built-in/verify-insurance-coverage-pre-procedure.json +140 -0
  154. package/dist/skills/built-in/verify-out-of-network-coverage.json +129 -0
  155. package/dist/skills/built-in/veteran-benefits-community-college.json +134 -0
  156. package/dist/skills/built-in/veterinary-new-patient-intake.json +135 -0
  157. package/dist/skills/built-in/visa-boarding-denial-recovery.json +115 -0
  158. package/dist/skills/built-in/vital-records-certificate-copy.json +120 -0
  159. package/dist/skills/built-in/voicemail-that-gets-called-back.json +114 -0
  160. package/dist/skills/built-in/voter-registration-and-ballot.json +124 -0
  161. package/dist/skills/built-in/walkaway-threats.json +159 -0
  162. package/dist/skills/built-in/wedding-vendor-intake.json +149 -0
  163. package/dist/skills/built-in/when-to-stop-being-polite.json +161 -0
  164. package/dist/skills/built-in/wire-funds-safely.json +129 -0
  165. package/package.json +1 -1
@@ -0,0 +1,111 @@
1
+ {
2
+ "id": "missed-connection-distressed-passenger",
3
+ "name": "Missed Connection — Secure Hotel, Meal Vouchers, and Rebook",
4
+ "version": "1.0.1",
5
+ "category": "travel",
6
+ "tags": ["airline", "irrops", "hotel-voucher", "meal-voucher", "controllable", "dot-dashboard"],
7
+ "description": "Your inbound was late, you missed the connection, and you're stuck overnight. If the delay was carrier-controllable, US airlines committed via the DOT Customer Service Dashboard to provide hotel, meals, and rebooking. This skill extracts those entitlements without being fobbed off.",
8
+ "disclaimer": null,
9
+ "context": {
10
+ "when_to_use": "User has just missed (or is about to miss) a connection because the previous segment ran late or was cancelled. Most useful when the cause is carrier-controllable (mechanical, crew, IT outage, late inbound aircraft) — NOT weather or ATC, which are 'uncontrollable' and unlock fewer entitlements.",
11
+ "preconditions": [
12
+ "User can name the cause of the delay as posted by the airline (mechanical, crew, late-arriving aircraft, ATC, weather).",
13
+ "User has PNR and ticket number.",
14
+ "User is at the airport (gate, service desk, or club) — physical presence helps.",
15
+ "User has a credit card to charge the room in case the airline declines and reimburses later."
16
+ ],
17
+ "estimated_call_duration_minutes": 20
18
+ },
19
+ "principles": [
20
+ "Cause-of-delay language is everything. 'Controllable' (mechanical, crew, IT) unlocks the DOT Dashboard commitments. 'Uncontrollable' (weather, ATC, security) does not. Force the agent to name the cause.",
21
+ "Go to the right counter in the right order: gate first (fastest if they have voucher stock), then service desk, then the lounge if you have access (lounge agents have more time and tools), then phone.",
22
+ "The DOT Customer Service Dashboard (dot.gov/airconsumer) lists each major US airline's commitments. AA, AS, B6, DL, F9, HA, NK, UA, WN all committed to hotel + meal + rebook for controllable overnight delays. Cite the dashboard if pushed back.",
23
+ "Distressed-passenger hotel rates are pre-negotiated. If the airline can't issue a direct voucher, they will give you a 'distressed pax code' for a partner hotel — ask for it explicitly.",
24
+ "Meal vouchers are typically $12-$15 per meal, sometimes loaded onto a digital wallet code. Don't refuse them because they're small — they're symbolic and they count.",
25
+ "Save every receipt. Even with vouchers, reimbursement claims later may require originals."
26
+ ],
27
+ "phrases": {
28
+ "opener": "Hi — I just missed my connection from [origin] to [destination] because [previous flight] arrived late. Can you confirm the delay cause posted on the flight is [cause]? I'd like to rebook and get the overnight kit per your DOT Dashboard commitment.",
29
+ "force_cause_naming": "What's the official cause code on the inbound delay? I want to make sure we're on the same page about whether this is controllable.",
30
+ "ask_for_hotel": "Since this is controllable, I'd like the hotel voucher you committed to on the DOT Customer Service Dashboard. Where is the partner hotel and how do I get there?",
31
+ "ask_for_meals": "Can I also get the meal vouchers for tonight's dinner and tomorrow's breakfast?",
32
+ "ask_for_distressed_code": "If you can't issue a direct hotel voucher, can you give me the distressed-passenger rate code so I can book at the partner hotel and submit for reimbursement?",
33
+ "ask_for_transport": "How am I getting to the hotel — shuttle, taxi voucher, or rideshare reimbursement?",
34
+ "escalate": "Okay, if the front desk doesn't have voucher stock — can you connect me to the duty manager or station ops? This is a controllable delay and I'm trying to use what the airline committed to.",
35
+ "graceful_close_success": "Thanks. Can I get this in writing — an email or a printout of the rebooked itinerary, the hotel voucher details, and the meal voucher codes?",
36
+ "graceful_close_failure": "Alright. Please note on my PNR that I requested distressed-passenger services tonight at [station] and that they couldn't be provided. I'll book my own and file for reimbursement."
37
+ },
38
+ "tactics": [
39
+ {
40
+ "name": "Pin down the cause-of-delay code first",
41
+ "when": "Opening the conversation.",
42
+ "script": "Ask the agent to read out the cause code. Mechanical, crew, late-inbound-aircraft, IT/system = controllable. Weather, ATC, security = uncontrollable. Everything downstream hangs on this single fact.",
43
+ "priority": 1
44
+ },
45
+ {
46
+ "name": "Cite the DOT Customer Service Dashboard by name",
47
+ "when": "Agent claims no hotel/meal voucher is available for a controllable delay.",
48
+ "script": "Say: 'Your airline's commitment on the DOT Customer Service Dashboard at dot.gov/airconsumer says you provide hotel and meals for controllable overnight delays. I'd like to use that.' This is a public, regulator-posted commitment — agents back down fast.",
49
+ "priority": 2
50
+ },
51
+ {
52
+ "name": "Ask for the distressed-pax rate if direct vouchers are out",
53
+ "when": "Airport runs out of paper vouchers or hotel block is full.",
54
+ "script": "Most airlines have a backup: a coded rate at a partner hotel that you book yourself and they reimburse, OR a flat reimbursement cap (usually $100-$200/night). Ask for both the code and the cap.",
55
+ "priority": 3
56
+ },
57
+ {
58
+ "name": "Lounge as a workstation",
59
+ "when": "User has lounge access (status, day pass, Priority Pass).",
60
+ "script": "Lounge agents (Admirals, Sky, Polaris, Centurion) often have voucher-issuing authority and dramatically more time per passenger than a gate agent during IRROPS. This is one of the most underrated leverage points in air travel.",
61
+ "priority": 4
62
+ },
63
+ {
64
+ "name": "Book your own hotel as a backstop",
65
+ "when": "It's late, voucher hotel is 45 min away, and you have status with a better property nearby.",
66
+ "script": "Book the better hotel yourself, keep the receipt, and submit for reimbursement. The airline will pay up to their distressed-pax cap. You eat the difference for a better night's sleep — sometimes worth it for a 6am flight."
67
+ },
68
+ {
69
+ "name": "Get rebooking and amenities in one transaction",
70
+ "when": "After the cause/voucher conversation is settled.",
71
+ "script": "Don't let the agent close the file with just the voucher. Confirm the rebooked itinerary, new boarding passes, seat assignments, baggage rerouting, and where to collect bags overnight (sometimes they ride through to destination, sometimes you take them to the hotel)."
72
+ }
73
+ ],
74
+ "boundaries": [
75
+ "Do NOT misrepresent the cause of the delay. If it was weather, the airline owes you a rebook but not hotel/meals on most US carriers.",
76
+ "Do NOT walk away from the desk until you have either (a) a voucher in hand, or (b) a distressed-pax code, or (c) an explicit denial noted on the PNR so reimbursement is clean.",
77
+ "Do NOT accept 'we'll email it' as the only confirmation — get something printed or screenshot the agent's screen.",
78
+ "Do NOT pay for the hotel out-of-pocket without first asking for a direct voucher; many airlines will not retroactively reimburse if they weren't given a chance to issue the voucher in real time."
79
+ ],
80
+ "success_signals": [
81
+ "Agent reads out the controllable cause code without prodding.",
82
+ "Agent volunteers the DOT Dashboard commitment.",
83
+ "Voucher is printed and handed over.",
84
+ "Meal vouchers come in addition to the hotel voucher, not as a substitute.",
85
+ "Ground transport is included (shuttle or taxi voucher)."
86
+ ],
87
+ "failure_signals": [
88
+ "Agent insists the delay is 'weather' when the official posted reason is 'maintenance' or 'crew'.",
89
+ "Agent says 'we don't do hotels' for an airline on the DOT Dashboard list.",
90
+ "Voucher hotel is 90+ minutes away with no transport.",
91
+ "Cap offered is below the local hotel market rate by a wide margin (e.g. $75 cap in Manhattan)."
92
+ ],
93
+ "exit_strategy": {
94
+ "on_success": "Pocket the voucher, walk to the shuttle, confirm tomorrow's flight on the app. Set two alarms.",
95
+ "on_failure": "Book hotel + dinner yourself, save EVERY receipt + boarding passes + the cancellation/delay notification SMS. File a written claim within 7 days via the airline's customer relations portal, citing the DOT Dashboard. If they refuse, escalate to DOT (file.dot.gov).",
96
+ "follow_ups": [
97
+ "If the cause was extraordinary and >3 hours into the EU on an EU carrier — also pursue EU261 cash (load `eu261-uk261-dot-compensation`).",
98
+ "If you have travel insurance, file the trip-delay claim while you're still in the hotel (load `travel-insurance-claim-on-the-road`).",
99
+ "If status, double-check your account 30 days later — sometimes carriers proactively add bonus miles or e-credits for affected passengers."
100
+ ]
101
+ },
102
+ "required_user_info": [
103
+ "PNR / record locator",
104
+ "Inbound flight number and posted delay cause",
105
+ "Missed connecting flight number and the next available rebook option",
106
+ "Frequent flyer number and status",
107
+ "Whether checked baggage is involved",
108
+ "Credit card for backstop booking"
109
+ ],
110
+ "contributed_by": "travel-rebooking agent (v0.9.87 community drop)"
111
+ }
@@ -0,0 +1,130 @@
1
+ {
2
+ "id": "mortgage-loan-hardship",
3
+ "name": "Mortgage or Loan Rate-Modification / Hardship Inquiry",
4
+ "version": "1.0.1",
5
+ "category": "finance-admin",
6
+ "tags": [
7
+ "mortgage",
8
+ "loan-modification",
9
+ "hardship",
10
+ "loss-mitigation",
11
+ "forbearance",
12
+ "phone-call",
13
+ "banking-finance"
14
+ ],
15
+ "description": "Call a mortgage servicer or loan provider's loss-mitigation department to inquire about a rate modification, hardship plan, forbearance, or repayment plan — without committing to anything that would damage credit or trigger acceleration without explicit operator approval.",
16
+ "disclaimer": "Not financial or tax advice. Agent must NEVER share SSN unprompted, NEVER initiate wires above the operator's stated cap, NEVER agree to a hardship plan / settlement that affects credit without explicit ask_operator approval.",
17
+ "context": {
18
+ "when_to_use": "User is facing or anticipating financial hardship affecting a mortgage, auto, personal, or student loan: income loss, medical event, divorce, business setback. Call EARLY — before missing payments, when possible. Most servicers have more options before delinquency than after.",
19
+ "preconditions": [
20
+ "Operator has authorized an INQUIRY only. Agreeing to any plan that re-amortizes, defers, or settles requires a fresh operator approval.",
21
+ "User has loan account number, monthly payment, and approximate balance.",
22
+ "User can describe the hardship: cause, duration estimate (temporary vs ongoing), supporting documentation available.",
23
+ "User knows the loan type: conventional, FHA, VA, USDA, private — different rules and programs apply.",
24
+ "User has 2-3 months of income + expense snapshots ready (servicers ask for budget figures)."
25
+ ],
26
+ "estimated_call_duration_minutes": 45
27
+ },
28
+ "principles": [
29
+ "Talk to LOSS MITIGATION, not customer service. Loss-mit is the team with actual authority to modify, defer, or restructure. Customer service can only take payments.",
30
+ "Use the right vocabulary: 'forbearance' (temporary pause), 'loan modification' (permanent rate / term change), 'repayment plan' (catch-up over months), 'deferral' (move missed payments to end of loan). Asking for the wrong one wastes 20 minutes.",
31
+ "Frame as 'I want to keep paying — what's the structured path that works?' — NOT 'I can't pay'. Servicers route motivated borrowers to better programs than panicked ones.",
32
+ "Federal programs may apply: HAMP successor flex-mod, FHA partial claim, VA loan-mod, federal student-loan IDR / PSLF. Mention the loan type to anchor the rep on relevant programs.",
33
+ "DO NOT agree to anything on the first call. 'I'd like to understand the options. I will not be agreeing to anything today — I need to review and confirm with my [operator / co-signer].' This protects against accidental credit damage.",
34
+ "Some 'modifications' report negatively to credit bureaus (e.g., 'partial payment' codes). Always ask: 'How will this be reported to the bureaus?' before agreeing."
35
+ ],
36
+ "phrases": {
37
+ "opener": "Hi, I'd like to speak with the loss-mitigation team about my [mortgage / auto loan / personal loan / student loan]. I'm exploring options for a [forbearance / repayment plan / modification] due to [hardship category]. I'm in inquiry mode today — I won't be agreeing to anything on this call.",
38
+ "ask_for_loss_mit": "If I'm with general customer service, can you transfer me to the loss-mitigation or hardship-assistance team directly?",
39
+ "name_the_loan_type": "Just to anchor the conversation — this is a [conventional / FHA / VA / USDA / private] loan, originated [year], current balance approximately [$amount].",
40
+ "ask_for_all_programs": "Can you walk me through ALL the programs I might be eligible for — forbearance, repayment plan, modification, deferral — and for each, the impact on (a) monthly payment, (b) total interest, (c) credit-bureau reporting, and (d) whether it extends the loan term?",
41
+ "credit_impact_question": "How will [each option] be reported to Equifax / Experian / TransUnion? Will it show as 'paying as agreed', 'modified', 'partial payment', 'in forbearance', or something else?",
42
+ "documentation_question": "What documentation do you need from me to formally apply — hardship letter, tax returns, paystubs, bank statements, hardship affidavit?",
43
+ "hold_for_approval": "These options are helpful. I'm going to take this information back to [operator / co-signer / spouse], review the impact on credit and total interest, and call back to formally apply. Can you note today's conversation on the account and give me a reference number?",
44
+ "decline_pressure": "I hear you on the streamlined option, but I'm not in a position to commit today. Send me the terms in writing and I'll review and come back to you.",
45
+ "graceful_close": "Thanks. Can you confirm what's been noted on the account, list the program names and timing windows I can apply for, and give me your name and a direct extension if available?"
46
+ },
47
+ "tactics": [
48
+ {
49
+ "name": "Get to loss-mit fast",
50
+ "when": "Connected to general CS.",
51
+ "script": "Use `ask_for_loss_mit`. Loss-mit teams have written authority levels CS doesn't. If you can't get transferred, ask for the loss-mit DIRECT number.",
52
+ "priority": 1
53
+ },
54
+ {
55
+ "name": "Set scope: inquiry only",
56
+ "when": "First substantive turn.",
57
+ "script": "Use `opener`. Stating up front that you're not committing today removes pressure tactics and gets clearer information.",
58
+ "priority": 2
59
+ },
60
+ {
61
+ "name": "Get the full menu",
62
+ "when": "Rep starts pitching ONE program.",
63
+ "script": "Use `ask_for_all_programs`. Otherwise reps default to the most-pitched option, which isn't always the user's best fit.",
64
+ "priority": 3
65
+ },
66
+ {
67
+ "name": "Pin credit reporting per option",
68
+ "when": "Each program is described.",
69
+ "script": "Use `credit_impact_question` for EACH option. 'In forbearance' reports differently than 'partial payment', and the differences cost real points on the user's credit score for years.",
70
+ "priority": 4
71
+ },
72
+ {
73
+ "name": "Capture documentation requirements",
74
+ "when": "Programs identified.",
75
+ "script": "Use `documentation_question`. Many federal programs require a hardship affidavit, 2 years of returns, recent paystubs, and bank statements. Knowing this saves a callback."
76
+ },
77
+ {
78
+ "name": "Resist same-call commitment",
79
+ "when": "Rep pushes 'we can lock this in right now.'",
80
+ "script": "Use `decline_pressure`. Some 'streamlined' programs reduce future eligibility for better federal options — never agree without time to compare."
81
+ },
82
+ {
83
+ "name": "Lock in writeback",
84
+ "when": "Inquiry complete.",
85
+ "script": "Use `graceful_close`. Notes on file + program names + windows + rep name. Without these, the next rep starts from zero."
86
+ }
87
+ ],
88
+ "boundaries": [
89
+ "Do NOT agree to ANY plan, modification, forbearance, settlement, or rate change without explicit operator approval. Inquiry only.",
90
+ "Do NOT make a partial payment 'as a good-faith gesture' — partial payments can be applied as suspense items and trigger negative credit reporting.",
91
+ "Do NOT verbally accept a 'trial modification' — these convert to permanent and have credit-reporting consequences.",
92
+ "Do NOT provide full SSN, full DOB, full income unless the loss-mit team confirms it's required to enter the program AND operator has approved disclosure.",
93
+ "Do NOT discuss settlement / charge-off — those are last-resort and severely impact credit and may have tax consequences (cancellation of debt income).",
94
+ "Do NOT close the call without notes-on-file and rep name."
95
+ ],
96
+ "success_signals": [
97
+ "Connected to loss-mit / hardship-assistance team (not general CS).",
98
+ "Multiple programs described with payment, interest, term, and credit-reporting impact for each.",
99
+ "Documentation checklist obtained.",
100
+ "Account noted with today's inquiry; reference number issued.",
101
+ "No pressure to commit on the call."
102
+ ],
103
+ "failure_signals": [
104
+ "Rep insists on a same-day commitment with 'limited-time' framing — that's a pressure tactic.",
105
+ "Cannot reach loss-mit and CS won't transfer.",
106
+ "Rep refuses to disclose credit-bureau reporting impact.",
107
+ "Account already in delinquency status that changes available options (note and escalate).",
108
+ "Rep proposes settlement / charge-off as the first option — escalate."
109
+ ],
110
+ "exit_strategy": {
111
+ "on_success": "Bring program comparison back to operator with: monthly payment, interest impact, term impact, credit reporting, documentation needed, application window. Get operator's pick. Schedule the application call.",
112
+ "on_failure": "If loss-mit was unreachable: try at off-peak hours (Tue-Thu, 10am-2pm local). If credit-impact disclosure was refused: escalate to a supervisor or file CFPB complaint. If hardship is severe: consult HUD-approved housing counselor (mortgage) or a nonprofit credit counselor.",
113
+ "follow_ups": [
114
+ "Send hardship-letter draft to operator for approval.",
115
+ "Calendar: application deadline.",
116
+ "If federal program (FHA partial claim, VA loan-mod, etc.): research program-specific timelines.",
117
+ "If student loan: explore IDR (income-driven repayment) and PSLF separately."
118
+ ]
119
+ },
120
+ "required_user_info": [
121
+ "Loan account number, type, originator, current balance, monthly payment",
122
+ "Hardship category: income loss, medical, divorce, business, other",
123
+ "Hardship duration estimate: temporary (<6 mo), extended (6-18 mo), permanent",
124
+ "Income + expense snapshot (gross, net, fixed obligations)",
125
+ "Operator approval scope (inquiry only vs ready to apply)",
126
+ "Any prior loss-mit history on this loan"
127
+ ],
128
+ "contributed_by": "banking-finance agent (v0.9.87 community drop)",
129
+ "updated_at": "2026-05-20T06:09:47Z"
130
+ }
@@ -0,0 +1,114 @@
1
+ {
2
+ "id": "move-out-walkthrough",
3
+ "name": "Request and Document a Move-Out Walkthrough",
4
+ "version": "1.0.1",
5
+ "category": "real-estate",
6
+ "tags": [
7
+ "move-out",
8
+ "walkthrough",
9
+ "inspection",
10
+ "security-deposit",
11
+ "documentation",
12
+ "phone-call",
13
+ "housing-tenancy"
14
+ ],
15
+ "description": "Call the landlord or property manager to schedule a joint move-out walkthrough (also called a pre-move-out or final inspection) — and lock in the conditions, attendees, and documentation that protect the tenant's security deposit.",
16
+ "disclaimer": "Not legal advice. Habitability + early-termination skills are scripted to PRESERVE legal posture (request things in writing, refuse verbal-only assurances) — but the operator must consult a tenant attorney for actual rights determination.",
17
+ "context": {
18
+ "when_to_use": "User has given notice of move-out (or is about to). Ideally schedule the walkthrough 5–10 days BEFORE the actual move-out so the tenant has time to cure any issues the landlord flags. Some states (e.g. California) give the tenant a STATUTORY RIGHT to a pre-move-out inspection — ask the operator to check.",
19
+ "preconditions": [
20
+ "User has given written notice of move-out OR has a confirmed lease end date.",
21
+ "User has move-in photos / video (or the original move-in inspection sheet).",
22
+ "User has 2–3 windows of availability for the walkthrough.",
23
+ "User has reviewed the lease for any specific move-out clauses (carpet cleaning, hole patching, paint touch-up requirements)."
24
+ ],
25
+ "estimated_call_duration_minutes": 8
26
+ },
27
+ "principles": [
28
+ "A pre-move-out walkthrough is a tenant's strongest deposit-protection tool. Schedule it.",
29
+ "Have the walkthrough BEFORE you move your stuff out — the empty unit reveals more, but doing it 5–10 days early gives time to cure flagged issues.",
30
+ "Bring a written checklist and a camera. Photograph every flagged item with the landlord present, timestamped.",
31
+ "If the landlord won't do a joint walkthrough, do a SOLO walkthrough with timestamped photos / video of every wall, appliance, floor, fixture, and outlet — that record is admissible.",
32
+ "Get the landlord to sign or initial a walkthrough checklist if possible. If not, email a recap immediately.",
33
+ "Never accept verbal 'oh that's fine' assurances — those are the items that come back as deductions. Insist on written acknowledgment."
34
+ ],
35
+ "phrases": {
36
+ "opener": "Hi, my move-out is [date] and I'd like to schedule a pre-move-out walkthrough with you. In my jurisdiction tenants are generally entitled to one — and even where it's not required, it protects both of us. What times work in the next [5–10 days]?",
37
+ "confirm_purpose": "Just so we're aligned: the goal is to walk the unit together, identify anything you'd flag as damage so I can cure it before move-out, and agree on the move-in baseline. Sound good?",
38
+ "ask_who_attends": "Will it be you or another team member doing the walkthrough? Could I get their name?",
39
+ "ask_for_checklist": "Do you have a standard walkthrough form, or should I bring my own checklist?",
40
+ "ask_for_post_walkthrough_summary": "After the walkthrough can you email me a written list of anything you flagged, and what I'd need to do to cure it? I want to make sure we have the same record before move-out.",
41
+ "deflect_no_walkthrough": "No worries if it's not standard for you. I'll do a solo walkthrough with photos then — and I'll email the photos to you the same day so we have a shared record.",
42
+ "graceful_close": "Great — putting [day/time] in my calendar. I'll bring my move-in photos and a checklist. See you then."
43
+ },
44
+ "tactics": [
45
+ {
46
+ "name": "Open by naming the right and the timing",
47
+ "when": "First substantive turn.",
48
+ "script": "Use the `opener`. Naming the legal frame ('tenants are generally entitled') signals the tenant knows the process without being adversarial.",
49
+ "priority": 1
50
+ },
51
+ {
52
+ "name": "State the purpose explicitly",
53
+ "when": "After scheduling is initiated.",
54
+ "script": "Use `confirm_purpose`. Pre-naming the goal — cure flagged items, agree on baseline — prevents the walkthrough from devolving into a vague conversation.",
55
+ "priority": 2
56
+ },
57
+ {
58
+ "name": "Identify the attendee and ask for their checklist",
59
+ "when": "Once a window is selected.",
60
+ "script": "Use `ask_who_attends` and `ask_for_checklist`. Knowing the form in advance lets the tenant address items the landlord cares about.",
61
+ "priority": 3
62
+ },
63
+ {
64
+ "name": "Pre-arm the written summary",
65
+ "when": "Before ending the call.",
66
+ "script": "Use `ask_for_post_walkthrough_summary`. The post-walkthrough email is the document that wins (or prevents) the deposit dispute.",
67
+ "priority": 4
68
+ },
69
+ {
70
+ "name": "Fall back to solo walkthrough",
71
+ "when": "Landlord refuses to do a joint walkthrough.",
72
+ "script": "Use `deflect_no_walkthrough`. Then do a thorough solo walkthrough with timestamped photos and video and email a full set to the landlord same day with a written summary. The refusal itself helps the tenant's posture if disputed later."
73
+ }
74
+ ],
75
+ "boundaries": [
76
+ "Do NOT skip the walkthrough because the landlord seems friendly — friendly landlords change their mind when they see a contractor quote.",
77
+ "Do NOT sign any move-out condition document on the spot unless you've reviewed it. Take it home and review.",
78
+ "Do NOT agree to verbal-only assurances about what's 'fine.' Get every flagged item in writing.",
79
+ "Do NOT raise unrelated complaints (rent disputes, prior issues) during the walkthrough — it muddies the record.",
80
+ "Do NOT pay any move-out fees on the walkthrough call — those belong in the final accounting."
81
+ ],
82
+ "success_signals": [
83
+ "Joint walkthrough scheduled BEFORE move-out date.",
84
+ "Landlord agrees to send a written list of flagged items afterwards.",
85
+ "Landlord names the attendee and is willing to use a checklist.",
86
+ "Pre-move-out gives the tenant time to cure any flagged item before final."
87
+ ],
88
+ "failure_signals": [
89
+ "Landlord refuses any walkthrough.",
90
+ "Landlord schedules walkthrough only on move-out day (no time to cure).",
91
+ "Landlord refuses to send written summary.",
92
+ "Landlord insists on signed releases or waivers at the walkthrough."
93
+ ],
94
+ "exit_strategy": {
95
+ "on_success": "Confirm date, time, attendee name, and that a written summary will follow. Operator should email a recap within 1 hour confirming the appointment.",
96
+ "on_failure": "Plan and execute a solo walkthrough with full photo / video documentation. Email the landlord a same-day recap with photos attached, noting the request for a joint walkthrough was declined.",
97
+ "follow_ups": [
98
+ "Bring move-in photos / video to the walkthrough on phone or printed.",
99
+ "Bring a written checklist covering every room, appliance, wall, floor, fixture.",
100
+ "Take a new photo of every item the landlord flags WITH the landlord visible if possible.",
101
+ "Send a recap email within 24 hours summarising what was flagged and the cure plan.",
102
+ "Calendar a follow-up cure-by date if anything was flagged."
103
+ ]
104
+ },
105
+ "required_user_info": [
106
+ "Move-out date and notice date",
107
+ "Move-in photos / video / inspection sheet",
108
+ "Lease copy with any move-out clauses highlighted",
109
+ "Two or three pre-move-out walkthrough windows",
110
+ "Landlord name + property manager number"
111
+ ],
112
+ "contributed_by": "housing-tenancy agent (v0.9.87 community drop)",
113
+ "updated_at": "2026-05-20T06:09:47Z"
114
+ }
@@ -0,0 +1,141 @@
1
+ {
2
+ "id": "multi-channel-escalation",
3
+ "name": "Multi-Channel Escalation Sequencing",
4
+ "version": "1.0.0",
5
+ "category": "customer-service",
6
+ "tags": [
7
+ "escalation",
8
+ "multi-channel",
9
+ "social-media",
10
+ "email",
11
+ "phone",
12
+ "twitter",
13
+ "linkedin",
14
+ "strategy",
15
+ "customer-support"
16
+ ],
17
+ "description": "Use phone, email, social media, and written letters in the right ORDER and the right COMBINATION. Each channel has different routing, different staffing, and different leverage. Wrong order wastes weeks; right order resolves in days.",
18
+ "disclaimer": null,
19
+ "context": {
20
+ "when_to_use": "A single channel (typically phone) hasn't resolved the issue after 1-2 good-faith attempts. The issue has enough materiality to be worth a multi-day, multi-channel push. Especially effective when the company has a visible brand and active social media presence.",
21
+ "preconditions": [
22
+ "User has documented timeline of prior attempts (dates, names, case numbers).",
23
+ "User has at least one social media account or willingness to make one.",
24
+ "User has the company's published support email AND its executive-relations or social-care contact handles (researchable in 10 min).",
25
+ "User has 3-7 days to let the channels work — multi-channel is not a same-day strategy."
26
+ ],
27
+ "estimated_call_duration_minutes": 25
28
+ },
29
+ "principles": [
30
+ "Channels are sorted by COST and SPEED, not by what feels right. Roughly: chat (cheapest, fastest if available) → phone (free for you, expensive for the company) → email (slow but documented) → social public (FAST + reputational pressure) → written letter (slow, formal, legally weighty) → executive/regulator (most expensive, most powerful). Use cheaper/faster channels first; escalate when they fail.",
31
+ "Social media is the highest-leverage modern channel for routine consumer disputes. Companies staff social-care teams with senior agents and explicit escalation authority — because public visibility forces it. A polite, factual public tweet at @CompanyHelp often outperforms 3 hours on hold.",
32
+ "Email is slow but creates a paper trail. Send email IN PARALLEL with phone or social — not as your only channel. The phrase 'I emailed your support address on [date]' is leverage even before anyone reads the email.",
33
+ "Direct messages (DMs) often work better than public posts. Many companies' social-care teams reply faster to a polite DM with case details than to a public post. But the public post creates the leverage that gets the DM answered quickly. Combination > either alone.",
34
+ "Decision point — before each new channel, ask: 'is this channel actually used by this company?' Some companies are dead on Twitter, alive on Reddit. Some answer email in 2 days; others in 6 weeks. Spend 5 minutes verifying before committing.",
35
+ "Channel-stacking is force multiplication. Phone call open + email sent same day + tweet referencing both = three separate notifications hitting three separate teams who don't want to be the one who let the customer escalate further.",
36
+ "Tone has to STAY professional across channels. The same factual, calm tone wins in all of them. A combative tweet undoes the leverage your calm email built."
37
+ ],
38
+ "phrases": {
39
+ "email_template_subject": "Formal escalation — [Account #] — [one-line issue] — case ref [prior case #]",
40
+ "email_template_body_intro": "Hello,\n\nI'm writing to escalate a service issue that has not been resolved through prior phone contact. Timeline below.\n\nAccount: [number]\nIssue: [one paragraph, factual]\nPrior contacts: [date — rep name — case # — outcome]; [repeat for each]\nRequested resolution: [one sentence]\n\nI'd appreciate a response within [5 business days]. If unresolved, my next step will be [next channel — be specific, not threatening].",
41
+ "tweet_template_public": "@[CompanyHelp] hi — I've been trying to resolve [one-line issue] for [N weeks] across [N calls]. Account on file, case ref [###]. Can someone DM me to get this moving? Happy to take this to DMs.",
42
+ "tweet_template_dm": "Hi — sending case context here so we can keep details off the public timeline. Account: [number] / Email on file: [email] / Issue: [paragraph] / Prior case refs: [list] / What I'm asking for: [one sentence] / What I've tried: [bullet list]. Thanks for any help.",
43
+ "linkedin_inmail_to_exec": "Hi [Name] — apologies for the cold message. I'm a long-time [company] customer and have been unable to resolve [issue] across [N contacts]. I know this isn't your direct area but I'd appreciate even a forward to the right person at your organization. Case ref [#] for your team. Thank you.",
44
+ "letter_template_opening": "Dear [Office of the President / Customer Relations]: I am writing as a formal escalation regarding [issue], which has not been resolved through your customer service channels. Attached is a complete timeline including dates, representative names, and case reference numbers. I am requesting a written response within 14 days.",
45
+ "phone_referencing_paper_trail": "Just for context — I've already emailed your support team on [date] and sent a DM to your social-care team on [date]. I'm calling now to give your phone team a chance to resolve this before all three channels return responses."
46
+ },
47
+ "tactics": [
48
+ {
49
+ "name": "Audit channels before committing",
50
+ "when": "Before launching multi-channel.",
51
+ "script": "5-minute research: (1) Is the company's Twitter/X handle responsive in the last 30 days? Check replies. (2) Is the company's support email a real inbox or a no-reply? (3) Does the executive team have public LinkedIn presence? (4) Are there subreddits or Better Business Bureau threads showing what channel has worked for others? Pick the live channels — skip the dead ones.",
52
+ "priority": 1,
53
+ "decision_point": "If a channel looks dead (Twitter handle that hasn't replied in 6 months, email address that bounces) — DO NOT use it. A dead channel is wasted effort AND tells the company you don't know which channels are real, weakening your credibility."
54
+ },
55
+ {
56
+ "name": "Standard sequence — phone+email same day, social if no movement in 48h",
57
+ "when": "Day 1.",
58
+ "script": "Morning: phone call (using prior skills). Same afternoon: send formal escalation email (template above). Save the email send confirmation. Wait 48h business-hours. If no movement → Day 3: post the tweet AND send the DM.",
59
+ "priority": 2
60
+ },
61
+ {
62
+ "name": "Reference the paper trail on every channel",
63
+ "when": "Every contact after Day 1.",
64
+ "script": "Use `phone_referencing_paper_trail` or its variant for the channel. The fact that you have multiple channels open is itself leverage — companies prefer to resolve once, not respond on five tracks.",
65
+ "priority": 3,
66
+ "decision_point": "If, after referencing the paper trail, the agent visibly engages (looks up the email, references the tweet) — that channel is now active. Keep them engaged; don't add more channels until you see whether this one resolves."
67
+ },
68
+ {
69
+ "name": "Use social-DM, not just public posts",
70
+ "when": "Tweet has been up >2h with no reply, OR you want to share details that don't belong public.",
71
+ "script": "Use `tweet_template_dm`. Most companies' social-care teams respond faster to DMs (lower public-relations risk for them to engage substantively). The public tweet creates urgency; the DM enables resolution.",
72
+ "priority": 4
73
+ },
74
+ {
75
+ "name": "LinkedIn for executives (carefully)",
76
+ "when": "Phone + email + social all unresolved after 7 business days.",
77
+ "script": "Use `linkedin_inmail_to_exec`. Target: VP of Customer Experience, Chief Customer Officer, or anyone with 'customer' in their title — NOT the CEO directly (too high, ignored or filtered). Keep it polite, brief, factual. Most executives forward these to a senior escalation specialist within hours.",
78
+ "priority": 5,
79
+ "decision_point": "LinkedIn outreach burns a one-time card. Don't do it for trivial issues. Reserve for cases where the dollar amount or harm justifies the asymmetry — and only after the standard channels have demonstrably failed."
80
+ },
81
+ {
82
+ "name": "Written letter for formality",
83
+ "when": "Issue is large (multi-thousand dollar, multi-month) and digital channels haven't worked.",
84
+ "script": "Use `letter_template_opening`. Send by certified mail to corporate HQ (Office of the President / Customer Relations). Include timeline, evidence, and a 14-day response window. Certified mail creates legal record of receipt — that's why it's part of regulator / litigation prep.",
85
+ "priority": 6
86
+ },
87
+ {
88
+ "name": "Consolidate to the channel that responded",
89
+ "when": "Any channel produces an actual response.",
90
+ "script": "Stop adding channels. Concentrate on the one that's working. Multiple parallel responses can contradict each other and the company may close the rest as 'duplicate'. Acknowledge the responsive channel ('thank you for getting back to me — I'd like to consolidate the conversation here').",
91
+ "priority": 7
92
+ },
93
+ {
94
+ "name": "Close all channels with the resolution",
95
+ "when": "Resolution reached on one channel.",
96
+ "script": "Send a brief, polite update on each OTHER open channel: 'Resolved via [channel] on [date], case [ref]. Closing this thread. Thanks.' Keeps your record clean and prevents stale escalations from re-opening confused tickets later.",
97
+ "priority": 8
98
+ }
99
+ ],
100
+ "boundaries": [
101
+ "Do NOT post unverified accusations on social. Public posts are searchable forever — defamation isn't free.",
102
+ "Do NOT post identifying information (account numbers, full addresses, screenshots with PII) publicly. Use DMs for that.",
103
+ "Do NOT spam multiple executives at once with LinkedIn InMail. One targeted message > five mass messages.",
104
+ "Do NOT contradict yourself across channels — same facts, same ask, same timeline everywhere. Contradictions are used to discredit you.",
105
+ "Do NOT skip the cheaper channels and go directly to social/executive/regulator first. Skipping the ladder destroys the 'I tried' narrative that makes higher channels work.",
106
+ "Do NOT keep adding channels after one starts working — pick the responsive channel and pursue it.",
107
+ "Do NOT use multi-channel for a $20 dispute. The strategy's overhead is real; reserve for issues that justify it (>$200 OR significant service disruption OR principle-of-the-thing matters more than the dollar amount)."
108
+ ],
109
+ "success_signals": [
110
+ "Social-care DM responds within 24h with case ownership.",
111
+ "Email reply from an actual person (not auto-reply) with a name + case + commitment.",
112
+ "Phone rep on a re-call references the email or tweet without prompting — meaning the channels are visible internally.",
113
+ "Executive-level callback from a phone number you didn't dial.",
114
+ "Tone shift from 'we'll look into it' to 'here's what we can do' on any channel."
115
+ ],
116
+ "failure_signals": [
117
+ "All channels respond with the same boilerplate (often verbatim) — you've hit a centralized response queue with no real authority.",
118
+ "Auto-replies on email but no human follow-up after 5 business days.",
119
+ "Public tweet gets no response within 48h on a normally-responsive handle.",
120
+ "DM gets a generic 'thanks for reaching out, please call [number]' — that's a channel-loop back to phone, the channel that already failed.",
121
+ "Letter sent certified mail, signature received, no response in 14 business days."
122
+ ],
123
+ "exit_strategy": {
124
+ "on_success": "Consolidate to the responsive channel. Get specific commitment in writing. Close other channels with brief updates. Calendar a follow-up to verify the resolution actually executed.",
125
+ "on_failure": "If all standard channels exhausted: escalate to `invoke-regulator-firmly` (if applicable) and/or `reach-executive-office` (direct corporate). For very large dollar amounts, consult an attorney about formal demand letter or small claims.",
126
+ "follow_ups": [
127
+ "Save all channel correspondence (emails, tweet links, DM screenshots, certified mail receipts) in one folder — this is your evidence package.",
128
+ "If issue resolves, send a closing message of thanks on the responsive channel. Goodwill on a responsive channel makes the NEXT issue (if there is one) faster.",
129
+ "If issue remains unresolved after 14-30 days across multiple channels — that itself is grounds for a regulator complaint citing pattern of non-response."
130
+ ]
131
+ },
132
+ "required_user_info": [
133
+ "Complete timeline of prior contacts",
134
+ "Account number + login email + phone on file",
135
+ "Verified company contact info for each channel (phone, email, social handles, corporate address)",
136
+ "Social media account (or willingness to create one)",
137
+ "Time horizon available (7+ business days for full sequence)"
138
+ ],
139
+ "contributed_by": "support-escalator agent (v0.9.87 community drop)",
140
+ "updated_at": "2026-05-20T06:09:47Z"
141
+ }