@rubytech/create-realagent-code 0.1.23 → 0.1.24
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/package.json +1 -1
- package/payload/platform/plugins/admin/PLUGIN.md +4 -0
- package/payload/platform/plugins/admin/skills/admin-user-management/SKILL.md +47 -0
- package/payload/platform/plugins/admin/skills/commitment-followthrough/SKILL.md +60 -0
- package/payload/platform/plugins/admin/skills/file-presentation/SKILL.md +67 -0
- package/payload/platform/plugins/admin/skills/session-management/SKILL.md +62 -0
- package/payload/platform/plugins/deep-research/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/deep-research/PLUGIN.md +7 -1
- package/payload/platform/plugins/deep-research/recipes/README.md +36 -0
- package/payload/platform/plugins/deep-research/skills/academic-verify/SKILL.md +75 -0
- package/payload/platform/plugins/deep-research/skills/book-mirror/SKILL.md +68 -0
- package/payload/platform/plugins/deep-research/skills/data-research/SKILL.md +108 -0
- package/payload/platform/plugins/deep-research/skills/strategic-reading/SKILL.md +69 -0
- package/payload/platform/plugins/docs/references/deployment.md +3 -2
- package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts +1 -1
- package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.d.ts +7 -2
- package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.d.ts.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.js +7 -2
- package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.js.map +1 -1
- package/payload/platform/plugins/linkedin-import/skills/linkedin-import/SKILL.md +2 -0
- package/payload/platform/plugins/memory/PLUGIN.md +6 -0
- package/payload/platform/plugins/memory/skills/archive-crawler/SKILL.md +67 -0
- package/payload/platform/plugins/memory/skills/concept-synthesis/SKILL.md +80 -0
- package/payload/platform/plugins/memory/skills/conversation-archive/SKILL.md +2 -0
- package/payload/platform/plugins/memory/skills/document-ingest/SKILL.md +2 -0
- package/payload/platform/plugins/scheduling/PLUGIN.md +3 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.d.ts +7 -3
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.d.ts.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js +7 -3
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js.map +1 -1
- package/payload/platform/plugins/scheduling/skills/briefing/SKILL.md +75 -0
- package/payload/platform/plugins/scheduling/skills/daily-prep/SKILL.md +61 -0
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js +14 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +14 -0
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +9 -2
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts +25 -1
- package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/system-prompt.js +54 -3
- package/payload/platform/services/claude-session-manager/dist/system-prompt.js.map +1 -1
- package/payload/platform/templates/agents/admin/IDENTITY.md +38 -284
- package/payload/platform/templates/agents/admin/SOUL.md +4 -4
- package/payload/platform/templates/specialists/agents/content-producer.md +24 -69
- package/payload/platform/templates/specialists/agents/database-operator.md +49 -155
- package/payload/platform/templates/specialists/agents/personal-assistant.md +27 -177
- package/payload/platform/templates/specialists/agents/project-manager.md +29 -96
- package/payload/platform/templates/specialists/agents/research-assistant.md +36 -78
- package/payload/premium-plugins/real-agency/agents/compliance.md +14 -0
- package/payload/premium-plugins/real-agency/agents/negotiator.md +22 -0
- package/payload/premium-plugins/real-agency/agents/valuer.md +16 -0
- package/payload/premium-plugins/real-agency/plugins/estate-business/.claude-plugin/plugin.json +1 -1
- package/payload/premium-plugins/real-agency/plugins/estate-business/PLUGIN.md +29 -13
- package/payload/premium-plugins/real-agency/plugins/estate-business/skills/commission-calculator/SKILL.md +40 -0
- package/payload/premium-plugins/real-agency/plugins/estate-business/skills/month-end-close/SKILL.md +69 -0
- package/payload/premium-plugins/real-agency/plugins/estate-business/skills/payment-batch-stager/SKILL.md +42 -0
- package/payload/premium-plugins/real-agency/plugins/estate-business/skills/period-reconciler/SKILL.md +42 -0
- package/payload/premium-plugins/real-agency/plugins/estate-sales/.claude-plugin/plugin.json +1 -1
- package/payload/premium-plugins/real-agency/plugins/estate-sales/PLUGIN.md +27 -13
- package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/chase-progression/SKILL.md +107 -0
- package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/risk-scorer/SKILL.md +42 -0
- package/payload/premium-plugins/real-agency/plugins/leads/.claude-plugin/plugin.json +1 -1
- package/payload/premium-plugins/real-agency/plugins/leads/PLUGIN.md +24 -10
- package/payload/premium-plugins/real-agency/plugins/leads/skills/chain-progression-tracker/SKILL.md +51 -0
- package/payload/premium-plugins/real-agency/plugins/leads/skills/diary-builder/SKILL.md +38 -0
- package/payload/premium-plugins/real-agency/plugins/leads/skills/enquiry-triage/SKILL.md +36 -0
- package/payload/premium-plugins/real-agency/plugins/leads/skills/morning-round/SKILL.md +72 -0
- package/payload/premium-plugins/real-agency/plugins/listings/.claude-plugin/plugin.json +1 -1
- package/payload/premium-plugins/real-agency/plugins/listings/PLUGIN.md +43 -12
- package/payload/premium-plugins/real-agency/plugins/listings/skills/comparable-finder/SKILL.md +52 -0
- package/payload/premium-plugins/real-agency/plugins/listings/skills/epc-checker/SKILL.md +38 -0
- package/payload/premium-plugins/real-agency/plugins/listings/skills/listing-copy-writer/SKILL.md +55 -0
- package/payload/premium-plugins/real-agency/plugins/listings/skills/local-market-stats/SKILL.md +33 -0
- package/payload/premium-plugins/real-agency/plugins/listings/skills/new-instruction/SKILL.md +78 -0
- package/payload/premium-plugins/real-agency/plugins/listings/skills/particulars-builder/SKILL.md +48 -0
- package/payload/premium-plugins/real-agency/plugins/listings/skills/portal-launch-scheduler/SKILL.md +49 -0
- package/payload/premium-plugins/real-agency/plugins/listings/skills/pricing-scenario-builder/SKILL.md +35 -0
- package/payload/premium-plugins/real-agency/plugins/listings/skills/supplier-booker/SKILL.md +39 -0
- package/payload/premium-plugins/real-agency/plugins/listings/skills/talk-track-composer/SKILL.md +36 -0
- package/payload/premium-plugins/real-agency/plugins/listings/skills/terms-of-business-drafter/SKILL.md +54 -0
- package/payload/premium-plugins/real-agency/plugins/listings/skills/valuation-prep/SKILL.md +69 -0
- package/payload/premium-plugins/real-agency/plugins/loop/PLUGIN.md +20 -0
- package/payload/premium-plugins/real-agency/plugins/loop/skills/compliance-flag-checker/SKILL.md +53 -0
- package/payload/premium-plugins/real-agency/plugins/loop/skills/priority-ranker/SKILL.md +40 -0
- package/payload/premium-plugins/real-agency/plugins/loop/skills/tone-matched-drafter/SKILL.md +53 -0
- package/payload/premium-plugins/real-agency/plugins/loop/skills/variance-narrator/SKILL.md +50 -0
- package/payload/premium-plugins/real-agency/plugins/loop/skills/vendor-research/SKILL.md +54 -0
- package/payload/server/server.js +73 -162
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: morning-round
|
|
3
|
+
description: "Produce the daily one-page snapshot of diary, awaiting replies, overnight enquiries, stalled deals, and the top three actions for today. Triggers when the operator says 'morning round', 'morning brief', 'what's on', 'where are we', 'start my day', 'kick me off', 'what's new since yesterday', or a bare 'morning' or 'good morning' with no other content. Also fires on schedule at the profile's delivery time."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Morning round
|
|
7
|
+
|
|
8
|
+
The master workflow run daily by the negotiator at the agent's chosen time, Monday through Saturday. It is read-only by design. Every claim in the output cites a connector read or a profile entry, every section appears even when empty, and the workflow never writes to the CRM or sends a message.
|
|
9
|
+
|
|
10
|
+
This skill earns the right to act. Until the operator trusts the morning round to look without permission, the chase-progression workflow has no licence to send anything.
|
|
11
|
+
|
|
12
|
+
## Inputs
|
|
13
|
+
|
|
14
|
+
- The operator's customisation profile, read first. The profile names the delivery channel, the stalled threshold per stakeholder type, the agent's preferred section order, and any section they have hidden.
|
|
15
|
+
- The agent's calendar for today, read via the calendar connector.
|
|
16
|
+
- The CRM state of every sale-agreed deal and every active negotiation, read via the CRM connector.
|
|
17
|
+
- The portal enquiry feed since the last morning round, read via the portal connectors and email connector.
|
|
18
|
+
- The WhatsApp Business inbox since the last morning round.
|
|
19
|
+
|
|
20
|
+
If any connector is unavailable the workflow still produces the round and names the gap in plain language, for example "portal feeds unavailable, overnight enquiries not included in this round".
|
|
21
|
+
|
|
22
|
+
## Architecture principles encoded here
|
|
23
|
+
|
|
24
|
+
The six principles in spec 00 §8 apply once at this master-skill layer and are not repeated in the building-block skills it composes.
|
|
25
|
+
|
|
26
|
+
- Read before write. This workflow never writes anything.
|
|
27
|
+
- Stage, don't send. Not applicable, there is nothing to send.
|
|
28
|
+
- One screen of output. The five sections must fit one Claude UI exchange. If they do not, the workflow has summarised badly.
|
|
29
|
+
- Cite the source. Every number, name, and claim traces back to a connector read or a profile entry.
|
|
30
|
+
- Teach the profile. Every operator interaction after the round feeds the profile through `profile-writer`. See learning hooks below.
|
|
31
|
+
- Reversible. Read-only, nothing to reverse.
|
|
32
|
+
|
|
33
|
+
## Output shape
|
|
34
|
+
|
|
35
|
+
One markdown page, five sections, always in this order unless the profile has reordered them. Sections with no content collapse to one line so the operator always knows the section was checked.
|
|
36
|
+
|
|
37
|
+
1. **Today's diary.** Viewings, valuations, market appraisals, vendor meetings, completion calls. Times, addresses, contact name, postcode. Built by `diary-builder`.
|
|
38
|
+
2. **Awaiting reply.** Anything chased in the last 7 days (default, profile-learned) that has had no reply. Grouped by recipient type. Built by reading the CRM contact log and the email or WhatsApp sent folder.
|
|
39
|
+
3. **New overnight.** Portal and email enquiries since the last login, triaged. Hot enquiries show verbatim. Lukewarm, cold, duplicate, and spam show a one-line summary only. Built by `enquiry-triage`.
|
|
40
|
+
4. **Stalled.** Sale-agreed deals where nothing has moved past the stalled threshold. Each line names the property, the days stalled, and the most likely cause from chain state. Built by `chain-progression-tracker`.
|
|
41
|
+
5. **Top three.** Three things to action first, each with the reason it made the list. Reason is one short sentence, for example "Mrs Patel, her buyer's mortgage offer expires in 9 days and the survey was booked but not done". Built by composing `priority-ranker` and `variance-narrator`.
|
|
42
|
+
|
|
43
|
+
## Continuous learning hooks
|
|
44
|
+
|
|
45
|
+
The morning round is the highest-volume source of learning signals in the product because it runs daily and the operator's behaviour after reading it is observable. Every signal below is written through `profile-writer`, never inline.
|
|
46
|
+
|
|
47
|
+
- Skip pattern per source. If the operator never acts on lukewarm enquiries from a specific portal, that source's weight in `enquiry-triage` drops over time.
|
|
48
|
+
- Stalled threshold drift. "I don't consider this stalled until day 10" updates the threshold immediately. Consistently acting at day 5 tightens it automatically.
|
|
49
|
+
- Top-three accuracy. When the operator actions an item from the top three the same day, the ranking is correct. When they action a lower item instead, `priority-ranker` reweights toward whatever feature distinguished the actioned item.
|
|
50
|
+
- Delivery time. If the operator asks for the round before the scheduled time, schedule earlier. If they ignore it for hours, schedule later or move to on-demand only.
|
|
51
|
+
- Section preferences. "Lead with stalled deals, not the diary" reorders permanently. "Drop the awaiting-reply section, it's noise" hides it and surfaces those items in `chase-progression` instead.
|
|
52
|
+
|
|
53
|
+
## Approval gates
|
|
54
|
+
|
|
55
|
+
None. The workflow is read-only.
|
|
56
|
+
|
|
57
|
+
## Cross-references
|
|
58
|
+
|
|
59
|
+
The chase-progression workflow uses the same `chain-progression-tracker` skill to build its single-deal deep dives. The morning round produces the across-pipeline view; `chase-progression` expands any stalled item the operator names.
|
|
60
|
+
|
|
61
|
+
## Profile keys this skill reads
|
|
62
|
+
|
|
63
|
+
- `realagent.morning_round.delivery_channel`
|
|
64
|
+
- `realagent.morning_round.delivery_time`
|
|
65
|
+
- `realagent.morning_round.section_order`
|
|
66
|
+
- `realagent.morning_round.hidden_sections`
|
|
67
|
+
- `realagent.stalled_threshold_days.vendor`
|
|
68
|
+
- `realagent.stalled_threshold_days.buyer`
|
|
69
|
+
- `realagent.stalled_threshold_days.solicitor`
|
|
70
|
+
- `realagent.stalled_threshold_days.broker`
|
|
71
|
+
- `realagent.stalled_threshold_days.surveyor`
|
|
72
|
+
- `realagent.awaiting_reply_lookback_days`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "real-agency-listings",
|
|
3
|
-
"description": "
|
|
3
|
+
"description": "Valuation prep and new-instruction onboarding for UK residential sales agents. Includes the valuation-prep master plus four building blocks (comparable-finder, local-market-stats, pricing-scenario-builder, talk-track-composer) and the new-instruction master plus its six building blocks (terms-of-business-drafter, epc-checker, supplier-booker, listing-copy-writer, particulars-builder, portal-launch-scheduler). Also retains the existing listing-presentation, property-marketing, and home-preparation skills.",
|
|
4
4
|
"version": "0.1.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Rubytech LLC"
|
|
@@ -1,33 +1,64 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: real-agency-listings
|
|
3
|
-
description: "
|
|
3
|
+
description: "Valuation prep and new-instruction onboarding for UK residential sales agents. Includes the valuation-prep master plus four building blocks (comparable-finder, local-market-stats, pricing-scenario-builder, talk-track-composer) and the new-instruction master plus its six building blocks (terms-of-business-drafter, epc-checker, supplier-booker, listing-copy-writer, particulars-builder, portal-launch-scheduler). Also retains the existing listing-presentation, property-marketing, and home-preparation skills."
|
|
4
4
|
tools: []
|
|
5
|
+
skills:
|
|
6
|
+
- skills/valuation-prep/SKILL.md
|
|
7
|
+
- skills/comparable-finder/SKILL.md
|
|
8
|
+
- skills/local-market-stats/SKILL.md
|
|
9
|
+
- skills/pricing-scenario-builder/SKILL.md
|
|
10
|
+
- skills/talk-track-composer/SKILL.md
|
|
11
|
+
- skills/new-instruction/SKILL.md
|
|
12
|
+
- skills/terms-of-business-drafter/SKILL.md
|
|
13
|
+
- skills/epc-checker/SKILL.md
|
|
14
|
+
- skills/supplier-booker/SKILL.md
|
|
15
|
+
- skills/listing-copy-writer/SKILL.md
|
|
16
|
+
- skills/particulars-builder/SKILL.md
|
|
17
|
+
- skills/portal-launch-scheduler/SKILL.md
|
|
18
|
+
- skills/listing-presentation/SKILL.md
|
|
19
|
+
- skills/property-marketing/SKILL.md
|
|
20
|
+
- skills/home-preparation/SKILL.md
|
|
5
21
|
always: false
|
|
6
22
|
metadata: {"platform":{"optional":true,"embed":["admin"]}}
|
|
7
23
|
---
|
|
8
24
|
|
|
9
|
-
# Real Agency
|
|
25
|
+
# Real Agency, Valuations and New Instructions
|
|
10
26
|
|
|
11
|
-
|
|
27
|
+
Fifteen skills covering the two listings-side master workflows (valuation-prep, new-instruction) plus the listing-presentation and marketing skills.
|
|
12
28
|
|
|
13
29
|
## When to Activate
|
|
14
30
|
|
|
15
|
-
The user is preparing
|
|
31
|
+
The user is preparing for a valuation or market appraisal, has just won an instruction, or is asking about the listing-presentation, property-marketing, or home-preparation flow.
|
|
16
32
|
|
|
17
33
|
## Skills
|
|
18
34
|
|
|
19
|
-
| Skill | Purpose |
|
|
20
|
-
|
|
21
|
-
| `
|
|
22
|
-
| `
|
|
23
|
-
| `
|
|
35
|
+
| Skill | Owner specialist | Purpose |
|
|
36
|
+
|-------|------------------|---------|
|
|
37
|
+
| `valuation-prep` | valuer | Master workflow: the pre-appointment pack |
|
|
38
|
+
| `comparable-finder` | valuer | Pulls and ranks comparable evidence |
|
|
39
|
+
| `local-market-stats` | valuer | Three context numbers for the prep pack |
|
|
40
|
+
| `pricing-scenario-builder` | valuer | Generates the pricing options |
|
|
41
|
+
| `talk-track-composer` | valuer | Drafts vendor questions, objections, USP |
|
|
42
|
+
| `new-instruction` | valuer then negotiator | Master workflow: terms to portal in 72 hours |
|
|
43
|
+
| `terms-of-business-drafter` | compliance | Populates the agency template and stages DocuSign |
|
|
44
|
+
| `epc-checker` | valuer | EPC register lookup and order staging |
|
|
45
|
+
| `supplier-booker` | negotiator | Photographer and floorplan bookings |
|
|
46
|
+
| `listing-copy-writer` | negotiator | Portal-optimised descriptions, material info |
|
|
47
|
+
| `particulars-builder` | negotiator (chains into Maxy `content-producer` for PDF render) | Property brochure |
|
|
48
|
+
| `portal-launch-scheduler` | negotiator | Schedules and stages the portal uploads |
|
|
49
|
+
| `listing-presentation` | negotiator | Listing presentation framework (existing) |
|
|
50
|
+
| `property-marketing` | negotiator | Property marketing campaigns (existing) |
|
|
51
|
+
| `home-preparation` | negotiator | Vendor staging guidance (existing) |
|
|
24
52
|
|
|
25
53
|
## Tools Used
|
|
26
54
|
|
|
27
55
|
No MCP server. Skills operate via existing platform tools:
|
|
28
|
-
|
|
29
|
-
- `
|
|
56
|
+
|
|
57
|
+
- `memory-search` for domain knowledge
|
|
58
|
+
- `render-component` for structured choices
|
|
59
|
+
- `profile-read` and `profile-update` for the customisation profile
|
|
60
|
+
- `action-pending`, `action-approve`, `action-reject`, `action-edit` for the eight approval gates in new-instruction
|
|
30
61
|
|
|
31
62
|
## References
|
|
32
63
|
|
|
33
|
-
Domain knowledge files loaded on demand by each skill.
|
|
64
|
+
Domain knowledge files loaded on demand by each skill.
|
package/payload/premium-plugins/real-agency/plugins/listings/skills/comparable-finder/SKILL.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: comparable-finder
|
|
3
|
+
description: "Pull and rank comparable evidence for a valuation prep pack. Returns three SSTC and three sold in the last 12 months within the profile's comparable radius. Built for use inside valuation-prep; the operator does not invoke it directly."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Comparable finder
|
|
7
|
+
|
|
8
|
+
A building-block skill called by `valuation-prep` to assemble the comparables section.
|
|
9
|
+
|
|
10
|
+
## What it does
|
|
11
|
+
|
|
12
|
+
Given a subject property, the skill queries the portal data feeds and Land Registry within the profile's comparable radius (default 0.5 miles). It picks six properties: three sold subject to contract and three sold and completed in the last 12 months.
|
|
13
|
+
|
|
14
|
+
Selection criteria, in priority order:
|
|
15
|
+
|
|
16
|
+
1. Location proximity. Same street ranks above same postcode, which ranks above adjacent postcode.
|
|
17
|
+
2. Property type match. Detached with detached, semi with semi, flat with flat.
|
|
18
|
+
3. Size match. Similar bedroom count, then similar square footage when known.
|
|
19
|
+
4. Tenure match. Freehold with freehold, leasehold with leasehold.
|
|
20
|
+
5. Condition match if observable. Similar standard of finish, similar age.
|
|
21
|
+
|
|
22
|
+
The profile's exclude filters apply: distressed sales, off-market sales, agent-bought sales, probate sales, anything the operator has previously asked to exclude.
|
|
23
|
+
|
|
24
|
+
## Output shape
|
|
25
|
+
|
|
26
|
+
A table, one row per comparable, six rows total when data permits. Columns:
|
|
27
|
+
|
|
28
|
+
- Address
|
|
29
|
+
- Asking or sold price
|
|
30
|
+
- Beds
|
|
31
|
+
- Square footage (blank if unknown)
|
|
32
|
+
- Time on market in days
|
|
33
|
+
- Agent who marketed it
|
|
34
|
+
|
|
35
|
+
A price-per-square-foot column is added only if at least four of the six rows have square footage. Showing it on a sparse set is misleading.
|
|
36
|
+
|
|
37
|
+
If the radius is too tight to return three SSTC plus three sold, the skill widens the radius once and notes it in the output: "extended search to 0.75 miles to find six comparables".
|
|
38
|
+
|
|
39
|
+
## What it does not do
|
|
40
|
+
|
|
41
|
+
- It does not produce price recommendations. That is `pricing-scenario-builder`.
|
|
42
|
+
- It does not write to anything.
|
|
43
|
+
- It does not store the comparables for re-use; each appointment runs fresh, with the Pi 5 cache providing the speed.
|
|
44
|
+
|
|
45
|
+
## Connectors
|
|
46
|
+
|
|
47
|
+
Read: Rightmove, Zoopla, OnTheMarket data feeds; Land Registry. No writes.
|
|
48
|
+
|
|
49
|
+
## Profile keys
|
|
50
|
+
|
|
51
|
+
- `realagent.comparable_radius_miles` (default 0.5)
|
|
52
|
+
- `realagent.comparable_exclude_filters` (list)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: epc-checker
|
|
3
|
+
description: "Look up the EPC register for a property and decide whether an order is needed. Returns the current EPC rating and expiry if one exists, or stages an order request to the agent's preferred EPC supplier if not. Built for use inside new-instruction."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# EPC checker
|
|
7
|
+
|
|
8
|
+
A building-block skill called by `new-instruction`. Decides whether the property has a current EPC and, if not, stages an order.
|
|
9
|
+
|
|
10
|
+
## What it does
|
|
11
|
+
|
|
12
|
+
Queries the EPC register by address. Three outcomes:
|
|
13
|
+
|
|
14
|
+
1. **Current EPC found.** Records the asset rating (A to G), the certificate reference, and the expiry date. The workflow records this in the CRM and moves on. No gate needed.
|
|
15
|
+
2. **Expired EPC found.** Records the prior rating and the expiry date. Stages an order with the agent's preferred EPC supplier from the profile. *Gate: approve order before send.*
|
|
16
|
+
3. **No EPC found.** Stages an order. *Gate: approve order before send.*
|
|
17
|
+
|
|
18
|
+
The order is an email draft to the supplier with the property address, vendor contact, and the agent's standard EPC brief.
|
|
19
|
+
|
|
20
|
+
## Compliance ground
|
|
21
|
+
|
|
22
|
+
The Energy Performance of Buildings (England and Wales) Regulations 2012 (SI 2012/3118) require an EPC before marketing for sale. The asset rating must be stated in all commercial media. Domestic penalty range GBP 500 to GBP 5,000. `compliance-flag-checker` runs over the listing copy at step 5 of `new-instruction` to make sure the EPC rating is present once the certificate has been issued.
|
|
23
|
+
|
|
24
|
+
## What it does not do
|
|
25
|
+
|
|
26
|
+
- It does not perform the EPC inspection. That is the supplier.
|
|
27
|
+
- It does not send the order. Sending requires the operator's approval.
|
|
28
|
+
- It does not write to the EPC register.
|
|
29
|
+
|
|
30
|
+
## Connectors
|
|
31
|
+
|
|
32
|
+
Read: EPC register, profile (preferred supplier).
|
|
33
|
+
Write (staged only): email to supplier.
|
|
34
|
+
|
|
35
|
+
## Profile keys
|
|
36
|
+
|
|
37
|
+
- `realagent.suppliers.epc`
|
|
38
|
+
- `realagent.epc_order.standard_brief` (default email body, learned)
|
package/payload/premium-plugins/real-agency/plugins/listings/skills/listing-copy-writer/SKILL.md
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: listing-copy-writer
|
|
3
|
+
description: "Draft portal-optimised property descriptions for a new instruction. Produces headline, key features bullet list, full description, and location paragraph in the agent's voice. Built for use inside new-instruction."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Listing copy writer
|
|
7
|
+
|
|
8
|
+
A building-block skill called by `new-instruction`. Produces the listing copy the operator approves before any portal upload.
|
|
9
|
+
|
|
10
|
+
## What it produces
|
|
11
|
+
|
|
12
|
+
Four parts, in order:
|
|
13
|
+
|
|
14
|
+
1. **Headline.** One line, attention-getting, accurate. No exaggeration. ASA upheld complaints (shared driveway described as "private drive") show the cost of overstatement; the skill stays inside what the property survey or photographs can support.
|
|
15
|
+
2. **Key features.** Four to eight bullet points covering the strongest selling features. Numbers where they help (bedroom count, garden length, square footage). One feature per bullet.
|
|
16
|
+
3. **Full description.** Two to four paragraphs in the agent's voice, structured per the profile's preferred section order. Length target from the profile.
|
|
17
|
+
4. **Location paragraph.** One paragraph on transport, schools, amenities. Sourced from area knowledge in the CRM and the agent's prior listings in the same area.
|
|
18
|
+
|
|
19
|
+
## Material information
|
|
20
|
+
|
|
21
|
+
The Digital Markets, Competition and Consumers Act 2024 obligation to disclose material information bears on every listing. The draft includes:
|
|
22
|
+
|
|
23
|
+
- Council tax band
|
|
24
|
+
- Tenure (and ground rent and service charge if leasehold)
|
|
25
|
+
- Property type and construction materials
|
|
26
|
+
- Number of rooms, utilities (electricity, water, sewerage), heating type
|
|
27
|
+
- Broadband and mobile coverage where known
|
|
28
|
+
- Parking arrangement
|
|
29
|
+
- Building safety information, covenants, rights of way, easements, listed status, conservation area, tree preservation orders, flood risk, coastal erosion, planning permission, structural issues (subsidence, damp, asbestos, Japanese knotweed), mining or coalfield context, where applicable
|
|
30
|
+
|
|
31
|
+
Missing items are flagged at the top of the draft so the operator can fill them before approving. Rightmove now rejects listings without the mandatory fields.
|
|
32
|
+
|
|
33
|
+
`compliance-flag-checker` runs against the draft before the operator sees it.
|
|
34
|
+
|
|
35
|
+
## Voice source
|
|
36
|
+
|
|
37
|
+
Reads the profile's voice samples and the operator's prior listing copy. Within a month of edit-before-send diffs, the drafts should need minimal editing.
|
|
38
|
+
|
|
39
|
+
## What it does not do
|
|
40
|
+
|
|
41
|
+
- It does not upload to the portals. Portal upload is staged by `portal-launch-scheduler` and fired on the operator's approval.
|
|
42
|
+
- It does not produce the PDF brochure. That is `particulars-builder`.
|
|
43
|
+
- It does not commission the photography or floorplan; both must exist for the location paragraph to reference real images, and for the portal upload to be complete.
|
|
44
|
+
|
|
45
|
+
## Connectors
|
|
46
|
+
|
|
47
|
+
Read: profile (voice samples, section order, length target), CRM (property details, area knowledge).
|
|
48
|
+
Write: none.
|
|
49
|
+
|
|
50
|
+
## Profile keys
|
|
51
|
+
|
|
52
|
+
- `realagent.voice_samples`
|
|
53
|
+
- `realagent.listing_copy.section_order`
|
|
54
|
+
- `realagent.listing_copy.length_words`
|
|
55
|
+
- `realagent.listing_copy.headline_style` ("descriptive" | "feature-led" | "location-led", learned)
|
package/payload/premium-plugins/real-agency/plugins/listings/skills/local-market-stats/SKILL.md
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: local-market-stats
|
|
3
|
+
description: "Compute the three context numbers for the valuation prep pack: average days on market, asking-to-sold ratio, current stock count. Built for use inside valuation-prep; the operator does not invoke it directly."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Local market stats
|
|
7
|
+
|
|
8
|
+
A building-block skill called by `valuation-prep`. Returns three numbers, no more. This section is context, not headline; four numbers feels like a research paper, two feels thin.
|
|
9
|
+
|
|
10
|
+
## What it produces
|
|
11
|
+
|
|
12
|
+
For the immediate area around the subject property (same postcode sector, or wider if the sector has fewer than 10 transactions in the lookback window):
|
|
13
|
+
|
|
14
|
+
1. **Average days on market.** Median time from list to sold-subject-to-contract, over the last 90 days, for the property type that matches the subject.
|
|
15
|
+
2. **Asking-to-sold ratio.** Median sold price as a percentage of original asking price, last 90 days, same property type. A number under 95% signals a soft market; over 100% signals competition.
|
|
16
|
+
3. **Current stock count.** How many active listings of the matching type are on the portals right now.
|
|
17
|
+
|
|
18
|
+
Each number shows the lookback window and the property-type filter so the operator can challenge any of them in conversation with the vendor.
|
|
19
|
+
|
|
20
|
+
## What it does not do
|
|
21
|
+
|
|
22
|
+
- It does not produce trend narratives. That is `variance-narrator`, called separately when the round needs a comparison sentence.
|
|
23
|
+
- It does not surface recent fall-throughs as a number; if the count is non-trivial it is flagged in one sentence under the stats.
|
|
24
|
+
- It does not write to anything.
|
|
25
|
+
|
|
26
|
+
## Connectors
|
|
27
|
+
|
|
28
|
+
Read: Rightmove, Zoopla, OnTheMarket data feeds; Land Registry. No writes.
|
|
29
|
+
|
|
30
|
+
## Profile keys
|
|
31
|
+
|
|
32
|
+
- `realagent.market_stats.lookback_days` (default 90)
|
|
33
|
+
- `realagent.market_stats.area_definition` ("postcode_sector" | "1_mile_radius" | "ward", default "postcode_sector")
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: new-instruction
|
|
3
|
+
description: "Run the post-win onboarding sequence after a valuation is won. Drafts terms of business, checks the EPC, books photographer and floorplan supplier, drafts listing copy and PDF particulars, schedules portal launch, and drafts the vendor welcome. Each write action is individually gated. Triggers when the operator says 'set up <address>', 'I won <name>', 'I won the <address> val', 'instruction taken at <address>', 'get <address> on the market', 'kick off the <name> property'. Also offered proactively when the CRM marks a property as instructed."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# New instruction
|
|
7
|
+
|
|
8
|
+
The master workflow that takes a property from "instruction won" to "on the portal" inside 72 hours. Owned jointly by the valuer (until terms are signed and the EPC is confirmed) and the negotiator (from photography onward).
|
|
9
|
+
|
|
10
|
+
Done well, this workflow is the second-highest-value moment in the agent's week after winning the instruction itself. The speed compounds: faster on-market means more viewings in the first weekend, which is when offers happen.
|
|
11
|
+
|
|
12
|
+
## Inputs
|
|
13
|
+
|
|
14
|
+
- The property address.
|
|
15
|
+
- The vendor name and contact details (read from the CRM record created at the appointment).
|
|
16
|
+
- The fee structure agreed at the appointment, captured verbally by the operator or read from the diary notes.
|
|
17
|
+
- The customisation profile.
|
|
18
|
+
|
|
19
|
+
If any input is missing, the workflow asks once and then proceeds with the rest staged.
|
|
20
|
+
|
|
21
|
+
## Architecture principles encoded here
|
|
22
|
+
|
|
23
|
+
- Read before write. The workflow opens by reading the property's CRM state, the EPC register, and the calendar. It writes nothing until the operator approves each individual stage.
|
|
24
|
+
- Stage, don't send. Every write action is staged, not fired. Eight gates in total, each individually approved.
|
|
25
|
+
- One screen of output. The sequenced checklist is one screen even when every item is staged. Each item collapses to a status line.
|
|
26
|
+
- Cite the source. Every populated field in the terms of business, the listing copy, and the particulars traces to a CRM record, a profile entry, or a connector read.
|
|
27
|
+
- Teach the profile. Learning hooks below.
|
|
28
|
+
- Reversible. Every staged item can be cancelled before approval. Approved items create CRM activity records the operator can rescind.
|
|
29
|
+
|
|
30
|
+
## Sequence and approval gates
|
|
31
|
+
|
|
32
|
+
The workflow presents the eight steps in order. The operator can approve them one at a time, approve everything ("ship everything"), or pause and return later. State is preserved between sessions.
|
|
33
|
+
|
|
34
|
+
1. **Terms of business.** Drafted by `terms-of-business-drafter` from the agency template, populated with property, vendor, fee structure, sole or multi agency, marketing period, withdrawal fee. Staged in DocuSign with the vendor as recipient. *Gate: approve before send.*
|
|
35
|
+
2. **EPC check.** `epc-checker` looks up the EPC register. If a current EPC exists, the workflow records the expiry date and moves on, no gate needed. If not, an order is staged with the agent's preferred supplier from the profile. *Gate: approve order before send if no current EPC.*
|
|
36
|
+
3. **Photographer booking.** `supplier-booker` drafts a booking request to the agent's preferred photographer with the property address, vendor contact, and the agent's standard brief. *Gate: approve before send.*
|
|
37
|
+
4. **Floorplan booking.** Same as photography. Combined into a single booking request if the same supplier handles both. *Gate: approve before send.*
|
|
38
|
+
5. **Listing copy.** Drafted by `listing-copy-writer` in the agent's voice, length, and structure from the profile. Headline, key features bullets, full description, location paragraph. Optimised for the profile's portals. *Gate: approve before any portal upload.*
|
|
39
|
+
6. **Particulars.** PDF brochure built by `particulars-builder`. The skill chains into the Maxy `content-producer` for the PDF render so the agency brand is applied consistently. Staged for the agent's review and the vendor's review before any wider distribution. *Gate: approve distribution before send.*
|
|
40
|
+
7. **Portal launch schedule.** `portal-launch-scheduler` proposes the launch sequence (Rightmove premium on a Friday by default; learns). Staged, not fired. *Gate: approve schedule before any portal upload happens.*
|
|
41
|
+
8. **Vendor welcome email.** Drafted by `tone-matched-drafter` explaining what happens next, what to expect, when to expect photos, who will be in touch. *Gate: approve before send.*
|
|
42
|
+
|
|
43
|
+
## AML and material information
|
|
44
|
+
|
|
45
|
+
AML on the vendor must be passed before any marketing goes live. The workflow does not run AML itself; it stages a request to the agent's preferred AML provider and blocks portal launch until the AML status is "passed". If the operator overrides ("I know this vendor, push it live now"), the override is logged with a compliance flag and the AML check is still queued.
|
|
46
|
+
|
|
47
|
+
Material information for portal listings (council tax band, tenure, ground rent if leasehold, and the rest of the DMCCA 2024 fields) is gathered into the listing copy. Missing items are flagged before the operator approves the copy. `compliance-flag-checker` runs against every output of this workflow before approval.
|
|
48
|
+
|
|
49
|
+
## Continuous learning hooks
|
|
50
|
+
|
|
51
|
+
- Supplier preferences. If the operator routinely overrides the suggested photographer, EPC supplier, floorplan supplier, or AML provider, the new preferred supplier is learned.
|
|
52
|
+
- Copy voice and length. Edit-before-send diffs on the listing copy feed `listing-copy-writer`. Within a month, drafts should need minimal editing.
|
|
53
|
+
- Launch timing. Friday morning is a heuristic default. If the agent consistently launches on a different day, around school holidays, around area events, or around a sale calendar, the scheduler picks that up.
|
|
54
|
+
- Particulars structure. Section order, photo count, whether the floorplan goes early or late, whether the location paragraph leads or trails, all adapt.
|
|
55
|
+
- Fee structure drift. A single override is a one-off. Three same-direction overrides in a month update the profile's default fee logic.
|
|
56
|
+
|
|
57
|
+
All writes go through `profile-writer`.
|
|
58
|
+
|
|
59
|
+
## Connectors
|
|
60
|
+
|
|
61
|
+
Read: CRM, EPC register, calendar, profile.
|
|
62
|
+
Write: DocuSign (terms), email (vendor welcome, supplier bookings), portal upload APIs (Rightmove, Zoopla, OnTheMarket, staged only).
|
|
63
|
+
|
|
64
|
+
## Profile keys
|
|
65
|
+
|
|
66
|
+
- `realagent.fee_structure.default` (sole or multi, percentage, minimum)
|
|
67
|
+
- `realagent.fee_structure.withdrawal_fee`
|
|
68
|
+
- `realagent.fee_structure.marketing_period_weeks`
|
|
69
|
+
- `realagent.suppliers.photographer`
|
|
70
|
+
- `realagent.suppliers.floorplan`
|
|
71
|
+
- `realagent.suppliers.epc`
|
|
72
|
+
- `realagent.suppliers.aml_provider`
|
|
73
|
+
- `realagent.listing_copy.length_words` (target word count, learned)
|
|
74
|
+
- `realagent.listing_copy.section_order`
|
|
75
|
+
- `realagent.particulars.template_path`
|
|
76
|
+
- `realagent.portal_launch.preferred_day` (default Friday)
|
|
77
|
+
- `realagent.portal_launch.preferred_time`
|
|
78
|
+
- `realagent.portal_launch.rightmove_tier` ("standard" | "premium" | "premium_listing")
|
package/payload/premium-plugins/real-agency/plugins/listings/skills/particulars-builder/SKILL.md
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: particulars-builder
|
|
3
|
+
description: "Compose the PDF property brochure for a new instruction from the listing copy and the photography. Stages the brochure for the agent's review and the vendor's review before any wider distribution. Built for use inside new-instruction; chains into the Maxy content-producer skill for the PDF render."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Particulars builder
|
|
7
|
+
|
|
8
|
+
A building-block skill called by `new-instruction`. Composes the property brochure.
|
|
9
|
+
|
|
10
|
+
## What it does
|
|
11
|
+
|
|
12
|
+
Reads the agency's brochure template path from the profile, then assembles the brochure content:
|
|
13
|
+
|
|
14
|
+
- Cover with headline, hero photograph, address, asking price
|
|
15
|
+
- Floorplan page
|
|
16
|
+
- Photography gallery in the profile's preferred order
|
|
17
|
+
- Description and key features, copied from the approved listing copy
|
|
18
|
+
- Location paragraph and a small location map
|
|
19
|
+
- Agency footer with branding, contact details, CMP and redress scheme markings
|
|
20
|
+
|
|
21
|
+
The skill hands the content to the Maxy `content-producer` skill for the PDF render. That step is where the agency brand is applied to a print-ready file. Particulars are A4, two-fold or three-fold depending on the profile.
|
|
22
|
+
|
|
23
|
+
## Approval flow
|
|
24
|
+
|
|
25
|
+
The PDF is staged in two places at once:
|
|
26
|
+
|
|
27
|
+
1. The agent's review surface, with one-click approve or "redraft with changes".
|
|
28
|
+
2. A vendor-review draft email is prepared, ready to send when the agent approves.
|
|
29
|
+
|
|
30
|
+
The brochure is not distributed to portals or to the public until the agent and the vendor both approve.
|
|
31
|
+
|
|
32
|
+
## What it does not do
|
|
33
|
+
|
|
34
|
+
- It does not generate brand assets. The agency template from onboarding is the source of brand styling.
|
|
35
|
+
- It does not write listing copy. That is `listing-copy-writer`.
|
|
36
|
+
- It does not commission photography.
|
|
37
|
+
|
|
38
|
+
## Connectors
|
|
39
|
+
|
|
40
|
+
Read: profile (template path, photography order, agency branding), CRM (property, vendor, listing copy from step 5 of new-instruction).
|
|
41
|
+
Write: PDF artefact in the agent's Drive, draft email to vendor (staged only).
|
|
42
|
+
|
|
43
|
+
## Profile keys
|
|
44
|
+
|
|
45
|
+
- `realagent.particulars.template_path`
|
|
46
|
+
- `realagent.particulars.photo_count` (target, default 12, learned)
|
|
47
|
+
- `realagent.particulars.section_order` (e.g. floorplan early or late, learned)
|
|
48
|
+
- `realagent.particulars.location_paragraph_position` ("lead" | "trail", learned)
|
package/payload/premium-plugins/real-agency/plugins/listings/skills/portal-launch-scheduler/SKILL.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: portal-launch-scheduler
|
|
3
|
+
description: "Propose a launch sequence for a new listing across Rightmove, Zoopla, and OnTheMarket, with viewings opened for the weekend. Stages the upload; nothing fires without the operator's approval. Built for use inside new-instruction."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Portal launch scheduler
|
|
7
|
+
|
|
8
|
+
A building-block skill called by `new-instruction`. Proposes the launch sequence and stages the portal uploads.
|
|
9
|
+
|
|
10
|
+
## What it produces
|
|
11
|
+
|
|
12
|
+
A schedule, one row per portal, showing:
|
|
13
|
+
|
|
14
|
+
- Portal name (Rightmove, Zoopla, OnTheMarket)
|
|
15
|
+
- Listing tier (standard or premium where the profile names a tier)
|
|
16
|
+
- Go-live date and time
|
|
17
|
+
- Viewing slots opened for the weekend
|
|
18
|
+
- Any portal-specific fields that need confirmation before upload
|
|
19
|
+
|
|
20
|
+
The default sequence is Rightmove premium on a Friday morning, Zoopla and OnTheMarket simultaneously, viewings opened for the weekend. The schedule is the heuristic default; the scheduler learns the agent's preferred day and time over time.
|
|
21
|
+
|
|
22
|
+
## Blocking conditions
|
|
23
|
+
|
|
24
|
+
The launch is blocked until:
|
|
25
|
+
|
|
26
|
+
1. The AML status on the vendor is "passed" (or the operator explicitly overrides, in which case the override is logged with a compliance flag).
|
|
27
|
+
2. The listing copy has been approved by the operator.
|
|
28
|
+
3. The particulars have been approved by both the agent and the vendor.
|
|
29
|
+
4. The EPC certificate is in hand and its rating is in the listing copy.
|
|
30
|
+
|
|
31
|
+
If any block applies, the schedule shows what is blocked and what the blocker is, so the operator knows exactly what to clear before approval.
|
|
32
|
+
|
|
33
|
+
## What it does not do
|
|
34
|
+
|
|
35
|
+
- It does not fire the uploads on its own. Approval is required per the gate in `new-instruction` step 7.
|
|
36
|
+
- It does not produce the listing copy.
|
|
37
|
+
- It does not amend listings after launch. Post-launch edits are a separate flow.
|
|
38
|
+
|
|
39
|
+
## Connectors
|
|
40
|
+
|
|
41
|
+
Read: profile (portal preferences, default day and time, Rightmove tier), CRM (property, listing copy, AML status, EPC).
|
|
42
|
+
Write (staged only): portal upload APIs (Rightmove, Zoopla, OnTheMarket).
|
|
43
|
+
|
|
44
|
+
## Profile keys
|
|
45
|
+
|
|
46
|
+
- `realagent.portal_launch.preferred_day` (default Friday)
|
|
47
|
+
- `realagent.portal_launch.preferred_time` (default 09:00)
|
|
48
|
+
- `realagent.portal_launch.rightmove_tier`
|
|
49
|
+
- `realagent.portal_launch.viewing_slots_per_day` (default 8, learned)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pricing-scenario-builder
|
|
3
|
+
description: "Generate the pricing scenarios block for the valuation prep pack. Default output is three numbers (quick-sale, market, aspirational) each with one sentence of reasoning. The format adapts to the profile's preference. Built for use inside valuation-prep."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Pricing scenario builder
|
|
7
|
+
|
|
8
|
+
A building-block skill called by `valuation-prep`. Reads the comparables and the local stats already gathered, then produces the pricing block in the format the profile names.
|
|
9
|
+
|
|
10
|
+
## Three default scenarios
|
|
11
|
+
|
|
12
|
+
1. **Quick-sale price.** What the property would likely sell for in under 30 days, priced to attract immediate offers. Anchored on the lower comparable cluster.
|
|
13
|
+
2. **Market price.** The 30 to 60 day expectation, priced in line with the strongest comparables. The default headline number.
|
|
14
|
+
3. **Aspirational price.** The 90 day plus number with a stretch caveat, priced to test the ceiling.
|
|
15
|
+
|
|
16
|
+
Each scenario has one sentence of reasoning naming the comparables or the stat that supports it. The reasoning is plain language, no jargon.
|
|
17
|
+
|
|
18
|
+
## Format adaptation
|
|
19
|
+
|
|
20
|
+
If the profile records that the operator has corrected the output toward a single recommendation with a range, the skill outputs that shape instead: a single number with a low-to-high band. If the operator has corrected toward a single number with no range, that is the output. The default is three scenarios because vendors anchor on the spread before they anchor on the headline.
|
|
21
|
+
|
|
22
|
+
## What it does not do
|
|
23
|
+
|
|
24
|
+
- It does not name a fee. Fee structure is in the terms of business produced by `terms-of-business-drafter`.
|
|
25
|
+
- It does not commit to a number with the vendor. The market appraisal is a professional opinion, not a guarantee. The agent does that in the room.
|
|
26
|
+
- It does not write to anything.
|
|
27
|
+
|
|
28
|
+
## Connectors
|
|
29
|
+
|
|
30
|
+
Read: portal data and Land Registry through the comparables already passed in by `valuation-prep`. No direct connector calls. No writes.
|
|
31
|
+
|
|
32
|
+
## Profile keys
|
|
33
|
+
|
|
34
|
+
- `realagent.pricing_format` ("three_scenarios" | "single_with_range" | "single_number")
|
|
35
|
+
- `realagent.pricing.aspirational_caveat_phrase` (learned)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: supplier-booker
|
|
3
|
+
description: "Draft and stage booking requests to photographer, floorplan supplier, and other property-prep suppliers from the agent's preferred-supplier list. Built for use inside new-instruction."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Supplier booker
|
|
7
|
+
|
|
8
|
+
A building-block skill called by `new-instruction`. Stages the booking emails that get the photographer and the floorplan supplier into the property in the first 48 hours after instruction.
|
|
9
|
+
|
|
10
|
+
## What it does
|
|
11
|
+
|
|
12
|
+
For each supplier the workflow needs to book (photographer, floorplan, and optionally a combined supplier when one provider handles both), the skill drafts an email to the agent's preferred supplier from the profile. The draft includes:
|
|
13
|
+
|
|
14
|
+
- Property full address with postcode
|
|
15
|
+
- Access details (vendor contact, key location, lockbox code, alarm code) read from the CRM record
|
|
16
|
+
- The agent's standard brief for that supplier (photography style preferences, number of shots, floorplan format)
|
|
17
|
+
- Preferred date range
|
|
18
|
+
- Reply-to address
|
|
19
|
+
|
|
20
|
+
If the photographer and floorplan supplier are the same provider, the skill combines them into one booking request rather than sending two emails.
|
|
21
|
+
|
|
22
|
+
## What it does not do
|
|
23
|
+
|
|
24
|
+
- It does not send. Sending requires the operator's approval.
|
|
25
|
+
- It does not book the supplier into the calendar. The supplier confirms back, then the calendar entry is created.
|
|
26
|
+
- It does not pay the supplier or set up an invoice. Supplier payment runs through `month-end-close`.
|
|
27
|
+
|
|
28
|
+
## Connectors
|
|
29
|
+
|
|
30
|
+
Read: profile (preferred suppliers, briefs), CRM (vendor contact, access details).
|
|
31
|
+
Write (staged only): email to each supplier.
|
|
32
|
+
|
|
33
|
+
## Profile keys
|
|
34
|
+
|
|
35
|
+
- `realagent.suppliers.photographer`
|
|
36
|
+
- `realagent.suppliers.floorplan`
|
|
37
|
+
- `realagent.suppliers.combined` (boolean, true if one provider handles both)
|
|
38
|
+
- `realagent.suppliers.brief.photography` (default brief, learned)
|
|
39
|
+
- `realagent.suppliers.brief.floorplan`
|
package/payload/premium-plugins/real-agency/plugins/listings/skills/talk-track-composer/SKILL.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: talk-track-composer
|
|
3
|
+
description: "Draft the talk-track block for the valuation prep pack: three questions for the vendor, two likely objections, the agent's USP in the agent's voice. Built for use inside valuation-prep."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Talk-track composer
|
|
7
|
+
|
|
8
|
+
A building-block skill called by `valuation-prep`. Produces the prompt the agent uses in the room.
|
|
9
|
+
|
|
10
|
+
## What it produces
|
|
11
|
+
|
|
12
|
+
Three sub-sections, in this order.
|
|
13
|
+
|
|
14
|
+
1. **Questions to ask the vendor.** Three open questions tailored to the property and the vendor's situation. Examples vary with context: timeline pressure, chain position, prior agent contact, fee sensitivity.
|
|
15
|
+
2. **Likely objections.** Two objections most likely to come up, given the comparables and the local stats. Each shown with a one-sentence acknowledgement and a one-sentence response in the agent's voice.
|
|
16
|
+
3. **The USP.** The agent's USP framed in the agent's words, from the profile's voice samples. The phrasing tightens over time as the workflow watches which phrasings get used versus edited.
|
|
17
|
+
|
|
18
|
+
## Voice source
|
|
19
|
+
|
|
20
|
+
The skill reads the profile's voice samples (three to five emails the agent has written) and prior successful talk-tracks. If voice samples are not yet seeded, the output uses a generic professional tone and flags the absence so the operator knows to add samples.
|
|
21
|
+
|
|
22
|
+
## What it does not do
|
|
23
|
+
|
|
24
|
+
- It does not draft messages to send. That is `tone-matched-drafter`.
|
|
25
|
+
- It does not write to anything.
|
|
26
|
+
- It does not pretend to know the vendor when the CRM record has no prior contact. If the vendor is new, the questions are designed to learn rather than to anchor.
|
|
27
|
+
|
|
28
|
+
## Connectors
|
|
29
|
+
|
|
30
|
+
Read: profile (voice samples), CRM (vendor history if any). No writes.
|
|
31
|
+
|
|
32
|
+
## Profile keys
|
|
33
|
+
|
|
34
|
+
- `realagent.voice_samples` (list of email bodies, used for tone extraction)
|
|
35
|
+
- `realagent.usp_phrases` (list, learned)
|
|
36
|
+
- `realagent.objection_responses` (map of common objections to preferred responses, learned)
|