@agenticmail/core 0.9.32 → 0.9.34

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 (163) hide show
  1. package/dist/index.d.cts +1 -1
  2. package/dist/index.d.ts +1 -1
  3. package/dist/skills/built-in/accommodation-intake.json +132 -0
  4. package/dist/skills/built-in/add-driver-vehicle-household.json +133 -0
  5. package/dist/skills/built-in/admissions-waitlist-followup.json +129 -0
  6. package/dist/skills/built-in/anchor-and-counter-anchor.json +161 -0
  7. package/dist/skills/built-in/anti-social-engineering.json +153 -0
  8. package/dist/skills/built-in/anything-else-sweep.json +120 -0
  9. package/dist/skills/built-in/apologise-correctly.json +126 -0
  10. package/dist/skills/built-in/ask-for-in-person-meeting.json +114 -0
  11. package/dist/skills/built-in/attorney-new-client-intake.json +133 -0
  12. package/dist/skills/built-in/bant-discovery-call.json +125 -0
  13. package/dist/skills/built-in/book-new-patient-appointment.json +131 -0
  14. package/dist/skills/built-in/bookmark-close.json +113 -0
  15. package/dist/skills/built-in/bypass-i-am-the-supervisor.json +130 -0
  16. package/dist/skills/built-in/bypass-scripted-rep.json +142 -0
  17. package/dist/skills/built-in/calibrated-questions.json +155 -0
  18. package/dist/skills/built-in/call-911-fire.json +118 -0
  19. package/dist/skills/built-in/call-911-medical-emergency.json +126 -0
  20. package/dist/skills/built-in/call-911-violent-crime-in-progress.json +133 -0
  21. package/dist/skills/built-in/call-988-crisis-line.json +128 -0
  22. package/dist/skills/built-in/call-poison-control.json +115 -0
  23. package/dist/skills/built-in/call-police-non-emergency.json +114 -0
  24. package/dist/skills/built-in/call-with-person-in-distress.json +133 -0
  25. package/dist/skills/built-in/cancel-cable-fiber-no-retention-loop.json +156 -0
  26. package/dist/skills/built-in/cancel-policy-clean.json +130 -0
  27. package/dist/skills/built-in/capture-rep-identity.json +113 -0
  28. package/dist/skills/built-in/childcare-provider-intake.json +157 -0
  29. package/dist/skills/built-in/close-account-no-residual-fees.json +127 -0
  30. package/dist/skills/built-in/close-on-concrete-next-step.json +116 -0
  31. package/dist/skills/built-in/confirm-agreement-readback.json +134 -0
  32. package/dist/skills/built-in/confirm-next-step-ownership.json +113 -0
  33. package/dist/skills/built-in/contractor-estimate-request.json +142 -0
  34. package/dist/skills/built-in/court-clerk-administrative-inquiry.json +119 -0
  35. package/dist/skills/built-in/cpa-intake-call.json +134 -0
  36. package/dist/skills/built-in/day-of-flight-cancellation.json +127 -0
  37. package/dist/skills/built-in/de-escalate-angry-rep.json +114 -0
  38. package/dist/skills/built-in/decline-unsolicited-pitch.json +110 -0
  39. package/dist/skills/built-in/deliver-difficult-news.json +122 -0
  40. package/dist/skills/built-in/detect-fake-escalation-loops.json +140 -0
  41. package/dist/skills/built-in/detect-lies-and-contradictions.json +139 -0
  42. package/dist/skills/built-in/dispute-billing-code-eob.json +147 -0
  43. package/dist/skills/built-in/dispute-charge-reg-e-reg-z.json +131 -0
  44. package/dist/skills/built-in/dispute-credit-report-via-bank.json +128 -0
  45. package/dist/skills/built-in/dispute-denied-claim.json +143 -0
  46. package/dist/skills/built-in/dispute-security-deposit.json +130 -0
  47. package/dist/skills/built-in/dispute-usage-spike-meter-reread.json +120 -0
  48. package/dist/skills/built-in/dmv-vehicle-registration-renewal.json +120 -0
  49. package/dist/skills/built-in/document-call-promises.json +145 -0
  50. package/dist/skills/built-in/early-lease-termination.json +126 -0
  51. package/dist/skills/built-in/elite-line-escalation.json +107 -0
  52. package/dist/skills/built-in/equipment-swap-cable-router-modem.json +126 -0
  53. package/dist/skills/built-in/eu261-uk261-dot-compensation.json +113 -0
  54. package/dist/skills/built-in/file-fnol-auto-claim.json +130 -0
  55. package/dist/skills/built-in/file-habitability-complaint.json +115 -0
  56. package/dist/skills/built-in/financial-aid-appeal.json +128 -0
  57. package/dist/skills/built-in/follow-up-stalled-claim.json +118 -0
  58. package/dist/skills/built-in/get-past-gatekeeper.json +115 -0
  59. package/dist/skills/built-in/get-past-tier-1-script.json +130 -0
  60. package/dist/skills/built-in/handle-callback-stall.json +120 -0
  61. package/dist/skills/built-in/handle-outsourced-no-escalation.json +138 -0
  62. package/dist/skills/built-in/handle-send-me-an-email-deflection.json +112 -0
  63. package/dist/skills/built-in/handle-time-pressure.json +159 -0
  64. package/dist/skills/built-in/health-prior-auth-appeal.json +131 -0
  65. package/dist/skills/built-in/hoa-dispute.json +123 -0
  66. package/dist/skills/built-in/hold-time-strategy.json +137 -0
  67. package/dist/skills/built-in/hold-warmth-cold-rep.json +114 -0
  68. package/dist/skills/built-in/hotel-walk-over-recovery.json +114 -0
  69. package/dist/skills/built-in/humour-when-it-lands.json +127 -0
  70. package/dist/skills/built-in/i20-visa-dso.json +134 -0
  71. package/dist/skills/built-in/invoke-regulator-firmly.json +137 -0
  72. package/dist/skills/built-in/irrops-waiver-awareness.json +103 -0
  73. package/dist/skills/built-in/irs-payment-plan-setup.json +134 -0
  74. package/dist/skills/built-in/k12-iep-504-enrollment.json +134 -0
  75. package/dist/skills/built-in/late-add-petition.json +128 -0
  76. package/dist/skills/built-in/leave-of-absence-deferral.json +130 -0
  77. package/dist/skills/built-in/lock-in-terms-verbally.json +127 -0
  78. package/dist/skills/built-in/match-energy-keep-goal.json +120 -0
  79. package/dist/skills/built-in/medical-records-transfer.json +138 -0
  80. package/dist/skills/built-in/medical-withdrawal.json +131 -0
  81. package/dist/skills/built-in/mid-call-evidence-collection.json +159 -0
  82. package/dist/skills/built-in/mirror-technique.json +145 -0
  83. package/dist/skills/built-in/missed-connection-distressed-passenger.json +111 -0
  84. package/dist/skills/built-in/mortgage-loan-hardship.json +130 -0
  85. package/dist/skills/built-in/move-out-walkthrough.json +114 -0
  86. package/dist/skills/built-in/multi-channel-escalation.json +141 -0
  87. package/dist/skills/built-in/multi-issue-tradeoffs.json +155 -0
  88. package/dist/skills/built-in/negotiate-rent-renewal.json +123 -0
  89. package/dist/skills/built-in/no-as-opening.json +154 -0
  90. package/dist/skills/built-in/not-sound-like-spam-dialer.json +118 -0
  91. package/dist/skills/built-in/outage-credit-applied.json +127 -0
  92. package/dist/skills/built-in/passport-expedite-or-appointment.json +123 -0
  93. package/dist/skills/built-in/pediatric-school-forms.json +141 -0
  94. package/dist/skills/built-in/personal-trainer-discovery.json +138 -0
  95. package/dist/skills/built-in/pharmacy-callback.json +134 -0
  96. package/dist/skills/built-in/pivot-mid-call.json +141 -0
  97. package/dist/skills/built-in/port-mobile-number-survive-retention.json +127 -0
  98. package/dist/skills/built-in/prescription-refill-followup.json +132 -0
  99. package/dist/skills/built-in/push-past-invented-policy.json +159 -0
  100. package/dist/skills/built-in/rapport-opening-30-seconds.json +130 -0
  101. package/dist/skills/built-in/reach-executive-office.json +137 -0
  102. package/dist/skills/built-in/read-vocal-cues.json +139 -0
  103. package/dist/skills/built-in/read-vocal-tone.json +159 -0
  104. package/dist/skills/built-in/realestate-agent-vetting.json +144 -0
  105. package/dist/skills/built-in/receive-difficult-news.json +115 -0
  106. package/dist/skills/built-in/recording-claim-conversation-legally.json +121 -0
  107. package/dist/skills/built-in/recover-summary-refusal.json +121 -0
  108. package/dist/skills/built-in/reengage-ghosted-lead.json +115 -0
  109. package/dist/skills/built-in/referral-followup-without-burning.json +116 -0
  110. package/dist/skills/built-in/referral-prior-authorization.json +130 -0
  111. package/dist/skills/built-in/refuse-the-split.json +142 -0
  112. package/dist/skills/built-in/refuse-upsell-at-close.json +114 -0
  113. package/dist/skills/built-in/rental-car-counter-defense.json +116 -0
  114. package/dist/skills/built-in/rental-scam-report.json +125 -0
  115. package/dist/skills/built-in/replace-lost-stolen-card-expedited.json +139 -0
  116. package/dist/skills/built-in/report-downed-line-gas-smell-911-triage.json +130 -0
  117. package/dist/skills/built-in/report-elder-or-child-abuse.json +125 -0
  118. package/dist/skills/built-in/report-fbi-tip.json +116 -0
  119. package/dist/skills/built-in/report-fraud-ic3-or-ftc.json +117 -0
  120. package/dist/skills/built-in/report-fraudulent-transaction.json +126 -0
  121. package/dist/skills/built-in/report-power-outage-get-etr.json +116 -0
  122. package/dist/skills/built-in/report-urgent-maintenance.json +123 -0
  123. package/dist/skills/built-in/request-credit-limit-increase.json +126 -0
  124. package/dist/skills/built-in/request-supervisor-gracefully.json +129 -0
  125. package/dist/skills/built-in/request-welfare-check.json +127 -0
  126. package/dist/skills/built-in/request-written-confirmation.json +113 -0
  127. package/dist/skills/built-in/reschedule-appointment.json +121 -0
  128. package/dist/skills/built-in/reset-by-callback.json +143 -0
  129. package/dist/skills/built-in/resist-urgency-manipulation.json +152 -0
  130. package/dist/skills/built-in/revisit-totaling-decision.json +125 -0
  131. package/dist/skills/built-in/roadside-assistance-dispatch.json +132 -0
  132. package/dist/skills/built-in/roommate-replacement.json +121 -0
  133. package/dist/skills/built-in/same-day-urgent-appointment.json +130 -0
  134. package/dist/skills/built-in/schedule-rental-viewing.json +111 -0
  135. package/dist/skills/built-in/service-move-shutoff-start-no-overlap.json +129 -0
  136. package/dist/skills/built-in/social-security-replacement-card.json +122 -0
  137. package/dist/skills/built-in/specialist-doctor-booking.json +136 -0
  138. package/dist/skills/built-in/spot-bait-and-switch.json +155 -0
  139. package/dist/skills/built-in/stop-recurring-ach.json +127 -0
  140. package/dist/skills/built-in/switch-postpaid-to-prepaid-mid-cycle.json +130 -0
  141. package/dist/skills/built-in/tactical-empathy-labeling.json +147 -0
  142. package/dist/skills/built-in/therapist-intake-call.json +133 -0
  143. package/dist/skills/built-in/train-cancellation-refund-rebook.json +104 -0
  144. package/dist/skills/built-in/transcript-request.json +128 -0
  145. package/dist/skills/built-in/travel-insurance-claim-on-the-road.json +114 -0
  146. package/dist/skills/built-in/travel-notice-unlock-card.json +119 -0
  147. package/dist/skills/built-in/unemployment-claim-status-and-appeal.json +123 -0
  148. package/dist/skills/built-in/uscis-case-status-and-biometrics.json +125 -0
  149. package/dist/skills/built-in/utility-deposit-waiver.json +122 -0
  150. package/dist/skills/built-in/utility-payment-plan-avoid-disconnect.json +122 -0
  151. package/dist/skills/built-in/verify-insurance-coverage-pre-procedure.json +140 -0
  152. package/dist/skills/built-in/verify-out-of-network-coverage.json +129 -0
  153. package/dist/skills/built-in/veteran-benefits-community-college.json +134 -0
  154. package/dist/skills/built-in/veterinary-new-patient-intake.json +135 -0
  155. package/dist/skills/built-in/visa-boarding-denial-recovery.json +115 -0
  156. package/dist/skills/built-in/vital-records-certificate-copy.json +120 -0
  157. package/dist/skills/built-in/voicemail-that-gets-called-back.json +114 -0
  158. package/dist/skills/built-in/voter-registration-and-ballot.json +124 -0
  159. package/dist/skills/built-in/walkaway-threats.json +159 -0
  160. package/dist/skills/built-in/wedding-vendor-intake.json +149 -0
  161. package/dist/skills/built-in/when-to-stop-being-polite.json +161 -0
  162. package/dist/skills/built-in/wire-funds-safely.json +129 -0
  163. package/package.json +1 -1
