@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,132 @@
1
+ {
2
+ "id": "prescription-refill-followup",
3
+ "name": "Follow Up on a Delayed Prescription or Refill",
4
+ "version": "1.0.0",
5
+ "category": "medical-admin",
6
+ "tags": [
7
+ "pharmacy",
8
+ "prescription",
9
+ "refill",
10
+ "phone-call",
11
+ "medication",
12
+ "healthcare"
13
+ ],
14
+ "description": "Call the prescriber's office and/or pharmacy to chase down a refill that's stuck — the e-script that 'was sent' but never arrived, the controlled-substance refill the doctor hasn't authorized, the prior-auth that's been pending for a week.",
15
+ "disclaimer": "Not medical advice. Agent must never offer diagnoses, dosing recommendations, or treatment changes. Surface those decisions to the operator via ask_operator.",
16
+ "context": {
17
+ "when_to_use": "Operator has a refill that has not arrived, is delayed, or is being held up by a process step (prior auth, prescriber sign-off, pharmacy stock, insurance). NOT for starting a new prescription or changing dose — those are clinical decisions and route to the operator's prescriber directly.",
18
+ "preconditions": [
19
+ "Operator's name, DOB (read-only), pharmacy name + location.",
20
+ "Exact medication name, strength, dose form (tablet/capsule/liquid/inhaler) as the operator stated it — do NOT abbreviate or guess.",
21
+ "Prescriber name and clinic.",
22
+ "How many doses operator has left (used for urgency assessment, NOT for dose advice).",
23
+ "Whether this is a controlled substance (CII-CV) — those have different refill rules.",
24
+ "Last fill date if known, and what the operator was told about the delay so far."
25
+ ],
26
+ "estimated_call_duration_minutes": 12
27
+ },
28
+ "principles": [
29
+ "Refills get stuck in 4 places, and you need to know which one before you can unstick: (a) prescriber hasn't authorized, (b) pharmacy hasn't received or processed, (c) insurance prior auth pending, (d) drug out of stock at that pharmacy. Diagnose first.",
30
+ "Call the pharmacy first — they can tell you EXACTLY where the script is in the queue, including whether the prescriber has responded.",
31
+ "Controlled substances (Adderall, opioids, benzos, etc.) have legal requirements that no amount of pressure changes — a kind, well-prepared call still has to wait for the prescriber to sign in-system.",
32
+ "If you're running out before the prescriber can refill, ask the pharmacy about an 'emergency supply' or 'bridge fill' — many states allow 3-7 days. This is a process question, not a clinical one.",
33
+ "Never accept the pharmacy saying 'the doctor changed your prescription' on this call. Verify with the prescriber directly — substitution errors and miscommunication are common."
34
+ ],
35
+ "phrases": {
36
+ "opener_pharmacy": "Hi, I'm calling on behalf of [Operator]. We have a refill for [medication, strength, dose form] from Dr. [prescriber] that hasn't come through. Can you check exactly where it is in your system — whether you've received it, whether it's awaiting prescriber approval, or whether there's an insurance hold?",
37
+ "opener_prescriber": "Hi, I'm calling for [Operator], patient of Dr. [Name]. They have a refill request pending for [medication, strength, dose form] that the pharmacy says is awaiting the prescriber's sign-off. Can you check the queue and confirm it's been sent?",
38
+ "diagnose_stage": "So just to be clear on where it's stuck: is this on the PRESCRIBER side, the PHARMACY side, or the INSURANCE side?",
39
+ "ask_about_bridge_fill": "If the prescriber can't sign off today, is there a bridge fill or 3-day emergency supply you can do? Operator is down to [X doses].",
40
+ "verify_substitution_claim": "You mentioned the prescription was changed by the doctor — to what specifically, and when? I'll need to verify with the prescriber before we accept that change.",
41
+ "pa_status_check": "If there's a prior authorization pending, what's the reference number, when was it submitted, and who needs to act next?",
42
+ "stock_check": "If you don't have it in stock, can you tell me which nearby pharmacy in the same chain does? Or should we transfer the script?",
43
+ "controlled_substance_check": "I understand this is a controlled substance and there are limits on what you can do over the phone. What does the prescriber need to do, and what's the soonest that can happen?",
44
+ "stall_research": "One moment — let me check what the operator has on hand.",
45
+ "verify_readback": "So: [medication] from Dr. [name], stuck at [stage], next action is [what], by [who], by [when]. Pickup expected [date]. Did I get that right?",
46
+ "graceful_close": "Thank you. Could you note in the system that we called and that the operator is low? That'll help if anyone else looks at this."
47
+ },
48
+ "tactics": [
49
+ {
50
+ "name": "Diagnose the stuck stage first",
51
+ "when": "First substantive turn — usually with the pharmacy.",
52
+ "script": "Use `opener_pharmacy` + `diagnose_stage`. Until you know WHERE the script is stuck, calling the prescriber is wasted effort. Pharmacies have full visibility on queue status; prescribers often don't.",
53
+ "priority": 1
54
+ },
55
+ {
56
+ "name": "Pause and re-verify any 'doctor changed it' claim",
57
+ "when": "Pharmacy says the prescription was changed by the doctor.",
58
+ "script": "Use `verify_substitution_claim`. Do NOT accept this on the pharmacy's word. Hang up, call the prescriber, confirm what was actually ordered and why. Substitution errors are common and can be harmful. This is a hard boundary — if you cannot reach the prescriber to verify, surface to `ask_operator` before any pickup.",
59
+ "priority": 2
60
+ },
61
+ {
62
+ "name": "Ask for a bridge fill if running out",
63
+ "when": "Operator is < 3 days of doses remaining and the refill won't resolve in time.",
64
+ "script": "Use `ask_about_bridge_fill`. Many states allow pharmacists to dispense a small emergency supply of non-controlled, ongoing medications. Worth asking — costs the pharmacy nothing.",
65
+ "priority": 3
66
+ },
67
+ {
68
+ "name": "Track the prior auth if that's the blocker",
69
+ "when": "Pharmacy says PA is pending.",
70
+ "script": "Use `pa_status_check`. Then call the prescriber's office and use the `referral-prior-authorization` skill to chase the PA. Pharmacy cannot move a PA forward — only the prescriber + insurance can.",
71
+ "priority": 4
72
+ },
73
+ {
74
+ "name": "Solve out-of-stock with a transfer, not a wait",
75
+ "when": "Pharmacy doesn't have the drug.",
76
+ "script": "Use `stock_check`. Operator can have the script transferred to a sister branch or another chain that has stock. Verify in-network status with the operator's insurance before transferring.",
77
+ "priority": 5
78
+ },
79
+ {
80
+ "name": "Set realistic expectations for controlled substances",
81
+ "when": "Medication is a controlled substance.",
82
+ "script": "Use `controlled_substance_check`. Legal/DEA rules constrain everyone. The right move is to set up the prescriber's sign-off proactively and stop pushing the pharmacy for things they cannot legally do.",
83
+ "priority": 6
84
+ },
85
+ {
86
+ "name": "Escalate to a pharmacist (not tech) for clinical questions",
87
+ "when": "Pharmacy tech can't answer something substantive.",
88
+ "script": "Politely ask to speak with the pharmacist on duty. Techs handle queue questions; pharmacists handle interactions, substitutions, and bridge-fill decisions.",
89
+ "priority": 7
90
+ }
91
+ ],
92
+ "boundaries": [
93
+ "NEVER share or guess the operator's SSN, DOB, or member ID — read back only what the operator explicitly provided.",
94
+ "NEVER accept a 'your doctor changed your prescription' claim from the pharmacy without verifying with the prescriber directly — route to `ask_operator` if verification cannot happen on this call.",
95
+ "NEVER authorise a substitution (brand→generic, one drug→another, dose change, frequency change) on the operator's behalf. Substitutions are clinical decisions.",
96
+ "NEVER discuss dose adjustments, interactions, or whether the operator should keep taking the medication — those are prescriber/pharmacist conversations, not agent conversations.",
97
+ "NEVER agree to controlled-substance early refills, partial fills, or any departure from what the e-script says without explicit operator approval AND prescriber confirmation.",
98
+ "NEVER pressure pharmacy staff to ignore an insurance hold or PA requirement — that's how prescriptions get flagged and rejected entirely."
99
+ ],
100
+ "success_signals": [
101
+ "Exact stuck stage identified (prescriber / pharmacy / insurance / stock).",
102
+ "Concrete next step assigned with an owner and timeline.",
103
+ "Bridge fill obtained if operator was running out.",
104
+ "If substitution was claimed: verified or rejected with the prescriber directly."
105
+ ],
106
+ "failure_signals": [
107
+ "Pharmacy and prescriber give contradictory accounts of where the script is.",
108
+ "Controlled substance refill cannot be authorized in operator's clinical window.",
109
+ "Prior auth denied and prescriber unwilling to appeal — surface to operator.",
110
+ "Operator is out of medication and no bridge fill available — escalate as clinical urgency to prescriber on-call."
111
+ ],
112
+ "exit_strategy": {
113
+ "on_success": "Confirm: medication, strength, dose form, prescriber, pharmacy, expected pickup time, any bridge fill, any PA reference number. Operator knows exactly when and where to pick up.",
114
+ "on_failure": "Politely close. Report blocker clearly — separate facts from claims (e.g. 'pharmacy says doctor changed it; this was NOT verified with prescriber'). Present options to operator.",
115
+ "follow_ups": [
116
+ "If PA pending, set a callback for 2-3 business days later.",
117
+ "If transferred to a different pharmacy, confirm pickup the same day.",
118
+ "If clinical urgency, escalate to prescriber's on-call line — do not wait for next business day."
119
+ ]
120
+ },
121
+ "required_user_info": [
122
+ "Operator's name, DOB (read-only)",
123
+ "Pharmacy name + branch location",
124
+ "Exact medication name, strength, dose form (operator's words)",
125
+ "Prescriber name + clinic",
126
+ "Doses remaining (for urgency, not dose advice)",
127
+ "Insurance plan + member ID (read-only) if a PA is involved",
128
+ "Whether the medication is a controlled substance"
129
+ ],
130
+ "contributed_by": "healthcare-navigator agent (v0.9.87 community drop)",
131
+ "updated_at": "2026-05-20T06:09:47Z"
132
+ }
@@ -0,0 +1,159 @@
1
+ {
2
+ "id": "push-past-invented-policy",
3
+ "name": "Distinguish Real Policy From Invented Outs (and Push Past)",
4
+ "version": "1.0.0",
5
+ "category": "other",
6
+ "tags": [
7
+ "meta-skill",
8
+ "adversarial-robustness",
9
+ "policy-verification",
10
+ "phone-call",
11
+ "escalation",
12
+ "critical-reasoning"
13
+ ],
14
+ "description": "When a rep cites 'policy' to refuse a request, determine whether the policy is (a) a real written rule, (b) a system limitation, (c) a department-level guideline, or (d) an improvised refusal phrased as policy. Each one is pushed past differently.",
15
+ "disclaimer": null,
16
+ "context": {
17
+ "when_to_use": "Any refusal that includes the words 'policy', 'system won't let me', 'we don't do that', 'against the rules', 'I'm not allowed', or 'my supervisor said no'.",
18
+ "preconditions": [
19
+ "Agent has the original ask clearly in mind and can rephrase it.",
20
+ "Agent has access to any prior written communication from the company that bears on the ask.",
21
+ "Agent has authority to escalate at least once before disengaging."
22
+ ],
23
+ "estimated_call_duration_minutes": 5
24
+ },
25
+ "principles": [
26
+ "There are four kinds of 'policy' refusals; treating them as the same is the single most common failure mode in customer-service negotiation.",
27
+ "Real policy has a name, a section, a document, and survives escalation. Invented outs do not survive even one careful follow-up.",
28
+ "Asking for the policy SOURCE is not adversarial — it's the most basic compliance question. Phrased as curiosity, it disarms.",
29
+ "Reps invent outs when they don't know the answer and don't want to admit it. Make admitting easier than inventing.",
30
+ "When you can't get past invented policy with the current rep, change the rep — don't keep arguing.",
31
+ "Never demand the policy in writing as a threat. Ask for it as 'help me understand'."
32
+ ],
33
+ "phrases": {
34
+ "ask_for_name": "Got it. Could you tell me what that policy is called or what section it's in? I'd love to look at the exact language.",
35
+ "ask_for_written": "Could you send me that policy in writing — a link, an email, or a screenshot? I want to make sure I'm interpreting it the same way you are.",
36
+ "ask_for_authority": "I appreciate that. Just to understand — is this a company-wide policy, a department policy, or your own judgement call here? All of those are valid; I just want to know which.",
37
+ "soft_supervisor": "I don't think this is something you and I can resolve at this level. Could you bring in a supervisor or whoever owns this policy? Not a complaint — I just want to talk to the right person.",
38
+ "reframe_around_outcome": "Let's set the policy aside for a moment. What's the OUTCOME the policy is trying to prevent? Maybe we can solve that a different way.",
39
+ "exception_request": "I understand the general rule. Is there an exception process — a manager override, a one-time courtesy, a hardship review?"
40
+ },
41
+ "tactics": [
42
+ {
43
+ "name": "Classify the refusal",
44
+ "when": "Within 10 seconds of the refusal.",
45
+ "script": "Tag mentally: (a) WRITTEN policy — rep can cite section, (b) SYSTEM limitation — rep says tool doesn't allow, (c) GUIDELINE — department or team norm, (d) INVENTED — rep is improvising. Each gets a different play.",
46
+ "priority": 1
47
+ },
48
+ {
49
+ "name": "Ask for the source by name",
50
+ "when": "Refusal phrased as 'policy'.",
51
+ "script": "Use `ask_for_name`. Tone curious, not challenging. Real policies have names. Invented ones don't.",
52
+ "priority": 2
53
+ },
54
+ {
55
+ "name": "Distinguish company / department / personal",
56
+ "when": "Rep can't immediately produce the policy name.",
57
+ "script": "Use `ask_for_authority`. Offers the rep three plausible answers — and only one of them ('personal judgement') is recoverable by escalation.",
58
+ "priority": 3
59
+ },
60
+ {
61
+ "name": "Reframe around outcome",
62
+ "when": "Policy is real but the user's underlying need is legitimate.",
63
+ "script": "Use `reframe_around_outcome`. Real policies usually exist to prevent a specific harm. If you can demonstrate the harm doesn't apply, an exception path often opens.",
64
+ "priority": 4
65
+ },
66
+ {
67
+ "name": "Ask about exception process",
68
+ "when": "Policy is real and rigid.",
69
+ "script": "Use `exception_request`. Even hard policies have escalation paths — manager overrides, hardship review, regulatory complaint, retention discretion."
70
+ },
71
+ {
72
+ "name": "Escalate one level",
73
+ "when": "Front-line cannot answer.",
74
+ "script": "Use `soft_supervisor`. Do this ONCE. Don't keep escalating with the same call — the supervisor is the policy authority; if they say the same thing with detail, the policy is probably real."
75
+ },
76
+ {
77
+ "name": "Reset by callback",
78
+ "when": "Invented out won't budge and rep refuses to escalate.",
79
+ "script": "Hang up politely. Call back. Different rep, different judgement. See `reset-by-callback`."
80
+ }
81
+ ],
82
+ "alternative_interpretations": [
83
+ {
84
+ "observation": "Rep says 'our policy doesn't allow refunds after 30 days'.",
85
+ "consider": [
86
+ "Written policy, accurately stated — most common.",
87
+ "Written policy with exception clauses the rep didn't mention.",
88
+ "Department guideline, but a manager has override authority.",
89
+ "Rep's improv; no such written limit exists.",
90
+ "Policy is correct as stated but doesn't apply to the user's situation (e.g., billing error vs. buyer's remorse)."
91
+ ],
92
+ "next_action": "Ask `ask_for_name` and `exception_request` in sequence."
93
+ },
94
+ {
95
+ "observation": "Rep says 'the system won't let me'.",
96
+ "consider": [
97
+ "Literally true at their permission level — a supervisor has the same screen with more buttons.",
98
+ "True at this department; another department's tool has the option.",
99
+ "False; rep doesn't want to use a manual override they're allowed to use.",
100
+ "Workaround exists (manual ticket, escalation form) that the rep hasn't offered."
101
+ ],
102
+ "next_action": "Ask: 'Who or what team has a tool that CAN do this?' Refusal to answer suggests case (c)."
103
+ },
104
+ {
105
+ "observation": "Rep says 'my supervisor already said no'.",
106
+ "consider": [
107
+ "Supervisor genuinely reviewed and refused.",
108
+ "Rep checked with a peer, not a supervisor.",
109
+ "Supervisor refused a misframed version of your ask.",
110
+ "No one was actually asked; this is a deflection."
111
+ ],
112
+ "next_action": "Politely ask to speak with the supervisor directly. Reframe the ask in your own words once you have them."
113
+ },
114
+ {
115
+ "observation": "Rep says 'that's just how it works'.",
116
+ "consider": [
117
+ "Genuine policy they can't cite by name.",
118
+ "Industry norm being passed off as company policy.",
119
+ "Rep is tired and improvising.",
120
+ "Rep doesn't know and is hoping you'll drop it."
121
+ ],
122
+ "next_action": "Ask `ask_for_authority`. Almost always reveals it as guideline or judgement, both of which are negotiable."
123
+ }
124
+ ],
125
+ "boundaries": [
126
+ "Do NOT call the rep a liar even when the policy is clearly invented. Curiosity > confrontation.",
127
+ "Do NOT keep arguing past the second 'no' from a supervisor — change reps instead.",
128
+ "Do NOT demand 'put it in writing' as a threat — request it as clarification.",
129
+ "Do NOT claim a policy you read somewhere unless you can cite it accurately."
130
+ ],
131
+ "success_signals": [
132
+ "Rep changes phrasing from 'policy' to 'guideline' or 'usually'.",
133
+ "Rep mentions an exception path or escalation route unprompted.",
134
+ "Supervisor adjusts the answer the front-line rep gave.",
135
+ "Rep produces the policy in writing and the language doesn't actually forbid the ask.",
136
+ "Rep volunteers a workaround that achieves the same outcome."
137
+ ],
138
+ "failure_signals": [
139
+ "Supervisor confirms the front-line rep's refusal with detail, citation, and consistency.",
140
+ "Multiple reps over multiple calls give the same refusal in the same language.",
141
+ "Policy is in writing and unambiguous.",
142
+ "Rep escalates to ending the call instead of escalating to a supervisor."
143
+ ],
144
+ "exit_strategy": {
145
+ "on_success": "Document the exception or workaround granted, with the rep's name, time, and a confirmation number. Get it in writing.",
146
+ "on_failure": "End politely. Note the exact wording of the refusal. Decide whether to (a) callback for a different rep, (b) submit a written complaint citing the policy text, or (c) accept the outcome.",
147
+ "follow_ups": [
148
+ "If invented-policy is suspected, attempt one callback. If the second rep gives a different answer, document both for written escalation.",
149
+ "For regulated industries (banking, insurance, healthcare, telecom), invented outs can be escalated to a regulator — note for the user."
150
+ ]
151
+ },
152
+ "required_user_info": [
153
+ "What the user actually wants and what they'd settle for.",
154
+ "Any prior written communication relevant to the policy.",
155
+ "How much time the user is willing to spend on escalation."
156
+ ],
157
+ "contributed_by": "critical-reasoning agent (v0.9.87 community drop)",
158
+ "updated_at": "2026-05-20T06:09:47Z"
159
+ }
@@ -0,0 +1,130 @@
1
+ {
2
+ "id": "rapport-opening-30-seconds",
3
+ "name": "Build Rapport in the Opening 30 Seconds — The Techniques That Actually Work",
4
+ "version": "1.0.0",
5
+ "category": "other",
6
+ "tags": [
7
+ "rapport",
8
+ "opening",
9
+ "first-impression",
10
+ "phone-call",
11
+ "warmth",
12
+ "efficiency",
13
+ "emotional-intelligence"
14
+ ],
15
+ "description": "Use the first 30 seconds of a call deliberately to make the rep want to help you. Most callers waste this window with throat-clearing, AI-script energy, or transactional flatness. This skill is the small set of moves that consistently move a rep from neutral into helpful.",
16
+ "disclaimer": null,
17
+ "context": {
18
+ "when_to_use": "Every cold call to a human rep. The opening 30-second window applies whether the call is 2 minutes or 2 hours — the rep decides what kind of caller you are very early, and that decision is sticky.",
19
+ "preconditions": [
20
+ "You have the rep's name (or you'll get it in their greeting — listen for it).",
21
+ "You can state your purpose in one sentence.",
22
+ "You're not multitasking — they can hear when you are.",
23
+ "You have your account info / context ready, so you don't make the rep wait while you fumble."
24
+ ],
25
+ "estimated_call_duration_minutes": 0
26
+ },
27
+ "principles": [
28
+ "The rep's day is a queue of strangers — be a recognisably good one in the first sentence and you skip ahead.",
29
+ "Use their name once, naturally, within the first 20 seconds. Once. Hearing your own name from a stranger is small magic; hearing it three times is salesperson.",
30
+ "State your purpose in ONE clear sentence. Reps brace for ramblers — brevity is rapport.",
31
+ "Acknowledge their job, not their company. Companies are abstract; reps are real.",
32
+ "Smile while you speak. The rep can hear it. This is not metaphor — soft-palate shape changes vocal resonance, and humans detect it pre-consciously.",
33
+ "Be slightly slower than the call-center default. Most callers rush; you stand out by sounding like you have time for them, even if you don't.",
34
+ "Do not ask 'how are you?' as small talk after their greeting. They've answered it 80 times today. Acknowledge them differently."
35
+ ],
36
+ "phrases": {
37
+ "warm_open_with_name": "Hi [name], thanks for picking up — I'm trying to [purpose in one sentence].",
38
+ "acknowledge_their_role_not_company": "I know you take a lot of these calls — I'll keep mine simple.",
39
+ "permission_to_proceed": "Quick one — do you have a minute for me to walk you through it?",
40
+ "compliment_their_help_pre_emptively": "I appreciate you in advance — I know you don't have to solve this for me, just help me find the path.",
41
+ "shared_humanity_low_risk": "How's your shift treating you so far?",
42
+ "purpose_one_sentence": "I'm calling about [account / topic] — I'm trying to [specific outcome]."
43
+ },
44
+ "tactics": [
45
+ {
46
+ "name": "Catch and use their name",
47
+ "when": "First 5 seconds — their greeting.",
48
+ "script": "Listen actively for the name in their greeting ('Thanks for calling [Company], this is Maria, how can I help?'). Use it once: 'Hi Maria, thanks for picking up.' If you missed it, ask: 'I'm sorry, what was your name again?' Don't fake it.",
49
+ "priority": 1
50
+ },
51
+ {
52
+ "name": "State purpose in one sentence",
53
+ "when": "After 'hi [name]' — within 10 seconds.",
54
+ "script": "Use `purpose_one_sentence`. ONE sentence. Reps relax visibly when they hear a caller who knows what they want.",
55
+ "priority": 2
56
+ },
57
+ {
58
+ "name": "Acknowledge the JOB, not the company",
59
+ "when": "If you have a small beat of social space — usually after they say 'sure, let me pull that up.'",
60
+ "script": "Use `acknowledge_their_role_not_company`. The rep is more than an extension of the company they work for, and reps remember callers who notice that.",
61
+ "priority": 3
62
+ },
63
+ {
64
+ "name": "Smile while you speak",
65
+ "when": "Throughout the opening — and the whole call.",
66
+ "script": "Literally smile. Your voice changes shape. Reps cannot articulate it but they respond to it. Practice this on a recorded call once — you'll hear the difference.",
67
+ "priority": 4
68
+ },
69
+ {
70
+ "name": "Slightly slow tempo",
71
+ "when": "Opening sentence.",
72
+ "script": "Slow your first sentence by ~15% from normal. It reads as composed and unhurried. Reps hear hundreds of rushers — you sound different.",
73
+ "priority": 5
74
+ },
75
+ {
76
+ "name": "Tone-shift detector — REP WARMS",
77
+ "when": "Their voice opens up: more vowel, longer sentences, a small joke.",
78
+ "script": "You've landed it. Do NOT keep performing rapport — move to the task efficiently. They've already decided to help; don't make them regret it by being chatty.",
79
+ "priority": 6
80
+ },
81
+ {
82
+ "name": "Tone-shift detector — REP STAYS FLAT",
83
+ "when": "30 seconds in and they're still on script voice.",
84
+ "script": "Don't double down. Some reps are flat to everyone — meet their register, get the task done crisply, and try a warm goodbye at the end. Forced rapport reads as bad.",
85
+ "priority": 7
86
+ },
87
+ {
88
+ "name": "Permission to proceed",
89
+ "when": "If your task is longer than a single quick question.",
90
+ "script": "Use `permission_to_proceed`. Asking permission gives the rep agency for 5 seconds — tiny move, real effect.",
91
+ "priority": 8
92
+ }
93
+ ],
94
+ "boundaries": [
95
+ "Do NOT use the rep's name more than 2-3 times in the whole call. Repetition is salesman energy.",
96
+ "Do NOT fake interest in their day. The reflexive 'how are you?' is exactly what every other caller does.",
97
+ "Do NOT compliment the rep on their voice, accent, or anything personal — even positive comments can feel intrusive.",
98
+ "Do NOT start with an apology ('sorry to bother you'). It frames the call as a burden before you've stated it.",
99
+ "Do NOT 'small talk' for longer than two exchanges before stating purpose — reps interpret stalling as a sign of an unclear or unreasonable ask.",
100
+ "Do NOT use cold scripted rapport phrases verbatim across calls. Reps recognise scripts instantly because they read them too."
101
+ ],
102
+ "success_signals": [
103
+ "Rep uses your name unprompted within the first minute.",
104
+ "Rep volunteers context, alternative options, or a workaround early.",
105
+ "Rep's voice in the first 30 seconds is audibly more open by the second minute.",
106
+ "Call resolves faster than expected — pre-decided helpfulness compresses calls."
107
+ ],
108
+ "failure_signals": [
109
+ "Rep stays in script voice through the whole call.",
110
+ "You hear yourself stalling because you didn't pre-write the purpose sentence.",
111
+ "Rep asks 'is there anything else?' before you've gotten what you came for — they're trying to wrap because rapport didn't land.",
112
+ "You realise you never caught the rep's name and the call is 5 minutes in."
113
+ ],
114
+ "exit_strategy": {
115
+ "on_success": "Close warmly using the rep's name once more: '[name], genuinely — thanks for the help today.' This anchors the rapport for a possible callback to the same rep or the same line.",
116
+ "on_failure": "Be respectfully crisp at goodbye — do not force warmth that didn't land. A clean 'thanks for your help' beats a forced 'have a great day!'",
117
+ "follow_ups": [
118
+ "Log what worked in the opening — patterns emerge over many calls.",
119
+ "If the rep was excellent, note their name/ID — ask for them by name next time. Repeat-rapport with a known rep is the highest leverage outcome of this skill.",
120
+ "Practice the smile-while-speaking move on a recorded call once. The first time you hear it back, the lesson sticks permanently."
121
+ ]
122
+ },
123
+ "required_user_info": [
124
+ "The purpose of the call in one sentence — pre-written, not improvised.",
125
+ "Account info ready in front of you so you don't fumble.",
126
+ "Any context that's helpful to share early ('I'm a long-time customer,' 'I'm calling for my mother') — context shared in the opening 30 seconds gets used; context shared later gets ignored."
127
+ ],
128
+ "contributed_by": "emotional-intel agent (v0.9.87 community drop)",
129
+ "updated_at": "2026-05-20T06:09:47Z"
130
+ }
@@ -0,0 +1,137 @@
1
+ {
2
+ "id": "reach-executive-office",
3
+ "name": "Reach the Office of the CEO / Executive Escalations",
4
+ "version": "1.0.1",
5
+ "category": "customer-service",
6
+ "tags": [
7
+ "escalation",
8
+ "executive",
9
+ "CEO",
10
+ "office-of-the-president",
11
+ "corporate",
12
+ "phone-call",
13
+ "letter",
14
+ "customer-support"
15
+ ],
16
+ "description": "Get your case in front of the company's executive escalations team — the people whose job is to make consumer headaches disappear before they become reputational or regulatory ones. Used at the right altitude, this is the most reliable single move in the escalator's kit.",
17
+ "disclaimer": null,
18
+ "context": {
19
+ "when_to_use": "Standard support, supervisor, and at least one other channel (email/social) have failed to resolve a substantive issue. Issue justifies the asymmetry — typically multi-hundred-dollar disputes, multi-week service problems, fraud allegations, or accessibility failures. NOT for $20 complaints or first-pass issues.",
20
+ "preconditions": [
21
+ "User has 7+ days of documented attempts via standard support.",
22
+ "User has the executive's name (CEO, COO, CFO, or Chief Customer Officer — found in company press releases, SEC filings, or LinkedIn).",
23
+ "User can produce a clean, factual one-page summary of the issue.",
24
+ "Issue has materiality — money, time, harm — that justifies the executive's team spending hours on it."
25
+ ],
26
+ "estimated_call_duration_minutes": 30
27
+ },
28
+ "principles": [
29
+ "The CEO does not personally read your email. But the CEO's office has a small team — sometimes called 'Executive Customer Relations', 'Office of the President', 'Executive Escalations' — whose job is to read exactly these emails and dispatch them to senior escalation specialists. That team is who you're actually trying to reach.",
30
+ "Address the executive by name, even though the team will read it. The personalization signals you did your research, which sorts your email out of the generic-complaint pile.",
31
+ "Format matters enormously at this altitude. One page max. Timeline as bullet points. Specific case numbers. Specific names + IDs of reps. ONE SENTENCE stating what resolution you want. Executives' assistants triage by skimmability.",
32
+ "Tone is critical. The executive team will reject anything that reads as a rant or a threat — those go to legal, where they are slow-walked. The team will engage with anything that reads as reasonable, documented, and proportionate. Aim for: 'a thoughtful customer who has tried hard and deserves a closer look.'",
33
+ "Decision point — am I asking for an executive override, or am I asking for a senior escalation team to look at the case? You almost always want the second. Overrides are rare and read as entitled; case reviews are common and read as reasonable.",
34
+ "Most companies' executive emails follow predictable patterns: firstname.lastname@company.com, firstinitiallastname@, firstname@. If you can't find it, the corporate switchboard's main number often connects you to a receptionist who will route you to the Office of the President.",
35
+ "The executive escalation team has authority a tier-1 supervisor doesn't dream of: refunds, account credits, expedited replacements, escalation to engineering, even legal settlement authority for small dollar amounts. They use that authority to make problems go away — which means it's available if you frame the case well."
36
+ ],
37
+ "phrases": {
38
+ "email_subject": "Customer escalation — [Account #] — [issue in 5 words] — unresolved after [N] contacts",
39
+ "email_opening": "Dear [Mr./Ms. Last Name],\n\nI'm writing as a [N]-year customer who has been unable to resolve [issue] through your standard support channels. I'm hopeful your team can take a closer look.\n\nBelow is a one-page summary. I'd appreciate any review your office is able to give it.",
40
+ "email_timeline_format": "Timeline:\n • [date] — Phone call to support, rep [name + ID], case [#]. Outcome: [one line].\n • [date] — Email to support address. Auto-reply only.\n • [date] — DM to @[CompanyHelp]. No response.\n • [date] — Second phone call, supervisor [name + ID], case [#]. Outcome: [one line].",
41
+ "email_ask": "What I'm requesting:\n [ONE sentence. Specific. Modest. Example: 'A review of my account to refund the duplicate $189 charge from [date] and update my service.']",
42
+ "email_closing": "Thank you for your team's time. I'd welcome any follow-up at [phone] or [email].\n\nSincerely,\n[Full name]\n[Account number]",
43
+ "switchboard_request": "Hi — I'm trying to reach the Office of the President / Executive Customer Relations team. I have an escalation that I've been unable to resolve through standard support. Could you direct me to the right contact?",
44
+ "switchboard_followup": "Thank you. Could I have a direct extension or email for that office? I'd like to send a one-page summary in addition to leaving a message.",
45
+ "phone_intro_to_exec_team": "Hi — this is [name], calling about an unresolved escalation on account [number]. I emailed [executive name]'s office on [date] about [issue]. I wanted to confirm you received it and ask when I should expect a response.",
46
+ "polite_closing_pressure": "I want to be clear that I prefer to resolve this directly with your team. I have an open complaint draft for [regulator/BBB], but I'd much rather close it as resolved than file it. What's the best path forward?"
47
+ },
48
+ "tactics": [
49
+ {
50
+ "name": "Build the one-page summary first",
51
+ "when": "Before any executive contact.",
52
+ "script": "Draft the one-pager: account, issue (one paragraph), timeline (bullet list), ask (one sentence), closing. Write it, walk away for 30 minutes, re-read. Cut anything emotional. Cut anything irrelevant. The one-pager is your weapon — invest the time.",
53
+ "priority": 1
54
+ },
55
+ {
56
+ "name": "Find the executive name + email",
57
+ "when": "Before sending.",
58
+ "script": "LinkedIn search for the CEO, COO, or Chief Customer Officer of the company. Company press releases. SEC filings for public companies. Then guess the email pattern (firstname.lastname@, firstinitiallastname@) — many sites confirm patterns. Or call switchboard and ask: see `switchboard_request`.",
59
+ "priority": 2,
60
+ "decision_point": "If you cannot reliably find the executive's name + plausible email — DO NOT send to a guessed address that bounces. Use the published 'Executive Relations' or 'Office of the President' email instead, addressed to 'Executive Team'. A bounced email burns the first-strike advantage."
61
+ },
62
+ {
63
+ "name": "Send the email — with the right CCs",
64
+ "when": "Ready to fire.",
65
+ "script": "Send to the executive. CC: the company's main support email (creates an internal cross-link), and your own personal address (creates a sent-record). Do NOT CC multiple executives — looks scattershot.",
66
+ "priority": 3
67
+ },
68
+ {
69
+ "name": "Call switchboard 24-48h after email",
70
+ "when": "Email sent but no response yet.",
71
+ "script": "Use `switchboard_request`. The phone call signals you're serious enough to follow up — and the receptionist sometimes flags the email to the team. Don't be aggressive; be polite and informed.",
72
+ "priority": 4,
73
+ "decision_point": "If the receptionist says 'we don't transfer to that office' or 'you have to email them' — accept it gracefully and confirm you've already emailed. Don't fight the receptionist. They're not the gatekeeper you think they are."
74
+ },
75
+ {
76
+ "name": "Handle the executive team's callback",
77
+ "when": "They reach out.",
78
+ "script": "Use `phone_intro_to_exec_team` if you initiated; otherwise let them lead. Be calm, factual, brief. Restate the issue and the ask in two sentences. Let them ask questions. Treat them as allies — they almost certainly have authority to fix this, and they want a clean close.",
79
+ "priority": 5
80
+ },
81
+ {
82
+ "name": "Apply soft pressure if needed",
83
+ "when": "Executive team responds but lowballs or stalls.",
84
+ "script": "Use `polite_closing_pressure`. The mention of a 'draft complaint' is not a threat if it's true — you actually have a draft. The phrase 'I prefer to resolve this directly' reads as reasonable, not combative.",
85
+ "priority": 6,
86
+ "decision_point": "If the executive team is engaging in good faith — soft pressure stays soft. Don't escalate the tone unless they stall for >5 business days post-contact. Aggressive followup at this altitude burns the goodwill that got you the engagement."
87
+ },
88
+ {
89
+ "name": "Close cleanly when resolved",
90
+ "when": "Resolution offered.",
91
+ "script": "Confirm in writing: 'My understanding is that [resolution] will be processed by [date]. Could you confirm in reply? Thanks again for your team's help on this.' Get a case number from THIS contact (executive cases have their own numbering in most systems).",
92
+ "priority": 7
93
+ }
94
+ ],
95
+ "boundaries": [
96
+ "Do NOT send the email to multiple executives in parallel — it looks scattershot and burns the personalization advantage.",
97
+ "Do NOT use the executive's personal/non-corporate email even if you find one. Corporate domain only.",
98
+ "Do NOT threaten or use language a lawyer would use (cease and desist, damages, etc.) — these get routed to legal, which slows everything down.",
99
+ "Do NOT exceed one page. Two-page complaints get tldr'd to summary by an assistant who may miss your key facts.",
100
+ "Do NOT name reps as 'incompetent' or 'rude' — describe what happened factually ('rep [name] said [exact quote]'). Let the executive team draw their own conclusions.",
101
+ "Do NOT escalate to the executive office for trivial issues. The team has long memory; you want them to take your next escalation seriously too.",
102
+ "Do NOT post the executive's email publicly on social media. It will get them spammed, the company will block your address, and you destroy the channel for everyone else."
103
+ ],
104
+ "success_signals": [
105
+ "Reply from an Executive Customer Relations / Office of the President team within 5 business days.",
106
+ "Reply names a single point-of-contact assigned to your case.",
107
+ "Phone call from someone with title like 'Senior Customer Advocate' or 'Executive Resolution Specialist'.",
108
+ "Resolution offered is at or near your stated ask (executives' teams usually meet you closer to your ask than tier-1 ever would).",
109
+ "Specific new case number generated, separate from prior support case numbers."
110
+ ],
111
+ "failure_signals": [
112
+ "Auto-reply 'we've received your email' followed by silence for >7 business days.",
113
+ "Email routed back to standard support queue (you'll see a tier-1 reply, not an executive team reply).",
114
+ "Phone callback from someone who reads from the standard support script — you got escalated to a 'fancy tier-1', not a real executive team.",
115
+ "Reply that's a blanket 'we stand by our original decision' with no analysis.",
116
+ "Engagement that goes silent after one good initial reply — sometimes a sign the team triaged your case as low-priority."
117
+ ],
118
+ "exit_strategy": {
119
+ "on_success": "Confirm resolution in writing, get the case number and the contact's direct line for any follow-up. Send a brief thank-you note within 48h of resolution executing — this preserves the relationship for any future issues.",
120
+ "on_failure": "If executive office stalls or refuses, you've nearly exhausted internal channels. Pivot to `invoke-regulator-firmly` (regulator complaint), small-claims court for clear dollar disputes, or attorney consultation for larger ones.",
121
+ "follow_ups": [
122
+ "Calendar a verification check for the date the executive team promised the resolution would take effect.",
123
+ "If the resolution involves multiple steps (refund + service change + apology letter), track each one separately.",
124
+ "Keep the executive contact's name + email in a personal log — companies sometimes change executive teams, but a good contact often refers you to their replacement.",
125
+ "If you filed a draft regulator complaint as part of the pressure — close it out or update it to reflect resolution. Honest updates preserve your credibility."
126
+ ]
127
+ },
128
+ "required_user_info": [
129
+ "Complete documented timeline",
130
+ "Account number + customer-tenure approximate years",
131
+ "Executive's full name + likely email pattern (or willingness to research)",
132
+ "Specific, modest, single-sentence ask",
133
+ "Materiality of the issue stated in concrete terms (dollar amount, days of service lost, etc.)"
134
+ ],
135
+ "contributed_by": "support-escalator agent (v0.9.87 community drop)",
136
+ "updated_at": "2026-05-20T06:09:47Z"
137
+ }