@velinussage/locus-agent-skill 0.1.39 → 0.1.41

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.
@@ -0,0 +1,202 @@
1
+ ---
2
+ name: locus-home-watch
3
+ preamble-tier: 1
4
+ version: 1.2.1
5
+ description: Use when an owner who is keeping a property, or their agent, wants a standing watch on one address or a saved pool so money deadlines and nearby public-record changes surface on their own, each with a plain next step.
6
+ triggers:
7
+ - watch my house
8
+ - keep an eye on my property
9
+ - remind me of property tax deadlines
10
+ - tell me when something changes near my home
11
+ - homestead exemption renewal reminder
12
+ - set up alerts for my address
13
+ - monitor my rental properties
14
+ - standing watch on my home
15
+ allowed-tools: Bash Read AskUserQuestion
16
+ license: MIT
17
+ ---
18
+ # Locus home watch workflow
19
+
20
+ Locus supplies dated deadlines and cited public-record changes for an address. The agent turns
21
+ each event into one plain next step. The owner decides what to act on and what to pay for.
22
+ Never present an event as "you must", "you are at risk", "this lowers your value" or "you
23
+ should appeal". State the fact, its date and its source, then the question the owner can ask
24
+ next.
25
+
26
+ **How to speak:** follow "How to speak with owners, sellers and buyers" in the `locus-agent-tools`
27
+ skill (https://api.locus.report/.well-known/skill.md), including its 988 crisis guard.
28
+
29
+ Inputs you need from the owner: the street address (or up to 10 addresses), and whether they want
30
+ you to poll on their behalf or receive signed webhooks. Do not collect account numbers, names,
31
+ phone numbers or email addresses for the watch. Calendar reminders may also take the owner's renewal or escrow-analysis month, as a number from 1 to 12. Do not collect policy or loan numbers.
32
+
33
+ ## 1. Choose the watch target
34
+
35
+ 1. **One to ten addresses, no sign-in.** Inline `addresses` work on
36
+ `https://mcp.locus.report/mcp` with `events/poll` (or the model tool `poll_events`). This is
37
+ free and needs no account.
38
+ 2. **A saved pool (2 to 25 addresses), signed in.** Connect to
39
+ `https://mcp.locus.report/muse/mcp` (OAuth, scopes `pools events:subscribe`, or
40
+ `Authorization: Bearer lmc_...`). Create the pool with `create_pool` and use its `poolId`. Pool
41
+ events and webhooks need this sign-in; an unsigned call returns an authentication error, not
42
+ an empty result.
43
+ 3. Read the live schema before the first call: `events/list`, the model tool `list_event_types`,
44
+ or free `locus_mcp_events_catalog` with `{}`. The schema wins over this skill if they differ.
45
+
46
+ ## 2. Set up the two standing events
47
+
48
+ 4. **Money deadlines:** `locus.real_estate.deadline_approaching` with
49
+ `{ "addresses": [...], "horizonDays": 60 }` (or `{ "poolId": "..." }`). The default lanes are
50
+ `locus_tax_calendar`, `locus_appeal_window`, `locus_program_windows`, `locus_owner_programs`,
51
+ `locus_tax_sale_calendar` and `locus_open_disaster_assistance`. Add
52
+ `"basis": ["as filed", "statutory"]` to drop published-schedule dates if the owner wants fewer
53
+ alerts.
54
+ 5. **Changes around the home:** `locus.real_estate.changes_detected` with
55
+ `{ "addresses": [...], "lanes": [...], "includeUpcomingDays": 60 }`. Pick up to six free lanes
56
+ that fit the owner's question, for example `locus_flood_map_change_notices`,
57
+ `locus_metro_permits`, `locus_development_cases`, `locus_parcel_code_cases` and
58
+ `locus_boil_water_notices` (state-published boil-water orders for the serving system). A lane outside
59
+ the address's coverage returns `out_of_coverage` when called directly; check with
60
+ `locus_lane_availability` first rather than promising coverage.
61
+ 6. **Delivery.** Pick one:
62
+ - **Poll.** Omit `cursor` on the first call. Store the returned `cursor` only after you have
63
+ processed the response, and pass it on the next poll.
64
+ - **Signed webhook (signed in only).** `events/subscribe` or `subscribe_event` with a public
65
+ HTTPS URL and a `whsec_...` secret. Your receiver must answer the verification challenge
66
+ within 5 seconds. Verify `webhook-signature` and `webhook-timestamp` on every delivery and
67
+ deduplicate by `eventId`. Deliveries go out when a signed-in session calls `poll_events` with
68
+ `"deliverWebhooks": true`, so schedule that call at your cadence; a subscription alone does
69
+ not push. Renew before `refreshBefore`.
70
+
71
+ ## 3. Cadence guide
72
+
73
+ | Event | Suggested cadence | Why |
74
+ |---|---|---|
75
+ | `deadline_approaching` | Weekly, with `horizonDays` of 30 to 60 | Deadlines move slowly; a wider horizon gives the owner time to gather papers. |
76
+ | `changes_detected` | Daily, and never slower than every 24 hours | A poll cursor expires after 24 hours. A late poll starts a new baseline and reports nothing for the gap. |
77
+ | `changes_detected` with `locus_boil_water_notices` | At least every 12 hours, or `subscribe_event` when signed in | Boil-water notices are time-critical, and the lane lists active orders only: a notice issued during a re-baseline after a late poll joins the baseline silently and never emits. Locus is not an emergency alert; the utility's own alerts come first. |
78
+ | Any event | Not faster than `nextPollMs` (one hour) | Faster polls add load and find nothing new. |
79
+
80
+ If you poll `deadline_approaching` weekly, omit the old cursor: a fresh poll lists every dated
81
+ event inside the horizon, and you deduplicate by `eventId` yourself. For `changes_detected`, if
82
+ a cursor has expired, tell the owner the watch restarted on that date and that changes before it
83
+ were not compared.
84
+
85
+ ## 4. Read each poll honestly
86
+
87
+ 7. **Empty poll.** It means "nothing new was seen in the lanes checked", not "nothing happened".
88
+ Say exactly that, and name the lanes.
89
+ 8. **`truncated: true`.** The result is incomplete: a lane or address was unavailable, the
90
+ cursor was stale, or more events are waiting (`hasMore: true`). Poll again with the new cursor
91
+ for `hasMore`. For an unavailable lane, say which lane could not be read; do not report it as
92
+ clear.
93
+ 9. **`source_unavailable` or `unavailable` on a lane.** That source failed. It is not zero
94
+ records and not good news. Report it as a gap and check again on the next poll.
95
+ 10. **The first poll of `changes_detected`** sets a baseline and normally reports no changes.
96
+ Say "the watch is set; changes after today will show", not "no changes found".
97
+
98
+ ## 5. Triage each event into one next step
99
+
100
+ 11. **`deadline_approaching`.** Report `event`, `date`, `daysRemaining`, `basis` and the source
101
+ (`sourceName`, `sourceUrl`, `fetchedAt`). Then:
102
+ - **Appeal or assessment deadline** (tool `locus_appeal_window`, or a `locus_tax_calendar`
103
+ event about revaluation, review, protest, listing or equalization): hand off to the
104
+ `locus-property-tax-protest` skill with the address, the deadline and the notice date if the
105
+ owner has it. That skill owns the clock, the evidence and the filing.
106
+ - **Exemption, relief or program window** (`locus_program_windows`, `locus_owner_programs`):
107
+ call the same free tool for the address and list what the owner must file and by when. If a
108
+ homestead or relief exemption is not on the owner's bill, say it is a separate filing with
109
+ its own deadline.
110
+ - **Tax due or tax-sale date** (`locus_tax_calendar`, `locus_tax_sale_calendar`): report the
111
+ date and the county's official source. Do not estimate penalties.
112
+ - **Disaster assistance** (`locus_open_disaster_assistance`): report the program and its
113
+ closing date from the source.
114
+ - A `basis` of `"published schedule"` is the authority's own calendar; `"statutory"` is the
115
+ date the law sets; `"as filed"` comes from a record. Say which one it is.
116
+ 12. **`changes_detected`.** Report `summary`, then each item in `newRecords` with its
117
+ `sourceName`, `sourceUrl` and `fetchedAt`, and each item in `newUpcoming` with its date. Then:
118
+ - **A flood-map change notice** (`locus_flood_map_change_notices`): say a map revision that
119
+ names the county is proposed or final, give its comment deadline or effective date from the
120
+ notice, and say a county notice is not a change to this parcel's zone. Suggest the owner ask
121
+ their insurer how the revision would apply once it is effective.
122
+ - **A permit, development case or code case near or at the address**: give the record
123
+ number, the status and the date, then the next question (for example, "when is the hearing,
124
+ and how do I comment?"). For a code case at the owner's own address, give the case status
125
+ and the issuing office; do not interpret it.
126
+ - **A boil-water notice** (`locus_boil_water_notices`): give the notice status, issue date,
127
+ affected water system and source URL, and point to the utility's own instructions. Say it
128
+ is system context, not confirmed impact at this address. Give no health or safety verdict.
129
+ State-issued boil orders only; a precautionary advisory from the utility may not appear.
130
+ Check the utility's alerts.
131
+ A notice that drops off the list was not necessarily lifted; check the utility. If the
132
+ owner asks what their own service line is made of, call `locus_service_line_material`
133
+ (California, address level); for a break or leak, hand off to `locus-water-incident`.
134
+ - **New dated events** in `newUpcoming` are handled as in step 11.
135
+
136
+ ## 6. Paid next steps: offer, never auto-pay
137
+
138
+ 13. Deadline and change events carry `nextActions`: a pre-filled paid call with `tool`, `priceUsdc`, `adds`
139
+ and `charge: "charge_free_unless_substantive"`. Typical tools are `locus-assessment-position`,
140
+ `locus-owner-action-brief`, `locus-property-tax`, `locus-permit-closeout-check` and
141
+ `locus-property-update`.
142
+ 14. Offer it in one line: what it adds (quote `adds`) and its price (quote `priceUsdc`). Ask the
143
+ owner. Only after a clear yes, call it through `locus_execute` with the x402 payment in
144
+ `_meta["x402/payment"]`, or the REST path in `call.rest`. Never pay because an event arrived,
145
+ and never pay twice for the same `eventId`.
146
+ 15. `charged: false` in the paid result means the data was too thin to charge for. Report what
147
+ came back, and do not retry to force a charge.
148
+ 16. An event notification is never payment authorization, and never a safe or unsafe verdict.
149
+
150
+ ## 7. Landlords and holders of several homes
151
+
152
+ 17. Use a signed-in pool and `locus.pool.changes_detected`. For a rental, the free tools
153
+ `locus_rental_registration_check`, `locus_tenant_statute_pointers` and
154
+ `locus_fair_market_rents` answer the common follow-up questions. Keep tenant names and
155
+ contact details out of every call.
156
+
157
+ ## 8. Title watch for vacant land, second homes and rentals
158
+
159
+ 18. Owners of vacant land, a second home or a rental, and older owners, are the main targets of
160
+ seller-impersonation fraud: someone poses as the owner and tries to sell or mortgage the
161
+ property. (ALTA's 2026 reporting puts vacant land at 82% of targets; that figure is from a
162
+ secondary source.) Offer two steps, with no alarm:
163
+ - **Watch the owner's own parcel for new recorded sales.** Add `locus_parcel_transfers` to the
164
+ `changes_detected` lanes. Its sale rows carry no record id, so the event reports that the
165
+ lane's answer changed, not which sale. When it fires, call `locus_parcel_transfers` for the
166
+ address and look for a row whose site address is the owner's own; the lane lists recorded
167
+ sales within 500 m, so most rows, and most events, will be neighbors' sales. Tell the owner
168
+ that, and check the site address before treating an event as theirs. The lane covers only
169
+ counties whose assessor publishes sales (check `locus_lane_availability` first), and
170
+ assessor sale data can lag the recorder by weeks, so it is a backstop, not an early warning.
171
+ - **Enroll in the county recorder's alert.** Call `locus_fraud_alert_pointer` for the address
172
+ and give the enrollment link or office it returns. Where a county runs an alert service, it
173
+ notifies the enrolled owner when a document is recorded under their name, usually sooner
174
+ than assessor sale data. Where no local row exists, give the recorder search guidance it
175
+ returns and say Locus has not listed an alert service for that county.
176
+ 19. Locus does **not** verify a seller's identity or compare a seller to the owner of record.
177
+ For a sale or loan in progress, that check belongs to the title company or closing attorney.
178
+
179
+ ## 9. Calendar preparation reminders
180
+
181
+ Offer these reminders only where `locus_mcp_events_catalog` lists them. The provider's default-off calendar flag controls availability; when it is off, both catalogs omit these three events. If they are absent, keep the existing deadline and record-change watches instead. Each listed calendar event uses one `address`, not `addresses` or `poolId`:
182
+
183
+ | Event | Arguments | Trigger and free next steps |
184
+ |---|---|---|
185
+ | `locus.real_estate.seasonal_hazard_window` | `{ "address": "123 Main St, Wilmington, NC 28401" }` | May 1 preparation window for the official June 1 Atlantic hurricane season start, in registered coastal counties only. Call `locus_flood_zone` and `locus_flood_premium_context`. Wildfire is skipped because no dated official state season has been verified. |
186
+ | `locus.real_estate.insurance_renewal_approaching` | `{ "address": "...", "renewalMonth": 7 }` | 45 days before the first day of the supplied month. Call `locus_homeowners_insurance_context` and `locus_mitigation_incentives`. |
187
+ | `locus.real_estate.escrow_analysis_approaching` | `{ "address": "...", "escrowAnalysisMonth": 7 }` | 30 days before the first day of the supplied month. Read `locus_owner_mortgage_calendar` with `{}` for the cited fact cards, then `locus_tax_calendar` and `locus_homeowners_insurance_context` for the address. |
188
+
189
+ The month boundary is not the actual renewal or servicer date. Confirm that date with the insurer or servicer. A missing month returns `calendarStatus: "missing_date"` and no event. Caller months are labeled `caller_supplied`; they have no invented source URL or verification date. Seasonal dates carry the official source and its recorded verification date. Every reminder carries a reason and free `nextActions` with `charge: "free"` and `priceUsdc: "0.00"`. Do not attach payment metadata to those calls.
190
+
191
+ Use the same poll or signed-webhook setup as step 6 in section 2, with the selected event name and its arguments. Set up a subscription before the trigger window opens; its initial baseline is silent. A subscription alone still does not schedule delivery. Keep the polling caller active and renew before expiry.
192
+
193
+ Poll at least every 12 hours and honor `nextPollMs`. Cursors expire after 24 hours even though the calendar cycles are yearly. Passing a stale cursor creates a truncated, silent baseline and may suppress a reminder. To recover a missed poll, omit the expired cursor and deduplicate the fresh result by `eventId`. Fresh polls list reminders only from `triggerDate` through `date`, inclusive, in UTC. Closed windows are not backfilled. A new annual cycle has a new event ID.
194
+
195
+ Exemption and appeal re-surfacing stays on `deadline_approaching`. Only concrete dated rows count. A recurring prose rule or a prior year's deadline never becomes a guessed current-year date.
196
+
197
+ ## Completion
198
+
199
+ The owner has: the watch target (addresses or pool), the two events set up with their
200
+ arguments, the delivery mode and cadence, and where the cursor or subscription is stored. For
201
+ each event so far: the fact, its date and source, the next step, and any paid offer with its
202
+ price and the owner's answer. Every gap from a failed or truncated read is named, not hidden.
@@ -0,0 +1,105 @@
1
+ ---
2
+ name: locus-inherited-home
3
+ preamble-tier: 1
4
+ version: 1.0.0
5
+ description: Use when someone's parent or relative died and left a US house, and they ask what is due on it, how to protect it while it is empty, and where the state's estate, heirs-property and court pointers are, from cited Locus records.
6
+ triggers:
7
+ - I inherited a house
8
+ - my parent died and left the house
9
+ - what do I do with my mom's house
10
+ - property tax on an inherited home
11
+ - heirs property
12
+ - transfer on death deed
13
+ - small estate affidavit for a house
14
+ - vacant house after a death
15
+ allowed-tools: Bash Read AskUserQuestion
16
+ license: MIT
17
+ ---
18
+ # Locus inherited-home workflow
19
+
20
+ The person has lost someone. Start with one plain sentence of acknowledgement, then move to what is
21
+ due and when. Locus gives dated, cited facts about the home and pointers to official estate law.
22
+ A probate attorney or legal aid decides which estate procedure applies, who has authority to act,
23
+ and who owns the home. The family decides whether to keep, rent or sell it.
24
+
25
+ **Never:** recommend selling or keeping the home; say who owns it, who inherits it, or who may sign
26
+ for the estate; give legal, tax or financial advice. Locus does not produce those statements and
27
+ neither may you on Locus's behalf.
28
+
29
+ **How to speak:** follow "How to speak with owners, sellers and buyers" in the `locus-agent-tools`
30
+ skill (https://api.locus.report/.well-known/skill.md), including its 988 crisis guard.
31
+
32
+ Inputs you need: the home's street address and state. Do not collect the deceased person's name,
33
+ heirs' names, phone numbers, account numbers or family details. You do not need them.
34
+
35
+ ## 1. What is due on the home (free)
36
+
37
+ 1. `locus_tax_payment_status` with `{ address }`: whether the current bill shows paid or unpaid,
38
+ with the source and date. If the lane is out of coverage or unavailable, say so; never report
39
+ an unavailable read as "nothing due".
40
+ 2. `locus_tax_calendar` for the county: bill dates, due dates and the delinquency rule. Name the
41
+ next due date first.
42
+
43
+ ## 2. Exemptions that may end (free)
44
+
45
+ 3. `locus_owner_programs` with `{ address, classes: ["exemption_relief", "tax_relief_local", "assessment_deferral"] }`.
46
+ For each homestead, senior, veteran or disability row, quote the fact and source. Say that such
47
+ exemptions are usually tied to the owner who lived there, and that the county assessor decides
48
+ when one ends. The next step is to tell the assessor's office about the death and ask what
49
+ changes and when. Never say an exemption has ended.
50
+
51
+ ## 3. Insurance on an empty house (pointer only)
52
+
53
+ 4. Say that many homeowner policies have terms about a home left vacant or unoccupied, and that
54
+ the policyholder or estate should ask the insurer, soon, what applies and what the insurer
55
+ needs. Locus cannot read the policy or quote coverage.
56
+ `locus_homeowners_insurance_context` can give area cost context if they ask about price.
57
+
58
+ ## 4. Watch the empty house for fraud (free)
59
+
60
+ No one is checking an empty home's mail. Watching its public records lets the family see a new
61
+ recording early, while there is still time to act.
62
+ 5. `locus_parcel_transfers` with the address: recent recorded sales near the address, with dates.
63
+ Check the site address before treating a row as the owner's own. A recording is a fact, not a
64
+ judgment that it was fraud. For the full title watch, follow section 8 (title watch) of the
65
+ `locus-home-watch` skill.
66
+ 6. `locus_fraud_alert_pointer` for the county: how to enroll in the recorder's free alert, if the
67
+ county offers one.
68
+ 7. Offer a standing watch with the `locus-home-watch` skill on the address, so new recordings,
69
+ tax dates and permits surface early.
70
+ Locus does not verify anyone's identity or ownership. Send that question to a title company or
71
+ the attorney.
72
+
73
+ ## 5. State estate pointers (free)
74
+
75
+ 8. `locus_estate_property_pointers` with `{ address }` or `{ state }`. Report each part with its
76
+ own status:
77
+ - `transferOnDeathDeed`: if `verified`, the state has a transfer-on-death (beneficiary) deed
78
+ statute; give the citation and link. Whether one was recorded for this home is a question for
79
+ the county recorder or the attorney; Locus does not search for it.
80
+ - `smallEstate`: if `verified`, give the citation, link and `realProperty` value. Quote
81
+ `thresholdText` only if it is present, and say thresholds change.
82
+ - `heirsProperty`: the Uniform Partition of Heirs Property Act status from the Uniform Law
83
+ Commission. This matters when several heirs share ownership. `not_listed` is not proof the
84
+ state has no related law.
85
+ - `courtHelp`: the state court self-help page for probate.
86
+ - A `not_verified` part names no rule. Give the portal pointer and say Locus has not checked it.
87
+
88
+ ## 6. If the family decides to sell
89
+
90
+ 9. Only when the family says they plan to sell, hand off to the `locus-seller-readiness` skill.
91
+ Selling an estate home usually needs the estate's legal authority first; say so.
92
+
93
+ ## 7. Human help
94
+
95
+ 10. End with the route to a probate attorney or legal aid, and the state court self-help page from
96
+ step 8. For help with payments on the home, HUD-approved housing counselors are free or low-cost:
97
+ `locus_housing_counselors` with the address lists nearby agencies, and the
98
+ `locus-payment-hardship` skill covers payment trouble.
99
+
100
+ ## Completion
101
+
102
+ The person has: the tax status and the next due date; the exemption rows and the assessor
103
+ question; the insurance question to ask; the recorded-transfer check, the recorder alert and an
104
+ optional watch; the state estate pointers with their verification status; and the route to a
105
+ probate attorney or legal aid. Every statement traces to a Locus citation or the person's own input.
@@ -0,0 +1,111 @@
1
+ ---
2
+ name: locus-insurance-nonrenewal
3
+ preamble-tier: 1
4
+ version: 1.1.0
5
+ description: Use when a US homeowner says their homeowners insurer will not renew, or is dropping, their policy and wants to know the state notice rule, the insurer of last resort, the complaint route, mitigation credits, flood exposure and the dates that matter before the policy lapses, from cited Locus records.
6
+ triggers:
7
+ - my insurer won't renew my policy
8
+ - homeowners insurance nonrenewal notice
9
+ - insurance company dropping my house
10
+ - FAIR Plan
11
+ - Citizens insurance
12
+ - insurer of last resort
13
+ - how much notice before nonrenewal
14
+ allowed-tools: Bash Read AskUserQuestion
15
+ license: MIT
16
+ ---
17
+ # Locus insurance-nonrenewal workflow
18
+
19
+ The owner has received a notice that their homeowners policy will not renew. Locus supplies
20
+ pointers to official rules and cited area records. The owner, a licensed insurance agent and the
21
+ state insurance department decide what coverage to buy and whether a notice met the rules.
22
+
23
+ Never recommend a policy, a carrier or a coverage amount. Never say whether a nonrenewal was
24
+ lawful, valid or late. Locus does not produce those statements and neither may you on Locus's
25
+ behalf. Report facts with their dates and sources, and end each finding with the next question.
26
+ Nonrenewal notices have become more common in many states. Help from the state insurance
27
+ department is free.
28
+
29
+ **How to speak:** follow "How to speak with owners, sellers and buyers" in the `locus-agent-tools`
30
+ skill (https://api.locus.report/.well-known/skill.md), including its 988 crisis guard.
31
+
32
+ Inputs you need first: the state (or the property address), the date on the notice, and the
33
+ date the current policy ends. Do not collect the policy number, names, phone numbers or account
34
+ details.
35
+
36
+ ## 1. The state rules (free)
37
+
38
+ 1. Ask for the notice date and the policy end date. Count the days between them yourself and
39
+ show the arithmetic. Say that the count is the owner's dates, not a finding.
40
+ 2. `locus_insurance_nonrenewal_pointers` with `{ address }` or `{ state }`.
41
+ - `notice.status: "verified"`: quote `days`, `citation`, `scope`, any `conditions`, and the
42
+ official URL. Put the rule beside the owner's own day count, and say that the department
43
+ decides whether a notice met the rule.
44
+ - `notice.status: "not_verified"`: Locus has not checked a rule for this state. Give the
45
+ department's portal and suggest the owner ask the department what notice applies. Do not
46
+ say the state has no rule.
47
+ - `insurerOfLastResort.status: "listed"`: name each plan and its URL. It is a fallback when
48
+ the regular market declines; eligibility and price are the plan's decision.
49
+ `"not_checked"` means Locus has no plan row for this state; ask the department.
50
+ - `department.complaintUrl`: the page for questions and complaints.
51
+ - `emergencyRules`: quote each rule in force with its start and end dates and source. An
52
+ empty list means no dated rule is recorded here, not that none exists.
53
+ - `available: false` (`out_of_coverage`, `input_too_coarse`, `jurisdiction_mismatch`,
54
+ `source_unavailable`): report the status and ask for a two-letter state or a full address.
55
+
56
+ ## 2. Mitigation credits (free)
57
+
58
+ 3. `locus_mitigation_incentives` with the place and, where it fits, `hazard` (`wind`,
59
+ `wildfire`, `flood` or `earthquake`). Report each cited grant, discount rule or program with
60
+ its window and source. Suggest the owner ask any insurer which of these it credits.
61
+
62
+ ## 3. Flood (free)
63
+
64
+ Homeowners policies usually exclude flood, and many flood losses happen outside the high-risk
65
+ zones. A new policy search is a good time to look at flood separately.
66
+
67
+ 4. `locus_flood_zone` for the address: the effective FEMA zone and its source date.
68
+ 5. `locus_flood_premium_context` for the address: the spread of National Flood Insurance
69
+ Program (NFIP) policy costs in the ZIP. It is an estimate, never a quote.
70
+
71
+ ## 4. Area premium context (free)
72
+
73
+ 6. `locus_homeowners_insurance_context` for the address: the Census median homeowners-insurance
74
+ cost band with its vintage. It is a survey estimate, never a quote for this home.
75
+ - `fioZip`: Treasury Federal Insurance Office (FIO) figures for the ZIP, by year, labeled
76
+ **2018-2022 historical area context**: `premiumsPerPolicyUsd`, `nonrenewalRate`,
77
+ cancellation rates, `claimFrequency`, `claimSeverityUsd` and `paidLossRatio`. They describe
78
+ the ZIP's market then, not this policy, today's premium or a forecast. Read `fioZip.status`:
79
+ `reported` gives the figures; `suppressed` means some cells are blank (null is not zero);
80
+ `not_in_source` means the ZIP is absent, which may be suppression or a coverage gap;
81
+ `source_unavailable` means the figures could not be read here (the read failed or the
82
+ snapshot is not enabled). Report it as a gap, not as zero.
83
+ For a nonrenewal question, quote `nonrenewalRate` by year as published: insurer
84
+ nonrenewals divided by policies in force at year end, as a fraction (0.02 is 2%), for
85
+ participating private HO-3 and HO-5 insurers only (no FAIR or Citizens plans). It shows how
86
+ common insurer nonrenewals were in the ZIP in those years. It says nothing about why this
87
+ policy was not renewed, and it is not a current rate.
88
+
89
+ ## 5. Mortgage dates (free, only if the home has a mortgage)
90
+
91
+ 7. `locus_owner_mortgage_calendar`. If the owner has a letter from the lender or servicer about
92
+ lapsed or force-placed insurance, pass its date as `forcePlacedNoticeDate`. Quote only the
93
+ tool's cited fact cards and computed dates. Suggest the owner send the servicer proof of new
94
+ coverage as soon as it is bound.
95
+
96
+ ## Completion: choices and dates
97
+
98
+ End with a short dated list of the owner's choices, for example:
99
+
100
+ - Shop with one or more licensed agents before the policy end date (date).
101
+ - Ask about the insurer of last resort named above if the regular market declines.
102
+ - Ask insurers about the mitigation credits found.
103
+ - Consider flood coverage separately, given the flood facts above.
104
+ - If paying for a new policy becomes hard, hand off to the `locus-payment-hardship` skill.
105
+ `locus_housing_counselors` lists agencies in HUD's housing counseling directory near the
106
+ address; confirm the agency's HUD approval, fees and availability with the agency.
107
+ - Ask the department, or file a complaint at its page, if the notice timing seems short against
108
+ the cited rule.
109
+ - If there is a mortgage, send the servicer proof of coverage by the dates in the calendar.
110
+
111
+ Every statement traces to a Locus citation or to a date the owner gave you.
@@ -0,0 +1,71 @@
1
+ ---
2
+ name: locus-payment-hardship
3
+ description: "Use when a US owner is behind on mortgage payments, property taxes, or both and needs human help and official process pointers."
4
+ preamble-tier: 1
5
+ version: 1.0.2
6
+ triggers:
7
+ - behind on my mortgage
8
+ - cannot pay my property taxes
9
+ - mortgage payment hardship
10
+ - foreclosure notice
11
+ - find a HUD-approved housing counselor
12
+ allowed-tools: Bash Read AskUserQuestion
13
+ license: MIT
14
+ ---
15
+ 1. Open without shame: **“Payment trouble is common. We can look for agencies listed in HUD's housing counseling directory and ask about free or low-cost counseling.”**
16
+ Ask whether the issue is the mortgage, property taxes, or both. Do not ask why.
17
+ Use an address or point the caller already supplied; ask for the state if it is missing.
18
+ Do not collect names, account numbers, private financial documents, or a hardship narrative.
19
+
20
+ **How to speak:** follow "How to speak with owners, sellers and buyers" in the `locus-agent-tools` skill (https://api.locus.report/.well-known/skill.md), including its 988 crisis guard.
21
+
22
+ 2. **Crisis STOP:** if the person says they are thinking of harming themselves or are in crisis, stop the records task.
23
+ Give the US **988 Suicide and Crisis Lifeline**: call or text **988**, or use <https://988lifeline.org/>.
24
+ Locus is not a mental-health service. Do not continue tool calls or treat ordinary payment stress alone as a crisis declaration.
25
+ 3. Recover any existing address, source results, dates, and prior decisions from the current conversation before repeating calls.
26
+ Read the live free schemas from <https://api.locus.report/tools/list>. Use existing consent only; do not install, update, charge, log personal details, or publish anything.
27
+
28
+ ## Mortgage payments
29
+
30
+ 4. Call `locus_housing_counselors` **first**, with `{ "address": "<the caller's address>" }`
31
+ or `{ "lat": 35.78, "lon": -78.64 }` using the caller's actual point, not these example coordinates.
32
+ The optional `service: "DFC"` filters to mortgage delinquency/default resolution; `LM` is loss mitigation and `RMC` is reverse mortgage counseling.
33
+ - `ok`: give the nearest agency options with their published business phone, address, website, service/language codes, source, and retrieval date.
34
+ Distance is straight-line proximity, not a quality ranking. Report `sourceStatusCode` as the raw HUD `agc_STATUS` code, not an approval or participation finding; null means the source did not provide a code.
35
+ Describe all results as **agencies listed in HUD's housing counseling directory**, never as currently HUD-approved based on the listing or its code.
36
+ Ask the caller to confirm the agency's HUD-approval status with HUD or the agency, plus fees, services, language and appointment availability.
37
+ - `no_agencies_in_radius`: explain the checked radius and filter. Offer a wider bounded search or HUD's official directory; remote counseling may be available.
38
+ Do not say there is no help.
39
+ - `source_unavailable`: say the read failed. Give <https://data.hud.gov/housing_counseling.html> as a fallback; do not call the response empty.
40
+ 5. Call `locus_foreclosure_process_pointers` with the confirmed state.
41
+ - `verified`: give the process classification, statute citations, official self-help and mediation pointers the row actually returns.
42
+ - `not_verified`: give the official portal only and say no process rule was verified. Never fill the gap from memory.
43
+ - `out_of_coverage`: name the limitation and offer `locus_request_coverage`; do not substitute a different state.
44
+ A state process type is not a determination of which process applies to this mortgage or tax lien.
45
+ 6. Call `locus_owner_mortgage_calendar` for its servicer-loss-mitigation fact cards.
46
+ Without caller dates, use `{}` to get the cards. Supply a sale or notice date only if the caller provided it.
47
+ Label any computed dates as arithmetic from caller inputs, subject to the cited conditions and actual notices.
48
+ Do not answer “how much time do I have?” with a countdown, predicted sale date, or assurance that an application stops a sale.
49
+ Ask the counselor or servicer to confirm the actual notice, application process and applicable dates.
50
+
51
+ ## Property taxes
52
+
53
+ 7. Check local lane coverage with `locus_lane_availability` using the exact address; tax-payment status is not nationally wired.
54
+ 8. Where covered, call `locus_tax_payment_status`, then `locus_tax_calendar` and `locus_tax_sale_calendar`.
55
+ Read each live input schema; do not guess a parcel ID, county, payment status, balance or delinquency date.
56
+ A missing, unsupported or failed balance read is not a zero balance or proof of no delinquency.
57
+ 9. Call `locus_owner_programs` for the same jurisdiction. Surface only source-returned deferral, installment and hardship rows, including senior deferrals where listed.
58
+ Explain the program facts and application source. Ask the tax office or program administrator what documents and dates apply.
59
+ Never decide that the owner qualifies, recommend a legal action, or promise that applying pauses collection.
60
+
61
+ ## Answer and completion
62
+
63
+ - Give choices, never a verdict. Pair each concern with a feasible next step, the named agency or business contact, and a source-backed date.
64
+ If the date is unknown, say who can confirm it and when the caller can ask; do not invent a deadline.
65
+ - State what is known, what is unknown, and how the unknown can be checked. Keep factual dates separate from any caller-chosen follow-up date.
66
+ - Use calm words, no alarm wording or fear imagery. Offer early human help without waiting for a deadline.
67
+ Offer a calendar follow-up only if the caller wants it; it does not authorize a subscription, payment or automatic action.
68
+ - Cite each source and its checked/retrieved date. `fetchedAt` is not a source-update date.
69
+ - Never predict foreclosure, give legal or financial advice, screen a borrower, judge eligibility, or tell someone to stop paying.
70
+ - Finish **DONE** when the caller has agency options (or an honest unavailable/empty fallback), verified or portal-only process pointers, relevant fact cards and tax-program choices, and one concrete question for the counselor, servicer or tax office.
71
+ Use **DONE_WITH_CONCERNS** for coverage gaps or unverified pointers. Use **BLOCKED** if a required source is unavailable and no useful official handoff can be given.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: locus-property-tax-protest
3
3
  preamble-tier: 1
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  description: Use when an owner or their agent wants to contest a property-tax assessment for one US address and needs the deadline, the cited evidence, the filing steps and an outcome baseline from Locus tools.
6
6
  triggers:
7
7
  - protest my property taxes
@@ -23,6 +23,9 @@ hearing. Never let a Locus output be presented as "you are over-assessed", "you
23
23
  "your value should be X" or "you will win": Locus does not produce those statements and neither
24
24
  may you on Locus's behalf. Report record facts and arithmetic, attribute every number to its source.
25
25
 
26
+ **How to speak:** follow "How to speak with owners, sellers and buyers" in the `locus-agent-tools`
27
+ skill (https://api.locus.report/.well-known/skill.md), including its 988 crisis guard.
28
+
26
29
  Inputs you need from the owner before spending money: the street address; the noticed (appraised
27
30
  or assessed) value and the date printed on the notice; whether the home is the owner's primary
28
31
  residence; the tax year. Do not collect or forward Social Security numbers, account numbers or
@@ -0,0 +1,112 @@
1
+ ---
2
+ name: locus-seller-readiness
3
+ preamble-tier: 1
4
+ version: 1.2.0
5
+ description: Use when an owner who plans to sell one US property, or their agent, wants a pre-listing check of disclosure law, open permits, code cases, flood status, district levies and closing-tax arithmetic from cited Locus records.
6
+ triggers:
7
+ - getting ready to sell my house
8
+ - pre-listing checklist
9
+ - seller disclosure
10
+ - what do I have to disclose
11
+ - open permits before listing
12
+ - lead paint disclosure
13
+ - transfer tax when selling
14
+ allowed-tools: Bash Read AskUserQuestion
15
+ license: MIT
16
+ ---
17
+ # Locus seller-readiness workflow
18
+
19
+ Locus supplies pointers to official disclosure law and the cited public records a buyer, lender
20
+ or inspector is likely to find. The owner and their agent or attorney decide what to disclose,
21
+ what to fix and the asking price. Never let a Locus output be presented as "you must disclose X",
22
+ "this is safe to list", "the house is worth Y" or "you are compliant". Locus does not produce
23
+ those statements and neither may you on Locus's behalf. Report record facts with their dates and
24
+ sources, and end each finding with the next question to ask.
25
+
26
+ **How to speak:** follow "How to speak with owners, sellers and buyers" in the `locus-agent-tools`
27
+ skill (https://api.locus.report/.well-known/skill.md), including its 988 crisis guard.
28
+
29
+ Inputs you need from the owner before spending money: the street address, the state, and roughly
30
+ when they plan to list. Do not collect names of occupants, phone numbers, account numbers or
31
+ narratives about past tenants.
32
+
33
+ ## 1. Disclosure duties (free)
34
+
35
+ 1. `locus_seller_disclosure_pointers` with `{ address }` or `{ state }`.
36
+ - `statePointer.status: "verified"`: quote the citation, the official URL, the regime
37
+ (`statutory_form` or `statute_without_form`) and `namedItems`. An empty `namedItems` list
38
+ means read the official text; it does not mean nothing is listed.
39
+ - `statePointer.status: "not_verified"`: Locus has not checked a statute for this state. Give
40
+ the official portal pointer and say so. Do not describe the state as having no disclosure law.
41
+ - `available: false` (`out_of_coverage`, `input_too_coarse`, `jurisdiction_mismatch`,
42
+ `source_unavailable`): report the status and ask for a two-letter state or a specific address.
43
+ 2. `locus_parcel_lookup` with the address for the recorded year built. If the record shows a
44
+ year before 1978, list the `federalPointers` (42 U.S.C. 4852d, 40 CFR 745 subpart F, 24 CFR 35
45
+ subpart A) as rules whose scope covers pre-1978 housing, subject to their exceptions. If the
46
+ year built is missing, say it is unknown; never treat a missing year as post-1978.
47
+
48
+ ## 2. Open permits (free, then paid with approval)
49
+
50
+ 3. `locus_permit_rules` for the jurisdiction: the permit authority, its portal and which work
51
+ needs a permit or a final inspection.
52
+ 4. With the owner's approval of the price, paid `locus-permit-closeout-check` for the exact
53
+ parcel: permit status and the final or closeout fields the source publishes. Report open or
54
+ expired permits as record facts with their dates and permit numbers. Whether old work was
55
+ permitted is a question for the permit office, not a Locus finding.
56
+
57
+ ## 3. Code cases (free)
58
+
59
+ 5. `locus_parcel_code_cases` with the address or parcel id. Report each case's status, dates and
60
+ source link. Coverage is limited; an `out_of_coverage` or empty result is not proof that no case
61
+ exists. Point the owner to the local code-enforcement office for a records request.
62
+
63
+ ## 4. Flood (free)
64
+
65
+ 6. `locus_flood_zone` for the effective FEMA zone, base flood elevation and floodway fields.
66
+ 7. `locus_flood_map_change_notices` for the county: proposed or final map revisions and their
67
+ comment or effective dates. A pending notice is not a change to this parcel's zone; say which
68
+ panel or community it names and that the owner should read the notice.
69
+
70
+ ## 5. District levies (free)
71
+
72
+ 8. `locus_taxing_districts` and `locus_special_district_levy` for the address: the districts on
73
+ the bill and any special assessment or levy a buyer will inherit. Report amounts and years as
74
+ the source gives them. `locus_special_district_levy` covers Texas TCEQ districts only; outside
75
+ Texas, or when the result is empty, ask the county tax office or title company about special
76
+ assessments.
77
+
78
+ ## 6. Tax proration and transfer tax (free, then paid with approval)
79
+
80
+ 9. `locus_tax_calendar` for the county: bill dates, due dates and the delinquency rule, so the
81
+ owner and closing agent know which tax period the proration covers.
82
+ 10. With the owner's approval of the price, paid `locus-piti-transfer-tax-calculator` with the
83
+ owner's assumed sale price and closing date. The price is the owner's input, never a Locus
84
+ estimate. Label every figure as arithmetic over the owner's assumptions and the cited schedule.
85
+
86
+ ## 7. Service-line material (free)
87
+
88
+ Locus reports what the utility has published. It is not an inspection, and "unknown" is never
89
+ "non-lead".
90
+
91
+ - `locus_water_systems` for the address: each serving system's `serviceLineInventory`, the EPA
92
+ system-level counts of lead, galvanized-requiring-replacement, lead-status-unknown and
93
+ non-lead lines, with the reporting period. These counts describe the whole system, not this
94
+ address.
95
+ - `locus_service_line_material` with `{ address }`: in California, the utility-reported
96
+ system-side and customer-side material for the address (`systemOwnedMaterial`,
97
+ `customerOwnedMaterial`), with basis, date and source. `no_matching_record` is not a non-lead
98
+ finding. Outside California it returns `out_of_coverage`.
99
+ - Where the verified state row names lead service lines (Iowa: Iowa Code 558A.4, as amended by
100
+ 2025 Iowa Acts ch. 144, from January 1, 2026), report the system-level counts from
101
+ `locus_water_systems` and point the seller to the utility's published service-line inventory
102
+ for the address. What the disclosure form must say is a question for the seller's agent or
103
+ attorney.
104
+
105
+ ## Completion
106
+
107
+ The owner has: the disclosure-law pointers with their verification status; the federal lead-paint
108
+ pointers when the record shows pre-1978 construction; open-permit and code-case records with dates
109
+ and sources; the flood zone and any pending map notice; the districts and levies on the bill; and
110
+ the tax-calendar facts plus any approved closing arithmetic. Every statement traces to a Locus
111
+ citation or to an input the owner gave you, and each finding ends with the next question to ask
112
+ the owner's agent, attorney, permit office or utility.