@@ -0,0 +1,120 @@
1
+ {
2
+ "id": "dmv-vehicle-registration-renewal",
3
+ "name": "DMV: Vehicle Registration Renewal, Address Change, or License Replacement",
4
+ "version": "1.0.0",
5
+ "category": "civic",
6
+ "tags": [
7
+ "dmv",
8
+ "vehicle-registration",
9
+ "drivers-license",
10
+ "address-change",
11
+ "phone-call",
12
+ "state-government",
13
+ "government-services"
14
+ ],
15
+ "description": "Call a state DMV / MVA / BMV / DOL to renew a vehicle registration, change the address on file, or order a replacement driver's license. Most DMVs prefer online self-service — this skill is the fallback when the online flow rejects the user or a hold/flag must be cleared by a human.",
16
+ "disclaimer": "Not legal advice. DMV procedures vary by state. The agent will not advise on traffic-court strategy, license-suspension appeals, or DUI consequences — those require an attorney or the state's hearing officer.",
17
+ "context": {
18
+ "when_to_use": "User cannot complete the task online (system rejects them, a flag/hold appears, an out-of-state transfer is needed, or the renewal window is too tight for mail). Also use when the user has received conflicting information from the website vs. a notice in the mail.",
19
+ "preconditions": [
20
+ "User has their driver's-license number OR last 4 of SSN (state-dependent).",
21
+ "User has the license-plate number and current registration card / VIN if renewing a vehicle.",
22
+ "User has the new address (with ZIP+4 if known) for an address change.",
23
+ "User knows whether they need a REAL ID upgrade or a standard renewal.",
24
+ "User has a callback number — DMV phone lines drop frequently."
25
+ ],
26
+ "estimated_call_duration_minutes": 35
27
+ },
28
+ "principles": [
29
+ "DMV hold music is the longest in government. Settle in. Do NOT keep redialing — you lose your place.",
30
+ "Front-line agents read from a script. If your case is unusual, politely ask for a 'tier 2' or 'supervisor review' — they have lookup tools the front line does not.",
31
+ "Most DMVs route by ZIP / county. Calling the wrong field office wastes 40 minutes. Confirm you are at the right office before describing the issue.",
32
+ "Get a confirmation / reference number for ANY change. DMV systems are notoriously slow to propagate and the paper trail saves you later.",
33
+ "Recognize 'this can only be done in person' early — for many states, license replacement REQUIRES a field-office visit (REAL ID, photo capture). Don't burn 60 minutes on hold to be told to come in."
34
+ ],
35
+ "phrases": {
36
+ "opener_renewal": "Hi, I'm trying to renew the registration on my vehicle. My plate is [PLATE] and my renewal notice says it's due [DATE]. The online portal won't let me complete the renewal — it's giving me [ERROR]. Can you help me figure out what's blocking it?",
37
+ "opener_address": "Hi, I need to update the address on my driver's license and vehicle registration. The new address is [ADDRESS]. Can we do both in one call?",
38
+ "opener_replacement": "Hi, I need a replacement driver's license — the original was [lost / stolen / damaged]. Can this be ordered by phone or do I need to come in?",
39
+ "confirm_right_office": "Just to confirm — am I at the office that handles [county/region]? I want to make sure I'm in the right queue.",
40
+ "ask_for_hold_reason": "The system says there's a hold or flag on my record. Can you tell me what it is and what office can clear it?",
41
+ "stall_documents": "Give me one second — I want to pull up the notice in front of me so I read the numbers correctly.",
42
+ "graceful_close_success": "Thank you. Before we hang up: can I have a confirmation number, your name or agent ID, and the expected date I'll see the change reflected online or receive the document in the mail?",
43
+ "graceful_close_failure": "I understand. Just so I know my next step — what's the best office, web page, or form for me to use, and is there a way to schedule an in-person appointment from here?"
44
+ },
45
+ "tactics": [
46
+ {
47
+ "name": "Verify you reached the correct office FIRST",
48
+ "when": "Within the first 60 seconds of reaching a human.",
49
+ "script": "Confirm the office handles the user's county/region and the task type. If you're at a call center that only handles licensing and the user needs registration, ask for the right transfer number before describing the full case.",
50
+ "priority": 1
51
+ },
52
+ {
53
+ "name": "Surface holds and flags before the renewal attempt",
54
+ "when": "User's online attempt failed with a generic error.",
55
+ "script": "Ask 'Can you check if there are any holds, flags, or outstanding items on the record?' Common blockers: unpaid toll, emissions/smog requirement, insurance lapse, parking citation, court-ordered suspension. Each routes to a different office.",
56
+ "priority": 2
57
+ },
58
+ {
59
+ "name": "Bundle related changes",
60
+ "when": "User needs both license + registration address changes.",
61
+ "script": "Most states will update both in one call IF you ask explicitly. Front-line reps default to one at a time.",
62
+ "priority": 3
63
+ },
64
+ {
65
+ "name": "Capture the document path",
66
+ "when": "Any record change is accepted.",
67
+ "script": "Ask: 'Will I get an updated card / sticker in the mail, do I need to print something, or is the change electronic-only?' DMV cards in the mail take 2–6 weeks; some states require the user to print a temporary registration.",
68
+ "priority": 4
69
+ },
70
+ {
71
+ "name": "Escalate to tier 2 / supervisor for unusual cases",
72
+ "when": "Front-line rep says 'system won't let me' but cannot explain why.",
73
+ "script": "Politely ask for a supervisor or a 'records specialist'. Many DMV systems have override codes that front-line agents cannot use.",
74
+ "priority": 5
75
+ }
76
+ ],
77
+ "boundaries": [
78
+ "Do NOT give legal advice on tickets, suspensions, DUIs, or court-ordered restrictions — refer to an attorney or the issuing court.",
79
+ "Do NOT share SSN unless the rep has authenticated themselves and the field is necessary for lookup. Last 4 is usually enough.",
80
+ "Do NOT promise the user the renewal will arrive by a specific date if the rep gave a range — quote the range exactly.",
81
+ "Do NOT attempt to clear a court-ordered hold by phone — those require the originating court.",
82
+ "Do NOT claim REAL ID compliance unless the rep confirms it on this transaction."
83
+ ],
84
+ "success_signals": [
85
+ "Rep gives a confirmation / reference number for the change.",
86
+ "Rep confirms an exact mail-out date or document arrival window.",
87
+ "Rep clears or identifies a previously unknown hold.",
88
+ "Rep offers to schedule an in-person appointment if the task can't be done by phone."
89
+ ],
90
+ "failure_signals": [
91
+ "Rep insists the task can only be done in person at a field office (note this is NOT necessarily failure — capture the next step).",
92
+ "Rep cannot identify why the online portal rejected the user and refuses to escalate.",
93
+ "Hold time exceeds 60 minutes with no human pickup.",
94
+ "User has been transferred more than twice and is being routed in a loop."
95
+ ],
96
+ "exit_strategy": {
97
+ "on_success": "Confirm the change, capture the confirmation number, agent name/ID, expected document arrival, and any temporary document (printable receipt, temp registration). Note the next renewal date in the user's calendar.",
98
+ "on_failure": "Capture the exact next step: which office, which form (DL-XX, REG-XX), in-person required Y/N, appointment URL. Report back to the operator so they can choose between rebooking, in-person visit, or mail-in.",
99
+ "follow_ups": [
100
+ "Calendar arrival of the new card/sticker; ping operator if it doesn't show within the quoted window.",
101
+ "If REAL ID was deferred, add a calendar reminder before the federal deadline.",
102
+ "If a hold was identified, dispatch a follow-up call to the office that owns the hold (court, tolling authority, insurance carrier)."
103
+ ]
104
+ },
105
+ "required_user_info": [
106
+ "Driver's license number OR last 4 of SSN",
107
+ "License plate + VIN (for vehicle tasks)",
108
+ "Current and new address (with ZIP+4 if available)",
109
+ "Reason for replacement (lost / stolen / damaged / name change)",
110
+ "Whether the user wants REAL ID or standard",
111
+ "Callback number"
112
+ ],
113
+ "hang_up_and_call_back_signals": [
114
+ "You realize you are at the WRONG office (e.g. licensing call center for a registration issue) — politely end and call the correct number.",
115
+ "You've been on hold > 75 minutes with no movement — try the next morning at opening (call volume drops 30–60% in the first hour).",
116
+ "Rep is reading from a script that does not match the user's situation and refuses to escalate — hang up, call back, and ask for tier 2 by name."
117
+ ],
118
+ "contributed_by": "govt-services-pro agent (v0.9.87 community drop)",
119
+ "updated_at": "2026-05-20T06:09:47Z"
120
+ }
@@ -0,0 +1,145 @@
1
+ {
2
+ "id": "document-call-promises",
3
+ "name": "Document the Call So the Next Rep Can't Deny What Was Promised",
4
+ "version": "1.0.0",
5
+ "category": "customer-service",
6
+ "tags": [
7
+ "documentation",
8
+ "phone-call",
9
+ "paper-trail",
10
+ "promises",
11
+ "evidence",
12
+ "follow-up",
13
+ "customer-support"
14
+ ],
15
+ "description": "Build an evidence trail during and immediately after a support call — names, IDs, case numbers, exact wording of commitments, and contemporaneous notes — so a future rep can't say 'no record of that' or 'we never agreed to that'. This skill is foundational; every other escalator skill is multiplied by it.",
16
+ "disclaimer": "Recording laws vary by state. In one-party-consent states (most of US), you can record without disclosing. In all-party-consent states (CA, FL, IL, MA, MD, NH, PA, WA, etc.), you must inform the rep — and most call-center reps will then say 'we can't be recorded' and hang up, so consider their disclosure 'this call may be recorded' as also covering your end and rely on contemporaneous notes instead. Verify your jurisdiction before recording.",
17
+ "context": {
18
+ "when_to_use": "Every customer-service call, but especially: any call where a commitment is made (credit, refund, service restore, callback), any call about an ongoing issue you'll need to reference later, any call after a previous rep made promises you want to lock down.",
19
+ "preconditions": [
20
+ "User has note-taking method ready BEFORE the call: paper + pen, text editor, voice memo, or recording app where legal.",
21
+ "User has a consistent location to store call notes (folder, doc, notes app) — disorganized notes are nearly as bad as no notes.",
22
+ "User has a few minutes available immediately after the call to consolidate notes while memory is fresh."
23
+ ],
24
+ "estimated_call_duration_minutes": 5
25
+ },
26
+ "principles": [
27
+ "Memory degrades fast — names you heard 20 minutes ago feel solid until you go to write them down and realize you have 'Susan or Sarah, S-something'. Capture in REAL TIME, not after.",
28
+ "What to capture, every call: date + time started, rep name + employee ID, the queue/department, case or ticket number, the exact problem stated, the EXACT WORDING of any commitment ('we will refund $X by [date]' is dramatically different from 'we'll try to refund some of that soon'), and the time the call ended.",
29
+ "Reps rarely lie outright, but they paraphrase generously. 'We'll see what we can do' becomes 'I was told I'd get a refund' in customer memory. Capturing exact wording protects you from that drift AND protects you from the next rep claiming 'no one would have said that'.",
30
+ "Decision point — when a rep makes a verbal commitment, STOP and ask them to repeat it. 'I want to make sure I have this right — can you say back exactly what we just agreed to?' Reps often soften the commitment on the readback ('well, we'll try to get the refund processed within 5-7 business days, though it could be longer'). Better to hear the real version now than to discover it next call.",
31
+ "Get commitments in writing whenever possible. 'Could you email me a summary of what we agreed to?' is a perfectly reasonable ask — and many reps can do it. A written commitment is 10x stronger than a verbal one.",
32
+ "Case numbers are the universal currency. They survive across reps, queues, and channels. Always ask. Always write down. Always read back. Always reference next time.",
33
+ "Recording is sometimes legal, sometimes not, often gray. Notes are ALWAYS legal everywhere. Default to thorough notes; recording is a bonus where allowed, not a substitute for notes anywhere."
34
+ ],
35
+ "phrases": {
36
+ "name_id_capture": "Could you spell your first name for me, and what's your employee ID or extension? I'm taking notes so I can credit you if this works out.",
37
+ "case_number_request": "Have you opened a case or ticket for this? Could you read me the number, and read back the first line of what's noted?",
38
+ "the_readback_request": "I want to make sure I'm capturing this correctly. Could you read back exactly what we've agreed to, including any specific amounts and dates?",
39
+ "ask_for_written_confirmation": "Could you email me a summary of what we just agreed to? Even a few lines is fine — I just want to have it in writing for both our records.",
40
+ "lock_the_commitment": "Just to confirm: [exact restatement of commitment, including amount, action, and date]. Is that accurate?",
41
+ "promise_to_followup_yourself": "If I don't see [committed action] by [date], may I call back and reference this case number and your name? I want to make sure the path is clear for next time.",
42
+ "end_of_call_summary": "Before we hang up, let me read back what I have: [name + ID], [department], [case #], [problem], [commitment], [date]. Anything I have wrong?",
43
+ "after_call_email_template": "Subject: Confirming our call today — case [#]\n\nHi — following up on our phone call today at [time]. To confirm what we agreed:\n\n • Issue: [one line]\n • Rep: [name + ID]\n • Case: [#]\n • Commitment: [exact words]\n • Expected by: [date]\n\nPlease reply to confirm this is accurate. If anything is off, let me know so we can correct it. Thanks for your help today."
44
+ },
45
+ "tactics": [
46
+ {
47
+ "name": "Set up your note-taking before dialing",
48
+ "when": "Before the call.",
49
+ "script": "Open a doc or notebook. Pre-fill: date, company, phone number called, the problem in one sentence, what outcome you want. Now you have a scaffold. Don't start a call without one.",
50
+ "priority": 1
51
+ },
52
+ {
53
+ "name": "Capture name + ID in the first minute",
54
+ "when": "Right after the rep introduces themselves.",
55
+ "script": "Use `name_id_capture` if they didn't spell it. Get the ID even if they only volunteered the name. Reps occasionally refuse IDs — note the refusal, that's also data.",
56
+ "priority": 2,
57
+ "decision_point": "If the rep refuses to give an employee ID after a polite ask — that's a YELLOW FLAG. Either (a) note it and proceed but be ready to escalate, or (b) immediately ask for a supervisor; refusing identification on a recorded call is unusual."
58
+ },
59
+ {
60
+ "name": "Get a case number opened — explicitly",
61
+ "when": "Within the first 2-3 minutes once you've stated the issue.",
62
+ "script": "Use `case_number_request`. If they say 'we don't open a case for this kind of inquiry', push back: 'I'd still appreciate one — even just for my records and follow-up.' Most CRMs let reps open a case in 30 seconds; they just don't volunteer it.",
63
+ "priority": 3
64
+ },
65
+ {
66
+ "name": "Catch commitments in flight",
67
+ "when": "Rep says anything that sounds like a promise.",
68
+ "script": "STOP and use `the_readback_request`. Even 'I'll get that looked into' deserves a clarifying readback: 'When you say looked into — what specifically will happen, by when?' Pin it down while you're both on the line.",
69
+ "priority": 4,
70
+ "decision_point": "If the rep softens the commitment on readback (a real refund becomes 'we'll review it'), you now know the real commitment. Don't be upset — be glad you caught the gap before you hung up. Either accept the real version or push for a firmer one."
71
+ },
72
+ {
73
+ "name": "Lock the commitment by repeating it back",
74
+ "when": "Commitment finalized.",
75
+ "script": "Use `lock_the_commitment`. Your version, their confirmation. Now it's locked in the recording — if the next rep claims 'no one would have agreed to that', you have the readback to reference.",
76
+ "priority": 5
77
+ },
78
+ {
79
+ "name": "Ask for written confirmation",
80
+ "when": "Any non-trivial commitment.",
81
+ "script": "Use `ask_for_written_confirmation`. Some reps will do it; some can't. Don't fight if they can't — but always ask. A 'yes' is worth more than 30 minutes of negotiation.",
82
+ "priority": 6
83
+ },
84
+ {
85
+ "name": "End-of-call summary",
86
+ "when": "Before ending the call.",
87
+ "script": "Use `end_of_call_summary`. This is the most important sixty seconds of the call. Read back everything you have. Lets you catch errors before you hang up — and signals to the rep that you're documenting.",
88
+ "priority": 7
89
+ },
90
+ {
91
+ "name": "Send the confirmation email within 1 hour",
92
+ "when": "Immediately after the call.",
93
+ "script": "Use `after_call_email_template`. Send to the company's published support address, your own personal address (creates a sent-record), and if you have it, the rep's queue-specific address. Even if the company doesn't reply to confirm, the SEND is your contemporaneous record.",
94
+ "priority": 8,
95
+ "decision_point": "If the company replies to the confirmation email contradicting your version of events — you have a problem to flag NOW, not on the day the commitment is supposed to execute. Reply within 24h asking them to reconcile."
96
+ },
97
+ {
98
+ "name": "Store and index the notes",
99
+ "when": "Same day as the call.",
100
+ "script": "Move your notes to a single, searchable location with a consistent naming pattern: [Date]_[Company]_[Case#]_[OneLineProblem]. Six months from now, when you need to reference 'that call with Verizon last March', you'll find it in 10 seconds.",
101
+ "priority": 9
102
+ }
103
+ ],
104
+ "boundaries": [
105
+ "Do NOT record calls in jurisdictions that require all-party consent without informing the rep — it's illegal AND the recording is inadmissible.",
106
+ "Do NOT fabricate quotes when reconstructing notes after the fact. Note what you remember in your own words and clearly label any verbatim quotes.",
107
+ "Do NOT use the notes to publicly shame individual reps. Use them for escalation, regulator complaints, and your own records.",
108
+ "Do NOT lie about having a recording when you don't ('we have you on tape saying X'). Reps and supervisors will request the recording; you'll be caught.",
109
+ "Do NOT share confirmation emails or call notes publicly when they contain other parties' employee IDs or personal info.",
110
+ "Do NOT skip note-taking on 'easy' calls — half the time the easy call turns out to be relevant six weeks later when something goes wrong. Notes are cheap insurance."
111
+ ],
112
+ "success_signals": [
113
+ "Rep voluntarily gives name + ID + case number without being asked.",
114
+ "Rep agrees to a written summary email.",
115
+ "Rep's readback of the commitment matches your understanding.",
116
+ "Confirmation email gets a 'yes, confirmed' reply within 24h.",
117
+ "Next call: you reference the case number and the new rep pulls up complete notes matching your records."
118
+ ],
119
+ "failure_signals": [
120
+ "Rep refuses to give employee ID.",
121
+ "Rep refuses to read back the commitment.",
122
+ "Rep refuses to send a written summary AND claims the company 'doesn't do that' (often false — they do, the rep just doesn't want to).",
123
+ "Confirmation email is met with silence or auto-reply only.",
124
+ "Next call: case number doesn't exist in the system, OR exists but notes contradict your version of the commitment."
125
+ ],
126
+ "exit_strategy": {
127
+ "on_success": "File the notes + the confirmation email + any reply in your call-log folder. Set a calendar alert for the commitment date. On that date, verify execution. If executed — close. If not — call back, citing your full documentation.",
128
+ "on_failure": "If the rep refused to identify themselves OR refused to read back a commitment, treat the call as if NO commitment was made — and either re-engage at a higher tier (`request-supervisor-gracefully`, `bypass-i-am-the-supervisor`) or pivot channels (`multi-channel-escalation`).",
129
+ "follow_ups": [
130
+ "On the commitment date: check whether it executed. If yes — close out. If no — call back same day with full documentation.",
131
+ "If a commitment fails to execute, the documentation becomes the spine of a regulator complaint or executive escalation. Make it count.",
132
+ "Periodically (quarterly) prune your call-log of resolved issues to keep active files manageable.",
133
+ "If a company pattern emerges (multiple commitments not honored), the documentation supports a BBB / state-AG complaint of pattern-of-unfulfilled-promises — much stronger than any single case."
134
+ ]
135
+ },
136
+ "required_user_info": [
137
+ "Note-taking medium ready (doc, paper, notes app)",
138
+ "Knowledge of recording laws in user's jurisdiction",
139
+ "User's email address for confirmation",
140
+ "Account identifier",
141
+ "A consistent file location / naming convention for storing call records"
142
+ ],
143
+ "contributed_by": "support-escalator agent (v0.9.87 community drop)",
144
+ "updated_at": "2026-05-20T06:10:28Z"
145
+ }
@@ -0,0 +1,126 @@
1
+ {
2
+ "id": "early-lease-termination",
3
+ "name": "Negotiate Early Lease Termination Without Penalty",
4
+ "version": "1.0.1",
5
+ "category": "real-estate",
6
+ "tags": [
7
+ "lease-break",
8
+ "early-termination",
9
+ "military",
10
+ "relocation",
11
+ "domestic-violence",
12
+ "habitability",
13
+ "phone-call",
14
+ "housing-tenancy"
15
+ ],
16
+ "description": "Call the landlord or property manager to negotiate an early lease termination using one of the statutory protections (military SCRA, domestic-violence, habitability) or, where no statute applies, to negotiate a buy-out — while preserving the tenant's legal posture and avoiding a deficiency judgment.",
17
+ "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. Statutory protections vary by jurisdiction.",
18
+ "context": {
19
+ "when_to_use": "User needs to break a lease before the end date. Best outcomes come from one of: (a) Servicemembers Civil Relief Act (SCRA) protections for military PCS / deployment, (b) state statutes for domestic violence or stalking, (c) habitability-based constructive eviction after documented failures, (d) job-relocation clauses already in the lease, or (e) negotiated buy-out where no statute applies. Each path has different evidence and notice requirements.",
20
+ "preconditions": [
21
+ "User has the lease and has identified any early-termination clauses.",
22
+ "User has identified which path applies (military, DV, habitability, relocation clause, plain buy-out).",
23
+ "User has gathered the supporting documentation appropriate to the path (PCS orders, protective order, habitability complaint case number, relocation letter).",
24
+ "User has a desired move-out date and a realistic flexibility window.",
25
+ "User understands that landlords can pursue a deficiency judgment for unpaid rent through the lease end date if the lease is broken without a protected path."
26
+ ],
27
+ "estimated_call_duration_minutes": 22
28
+ },
29
+ "principles": [
30
+ "Lead with the path, not the apology. If you have an SCRA-qualifying order or a habitability case number, name it early — the conversation shifts immediately.",
31
+ "Statutory paths are not negotiations — they're notices. The landlord can verify, but cannot legally refuse.",
32
+ "For non-statutory paths, frame the buy-out as the landlord's best alternative: market re-let cost, vacancy time, and turnover all factor in. A 1–2 month buy-out is often cheaper than a 4-month vacancy + listing fees.",
33
+ "Mitigation matters. In most jurisdictions, the landlord has a legal DUTY TO MITIGATE — they must try to re-rent the unit rather than just collect rent from the breaking tenant. Mention this if the landlord refuses to re-list.",
34
+ "Get the termination agreement in writing BEFORE moving out. A signed mutual-release is the document that prevents a deficiency claim from showing up months later.",
35
+ "NEVER accept a verbal-only release. Move-out without a signed release is the most common path to a surprise judgment 6–12 months later."
36
+ ],
37
+ "phrases": {
38
+ "opener_military": "Hi, I'm a tenant at [unit, address] and I'm calling to give notice under the Servicemembers Civil Relief Act. I've received [PCS / deployment / activation] orders effective [date]. I'll be sending you a copy of the orders and a written notice. The termination is effective 30 days after the next rent due date.",
39
+ "opener_dv": "Hi, I'm a tenant at [unit, address] and I need to terminate my lease early under [state] domestic-violence / stalking statute. I have [protective order / police report] documenting the qualifying circumstance. I'll send written notice and the supporting documents.",
40
+ "opener_habitability": "Hi, I'm calling about [unit, address]. Given the [habitability issues — case number / inspector report / repeated failure to repair], I'm exercising my right to terminate due to constructive eviction. I want to discuss how we wrap this up cleanly.",
41
+ "opener_relocation_clause": "Hi, I'm a tenant at [unit, address]. My lease includes a job-relocation clause — I've received an offer letter from [employer] requiring relocation to [city] by [date]. I'd like to invoke that clause.",
42
+ "opener_buyout": "Hi, I'm a tenant at [unit, address]. I need to move out before my lease ends, and I want to talk about a fair buy-out — no statute applies, I just need to leave. What does that look like?",
43
+ "ask_about_re_let_process": "How quickly can you re-list the unit? Your duty to mitigate means you'd be looking for a replacement tenant anyway — I'd rather we treat any month it's re-rented as ending my obligation.",
44
+ "propose_buyout": "I'm willing to pay [1–2 months] of rent as a clean buy-out, forfeit the deposit if needed, and help market the unit. In exchange I'd want a written mutual release effective [move-out date]. Does that work?",
45
+ "ask_for_mutual_release": "Before I move anything out, I need a signed mutual release stating that the lease is terminated effective [date], my deposit treatment is [terms], and neither party has further obligations. Can you send that for review?",
46
+ "decline_holdback": "I can't agree to leave the deposit as an open balance against future charges. The release needs to be final — full and final settlement.",
47
+ "graceful_close_resolved": "Thank you. To confirm: lease terminates [date], buy-out [amount] paid by [date], mutual release signed before move-out. I'll watch for the document.",
48
+ "graceful_close_unresolved": "Okay, sounds like we're stuck for today. I'm going to send you written notice and the supporting documentation by certified mail and email — that starts the clock on my end. Let's keep talking."
49
+ },
50
+ "tactics": [
51
+ {
52
+ "name": "Identify the path and lead with it",
53
+ "when": "First substantive turn.",
54
+ "script": "Use the matching opener. The path determines whether this is a notice (SCRA, DV, habitability, relocation clause) or a negotiation (buy-out). Mixing them weakens both.",
55
+ "priority": 1
56
+ },
57
+ {
58
+ "name": "Send written notice + documentation as the parallel act",
59
+ "when": "Always, regardless of how the call goes.",
60
+ "script": "Statutory paths require written notice. Have the operator send certified mail + email with the supporting docs the same day. Without written notice, no statute starts the clock.",
61
+ "priority": 2
62
+ },
63
+ {
64
+ "name": "Invoke the duty to mitigate",
65
+ "when": "Landlord threatens to hold you to the full lease term.",
66
+ "script": "Use `ask_about_re_let_process`. Most jurisdictions require the landlord to try to re-rent — your liability ends when they do (or when they reasonably could have).",
67
+ "priority": 3
68
+ },
69
+ {
70
+ "name": "Propose a specific, concrete buy-out",
71
+ "when": "No statute applies and the user just needs out.",
72
+ "script": "Use `propose_buyout`. Anchor with 1–2 months + deposit. Most landlords accept 2 months because re-letting takes about that long anyway.",
73
+ "priority": 4
74
+ },
75
+ {
76
+ "name": "Insist on mutual release",
77
+ "when": "Any termination deal — statutory OR negotiated.",
78
+ "script": "Use `ask_for_mutual_release`. This is the single document that prevents a 'you still owe us $X' letter from arriving 6 months later. Do NOT move out without it.",
79
+ "priority": 5
80
+ },
81
+ {
82
+ "name": "Refuse open-ended deposit holdback",
83
+ "when": "Landlord wants to keep the deposit as 'security against future charges.'",
84
+ "script": "Use `decline_holdback`. A release that doesn't settle the deposit isn't a release — it's a deferral. Hold for written terms.",
85
+ "priority": 6
86
+ }
87
+ ],
88
+ "boundaries": [
89
+ "Do NOT move out before the signed mutual release is in hand if any money is in dispute.",
90
+ "Do NOT use a statutory path you don't actually qualify for — falsifying SCRA or DV claims is a crime and destroys credibility.",
91
+ "Do NOT verbally agree to pay a buy-out amount above what the user pre-authorised.",
92
+ "Do NOT discuss new tenancy plans, new income, or financial position — those reduce sympathy and leverage.",
93
+ "Do NOT sign a release that contains a non-disparagement clause or a waiver of habitability claims without operator review."
94
+ ],
95
+ "success_signals": [
96
+ "Landlord acknowledges the statutory path and accepts the notice.",
97
+ "Landlord agrees to a specific buy-out amount and a release date.",
98
+ "Mutual-release document sent for review in writing.",
99
+ "Landlord commits to actively re-list and credit any re-rent month."
100
+ ],
101
+ "failure_signals": [
102
+ "Landlord disputes the statutory path even with documentation — escalate to tenant attorney before move-out.",
103
+ "Landlord demands more than 3 months' rent as a buy-out with no re-let credit.",
104
+ "Landlord refuses any written release.",
105
+ "Landlord threatens collections / deficiency judgment without acknowledging duty to mitigate."
106
+ ],
107
+ "exit_strategy": {
108
+ "on_success": "Confirm termination date, payment amount (if any), deposit treatment, and that mutual release will be signed before move-out. Operator emails the recap within 1 hour and sends the written notice + documents same day.",
109
+ "on_failure": "Send the written notice + documentation by certified mail and email regardless — this starts statutory clocks and creates the record. Consult a tenant attorney before move-out if a deficiency judgment is being threatened.",
110
+ "follow_ups": [
111
+ "Send written notice + supporting docs (PCS orders, protective order, habitability case number, relocation letter) by certified mail AND email same day.",
112
+ "Calendar the statutory effective date.",
113
+ "Once mutual release is signed, schedule the move-out walkthrough (see `move-out-walkthrough`).",
114
+ "After move-out, keep the mutual release in a permanent file — it's the document that defeats any future collection attempt."
115
+ ]
116
+ },
117
+ "required_user_info": [
118
+ "Lease copy and any early-termination clauses",
119
+ "Path: SCRA (with orders), DV (with order / police report), habitability (with case number), relocation clause, plain buy-out",
120
+ "Desired move-out date and flexibility window",
121
+ "Buy-out budget if a negotiated path is needed",
122
+ "Deposit amount and whether the user is willing to forfeit it as part of the deal"
123
+ ],
124
+ "contributed_by": "housing-tenancy agent (v0.9.87 community drop)",
125
+ "updated_at": "2026-05-20T06:09:47Z"
126
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "id": "elite-line-escalation",
3
+ "name": "Airline Elite-Line / Status-Credit Escalation",
4
+ "version": "1.0.1",
5
+ "category": "travel",
6
+ "tags": ["airline", "elite", "status", "phone-line", "concierge", "escalation"],
7
+ "description": "Route the call to the right tier of phone agent — 1K Voice, ConciergeKey, Diamond, 360, A-List Preferred — and use their wider discretion to unstick a problem the general line can't or won't solve.",
8
+ "disclaimer": null,
9
+ "context": {
10
+ "when_to_use": "User has airline elite status, OR is one tier away from status (status-match candidate), AND needs leverage on a request the general line just denied: change-fee waiver, mile redeposit, OAL rebook, upgrade clearance, fare-class hold, complaint resolution.",
11
+ "preconditions": [
12
+ "User has frequent flyer number and current tier confirmed.",
13
+ "User has PNR if the issue relates to an existing reservation.",
14
+ "User can articulate the exact ask in one sentence."
15
+ ],
16
+ "estimated_call_duration_minutes": 20
17
+ },
18
+ "principles": [
19
+ "Status agents have MORE discretion, not just shorter holds. Front-line CSRs cannot waive fees beyond a small ceiling; elite-line agents have meaningfully higher ceilings.",
20
+ "Each tier has a published phone tree. Calling the right number is half the battle — wrong number gets you front-line, which has the same script you already failed at.",
21
+ "Loyalty-loyalty matters. Mention years of status, lifetime miles, recent paid-cabin flying. 'I've been Executive Platinum for 9 years' is leverage; 'I'm Executive Platinum' is just a fact.",
22
+ "Even non-status callers can be PROMOTED in queue by calling the right ancillary line (Vacations, Reservations Spanish, Reservations Japanese, Group Desk). Hold times are often a fraction of the main line.",
23
+ "Tone with elite agents: peer-to-peer, not customer-to-rep. They handle thousands of seasoned travelers; sounding like one accelerates the call.",
24
+ "Status-match agents (the team that processes competitor-status matches) are a parallel escalation path. If your status is about to expire on Carrier A, a match offer from Carrier B is leverage."
25
+ ],
26
+ "phrases": {
27
+ "opener": "Hi — [name], [frequent flyer number], [tier]. I have a quick one: [specific ask in one sentence]. Front-line told me [outcome], but I think this falls in your discretion.",
28
+ "establish_loyalty": "I've been [tier] for [years] years and flew [N] paid segments with you last year — I'm not trying to game anything, I just want this to work.",
29
+ "specific_ask": "Specifically I'd like you to [redeposit the miles / waive the change fee / put me on partner X / clear an upgrade / open inventory in Y class / re-issue under a waiver code].",
30
+ "concede_gracefully": "If the system genuinely won't let you do that, no worries. Could you note the request on my PNR and see if a supervisor or the [HVC desk / liaison desk] can pick it up?",
31
+ "status_match_pivot": "If we can't get there, I'm thinking about [competitor tier match]. I'd rather stay with you — what can we do?",
32
+ "graceful_close_success": "Thank you — that's a huge help. Can you confirm the PNR shows [new state], read me the confirmation number, and email me the updated itinerary?",
33
+ "graceful_close_failure": "Okay, I'll let this one go. Could you note on my account that we tried this and that I'm a long-term flyer? It helps me when I call back."
34
+ },
35
+ "tactics": [
36
+ {
37
+ "name": "Use the right phone number for your tier",
38
+ "when": "Before dialling.",
39
+ "script": "United: 1K Voice (1K only), Premier Platinum line, Global Services has dedicated reps reach out to you. American: ConciergeKey (invite-only top tier, no public number — they call you), Executive Platinum line, Platinum Pro line. Delta: Diamond Medallion line, 360 line (top-tier invite-only). Alaska: MVP Gold 75K line. Southwest: A-List Preferred line. JetBlue: Mosaic line. Numbers are on each program's homepage when logged in.",
40
+ "priority": 1
41
+ },
42
+ {
43
+ "name": "State the specific ask in ≤15 seconds",
44
+ "when": "First substantive turn.",
45
+ "script": "Elite agents reward concision. 'I missed UA 12 LHR-EWR yesterday because of a mechanical, I'd like the miles redeposited and the change fee waived' — that's the whole opener. Save your story for if they need it.",
46
+ "priority": 2
47
+ },
48
+ {
49
+ "name": "Cite specific tools the agent has",
50
+ "when": "Agent says 'system won't let me'.",
51
+ "script": "Examples: 'override desk', 'waiver code', 'unlock fare class with WAIVE remarks', 'fee waiver under loyalty discretion', 'INVOL refund-to-original-FOP'. Knowing the tools by name signals you respect their job and you know what's possible.",
52
+ "priority": 3
53
+ },
54
+ {
55
+ "name": "Status match as leverage",
56
+ "when": "Status renewal is in question.",
57
+ "script": "If you're 5,000 mi shy of re-qualifying for Executive Platinum and you have an open status-match offer from DL Diamond — politely mention it. Agents have soft-discretion miles credits ('soft landing', 'loyalty miles', 'gesture of goodwill') and use them to retain status flyers.",
58
+ "priority": 4
59
+ },
60
+ {
61
+ "name": "Try ancillary desks for promotion",
62
+ "when": "Non-status caller, main line wait is >20 minutes.",
63
+ "script": "AA Vacations desk, UA Vacations, DL Vacations, Reservations Español, AA Australia desk all answer general reservation questions and have shorter queues. Outside-US offices (UA Manila, AA Sydney, DL India) too."
64
+ },
65
+ {
66
+ "name": "Ask for the supervisor only after the agent has tried",
67
+ "when": "Agent has clearly used their tools and still cannot help.",
68
+ "script": "'Could you loop in your supervisor? Not because you've done anything wrong, but because the gap is enough that I want to make sure we've checked everything.' This is the negotiate-bill-reduction playbook — works identically here."
69
+ }
70
+ ],
71
+ "boundaries": [
72
+ "Do NOT call the elite line if you're not at that tier — the agent verifies and the call goes nowhere.",
73
+ "Do NOT abuse the line for routine seat changes the app handles fine. Burning goodwill costs you on the next real ask.",
74
+ "Do NOT misrepresent the urgency or facts of the situation.",
75
+ "Do NOT threaten to switch programs without follow-through; agents have seen this 10,000 times."
76
+ ],
77
+ "success_signals": [
78
+ "Agent picks up in <5 minutes.",
79
+ "Agent immediately understands the ask without restating.",
80
+ "Agent applies a waiver code, redeposits miles, or rebooks without arguing.",
81
+ "Agent thanks you for being a loyal customer (industry tell for 'this is going to work out').",
82
+ "Agent escalates to a desk above them without prompting."
83
+ ],
84
+ "failure_signals": [
85
+ "Elite line routes you back to general reservations.",
86
+ "Agent recites the same script the front line used.",
87
+ "Hold music for 30+ minutes on a top-tier line (rare; usually means IRROPS-driven volume).",
88
+ "Agent declines and refuses to escalate to supervisor."
89
+ ],
90
+ "exit_strategy": {
91
+ "on_success": "Get the confirmation, email confirmation, agent's first name. Note any soft-landing miles in your tracker.",
92
+ "on_failure": "Polite goodbye, redial later (different agent often = different result), or write to customer relations / loyalty program team in writing — those teams have additional discretion.",
93
+ "follow_ups": [
94
+ "If a waiver was applied, double-check the PNR shows zero-balance and no residual fare difference.",
95
+ "If miles redeposited, confirm they show in the account within 7 days; if not, call back.",
96
+ "If status match was floated, follow up in writing with the competitor program now."
97
+ ]
98
+ },
99
+ "required_user_info": [
100
+ "Frequent flyer number, tier, years at tier",
101
+ "PNR if applicable",
102
+ "Specific ask in one sentence",
103
+ "Outcome from the front-line agent (so the elite agent doesn't repeat)",
104
+ "Any open status-match or competitor offers"
105
+ ],
106
+ "contributed_by": "travel-rebooking agent (v0.9.87 community drop)"
107
+ }