@velinussage/locus-agent-skill 0.1.39 → 0.1.43
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/README.md +7 -4
- package/bin/locus-agent-skill.js +2 -2
- package/package.json +4 -2
- package/skill/locus-agent-tools/SKILL.md +126 -31
- package/skill/locus-aging-owner/SKILL.md +109 -0
- package/skill/locus-escrow-shock/SKILL.md +141 -0
- package/skill/locus-home-watch/SKILL.md +207 -0
- package/skill/locus-inherited-home/SKILL.md +108 -0
- package/skill/locus-insurance-nonrenewal/SKILL.md +120 -0
- package/skill/locus-payment-hardship/SKILL.md +71 -0
- package/skill/locus-property-tax-protest/SKILL.md +10 -1
- package/skill/locus-seller-readiness/SKILL.md +119 -0
- package/skill/locus-water-incident/SKILL.md +178 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: locus-aging-owner
|
|
3
|
+
preamble-tier: 1
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
description: Use when an older US homeowner, or an adult child helping a parent, asks about the costs, programs, fraud watch and hazards of the parent's own home, or about the duties and records of a rental property the older owner manages, from cited Locus records.
|
|
6
|
+
triggers:
|
|
7
|
+
- helping my elderly parent with their house
|
|
8
|
+
- my mom is getting older and owns her home
|
|
9
|
+
- senior property tax exemption
|
|
10
|
+
- aging in place help
|
|
11
|
+
- home repair help for seniors
|
|
12
|
+
- my dad still manages his rental
|
|
13
|
+
- older landlord rental property duties
|
|
14
|
+
- elder fraud and my parent's house
|
|
15
|
+
allowed-tools: Bash Read AskUserQuestion
|
|
16
|
+
license: MIT
|
|
17
|
+
---
|
|
18
|
+
# Locus aging-owner workflow
|
|
19
|
+
|
|
20
|
+
Locus gives dated, cited facts about one home or rental and the public programs around it. The
|
|
21
|
+
owner decides what to do. Always use the owner's own address and the owner's own records.
|
|
22
|
+
|
|
23
|
+
**Never:** say the owner can or cannot manage on their own; give legal, tax, investment, medical
|
|
24
|
+
or care advice; say anyone qualifies for a program; give eviction instructions; use eviction or
|
|
25
|
+
court records about tenants as people. Locus does not produce those statements and neither may
|
|
26
|
+
you on Locus's behalf.
|
|
27
|
+
|
|
28
|
+
**How to speak:** follow "How to speak with owners, sellers and buyers" in the `locus-agent-tools`
|
|
29
|
+
skill (https://api.locus.report/.well-known/skill.md), including its 988 crisis guard.
|
|
30
|
+
|
|
31
|
+
## 0. Ask two questions first
|
|
32
|
+
|
|
33
|
+
Use AskUserQuestion:
|
|
34
|
+
1. **Who is asking?** The older owner, or someone helping them (for example an adult child).
|
|
35
|
+
2. **Which property?** The owner's own home, or a rental property the owner manages. If both, do
|
|
36
|
+
the home first.
|
|
37
|
+
|
|
38
|
+
**When the user is helping:** say once, plainly, that acting for another adult on legal or money
|
|
39
|
+
matters needs legal authority, such as a power of attorney, and that Locus never assumes that
|
|
40
|
+
authority. Records lookups are public; signing, filing or applying for the owner is not. Offer
|
|
41
|
+
`locus_estate_property_pointers` with `{ state }` for the state's Uniform Power of Attorney Act
|
|
42
|
+
status and the court self-help page. Do not ask for the parent's name, health, finances or
|
|
43
|
+
account details. You need only the property address.
|
|
44
|
+
|
|
45
|
+
## Path A. The owner's own home (free)
|
|
46
|
+
|
|
47
|
+
1. **Tax relief and dates.** `locus_owner_programs` with
|
|
48
|
+
`{ address, classes: ["exemption_relief", "tax_relief_local", "assessment_deferral", "installment_plan"] }`
|
|
49
|
+
for senior, disability and veteran exemptions, freezes and deferrals, then `locus_tax_calendar`
|
|
50
|
+
for the application and payment dates. Quote each row's fact and source. The assessor decides
|
|
51
|
+
who qualifies.
|
|
52
|
+
2. **Help to stay in the home.** `locus_owner_programs` with `{ address, classes: ["aging_in_place", "home_repair"] }`:
|
|
53
|
+
- the Eldercare Locator, which leads to the local Area Agency on Aging;
|
|
54
|
+
- USDA Section 504 home repair loans and grants (rural areas; grants are for owners 62 and over,
|
|
55
|
+
as the row states);
|
|
56
|
+
- the DOE Weatherization Assistance Program and LIHEAP (energy bills and weatherization);
|
|
57
|
+
- the HUD reverse-mortgage (HECM) counseling requirement. Say only what the row says: for a
|
|
58
|
+
HUD-insured reverse mortgage, the borrower, any non-borrowing spouse and any non-borrowing
|
|
59
|
+
owner must receive counseling from a HUD-approved HECM counselor. `locus_housing_counselors`
|
|
60
|
+
lists nearby counseling agencies. Never recommend or discourage a reverse mortgage.
|
|
61
|
+
3. **Utility costs.** `locus_utility_credits` for credits and rebates at the address, and
|
|
62
|
+
`locus_water_utility_leak_adjustment_rules` for how the water utility handles a leak bill.
|
|
63
|
+
4. **Fraud watch.** People 60 and over bear a large share of reported real-estate fraud losses.
|
|
64
|
+
- `locus_parcel_transfers` with the address: recent recorded sales near the address, with dates;
|
|
65
|
+
check the site address before treating a row as the owner's own. For the full title watch,
|
|
66
|
+
follow section 8 (title watch) of the `locus-home-watch` skill.
|
|
67
|
+
- `locus_fraud_alert_pointer` for the county recorder's free alert, if offered.
|
|
68
|
+
- The National Elder Fraud Hotline row from `locus_owner_programs` (class `aging_in_place`):
|
|
69
|
+
copy its phone number and hours from the row exactly.
|
|
70
|
+
- Offer a standing watch with the `locus-home-watch` skill on the address.
|
|
71
|
+
Locus does not verify anyone's identity; send that check to a title company.
|
|
72
|
+
5. **Hazards, each with a next step.** `locus_flood_zone` and `locus_wildfire_risk`. For each
|
|
73
|
+
hazard fact, state the record, source, uncertainty, and a useful next step (such as a flood
|
|
74
|
+
insurance question or a mitigation program from `locus_owner_programs` with `{ address, hazard }`);
|
|
75
|
+
include a date only when a program window or season start actually supports one.
|
|
76
|
+
6. **Payment trouble.** If the owner is behind on tax, mortgage or utility payments, say payment
|
|
77
|
+
trouble is common and that HUD-approved housing counselors are free or low-cost. Use
|
|
78
|
+
`locus_housing_counselors` with the address for nearby counseling agencies (a directory
|
|
79
|
+
listing is not proof of HUD approval; confirm with HUD), and hand off to the
|
|
80
|
+
`locus-payment-hardship` skill.
|
|
81
|
+
|
|
82
|
+
## Path B. The owner's rental property (free)
|
|
83
|
+
|
|
84
|
+
1. **Landlord duties.** `locus_tenant_statute_pointers` with the rental's place: the state's
|
|
85
|
+
landlord-tenant statute pointers (deposits, entry notice, repairs, termination). These are
|
|
86
|
+
pointers to official text only. Never give eviction steps; for a dispute, route to a landlord-
|
|
87
|
+
tenant attorney or legal aid.
|
|
88
|
+
2. **Registration.** `locus_rental_registration_check` with the address: whether the city runs a
|
|
89
|
+
rental registry and what its record shows.
|
|
90
|
+
3. **Lead paint.** `locus_parcel_lookup` for the recorded year built. If it is before 1978, list
|
|
91
|
+
the federal lead-based-paint disclosure pointers from `locus_seller_disclosure_pointers` (they
|
|
92
|
+
cover leases of pre-1978 housing, subject to their exceptions). A missing year is unknown, not
|
|
93
|
+
post-1978.
|
|
94
|
+
4. **Condition and compliance.** `locus_parcel_code_cases`, `locus_service_requests` and
|
|
95
|
+
`locus_permit_rules` for the address: open code cases, nearby service requests and which work
|
|
96
|
+
needs a permit. Coverage is limited; an empty result is not proof that nothing is open.
|
|
97
|
+
5. **Rent context.** `locus_fair_market_rents` for the area: HUD Fair Market Rents by bedroom
|
|
98
|
+
count, with the year. Context, not a rent recommendation.
|
|
99
|
+
6. **Records watch.** Offer the `locus-home-watch` skill on the rental address.
|
|
100
|
+
7. **Help.** The Area Agency on Aging (via the Eldercare Locator row) for the owner's own support;
|
|
101
|
+
a property manager or attorney for leases, notices and disputes.
|
|
102
|
+
|
|
103
|
+
## Completion
|
|
104
|
+
|
|
105
|
+
The person has, for the chosen path: the cited rows and dates, one concrete next step per item,
|
|
106
|
+
the fraud or records watch they chose, and the human route (Area Agency on Aging, housing
|
|
107
|
+
counselor, legal aid or attorney). When the user was helping, they were told once that legal
|
|
108
|
+
authority matters and were given the state pointers. Every statement traces to a Locus citation
|
|
109
|
+
or the user's own input.
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: locus-escrow-shock
|
|
3
|
+
preamble-tier: 1
|
|
4
|
+
version: 1.1.0
|
|
5
|
+
description: Use when an owner, or their agent, asks why their mortgage payment or escrow went up and what they can do, and has the servicer's escrow analysis letter. Splits the change into its tax and insurance parts and routes each part to cited Locus records, dated windows and choices.
|
|
6
|
+
triggers:
|
|
7
|
+
- my mortgage payment went up
|
|
8
|
+
- escrow went up
|
|
9
|
+
- escrow shortage
|
|
10
|
+
- escrow analysis letter
|
|
11
|
+
- why did my house payment increase
|
|
12
|
+
- escrow surplus refund
|
|
13
|
+
- property tax and insurance went up in my payment
|
|
14
|
+
allowed-tools: Bash Read AskUserQuestion
|
|
15
|
+
license: MIT
|
|
16
|
+
---
|
|
17
|
+
# Locus escrow-shock workflow
|
|
18
|
+
|
|
19
|
+
An escrow increase almost always comes from two parts: property tax and homeowners insurance,
|
|
20
|
+
plus any shortage the servicer is collecting. Locus supplies the cited tax, insurance-cost and
|
|
21
|
+
servicer-rule records for each part. The owner, the servicer, the assessor and the insurance
|
|
22
|
+
agent decide what happens next. Never say "drop your escrow", "your servicer made a mistake",
|
|
23
|
+
"you will win an appeal" or "next year's payment will be X". Locus does not produce those
|
|
24
|
+
statements and neither may you on Locus's behalf.
|
|
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, all from the servicer's escrow analysis letter: the street
|
|
30
|
+
address; the old and new monthly escrow amounts; the annual tax and insurance amounts the letter
|
|
31
|
+
used, old and new; any shortage or surplus and how the servicer proposes to collect or refund
|
|
32
|
+
it; and the end date of the escrow computation year. **Never guess these numbers.** If the owner
|
|
33
|
+
does not have the letter, ask them to request it from the servicer and stop the arithmetic until
|
|
34
|
+
they do. Do not collect the loan number, account numbers, names or phone numbers.
|
|
35
|
+
|
|
36
|
+
## 1. Split the change (free)
|
|
37
|
+
|
|
38
|
+
1. Compute, from the owner's numbers only:
|
|
39
|
+
- the tax change: new annual tax minus old annual tax;
|
|
40
|
+
- the insurance change: new annual premium minus old annual premium (add flood or wind
|
|
41
|
+
premiums as separate lines if the letter lists them);
|
|
42
|
+
- the shortage part: the shortage amount and the number of months the servicer spreads it
|
|
43
|
+
over, as the letter states.
|
|
44
|
+
Show each part's share of the monthly change. If the parts do not add up to the letter's
|
|
45
|
+
total, say so and name the line that differs; do not fill the gap.
|
|
46
|
+
2. Do the split as plain arithmetic: divide each annual change by 12. Use
|
|
47
|
+
`locus_property_math_calculator` only when the owner wants a whole monthly-payment worksheet;
|
|
48
|
+
it takes a tax rate and an annual insurance amount, not the letter's lines. Label every figure
|
|
49
|
+
as arithmetic over the owner's letter.
|
|
50
|
+
|
|
51
|
+
## 2. Tax part (free, then the protest skill)
|
|
52
|
+
|
|
53
|
+
3. `locus_property_tax_context` for the address: the area's median tax bill and effective rate,
|
|
54
|
+
with vintage. It is area context, not this parcel's bill.
|
|
55
|
+
4. `locus_tax_calendar` for the county: reappraisal cadence, bill dates and due dates, so the
|
|
56
|
+
owner can see when the next bill, and the next escrow analysis, will reflect any change.
|
|
57
|
+
5. `locus_appeal_window` with `{ address, noticeDate }` when the owner has an assessment notice.
|
|
58
|
+
Give the computed deadline and its statute. `locus_appeal_filing_guide` gives the forms and
|
|
59
|
+
filing body. If the owner wants to contest the value, hand off to the
|
|
60
|
+
`locus-property-tax-protest` skill with the address, the notice date and the deadline.
|
|
61
|
+
6. `locus_owner_programs` with `classes: ["exemption_relief", "tax_relief_local",
|
|
62
|
+
"assessment_deferral", "installment_plan"]`: homestead, senior, veteran and disability
|
|
63
|
+
exemptions, deferrals and payment plans the registry cites for the place, each with its filing
|
|
64
|
+
window. Say whether the owner's bill already shows each one only if the owner tells you; an
|
|
65
|
+
exemption that is not on the bill is a separate filing with its own deadline.
|
|
66
|
+
|
|
67
|
+
## 3. Insurance part (free)
|
|
68
|
+
|
|
69
|
+
7. `locus_homeowners_insurance_context` for the address: the Census survey's median
|
|
70
|
+
homeowners-insurance cost band for the ZIP, county and state, with vintage. It is an estimate
|
|
71
|
+
for the area, never a quote and never this policy's price. Use it only to say whether the
|
|
72
|
+
owner's premium sits inside or outside the area's published band.
|
|
73
|
+
- `fioZip`: Treasury Federal Insurance Office (FIO) figures for the ZIP, by year, labeled
|
|
74
|
+
**2018-2022 historical area context**: `premiumsPerPolicyUsd`, `nonrenewalRate`,
|
|
75
|
+
cancellation rates, `claimFrequency`, `claimSeverityUsd` and `paidLossRatio`. They describe
|
|
76
|
+
the ZIP's market then, not this policy, today's premium or a forecast. Read `fioZip.status`:
|
|
77
|
+
`reported` gives the figures; `suppressed` means some cells are blank (null is not zero);
|
|
78
|
+
`not_in_source` means the ZIP is absent, which may be suppression or a coverage gap;
|
|
79
|
+
`source_unavailable` means the figures could not be read here (the read failed or the
|
|
80
|
+
snapshot is not enabled). Report it as a gap, not as zero.
|
|
81
|
+
Use `premiumsPerPolicyUsd` only to show how the ZIP's average premium moved over those
|
|
82
|
+
years, never to judge whether this owner's increase is fair.
|
|
83
|
+
8. `locus_flood_premium_context` when the letter lists flood insurance, or the home is in a
|
|
84
|
+
mapped flood zone: the NFIP policy-cost spread for the ZIP, with policy counts.
|
|
85
|
+
9. `locus_mitigation_incentives` for the address (add `hazard: "wind"`, `"wildfire"` or `"flood"`
|
|
86
|
+
when it fits): cited insurance-discount rules and mitigation grants, with their windows.
|
|
87
|
+
10. Say plainly that Locus cannot quote, compare or shop insurance policies. The next step for
|
|
88
|
+
the premium is a coverage review with the owner's insurance agent, with the cited discount
|
|
89
|
+
rules in hand.
|
|
90
|
+
|
|
91
|
+
## 4. Servicer side (free)
|
|
92
|
+
|
|
93
|
+
11. `locus_owner_mortgage_calendar` with `{ "escrowComputationYearEnd": "<date from letter>" }`.
|
|
94
|
+
Read `computedDates.escrowAnnualStatement` for the date the annual statement is due, and the
|
|
95
|
+
`statuteFactCards` entry whose `action` is about the annual escrow statement and shortages.
|
|
96
|
+
Quote that card's `window` text and `source` as written: it states the rules for statement
|
|
97
|
+
timing, the cushion, spreading a shortage and refunding a surplus. Never add a rule the card
|
|
98
|
+
does not state, and never apply a rule to this loan as a finding; the servicer's documents
|
|
99
|
+
control.
|
|
100
|
+
12. If the letter's dates, cushion or shortage spread look different from the card's text, give
|
|
101
|
+
the owner the question to ask the servicer in writing, with the card's citation. Do not call
|
|
102
|
+
it an error.
|
|
103
|
+
|
|
104
|
+
## 5. End with choices and dates
|
|
105
|
+
|
|
106
|
+
13. Close with the choices that apply, each with its date or window and the tool or office that
|
|
107
|
+
supports it:
|
|
108
|
+
- appeal the assessment (deadline from step 5);
|
|
109
|
+
- apply for an exemption or relief program (windows from step 6);
|
|
110
|
+
- review coverage and discounts with an insurance agent (step 10, with the renewal month);
|
|
111
|
+
- ask the servicer how a shortage can be repaid, as a lump sum or spread over months
|
|
112
|
+
(step 11).
|
|
113
|
+
Offer choices, never a verdict on which one to take.
|
|
114
|
+
14. If the owner says they cannot make the new payment, hand off to the `locus-payment-hardship`
|
|
115
|
+
skill without shame: payment trouble is common, and HUD-approved housing counselors give free
|
|
116
|
+
or low-cost help with servicer conversations. `locus_housing_counselors` lists agencies in
|
|
117
|
+
HUD's housing counseling directory near the address; confirm the agency's HUD approval, fees
|
|
118
|
+
and availability with the agency. Do not assess their finances or predict what the servicer
|
|
119
|
+
will do.
|
|
120
|
+
15. Offer to set up the `locus-home-watch` skill so the next tax bill, appeal window and
|
|
121
|
+
exemption deadline surface early. Where the events catalog lists it, its section 9
|
|
122
|
+
`locus.real_estate.escrow_analysis_approaching` reminder (with the month of the servicer's
|
|
123
|
+
usual analysis) surfaces the next escrow analysis 30 days ahead. When the owner wants a single
|
|
124
|
+
self-contained printable HTML/PDF + JSON dossier combining the tax-track and insurance-track
|
|
125
|
+
records in one settlement, offer `locus-escrow-insurance-dossier` (`$0.89`, eligible for
|
|
126
|
+
Stripe MPP `method="stripe"`, Tempo MPP `method="tempo"`, and Base/Solana x402).
|
|
127
|
+
|
|
128
|
+
## Never
|
|
129
|
+
|
|
130
|
+
- Advise keeping, dropping or waiving escrow.
|
|
131
|
+
- Give a lender or servicer verdict ("they overcharged you", "this is illegal").
|
|
132
|
+
- Predict next year's payment, tax bill or premium.
|
|
133
|
+
- Quote, rank or recommend an insurer or policy.
|
|
134
|
+
|
|
135
|
+
## Completion
|
|
136
|
+
|
|
137
|
+
The owner has: the change split into tax, insurance and shortage parts from their own letter;
|
|
138
|
+
the cited tax context, appeal deadline and exemption windows; the area insurance cost band and
|
|
139
|
+
cited discount rules; the escrow fact card's text and the statement date; and a short list of
|
|
140
|
+
choices, each with a date and the office to contact. Every number traces to the owner's letter
|
|
141
|
+
or a Locus citation.
|
|
@@ -0,0 +1,207 @@
|
|
|
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. Technical constraints and check intervals
|
|
72
|
+
|
|
73
|
+
Use these technical constraints when the owner asks for ongoing checks:
|
|
74
|
+
|
|
75
|
+
| Event | Technical constraint | Consequence for interval choice |
|
|
76
|
+
|---|---|---|
|
|
77
|
+
| `deadline_approaching` | Fresh polls without a cursor list every dated event inside `horizonDays` (30 to 60 days). | A weekly check with a fresh poll (deduplicating by `eventId`) surfaces upcoming deadlines without maintaining a 24-hour cursor. |
|
|
78
|
+
| `changes_detected` | Poll cursors expire after 24 hours (`CURSOR_TTL_SECONDS = 86400`). | A late poll starts a new baseline and reports nothing for the gap; a 12-to-24-hour interval preserves continuity when the owner wants ongoing change detection. |
|
|
79
|
+
| `changes_detected` with `locus_boil_water_notices` | The lane lists active state-published orders only; if a cursor expires and re-baselines while an order is active, that order joins the new baseline without emitting as a delta. | A 12-hour check interval (or `subscribe_event` when signed in) avoids silent re-baselining across cursor expiry. Locus is not an emergency alert; the utility's own alerts come first. |
|
|
80
|
+
| Any event | `nextPollMs` is 1 hour (`3600000` ms). | Polling faster than `nextPollMs` re-reads the same upstream window and adds load without finding new records. |
|
|
81
|
+
|
|
82
|
+
If you check `deadline_approaching` weekly, omit the old cursor: a fresh poll lists every dated
|
|
83
|
+
event inside the horizon, and you deduplicate by `eventId` yourself. For `changes_detected`, if
|
|
84
|
+
a cursor has expired, tell the owner the watch restarted on that date and that changes before it
|
|
85
|
+
were not compared. To verify event polling or webhook delivery without waiting for a real filing,
|
|
86
|
+
pass `cursor: "cur_synthetic_test_fixture"`; it emits one synthetic event (`evt_synthetic_*`,
|
|
87
|
+
`synthetic: true`) and returns a real cursor. Keep synthetic test events separate from real
|
|
88
|
+
public-record changes.
|
|
89
|
+
|
|
90
|
+
## 4. Read each poll honestly
|
|
91
|
+
|
|
92
|
+
7. **Empty poll.** It means "nothing new was seen in the lanes checked", not "nothing happened".
|
|
93
|
+
Say exactly that, and name the lanes.
|
|
94
|
+
8. **`truncated: true`.** The result is incomplete: a lane or address was unavailable, the
|
|
95
|
+
cursor was stale, or more events are waiting (`hasMore: true`). Poll again with the new cursor
|
|
96
|
+
for `hasMore`. For an unavailable lane, say which lane could not be read; do not report it as
|
|
97
|
+
clear.
|
|
98
|
+
9. **`source_unavailable` or `unavailable` on a lane.** That source failed. It is not zero
|
|
99
|
+
records and not good news. Report it as a gap and check again on the next poll.
|
|
100
|
+
10. **The first poll of `changes_detected`** sets a baseline and normally reports no changes.
|
|
101
|
+
Say "the watch is set; changes after today will show", not "no changes found".
|
|
102
|
+
|
|
103
|
+
## 5. Triage each event into one next step
|
|
104
|
+
|
|
105
|
+
11. **`deadline_approaching`.** Report `event`, `date`, `daysRemaining`, `basis` and the source
|
|
106
|
+
(`sourceName`, `sourceUrl`, `fetchedAt`). Then:
|
|
107
|
+
- **Appeal or assessment deadline** (tool `locus_appeal_window`, or a `locus_tax_calendar`
|
|
108
|
+
event about revaluation, review, protest, listing or equalization): hand off to the
|
|
109
|
+
`locus-property-tax-protest` skill with the address, the deadline and the notice date if the
|
|
110
|
+
owner has it. That skill owns the clock, the evidence and the filing.
|
|
111
|
+
- **Exemption, relief or program window** (`locus_program_windows`, `locus_owner_programs`):
|
|
112
|
+
call the same free tool for the address and list what the owner must file and by when. If a
|
|
113
|
+
homestead or relief exemption is not on the owner's bill, say it is a separate filing with
|
|
114
|
+
its own deadline.
|
|
115
|
+
- **Tax due or tax-sale date** (`locus_tax_calendar`, `locus_tax_sale_calendar`): report the
|
|
116
|
+
date and the county's official source. Do not estimate penalties.
|
|
117
|
+
- **Disaster assistance** (`locus_open_disaster_assistance`): report the program and its
|
|
118
|
+
closing date from the source.
|
|
119
|
+
- A `basis` of `"published schedule"` is the authority's own calendar; `"statutory"` is the
|
|
120
|
+
date the law sets; `"as filed"` comes from a record. Say which one it is.
|
|
121
|
+
12. **`changes_detected`.** Report `summary`, then each item in `newRecords` with its
|
|
122
|
+
`sourceName`, `sourceUrl` and `fetchedAt`, and each item in `newUpcoming` with its date. Then:
|
|
123
|
+
- **A flood-map change notice** (`locus_flood_map_change_notices`): say a map revision that
|
|
124
|
+
names the county is proposed or final, give its comment deadline or effective date from the
|
|
125
|
+
notice, and say a county notice is not a change to this parcel's zone. Suggest the owner ask
|
|
126
|
+
their insurer how the revision would apply once it is effective.
|
|
127
|
+
- **A permit, development case or code case near or at the address**: give the record
|
|
128
|
+
number, the status and the date, then the next question (for example, "when is the hearing,
|
|
129
|
+
and how do I comment?"). For a code case at the owner's own address, give the case status
|
|
130
|
+
and the issuing office; do not interpret it.
|
|
131
|
+
- **A boil-water notice** (`locus_boil_water_notices`): give the notice status, issue date,
|
|
132
|
+
affected water system and source URL, and point to the utility's own instructions. Say it
|
|
133
|
+
is system context, not confirmed impact at this address. Give no health or safety verdict.
|
|
134
|
+
State-issued boil orders only; a precautionary advisory from the utility may not appear.
|
|
135
|
+
Check the utility's alerts.
|
|
136
|
+
A notice that drops off the list was not necessarily lifted; check the utility. If the
|
|
137
|
+
owner asks what their own service line is made of, call `locus_service_line_material`
|
|
138
|
+
(California, address level); for a break or leak, hand off to `locus-water-incident`.
|
|
139
|
+
- **New dated events** in `newUpcoming` are handled as in step 11.
|
|
140
|
+
|
|
141
|
+
## 6. Paid next steps: offer, never auto-pay
|
|
142
|
+
|
|
143
|
+
13. Deadline and change events carry `nextActions`: a pre-filled paid call with `tool`, `priceUsdc`, `adds`
|
|
144
|
+
and `charge: "charge_free_unless_substantive"`. Typical tools are `locus-assessment-position`,
|
|
145
|
+
`locus-owner-action-brief`, `locus-property-tax`, `locus-permit-closeout-check` and
|
|
146
|
+
`locus-property-update`.
|
|
147
|
+
14. Offer it in one line: what it adds (quote `adds`) and its price (quote `priceUsdc`). Ask the
|
|
148
|
+
owner. Only after a clear yes, call it through `locus_execute` with the x402 payment in
|
|
149
|
+
`_meta["x402/payment"]`, or the REST path in `call.rest`. Never pay because an event arrived,
|
|
150
|
+
and never pay twice for the same `eventId`.
|
|
151
|
+
15. `charged: false` in the paid result means the data was too thin to charge for. Report what
|
|
152
|
+
came back, and do not retry to force a charge.
|
|
153
|
+
16. An event notification is never payment authorization, and never a safe or unsafe verdict.
|
|
154
|
+
|
|
155
|
+
## 7. Landlords and holders of several homes
|
|
156
|
+
|
|
157
|
+
17. Use a signed-in pool and `locus.pool.changes_detected`. For a rental, the free tools
|
|
158
|
+
`locus_rental_registration_check`, `locus_tenant_statute_pointers` and
|
|
159
|
+
`locus_fair_market_rents` answer the common follow-up questions. Keep tenant names and
|
|
160
|
+
contact details out of every call.
|
|
161
|
+
|
|
162
|
+
## 8. Title watch for vacant land, second homes and rentals
|
|
163
|
+
|
|
164
|
+
18. Owners of vacant land, a second home or a rental, and older owners, are the main targets of
|
|
165
|
+
seller-impersonation fraud: someone poses as the owner and tries to sell or mortgage the
|
|
166
|
+
property. (ALTA's 2026 reporting puts vacant land at 82% of targets; that figure is from a
|
|
167
|
+
secondary source.) Offer two steps, with no alarm:
|
|
168
|
+
- **Watch the owner's own parcel for new recorded sales.** Add `locus_parcel_transfers` to the
|
|
169
|
+
`changes_detected` lanes. Its sale rows carry no record id, so the event reports that the
|
|
170
|
+
lane's answer changed, not which sale. When it fires, call `locus_parcel_transfers` for the
|
|
171
|
+
address and look for a row whose site address is the owner's own; the lane lists recorded
|
|
172
|
+
sales within 500 m, so most rows, and most events, will be neighbors' sales. Tell the owner
|
|
173
|
+
that, and check the site address before treating an event as theirs. The lane covers only
|
|
174
|
+
counties whose assessor publishes sales (check `locus_lane_availability` first), and
|
|
175
|
+
assessor sale data can lag the recorder by weeks, so it is a backstop, not an early warning.
|
|
176
|
+
- **Enroll in the county recorder's alert.** Call `locus_fraud_alert_pointer` for the address
|
|
177
|
+
and give the enrollment link or office it returns. Where a county runs an alert service, it
|
|
178
|
+
notifies the enrolled owner when a document is recorded under their name, usually sooner
|
|
179
|
+
than assessor sale data. Where no local row exists, give the recorder search guidance it
|
|
180
|
+
returns and say Locus has not listed an alert service for that county.
|
|
181
|
+
19. Locus does **not** verify a seller's identity or compare a seller to the owner of record.
|
|
182
|
+
For a sale or loan in progress, that check belongs to the title company or closing attorney.
|
|
183
|
+
|
|
184
|
+
## 9. Calendar preparation reminders
|
|
185
|
+
|
|
186
|
+
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`:
|
|
187
|
+
|
|
188
|
+
| Event | Arguments | Trigger and free next steps |
|
|
189
|
+
|---|---|---|
|
|
190
|
+
| `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. |
|
|
191
|
+
| `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`. |
|
|
192
|
+
| `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. |
|
|
193
|
+
|
|
194
|
+
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.
|
|
195
|
+
|
|
196
|
+
Use the same poll or signed-webhook setup as step 6 in section 2, with the selected event name and its arguments. If the owner opts into a webhook subscription, creating it before the trigger window opens sets a silent baseline; because webhook delivery runs when `poll_events` is called with `"deliverWebhooks": true`, a subscription alone does not push on its own.
|
|
197
|
+
|
|
198
|
+
Cursors expire after 24 hours even though the calendar cycles are yearly; when the owner asks for ongoing checks, a 12-hour interval supports continuity and `nextPollMs` gives the minimum interval between checks. 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.
|
|
199
|
+
|
|
200
|
+
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.
|
|
201
|
+
|
|
202
|
+
## Completion
|
|
203
|
+
|
|
204
|
+
The owner has: the watch target (addresses or pool), the two events set up with their
|
|
205
|
+
arguments, the delivery mode and cadence, and where the cursor or subscription is stored. For
|
|
206
|
+
each event so far: the fact, its date and source, the next step, and any paid offer with its
|
|
207
|
+
price and the owner's answer. Every gap from a failed or truncated read is named, not hidden.
|
|
@@ -0,0 +1,108 @@
|
|
|
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, note that `thresholdScope` is
|
|
82
|
+
`"non_exhaustive_excerpt"`, and state that small-estate statutes often have conditional
|
|
83
|
+
branches (such as different dollar limits for a surviving spouse or specific property classes)
|
|
84
|
+
and that thresholds change; read the linked statute before ruling an estate out.
|
|
85
|
+
- `heirsProperty`: the Uniform Partition of Heirs Property Act status from the Uniform Law
|
|
86
|
+
Commission. This matters when several heirs share ownership. `not_listed` is not proof the
|
|
87
|
+
state has no related law.
|
|
88
|
+
- `courtHelp`: the state court self-help page for probate.
|
|
89
|
+
- A `not_verified` part names no rule. Give the portal pointer and say Locus has not checked it.
|
|
90
|
+
|
|
91
|
+
## 6. If the family decides to sell
|
|
92
|
+
|
|
93
|
+
9. Only when the family says they plan to sell, hand off to the `locus-seller-readiness` skill.
|
|
94
|
+
Selling an estate home usually needs the estate's legal authority first; say so.
|
|
95
|
+
|
|
96
|
+
## 7. Human help
|
|
97
|
+
|
|
98
|
+
10. End with the route to a probate attorney or legal aid, and the state court self-help page from
|
|
99
|
+
step 8. For help with payments on the home, HUD-approved housing counselors are free or low-cost:
|
|
100
|
+
`locus_housing_counselors` with the address lists nearby agencies, and the
|
|
101
|
+
`locus-payment-hardship` skill covers payment trouble.
|
|
102
|
+
|
|
103
|
+
## Completion
|
|
104
|
+
|
|
105
|
+
The person has: the tax status and the next due date; the exemption rows and the assessor
|
|
106
|
+
question; the insurance question to ask; the recorded-transfer check, the recorder alert and an
|
|
107
|
+
optional watch; the state estate pointers with their verification status; and the route to a
|
|
108
|
+
probate attorney or legal aid. Every statement traces to a Locus citation or the person's own input.
|