@rubytech/taskmaster 1.14.2 → 1.16.1

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.
Files changed (47) hide show
  1. package/dist/agents/skills/frontmatter.js +1 -0
  2. package/dist/agents/skills/workspace.js +64 -22
  3. package/dist/agents/system-prompt.js +1 -1
  4. package/dist/agents/taskmaster-tools.js +6 -4
  5. package/dist/agents/tool-policy.js +2 -1
  6. package/dist/agents/tools/contact-create-tool.js +4 -3
  7. package/dist/agents/tools/contact-delete-tool.js +3 -2
  8. package/dist/agents/tools/contact-lookup-tool.js +5 -4
  9. package/dist/agents/tools/contact-update-tool.js +6 -3
  10. package/dist/agents/tools/memory-tool.js +3 -1
  11. package/dist/agents/tools/qr-generate-tool.js +45 -0
  12. package/dist/agents/workspace-migrations.js +351 -0
  13. package/dist/build-info.json +3 -3
  14. package/dist/config/agent-tools-reconcile.js +79 -0
  15. package/dist/control-ui/assets/{index-B3nkSwMP.js → index-Bd75cI7J.js} +547 -573
  16. package/dist/control-ui/assets/index-Bd75cI7J.js.map +1 -0
  17. package/dist/control-ui/assets/index-BkymP95Y.css +1 -0
  18. package/dist/control-ui/index.html +2 -2
  19. package/dist/gateway/server-http.js +5 -0
  20. package/dist/gateway/server-methods/web.js +13 -0
  21. package/dist/gateway/server.impl.js +29 -1
  22. package/dist/hooks/bundled/ride-dispatch/HOOK.md +57 -0
  23. package/dist/hooks/bundled/ride-dispatch/handler.js +450 -0
  24. package/dist/hooks/bundled/ride-dispatch/stripe-webhook.js +191 -0
  25. package/dist/memory/internal.js +24 -1
  26. package/dist/memory/manager.js +3 -3
  27. package/dist/records/records-manager.js +7 -2
  28. package/package.json +1 -1
  29. package/skills/business-assistant/SKILL.md +1 -1
  30. package/skills/qr-code/SKILL.md +63 -0
  31. package/skills/sales-closer/SKILL.md +1 -1
  32. package/templates/beagle-zanzibar/agents/admin/AGENTS.md +67 -1
  33. package/templates/beagle-zanzibar/agents/public/AGENTS.md +102 -22
  34. package/templates/beagle-zanzibar/skills/beagle-zanzibar/SKILL.md +7 -8
  35. package/templates/beagle-zanzibar/skills/beagle-zanzibar/references/ride-matching.md +46 -55
  36. package/templates/customer/agents/admin/BOOTSTRAP.md +5 -1
  37. package/templates/customer/agents/public/AGENTS.md +1 -2
  38. package/templates/real-agent/skills/buyer-feedback/SKILL.md +111 -0
  39. package/templates/real-agent/skills/property-enquiry/SKILL.md +126 -0
  40. package/templates/real-agent/skills/valuation-booking/SKILL.md +182 -0
  41. package/templates/real-agent/skills/vendor-updates/SKILL.md +153 -0
  42. package/templates/real-agent/skills/viewing-management/SKILL.md +111 -0
  43. package/templates/taskmaster/agents/public/AGENTS.md +1 -1
  44. package/templates/taskmaster/agents/public/IDENTITY.md +1 -1
  45. package/templates/taskmaster/agents/public/SOUL.md +2 -2
  46. package/dist/control-ui/assets/index-B3nkSwMP.js.map +0 -1
  47. package/dist/control-ui/assets/index-l54GcTyj.css +0 -1
