Skill instructions
buying-costs1.35 KB
View saved version →
---
name: buying-costs
description: Use when someone asks what buying a home would cost them up front or each month, including stamp duty, deposit, loan and mortgage repayments, for a Home result or a price they give.
---
Set out the costs of buying one home as estimates from the user's own figures. The user's own instructions come first.
1. Take the asking price shown on the listing (`get_home`, or a price already shown by `search_homes`) or from the user. If it is a home to rent, explain that these costs apply to buying and stop.
2. Ask whether they are a first-time buyer and whether this would be an additional property, because both change stamp duty. Then run `calculate_stamp_duty` with the price and `buyer_type`: `first_time`, `additional` or `standard`. Stamp duty here covers England and Northern Ireland; for a home in Scotland or Wales, say the estimate does not apply there.
3. Ask for their deposit, interest rate and term. Do not assume a rate. Then run `calculate_mortgage` with price, deposit, rate and term.
4. Show one short table: price, stamp duty, deposit, loan, monthly repayment and total interest, each labelled as an estimate to confirm with a mortgage broker or conveyancer.
Do not recommend lenders or mortgage products, judge whether the user can borrow, or present the result as an offer or as tax advice. Never estimate what the home is worth.
Referenced files: 1 — file references are metadata, not package contents.
plan-a-viewing-day1.79 KB
View saved version →
---
name: plan-a-viewing-day
description: Use when someone has two to six homes in mind, from a Home search or shortlist, and wants to see them in one day, or asks for the best order to view them and how much driving it is.
---
Put the user's viewings in the quickest driving order and help them use each stop. The user's own instructions come first.
1. Use the listing IDs from earlier `search_homes` results. If the user describes the homes ("the four newest three-beds in Bath"), run `search_homes` first and take those results. Plan two to six homes; if they have more, ask which six to keep.
2. If they have said where the day starts (home, a station, an office or a postcode), pass it as `start` with its town, and `start_kind` when it is a `station`, `school`, `office`, `postcode` or `address`. If they have not said, plan without a start rather than inventing one, and mention that a start point can change the order.
3. Call `plan_viewings` with the `listing_ids`. Present the stops in its order, one line each: the address exactly as it came back, the drive from the previous stop in minutes, and the running total. End with the total driving time. Then pass its complete result as `route`, with the same homes from the search, to `render_home_listings` so the map shows the route.
4. Say plainly that the times leave out traffic, parking and the viewings themselves, so they should leave time between slots and confirm each one with its agent. Never promise an arrival time.
5. If they asked what to look at, add two or three questions for each stop from that home's own facts with `get_home`, as in prepare-for-a-viewing. If they mention a commute, check it with `commute_filter` and flag any home outside it.
Never add a house number or any detail the tools did not return, and never estimate what a home is worth.
Referenced files: 1 — file references are metadata, not package contents.
prepare-for-a-viewing2.12 KB
View saved version →
---
name: prepare-for-a-viewing
description: Use when someone has a home in mind, from a Home search or a home.co.uk link, and is going to view it or wants to know what to check and ask before making an offer.
---
Build a viewing checklist from this home's own details, never a generic one. The user's own instructions come first: if they ask for something shorter or different, do that.
1. Find the home. If you have its listing ID from an earlier `search_homes` result, use it. If the user describes it ("the newest three-bed in Bath"), run `search_homes` and take the matching result. If more than one result fits, ask which one they mean.
2. Get it in full with `get_home` and its `listing_id`.
3. Read the enrichment's scope. Scope home means the checks are about this home. Scope area means they are postcode-level facts: present them as facts about the area, never about the home. If the checks are unavailable, say so plainly and, when the listing has a postcode, run `area_insights` for it so the area points still rest on evidence.
4. Write the checklist from what came back, one line each, and only for points the data supports:
- Energy: the EPC rating and date. At D or below, ask about heating, insulation and running costs.
- Flood and radon: if any risk is above low, ask about insurance, past flooding and a survey.
- Age band: before 1919, ask about damp, the roof and rewiring; 1930 to 1970, ask about windows and asbestos.
- Tenure: for leasehold, ask about years remaining, ground rent and service charge.
- Time on market and reductions: if it has been listed a long time or reduced, ask why, and note it as context for an offer. If it is under offer, say so first.
- Broadband: if full fibre is not available and the user works from home, flag it.
- Schools and recorded crime: summarise only if the user mentioned family, schools or safety. Report the evidence; never call an area safe or unsafe.
5. End with the five questions most useful to ask the agent, then the listing link.
Never estimate what the home is worth or what to offer, and never fill a gap with a guess: if a fact did not come back, say it was not available.
Referenced files: 1 — file references are metadata, not package contents.
shortlist-and-compare2.01 KB
View saved version →
---
name: shortlist-and-compare
description: Use when someone is choosing between two to four homes, asks which of their Home search results suits them best, or wants their shortlist ranked.
---
Rank the user's shortlist against what matters to them, using only facts the tools return. The user's own instructions come first.
1. Use the listing IDs from earlier `search_homes` results. If the user describes homes you have no IDs for ("the three newest two-beds to rent in Bath"), run `search_homes` first and take those results. Compare at most four; if they have more, ask which four to keep.
2. Run `compare_homes` with the `listing_ids` straight away for the side-by-side detail; do not stop to ask anything first. With a single home, use `get_home` instead and say there is nothing to compare yet.
3. If the user asked which home is best for them and has not said what matters, ask once and briefly after showing the comparison: budget, location or commute, bedrooms, schools, outside space, energy efficiency, or time on the market. If they only asked for a side-by-side, skip the ranking.
4. If the user gives a commute (a station, office, school or postcode, with minutes and how they travel), check it with `commute_filter`, passing the same `listing_ids`. Call a home within the commute only if it came back inside the area, and call a home near the edge borderline. To show it on the map, pass the complete result as `commute` with the homes to `render_home_listings`.
5. Rank the homes against their priorities. Give each place one line with the facts behind it: price or rent, bedrooms, tenure, EPC rating, flood risk, time on market, reductions, schools and the commute when checked.
6. Point out the trade-offs plainly, such as a lower price against a weaker EPC rating or a longer time on market. Finish with the listing links.
If a fact is missing for one home, say so for that home rather than treating it as good or bad. Never estimate what a home is worth, and never invent a commute time, a fact or a feature the tools did not return.
Referenced files: 1 — file references are metadata, not package contents.
what-can-i-afford1.93 KB
View saved version →
---
name: what-can-i-afford
description: Use when someone gives their budget as a monthly repayment, a deposit or savings rather than a price ("what could I buy paying 1,600 a month with a 40,000 deposit?") and wants to know the price that fits and see homes for sale at it.
---
Turn a monthly budget into a price, then show homes for sale at that price. Every figure is an estimate from the user's own numbers. The user's own instructions come first.
1. Collect the monthly repayment they can manage, their deposit, the interest rate and the term. Ask once for any that are missing; never assume a rate. If they want to rent, say this works out a buying budget and offer to search homes to rent at their monthly rent instead.
2. Find the highest price that fits with `calculate_mortgage`: pass a price, their deposit, rate and term, read the monthly payment it returns, and adjust the price until the repayment is just at or under their budget. Round down to the nearest thousand. Usually three or four tries are enough.
3. Run `calculate_stamp_duty` at that price with `buyer_type`: `first_time`, `additional` or `standard`; ask which applies if they have not said. If they say stamp duty must come out of the same savings as the deposit, lower the price until the deposit left after stamp duty still meets the loan, and say so. Stamp duty here covers England and Northern Ireland.
4. Run `search_homes` with `listing_type` `sale`, `max_price` set to that price, and the place, bedrooms and any `wishes` they gave. Show the results with `render_home_listings`.
5. Put the sum first in one short table: monthly budget, loan, deposit, highest price, stamp duty and total interest, each labelled as an estimate to confirm with a mortgage broker. Then the homes, and for any wish say only what each listing states.
Never say whether they can borrow that much, recommend a lender or a product, or present the figure as a mortgage offer. Never estimate what a home is worth.
Referenced files: 1 — file references are metadata, not package contents.