@agenticmail/core 0.9.32 → 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.
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/skills/built-in/accommodation-intake.json +132 -0
- package/dist/skills/built-in/add-driver-vehicle-household.json +133 -0
- package/dist/skills/built-in/admissions-waitlist-followup.json +129 -0
- package/dist/skills/built-in/anchor-and-counter-anchor.json +161 -0
- package/dist/skills/built-in/anti-social-engineering.json +153 -0
- package/dist/skills/built-in/anything-else-sweep.json +120 -0
- package/dist/skills/built-in/apologise-correctly.json +126 -0
- package/dist/skills/built-in/ask-for-in-person-meeting.json +114 -0
- package/dist/skills/built-in/attorney-new-client-intake.json +133 -0
- package/dist/skills/built-in/bant-discovery-call.json +125 -0
- package/dist/skills/built-in/book-new-patient-appointment.json +131 -0
- package/dist/skills/built-in/bookmark-close.json +113 -0
- package/dist/skills/built-in/bypass-i-am-the-supervisor.json +130 -0
- package/dist/skills/built-in/bypass-scripted-rep.json +142 -0
- package/dist/skills/built-in/calibrated-questions.json +155 -0
- package/dist/skills/built-in/call-911-fire.json +118 -0
- package/dist/skills/built-in/call-911-medical-emergency.json +126 -0
- package/dist/skills/built-in/call-911-violent-crime-in-progress.json +133 -0
- package/dist/skills/built-in/call-988-crisis-line.json +106 -0
- package/dist/skills/built-in/call-poison-control.json +115 -0
- package/dist/skills/built-in/call-police-non-emergency.json +114 -0
- package/dist/skills/built-in/call-with-person-in-distress.json +133 -0
- package/dist/skills/built-in/cancel-cable-fiber-no-retention-loop.json +156 -0
- package/dist/skills/built-in/cancel-policy-clean.json +130 -0
- package/dist/skills/built-in/capture-rep-identity.json +113 -0
- package/dist/skills/built-in/childcare-provider-intake.json +157 -0
- package/dist/skills/built-in/close-account-no-residual-fees.json +127 -0
- package/dist/skills/built-in/close-on-concrete-next-step.json +116 -0
- package/dist/skills/built-in/confirm-agreement-readback.json +134 -0
- package/dist/skills/built-in/confirm-next-step-ownership.json +113 -0
- package/dist/skills/built-in/contractor-estimate-request.json +142 -0
- package/dist/skills/built-in/court-clerk-administrative-inquiry.json +119 -0
- package/dist/skills/built-in/cpa-intake-call.json +134 -0
- package/dist/skills/built-in/day-of-flight-cancellation.json +127 -0
- package/dist/skills/built-in/de-escalate-angry-rep.json +114 -0
- package/dist/skills/built-in/decline-unsolicited-pitch.json +110 -0
- package/dist/skills/built-in/deliver-difficult-news.json +122 -0
- package/dist/skills/built-in/detect-fake-escalation-loops.json +140 -0
- package/dist/skills/built-in/detect-lies-and-contradictions.json +139 -0
- package/dist/skills/built-in/dispute-billing-code-eob.json +147 -0
- package/dist/skills/built-in/dispute-charge-reg-e-reg-z.json +131 -0
- package/dist/skills/built-in/dispute-credit-report-via-bank.json +128 -0
- package/dist/skills/built-in/dispute-denied-claim.json +143 -0
- package/dist/skills/built-in/dispute-security-deposit.json +130 -0
- package/dist/skills/built-in/dispute-usage-spike-meter-reread.json +120 -0
- package/dist/skills/built-in/dmv-vehicle-registration-renewal.json +120 -0
- package/dist/skills/built-in/document-call-promises.json +145 -0
- package/dist/skills/built-in/early-lease-termination.json +126 -0
- package/dist/skills/built-in/elite-line-escalation.json +107 -0
- package/dist/skills/built-in/equipment-swap-cable-router-modem.json +126 -0
- package/dist/skills/built-in/eu261-uk261-dot-compensation.json +113 -0
- package/dist/skills/built-in/file-fnol-auto-claim.json +130 -0
- package/dist/skills/built-in/file-habitability-complaint.json +115 -0
- package/dist/skills/built-in/financial-aid-appeal.json +128 -0
- package/dist/skills/built-in/follow-up-stalled-claim.json +118 -0
- package/dist/skills/built-in/get-past-gatekeeper.json +115 -0
- package/dist/skills/built-in/get-past-tier-1-script.json +130 -0
- package/dist/skills/built-in/handle-callback-stall.json +120 -0
- package/dist/skills/built-in/handle-outsourced-no-escalation.json +138 -0
- package/dist/skills/built-in/handle-send-me-an-email-deflection.json +112 -0
- package/dist/skills/built-in/handle-time-pressure.json +159 -0
- package/dist/skills/built-in/health-prior-auth-appeal.json +131 -0
- package/dist/skills/built-in/hoa-dispute.json +123 -0
- package/dist/skills/built-in/hold-time-strategy.json +137 -0
- package/dist/skills/built-in/hold-warmth-cold-rep.json +114 -0
- package/dist/skills/built-in/hotel-walk-over-recovery.json +114 -0
- package/dist/skills/built-in/humour-when-it-lands.json +127 -0
- package/dist/skills/built-in/i20-visa-dso.json +134 -0
- package/dist/skills/built-in/invoke-regulator-firmly.json +137 -0
- package/dist/skills/built-in/irrops-waiver-awareness.json +103 -0
- package/dist/skills/built-in/irs-payment-plan-setup.json +134 -0
- package/dist/skills/built-in/k12-iep-504-enrollment.json +134 -0
- package/dist/skills/built-in/late-add-petition.json +128 -0
- package/dist/skills/built-in/leave-of-absence-deferral.json +130 -0
- package/dist/skills/built-in/lock-in-terms-verbally.json +127 -0
- package/dist/skills/built-in/match-energy-keep-goal.json +120 -0
- package/dist/skills/built-in/medical-records-transfer.json +138 -0
- package/dist/skills/built-in/medical-withdrawal.json +131 -0
- package/dist/skills/built-in/mid-call-evidence-collection.json +159 -0
- package/dist/skills/built-in/mirror-technique.json +145 -0
- package/dist/skills/built-in/missed-connection-distressed-passenger.json +111 -0
- package/dist/skills/built-in/mortgage-loan-hardship.json +130 -0
- package/dist/skills/built-in/move-out-walkthrough.json +114 -0
- package/dist/skills/built-in/multi-channel-escalation.json +141 -0
- package/dist/skills/built-in/multi-issue-tradeoffs.json +155 -0
- package/dist/skills/built-in/negotiate-rent-renewal.json +123 -0
- package/dist/skills/built-in/no-as-opening.json +154 -0
- package/dist/skills/built-in/not-sound-like-spam-dialer.json +118 -0
- package/dist/skills/built-in/outage-credit-applied.json +127 -0
- package/dist/skills/built-in/passport-expedite-or-appointment.json +123 -0
- package/dist/skills/built-in/pediatric-school-forms.json +141 -0
- package/dist/skills/built-in/personal-trainer-discovery.json +138 -0
- package/dist/skills/built-in/pharmacy-callback.json +134 -0
- package/dist/skills/built-in/pivot-mid-call.json +141 -0
- package/dist/skills/built-in/port-mobile-number-survive-retention.json +127 -0
- package/dist/skills/built-in/prescription-refill-followup.json +132 -0
- package/dist/skills/built-in/push-past-invented-policy.json +159 -0
- package/dist/skills/built-in/rapport-opening-30-seconds.json +130 -0
- package/dist/skills/built-in/reach-executive-office.json +137 -0
- package/dist/skills/built-in/read-vocal-cues.json +139 -0
- package/dist/skills/built-in/read-vocal-tone.json +159 -0
- package/dist/skills/built-in/realestate-agent-vetting.json +144 -0
- package/dist/skills/built-in/receive-difficult-news.json +115 -0
- package/dist/skills/built-in/recording-claim-conversation-legally.json +121 -0
- package/dist/skills/built-in/recover-summary-refusal.json +121 -0
- package/dist/skills/built-in/reengage-ghosted-lead.json +115 -0
- package/dist/skills/built-in/referral-followup-without-burning.json +116 -0
- package/dist/skills/built-in/referral-prior-authorization.json +130 -0
- package/dist/skills/built-in/refuse-the-split.json +142 -0
- package/dist/skills/built-in/refuse-upsell-at-close.json +114 -0
- package/dist/skills/built-in/rental-car-counter-defense.json +116 -0
- package/dist/skills/built-in/rental-scam-report.json +125 -0
- package/dist/skills/built-in/replace-lost-stolen-card-expedited.json +139 -0
- package/dist/skills/built-in/report-downed-line-gas-smell-911-triage.json +130 -0
- package/dist/skills/built-in/report-elder-or-child-abuse.json +117 -0
- package/dist/skills/built-in/report-fbi-tip.json +109 -0
- package/dist/skills/built-in/report-fraud-ic3-or-ftc.json +117 -0
- package/dist/skills/built-in/report-fraudulent-transaction.json +126 -0
- package/dist/skills/built-in/report-power-outage-get-etr.json +116 -0
- package/dist/skills/built-in/report-urgent-maintenance.json +123 -0
- package/dist/skills/built-in/request-credit-limit-increase.json +126 -0
- package/dist/skills/built-in/request-supervisor-gracefully.json +129 -0
- package/dist/skills/built-in/request-welfare-check.json +127 -0
- package/dist/skills/built-in/request-written-confirmation.json +113 -0
- package/dist/skills/built-in/reschedule-appointment.json +121 -0
- package/dist/skills/built-in/reset-by-callback.json +143 -0
- package/dist/skills/built-in/resist-urgency-manipulation.json +152 -0
- package/dist/skills/built-in/revisit-totaling-decision.json +125 -0
- package/dist/skills/built-in/roadside-assistance-dispatch.json +132 -0
- package/dist/skills/built-in/roommate-replacement.json +121 -0
- package/dist/skills/built-in/same-day-urgent-appointment.json +130 -0
- package/dist/skills/built-in/schedule-rental-viewing.json +111 -0
- package/dist/skills/built-in/service-move-shutoff-start-no-overlap.json +129 -0
- package/dist/skills/built-in/social-security-replacement-card.json +122 -0
- package/dist/skills/built-in/specialist-doctor-booking.json +136 -0
- package/dist/skills/built-in/spot-bait-and-switch.json +155 -0
- package/dist/skills/built-in/stop-recurring-ach.json +127 -0
- package/dist/skills/built-in/switch-postpaid-to-prepaid-mid-cycle.json +130 -0
- package/dist/skills/built-in/tactical-empathy-labeling.json +147 -0
- package/dist/skills/built-in/therapist-intake-call.json +133 -0
- package/dist/skills/built-in/train-cancellation-refund-rebook.json +104 -0
- package/dist/skills/built-in/transcript-request.json +128 -0
- package/dist/skills/built-in/travel-insurance-claim-on-the-road.json +114 -0
- package/dist/skills/built-in/travel-notice-unlock-card.json +119 -0
- package/dist/skills/built-in/unemployment-claim-status-and-appeal.json +123 -0
- package/dist/skills/built-in/uscis-case-status-and-biometrics.json +125 -0
- package/dist/skills/built-in/utility-deposit-waiver.json +122 -0
- package/dist/skills/built-in/utility-payment-plan-avoid-disconnect.json +122 -0
- package/dist/skills/built-in/verify-insurance-coverage-pre-procedure.json +140 -0
- package/dist/skills/built-in/verify-out-of-network-coverage.json +129 -0
- package/dist/skills/built-in/veteran-benefits-community-college.json +134 -0
- package/dist/skills/built-in/veterinary-new-patient-intake.json +135 -0
- package/dist/skills/built-in/visa-boarding-denial-recovery.json +115 -0
- package/dist/skills/built-in/vital-records-certificate-copy.json +120 -0
- package/dist/skills/built-in/voicemail-that-gets-called-back.json +114 -0
- package/dist/skills/built-in/voter-registration-and-ballot.json +124 -0
- package/dist/skills/built-in/walkaway-threats.json +159 -0
- package/dist/skills/built-in/wedding-vendor-intake.json +149 -0
- package/dist/skills/built-in/when-to-stop-being-polite.json +161 -0
- package/dist/skills/built-in/wire-funds-safely.json +129 -0
- package/package.json +1 -1
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "replace-lost-stolen-card-expedited",
|
|
3
|
+
"name": "Replace a Lost or Stolen Card and Expedite Delivery",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"category": "finance-admin",
|
|
6
|
+
"tags": [
|
|
7
|
+
"lost-card",
|
|
8
|
+
"stolen-card",
|
|
9
|
+
"card-replacement",
|
|
10
|
+
"expedited-shipping",
|
|
11
|
+
"card-lock",
|
|
12
|
+
"phone-call",
|
|
13
|
+
"banking-finance"
|
|
14
|
+
],
|
|
15
|
+
"description": "Call the card issuer to (a) immediately lock or cancel a lost or stolen card, (b) order a replacement with the correct shipping speed, and (c) deal with the gap-period plumbing — recurring charges, push-provisioning to mobile wallets, virtual card numbers.",
|
|
16
|
+
"disclaimer": "Not financial or tax advice. Agent must NEVER share SSN unprompted, NEVER initiate wires above the operator's stated cap, NEVER agree to a hardship plan / settlement that affects credit without explicit ask_operator approval.",
|
|
17
|
+
"context": {
|
|
18
|
+
"when_to_use": "Card is missing (left in a cab, stolen wallet, lost in luggage). Speed matters: each hour increases fraud-loss exposure even though Reg E / Reg Z cap user liability. Mid-trip card-loss has the extra wrinkle that the user may need expedited international delivery or a temporary virtual card to keep functioning.",
|
|
19
|
+
"preconditions": [
|
|
20
|
+
"User can confirm: physically missing vs definitely stolen (matters for fraud reporting).",
|
|
21
|
+
"User has the card account info (last 4 from statement / app).",
|
|
22
|
+
"User is calling from the number on the back of the card or the bank's mobile app.",
|
|
23
|
+
"User knows their current address and any temporary shipping address (e.g., hotel).",
|
|
24
|
+
"User has a list of recurring charges that were on the lost card (Netflix, gym, utilities — all need to be updated to the new number)."
|
|
25
|
+
],
|
|
26
|
+
"estimated_call_duration_minutes": 15
|
|
27
|
+
},
|
|
28
|
+
"principles": [
|
|
29
|
+
"Lock first, talk later. Many bank apps have a 'lock card' toggle that pauses authorizations instantly — use it BEFORE the phone call if there's any delay reaching a human.",
|
|
30
|
+
"Distinguish LOST from STOLEN. Stolen often triggers a fraud-report workflow even if there are no unauthorized charges yet; lost is a simple replace.",
|
|
31
|
+
"Ask for push-provisioning. Most modern issuers can push a digital card number to Apple Pay / Google Pay / Samsung Pay within minutes of the call, so the user can keep transacting before the physical card arrives.",
|
|
32
|
+
"Or ask for a VIRTUAL CARD NUMBER (VCN) — some issuers (Cap One Eno, Citi Virtual Card, etc.) generate a number you can use immediately online while waiting for plastic.",
|
|
33
|
+
"Expedited shipping is usually FREE if the card was lost/stolen — never pay $25 for FedEx Overnight if you ask politely.",
|
|
34
|
+
"Recurring charges break when the card number changes — unless the issuer participates in 'card account updater' programs. Some merchants get the new number automatically; some don't. Plan to manually update the rest."
|
|
35
|
+
],
|
|
36
|
+
"phrases": {
|
|
37
|
+
"opener": "Hi, I need to report my card as [lost / stolen] and order a replacement. Before we do anything else, can you immediately lock or cancel the current card number?",
|
|
38
|
+
"lost_vs_stolen": "To clarify: the card is [definitely stolen — my wallet was taken / missing — I don't believe it was stolen, I likely misplaced it]. Should this be filed as a fraud case or a simple replacement?",
|
|
39
|
+
"request_push_provisioning": "While the physical card ships, can you push the new card number to my Apple Pay / Google Pay so I can use it immediately?",
|
|
40
|
+
"request_virtual_card": "Does the card support a virtual card number I can use for online purchases right now while the plastic arrives?",
|
|
41
|
+
"expedited_shipping_ask": "Given this is a [lost / stolen] situation, can you expedite shipping at no charge? When would I have the new card?",
|
|
42
|
+
"alternate_address": "I'm currently at [hotel / temporary address] until [date]. Can the card ship there, and if so, what verification do you need at that address?",
|
|
43
|
+
"check_recurring_updater": "Will my recurring merchants automatically receive the new card number via the network's account-updater service, or do I need to update each one manually? Can you give me a list of which merchants are covered?",
|
|
44
|
+
"graceful_close": "Thanks. Can you confirm: old card cancelled, new card ordered with expedited delivery to [address], expected arrival [date], digital card pushed to wallet, virtual card number provided if applicable, and give me a reference number plus your name?"
|
|
45
|
+
},
|
|
46
|
+
"tactics": [
|
|
47
|
+
{
|
|
48
|
+
"name": "Lock first via the app",
|
|
49
|
+
"when": "If the bank's app supports it.",
|
|
50
|
+
"script": "Open the app, toggle 'lock card' or 'report missing' BEFORE the call. This stops new authorizations even if you wait on hold for 20 minutes.",
|
|
51
|
+
"priority": 1
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"name": "Lock-on-call immediately",
|
|
55
|
+
"when": "First substantive turn.",
|
|
56
|
+
"script": "Use `opener`. Cancellation is irreversible — but the loss exposure from waiting longer is larger than the inconvenience of cancelling.",
|
|
57
|
+
"priority": 2
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "Classify lost vs stolen",
|
|
61
|
+
"when": "After lock.",
|
|
62
|
+
"script": "Use `lost_vs_stolen`. Stolen + any unauthorized charges → also use `report-fraudulent-transaction` workflow.",
|
|
63
|
+
"priority": 3
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"name": "Bridge the gap — push to wallet",
|
|
67
|
+
"when": "Replacement is ordered.",
|
|
68
|
+
"script": "Use `request_push_provisioning`. Apple Pay / Google Pay / Samsung Pay typically activate within minutes — the user can buy coffee before they walk out of the building.",
|
|
69
|
+
"priority": 4
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"name": "Bridge the gap — virtual card",
|
|
73
|
+
"when": "User has online purchases pending.",
|
|
74
|
+
"script": "Use `request_virtual_card`. VCNs let the user pay online (or a hotel hold) right away."
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"name": "Expedite for free",
|
|
78
|
+
"when": "Discussing shipping.",
|
|
79
|
+
"script": "Use `expedited_shipping_ask`. 1-2 day shipping is usually free on lost/stolen replacements — they only charge it if you don't ask."
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"name": "Handle shipping address logistics",
|
|
83
|
+
"when": "User is traveling or has moved.",
|
|
84
|
+
"script": "Use `alternate_address`. Bank may require verification (ID at delivery, secondary phone, security question) — ask what's required."
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"name": "Map recurring updates",
|
|
88
|
+
"when": "Card is being replaced.",
|
|
89
|
+
"script": "Use `check_recurring_updater`. Ask which networks (Visa Account Updater, Mastercard ABU) are subscribed AND which merchants are NOT — they need manual updating."
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"name": "Audit trail",
|
|
93
|
+
"when": "Wrapping the call.",
|
|
94
|
+
"script": "Use `graceful_close`. Confirmation of cancellation + replacement + delivery + digital tools + reference number."
|
|
95
|
+
}
|
|
96
|
+
],
|
|
97
|
+
"boundaries": [
|
|
98
|
+
"Do NOT cancel without a replacement ordered if the card is needed for recurring critical bills — coordinate timing.",
|
|
99
|
+
"Do NOT have the card shipped to an unverified third-party address — fraud risk; if user is traveling, use a hotel with the user's name on the reservation, or hold-at-FedEx.",
|
|
100
|
+
"Do NOT share full SSN; last 4 plus card info is sufficient.",
|
|
101
|
+
"Do NOT verify identity by reading back a one-time code the bank just texted (legitimate reps will never ask).",
|
|
102
|
+
"Do NOT close the call without reference number and an expected delivery date.",
|
|
103
|
+
"Do NOT pay for expedited shipping without asking for it free first."
|
|
104
|
+
],
|
|
105
|
+
"success_signals": [
|
|
106
|
+
"Old card number cancelled before the call ends.",
|
|
107
|
+
"New card ordered, expedited delivery free.",
|
|
108
|
+
"Digital card pushed to wallet within minutes.",
|
|
109
|
+
"Virtual card number issued (if needed).",
|
|
110
|
+
"Account-updater coverage understood for recurring merchants.",
|
|
111
|
+
"Reference number issued."
|
|
112
|
+
],
|
|
113
|
+
"failure_signals": [
|
|
114
|
+
"Rep refuses expedited shipping at no charge — escalate to supervisor or use the mobile-wallet push as the bridge.",
|
|
115
|
+
"Bank doesn't support push-provisioning AND user is traveling without backup card.",
|
|
116
|
+
"Alternate address can't be verified (escalate or use known-good address).",
|
|
117
|
+
"Account is flagged for suspended status — escalate to fraud/account services."
|
|
118
|
+
],
|
|
119
|
+
"exit_strategy": {
|
|
120
|
+
"on_success": "Confirm reference number, new card delivery date, digital-wallet card active. Surface to operator the list of recurring merchants that need manual updating. Calendar to do that within 48 hours.",
|
|
121
|
+
"on_failure": "If delivery fails or address verification blocks: try in-branch pickup (some banks support this). If push-provisioning fails: use a backup card and accept the gap. If the account is suspended: escalate to a fraud supervisor and request a written summary of the suspension reason.",
|
|
122
|
+
"follow_ups": [
|
|
123
|
+
"Day +1: confirm digital card works for a small test purchase.",
|
|
124
|
+
"Day +2 / +3: confirm physical card arrived.",
|
|
125
|
+
"Day +5: manually update each recurring merchant NOT covered by account-updater.",
|
|
126
|
+
"Day +30: pull statement to verify no zombie charges from the old card."
|
|
127
|
+
]
|
|
128
|
+
},
|
|
129
|
+
"required_user_info": [
|
|
130
|
+
"Card last 4",
|
|
131
|
+
"Lost or stolen classification",
|
|
132
|
+
"Current shipping address (home or temporary)",
|
|
133
|
+
"List of recurring merchants on this card",
|
|
134
|
+
"Mobile wallet preference (Apple/Google/Samsung Pay)",
|
|
135
|
+
"Backup payment method available during the gap"
|
|
136
|
+
],
|
|
137
|
+
"contributed_by": "banking-finance agent (v0.9.87 community drop)",
|
|
138
|
+
"updated_at": "2026-05-20T06:09:47Z"
|
|
139
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "report-downed-line-gas-smell-911-triage",
|
|
3
|
+
"name": "Report a Downed Line or Gas Smell — 911 vs. Utility Hotline Triage",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"category": "customer-service",
|
|
6
|
+
"tags": [
|
|
7
|
+
"utility",
|
|
8
|
+
"emergency",
|
|
9
|
+
"downed-line",
|
|
10
|
+
"gas-leak",
|
|
11
|
+
"911",
|
|
12
|
+
"safety",
|
|
13
|
+
"phone-call",
|
|
14
|
+
"utility-telecom"
|
|
15
|
+
],
|
|
16
|
+
"description": "Decide in the first 30 seconds whether a downed power line, gas smell, or other utility hazard is a 911 call, a utility emergency-hotline call, or both — and place the call(s) in the right order with the right information so dispatch reaches the right team fast.",
|
|
17
|
+
"disclaimer": "This skill saves lives. Do NOT delegate the decision to an AI agent — if the user reports any safety hazard, the AI should immediately advise the user to leave the area and call 911 themselves. The skill below describes what to say WHEN the user (or the agent assisting them remotely) is making those calls. If in any doubt: 911 first, utility second.",
|
|
18
|
+
"context": {
|
|
19
|
+
"when_to_use": "Any of: a downed wire (whether or not sparking), a wire across a vehicle / fence / pool, a gas smell indoors or outdoors, a 'rotten egg' / mercaptan odor, a carbon-monoxide alarm sounding, visible flame from a meter or transformer, water main break flooding a structure, or any pole fire / transformer fire.",
|
|
20
|
+
"preconditions": [
|
|
21
|
+
"User is in a SAFE LOCATION before making non-emergency calls (away from the hazard, outdoors if gas, well clear if downed line).",
|
|
22
|
+
"Phone has cellular signal — if landline is the only option and there's a gas smell, leave the structure first and use a neighbor's phone or cell outside.",
|
|
23
|
+
"Knowledge of the precise address or nearest cross street.",
|
|
24
|
+
"Description of the hazard (what, where, how long present, any visible damage or victims)."
|
|
25
|
+
],
|
|
26
|
+
"estimated_call_duration_minutes": 8
|
|
27
|
+
},
|
|
28
|
+
"principles": [
|
|
29
|
+
"SAFETY FIRST. Move to a safe location before any call. For gas smell indoors: leave the building, do NOT operate light switches, garage doors, or anything that sparks (including the phone — leave, then dial). For downed wire: assume it's energised, stay at least 35 feet (10m) away, keep others back, never approach a vehicle in contact with a wire.",
|
|
30
|
+
"911 IS THE DEFAULT for any hazard with immediate life-safety risk: visible flame, downed wire near people / vehicles / structures, gas leak inside a building, CO alarm with symptomatic occupants, sparking transformer near combustibles. 911 dispatches fire/EMS AND co-notifies the utility — they have direct lines.",
|
|
31
|
+
"UTILITY EMERGENCY HOTLINE is the right first call only for hazards with NO immediate life-safety risk: a downed wire in an isolated rural field with nobody near, a faint outdoor gas odor at a meter, water main break with no people in danger. When in doubt, 911.",
|
|
32
|
+
"If you call 911 FIRST, you do NOT also need to call the utility immediately — 911 dispatch will. But call the utility within 30-60 minutes to (a) confirm they got the notification and (b) get a ticket number for follow-up.",
|
|
33
|
+
"Recognise wrong-queue: the utility's general customer service line is NOT the emergency hotline. Utilities publish a separate gas-emergency number (often 1-800-something) — use that, not the billing line. If you accidentally land in general care, say 'I have an emergency — gas leak / downed line' and they will transfer you immediately. Stay on the line; do NOT hang up to redial.",
|
|
34
|
+
"Be CONCRETE on the call. Address, what you see, how many people are or may be in danger, whether anyone is hurt. Reps and 911 dispatchers parse keywords — 'downed wire across a car' triggers a different response than 'a wire on the ground'."
|
|
35
|
+
],
|
|
36
|
+
"phrases": {
|
|
37
|
+
"opener_911": "This is an emergency. I'm reporting [a downed power line / a gas leak / a transformer fire / a CO alarm with symptoms] at [precise address or cross street]. [Number] people may be at risk. The hazard started [time]. Nobody is touching the wire / nobody is in the building / [status of victims].",
|
|
38
|
+
"opener_utility_hotline": "I'm reporting [the hazard] at [address]. Not an active life-safety emergency, but I want it reported and to get a crew dispatched. Started [time]. I'm calling from a safe distance.",
|
|
39
|
+
"opener_post_911": "Hi, I already called 911 — fire / police are on the way. I'm following up with the utility to make sure you also have a ticket. The hazard is [description] at [address]. Can you confirm the dispatch and give me a ticket number?",
|
|
40
|
+
"queue_check_emergency": "Quick — am I on the emergency / gas-emergency line, or general customer service? If general, I need to be transferred to emergency immediately — there's [hazard] at [address].",
|
|
41
|
+
"describe_hazard": "Specifically what I see: [wire down / wire arcing / wire on a vehicle / strong rotten-egg smell / flame at meter / CO alarm sounding / etc.]. Conditions: [raining / windy / vehicles passing / structures nearby]. People: [nobody nearby / N people sheltered at [location] / N people I cannot account for].",
|
|
42
|
+
"ask_eta": "What's the ETA for a crew? I want to keep people back — should I expect minutes or longer?",
|
|
43
|
+
"ask_evacuation_radius": "How far back should I keep people? I'm currently at about [distance]. Should I widen or evacuate any structures?",
|
|
44
|
+
"ask_ticket": "Can I get a ticket / incident number? I'll be onsite keeping people back until crews arrive.",
|
|
45
|
+
"graceful_close": "Understood — ticket [number], crew ETA [time], evacuation distance [feet/meters]. I'll stay clear and keep others back."
|
|
46
|
+
},
|
|
47
|
+
"tactics": [
|
|
48
|
+
{
|
|
49
|
+
"name": "Move to safety BEFORE calling",
|
|
50
|
+
"when": "Before any call.",
|
|
51
|
+
"script": "For gas leak indoors: exit the building, do not flip switches, do not use door openers — those can spark. For downed wire: back away to ≥35 feet (10m). For CO alarm: leave the structure, take occupants outside, count heads. THEN call.",
|
|
52
|
+
"priority": 1
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"name": "Default to 911 for life-safety risk",
|
|
56
|
+
"when": "Downed wire near people / structures / vehicles, gas leak indoors, transformer fire near combustibles, CO alarm with symptoms, anything sparking.",
|
|
57
|
+
"script": "Use `opener_911`. 911 co-notifies the utility — do not delay to find the utility's number first.",
|
|
58
|
+
"priority": 2
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"name": "Utility hotline first only for isolated, non-life-safety hazards",
|
|
62
|
+
"when": "Wire down in an isolated field with no road / no people, faint outdoor odor at a meter, water main break with no structures threatened.",
|
|
63
|
+
"script": "Use `opener_utility_hotline`. Use the dedicated emergency-hotline number, NOT general customer service.",
|
|
64
|
+
"priority": 3
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"name": "If you landed in the wrong queue, transfer DON'T redial",
|
|
68
|
+
"when": "You hit general customer service with an emergency.",
|
|
69
|
+
"script": "Use `queue_check_emergency`. State the emergency explicitly — that triggers an immediate transfer to the gas-emergency / outage-dispatch queue without losing the call. Redialling loses 2-5 minutes.",
|
|
70
|
+
"priority": 4
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"name": "Describe concretely",
|
|
74
|
+
"when": "First substantive turn with dispatch.",
|
|
75
|
+
"script": "Use `describe_hazard`. Dispatchers triage by keywords — specifics like 'wire across a vehicle with occupants' vs. 'wire on grass' produce different crew loadouts and priority.",
|
|
76
|
+
"priority": 5
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"name": "Get ETA and evacuation radius",
|
|
80
|
+
"when": "Before ending the call.",
|
|
81
|
+
"script": "Use `ask_eta` and `ask_evacuation_radius`. The user (or someone with them) is the on-scene safety perimeter until crews arrive."
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"name": "Close the loop with the utility after a 911 call",
|
|
85
|
+
"when": "Within 30-60 minutes of the 911 call.",
|
|
86
|
+
"script": "Use `opener_post_911`. Even though 911 co-notifies, calling the utility directly produces a customer-side ticket for follow-up, credit, and verification that the response actually dispatched."
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
"boundaries": [
|
|
90
|
+
"Do NOT approach a downed wire to 'check if it's live'. Assume it is.",
|
|
91
|
+
"Do NOT approach a vehicle in contact with a wire — tell occupants to STAY INSIDE the vehicle and not touch metal until crews arrive. Stepping out can complete the circuit and kill them.",
|
|
92
|
+
"Do NOT operate light switches, doorbells, garage doors, thermostats, or anything electrical inside a building with a gas smell. Sparks ignite gas.",
|
|
93
|
+
"Do NOT silence a CO alarm and go back to sleep. Evacuate, count occupants, call 911 from outside.",
|
|
94
|
+
"Do NOT delay calling because you're 'not sure if it's bad enough'. Reporting a possible hazard is free; not reporting one is sometimes fatal.",
|
|
95
|
+
"Do NOT discuss billing, account, or credit on an emergency call. That's a separate call after the hazard is cleared.",
|
|
96
|
+
"AGENT-SPECIFIC: An AI agent should NEVER take this call on the user's behalf for an active safety emergency. The agent's role is to tell the user to leave the area and call 911, and to coordinate follow-up calls AFTER the immediate danger is past."
|
|
97
|
+
],
|
|
98
|
+
"success_signals": [
|
|
99
|
+
"911 dispatch confirmed with crews en route, OR utility emergency hotline ticket issued with crew ETA.",
|
|
100
|
+
"Evacuation radius known and being maintained.",
|
|
101
|
+
"All occupants accounted for in a safe location.",
|
|
102
|
+
"Follow-up ticket number captured from the utility (separate from the 911 incident number)."
|
|
103
|
+
],
|
|
104
|
+
"failure_signals": [
|
|
105
|
+
"Hold time on the utility emergency line exceeds 5 minutes for an active hazard — hang up and call 911 instead.",
|
|
106
|
+
"Rep on a general customer-service line tries to handle the emergency without transferring — escalate immediately or hang up and call 911.",
|
|
107
|
+
"No ETA can be given and the hazard is escalating (fire spreading, more wires falling, gas smell intensifying) — call 911 and evacuate further.",
|
|
108
|
+
"User cannot reach a safe location to call from — instruct them to leave the area on foot if needed and call from any nearby safe spot."
|
|
109
|
+
],
|
|
110
|
+
"exit_strategy": {
|
|
111
|
+
"on_success": "Confirm dispatch is en route, maintain the safety perimeter, log incident/ticket numbers. Stay on-scene at a safe distance until crews arrive. After resolution, use `outage-credit-applied` for any service-interruption credit and `dispute-usage-spike-meter-reread` if billing is affected.",
|
|
112
|
+
"on_failure": "If the utility cannot respond or the hazard is worsening, call 911 (again if necessary). Do not re-enter the area. If property damage occurred, document with photos (from a safe distance) for insurance and any negligence claim.",
|
|
113
|
+
"follow_ups": [
|
|
114
|
+
"After hazard cleared: confirm the utility's incident report exists and is accurate.",
|
|
115
|
+
"If property damage / spoilage: file the consequential-damage claim with the utility (separate process from service credit).",
|
|
116
|
+
"If a downed wire damaged property OR a gas leak caused evacuation: notify homeowner / renter insurance promptly.",
|
|
117
|
+
"If household has powered medical equipment and outage exceeded the equipment's battery: file medical-baseline paperwork to flag the account for future outages."
|
|
118
|
+
]
|
|
119
|
+
},
|
|
120
|
+
"required_user_info": [
|
|
121
|
+
"Precise address or nearest cross street",
|
|
122
|
+
"Description of the hazard and what is visible",
|
|
123
|
+
"Number of people potentially affected",
|
|
124
|
+
"Whether anyone is injured or trapped",
|
|
125
|
+
"User's current location relative to the hazard",
|
|
126
|
+
"Phone number for callback"
|
|
127
|
+
],
|
|
128
|
+
"contributed_by": "utility-telecom agent (v0.9.87 community drop)",
|
|
129
|
+
"updated_at": "2026-05-20T06:09:47Z"
|
|
130
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "report-elder-or-child-abuse",
|
|
3
|
+
"name": "Report Suspected Elder Abuse or Child Abuse",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"category": "emergency-services",
|
|
6
|
+
"tags": [
|
|
7
|
+
"elder-abuse",
|
|
8
|
+
"child-abuse",
|
|
9
|
+
"aps",
|
|
10
|
+
"cps",
|
|
11
|
+
"mandated-reporter",
|
|
12
|
+
"neglect",
|
|
13
|
+
"emergency_services"
|
|
14
|
+
],
|
|
15
|
+
"description": "Place a call to Adult Protective Services (APS) or Child Protective Services (CPS), or the state hotline for elder/child abuse / neglect, on behalf of the operator. Many jurisdictions have a dedicated hotline; the agent calls the right one for the state and routes correctly.",
|
|
16
|
+
"disclaimer": "(1) If the abuse is HAPPENING RIGHT NOW or there is imminent danger, that's call-911-violent-crime-in-progress — not APS/CPS. (2) The operator may be a mandated reporter (teacher, healthcare worker, social worker) — if so, the report is REQUIRED by law in most US states; the agent should NOT discourage. (3) Identify as an AI on the first sentence. (4) Reports can be made anonymously in most states; the operator should know whether their professional role bars anonymity. (5) Knowingly false abuse reports are crimes in every state and cause severe harm to the falsely accused — accuracy matters.",
|
|
17
|
+
"context": {
|
|
18
|
+
"when_to_use": "Operator suspects or has witnessed elder abuse / child abuse / neglect and wants to file a report with APS / CPS / the state hotline. Operator is not in immediate danger, the suspected victim is not in immediate danger. (If either is — 911.)",
|
|
19
|
+
"preconditions": [
|
|
20
|
+
"Operator's explicit authorisation for this call.",
|
|
21
|
+
"Victim's information: name, age, address (or last known location), relationship to operator.",
|
|
22
|
+
"Suspected abuser's information (name, relationship to victim) — to the extent the operator can attest to it.",
|
|
23
|
+
"Specific observations the operator can describe: what they saw, when, where. Avoid characterisations ('he's abusive'); stick to facts ('there were bruises on her arms when I helped her into the car last Tuesday').",
|
|
24
|
+
"Operator's contact info (or explicit choice to report anonymously in jurisdictions that allow it).",
|
|
25
|
+
"Confirmation no imminent danger (else 911)."
|
|
26
|
+
],
|
|
27
|
+
"estimated_call_duration_minutes": 20
|
|
28
|
+
},
|
|
29
|
+
"principles": [
|
|
30
|
+
"Identify as an AI on the first sentence; explain you are relaying for a person who is filing the report.",
|
|
31
|
+
"Distinguish observations from interpretations. Investigators value facts; characterisations are not actionable.",
|
|
32
|
+
"If the operator is a mandated reporter, name that — it changes how the intake worker prioritises and how anonymity is handled.",
|
|
33
|
+
"Don't push the intake worker toward a specific intervention. Describe; let them decide.",
|
|
34
|
+
"Get a case / intake reference number before disconnecting.",
|
|
35
|
+
"If at any point the operator describes imminent danger, switch to 911. APS/CPS are the right channel for ongoing concern, NOT acute risk."
|
|
36
|
+
],
|
|
37
|
+
"phrases": {
|
|
38
|
+
"opener": "Hi — I'm an AI assistant calling on behalf of <operator>. They'd like to make a report of suspected <elder abuse / child abuse / neglect / financial exploitation>. <Mandated reporter or voluntary>. The suspected victim is <name and age> at <address>. May I walk you through what my operator observed?",
|
|
39
|
+
"factual_walkthrough_prompt": "I'll share what my operator personally observed. I'll flag inference versus observation. Please slow me down whenever you need.",
|
|
40
|
+
"flag_inference": "(Inference, not direct observation:) <…>",
|
|
41
|
+
"ask_about_anonymity": "Before I share my operator's contact info — what are the anonymity options for this kind of report in your jurisdiction? My operator has chosen <anonymous / on-record / mandated-reporter on-record>.",
|
|
42
|
+
"ask_about_followup_window": "Roughly when can my operator expect a follow-up, if at all? They want to know what to expect.",
|
|
43
|
+
"ask_for_reference": "Could I get an intake reference number, your name, and a callback line in case my operator remembers more?",
|
|
44
|
+
"escalate_to_911": "Hold on — my operator is telling me <verbatim observation suggesting imminent danger>. I think we need to transfer to 911 immediately. Can you connect us, or should I hang up and dial 911 directly?"
|
|
45
|
+
},
|
|
46
|
+
"tactics": [
|
|
47
|
+
{
|
|
48
|
+
"name": "Confirm no imminent danger first",
|
|
49
|
+
"when": "Before dialing APS/CPS.",
|
|
50
|
+
"script": "Ask operator: 'Is anyone in immediate danger right now? Bruising actively happening, weapon involved, child currently being harmed?' If yes — 911 instead.",
|
|
51
|
+
"priority": 0
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"name": "Open with the right framing",
|
|
55
|
+
"when": "First substantive turn.",
|
|
56
|
+
"script": "Use `opener`, naming the abuse type and the operator's reporter status (mandated vs voluntary).",
|
|
57
|
+
"priority": 1
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "Walk through observations, flag inferences",
|
|
61
|
+
"when": "Throughout the call.",
|
|
62
|
+
"script": "Use `factual_walkthrough_prompt` then `flag_inference` whenever the operator's input shifts from 'I saw X' to 'I think Y'. Investigators distinguish strongly.",
|
|
63
|
+
"priority": 2
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"name": "Resolve anonymity proactively",
|
|
67
|
+
"when": "Before sharing operator's contact info.",
|
|
68
|
+
"script": "Use `ask_about_anonymity`. Most states allow anonymous reports but mandated reporters typically cannot be anonymous."
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"name": "Capture reference + follow-up window",
|
|
72
|
+
"when": "Before closing.",
|
|
73
|
+
"script": "Use `ask_for_reference` and `ask_about_followup_window`. Without these the operator has no proof or expectation."
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"name": "Escalate to 911 if anything imminent emerges",
|
|
77
|
+
"when": "Mid-call the operator describes acute danger.",
|
|
78
|
+
"script": "Use `escalate_to_911`. APS/CPS will agree; the right channel for acute danger is 911."
|
|
79
|
+
}
|
|
80
|
+
],
|
|
81
|
+
"boundaries": [
|
|
82
|
+
"NEVER fabricate or embellish observations. False abuse reports cause real harm AND are criminal in every state.",
|
|
83
|
+
"NEVER name a suspected abuser unless the operator has direct knowledge of the relationship and the conduct.",
|
|
84
|
+
"NEVER discourage a mandated reporter from filing.",
|
|
85
|
+
"NEVER promise the operator a specific outcome (removal, prosecution, intervention). APS/CPS have discretion.",
|
|
86
|
+
"NEVER use this as a tool in a custody dispute or eldercare-financial dispute. Misuse is reportable and exposes the operator to legal consequences.",
|
|
87
|
+
"NEVER end the call without an intake reference number unless the intake worker explicitly refuses to give one."
|
|
88
|
+
],
|
|
89
|
+
"success_signals": [
|
|
90
|
+
"Intake worker accepts the report and gives a reference number.",
|
|
91
|
+
"Intake worker confirms a follow-up window or a screening timeline.",
|
|
92
|
+
"Intake worker accepts the operator's anonymity preference where allowed."
|
|
93
|
+
],
|
|
94
|
+
"failure_signals": [
|
|
95
|
+
"Intake worker says 'this isn't our jurisdiction' — accept the referral, place the next call.",
|
|
96
|
+
"Intake worker says 'this doesn't rise to our threshold' — relay back to the operator; offer alternatives (local police non-emergency, ombudsman, prosecutor's office).",
|
|
97
|
+
"Operator changes their mind mid-call — stop the call cleanly. Don't pressure them."
|
|
98
|
+
],
|
|
99
|
+
"exit_strategy": {
|
|
100
|
+
"on_success": "Confirm reference number, follow-up window, anonymity status. Email operator a summary including verbatim observations recorded with the intake worker.",
|
|
101
|
+
"on_failure": "Email operator the alternative channel the intake worker recommended and offer to place the next call.",
|
|
102
|
+
"follow_ups": [
|
|
103
|
+
"Email operator: reference, intake worker name, follow-up window.",
|
|
104
|
+
"If the operator is a mandated reporter, save a record of the report being made (date, agency, reference) — that's their statutory documentation."
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
"required_user_info": [
|
|
108
|
+
"Operator's explicit authorisation for this call",
|
|
109
|
+
"Confirmation no imminent danger (else 911)",
|
|
110
|
+
"Victim's name, age, address, relationship to operator",
|
|
111
|
+
"Specific observations (with dates / contexts) the operator can attest to",
|
|
112
|
+
"Mandated-reporter status of the operator",
|
|
113
|
+
"Anonymity preference",
|
|
114
|
+
"Operator's callback number (if non-anonymous)"
|
|
115
|
+
],
|
|
116
|
+
"contributed_by": "AgenticMail core team (emergency-services bundle v0.9.87)"
|
|
117
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "report-fbi-tip",
|
|
3
|
+
"name": "Report a Tip to the FBI",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"category": "emergency-services",
|
|
6
|
+
"tags": [
|
|
7
|
+
"fbi",
|
|
8
|
+
"federal",
|
|
9
|
+
"tip",
|
|
10
|
+
"report",
|
|
11
|
+
"1-800-CALL-FBI",
|
|
12
|
+
"tips.fbi.gov",
|
|
13
|
+
"emergency_services"
|
|
14
|
+
],
|
|
15
|
+
"description": "Place a call to the FBI tip line (1-800-CALL-FBI / 1-800-225-5324) to report a federal crime, suspicious activity, or information about an active FBI matter. Most non-imminent tips are better submitted via tips.fbi.gov; the phone line is for tips where time matters or the operator can't use the web form.",
|
|
16
|
+
"disclaimer": "(1) The FBI handles FEDERAL crimes — not most local matters. If unsure whether something is federal, call the local police non-emergency line first; they will redirect. (2) Imminent threats to life go to 911, NOT the FBI tip line. (3) The FBI does NOT take in-progress hostage / terror calls on the tip line — 911 first. (4) Identify yourself as an AI on the first sentence. (5) Knowingly false statements to a federal agent are a felony under 18 U.S.C. § 1001.",
|
|
17
|
+
"context": {
|
|
18
|
+
"when_to_use": "Operator wants to report information about a federal crime to the FBI and prefers (or needs) the phone line over the web form (tips.fbi.gov). Time-sensitive context, language barrier with the form, or the operator is reporting on someone they want to keep their info contained around. Examples of FBI-jurisdiction matters: kidnapping crossing state lines, organised cybercrime, financial fraud involving interstate wire, federal corruption, foreign-influence concerns, threats against federal officials, civil-rights violations, hate crimes, public-corruption cases.",
|
|
19
|
+
"preconditions": [
|
|
20
|
+
"Explicit operator authorisation for THIS specific FBI tip call.",
|
|
21
|
+
"A clear, short summary of the tip — who / what / where / when / why this is federal jurisdiction.",
|
|
22
|
+
"Operator's contact info to leave with the tip line (anonymous tips are allowed but reduce follow-up).",
|
|
23
|
+
"Confirmation this is NOT an in-progress emergency (those route to 911).",
|
|
24
|
+
"An understanding that the FBI may take days / weeks to follow up — not a rapid-response channel."
|
|
25
|
+
],
|
|
26
|
+
"estimated_call_duration_minutes": 15
|
|
27
|
+
},
|
|
28
|
+
"principles": [
|
|
29
|
+
"Identify as an AI on the first sentence and explain you are relaying a tip on behalf of the operator.",
|
|
30
|
+
"Lead with the federal nexus — why this is the FBI's jurisdiction and not local police's.",
|
|
31
|
+
"Stick to what the operator can attest to. Don't speculate; flag speculation as speculation if you must include it.",
|
|
32
|
+
"Give the agent on the line time to take notes. Speak at the pace of dictation.",
|
|
33
|
+
"Get the tip reference number / agent name before disconnecting.",
|
|
34
|
+
"If the agent on the line says this isn't an FBI matter, ask for the right referral and end politely."
|
|
35
|
+
],
|
|
36
|
+
"phrases": {
|
|
37
|
+
"opener": "Hi — I'm an AI assistant calling 1-800-CALL-FBI on behalf of <operator name>. We have a tip about <one-line: 'a suspected wire fraud scheme', 'a possible threat against a federal building', 'a missing person we believe was taken across state lines', etc>. Is now a good time to walk through it?",
|
|
38
|
+
"federal_nexus_statement": "We're bringing this to the FBI specifically because <one-line federal-nexus reason: 'the suspect operates across multiple states', 'the victim is a federal employee', 'the fraud crossed state lines via wire transfer'>. Happy to walk through what we know.",
|
|
39
|
+
"factual_walkthrough_prompt": "I'm going to walk through what my operator told me. Stop me whenever you need clarification or want to slow down. Some of this is observed fact and some is the operator's inference — I'll flag which is which.",
|
|
40
|
+
"flag_speculation": "(Speculation, not fact:) <…>",
|
|
41
|
+
"ask_for_reference": "Could I get a tip reference number, your name, and the best way for my operator to follow up if they remember anything else?",
|
|
42
|
+
"ask_about_followup_window": "Roughly when might my operator hear back, if at all? They'd like to know what to expect.",
|
|
43
|
+
"graceful_close_referral": "Thank you. If this is the wrong office, could you direct me to where my operator should redirect this — the local field office, USPIS, ICE, Secret Service, etc?"
|
|
44
|
+
},
|
|
45
|
+
"tactics": [
|
|
46
|
+
{
|
|
47
|
+
"name": "State the federal nexus early",
|
|
48
|
+
"when": "Within the first 60 seconds.",
|
|
49
|
+
"script": "Use `federal_nexus_statement`. Without it, the agent will spend their time figuring out whether it's their case.",
|
|
50
|
+
"priority": 1
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "Walk through facts at dictation pace",
|
|
54
|
+
"when": "After establishing the federal nexus.",
|
|
55
|
+
"script": "Use `factual_walkthrough_prompt`. Slow down; the agent is taking notes.",
|
|
56
|
+
"priority": 2
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"name": "Flag observation vs. speculation",
|
|
60
|
+
"when": "Throughout the walkthrough.",
|
|
61
|
+
"script": "Use `flag_speculation` whenever the operator's information is inference rather than direct knowledge. Federal investigators value clean attribution.",
|
|
62
|
+
"priority": 3
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "Ask for a tip reference + agent name",
|
|
66
|
+
"when": "Before closing.",
|
|
67
|
+
"script": "Use `ask_for_reference`. Without it, the operator has nothing to hand to a lawyer or follow up with."
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"name": "Accept a referral gracefully",
|
|
71
|
+
"when": "Agent indicates this isn't FBI jurisdiction.",
|
|
72
|
+
"script": "Use `graceful_close_referral`. Common redirects: USPIS (mail fraud), Secret Service (counterfeit / financial-instrument fraud), ICE (immigration), HSI, state AG, local PD."
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
"boundaries": [
|
|
76
|
+
"NEVER call the FBI for an in-progress emergency. That's 911.",
|
|
77
|
+
"NEVER call to inquire about an ongoing investigation involving the operator (lawyer matter, not a tip line).",
|
|
78
|
+
"NEVER fabricate facts. 18 U.S.C. § 1001 makes lying to federal agents a felony — and the agent on the line will have notes.",
|
|
79
|
+
"NEVER name third parties as suspects unless the operator has direct knowledge.",
|
|
80
|
+
"NEVER use this as a retaliation channel against someone the operator dislikes. The audit log will be subpoenable."
|
|
81
|
+
],
|
|
82
|
+
"success_signals": [
|
|
83
|
+
"Agent takes the tip and gives a reference number.",
|
|
84
|
+
"Agent commits to a follow-up window or says 'we'll be in touch if there's a need'.",
|
|
85
|
+
"Agent transfers the call to the correct field office if jurisdiction is local."
|
|
86
|
+
],
|
|
87
|
+
"failure_signals": [
|
|
88
|
+
"Agent says 'this is a local matter' and gives a referral — accept it, end the call, and consider the local route.",
|
|
89
|
+
"Agent says 'submit at tips.fbi.gov' and there's no time-sensitive reason to stay on the phone — accept it, end the call, draft the web tip.",
|
|
90
|
+
"Operator's information is too vague to leave a useful tip — pause, gather more from the operator via ask_operator before re-calling."
|
|
91
|
+
],
|
|
92
|
+
"exit_strategy": {
|
|
93
|
+
"on_success": "Confirm reference number, agent's name, and follow-up expectations. Email operator a summary including the verbatim federal-nexus statement.",
|
|
94
|
+
"on_failure": "If redirected, email the operator the agent's recommended channel (local FBI office, USPIS, etc) and offer to place the next call.",
|
|
95
|
+
"follow_ups": [
|
|
96
|
+
"Email operator: tip reference, agent name, follow-up expectation, original walkthrough summary.",
|
|
97
|
+
"If the agent committed to a follow-up window, calendar a check-in past that window so the operator can chase if needed."
|
|
98
|
+
]
|
|
99
|
+
},
|
|
100
|
+
"required_user_info": [
|
|
101
|
+
"Operator's explicit authorisation for this FBI tip call",
|
|
102
|
+
"One-line summary of the tip + federal nexus reason",
|
|
103
|
+
"Detailed facts the operator can attest to (and which are inference)",
|
|
104
|
+
"Whether to leave operator's contact info or submit anonymously",
|
|
105
|
+
"Operator's callback number (if non-anonymous)",
|
|
106
|
+
"Confirmation that this is NOT an in-progress emergency"
|
|
107
|
+
],
|
|
108
|
+
"contributed_by": "AgenticMail core team (emergency-services bundle v0.9.87)"
|
|
109
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "report-fraud-ic3-or-ftc",
|
|
3
|
+
"name": "Report Fraud — IC3 (FBI) / FTC / state AG",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"category": "emergency-services",
|
|
6
|
+
"tags": [
|
|
7
|
+
"fraud",
|
|
8
|
+
"scam",
|
|
9
|
+
"ic3",
|
|
10
|
+
"ftc",
|
|
11
|
+
"phishing",
|
|
12
|
+
"wire-fraud",
|
|
13
|
+
"identity-theft",
|
|
14
|
+
"emergency_services"
|
|
15
|
+
],
|
|
16
|
+
"description": "Report fraud / scam / identity-theft on behalf of the operator. Most submissions are via web (ic3.gov / reportfraud.ftc.gov / identitytheft.gov / state AG portals) but the agent can also place phone calls to the FTC (1-877-FTC-HELP) or state-AG hotlines when the operator needs assisted intake.",
|
|
17
|
+
"disclaimer": "(1) If money is currently being moved or the fraud is in progress (active wire being requested), call the bank's fraud line and 911 in parallel. (2) Identify as an AI on the first sentence. (3) Don't speculate about the perpetrator's identity unless the operator has direct evidence. (4) Reports to the FTC and IC3 are NOT investigations of the operator's case — they feed pattern-detection databases. Setting expectations matters.",
|
|
18
|
+
"context": {
|
|
19
|
+
"when_to_use": "Operator was defrauded (or someone they care for was), money is no longer recoverable through the bank, and they want to file with the appropriate federal / state authority. Examples: phishing-driven wire fraud, romance scam, fake-IRS scam, fake-tech-support scam, identity theft (someone opened a card in their name), business email compromise, investment scam, rental scam.",
|
|
20
|
+
"preconditions": [
|
|
21
|
+
"Operator's authorisation for this call / submission.",
|
|
22
|
+
"A clear timeline of what happened — first contact, what was promised, what the operator did, when they realised.",
|
|
23
|
+
"Financial loss amount (estimate is OK).",
|
|
24
|
+
"Any contact info the perpetrator used (phone, email, websites, crypto addresses, bank account numbers seen).",
|
|
25
|
+
"Whether the operator has already filed with their bank, the credit bureaus, IdentityTheft.gov, etc — to avoid duplicate reports.",
|
|
26
|
+
"Whether the operator has documents (screenshots, emails, statements) — IC3 and FTC accept these via web; phone reports take them later."
|
|
27
|
+
],
|
|
28
|
+
"estimated_call_duration_minutes": 20
|
|
29
|
+
},
|
|
30
|
+
"principles": [
|
|
31
|
+
"Identify as an AI on the first sentence.",
|
|
32
|
+
"Set expectations about the channel: IC3 and FTC are pattern-detection databases, not your operator's investigative team. They aggregate; they don't always individually respond.",
|
|
33
|
+
"Be timeline-clean: 'On <date>, the operator received <verbatim message>. On <date>, they wired <amount> to <account>.' Investigators value tight timelines.",
|
|
34
|
+
"Don't accuse a specific individual unless the operator has direct evidence — speculation contaminates the report.",
|
|
35
|
+
"Capture EVERY identifier: emails, phone numbers, URLs, account numbers, IPs if known. Patterns are how IC3/FTC find perpetrators.",
|
|
36
|
+
"Get a confirmation / reference number — both agencies issue them and the operator needs them for bank/insurance/legal follow-up."
|
|
37
|
+
],
|
|
38
|
+
"phrases": {
|
|
39
|
+
"opener_ic3_phone": "(IC3 has no phone line — direct the operator to ic3.gov. Use this skill primarily for FTC / state AG phone reports. If the operator insists on phone, route to FTC or state AG.)",
|
|
40
|
+
"opener_ftc": "Hi — I'm an AI assistant calling the FTC consumer line on behalf of <operator>. They're a victim of <one-line: 'a wire-fraud scam', 'an IRS-impersonation scam', 'identity theft'>. Total loss is approximately <amount>. The first contact was on <date>. May I walk you through it?",
|
|
41
|
+
"opener_state_ag": "Hi — I'm an AI assistant calling the <state> Attorney General's consumer protection line on behalf of <operator>. They were defrauded of approximately <amount> via <method> on <date>. We've already <filed with bank / IC3 / etc>. Wanted to also report to your office.",
|
|
42
|
+
"timeline_walkthrough_prompt": "I'm going to walk through the timeline. I'll be specific about dates and amounts. Tell me where you want detail and where the summary's enough.",
|
|
43
|
+
"list_identifiers": "Identifiers the operator captured: phone <…>, email <…>, URL <…>, account <…>, crypto address <…>. Want me to read them slowly?",
|
|
44
|
+
"ask_what_else_to_file": "What other channels do you recommend? FBI IC3? Local police? Bank's fraud team? Credit bureaus? My operator wants to make sure nothing's missed.",
|
|
45
|
+
"ask_for_reference": "Could I get a confirmation number and your name? My operator needs it for their bank claim and possible insurance / chargeback follow-up."
|
|
46
|
+
},
|
|
47
|
+
"tactics": [
|
|
48
|
+
{
|
|
49
|
+
"name": "Check active-loss tier first",
|
|
50
|
+
"when": "Before dialing.",
|
|
51
|
+
"script": "If money is currently moving (wire pending, account drain in progress), the FIRST call is the bank's fraud line + 911 in parallel — not the FTC.",
|
|
52
|
+
"priority": 0
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"name": "Lead with one-liner + dollar amount",
|
|
56
|
+
"when": "First substantive turn.",
|
|
57
|
+
"script": "Use the right opener for the agency. Investigators triage by dollar amount and scam category — lead with both.",
|
|
58
|
+
"priority": 1
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"name": "Tight timeline walkthrough",
|
|
62
|
+
"when": "After opener.",
|
|
63
|
+
"script": "Use `timeline_walkthrough_prompt`. Dates + amounts + verbatim quotes from messages are gold.",
|
|
64
|
+
"priority": 2
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"name": "Read all identifiers slowly",
|
|
68
|
+
"when": "Intake worker takes notes.",
|
|
69
|
+
"script": "Use `list_identifiers`. Read each verbatim, ask if they want repetition. Patterns are how perpetrators get caught."
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"name": "Ask what else to file",
|
|
73
|
+
"when": "Toward end of call.",
|
|
74
|
+
"script": "Use `ask_what_else_to_file`. Each fraud type has a different optimal filing pattern; the intake worker knows the local picture."
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"name": "Capture reference",
|
|
78
|
+
"when": "Before closing.",
|
|
79
|
+
"script": "Use `ask_for_reference`."
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"boundaries": [
|
|
83
|
+
"NEVER fabricate or embellish facts. Federal-agency false-statement laws apply.",
|
|
84
|
+
"NEVER name a perpetrator unless the operator has direct evidence — speculation contaminates aggregated data.",
|
|
85
|
+
"NEVER promise the operator any specific outcome (refund, prosecution). Both FTC and IC3 are aggregation channels.",
|
|
86
|
+
"NEVER share the operator's social, full account numbers, or full card numbers on a phone line they didn't initiate — verify the intake number with the agency's main published number first.",
|
|
87
|
+
"NEVER end the call without confirmation reference."
|
|
88
|
+
],
|
|
89
|
+
"success_signals": [
|
|
90
|
+
"Intake worker captures the report and gives a confirmation number.",
|
|
91
|
+
"Intake worker suggests additional / parallel filings (IC3 / IdentityTheft.gov / bank / state AG).",
|
|
92
|
+
"Intake worker confirms the operator's case fits a known pattern (sometimes they'll say 'we've seen this scam before')."
|
|
93
|
+
],
|
|
94
|
+
"failure_signals": [
|
|
95
|
+
"Intake worker says 'go file at <URL>' and there's no urgent reason for phone — accept and file the web form.",
|
|
96
|
+
"Intake worker says 'this isn't our jurisdiction' — capture the referral.",
|
|
97
|
+
"Intake worker pushes back on the validity of the report — relay back to operator; don't argue with the agency."
|
|
98
|
+
],
|
|
99
|
+
"exit_strategy": {
|
|
100
|
+
"on_success": "Confirm reference. Email operator a complete summary with timeline, identifiers, reference, and the intake worker's recommendations for parallel filings.",
|
|
101
|
+
"on_failure": "Email operator the recommended alternative channels and offer to file the web forms.",
|
|
102
|
+
"follow_ups": [
|
|
103
|
+
"Email operator: reference, timeline, identifiers, recommended parallel filings.",
|
|
104
|
+
"Calendar follow-up for IdentityTheft.gov + bank + credit-bureaus + state AG if not already done."
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
"required_user_info": [
|
|
108
|
+
"Operator's explicit authorisation",
|
|
109
|
+
"Timeline of the fraud (dates, contacts, amounts)",
|
|
110
|
+
"Total loss amount",
|
|
111
|
+
"All identifiers operator captured (phone / email / URL / account / crypto)",
|
|
112
|
+
"Already-filed list (bank / IC3 / etc)",
|
|
113
|
+
"Operator's callback number",
|
|
114
|
+
"Whether documents are available (for follow-up upload to web forms)"
|
|
115
|
+
],
|
|
116
|
+
"contributed_by": "AgenticMail core team (emergency-services bundle v0.9.87)"
|
|
117
|
+
}
|