@@ -0,0 +1,111 @@
1
+ ---
2
+ name: buyer-feedback
3
+ description: Collect structured post-viewing feedback from property buyers via WhatsApp. Sends a conversational feedback request after viewings, captures sentiment, interest level, objections, and next steps. Stores feedback per-property and per-buyer for vendor reporting.
4
+ emoji: 🏠
5
+ always: false
6
+ ---
7
+
8
+ # Buyer Feedback Collection
9
+
10
+ Collect post-viewing feedback from buyers in a natural, conversational way via WhatsApp. This is NOT a form — it's a friendly check-in that captures structured data.
11
+
12
+ ## When to Trigger
13
+
14
+ This skill applies when:
15
+ - The agent (or a scheduled event) initiates a post-viewing feedback request
16
+ - A buyer messages after a viewing with unsolicited feedback
17
+ - The business owner asks you to collect feedback on a specific viewing
18
+
19
+ ## Feedback Flow
20
+
21
+ ### Step 1: Opening
22
+
23
+ Send a warm, brief message referencing the specific property and viewing date. Keep it personal — use the buyer's first name and the property address.
24
+
25
+ Example:
26
+ > Hi [Name]! Hope you're well. Just wanted to check in after your viewing at [Address] on [Date]. How did you find it? 😊
27
+
28
+ ### Step 2: Capture Key Data Points
29
+
30
+ Through natural conversation (NOT a bullet list of questions), gather:
31
+
32
+ 1. **Overall impression** — Did they like the property? First reaction.
33
+ 2. **Interest level** — Are they considering making an offer? Scale: Hot / Warm / Cool / Not interested
34
+ 3. **Positives** — What did they like most?
35
+ 4. **Concerns/objections** — What put them off or gave them pause? (Price, condition, location, size, layout, parking, garden, neighbours, noise, etc.)
36
+ 5. **Comparison** — How does it compare to others they've seen?
37
+ 6. **Next steps** — Would they like a second viewing? Are they ready to make an offer? Need more information?
38
+ 7. **Price perception** — Do they think it's fairly priced? (Don't ask directly — infer from conversation or ask tactfully: "How did you feel about the asking price?")
39
+
40
+ ### Step 3: Follow-up Questions
41
+
42
+ Based on their responses, ask ONE follow-up at a time. Don't fire multiple questions. Match their energy — if they're brief, be brief. If they're chatty, engage.
43
+
44
+ If they express interest:
45
+ - "Would you like to book a second viewing?"
46
+ - "Is there anything else you'd like to know about the property?"
47
+
48
+ If they have concerns:
49
+ - Acknowledge the concern genuinely
50
+ - Offer context if you have it (e.g. "The vendor is open to offers" or "There's planning permission for an extension")
51
+ - Don't be pushy — respect their assessment
52
+
53
+ If not interested:
54
+ - Thank them warmly
55
+ - Ask what they ARE looking for (captures buyer criteria for future matching)
56
+
57
+ ### Step 4: Store Feedback
58
+
59
+ After the conversation, save structured feedback to TWO locations:
60
+
61
+ **Property file** — `memory/shared/properties/[property-slug]/feedback/[date]-[buyer-name].md`
62
+ **Buyer profile** — `memory/users/[phone]/viewings/[date]-[property-slug].md`
63
+
64
+ Use this template:
65
+
66
+ ```markdown
67
+ # Viewing Feedback
68
+
69
+ - **Property:** [Full address]
70
+ - **Date:** [Viewing date]
71
+ - **Buyer:** [Name] ([Phone])
72
+ - **Agent present:** [Name if known]
73
+
74
+ ## Feedback
75
+
76
+ - **Overall impression:** [Their words / summary]
77
+ - **Interest level:** [Hot / Warm / Cool / Not interested]
78
+ - **Positives:** [What they liked]
79
+ - **Concerns:** [What they didn't like or worried about]
80
+ - **Price perception:** [Fair / Too high / Bargain / Not discussed]
81
+ - **Comparison:** [How it ranked vs other properties]
82
+ - **Next steps:** [Second viewing / Offer / Thinking / Declined]
83
+
84
+ ## Quotes
85
+ > [Any notable direct quotes from the buyer]
86
+
87
+ ## Notes
88
+ [Any additional context — body language cues mentioned, timing factors, chain status, etc.]
89
+ ```
90
+
91
+ ## Vendor Reporting
92
+
93
+ When the business owner or agent asks for a viewing feedback summary for a property:
94
+
95
+ 1. Read all feedback files from `memory/shared/properties/[property-slug]/feedback/`
96
+ 2. Compile a summary showing:
97
+ - Total viewings to date
98
+ - Interest breakdown (Hot/Warm/Cool/Not interested)
99
+ - Common positives (themes across multiple viewers)
100
+ - Common objections (recurring concerns)
101
+ - Price perception trend
102
+ - Actionable recommendations (e.g. "3 of 5 viewers mentioned the dated kitchen — consider adjusting marketing to acknowledge renovation potential")
103
+
104
+ ## Rules
105
+
106
+ - **Never fabricate feedback.** Only report what buyers actually said.
107
+ - **Never share one buyer's feedback with another buyer.** Feedback goes to the vendor/agent only.
108
+ - **Be genuinely conversational.** Buyers who feel interrogated give shallow answers. Buyers who feel heard give honest ones.
109
+ - **Respect "no."** If a buyer doesn't want to give feedback, thank them and move on. Don't chase.
110
+ - **Timing matters.** Best results come 2-24 hours after the viewing. Same day is ideal. After 48 hours, response rates drop sharply.
111
+ - **One message at a time.** Never send a wall of questions. This is a conversation, not a survey.
@@ -0,0 +1,126 @@
1
+ ---
2
+ name: property-enquiry
3
+ description: Structured intake for new buyer enquiries. Captures requirements, financial position, chain status, and timeline to enable property matching and prioritisation.
4
+ ---
5
+
6
+ # Property Enquiry
7
+
8
+ You handle initial buyer contact — capturing everything the agent needs to qualify them and match properties effectively.
9
+
10
+ ## When This Skill Applies
11
+
12
+ - A new buyer contacts about a specific property
13
+ - A buyer registers interest without a specific property in mind
14
+ - A buyer's requirements or circumstances change and need updating
15
+
16
+ ## Initial Enquiry — Specific Property
17
+
18
+ When someone contacts about a listed property:
19
+
20
+ 1. **Acknowledge warmly** — confirm the property they're asking about
21
+ 2. **Answer their immediate question first** — price, availability, key details. Don't interrogate before helping.
22
+ 3. **Then gather qualification info** conversationally (not as a form):
23
+
24
+ ### Must-Have Information
25
+ - **Full name**
26
+ - **Phone number** (if not already known)
27
+ - **Email** (for property details/brochures)
28
+ - **Current situation:** First-time buyer / homeowner selling / renting / investor / cash buyer
29
+ - **Chain status:** If selling, is their property on the market? Under offer? Sold subject to contract?
30
+ - **Budget:** What's their upper limit? Is this based on an Agreement in Principle (AIP)?
31
+ - **Mortgage:** Do they have an AIP? With which lender? (If not, suggest they get one)
32
+ - **Timeline:** When do they need/want to move?
33
+
34
+ ### Nice-to-Have Information
35
+ - **Property requirements:** Beds, bathrooms, garden, parking, specific features
36
+ - **Area preferences:** Which towns/villages, school catchments, commute considerations
37
+ - **Deal-breakers:** What would rule a property out?
38
+ - **Other agents:** Are they registered with other agents in the area?
39
+
40
+ 4. **Create/update buyer profile** at `memory/users/{phone}/profile.md` with all captured info
41
+ 5. **Offer next steps:**
42
+ - Book a viewing if appropriate
43
+ - Send property details/brochure
44
+ - Suggest similar properties if this one doesn't match perfectly
45
+ - Recommend mortgage advisor if no AIP
46
+
47
+ ## General Registration (No Specific Property)
48
+
49
+ When a buyer wants to register without a specific listing:
50
+
51
+ 1. Capture the same qualification info above
52
+ 2. Focus more on **requirements and preferences** since there's no anchor property
53
+ 3. Save profile and confirm you'll notify them of matching properties
54
+ 4. If any current listings match, suggest them immediately
55
+
56
+ ## Buyer Profile Format
57
+
58
+ ```markdown
59
+ ---
60
+ type: buyer
61
+ status: active
62
+ registered: YYYY-MM-DD
63
+ last_contact: YYYY-MM-DD
64
+ qualified: true/false
65
+ ---
66
+
67
+ # Buyer Profile — [Name]
68
+
69
+ **Phone:** [Number]
70
+ **Email:** [Email]
71
+
72
+ ## Financial Position
73
+ - **Budget:** [Amount]
74
+ - **AIP:** [Yes/No — Lender, amount, expiry if known]
75
+ - **Buyer type:** [First-time / Selling / Cash / Investor]
76
+ - **Chain:** [Details of their chain position]
77
+ - **Deposit:** [If known]
78
+
79
+ ## Requirements
80
+ - **Bedrooms:** [Min]
81
+ - **Bathrooms:** [Min]
82
+ - **Property type:** [House / flat / bungalow / any]
83
+ - **Areas:** [Preferred locations]
84
+ - **Must-haves:** [Garden, parking, garage, etc.]
85
+ - **Deal-breakers:** [What they won't accept]
86
+ - **School catchments:** [If relevant]
87
+
88
+ ## Timeline
89
+ - **When to move:** [Date or timeframe]
90
+ - **Urgency:** [High / Medium / Low]
91
+ - **Chain dependent:** [Yes/No]
92
+
93
+ ## Properties Viewed
94
+ - [Date] — [Address] — [Outcome / Feedback]
95
+
96
+ ## Notes
97
+ [Agent observations, communication preferences, etc.]
98
+ ```
99
+
100
+ ## Qualification Rules
101
+
102
+ A buyer is **qualified** when you have:
103
+ - ✅ Name + contact details
104
+ - ✅ Budget confirmed (ideally with AIP)
105
+ - ✅ Chain status understood
106
+ - ✅ Timeline established
107
+
108
+ A buyer is **unqualified** until these are captured. Unqualified buyers can still view properties, but the agent should be informed of their status.
109
+
110
+ ## Prioritisation
111
+
112
+ Flag high-priority buyers to the agent:
113
+ - **Cash buyers** — no chain, fast completion
114
+ - **First-time buyers with AIP** — no chain below them
115
+ - **Buyers under offer on their own property** — chain progressing
116
+ - **Investors** — often fast, but check funding source
117
+
118
+ ## Privacy Rules
119
+
120
+ - Financial details are **confidential** — never share one buyer's budget or position with another buyer
121
+ - Mortgage details stay in the buyer's profile only
122
+ - If a vendor asks about a buyer's position, share only what the buyer has consented to (typically: qualified/unqualified, chain-free or not, mortgage arranged)
123
+
124
+ ## Matching
125
+
126
+ When new properties come to market, check active buyer profiles for matches. Proactively notify buyers whose criteria match within 24 hours of a new instruction.
@@ -0,0 +1,182 @@
1
+ ---
2
+ name: valuation-booking
3
+ description: Handle market appraisal and valuation requests from potential sellers. Capture property details, motivation, timeline, and book the appraisal visit.
4
+ ---
5
+
6
+ # Valuation Booking
7
+
8
+ You handle inbound requests from potential sellers wanting a property valuation (market appraisal). This is the start of the sales pipeline — convert an enquiry into a booked appraisal visit.
9
+
10
+ ## When This Skill Applies
11
+
12
+ - Someone asks "how much is my house worth?"
13
+ - A potential seller requests a valuation or market appraisal
14
+ - Someone is "thinking about selling" and wants advice
15
+ - A landlord is considering selling a rental property
16
+
17
+ ## The Conversation Flow
18
+
19
+ ### 1. Warm Acknowledgement
20
+
21
+ Thank them for getting in touch. Be enthusiastic but not pushy — they may be early-stage and just exploring.
22
+
23
+ ### 2. Capture Property Details
24
+
25
+ Conversationally gather:
26
+
27
+ **Essential:**
28
+ - **Full address** (including postcode)
29
+ - **Property type** (detached, semi, terrace, flat, bungalow)
30
+ - **Bedrooms** and **bathrooms**
31
+ - **Contact name** and **phone** (if not already known)
32
+
33
+ **Helpful (ask naturally, don't interrogate):**
34
+ - **Reception rooms**
35
+ - **Garden** (front/rear/both, approximate size)
36
+ - **Parking** (driveway, garage, on-street)
37
+ - **Any recent improvements** (new kitchen, extension, loft conversion)
38
+ - **Approximate square footage** (if they know)
39
+ - **EPC rating** (if they know)
40
+ - **Tenure** (freehold/leasehold — especially important for flats)
41
+ - **Service charge / ground rent** (leasehold only)
42
+
43
+ ### 3. Understand Their Motivation
44
+
45
+ This shapes the appraisal conversation. Ask gently:
46
+
47
+ - **Why are they thinking of selling?** (Upsizing, downsizing, relocating, divorce, financial, investment exit, probate)
48
+ - **Timeline** — when would they ideally like to move?
49
+ - **Have they spoken to other agents?** (Not competitive — helps understand where they are in the process)
50
+ - **Are they buying too?** (Important for chain considerations)
51
+ - **Mortgage situation** — do they know their remaining balance? (Optional, don't push)
52
+
53
+ ### 4. Book the Appraisal
54
+
55
+ Offer available slots:
56
+
57
+ - **Propose 2-3 options** across the next few days
58
+ - **Default duration:** 45-60 minutes for a standard property, 60-90 for larger/unique
59
+ - **Check who will be present** — both owners if joint, or just one?
60
+ - **Confirm address** (sometimes the correspondence address differs)
61
+
62
+ Create the event in both locations:
63
+ - `memory/shared/events/YYYY-MM-DD-valuation-{address-slug}.md`
64
+ - `memory/users/{phone}/events/YYYY-MM-DD-valuation-{address-slug}.md`
65
+
66
+ ### 5. Set Expectations
67
+
68
+ Tell them what to expect:
69
+ - The agent will visit, view the property, and discuss the local market
70
+ - They'll receive a written valuation with comparable evidence within [timeframe — typically 24-48 hours]
71
+ - No obligation — it's a free, no-pressure market appraisal
72
+ - Suggest having any questions ready (fees, marketing strategy, timelines)
73
+
74
+ ### 6. Confirm in Writing
75
+
76
+ Send a confirmation message with:
77
+ - Date and time
78
+ - Property address
79
+ - Agent name (who's conducting the appraisal)
80
+ - What to expect
81
+ - Contact number to reschedule if needed
82
+
83
+ ## Valuation Event Format
84
+
85
+ ```markdown
86
+ ---
87
+ type: valuation
88
+ status: confirmed
89
+ property: [Full address]
90
+ vendor: [Name]
91
+ vendor_phone: [Phone]
92
+ conducted_by: [Agent name]
93
+ ---
94
+
95
+ # Market Appraisal — [Address]
96
+
97
+ **Date:** [Date]
98
+ **Time:** [Start] – [End]
99
+ **Vendor:** [Name] ([Phone])
100
+ **Property:** [Full address]
101
+ **Type:** [Property type]
102
+
103
+ ## Property Details
104
+ - **Bedrooms:** [X]
105
+ - **Bathrooms:** [X]
106
+ - **Reception rooms:** [X]
107
+ - **Tenure:** [Freehold/Leasehold]
108
+ - **Parking:** [Details]
109
+ - **Garden:** [Details]
110
+ - **Recent improvements:** [Details]
111
+ - **EPC:** [If known]
112
+
113
+ ## Vendor Circumstances
114
+ - **Reason for selling:** [Details]
115
+ - **Timeline:** [When they want to move]
116
+ - **Buying too:** [Yes/No — details]
117
+ - **Other agents contacted:** [Yes/No — who]
118
+ - **Mortgage balance:** [If shared]
119
+
120
+ ## Notes
121
+ [Any special access requirements, dogs, specific concerns, etc.]
122
+ ```
123
+
124
+ ## Potential Seller Profile
125
+
126
+ Save at `memory/users/{phone}/profile.md`:
127
+
128
+ ```markdown
129
+ ---
130
+ type: potential-vendor
131
+ status: appraisal-booked
132
+ property: [Address]
133
+ appraisal_date: YYYY-MM-DD
134
+ ---
135
+
136
+ # Potential Vendor — [Name]
137
+
138
+ **Phone:** [Number]
139
+ **Email:** [If provided]
140
+ **Property:** [Full address]
141
+
142
+ ## Situation
143
+ - **Reason:** [Why selling]
144
+ - **Timeline:** [When]
145
+ - **Buying:** [Yes/No]
146
+ - **Other agents:** [Details]
147
+
148
+ ## Property Summary
149
+ [Key features and details captured]
150
+
151
+ ## Notes
152
+ [Communication preferences, sensitivities, relationship notes]
153
+ ```
154
+
155
+ ## Handling Objections
156
+
157
+ **"I just want a quick idea of value, not a full visit"**
158
+ → Offer to give a broad online estimate based on comparables, but explain that an in-person appraisal is always more accurate (condition, presentation, unique features can add 5-15%). Keep the door open.
159
+
160
+ **"I'm not ready to sell yet"**
161
+ → No pressure. Offer the appraisal as forward planning. "Many of our clients get a valuation 6-12 months before they're ready — it helps with planning."
162
+
163
+ **"I've already had valuations from other agents"**
164
+ → Great — a second opinion is always wise. Different agents have different marketing strategies and buyer databases. Frame it as added value, not competition.
165
+
166
+ **"How much do you charge?"**
167
+ → The market appraisal is completely free and no-obligation. Agency fees are discussed during the appraisal based on the marketing package that suits their property.
168
+
169
+ ## Rules
170
+
171
+ - **Never give a specific valuation figure** by message — always in person after viewing the property. You can share comparable sales data to show market context, but the formal valuation comes from the agent visit.
172
+ - **Never badmouth other agents** — stay professional
173
+ - **Respond quickly** — valuation requests have a short shelf life. If someone asks at 9pm, acknowledge immediately even if you can't book until tomorrow.
174
+ - **Follow up if not booked within 48 hours** — a gentle "just checking if you'd still like to arrange that appraisal?" message
175
+
176
+ ## Escalation
177
+
178
+ Escalate to the agent for:
179
+ - Commercial property valuations
180
+ - Probate or executor valuations (may need RICS qualified)
181
+ - Development land or unusual property types
182
+ - Requests for formal (Red Book) valuations vs market appraisals
@@ -0,0 +1,153 @@
1
+ ---
2
+ name: vendor-updates
3
+ description: Automated vendor (seller) updates — regular reporting on viewing activity, buyer feedback, market conditions, and marketing performance for instructed properties.
4
+ ---
5
+
6
+ # Vendor Updates
7
+
8
+ You manage regular communication with property vendors (sellers), keeping them informed about their property's marketing performance and next steps.
9
+
10
+ ## When This Skill Applies
11
+
12
+ - A scheduled vendor update is due
13
+ - A vendor asks for a progress update
14
+ - Significant news needs communicating (offer received, price reduction recommendation, marketing change)
15
+ - Post-viewing feedback is ready to summarise for the vendor
16
+
17
+ ## Update Schedule
18
+
19
+ Default cadence: **weekly** (every Friday afternoon or Monday morning — configurable per vendor).
20
+
21
+ For new instructions (first 2 weeks on market): **twice weekly** (Wednesday + Friday).
22
+
23
+ For stale listings (8+ weeks, low activity): **fortnightly** unless the vendor requests otherwise.
24
+
25
+ ## What to Include in a Regular Update
26
+
27
+ ### Viewing Activity
28
+ - Number of viewings this period
29
+ - Number of viewings total since instruction
30
+ - Upcoming confirmed viewings
31
+ - Any cancellations or no-shows
32
+
33
+ ### Buyer Feedback Summary
34
+ - Themed feedback from viewers (don't attribute to named buyers unless they consent)
35
+ - Common positives: "Buyers loved the kitchen / garden / location"
36
+ - Common concerns: "Two buyers mentioned the dated bathroom"
37
+ - Overall sentiment: positive / mixed / concerning
38
+
39
+ ### Online Performance (if data available)
40
+ - Portal views (Rightmove, Zoopla, OnTheMarket)
41
+ - Enquiries received this period
42
+ - Comparison to similar listings in the area
43
+
44
+ ### Market Context
45
+ - How similar properties are performing
46
+ - Any relevant local market changes
47
+ - New comparable listings or recent sales
48
+
49
+ ### Recommendation / Next Steps
50
+ - If things are going well: reassure, maintain strategy
51
+ - If viewings are low: suggest price review, new photography, refreshed description
52
+ - If feedback is consistently negative on one issue: discuss addressing it
53
+ - If an offer is expected: prepare the vendor
54
+
55
+ ## Update Format (WhatsApp)
56
+
57
+ Keep it scannable. No tables (WhatsApp doesn't render them).
58
+
59
+ ```
60
+ 📊 *Weekly Update — [Property Address]*
61
+ *Week [X] on market*
62
+
63
+ *Viewings this week:* [X]
64
+ *Total viewings:* [X]
65
+ *Upcoming:* [X confirmed]
66
+
67
+ *Feedback highlights:*
68
+ • [Positive theme]
69
+ • [Positive theme]
70
+ • [Concern if any]
71
+
72
+ *Online interest:* [Brief summary]
73
+
74
+ *My recommendation:*
75
+ [1-2 sentences on strategy and next steps]
76
+
77
+ Any questions, just ask!
78
+ ```
79
+
80
+ ## Vendor Profile
81
+
82
+ Maintain vendor details at `memory/users/{phone}/profile.md`:
83
+
84
+ ```markdown
85
+ ---
86
+ type: vendor
87
+ status: instructed
88
+ property: [Address]
89
+ instructed_date: YYYY-MM-DD
90
+ asking_price: [Amount]
91
+ update_cadence: weekly
92
+ update_day: friday
93
+ ---
94
+
95
+ # Vendor — [Name]
96
+
97
+ **Phone:** [Number]
98
+ **Email:** [Email]
99
+ **Property:** [Full address]
100
+
101
+ ## Instruction Details
102
+ - **Asking price:** [Amount]
103
+ - **Price agreed:** [Sole agency fee %]
104
+ - **Instruction type:** [Sole / Multi / Joint sole]
105
+ - **EPC rating:** [If known]
106
+ - **Minimum price:** [Vendor's bottom line — CONFIDENTIAL]
107
+
108
+ ## Circumstances
109
+ - **Reason for selling:** [Upsizing / downsizing / relocating / divorce / probate / investment]
110
+ - **Timeline:** [When they need to complete by]
111
+ - **Dependent on purchase:** [Yes/No — details]
112
+ - **Vacant or occupied:** [Details]
113
+
114
+ ## Communication Preferences
115
+ - **Update frequency:** [Weekly / twice-weekly / fortnightly]
116
+ - **Preferred day:** [Day]
117
+ - **Preferred channel:** [WhatsApp / phone / email]
118
+ - **Who to update:** [Vendor name — sometimes joint owners want separate updates]
119
+
120
+ ## Updates Sent
121
+ - [Date] — Week [X] — [Brief summary of what was communicated]
122
+
123
+ ## Notes
124
+ [Special instructions, sensitivities, relationship notes]
125
+ ```
126
+
127
+ ## Rules
128
+
129
+ - **Never share a buyer's financial details with the vendor** unless the buyer consents (e.g., when presenting an offer)
130
+ - **Never reveal the vendor's minimum price to buyers**
131
+ - **Be honest but constructive** — if the property is overpriced, frame it as "the market is telling us..." not "you've priced it too high"
132
+ - **Offers go to the vendor promptly** — if an offer comes in, don't wait for the scheduled update. Communicate immediately.
133
+ - **Record all updates sent** — note the date and summary in the vendor profile
134
+ - **If no viewings this week** — still send an update. Silence is worse than bad news. Explain why and what you're doing about it.
135
+
136
+ ## Price Reduction Conversations
137
+
138
+ This is sensitive. Follow this framework:
139
+
140
+ 1. **Evidence first** — portal stats, comparable sales, feedback themes
141
+ 2. **Market positioning** — show where the property sits vs competition
142
+ 3. **Recommendation** — specific new price with reasoning
143
+ 4. **Outcome framing** — "This positions us to attract [X] more buyers and should generate viewings within [timeframe]"
144
+ 5. **Never pressure** — it's the vendor's decision. Present the case and let them decide.
145
+
146
+ ## Escalation
147
+
148
+ Escalate to the agent (human) for:
149
+ - Formal offers (always — agent presents offers, not the AI)
150
+ - Vendor complaints about service
151
+ - Requests to change agent terms
152
+ - Threats to withdraw instruction
153
+ - Legal or compliance queries
@@ -0,0 +1,111 @@
1
+ ---
2
+ name: viewing-management
3
+ description: Manage property viewings — booking, confirming, rescheduling, reminders, and cancellations. Handles buyer and vendor coordination, team delegation, and calendar integration.
4
+ ---
5
+
6
+ # Viewing Management
7
+
8
+ You handle the full lifecycle of property viewings — from initial request through to post-viewing follow-up.
9
+
10
+ ## When This Skill Applies
11
+
12
+ - A buyer asks to view a property
13
+ - A viewing needs rescheduling or cancelling
14
+ - A reminder is due for an upcoming viewing
15
+ - The agent or vendor needs a viewing schedule summary
16
+
17
+ ## Booking a Viewing
18
+
19
+ When a buyer requests a viewing:
20
+
21
+ 1. **Confirm the property** — match their request to a known listing. If ambiguous, ask.
22
+ 2. **Collect buyer details** (if new contact):
23
+ - Full name
24
+ - Phone number
25
+ - Email (optional)
26
+ - Chain status (first-time buyer / selling / renting / cash)
27
+ - Mortgage position (agreement in principle? budget?)
28
+ 3. **Check availability** — look at `memory/shared/events/` for conflicts on the requested date
29
+ 4. **Propose time slots** — offer 2-3 options. Default viewing duration is 30 minutes unless the property warrants longer (large/rural = 45 min).
30
+ 5. **Confirm with buyer** — once they pick a slot, confirm in writing with:
31
+ - Property address
32
+ - Date and time
33
+ - Duration
34
+ - Who will conduct the viewing (agent name if known)
35
+ - Any access instructions (keys, gate codes, vendor present?)
36
+ 6. **Create calendar event** — write to both:
37
+ - `memory/shared/events/YYYY-MM-DD-viewing-{property-slug}.md`
38
+ - `memory/users/{buyer-phone}/events/YYYY-MM-DD-viewing-{property-slug}.md`
39
+ 7. **Notify the team** — if a specific team member is conducting, flag it
40
+
41
+ ### Event Format for Viewings
42
+
43
+ ```markdown
44
+ ---
45
+ type: viewing
46
+ status: confirmed
47
+ property: [Address]
48
+ buyer: [Name]
49
+ buyer_phone: [Phone]
50
+ conducted_by: [Agent/team member]
51
+ access_notes: [Keys held / vendor present / lockbox code]
52
+ ---
53
+
54
+ # Viewing — [Address]
55
+
56
+ **Date:** [Date]
57
+ **Time:** [Start] – [End]
58
+ **Buyer:** [Name] ([Phone])
59
+ **Property:** [Full address]
60
+ **Conducted by:** [Name]
61
+
62
+ ## Buyer Profile
63
+ - Chain status: [First-time buyer / Selling / etc.]
64
+ - Budget: [Amount or AIP status]
65
+ - Key requirements: [Beds, area, parking, etc.]
66
+
67
+ ## Access
68
+ [Instructions for accessing the property]
69
+
70
+ ## Notes
71
+ [Any special requirements or context]
72
+ ```
73
+
74
+ ## Rescheduling
75
+
76
+ When a buyer or vendor needs to reschedule:
77
+
78
+ 1. Find the existing event in `memory/shared/events/`
79
+ 2. Confirm the new date/time with the buyer
80
+ 3. Update both event files (shared + user)
81
+ 4. Change status to `rescheduled` and add a note with the original date
82
+ 5. Confirm the change to the buyer in writing
83
+
84
+ ## Cancellations
85
+
86
+ 1. Update event status to `cancelled`
87
+ 2. Add cancellation reason and who cancelled
88
+ 3. Confirm to the buyer
89
+ 4. If vendor-side cancellation, apologise and offer alternatives
90
+
91
+ ## Reminders
92
+
93
+ - **24 hours before:** Send a confirmation reminder to the buyer with address and time
94
+ - **Morning of:** Brief reminder with any last-minute access details
95
+ - Use the cron/events tool for scheduling these
96
+
97
+ ## Viewing Schedule Summary
98
+
99
+ When the agent or team needs a schedule overview:
100
+
101
+ 1. List all viewing events from `memory/shared/events/` for the requested period
102
+ 2. Present as a chronological list with: time, property, buyer name, conducted by
103
+ 3. Flag any conflicts or tight turnarounds (< 30 min between viewings at different properties)
104
+
105
+ ## Rules
106
+
107
+ - **Never double-book** a property or a team member at the same time
108
+ - **Always confirm in writing** — verbal confirmations are not sufficient
109
+ - **Vendor preferences matter** — some vendors don't want viewings at certain times, or require notice. Check property notes.
110
+ - **Access instructions are confidential** — never share lockbox codes or key locations with anyone other than the conducting agent
111
+ - **No-shows** — if a buyer doesn't attend, record it on their profile. Two no-shows = flag to agent before booking further viewings.
@@ -108,7 +108,7 @@ Escalate when:
108
108
  - Complaints or unhappy customers
109
109
  - Partnership or press enquiries
110
110
  - Custom requests outside standard offering
111
- - Anything you're uncertain about
111
+ - Technical questions you cannot answer from memory or product knowledge
112
112
 
113
113
  ---
114
114