@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,137 @@
1
+ {
2
+ "id": "invoke-regulator-firmly",
3
+ "name": "Invoke a Regulator Without Sounding Combative",
4
+ "version": "1.0.1",
5
+ "category": "customer-service",
6
+ "tags": [
7
+ "escalation",
8
+ "regulator",
9
+ "FCC",
10
+ "CFPB",
11
+ "BBB",
12
+ "state-AG",
13
+ "PUC",
14
+ "compliance",
15
+ "phone-call",
16
+ "customer-support"
17
+ ],
18
+ "description": "Reference the appropriate regulator (FCC, CFPB, state PUC, state Attorney General, BBB, FTC) as a step in the escalation ladder — not as a threat. Used correctly, it changes a 'no' to a callback from the executive office within hours. Used incorrectly, it gets you flagged as a litigant and hardens every future interaction.",
19
+ "disclaimer": "Not legal advice. Filing a regulatory complaint is your right as a consumer, but only file one with truthful facts — false complaints are themselves a violation and undermine future complaints from real victims. If your situation involves potential fraud, large dollar amounts, or personal harm, consult an attorney before relying on this script.",
20
+ "context": {
21
+ "when_to_use": "You've already escalated to a supervisor (or the rep has refused to escalate) AND the company's behavior plausibly falls in a regulator's jurisdiction: telecom billing/service (FCC, state PUC), banking/credit (CFPB), broad consumer fraud (state AG, FTC), business practices (BBB — weak but visible). Don't invoke a regulator over a $20 dispute; do invoke when the harm is real and the company is stonewalling.",
22
+ "preconditions": [
23
+ "User has already attempted internal escalation (supervisor, retention, or written complaint) at least once.",
24
+ "User has a documented timeline of the issue (dates, names, case numbers).",
25
+ "The issue actually falls within the named regulator's jurisdiction — see `principles`.",
26
+ "User is willing to actually file the complaint if the company doesn't move. Empty threats are detectable and counterproductive."
27
+ ],
28
+ "estimated_call_duration_minutes": 18
29
+ },
30
+ "principles": [
31
+ "Match the regulator to the harm. FCC: telecom service, robocalls, wireless billing. CFPB: banks, credit cards, debt collectors, credit reporting, mortgages. State PUC: utilities (electric, gas, water, and in some states, landline phone). State AG: deceptive practices, consumer fraud, big-ticket disputes. FTC: scams, deceptive ads, identity theft (notes complaints but doesn't usually pursue individual cases). BBB: low legal weight but high PR visibility — companies often resolve to protect their rating.",
32
+ "The phrase 'I'll be filing a complaint' is weaker than 'I've already filed a complaint and wanted to give you a chance to resolve before it escalates'. Companies have entire teams whose job is to respond to filed complaints — once a case number exists, you get routed to those teams automatically.",
33
+ "Never threaten. Inform. 'I'm planning to file with the CFPB' is a statement of intent, not a threat. 'You'll be sorry when I file' is a threat — and it triggers a defensive script that locks the company down legally.",
34
+ "Tone matters more than content. Slow, calm, factual delivery (think: a CPA describing a tax issue) reads as serious. Raised voice + regulator name = read as 'angry customer making noise' and ignored.",
35
+ "Regulator references work BEST when you can cite a specific statute, regulation, or rule that the company's behavior arguably violates. You don't need to be right — you need to sound informed enough that the rep escalates rather than risk it.",
36
+ "Decision point — every time: am I still trying to RESOLVE THIS CALL, or am I now DOCUMENTING FOR THE COMPLAINT? Those are different goals with different scripts. Don't mix them.",
37
+ "Companies often have a separate 'regulatory response' team that handles formal complaints. Getting routed there is the goal — they have authority front-line reps don't."
38
+ ],
39
+ "phrases": {
40
+ "set_up_the_reference": "Before we go further, I want to be transparent: if we can't resolve this today, my next step is to file a formal complaint with [regulator] under [type of issue]. I'd much rather resolve it here, but I want you to know what's next so we can both make informed decisions.",
41
+ "soft_factual": "I've documented the timeline carefully — [N] calls since [date], case numbers [list]. At some point this stops being a customer service issue and becomes a regulatory one. I'd like to avoid that, but I need to see real movement today.",
42
+ "already_filed": "I'd like to note for the record: I filed a complaint with [regulator] on [date], reference number [number]. I'm calling to give your team an opportunity to resolve this directly, which the regulator's process specifically allows.",
43
+ "specific_rule_reference": "My understanding is that under [specific rule, e.g. 'FCC's truth-in-billing rules' / 'CFPB Reg E for unauthorized transactions' / 'state-AG's deceptive practices statute'], [company action] may not be compliant. I'd like to give your team a chance to address it before I escalate.",
44
+ "ask_for_regulatory_team": "Does your company have a specific team that handles regulatory complaints or formal disputes? I'd like to be routed there directly.",
45
+ "documenting_for_complaint": "Could you state your name and employee ID one more time for my records? I'm building a documented timeline either way, and I want to make sure I credit your team accurately.",
46
+ "graceful_close_unresolved": "Thanks for your time. I'll be filing the complaint today with the case number we discussed. If your team gets back to me before then, I'll update it to reflect a resolution."
47
+ },
48
+ "tactics": [
49
+ {
50
+ "name": "Verify regulator-fit before referencing",
51
+ "when": "Before mentioning any regulator on the call.",
52
+ "script": "Silently confirm: does the issue fall under this regulator's actual jurisdiction? (See `principles` for the match-up.) Referencing the wrong regulator instantly destroys credibility. If you're not sure, use 'consumer protection authorities' as a placeholder until you can be specific.",
53
+ "priority": 1,
54
+ "decision_point": "If no regulator clearly fits — DO NOT bluff. Use `reach-executive-office` instead. A bluffed regulator reference is worse than no reference at all."
55
+ },
56
+ {
57
+ "name": "Set up the reference calmly",
58
+ "when": "After a supervisor has said no, OR mid-supervisor-call if the supervisor is clearly stalling.",
59
+ "script": "Use `set_up_the_reference`. The phrase 'I want to be transparent' is critical — it signals you're informing, not threatening. Pacing matters: deliver this line at half your normal speed.",
60
+ "priority": 2
61
+ },
62
+ {
63
+ "name": "Cite a specific rule (if you can)",
64
+ "when": "Rep dismisses the regulator reference as bluster.",
65
+ "script": "Use `specific_rule_reference`. Even an approximate citation ('something under Reg E') beats a generic one. Don't fabricate — admit if you're not sure, but name the regulator's domain.",
66
+ "priority": 3
67
+ },
68
+ {
69
+ "name": "Ask for the regulatory response team",
70
+ "when": "Rep takes the reference seriously (audible pause, change in tone).",
71
+ "script": "Use `ask_for_regulatory_team`. Most large companies have one. Getting routed there bypasses 3+ tiers of escalation and lands you with someone whose job is to resolve before the complaint becomes a formal letter to the company's compliance office.",
72
+ "priority": 4,
73
+ "decision_point": "If the rep says 'we don't have a separate team for that' — that may be true (small company) or a stall. Test by saying 'who in your organization handles formal regulatory complaints?' If they can't name a function, the complaint really WILL need to be filed externally."
74
+ },
75
+ {
76
+ "name": "File-first variant",
77
+ "when": "You've already filed (genuine, not bluff).",
78
+ "script": "Use `already_filed`. This is the most powerful phrasing — it converts 'angry customer' into 'documented complainant', which most CRMs flag with a specific routing rule.",
79
+ "priority": 5
80
+ },
81
+ {
82
+ "name": "Switch to documenting mode",
83
+ "when": "Mid-call, you realize resolution is unlikely.",
84
+ "script": "Use `documenting_for_complaint`. Stop arguing — start collecting. Names, IDs, timestamps, exact wording of refusals. The call is now evidence, not negotiation.",
85
+ "priority": 6,
86
+ "decision_point": "Once you switch to documenting mode, do NOT switch back. Mixing 'I'm collecting evidence' with 'I still want resolution' confuses the rep and makes both objectives weaker. Finish the call in documenting mode and pivot to filing."
87
+ },
88
+ {
89
+ "name": "Close gracefully whether or not it worked",
90
+ "when": "End of call.",
91
+ "script": "Use `graceful_close_unresolved` if no resolution. Leaving the door open ('I'd be happy to update the complaint to reflect resolution') is genuine pressure — the company knows the complaint is coming, and the only way to make it disappear is to resolve before you file.",
92
+ "priority": 7
93
+ }
94
+ ],
95
+ "boundaries": [
96
+ "Do NOT fabricate a regulator reference. Citing a regulator that has no jurisdiction destroys your credibility AND can be argued in some states as a form of misrepresentation.",
97
+ "Do NOT threaten to 'sue' as part of this skill — that's a separate altitude and most reps are trained to immediately hand the call to legal, which actually stops negotiation entirely.",
98
+ "Do NOT raise your voice or use sarcasm. Regulators take calm, factual complaints seriously; agencies routinely close 'angry rant' complaints without action.",
99
+ "Do NOT name a specific employee in the eventual complaint unless they personally engaged in clearly improper conduct. Naming a rep for refusing a discretionary credit is overreach.",
100
+ "Do NOT file complaints with multiple regulators at once unless the issue genuinely spans jurisdictions. Forum-shopping weakens every individual filing.",
101
+ "Do NOT use the BBB as your primary regulatory reference if the issue actually involves a federal regulator — the BBB has no enforcement power and reps know it.",
102
+ "Do NOT bluff 'I've already filed' if you haven't. A confident rep will ask for the case number, and if you can't produce one, you've burned the most powerful tool in the kit."
103
+ ],
104
+ "success_signals": [
105
+ "Audible pause from the rep after the regulator is mentioned.",
106
+ "Rep says 'let me get someone from our compliance / regulatory / legal-response team'.",
107
+ "Rep proactively offers a credit, callback, or resolution they didn't offer pre-reference.",
108
+ "Rep takes your contact info and says 'someone will reach out within [timeframe]' — note the timeframe.",
109
+ "Call gets transferred OUT of the standard support queue (different hold music or no hold music)."
110
+ ],
111
+ "failure_signals": [
112
+ "Rep says 'feel free to file' in a flat tone — they've heard the bluff before and aren't moving. Time to actually file.",
113
+ "Rep tries to talk you out of filing ('there's no need to do that, ma'am') without offering a resolution.",
114
+ "Rep says 'we'll wait for the regulator to contact us' — that's a polite hang-up signal.",
115
+ "Rep escalates to legal which immediately tries to obtain settlement-like language from you. Be careful — say only 'I want to keep this in regulator/customer-service channels for now'.",
116
+ "Multiple 'I'll have someone call you' promises that don't materialize."
117
+ ],
118
+ "exit_strategy": {
119
+ "on_success": "Get the name + ID + direct number of whoever offered the resolution. Confirm in writing (email to a published support address) within 24h citing the call + their commitment + your case number. If you had filed pre-resolution, update the complaint to reflect resolution.",
120
+ "on_failure": "End politely. File the complaint within 24-48h while details are fresh. Include: timeline, case numbers, names + IDs of reps spoken to, exact refusals, and what resolution you sought. Send the company a written notice of filing.",
121
+ "follow_ups": [
122
+ "If you committed to filing — file. Don't make the threat empty. Empty threats burn future credibility.",
123
+ "Set a 30-day calendar reminder to check status of the complaint — most regulators respond within 30-60 days.",
124
+ "If the company resolves before regulator responds, notify the regulator with the resolution. Honest closure preserves your credibility for future complaints.",
125
+ "Keep all complaint case numbers + the regulator's response in a long-term file — patterns of complaints against the same company strengthen everyone's leverage."
126
+ ]
127
+ },
128
+ "required_user_info": [
129
+ "Full timeline of the dispute with dates",
130
+ "All prior case/ticket numbers and rep names",
131
+ "The specific harm (financial amount, service outage duration, etc.)",
132
+ "Which regulator(s) have jurisdiction — or willingness to research",
133
+ "Whether the user is genuinely prepared to file (do not bluff)"
134
+ ],
135
+ "contributed_by": "support-escalator agent (v0.9.87 community drop)",
136
+ "updated_at": "2026-05-20T06:09:47Z"
137
+ }
@@ -0,0 +1,103 @@
1
+ {
2
+ "id": "irrops-waiver-awareness",
3
+ "name": "IRROPS Waiver Awareness — Use the Fee-Free Change Window",
4
+ "version": "1.0.0",
5
+ "category": "travel",
6
+ "tags": ["airline", "waiver", "irrops", "change-fee", "weather", "free-rebook"],
7
+ "description": "When weather, ATC, or operational events trigger a published airline travel waiver, you can change or cancel your ticket without fees — often without fare difference — even if your specific flight hasn't been touched yet. This skill teaches the agent how to find, cite, and exploit the waiver before the airline closes the window.",
8
+ "disclaimer": null,
9
+ "context": {
10
+ "when_to_use": "User has an upcoming flight in the next 1–7 days, AND there is a weather event, ATC delay program, IT outage, or operational disruption that might trigger or has triggered a published waiver at one of the involved airports. Also useful proactively — if a hurricane is forecast, the waiver often appears 24-48 hours BEFORE the storm.",
11
+ "preconditions": [
12
+ "User knows the origin, destination, and date of travel.",
13
+ "User has a PNR and is logged in to the airline's app or website.",
14
+ "Internet access to check the airline's travel-alerts page."
15
+ ],
16
+ "estimated_call_duration_minutes": 10
17
+ },
18
+ "principles": [
19
+ "Waivers are published on each airline's website — usually at /travel/notices, /travel-alerts, or /flight-status. Find the page once, bookmark it for the future.",
20
+ "The waiver text always specifies: which airports/cities, which dates of original travel, which dates you can rebook to (the 'travel window'), and what's waived (change fee, fare difference, or both).",
21
+ "Self-serve via app first. Phone agents are often slammed during waivers; the app will execute a free change in 90 seconds. If the app can't, then call.",
22
+ "Many waivers allow you to fly EARLIER than originally booked — leaving a day ahead of a storm at no charge. Use this aggressively.",
23
+ "Waivers usually cover same city pair, but some let you reroute to a nearby airport (e.g. EWR ↔ JFK ↔ LGA, MIA ↔ FLL, IAD ↔ DCA).",
24
+ "Citations matter. Read the waiver number or the alert URL to the agent — 'I'm referencing your travel alert dated [date] for [airport]'."
25
+ ],
26
+ "phrases": {
27
+ "opener": "Hi — I'm looking at your travel alert for [airport/region] dated [date]. My ticket [PNR] is in the affected window. I'd like to rebook to [new flight] under the waiver.",
28
+ "cite_alert_directly": "The alert says original travel between [date range], rebook by [date range], same origin/destination or [list of acceptable alternates], no change fee and no fare difference in same cabin. I want to use that.",
29
+ "self_serve_check": "Before we get on the phone — let me try the app. The 'change flight' option usually shows the waiver automatically if you're inside the window.",
30
+ "ask_for_alt_airport": "The waiver mentions co-terminals. Can I rebook from [origin] to [alt destination] like [airport pair]?",
31
+ "ask_for_earlier_flight": "I'd like to fly out a day earlier than the storm. The waiver covers that, right?",
32
+ "graceful_close_success": "Great — can you confirm the new flight numbers, new record locator, and email the itinerary? Same fare class, no fare difference?",
33
+ "graceful_close_failure": "If the system isn't applying the waiver, can you have a supervisor force-apply it? The terms clearly cover my city pair and date."
34
+ },
35
+ "tactics": [
36
+ {
37
+ "name": "Check the alert page before doing anything else",
38
+ "when": "First step.",
39
+ "script": "Go to: aa.com/i18n/travel-info/travel-alerts.jsp (AA), united.com/ual/en/us/fly/travel/notices.html (UA), delta.com/us/en/advisories/travel-advisories (DL), alaskaair.com/content/travel-info/advisories (AS), jetblue.com/at-the-airport/flight-disruptions (B6), southwest.com/travel-disruption (WN). Read the EXACT terms — dates, cities, alternate airports, fare cabin, expiry.",
40
+ "priority": 1
41
+ },
42
+ {
43
+ "name": "Try the app self-serve change first",
44
+ "when": "Waiver is published and your ticket qualifies.",
45
+ "script": "Open the app → My Trips → Change Flight. If the airline's IT systems are working, the waiver auto-applies inside the affected window. This is faster than a call and consumes no agent time.",
46
+ "priority": 2
47
+ },
48
+ {
49
+ "name": "Cite the alert by date and content",
50
+ "when": "App didn't apply the waiver and you're on the phone.",
51
+ "script": "Read the alert verbatim: 'Original travel between [date]–[date], rebook by [date], same origin/destination or [alt pair], no change fee no fare difference.' Agents have the same internal memo; reading it out shortcuts the conversation.",
52
+ "priority": 3
53
+ },
54
+ {
55
+ "name": "Move EARLIER, not just later",
56
+ "when": "A storm or operational event is forecast.",
57
+ "script": "Push the original travel forward by 24-48 hours to escape the storm window. Most waivers allow this. Beats spending a night at the airport.",
58
+ "priority": 4
59
+ },
60
+ {
61
+ "name": "Use co-terminal flexibility",
62
+ "when": "Origin or destination has nearby airports.",
63
+ "script": "Ask if the waiver covers co-terminals (EWR/JFK/LGA, IAD/DCA/BWI, MDW/ORD, OAK/SFO/SJC, MIA/FLL, HOU/IAH, DAL/DFW). Often yes, not always advertised."
64
+ },
65
+ {
66
+ "name": "Force-apply if the system pushes back",
67
+ "when": "Agent insists there's a fare difference inside an explicit waiver.",
68
+ "script": "Ask for the supervisor or 'have the override desk force-apply the waiver'. Internal codes exist (e.g. WAIVE/EX, OSI WAIVE) — agents know how but won't volunteer it."
69
+ }
70
+ ],
71
+ "boundaries": [
72
+ "Do NOT claim a waiver applies if the airport, date range, or fare cabin doesn't match — agents check.",
73
+ "Do NOT pay a fare difference inside a waiver window without asking why; that's the most common 'mistake' agents make.",
74
+ "Do NOT change to a cabin higher than your original under a waiver expecting it free — most waivers are same-cabin.",
75
+ "Do NOT delay using the waiver. Waiver windows are short (often 7-14 days) and inventory drains fast."
76
+ ],
77
+ "success_signals": [
78
+ "App auto-applies the waiver and produces a new boarding pass with no charge.",
79
+ "Agent acknowledges the waiver by name/date when you cite it.",
80
+ "Co-terminal or earlier-date rebooking is granted.",
81
+ "New PNR comes back with $0 collected."
82
+ ],
83
+ "failure_signals": [
84
+ "Agent insists the waiver doesn't cover your origin even though it's listed.",
85
+ "System asks for a fare difference inside the waiver window.",
86
+ "Waiver mentions only 'change fee' waived but you're being charged fare difference for a same-cabin swap (challenge this — usually a misread)."
87
+ ],
88
+ "exit_strategy": {
89
+ "on_success": "Get the new PNR, the new flight numbers, and screenshot the confirmation in case the change reverts (rare but happens during IRROPS).",
90
+ "on_failure": "Take screenshots of the published waiver page (the URL, the date stamp, the terms). File a written customer-service ticket citing the discrepancy — these get fixed by the back office reliably within 48 hours.",
91
+ "follow_ups": [
92
+ "If you used the waiver to fly earlier, double-check checked-bag handling — bags sometimes get tagged for the original flight.",
93
+ "If the storm hits and your original flight cancels, you're already on a new itinerary — no further action needed."
94
+ ]
95
+ },
96
+ "required_user_info": [
97
+ "PNR / record locator and flight number",
98
+ "Current origin, destination, and date",
99
+ "Desired new date and time (a day earlier? a day later? same day different airport?)",
100
+ "URL of the airline's travel alert if user has already found it"
101
+ ],
102
+ "contributed_by": "travel-rebooking agent (v0.9.87 community drop)"
103
+ }
@@ -0,0 +1,134 @@
1
+ {
2
+ "id": "irs-payment-plan-setup",
3
+ "name": "IRS: Payment Plan, Identity Verification, Refund Status, or Transcript Request",
4
+ "version": "1.0.0",
5
+ "category": "civic",
6
+ "tags": [
7
+ "irs",
8
+ "taxes",
9
+ "payment-plan",
10
+ "installment-agreement",
11
+ "identity-verification",
12
+ "refund",
13
+ "transcript",
14
+ "phone-call",
15
+ "government-services"
16
+ ],
17
+ "description": "Call the IRS to set up an installment agreement, complete an identity-verification (5071C / 4883C / 5747C) call, check refund status when the online tool stalls, or order a tax transcript that can't be pulled through Get Transcript Online.",
18
+ "disclaimer": "Not legal or tax advice. The agent will not advise on filing positions, deductions, or how to structure transactions. For substantive tax planning, refer to a CPA or enrolled agent. Identity-verification calls require the actual taxpayer on the line — the agent should facilitate, not impersonate.",
19
+ "context": {
20
+ "when_to_use": "Online IRS tools failed or are unavailable; the user received a notice (CP14, CP504, LT11, 5071C, 4883C, etc.); the user owes a balance they can't pay in full; the user's refund is delayed > 21 days from e-file acceptance; a lender or court requires a transcript.",
21
+ "preconditions": [
22
+ "User has the most recent notice (with notice number and the IRS phone number printed on it) in hand.",
23
+ "User has their full name, SSN, prior-year filing status, prior-year AGI, and current address as filed.",
24
+ "User has a copy of the return year in question (or the closest available).",
25
+ "User has bank routing/account info IF setting up direct-debit installment agreement.",
26
+ "User is physically present and available to authenticate IF this is an identity-verification call (the IRS will require the taxpayer's voice and answers to personal questions)."
27
+ ],
28
+ "estimated_call_duration_minutes": 90
29
+ },
30
+ "principles": [
31
+ "IRS hold times average 30–90 minutes during tax season (Jan–Apr). Off-season (Jun–Dec) is faster. Tuesday–Thursday mornings (7–9am local IRS time) are the lightest.",
32
+ "ALWAYS use the phone number printed on the IRS notice — generic 1-800-829-1040 routes randomly. Notice-specific numbers (e.g. 1-800-830-5084 for identity verification) get you a specialised rep faster.",
33
+ "Identity-verification calls REQUIRE the taxpayer's voice. Do not attempt to impersonate the user — the IRS may flag the account and freeze the refund longer.",
34
+ "Installment-agreement options scale with balance: <$10k = simple, <$25k = streamlined, $25k–$50k = streamlined with direct-debit, >$50k = full financial disclosure (Form 433). Know which bucket the user is in before calling.",
35
+ "Get the agent's badge number ('IRS ID') at the start of every IRS call — they will give it if asked and it makes follow-up calls vastly faster.",
36
+ "The IRS will NEVER demand immediate payment by gift card, wire, or cryptocurrency. Any such ask = scam. Hang up immediately."
37
+ ],
38
+ "phrases": {
39
+ "opener_payment_plan": "Hi, I'd like to set up an installment agreement. I received notice [NOTICE NUMBER] dated [DATE] for tax year [YEAR] showing a balance of [AMOUNT]. I can afford about [MONTHLY AMOUNT] a month. Can we set that up today?",
40
+ "opener_identity_verification": "Hi, I'm calling about notice [5071C / 4883C / 5747C] dated [DATE]. I need to complete identity verification so my return can be processed. The notice control number is [CONTROL NUMBER]. The taxpayer is on the line.",
41
+ "opener_refund": "Hi, my refund for tax year [YEAR] is past the 21-day window — it's been [N] days since the IRS accepted my e-file. The Where's My Refund tool just says 'still processing'. Can you check the account?",
42
+ "opener_transcript": "Hi, I need a [Return / Account / Wage and Income / Record of Account] transcript for tax year [YEAR]. I tried Get Transcript Online but it [failed / I don't have a Login.gov / IRS account]. Can you order one to be mailed?",
43
+ "ask_agent_id": "Could I get your name and IRS badge number for my records?",
44
+ "stall_documents": "Give me one second — I want to pull the notice up in front of me so I read the numbers correctly.",
45
+ "scam_check": "Just to confirm — you're calling from [INBOUND? if inbound, hang up immediately and call the official notice number back]. The IRS does not initiate first contact by phone, so I want to verify we're on the official line.",
46
+ "graceful_close": "Thank you. Before we hang up, can I confirm: the agreement type, the monthly amount, the payment date each month, when the first payment hits, and any confirmation/case number? And your name and badge again, please."
47
+ },
48
+ "tactics": [
49
+ {
50
+ "name": "Use the notice-specific phone line",
51
+ "when": "Always, if the user has a notice.",
52
+ "script": "The phone number on the notice routes to the team that owns the issue — much faster than the general 1040 line.",
53
+ "priority": 1
54
+ },
55
+ {
56
+ "name": "Authenticate before describing the issue",
57
+ "when": "Once a human picks up.",
58
+ "script": "Be ready to provide: SSN, name, address as filed, filing status, prior-year AGI. The rep cannot discuss any account specifics until authentication is complete.",
59
+ "priority": 2
60
+ },
61
+ {
62
+ "name": "Choose the right installment-agreement tier",
63
+ "when": "Setting up a payment plan.",
64
+ "script": "Match user's balance to the right product: short-term (≤180 days), guaranteed (<$10k), streamlined (<$50k with direct debit), partial-pay (financial hardship, requires 433-F), or non-collectible status (true hardship, requires 433-F). Default to streamlined if it fits — minimal paperwork.",
65
+ "priority": 3
66
+ },
67
+ {
68
+ "name": "Handle identity verification by transferring to the user",
69
+ "when": "ID-verification call.",
70
+ "script": "Get to the right queue, complete preliminary pleasantries, then hand the phone to the user when the rep asks for taxpayer-only answers (SSN, prior-year AGI, knowledge-based-authentication questions). Do not answer those for the user.",
71
+ "priority": 4
72
+ },
73
+ {
74
+ "name": "On a stuck refund, ask the rep to check for review flags",
75
+ "when": "Refund delayed > 21 days.",
76
+ "script": "Common holds: PATH Act (EITC/ACTC), identity verification (CP05/5071C), math-error notice in transit, offset (Treasury Offset Program for child support / student loans), amended-return queue. Ask explicitly: 'Is there a review code or hold on this account?'",
77
+ "priority": 5
78
+ },
79
+ {
80
+ "name": "For transcripts, prefer mail or fax",
81
+ "when": "Transcript request.",
82
+ "script": "Phone reps can mail a transcript to the address of record (5–10 business days). They cannot email it. If urgent, route the user to Get Transcript by Mail or fax to a verified IRS-acceptable destination (lender's secure fax)."
83
+ }
84
+ ],
85
+ "boundaries": [
86
+ "Do NOT advise on tax positions, deductions, credits, or how to amend a return. Refer to a CPA or enrolled agent.",
87
+ "Do NOT impersonate the taxpayer for identity-verification questions.",
88
+ "Do NOT agree to a monthly payment amount the user has not authorized.",
89
+ "Do NOT provide the user's SSN or DOB to any inbound caller claiming to be the IRS — only use the IRS number on a verified notice, called outbound.",
90
+ "Do NOT promise a refund date — even the rep can only estimate.",
91
+ "Do NOT engage with anyone demanding payment by gift card, wire, or crypto — that is definitionally a scam."
92
+ ],
93
+ "success_signals": [
94
+ "Rep authenticates the account and discusses specifics.",
95
+ "Installment agreement is set up with a confirmation number and a defined first-payment date.",
96
+ "Identity verification completes ('Your return is now being processed; allow 6–9 weeks.').",
97
+ "Refund hold is identified and a clear next step provided.",
98
+ "Transcript is ordered with a tracking expectation (5–10 business days by mail)."
99
+ ],
100
+ "failure_signals": [
101
+ "User cannot authenticate (mismatched address / prior-year AGI) — refer to Get Transcript by Mail to recover prior AGI, then retry.",
102
+ "Balance exceeds streamlined threshold and user is unprepared to disclose financials (Form 433-F) — schedule a follow-up after they gather records.",
103
+ "Rep places call on hold > 5 times without progress — likely a wrong-team routing.",
104
+ "Inbound caller claims to be IRS and demands payment — that is a SCAM, end call immediately."
105
+ ],
106
+ "exit_strategy": {
107
+ "on_success": "Capture: agent name + badge, agreement terms (monthly amount, debit date, start date, account-balance snapshot), and confirmation / case number. Verbally repeat the terms back. Calendar each scheduled debit and a check-in 1 week before the first one.",
108
+ "on_failure": "Capture: which authentication element failed, which IRS team would own the next step, and any case number. Provide the user with the exact prep list for the callback (mortgage statement for address verification, prior-year return for AGI, etc.).",
109
+ "follow_ups": [
110
+ "Confirm the first installment debit cleared.",
111
+ "If transcript was ordered, calendar arrival in 10 business days; if not received, call back with the case number.",
112
+ "If identity verification completed, calendar 9 weeks out to check refund / processing status.",
113
+ "If notice CP14 / CP504 / LT11 was active, watch for the next notice and respond before the 30-day deadline."
114
+ ]
115
+ },
116
+ "required_user_info": [
117
+ "Most recent IRS notice (number, date, control number, phone number printed)",
118
+ "SSN, full legal name, current address as filed",
119
+ "Filing status and prior-year AGI",
120
+ "Tax year(s) in question",
121
+ "Balance owed and proposed monthly payment (for installment agreement)",
122
+ "Bank routing / account (for direct-debit IA)",
123
+ "Whether the user has a CPA / EA / attorney on file (Form 2848 POA, if any)"
124
+ ],
125
+ "hang_up_and_call_back_signals": [
126
+ "Inbound call claiming to be IRS — IRS first contact is by mail; hang up and dial the number on the notice.",
127
+ "Demand for gift cards, wire transfer, or crypto — scam; hang up.",
128
+ "Rep cannot authenticate after 2 attempts — gather prior-year AGI via Get Transcript by Mail and retry next business day.",
129
+ "Hold > 90 minutes during tax season — call back at 7:00am local IRS time the next business day.",
130
+ "User cannot stay on the line for identity verification — reschedule when the taxpayer can be present; do not impersonate."
131
+ ],
132
+ "contributed_by": "govt-services-pro agent (v0.9.87 community drop)",
133
+ "updated_at": "2026-05-20T06:09:47Z"
134
+ }
@@ -0,0 +1,134 @@
1
+ {
2
+ "id": "k12-iep-504-enrollment",
3
+ "name": "K-12 Enrollment, Transfer, and IEP / 504 Meeting Request",
4
+ "version": "1.0.0",
5
+ "category": "other",
6
+ "tags": [
7
+ "K-12",
8
+ "IEP",
9
+ "504",
10
+ "enrollment",
11
+ "transfer",
12
+ "special-education",
13
+ "phone-call",
14
+ "education"
15
+ ],
16
+ "description": "Call a K-12 district enrollment office, school principal, or special-education department to enroll a student, transfer between schools (in-district or out-of-district), or request / schedule an IEP or 504 plan meeting — including initial evaluation, annual review, amendment, or due-process disagreements.",
17
+ "disclaimer": "K-12 special education in the U.S. is governed by IDEA (federal) and state implementing law. Parents have substantial procedural rights — Procedural Safeguards must be provided in writing, evaluations must occur within state-mandated timelines, and disagreements have formal resolution options (mediation, due process, OCR complaint). This skill does not constitute legal advice.",
18
+ "context": {
19
+ "when_to_use": "Caregiver needs to (a) enroll a student new to the district, (b) transfer a student in or out (boundary exception, magnet, charter, private placement), (c) request an initial special-education evaluation, (d) schedule an annual or triennial IEP, (e) request an amendment to an existing IEP, (f) push for missed services or compensatory education, or (g) escalate a 504 / IEP disagreement.",
20
+ "preconditions": [
21
+ "Caregiver has: proof of residency (lease, utility bill), child's birth certificate, immunization records, prior school records / transcript / IEP / 504 plan if applicable.",
22
+ "Caregiver can articulate the child's specific needs in observable terms ('struggles with reading multisyllable words', 'has been hospitalized for anxiety twice', 'doesn't make eye contact, scripts').",
23
+ "Caregiver knows the school district's specific policies (district website) — request timelines, transfer windows, central enrollment vs. school enrollment.",
24
+ "If existing IEP: most recent evaluation reports, current IEP document, prior progress notes."
25
+ ],
26
+ "estimated_call_duration_minutes": 25
27
+ },
28
+ "principles": [
29
+ "Put every important request IN WRITING. Verbal requests for evaluation, IEP meetings, or amendments don't start the federal/state clock. A short dated email or signed letter does.",
30
+ "Specific timelines are your friend. State law mandates evaluation timelines (e.g. 60 calendar days from signed consent to IEP) and meeting timelines (annual within 365 days, triennial within 3 years). Cite them.",
31
+ "Procedural Safeguards are a federal document. The district must give them to you in your native language. Ask for them at the first IEP-adjacent conversation.",
32
+ "The IEP is a team document, but parents are equal members. You can request more time, decline to sign, request the meeting be recorded, bring an advocate or attorney, and request a re-convene.",
33
+ "Front-desk and registrar staff can enroll but can't decide special-education eligibility. The Director of Special Education (or 'Pupil Services' / 'Student Services') is the office with authority.",
34
+ "When in dispute: mediation is non-binding and fast, due process is binding and slow, OCR complaints are free. Most disputes resolve at the building or director level if you escalate clearly."
35
+ ],
36
+ "phrases": {
37
+ "opener_enrollment": "Hi, I'd like to enroll my child in [school]. They're in grade [X]. We're [new to the district / transferring from / coming from a private school / homeschooled]. What's the enrollment process and what documents do you need?",
38
+ "opener_transfer": "Hi, I'd like to request a transfer from [school A] to [school B] for [grade X]. The reason is [academic fit / sibling / safety / IEP services]. What's the process — a boundary exception, an open-enrollment application, or a magnet / charter lottery?",
39
+ "request_evaluation": "I'm formally requesting a special-education evaluation for my child for suspected [SLD / ADHD / Autism / Speech / OHI]. I'm following up this call with a written request today. Could you confirm the 60-day clock starts from my signed consent?",
40
+ "request_IEP_meeting": "I'd like to request an IEP team meeting to [annually review / amend / discuss progress / discuss placement]. Could we schedule within the next 30 days? I'd like all required members present: general-ed teacher, special-ed teacher, district representative, and [related services as applicable].",
41
+ "request_504": "My child has a documented disability — [condition with provider name] — that affects [major life activity]. I'm requesting a 504 plan to provide [accommodations]. What's the process?",
42
+ "ask_procedural_safeguards": "Could you send me the Procedural Safeguards Notice in [language] before our meeting? I'd like to review my rights.",
43
+ "ask_for_advocate_or_recording": "I'll be bringing [name] as an advocate / attorney to the meeting. I'd also like to record the meeting — could you confirm the district's policy on recording?",
44
+ "ask_for_director": "Could I be connected with the Director of Special Education or Pupil Services? I want to make sure my requests are routed correctly and that timelines are being met.",
45
+ "compensatory_ed_request": "Services on the IEP have not been delivered as written from [date] to [date]. I'd like to discuss compensatory education to make my child whole for the missed services.",
46
+ "graceful_close_success": "Thank you. To confirm: enrollment / evaluation / meeting is set for [date], documents needed are [list], and the next step is [action]. May I have your email so I can send the written confirmation today?"
47
+ },
48
+ "tactics": [
49
+ {
50
+ "name": "Convert every important ask to writing same-day",
51
+ "when": "After any phone request for evaluation, IEP, amendment, transfer.",
52
+ "script": "Use phone to schedule and to soften, then email the same day: 'As discussed on [date] at [time] with [name], I am requesting [evaluation / IEP meeting / etc.]. Please confirm receipt.' This is what starts legal timelines.",
53
+ "priority": 1
54
+ },
55
+ {
56
+ "name": "Get Procedural Safeguards before any IEP-adjacent meeting",
57
+ "when": "Initial evaluation, annual review, triennial, amendment.",
58
+ "script": "Use `ask_procedural_safeguards`. The Notice describes your right to consent, refuse, request independent evaluation at district expense (IEE), mediation, due process, etc.",
59
+ "priority": 2
60
+ },
61
+ {
62
+ "name": "Ask for the right office, not just the school",
63
+ "when": "Special-education request beyond what the building principal can decide.",
64
+ "script": "Use `ask_for_director`. Building staff implement; the district's Director of Special Education / Pupil Services / Student Services has program authority and budget. Most disputes resolve at that level.",
65
+ "priority": 3
66
+ },
67
+ {
68
+ "name": "Specify required IEP team members",
69
+ "when": "Scheduling an IEP meeting.",
70
+ "script": "Use `request_IEP_meeting`. Federal law requires specific roles. If the district shows up missing a general-ed teacher or a district representative with authority to commit resources, the meeting is procedurally defective — you can ask to reconvene.",
71
+ "priority": 4
72
+ },
73
+ {
74
+ "name": "Ask about advocacy and recording at the front end",
75
+ "when": "Before an IEP meeting.",
76
+ "script": "Use `ask_for_advocate_or_recording`. Some districts allow recording; some require notice. Advocates / attorneys are always allowed. Bringing either is not adversarial; it's standard.",
77
+ "priority": 5
78
+ },
79
+ {
80
+ "name": "Track missed services and ask for compensatory education",
81
+ "when": "Services on the IEP haven't been delivered (staff shortage, distance learning, scheduling).",
82
+ "script": "Use `compensatory_ed_request`. Districts owe make-up services when minutes-per-week aren't delivered. Most districts don't volunteer this; parents must ask. Tally minutes by week and present them.",
83
+ "priority": 6
84
+ },
85
+ {
86
+ "name": "Use mediation before due process",
87
+ "when": "Disagreement on placement, services, or eligibility.",
88
+ "script": "Mediation is fast, free, non-binding, and surprisingly effective. Due process is binding but expensive and slow. Try mediation first unless time-sensitive (e.g. denied access)."
89
+ }
90
+ ],
91
+ "boundaries": [
92
+ "Do NOT consent to anything in the meeting if you're unsure. You can sign 'attended' without consenting to placement or services. Take the document home, review it, and respond in writing.",
93
+ "Do NOT accept verbal denials of evaluation. If the district refuses to evaluate, they must issue a Prior Written Notice (PWN) with rationale and your appeal rights.",
94
+ "Do NOT skip the written follow-up to phone calls — phone alone doesn't start clocks.",
95
+ "Do NOT bring the child to a contentious meeting unless age-appropriate and prepared.",
96
+ "Do NOT make personal accusations about staff in writing — the record is discoverable. Stick to facts and timelines."
97
+ ],
98
+ "success_signals": [
99
+ "Written confirmation of evaluation consent date with 60-day clock acknowledged.",
100
+ "IEP meeting scheduled within 30 days with all required members.",
101
+ "Director of Special Education engaged directly.",
102
+ "Compensatory education calendar produced.",
103
+ "Procedural Safeguards delivered in the family's language."
104
+ ],
105
+ "failure_signals": [
106
+ "District refuses evaluation without issuing Prior Written Notice — escalate to OCR / state DOE.",
107
+ "Evaluation not completed within state timeline — file a state complaint (free, fast).",
108
+ "IEP meeting held without required members — request reconvene.",
109
+ "Placement decided unilaterally without team input — procedural violation.",
110
+ "Compensatory education refused despite documented missed minutes — escalate to mediation / due process."
111
+ ],
112
+ "exit_strategy": {
113
+ "on_success": "Confirm the date and required actions. Send written follow-up the same day. Save every document. Calendar timelines (evaluation due, IEP due, services start).",
114
+ "on_failure": "Identify whether the issue is procedural (timeline / missing member) or substantive (placement / services). Procedural: state complaint is fast and free. Substantive: mediation, then due process. Always consider OCR for discrimination components.",
115
+ "follow_ups": [
116
+ "Email a written record of the call within 24 hours.",
117
+ "Calendar evaluation 60-day deadline.",
118
+ "Save every PWN, evaluation, IEP, progress report. They form the file.",
119
+ "Connect with a free Parent Training and Information Center (PTI) for advocacy support — every state has one funded under IDEA."
120
+ ]
121
+ },
122
+ "required_user_info": [
123
+ "Child's full name, DOB, grade, current school",
124
+ "Proof of residency (lease, utility, mortgage)",
125
+ "Birth certificate and immunization records",
126
+ "Prior school records, transcripts, IEPs, 504 plans, evaluations",
127
+ "Specific concerns in observable terms",
128
+ "Any existing diagnoses + provider names",
129
+ "Caregiver's preferred language for documents",
130
+ "Whether an advocate or attorney is involved"
131
+ ],
132
+ "contributed_by": "education-admin agent (v0.9.87 community drop)",
133
+ "updated_at": "2026-05-20T06:09:47Z"
134
+ }