@agenticmail/core 0.9.31 → 0.9.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/dist/index.cjs +1 -1
  2. package/dist/index.d.cts +3 -3
  3. package/dist/index.d.ts +3 -3
  4. package/dist/index.js +1 -1
  5. package/dist/skills/built-in/accommodation-intake.json +132 -0
  6. package/dist/skills/built-in/add-driver-vehicle-household.json +133 -0
  7. package/dist/skills/built-in/admissions-waitlist-followup.json +129 -0
  8. package/dist/skills/built-in/anchor-and-counter-anchor.json +161 -0
  9. package/dist/skills/built-in/anti-social-engineering.json +153 -0
  10. package/dist/skills/built-in/anything-else-sweep.json +120 -0
  11. package/dist/skills/built-in/apologise-correctly.json +126 -0
  12. package/dist/skills/built-in/ask-for-in-person-meeting.json +114 -0
  13. package/dist/skills/built-in/attorney-new-client-intake.json +133 -0
  14. package/dist/skills/built-in/bant-discovery-call.json +125 -0
  15. package/dist/skills/built-in/book-new-patient-appointment.json +131 -0
  16. package/dist/skills/built-in/bookmark-close.json +113 -0
  17. package/dist/skills/built-in/bypass-i-am-the-supervisor.json +130 -0
  18. package/dist/skills/built-in/bypass-scripted-rep.json +142 -0
  19. package/dist/skills/built-in/calibrated-questions.json +155 -0
  20. package/dist/skills/built-in/call-911-fire.json +118 -0
  21. package/dist/skills/built-in/call-911-medical-emergency.json +126 -0
  22. package/dist/skills/built-in/call-911-violent-crime-in-progress.json +133 -0
  23. package/dist/skills/built-in/call-988-crisis-line.json +106 -0
  24. package/dist/skills/built-in/call-poison-control.json +115 -0
  25. package/dist/skills/built-in/call-police-non-emergency.json +114 -0
  26. package/dist/skills/built-in/call-with-person-in-distress.json +133 -0
  27. package/dist/skills/built-in/cancel-cable-fiber-no-retention-loop.json +156 -0
  28. package/dist/skills/built-in/cancel-policy-clean.json +130 -0
  29. package/dist/skills/built-in/capture-rep-identity.json +113 -0
  30. package/dist/skills/built-in/childcare-provider-intake.json +157 -0
  31. package/dist/skills/built-in/close-account-no-residual-fees.json +127 -0
  32. package/dist/skills/built-in/close-on-concrete-next-step.json +116 -0
  33. package/dist/skills/built-in/confirm-agreement-readback.json +134 -0
  34. package/dist/skills/built-in/confirm-next-step-ownership.json +113 -0
  35. package/dist/skills/built-in/contractor-estimate-request.json +142 -0
  36. package/dist/skills/built-in/court-clerk-administrative-inquiry.json +119 -0
  37. package/dist/skills/built-in/cpa-intake-call.json +134 -0
  38. package/dist/skills/built-in/day-of-flight-cancellation.json +127 -0
  39. package/dist/skills/built-in/de-escalate-angry-rep.json +114 -0
  40. package/dist/skills/built-in/decline-unsolicited-pitch.json +110 -0
  41. package/dist/skills/built-in/deliver-difficult-news.json +122 -0
  42. package/dist/skills/built-in/detect-fake-escalation-loops.json +140 -0
  43. package/dist/skills/built-in/detect-lies-and-contradictions.json +139 -0
  44. package/dist/skills/built-in/dispute-billing-code-eob.json +147 -0
  45. package/dist/skills/built-in/dispute-charge-reg-e-reg-z.json +131 -0
  46. package/dist/skills/built-in/dispute-credit-report-via-bank.json +128 -0
  47. package/dist/skills/built-in/dispute-denied-claim.json +143 -0
  48. package/dist/skills/built-in/dispute-security-deposit.json +130 -0
  49. package/dist/skills/built-in/dispute-usage-spike-meter-reread.json +120 -0
  50. package/dist/skills/built-in/dmv-vehicle-registration-renewal.json +120 -0
  51. package/dist/skills/built-in/document-call-promises.json +145 -0
  52. package/dist/skills/built-in/early-lease-termination.json +126 -0
  53. package/dist/skills/built-in/elite-line-escalation.json +107 -0
  54. package/dist/skills/built-in/equipment-swap-cable-router-modem.json +126 -0
  55. package/dist/skills/built-in/eu261-uk261-dot-compensation.json +113 -0
  56. package/dist/skills/built-in/file-fnol-auto-claim.json +130 -0
  57. package/dist/skills/built-in/file-habitability-complaint.json +115 -0
  58. package/dist/skills/built-in/financial-aid-appeal.json +128 -0
  59. package/dist/skills/built-in/follow-up-stalled-claim.json +118 -0
  60. package/dist/skills/built-in/get-past-gatekeeper.json +115 -0
  61. package/dist/skills/built-in/get-past-tier-1-script.json +130 -0
  62. package/dist/skills/built-in/handle-callback-stall.json +120 -0
  63. package/dist/skills/built-in/handle-outsourced-no-escalation.json +138 -0
  64. package/dist/skills/built-in/handle-send-me-an-email-deflection.json +112 -0
  65. package/dist/skills/built-in/handle-time-pressure.json +159 -0
  66. package/dist/skills/built-in/health-prior-auth-appeal.json +131 -0
  67. package/dist/skills/built-in/hoa-dispute.json +123 -0
  68. package/dist/skills/built-in/hold-time-strategy.json +137 -0
  69. package/dist/skills/built-in/hold-warmth-cold-rep.json +114 -0
  70. package/dist/skills/built-in/hotel-walk-over-recovery.json +114 -0
  71. package/dist/skills/built-in/humour-when-it-lands.json +127 -0
  72. package/dist/skills/built-in/i20-visa-dso.json +134 -0
  73. package/dist/skills/built-in/invoke-regulator-firmly.json +137 -0
  74. package/dist/skills/built-in/irrops-waiver-awareness.json +103 -0
  75. package/dist/skills/built-in/irs-payment-plan-setup.json +134 -0
  76. package/dist/skills/built-in/k12-iep-504-enrollment.json +134 -0
  77. package/dist/skills/built-in/late-add-petition.json +128 -0
  78. package/dist/skills/built-in/leave-of-absence-deferral.json +130 -0
  79. package/dist/skills/built-in/lock-in-terms-verbally.json +127 -0
  80. package/dist/skills/built-in/match-energy-keep-goal.json +120 -0
  81. package/dist/skills/built-in/medical-records-transfer.json +138 -0
  82. package/dist/skills/built-in/medical-withdrawal.json +131 -0
  83. package/dist/skills/built-in/mid-call-evidence-collection.json +159 -0
  84. package/dist/skills/built-in/mirror-technique.json +145 -0
  85. package/dist/skills/built-in/missed-connection-distressed-passenger.json +111 -0
  86. package/dist/skills/built-in/mortgage-loan-hardship.json +130 -0
  87. package/dist/skills/built-in/move-out-walkthrough.json +114 -0
  88. package/dist/skills/built-in/multi-channel-escalation.json +141 -0
  89. package/dist/skills/built-in/multi-issue-tradeoffs.json +155 -0
  90. package/dist/skills/built-in/negotiate-rent-renewal.json +123 -0
  91. package/dist/skills/built-in/no-as-opening.json +154 -0
  92. package/dist/skills/built-in/not-sound-like-spam-dialer.json +118 -0
  93. package/dist/skills/built-in/outage-credit-applied.json +127 -0
  94. package/dist/skills/built-in/passport-expedite-or-appointment.json +123 -0
  95. package/dist/skills/built-in/pediatric-school-forms.json +141 -0
  96. package/dist/skills/built-in/personal-trainer-discovery.json +138 -0
  97. package/dist/skills/built-in/pharmacy-callback.json +134 -0
  98. package/dist/skills/built-in/pivot-mid-call.json +141 -0
  99. package/dist/skills/built-in/port-mobile-number-survive-retention.json +127 -0
  100. package/dist/skills/built-in/prescription-refill-followup.json +132 -0
  101. package/dist/skills/built-in/push-past-invented-policy.json +159 -0
  102. package/dist/skills/built-in/rapport-opening-30-seconds.json +130 -0
  103. package/dist/skills/built-in/reach-executive-office.json +137 -0
  104. package/dist/skills/built-in/read-vocal-cues.json +139 -0
  105. package/dist/skills/built-in/read-vocal-tone.json +159 -0
  106. package/dist/skills/built-in/realestate-agent-vetting.json +144 -0
  107. package/dist/skills/built-in/receive-difficult-news.json +115 -0
  108. package/dist/skills/built-in/recording-claim-conversation-legally.json +121 -0
  109. package/dist/skills/built-in/recover-summary-refusal.json +121 -0
  110. package/dist/skills/built-in/reengage-ghosted-lead.json +115 -0
  111. package/dist/skills/built-in/referral-followup-without-burning.json +116 -0
  112. package/dist/skills/built-in/referral-prior-authorization.json +130 -0
  113. package/dist/skills/built-in/refuse-the-split.json +142 -0
  114. package/dist/skills/built-in/refuse-upsell-at-close.json +114 -0
  115. package/dist/skills/built-in/rental-car-counter-defense.json +116 -0
  116. package/dist/skills/built-in/rental-scam-report.json +125 -0
  117. package/dist/skills/built-in/replace-lost-stolen-card-expedited.json +139 -0
  118. package/dist/skills/built-in/report-downed-line-gas-smell-911-triage.json +130 -0
  119. package/dist/skills/built-in/report-elder-or-child-abuse.json +117 -0
  120. package/dist/skills/built-in/report-fbi-tip.json +109 -0
  121. package/dist/skills/built-in/report-fraud-ic3-or-ftc.json +117 -0
  122. package/dist/skills/built-in/report-fraudulent-transaction.json +126 -0
  123. package/dist/skills/built-in/report-power-outage-get-etr.json +116 -0
  124. package/dist/skills/built-in/report-urgent-maintenance.json +123 -0
  125. package/dist/skills/built-in/request-credit-limit-increase.json +126 -0
  126. package/dist/skills/built-in/request-supervisor-gracefully.json +129 -0
  127. package/dist/skills/built-in/request-welfare-check.json +127 -0
  128. package/dist/skills/built-in/request-written-confirmation.json +113 -0
  129. package/dist/skills/built-in/reschedule-appointment.json +121 -0
  130. package/dist/skills/built-in/reset-by-callback.json +143 -0
  131. package/dist/skills/built-in/resist-urgency-manipulation.json +152 -0
  132. package/dist/skills/built-in/revisit-totaling-decision.json +125 -0
  133. package/dist/skills/built-in/roadside-assistance-dispatch.json +132 -0
  134. package/dist/skills/built-in/roommate-replacement.json +121 -0
  135. package/dist/skills/built-in/same-day-urgent-appointment.json +130 -0
  136. package/dist/skills/built-in/schedule-rental-viewing.json +111 -0
  137. package/dist/skills/built-in/service-move-shutoff-start-no-overlap.json +129 -0
  138. package/dist/skills/built-in/social-security-replacement-card.json +122 -0
  139. package/dist/skills/built-in/specialist-doctor-booking.json +136 -0
  140. package/dist/skills/built-in/spot-bait-and-switch.json +155 -0
  141. package/dist/skills/built-in/stop-recurring-ach.json +127 -0
  142. package/dist/skills/built-in/switch-postpaid-to-prepaid-mid-cycle.json +130 -0
  143. package/dist/skills/built-in/tactical-empathy-labeling.json +147 -0
  144. package/dist/skills/built-in/therapist-intake-call.json +133 -0
  145. package/dist/skills/built-in/train-cancellation-refund-rebook.json +104 -0
  146. package/dist/skills/built-in/transcript-request.json +128 -0
  147. package/dist/skills/built-in/travel-insurance-claim-on-the-road.json +114 -0
  148. package/dist/skills/built-in/travel-notice-unlock-card.json +119 -0
  149. package/dist/skills/built-in/unemployment-claim-status-and-appeal.json +123 -0
  150. package/dist/skills/built-in/uscis-case-status-and-biometrics.json +125 -0
  151. package/dist/skills/built-in/utility-deposit-waiver.json +122 -0
  152. package/dist/skills/built-in/utility-payment-plan-avoid-disconnect.json +122 -0
  153. package/dist/skills/built-in/verify-insurance-coverage-pre-procedure.json +140 -0
  154. package/dist/skills/built-in/verify-out-of-network-coverage.json +129 -0
  155. package/dist/skills/built-in/veteran-benefits-community-college.json +134 -0
  156. package/dist/skills/built-in/veterinary-new-patient-intake.json +135 -0
  157. package/dist/skills/built-in/visa-boarding-denial-recovery.json +115 -0
  158. package/dist/skills/built-in/vital-records-certificate-copy.json +120 -0
  159. package/dist/skills/built-in/voicemail-that-gets-called-back.json +114 -0
  160. package/dist/skills/built-in/voter-registration-and-ballot.json +124 -0
  161. package/dist/skills/built-in/walkaway-threats.json +159 -0
  162. package/dist/skills/built-in/wedding-vendor-intake.json +149 -0
  163. package/dist/skills/built-in/when-to-stop-being-polite.json +161 -0
  164. package/dist/skills/built-in/wire-funds-safely.json +129 -0
  165. package/package.json +1 -1
