Add property assessor assess command
This commit is contained in:
@@ -16,8 +16,9 @@ The skill is intended to:
|
||||
|
||||
## Standalone helper usage
|
||||
|
||||
This skill now ships with a small TypeScript helper package for two tasks:
|
||||
This skill now ships with a small TypeScript helper package for three tasks:
|
||||
|
||||
- assembling an address-first preliminary assessment payload
|
||||
- locating official public-record jurisdiction from an address
|
||||
- rendering a fixed-template PDF report
|
||||
|
||||
@@ -33,6 +34,10 @@ The wrapper script uses the skill-local Node dependencies under `node_modules/`.
|
||||
## Commands
|
||||
|
||||
```bash
|
||||
scripts/property-assessor assess --address "4141 Whiteley Dr, Corpus Christi, TX 78418"
|
||||
scripts/property-assessor assess --address "4141 Whiteley Dr, Corpus Christi, TX 78418" --recipient-email "buyer@example.com"
|
||||
scripts/property-assessor assess --address "4141 Whiteley Dr, Corpus Christi, TX 78418" --recipient-email "buyer@example.com" --output /tmp/property-assessment.pdf
|
||||
|
||||
scripts/property-assessor locate-public-records --address "4141 Whiteley Dr, Corpus Christi, TX 78418"
|
||||
scripts/property-assessor locate-public-records --address "4141 Whiteley Dr, Corpus Christi, TX 78418" --parcel-id "14069438"
|
||||
scripts/property-assessor locate-public-records --address "4141 Whiteley Dr, Corpus Christi, TX 78418" --listing-geo-id "233290"
|
||||
@@ -45,12 +50,34 @@ scripts/property-assessor render-report --input examples/report-payload.example.
|
||||
Default operating sequence:
|
||||
|
||||
1. Normalize the address and property type.
|
||||
2. Discover accessible listing and public-record sources for the same property.
|
||||
3. Build a baseline fact set.
|
||||
4. Review listing photos before making condition claims.
|
||||
5. Pull same-building or nearby comps.
|
||||
6. Underwrite carry costs and risk factors.
|
||||
7. Render the final report as a fixed-template PDF.
|
||||
2. Resolve public-record jurisdiction from the address.
|
||||
3. Discover accessible listing sources for the same property.
|
||||
4. Build a baseline fact set.
|
||||
5. Review listing photos before making condition claims.
|
||||
6. Pull same-building or nearby comps.
|
||||
7. Underwrite carry costs and risk factors.
|
||||
8. Render the final report as a fixed-template PDF.
|
||||
|
||||
### `assess`
|
||||
|
||||
```bash
|
||||
scripts/property-assessor assess --address "<street-address>"
|
||||
scripts/property-assessor assess --address "<street-address>" --recipient-email "<target@example.com>"
|
||||
```
|
||||
|
||||
Current behavior:
|
||||
|
||||
- starts from the address
|
||||
- automatically runs public-record / appraisal-district lookup
|
||||
- returns a structured preliminary report payload
|
||||
- asks for recipient email(s) before PDF generation
|
||||
- renders the fixed-template PDF when recipient email(s) are present
|
||||
|
||||
Important limitation:
|
||||
|
||||
- this first implementation wires the address-first assessment spine
|
||||
- it does not yet auto-run listing extraction, photo review, comps, or carry underwriting inside the helper itself
|
||||
- those richer assessment steps are still governed by the skill workflow and the `web-automation` extractors
|
||||
|
||||
## Source priority
|
||||
|
||||
@@ -178,6 +205,7 @@ For chat-driven runs, prefer file-based commands.
|
||||
|
||||
Good:
|
||||
|
||||
- `scripts/property-assessor assess --address "..."`
|
||||
- `node check-install.js`
|
||||
- `node zillow-photos.js "<url>"`
|
||||
- `node har-photos.js "<url>"`
|
||||
@@ -200,6 +228,7 @@ Template reference:
|
||||
Current renderer:
|
||||
|
||||
```bash
|
||||
scripts/property-assessor assess --address "<street-address>" --recipient-email "<target@example.com>"
|
||||
scripts/property-assessor render-report --input "<report-payload-json>" --output "<output-pdf>"
|
||||
```
|
||||
|
||||
@@ -271,7 +300,21 @@ npm install
|
||||
npm test
|
||||
```
|
||||
|
||||
### 2. Run public-record lookup
|
||||
### 2. Run address-first assess without recipient email
|
||||
|
||||
```bash
|
||||
cd ~/.openclaw/workspace/skills/property-assessor
|
||||
scripts/property-assessor assess --address "4141 Whiteley Dr, Corpus Christi, TX 78418"
|
||||
```
|
||||
|
||||
Expected shape:
|
||||
|
||||
- `needsRecipientEmails: true`
|
||||
- public-record / CAD jurisdiction included in the returned payload
|
||||
- no PDF generated yet
|
||||
- explicit message telling the operator to ask for target recipient email(s)
|
||||
|
||||
### 3. Run public-record lookup directly
|
||||
|
||||
```bash
|
||||
cd ~/.openclaw/workspace/skills/property-assessor
|
||||
@@ -285,7 +328,20 @@ Expected shape:
|
||||
- for Texas: Comptroller county directory link present
|
||||
- for Texas: appraisal district and tax assessor/collector contacts present
|
||||
|
||||
### 3. Run PDF render with the sample payload
|
||||
### 4. Run assess with recipient email and render the PDF
|
||||
|
||||
```bash
|
||||
cd ~/.openclaw/workspace/skills/property-assessor
|
||||
scripts/property-assessor assess --address "4141 Whiteley Dr, Corpus Christi, TX 78418" --recipient-email "buyer@example.com" --output /tmp/property-assessment.pdf
|
||||
```
|
||||
|
||||
Expected result:
|
||||
|
||||
- `needsRecipientEmails: false`
|
||||
- JSON success payload with `outputPath`
|
||||
- a non-empty PDF written to `/tmp/property-assessment.pdf`
|
||||
|
||||
### 5. Run PDF render with the sample payload
|
||||
|
||||
```bash
|
||||
cd ~/.openclaw/workspace/skills/property-assessor
|
||||
@@ -297,7 +353,7 @@ Expected result:
|
||||
- JSON success payload with `outputPath`
|
||||
- a non-empty PDF written to `/tmp/property-assessment.pdf`
|
||||
|
||||
### 4. Verify the email gate
|
||||
### 6. Verify the email gate
|
||||
|
||||
Run the renderer with a payload that omits `recipientEmails`.
|
||||
|
||||
@@ -306,7 +362,7 @@ Expected result:
|
||||
- non-zero exit
|
||||
- explicit message telling the operator to stop and ask for target recipient email(s)
|
||||
|
||||
### 5. Verify the end-to-end skill behavior
|
||||
### 7. Verify the end-to-end skill behavior
|
||||
|
||||
When testing `property-assessor` itself, confirm the assessment:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user