Port property assessor helpers to TypeScript
This commit is contained in:
@@ -53,6 +53,69 @@ Prefer this order unless the user says otherwise:
|
||||
Use the `web-automation` skill for rendered pages and anti-bot-heavy sites.
|
||||
Use `web_search` sparingly to discover alternate URLs, then return to `web-automation` for extraction.
|
||||
|
||||
## Helper runtime
|
||||
|
||||
`property-assessor` now includes TypeScript helper commands for:
|
||||
- public-record jurisdiction lookup
|
||||
- fixed-template PDF rendering
|
||||
|
||||
Before using those helper commands:
|
||||
|
||||
```bash
|
||||
cd ~/.openclaw/workspace/skills/property-assessor
|
||||
npm install
|
||||
```
|
||||
|
||||
## Public-record enrichment
|
||||
|
||||
Public-record / assessor data should be used when available and linked in the final result.
|
||||
|
||||
Default approach:
|
||||
1. start from the street address
|
||||
2. resolve the address to county/state/geography
|
||||
3. identify the related appraisal district / assessor jurisdiction
|
||||
4. use the official public-record site as a primary-source check against listing data
|
||||
5. link the official jurisdiction page and any direct property page used in the final result
|
||||
|
||||
Use the helper CLI first:
|
||||
|
||||
```bash
|
||||
cd ~/.openclaw/workspace/skills/property-assessor
|
||||
npm install
|
||||
scripts/property-assessor locate-public-records --address "<street-address>"
|
||||
```
|
||||
|
||||
This command currently:
|
||||
- resolves the address through the official Census geocoder
|
||||
- returns county/state/FIPS/GEOID context
|
||||
- for Texas, resolves the official Texas Comptroller county directory page
|
||||
- returns the county appraisal district and tax assessor/collector links when available
|
||||
|
||||
Important rules:
|
||||
- listing-site geo IDs are hints only; do **not** treat them as assessor record keys
|
||||
- parcel/APN/account identifiers from Zillow/HAR/Redfin are much stronger keys than listing geo IDs
|
||||
- if a direct public-record property page is available, use its data in the assessment and link it explicitly
|
||||
- if the jurisdiction can be identified but the property detail page is not directly retrievable, still link the official jurisdiction page and say what could not be confirmed
|
||||
|
||||
### Texas rule
|
||||
|
||||
For Texas properties, public-record enrichment is required when feasible.
|
||||
|
||||
Process:
|
||||
1. run `locate-public-records` from the subject address
|
||||
2. use the returned Texas Comptroller county directory page as the official jurisdiction reference
|
||||
3. use the returned CAD website for address / account / parcel lookup
|
||||
4. when accessible, capture:
|
||||
- account number
|
||||
- owner name
|
||||
- land value
|
||||
- improvement value
|
||||
- assessed total
|
||||
- exemptions
|
||||
- tax office links
|
||||
|
||||
In the final assessment, explicitly label official public-record facts as such.
|
||||
|
||||
## Minimum data to capture
|
||||
|
||||
For the target property, capture when available:
|
||||
@@ -74,6 +137,9 @@ For the target property, capture when available:
|
||||
- listing photos and visible condition cues
|
||||
- included appliances and obvious missing appliances
|
||||
- flooring mix, especially whether carpet is present
|
||||
- public-record jurisdiction and linked official source
|
||||
- account / parcel / tax ID if confirmed
|
||||
- official assessed values and exemptions if confirmed
|
||||
|
||||
## Photo and condition review
|
||||
|
||||
@@ -217,6 +283,51 @@ The final assessment must explicitly include these lines in the output:
|
||||
If completed, briefly summarize the condition read from the photos.
|
||||
If not completed, mark condition confidence as limited and say why.
|
||||
|
||||
## PDF report requirement
|
||||
|
||||
The deliverable is not just chat text. A fixed-template PDF report must be generated for completed assessments.
|
||||
|
||||
Use the property-assessor helper CLI:
|
||||
|
||||
```bash
|
||||
cd ~/.openclaw/workspace/skills/property-assessor
|
||||
npm install
|
||||
scripts/property-assessor render-report --input "<report-payload-json>" --output "<output-pdf>"
|
||||
```
|
||||
|
||||
The renderer uses a fixed template and must keep the same look across runs.
|
||||
Template rules are documented in `references/report-template.md`.
|
||||
|
||||
The PDF report should include:
|
||||
1. report header
|
||||
2. verdict panel
|
||||
3. subject-property summary table
|
||||
4. Snapshot
|
||||
5. What I like
|
||||
6. What I do not like
|
||||
7. Comp view
|
||||
8. Underwriting / carry view
|
||||
9. Risks and diligence items
|
||||
10. Photo review
|
||||
11. Public records
|
||||
12. Source links
|
||||
|
||||
### Recipient-email gate
|
||||
|
||||
Before rendering or sending the PDF, the skill must know the target recipient email address(es).
|
||||
|
||||
If the prompt does **not** include target email(s):
|
||||
- stop
|
||||
- ask the user for the target email address(es)
|
||||
- do **not** render or send the final PDF yet
|
||||
|
||||
If target email(s) are present:
|
||||
- include them in the report payload
|
||||
- render the PDF with the fixed template
|
||||
- if a delivery workflow is available, use those same target email(s) for sending
|
||||
|
||||
The renderer enforces this gate and will fail if the payload has no recipient email list.
|
||||
|
||||
## Normalization / make-ready adjustment
|
||||
|
||||
Estimate a rough make-ready budget when condition is not turnkey. The goal is not contractor precision; the goal is apples-to-apples comparison.
|
||||
@@ -257,7 +368,15 @@ Keep the answer concise but decision-grade:
|
||||
6. Risks and diligence items
|
||||
7. Verdict with fair value range and offer guidance
|
||||
|
||||
Also include:
|
||||
- public-record / CAD evidence and links when available
|
||||
- the path to the rendered PDF after generation
|
||||
|
||||
If the user did not provide recipient email(s), ask for them instead of finalizing the PDF workflow.
|
||||
|
||||
## Reuse notes
|
||||
|
||||
When condos are involved, same-building comps and HOA economics usually matter more than neighborhood averages.
|
||||
For detailed heuristics and the reusable memo template, read `references/underwriting-rules.md`.
|
||||
For detailed heuristics and the reusable memo template, read:
|
||||
- `references/underwriting-rules.md`
|
||||
- `references/report-template.md`
|
||||
|
||||
Reference in New Issue
Block a user