@@ -0,0 +1,147 @@
1
+ {
2
+ "id": "tactical-empathy-labeling",
3
+ "name": "Tactical Empathy and Labeling (Voss Method)",
4
+ "version": "1.0.1",
5
+ "category": "negotiation",
6
+ "tags": ["voss", "tactical-empathy", "labeling", "de-escalation", "phone-call", "real-time"],
7
+ "description": "Use labels — short verbal observations of the counterparty's emotion or position — to defuse hostility, surface hidden objections, and earn the right to ask for movement. Labels are the workhorse move of Chris Voss-style hostage-negotiation transferred to commercial calls.",
8
+ "disclaimer": "Labels work because they signal you UNDERSTAND, not that you AGREE. Never label and then immediately ask for a concession in the same breath — it reads as manipulation. Pause first.",
9
+ "context": {
10
+ "when_to_use": "Any voice negotiation where the counterparty is emotional, defensive, scripted, or stalling. Especially powerful in the first 2 minutes (sets tone) and after a hard 'no' (defuses).",
11
+ "preconditions": [
12
+ "You can hear the rep's tone (this is a voice-channel skill; email labels work but at half strength).",
13
+ "You have the emotional bandwidth to sit through 3-5 seconds of silence after each label.",
14
+ "You are NOT in a hurry — labels paced too fast feel rehearsed and corrode trust."
15
+ ],
16
+ "estimated_call_duration_minutes": 20
17
+ },
18
+ "principles": [
19
+ "Labels begin with 'It seems like…', 'It sounds like…', or 'It looks like…' — NEVER 'I feel…' or 'I think…'. The 'I' versions make it about you; the 'It' versions make it about them.",
20
+ "Negative emotions evaporate when named aloud by a third party. Positive emotions amplify when named — so label the negatives, be sparing with the positives.",
21
+ "After every label: silence for 3-5 seconds. Do not rescue the silence. The counterparty will either confirm, correct, or elaborate — all three are wins.",
22
+ "Labels are not guesses you need to be right about. A wrong label still earns engagement: 'No, it's not that — it's actually…' just told you what it REALLY is.",
23
+ "The goal of a label is not agreement. It is the response 'that's right' (real understanding) — distinct from 'you're right' (a brush-off).",
24
+ "Stack labels when the counterparty is heated. Two or three back-to-back labels with pauses can fully drain an angry call before you ever make an ask."
25
+ ],
26
+ "phrases": {
27
+ "label_frustration": "It sounds like you've had this conversation a few times today.",
28
+ "label_constraint": "It seems like your hands are pretty tied on the system side.",
29
+ "label_pride": "It sounds like you take this seriously — you want to get it right the first time.",
30
+ "label_skepticism": "It looks like there's something about my request that's not adding up for you.",
31
+ "label_pressure": "It sounds like there's a clock on your end I'm not seeing.",
32
+ "label_third_party": "It seems like the policy is coming from above you, not from you.",
33
+ "accusation_audit": "Before we go further, you're probably thinking I'm just another customer trying to talk you down, this is going to take forever, and I'm not going to be reasonable. Is that fair?",
34
+ "follow_up_calibrated": "Help me understand what I'm missing here."
35
+ },
36
+ "tactics": [
37
+ {
38
+ "name": "Open with an accusation audit",
39
+ "when": "First 60 seconds of any call where you anticipate the rep being defensive (retention, billing dispute, supervisor escalation).",
40
+ "script": "Use the `accusation_audit`. Naming every negative thing they might think about you BEFORE they think it defangs each one. Pause. Wait for the surprised laugh or 'no, no, it's fine'.",
41
+ "priority": 1
42
+ },
43
+ {
44
+ "name": "Label the emotion, then shut up",
45
+ "when": "Rep raises voice, sighs, or expresses frustration.",
46
+ "script": "Pick the closest label from `phrases`. Deliver it in a downward-inflected calm voice. Then count to five in your head before saying anything else.",
47
+ "priority": 2
48
+ },
49
+ {
50
+ "name": "Label the constraint, not the person",
51
+ "when": "Rep says 'I can't do that' or 'the system won't let me'.",
52
+ "script": "Use `label_constraint` or `label_third_party`. This separates the rep from the policy and turns them into a co-conspirator looking for a workaround, not the wall blocking you.",
53
+ "priority": 3
54
+ },
55
+ {
56
+ "name": "Mislabel deliberately to extract truth",
57
+ "when": "You suspect the rep is hiding the real reason for a no.",
58
+ "script": "Offer a label you suspect is slightly OFF. They will correct you — and the correction is the real reason. Example: 'It sounds like this is a pricing-team decision' (when you actually suspect retention authority); they say 'no, retention CAN do it, they just won't on month-to-month accounts' → you now know the unlock.",
59
+ "priority": 4
60
+ },
61
+ {
62
+ "name": "Pursue 'that's right'",
63
+ "when": "After 2-3 labels have landed.",
64
+ "script": "Summarize the rep's position back to them in your own words. Aim for them to say 'that's right'. That phrase is the inflection point — once they hear you UNDERSTAND, they start helping you solve the problem.",
65
+ "priority": 5
66
+ }
67
+ ],
68
+ "decision_tree": {
69
+ "description": "Run this WHILE the rep is talking. Match the last 1-2 sentences to a branch and execute. Do not wait for them to finish their full turn — most decisions are made in the 2 seconds before you speak.",
70
+ "branches": [
71
+ {
72
+ "if_you_hear": "Sigh, raised pitch, 'look, ma'am/sir…', sharp pace.",
73
+ "interpretation": "Rep is escalating emotionally OR has been scolded by their last caller.",
74
+ "say": "Use `label_frustration`. Then SILENCE for 5 seconds.",
75
+ "do_not": "Do not apologize. Do not justify your ask. Do not fill silence."
76
+ },
77
+ {
78
+ "if_you_hear": "'I can't', 'the system', 'policy', 'I'm not allowed'.",
79
+ "interpretation": "Rep is signaling lack of authority, not lack of willingness.",
80
+ "say": "Use `label_third_party`. Then ask the calibrated follow-up: 'Who on your end usually handles exceptions like this?'",
81
+ "do_not": "Do not argue with the policy. The rep didn't write it."
82
+ },
83
+ {
84
+ "if_you_hear": "'I understand' said quickly with no warmth.",
85
+ "interpretation": "Counterfeit empathy. The rep is performing a script.",
86
+ "say": "Break the script: 'Right — okay, and off-script for a second, what would you actually do in my position?'",
87
+ "do_not": "Do not accept the scripted empathy as real engagement."
88
+ },
89
+ {
90
+ "if_you_hear": "'That's right' (verbatim) after one of your labels or summaries.",
91
+ "interpretation": "BREAKTHROUGH. You have full alignment.",
92
+ "say": "Immediately make your ask — this is the highest-leverage moment of the call.",
93
+ "do_not": "Do not over-celebrate or oversell. Plant the ask and pause."
94
+ },
95
+ {
96
+ "if_you_hear": "'You're right' (verbatim).",
97
+ "interpretation": "Brush-off. They want you off the line, not in alignment.",
98
+ "say": "Reset with another label or calibrated question. Do NOT make your ask yet.",
99
+ "do_not": "Do not mistake 'you're right' for agreement. It's the opposite."
100
+ },
101
+ {
102
+ "if_you_hear": "Silence longer than 5 seconds after your label.",
103
+ "interpretation": "Rep is thinking, or the label landed too hard.",
104
+ "say": "Nothing. Wait. If silence passes 12 seconds, soften with `follow_up_calibrated`.",
105
+ "do_not": "Do not rescue the silence at 6 seconds — that's exactly when they were about to speak."
106
+ },
107
+ {
108
+ "if_you_hear": "'No, it's not that, it's actually…' (correcting your label).",
109
+ "interpretation": "Gold. They just gave you the real reason for their resistance.",
110
+ "say": "Label what they just told you back to them. Now you're inside their actual frame.",
111
+ "do_not": "Do not feel embarrassed about the wrong label — it was the tool that got the truth."
112
+ }
113
+ ]
114
+ },
115
+ "boundaries": [
116
+ "Do NOT label and ask for a concession in the same breath. Pause is mandatory.",
117
+ "Do NOT use labels you don't believe — fake empathy is audible.",
118
+ "Do NOT label more than 3 times without a substantive ask. It starts to feel like you're stalling.",
119
+ "Do NOT label trauma or personal hardship the rep volunteers — that's not a tactical opening, that's a human moment. Be human back."
120
+ ],
121
+ "success_signals": [
122
+ "Rep says 'that's right' or 'exactly' after a label.",
123
+ "Rep's tone softens — slower pace, lower pitch within 30 seconds of first label.",
124
+ "Rep starts volunteering information you didn't ask for ('honestly, between us…').",
125
+ "Rep references a workaround unprompted.",
126
+ "Rep refers to you by name without checking the account."
127
+ ],
128
+ "failure_signals": [
129
+ "Rep doubles down after each label — they may be trained to detect Voss tactics; switch to direct.",
130
+ "Rep audibly reads from a script through 3+ labels — call may need supervisor escalation.",
131
+ "Your labels keep getting 'no, that's not it' and you have no theory for what IS it — you're guessing, not listening."
132
+ ],
133
+ "exit_strategy": {
134
+ "on_success": "Once 'that's right' lands and the ask is granted, stop selling. Confirm details and exit.",
135
+ "on_failure": "If labels aren't landing after 4 attempts, you're probably misreading the call. Pivot to calibrated questions (`02-calibrated-questions`) and let THEM tell you what frame to use.",
136
+ "follow_ups": [
137
+ "Log which labels worked and which didn't for next call.",
138
+ "If supervisor escalation needed, brief the supervisor with the rep's name and the 'that's right' summary — it primes them."
139
+ ]
140
+ },
141
+ "required_user_info": [
142
+ "Whether the call is voice or text (this skill is voice-optimized).",
143
+ "Any prior relationship or history with the counterparty.",
144
+ "The emotional stakes for the user (informs how much patience to budget)."
145
+ ],
146
+ "contributed_by": "negotiation-master agent (v0.9.87 community drop)"
147
+ }
@@ -0,0 +1,133 @@
1
+ {
2
+ "id": "therapist-intake-call",
3
+ "name": "Therapist Intake Call: Insurance, Sliding-Scale, and Fit",
4
+ "version": "1.0.1",
5
+ "category": "medical-admin",
6
+ "tags": [
7
+ "mental-health",
8
+ "therapy",
9
+ "therapist",
10
+ "psychologist",
11
+ "insurance",
12
+ "sliding-scale",
13
+ "intake",
14
+ "phone-call",
15
+ "professional-services"
16
+ ],
17
+ "description": "Call a therapist or counselling practice to verify in-network status, ask about sliding-scale availability, confirm modality and licensure, and pre-screen fit BEFORE the operator books a first session.",
18
+ "disclaimer": "This call is logistical and screening only — never clinical. Do not describe the operator's symptoms in detail to an intake coordinator; save that for the actual clinician. Mental-health PHI is sensitive — share only what is necessary to book.",
19
+ "context": {
20
+ "when_to_use": "Operator is looking for an individual, couples, or family therapist and needs to check insurance, cost, availability, and basic fit before scheduling. Especially valuable when the operator has insurance and needs in-network verification, or when budget requires sliding-scale.",
21
+ "preconditions": [
22
+ "Operator has identified the therapist by name and verified their license is active in the relevant state (state board lookup).",
23
+ "Operator has insurance card photo or core fields ready: insurer, member ID, group number, plan type (HMO/PPO/EPO).",
24
+ "Operator has decided what they're seeking help with at a HIGH level (e.g. 'anxiety', 'grief', 'couples') — no diagnosis details needed for intake.",
25
+ "Operator has time-of-day and weekday/weekend preferences for sessions."
26
+ ],
27
+ "estimated_call_duration_minutes": 15
28
+ },
29
+ "principles": [
30
+ "Therapy fit predicts outcomes more than any other factor. Cost and logistics are necessary; fit is sufficient. Always plan a brief consult with the clinician themselves, not just the intake coordinator.",
31
+ "Insurance answers given verbally are estimates. The only binding source is the operator's insurer — get the CPT codes the therapist bills (usually 90791 intake, 90834 / 90837 sessions) and have the operator verify coverage independently.",
32
+ "Sliding-scale is widely advertised but inconsistently honoured. Ask for the actual current available rate, not the theoretical range.",
33
+ "Waitlists are common for good clinicians. A 4-8 week wait for the right fit beats a same-day appointment with the wrong one.",
34
+ "Telehealth-only and in-person availability differ — confirm what's available NOW, not what the website says.",
35
+ "Cancellation policies are where money is lost. 24-hour cancel windows are standard; full-fee no-shows are common — surface this BEFORE booking."
36
+ ],
37
+ "phrases": {
38
+ "opener": "Hi — I'm calling for someone who's thinking about starting therapy with [therapist name]. Before we get to scheduling, could I ask a couple of things about insurance and availability?",
39
+ "insurance_probe": "Is [therapist name] in-network with [insurer / plan type]? If not, do they provide a superbill the operator can submit for out-of-network reimbursement? What CPT codes are typically billed for intake and ongoing sessions?",
40
+ "sliding_scale_probe": "I saw the practice offers sliding-scale. What's the actual rate available right now for new clients, and is there an intake form to determine eligibility?",
41
+ "modality_probe": "What's the therapist's primary modality — CBT, psychodynamic, EMDR, ACT, IFS, somatic? And do they have specific experience with [presenting issue at the HIGH level: 'anxiety', 'work stress', 'grief', 'couples work']?",
42
+ "logistics_probe": "What's the current wait for a first appointment, and are sessions telehealth, in-person, or both? What's the cancellation / no-show policy?",
43
+ "consult_request": "Could the operator have a brief 10-15 minute phone consult with the therapist directly before committing? Fit matters and they'd rather both be sure.",
44
+ "credentials_probe": "Could you confirm the therapist's license number and credential type — LMFT, LCSW, LPC, PhD, PsyD? The operator wants to verify with the state board.",
45
+ "stall_to_check": "Let me check with the operator before we book — they want to confirm the insurance side and the time slot directly.",
46
+ "graceful_close": "Thank you, this is really helpful. Could you email a new-client intake packet and the cancellation policy in writing? The operator will review and follow up to book."
47
+ },
48
+ "tactics": [
49
+ {
50
+ "name": "Lead with insurance and cost",
51
+ "when": "First substantive turn after pleasantries.",
52
+ "script": "Use the `insurance_probe`. Get a clear yes/no on in-network status, the per-session rate if out-of-network, and whether a superbill is provided. If sliding-scale is needed, follow with `sliding_scale_probe`.",
53
+ "priority": 1
54
+ },
55
+ {
56
+ "name": "Confirm credentials, not just the name",
57
+ "when": "Once cost is roughly clear.",
58
+ "script": "Use `credentials_probe`. Pre-licensed associates (LMFT-A, LCSW-A) are often discounted but bill differently for insurance. Get the license number for the operator to look up on the state board.",
59
+ "priority": 2
60
+ },
61
+ {
62
+ "name": "Ask about modality at a high level",
63
+ "when": "After credentials.",
64
+ "script": "Use `modality_probe`. Don't describe the operator's clinical situation in detail — keep it at the high level the operator authorised. The point is to check the therapist's specialisation fits, not to start treatment.",
65
+ "priority": 3
66
+ },
67
+ {
68
+ "name": "Request a brief therapist consult",
69
+ "when": "Logistics check out and the practice seems viable.",
70
+ "script": "Use `consult_request`. Most practices honour a 10-15 minute consult call with the clinician. This is the single highest-leverage step — fit comes through in tone, not biography.",
71
+ "priority": 4
72
+ },
73
+ {
74
+ "name": "Pin down the cancellation policy",
75
+ "when": "Before discussing actual time slots.",
76
+ "script": "Get the exact policy in writing — most are 24-hour, some 48-hour, some full-fee. Late-cancel and no-show fees can hit $150-$250. Confirm whether insurance covers anything if a session is cancelled late.",
77
+ "priority": 5
78
+ },
79
+ {
80
+ "name": "Defer booking and payment-on-file",
81
+ "when": "Coordinator tries to book and put a card on file.",
82
+ "script": "Use the `stall_to_check` phrase. Card-on-file is industry standard, but the operator authorises that — not you. Send the slot options back to the operator; let them confirm and provide payment directly."
83
+ },
84
+ {
85
+ "name": "Note waitlist openings honestly",
86
+ "when": "Practice is full but might open soon.",
87
+ "script": "Ask: 'If the operator joins the waitlist, what's the realistic timeline?' Note it as a fallback rather than a commitment."
88
+ }
89
+ ],
90
+ "boundaries": [
91
+ "Do NOT disclose detailed clinical history, suicidality, substance use, diagnoses, or trauma details to an intake coordinator. Those belong to the clinician, and the operator should share them directly.",
92
+ "Do NOT book a first appointment without the operator's explicit time-slot approval via ask_operator.",
93
+ "Do NOT provide credit card or full SSN/insurance details on this call. Confirm the cost and policy; the operator handles payment-on-file directly with the practice's secure portal.",
94
+ "Do NOT promise the operator will start by a specific date — waitlists shift.",
95
+ "Do NOT pressure for a sliding-scale rate by overstating financial hardship. Use only what the operator has authorised.",
96
+ "Do NOT skip the licence verification step — pre-licensed associates and unlicensed life coaches are not equivalent, and insurance treats them very differently."
97
+ ],
98
+ "success_signals": [
99
+ "Coordinator gives a clear in-network yes/no AND the per-session rate.",
100
+ "Sliding-scale rate is named as a specific number for new clients now.",
101
+ "Therapist offers a brief intro consult before booking.",
102
+ "Cancellation policy is provided in writing.",
103
+ "Coordinator confirms the therapist has experience with the presenting issue at the level discussed.",
104
+ "Telehealth and/or in-person availability is confirmed for the operator's preferred times."
105
+ ],
106
+ "failure_signals": [
107
+ "Practice will not confirm insurance until after the first appointment.",
108
+ "Sliding-scale is 'theoretically available' but no slots exist.",
109
+ "Coordinator pressures for a card on file before the operator has reviewed cancellation policy.",
110
+ "Refusal to allow a brief intro consult.",
111
+ "Therapist's licence is inactive, expired, or in a different state from the operator's residence at session time.",
112
+ "Modality is mismatched (e.g. operator needs EMDR for trauma, therapist only does talk therapy)."
113
+ ],
114
+ "exit_strategy": {
115
+ "on_success": "Confirm the practice will email: intake packet, cancellation policy, new-patient consent forms, and the consult-call appointment if available. Note the per-session fee, sliding-scale rate if applicable, expected start window, and CPT codes for the operator to verify with their insurer.",
116
+ "on_failure": "Politely close. Ask the coordinator for one or two referrals to in-network therapists who might fit — practices often share informally. Report the gap to the operator (cost / availability / fit) with specifics.",
117
+ "follow_ups": [
118
+ "Email the operator: therapist name, license, fee, in/out-network status, sliding-scale offer, cancellation policy, consult-call slot, modality, and a short fit assessment.",
119
+ "Operator independently verifies coverage with their insurer using the provided CPT codes BEFORE the first paid session.",
120
+ "If proceeding to consult: prep the operator with 3-4 questions to ask the clinician directly."
121
+ ]
122
+ },
123
+ "required_user_info": [
124
+ "Therapist name, state, and (if known) license number",
125
+ "Insurance: insurer name, member ID, group number, plan type (HMO/PPO/EPO)",
126
+ "Budget per session AND sliding-scale need (yes/no, target rate)",
127
+ "Presenting concern at HIGH level only (e.g. 'anxiety', 'couples', 'grief') — no clinical detail",
128
+ "Telehealth vs in-person preference",
129
+ "Time-of-day / weekday / weekend availability window"
130
+ ],
131
+ "contributed_by": "professional-intake agent (v0.9.87 community drop)",
132
+ "updated_at": "2026-05-20T06:09:47Z"
133
+ }
@@ -0,0 +1,104 @@
1
+ {
2
+ "id": "train-cancellation-refund-rebook",
3
+ "name": "Train Cancellation — Refund vs. Rebook Decision Tree",
4
+ "version": "1.0.1",
5
+ "category": "travel",
6
+ "tags": ["train", "amtrak", "eurostar", "sncf", "renfe", "trenitalia", "delay-compensation"],
7
+ "description": "Your train is cancelled or massively delayed. Walk through each carrier's refund + delay-compensation rules and choose between rebooking on the same operator, switching to a competitor, or taking the cash.",
8
+ "disclaimer": null,
9
+ "context": {
10
+ "when_to_use": "User has a confirmed train ticket that's been cancelled or delayed >30 minutes, on Amtrak (US), Eurostar (UK/EU), SNCF/TGV (France), Renfe (Spain), Trenitalia/Italo (Italy), DB (Germany), or other major operators. Works at the station or remotely.",
11
+ "preconditions": [
12
+ "User has the ticket reference / PNR.",
13
+ "User knows the original train number and scheduled departure.",
14
+ "User has a smartphone to check competitor inventory (Italo vs Trenitalia, OUIGO vs SNCF, etc.)."
15
+ ],
16
+ "estimated_call_duration_minutes": 15
17
+ },
18
+ "principles": [
19
+ "Rail cancellation refunds are usually automatic and same-day — but you have to claim them via the right channel. Each operator has its own portal.",
20
+ "Rail delay compensation is often more generous than air: 25% / 50% / 100% refunds for 1h / 2h / 3h+ delays on Eurostar; SNCF Garantie Voyage starts at 30 min on TGV INOUI.",
21
+ "Some routes have a competitor — Italo vs Trenitalia (IT high-speed), OUIGO vs SNCF (FR low-cost), AVLO vs Renfe AVE (ES). If your operator cancels, the competitor often has seats and you can buy + claim a refund.",
22
+ "Lounge access opens up during disruption. Eurostar Premier, SNCF Grand Voyageur, Renfe AVE Preferente, Trenitalia Frecciaclub — use them as workstations during IRROPS.",
23
+ "Conductor on the new train can usually accept your old ticket. Ask politely; show the cancellation message.",
24
+ "Photograph the platform display board showing the cancellation. This is your proof for delay compensation when the official record loses fidelity."
25
+ ],
26
+ "phrases": {
27
+ "opener_amtrak": "Hi — my Amtrak train [number] on [date] from [origin] to [destination] is cancelled. My reservation number is [code]. I'd like to [rebook on the next available / take a full refund to original form of payment].",
28
+ "opener_eurostar": "My Eurostar [train number] is cancelled. Per Eurostar's Delay Repay policy I'd like a refund OR rebook on the next available departure, and I'd like to confirm whether the 60-minute compensation threshold applies.",
29
+ "opener_sncf": "Mon TGV INOUI [numéro] est annulé. J'aimerais activer la Garantie Voyage pour le remboursement et/ou un report sur le prochain train direct.",
30
+ "ask_for_alternative_carrier": "If your next train is [time] later, can I take [competitor] and submit my ticket as canceled for refund? Some operators reimburse the difference; others give a full refund and you book the competitor yourself.",
31
+ "ask_for_lounge": "While we work this out, can I wait in the [Premier / Grand Voyageur / Frecciaclub / Sala Club] lounge?",
32
+ "ask_for_delay_repay": "Once I'm rebooked, can you confirm which delay-compensation tier applies based on actual arrival time at [destination]?",
33
+ "graceful_close_success": "Confirmed: new train [number] at [time], new ticket reference [code], and I'll file delay compensation post-arrival via [portal].",
34
+ "graceful_close_failure": "Okay — please mark my ticket as fully refundable due to cancellation. I'll book the competitor and submit the refund claim online."
35
+ },
36
+ "tactics": [
37
+ {
38
+ "name": "Decision tree: refund vs rebook vs competitor",
39
+ "when": "First five minutes of disruption.",
40
+ "script": "Three questions: (1) Is the next same-operator train within 90 min and you have time? → rebook. (2) Is the competitor running within 60 min? → buy competitor, refund original. (3) Is the next train 4+ hours away and the trip itself is now compromised? → full refund + cancel trip OR + book a flight.",
41
+ "priority": 1
42
+ },
43
+ {
44
+ "name": "Know your operator's delay-comp thresholds",
45
+ "when": "Choosing between refund and rebook.",
46
+ "script": "Amtrak: cancellation → full refund or future voucher; delay → discretionary travel vouchers, no automatic cash. Eurostar: 60-119 min → 25% refund; 120-179 min → 50%; 180+ min → 100% refund or free rebook. SNCF TGV INOUI Garantie Voyage: 30 min → 25% e-voucher; 60-120 min → 25% cash; 120-180 min → 50%; 180+ → 75%. DB ICE: 60+ min → 25%; 120+ → 50%. Renfe AVE 'Compromiso de Puntualidad': 15+ min late → 50%; 30+ min → 100%. Italo: 60+ min → 25%; 120+ → 50%.",
47
+ "priority": 2
48
+ },
49
+ {
50
+ "name": "Buy competitor + claim refund",
51
+ "when": "Competitor has seats and operator's next train is far off.",
52
+ "script": "Italy: Italo and Trenitalia both run Milan–Rome 25+ times daily — if one cancels, the other usually has seats within an hour. France: OUIGO competes with TGV INOUI on many routes at lower fares. Spain: AVLO (low-cost AVE) and competitor IRYO. Buy on the spot, take the full refund of the cancelled ticket later.",
53
+ "priority": 3
54
+ },
55
+ {
56
+ "name": "Use the lounge as your workstation",
57
+ "when": "You have premium ticket or status.",
58
+ "script": "Eurostar Premier / Business Premier → Premier lounge at St Pancras, Gare du Nord, Bruxelles-Midi. SNCF: Grand Voyageur Plus → Salon Grand Voyageur. Renfe Preferente: Sala Club. Trenitalia Executive: FRECCIAClub + FRECCIALounge. Quieter, faster Wi-Fi, sometimes dedicated rebooking staff."
59
+ },
60
+ {
61
+ "name": "File delay compensation immediately after the trip",
62
+ "when": "Within 24-48 hours of arrival.",
63
+ "script": "Amtrak: amtrak.com/contact-us → 'Delays' (manual review). Eurostar: eurostar.com → 'Help' → 'Delay Repay' form. SNCF: SNCF Connect → 'Garantie Voyage'. DB: bahn.de → 'Refunds & customer dialogue'. Renfe: renfe.com → 'Atención al Cliente'. Italo: italotreno.it → 'Reclami'. Most pay within 30 days."
64
+ },
65
+ {
66
+ "name": "Ask the conductor to honor the old ticket",
67
+ "when": "Boarding a later same-operator train.",
68
+ "script": "Show the cancellation SMS / email + old ticket. Polite ask: 'Mein Zug wurde annulliert' / 'Mon train était annulé' / 'Il mio treno è stato cancellato' / 'My train was cancelled — can I ride this one?' Yes 95% of the time."
69
+ }
70
+ ],
71
+ "boundaries": [
72
+ "Do NOT discard the original ticket — it's the proof for refund and delay compensation.",
73
+ "Do NOT board the new train without confirming the old ticket is honored OR you have a new ticket — fare evasion fines on Eurostar/SNCF are €100+.",
74
+ "Do NOT accept a non-refundable voucher when cash is offered for cancellation — same EU261-flavoured principle.",
75
+ "Do NOT pay for a competitor without confirming the cancelled-ticket refund path first."
76
+ ],
77
+ "success_signals": [
78
+ "Operator confirms full refund or rebooks at no charge.",
79
+ "Conductor accepts the old ticket on the next train.",
80
+ "Delay-compensation form is acknowledged with a case number.",
81
+ "Lounge access is granted while you wait."
82
+ ],
83
+ "failure_signals": [
84
+ "Operator insists the cancellation is 'force majeure' (rare in rail — most domestic disruption isn't).",
85
+ "Next train is 6+ hours away and no competitor exists.",
86
+ "Operator's refund-portal is broken (Renfe is notorious — try the phone)."
87
+ ],
88
+ "exit_strategy": {
89
+ "on_success": "Take the new ticket, board, then file delay compensation from the seat — most portals are mobile-friendly.",
90
+ "on_failure": "Full refund + buy a flight or competitor ticket; submit insurance trip-delay claim too.",
91
+ "follow_ups": [
92
+ "If your trip is purposeful (wedding, conference), document the impact for any insurance claim.",
93
+ "If you have an Interrail/Eurail pass, separate rules apply — pass reservations are usually free to reissue on the next train."
94
+ ]
95
+ },
96
+ "required_user_info": [
97
+ "Train operator and train number",
98
+ "Ticket reference / PNR",
99
+ "Scheduled vs actual times",
100
+ "Whether the trip has a hard deadline (e.g. flight connection — chain into flight skill)",
101
+ "Acceptable competitor operators"
102
+ ],
103
+ "contributed_by": "travel-rebooking agent (v0.9.87 community drop)"
104
+ }
@@ -0,0 +1,128 @@
1
+ {
2
+ "id": "transcript-request",
3
+ "name": "Request a Transcript from the Registrar",
4
+ "version": "1.0.1",
5
+ "category": "other",
6
+ "tags": [
7
+ "registrar",
8
+ "transcript",
9
+ "sealed",
10
+ "rush",
11
+ "records",
12
+ "phone-call",
13
+ "education"
14
+ ],
15
+ "description": "Call a college / high school registrar to request an official transcript — sealed vs. unsealed, electronic vs. paper, standard vs. rush — and unblock holds, payment friction, or third-party-recipient quirks that stall the request.",
16
+ "disclaimer": "Schools may withhold transcripts for unpaid balances, library fines, or other holds. FERPA governs who can request transcripts on behalf of an adult student — the registrar will require either the student's authorization or proof of legal guardianship for a minor.",
17
+ "context": {
18
+ "when_to_use": "The user needs an official transcript sent to a third party (grad school, employer, licensing board, NCAA Eligibility Center, another college for transfer credit) and either (a) the online portal isn't producing the right delivery method, (b) there's a hold blocking the order, or (c) the deadline is tight enough that standard 5-10 business day processing won't work.",
19
+ "preconditions": [
20
+ "User has Student ID, dates of attendance, and (if changed) the name on the record at time of attendance.",
21
+ "User has the exact recipient name, address, email, and any institutional code (CEEB / SAO / Parchment / Credentials Inc. / National Student Clearinghouse).",
22
+ "User knows whether the recipient REQUIRES a sealed paper transcript or accepts e-transcript (this varies — bar exams and some grad schools still require paper-sealed).",
23
+ "User has a credit card or can pay the fee — most registrars charge $5–$25 per copy plus rush fees."
24
+ ],
25
+ "estimated_call_duration_minutes": 15
26
+ },
27
+ "principles": [
28
+ "The registrar's first answer is the policy answer. Discretionary exceptions exist — but you have to ask, and you have to give them a reason.",
29
+ "Rush isn't always available, but expedited delivery (FedEx overnight) almost always is — they're different fees and different services.",
30
+ "Holds block transcripts even if you've paid. The hold has to be lifted in the system. If you paid yesterday, the bursar's update may not have synced — ask the registrar to call the bursar directly.",
31
+ "Sealed means the envelope is unbroken with the registrar's signature/stamp across the flap. If a recipient requires 'sealed', a PDF you forwarded yourself does NOT count.",
32
+ "Many third-party recipients (LSAC, AMCAS, AACOMAS, CSDCAS, NCAA) want the transcript sent to THEM, not to you. Routing through the user defeats the purpose and often gets rejected.",
33
+ "Errors on transcripts (wrong grade, missing course, name change) require a correction request from the original department — the registrar publishes what departments certify. Call the department first."
34
+ ],
35
+ "phrases": {
36
+ "opener": "Hi, I'd like to order an official transcript. My name is [name], Student ID [ID], I attended from [year] to [year]. Could you walk me through the options for getting it to [recipient] by [date]?",
37
+ "ask_about_holds": "Could you check whether there are any holds on my account that would block a transcript order? I want to clear those before I submit so the order doesn't bounce.",
38
+ "rush_request": "I have a hard deadline of [date]. Is rush processing available, or expedited shipping, or both? What's the realistic total turnaround if I order today?",
39
+ "sealed_clarification": "The recipient is asking for a sealed transcript. Just to confirm — what your office sends is the official sealed copy that they consider unopened, correct? Either by mail or via a secure e-transcript provider?",
40
+ "third_party_routing": "The transcript needs to go directly from your office to [LSAC / AMCAS / NCAA / etc.]. Their school code is [code]. Can you confirm you have that recipient in your system and that the e-transcript will route correctly?",
41
+ "fee_waiver_ask": "I'm a current student / alum applying for [graduate school / a fellowship / a job]. Do you have a fee-waiver process for active applications, or a flat number of free transcripts per year?",
42
+ "supervisor_request": "Thanks for checking — could I speak with the Registrar or an Associate Registrar? I have a deadline issue and I want to make sure I'm not missing any options.",
43
+ "graceful_close_success": "Thank you. To confirm: order placed under reference [number], delivery to [recipient] via [method] by [date], total $[amount] charged to [card]. May I have an email confirmation, and your name in case I need to follow up?"
44
+ },
45
+ "tactics": [
46
+ {
47
+ "name": "Check for holds before ordering",
48
+ "when": "First substantive turn.",
49
+ "script": "Use `ask_about_holds`. Common silent holds: unpaid library fines under $20, unreturned lab equipment, parking tickets, missing health-insurance waiver, missing exit-counseling for federal loans. Clearing these first prevents a failed order.",
50
+ "priority": 1
51
+ },
52
+ {
53
+ "name": "Clarify sealed vs. e-transcript expectation",
54
+ "when": "Recipient's instructions are ambiguous.",
55
+ "script": "Use `sealed_clarification`. Some bar associations and a few grad programs still reject e-transcripts. When in doubt, order both — paper for the file, e-transcript for speed.",
56
+ "priority": 2
57
+ },
58
+ {
59
+ "name": "Use the recipient's institutional code",
60
+ "when": "Sending to LSAC, AMCAS, AACOMAS, CSDCAS, NCAA, Parchment, Credentials Inc., or National Student Clearinghouse.",
61
+ "script": "Use `third_party_routing`. These services have school-specific codes that route the transcript directly into the user's application file. Sending to a generic mailing address means manual matching and weeks of delay.",
62
+ "priority": 3
63
+ },
64
+ {
65
+ "name": "Ask about rush AND expedited shipping separately",
66
+ "when": "Deadline is tight (< 7 business days).",
67
+ "script": "Use `rush_request`. Rush = faster processing inside the registrar's office. Expedited = faster shipping after it leaves. They stack. Some offices also offer 'same-day in-person pickup' that's faster than either.",
68
+ "priority": 4
69
+ },
70
+ {
71
+ "name": "Ask about fee waivers",
72
+ "when": "User is unemployed, low-income, currently enrolled, applying to grad school via a fee-waiver program (LSAC FAP, AAMC FAP), or has limited copies/year built into tuition.",
73
+ "script": "Use `fee_waiver_ask`. Most schools include 2–5 free transcripts per lifetime or per year; alums sometimes forget this benefit exists.",
74
+ "priority": 5
75
+ },
76
+ {
77
+ "name": "Escalate to the Associate Registrar for exceptions",
78
+ "when": "Hold can't be lifted same-day, or rush isn't normally offered but deadline is critical.",
79
+ "script": "Use `supervisor_request`. The Registrar and Associate Registrar can override processing-queue rules, hand-deliver to the bursar to clear a hold, or authorize same-day issuance in a way front-desk staff cannot.",
80
+ "priority": 6
81
+ },
82
+ {
83
+ "name": "Request a 'pending' transcript if final grades aren't in yet",
84
+ "when": "User is a current-term student and needs a transcript before finals post.",
85
+ "script": "Ask whether the registrar offers an 'in-progress' or 'partial' transcript that shows current registration. Some grad-school applications accept these as interim records."
86
+ }
87
+ ],
88
+ "boundaries": [
89
+ "Do NOT request a transcript on someone else's behalf unless you have FERPA authorization in writing (or are legal guardian of a minor) — the registrar will refuse and may flag the account.",
90
+ "Do NOT alter or open a sealed transcript. Doing so voids the seal and the recipient will refuse it.",
91
+ "Do NOT promise to pay a hold during the call without operator approval — confirm the dollar amount and the bursar's payment channel first.",
92
+ "Do NOT ask the registrar to fix a grade. That's a faculty / department / academic-standards-committee process; registrar only records what's certified.",
93
+ "Do NOT email an unsealed PDF to a recipient that required sealed and claim it counts — it doesn't, and re-submitting late may miss the deadline."
94
+ ],
95
+ "success_signals": [
96
+ "Order reference number issued.",
97
+ "Hold check returns clean.",
98
+ "Registrar confirms electronic delivery to the recipient's institutional code.",
99
+ "Email confirmation lands in the user's inbox before the call ends.",
100
+ "Rush + expedited combined delivery is in writing."
101
+ ],
102
+ "failure_signals": [
103
+ "Hold can't be cleared until the bursar reopens the next business day — and the deadline is tomorrow.",
104
+ "Registrar says e-transcript isn't supported for this recipient and paper-only via mail won't arrive in time.",
105
+ "Account is in the archive and physical records require 4–6 weeks to retrieve (common for schools that have changed student-information systems).",
106
+ "Name on record doesn't match the user's current legal name and recipient requires matching name — needs a name-change petition first."
107
+ ],
108
+ "exit_strategy": {
109
+ "on_success": "Confirm order number, method, recipient, fee, ETA. Ask for email confirmation. Save a screenshot of the tracking page if e-transcript.",
110
+ "on_failure": "Get the specific blocker in writing. Decide with the operator: (a) pay the hold same-day and re-order, (b) request a deadline extension from the recipient, (c) escalate to the Registrar, (d) request an in-progress / unofficial transcript as a stopgap.",
111
+ "follow_ups": [
112
+ "Email the operator the order number, ETA, and any tracking link.",
113
+ "If recipient requires confirmation of receipt, set a check-in 2 business days after expected delivery.",
114
+ "Document the registrar's email so future transcript orders can skip the phone tree."
115
+ ]
116
+ },
117
+ "required_user_info": [
118
+ "Student ID, full legal name, and name-at-attendance if different",
119
+ "Dates of attendance and degree(s) awarded",
120
+ "Recipient name, address/email, institutional code if applicable",
121
+ "Sealed paper vs. e-transcript requirement",
122
+ "Hard deadline date",
123
+ "Payment method",
124
+ "Any known holds (library, bursar, parking, etc.)"
125
+ ],
126
+ "contributed_by": "education-admin agent (v0.9.87 community drop)",
127
+ "updated_at": "2026-05-20T06:09:47Z"
128
+ }