Residential real estate · agent-side

Ten minutes before you say your number out loud.

August 2024 moved two numbers from implicit to spoken — and handed every agent five conversations nobody trained them for. This is the prep sheet for the one you're about to have: your position, the pushback that's coming, and the sentence that answers it.

The one rule

Whose mouth, whose document.

Every output is addressed to you, about your business. Nothing explains what a contract means — because that's the unauthorized practice of law in all fifty states, whatever your licence says.
The boundary

One line runs through all five conversations.

You may fill blanks in your broker's approved form. You may not draft it, alter it, or explain what it means — courts have been consistent about both halves, and there's no bright-line test for how far is too far. So this tool doesn't approach the line experimentally. It stops, says why, and routes you to the broker or the attorney.

Yours to say

  • "My fee is 2.5%."
  • "I'm proposing 30 days."
  • "You can cancel in writing any time."
  • "Ask for a credit on the panel, not a repair."
  • "I'd rather earn the extension than ask for it today."
  • "Read it before you sign — a lawyer's eyes are reasonable."

Not yours — ever

  • "The agreement says you owe 2.5% if…"
  • "A 30-day term means you're locked in until…"
  • "Here's what the cancellation clause does."
  • "Here's wording for the addendum."
  • "You'd get your earnest money back because…"
  • "It basically just says…"

Notice the pairs. Each row is the same topic split by the line — and the usable move, every time, is handing back the version that sits on your side. The repo ships twelve worked boundary calls with the case-law sourcing behind them, and a refusal that always ends in a redirect. A refusal that leaves you with nothing is one you'd route around — to a general-purpose chatbot that will happily draft the addendum.

What you get

Five skills. Load one.

Each file is self-sufficient — when to use it, what it runs on, how to start from nothing, how to think, what it produces, and where it stops. Lift one into another tool and it works without the rest.

01

Buyer consultation prep

The sit-down that now has to happen before you unlock a door. Most consults fail on sequence, not on value language — agents lead with the agreement, so the buyer experiences the whole meeting as a signature request.

→ five-beat sequence · your value in specifics · the break you should expect
02

The fee conversation

State it, stop talking for two seconds, then say what it buys. The pause is the whole technique and it's the part agents can't do. Includes the percentage-vs-flat decision as it actually trades, not as it's marketed.

→ the line to say · the pause · your floor · the answer to the pushback
03

Seller compensation decision

Not a binary — four live positions. Reframes the money as proceeds, not loyalty: the same question as a closing-cost credit or a rate buydown. Then makes you bring a recommendation instead of "it's totally up to you."

→ the reframe · positions narrowed to this house · your recommendation
04

Agreement terms position

Duration, scope, and exit are three independent decisions, which is why asking for the maximum on all three costs you signatures. Short-first, earn the renewal — and give the exit away deliberately.

→ your broker's ceiling · a position on each · what you trade instead of rate
05

Post-inspection position

Sort the report into material, deferred, and boilerplate before anything else. Three items is a request; nineteen is a renegotiation and everyone on the other side knows it. Then pick the instrument and read leverage honestly.

→ the sort · repair vs credit vs reduction · leverage · the question to ask

What it won't do

Write anything addressed to your client. Interpret, draft, or alter a form. Touch MLS, IDX, or aggregator data, or estimate a local rate. Tell you what to charge.

→ it helps you say the number you've decided on
Sample output

What a prep sheet looks like.

Job 2, with pushback already landed and a deferral to undo. One screen — you read it in the car.

FEE PREP — Thursday follow-up, buyer sideInternal. Not for the client.

"Buyer consult went fine until the fee. I said 2.5% and she said her friend's agent does it for 2. I panicked and said 'let's talk about it after we see a few places.' Now I have to have the conversation again Thursday and I've already looked weak."

Which conversation this is

Pushback, round two — with a deferral to undo. The deferral is the bigger problem: "let's talk about it later" told her the number is negotiable, so Thursday she'll expect movement. You're not re-stating a fee, you're closing one that's been left open.

Your line

"I want to come back to Thursday's question, because I gave you a soft answer and you deserve a straight one. My fee is 2.5%."

— stop here. Two seconds.

"Here's what that buys: [your two specifics]. That's the number I work at."

Naming the earlier dodge is what recovers the ground. It costs one sentence and converts the weakness into candour — a better position than pretending Thursday didn't happen.

The pushback and your answer

"They might be great — I'm not going to run down an agent I don't know. What I can tell you is what you get from me: [two specifics]. My fee is 2.5%. If price is the deciding factor here, honestly, they're the better call — and I'd rather you go with who you trust than feel talked into me."

Concede → answer → return to the number → hand back the choice. The last move is the one that works: a buyer given a genuine exit usually doesn't take it, and stops testing the price.

If they hold out

Offer the term, not the rate: "I'll keep the rate at 2.5 and do a 30-day agreement so you're not stuck with me." That costs you a renewal conversation instead of a quarter point of the purchase price — and buyers routinely value it more.

Where this stops If she asks what the agreement obligates her to pay, or what happens if the seller covers less than 2.5% — that's a lawyer's answer, not yours. Say so and point at the document.
Verification

Every claim on this page has a command behind it.

Python 3, standard library, nothing to install. All three exit 0 on a clean checkout — and the repo ships a four-step procedure for breaking itself, because a check that can't fail is decoration.

# five skills · six sections each · every stop declared
python3 reference/checks/skill-shape.py

# no client-addressed output · no listing-data inputs · every boundary table present
python3 reference/checks/boundary-checks.py

# which of your own positions are on file, and which jobs go framework-only
python3 reference/checks/practice-state.py
ClaimWhat settles it
Five skillsls skills/*.md | grep -v README | wc -l
No output is addressed to a clientboundary-checks.py — CHECK A
Every skill declares where it stops, with a quoted refusalboundary-checks.py — CHECK B
No skill declares a listing-data inputboundary-checks.py — CHECK C
This page fetches nothing externalgrep -nE '<(link|script|img|iframe|source)' docs/index.html — prints nothing
…and every URL on it is this repo's own, plus one link to the builder's own sitegrep -oE 'https?://[^"]+' docs/index.html | sort -u — repo URLs, plus exactly one: the footer byline
The checks can actually failthe four-step break procedure in VERIFY.md
Proof

What this page doesn't claim.

There are no testimonials on this page, no user counts, no defect or coverage numbers, and no "trusted by" row. Not because they'd be unflattering — because you couldn't check any of them, and the repo's VERIFY.md treats an unverifiable claim as a bug.

What you can check instead, in about two minutes:

  • Read examples.md — four worked exchanges, one of them the tool refusing a request and then delivering the part that was in scope.
  • Run the three checks above on a clean clone.
  • Break it four ways with the procedure in VERIFY.md and watch each check catch it.
  • Read the sources in reference/the-upl-line.md — state real-estate commissions and REALTOR® associations, linked, not paraphrased.
Setup

About five minutes, then ten once.

  1. Clone or download the repo

    No install, no dependencies, no build. Markdown files and three Python scripts.

  2. Create a Claude Project and add five files

    The two operating files, the one skill you need, and the two references that carry the boundary and the objections.

    identity.md
    rules.md
    skills/<the one you need>.md
    reference/the-upl-line.md
    reference/objection-library.md
  3. Fill in your own positions — ten minutes, once

    Three files in reference/your-practice/: your fee and your floor, your terms and what your broker lets you vary, and what you've actually seen in your own market. Answer as you actually are, not as you intend to be — the gap between the number you say and the number you take is the most useful thing in that folder.

    python3 reference/checks/practice-state.py
  4. Skip step 3 if you want

    Jobs will then ask you for the missing number, or label the output framework-only. They will not invent one. A prep sheet built around a rate the tool inferred is worse than no prep sheet — you won't notice the inference, and you might repeat it to a client.

  5. Name the conversation you're about to have

    "Buyer consult Thursday, referral, first-time buyer." "She came back with 2%." "Inspection flagged the panel." It routes, asks at most two questions, and produces one screen.

Composability

Runs alongside a property-side tool. Needs none.

If you already run an assistant for pricing, listings, buyer matching, or showing notes, the two are disjoint: that one establishes what's true about the house, this one prepares what you'll say about yourself. No shared files, no install order, no dependency in either direction — adopt either first, or alone, indefinitely. The repo maps the seam and the four handoffs where one hands off to the other.

And if you don't have one, nothing here is missing. Every skill lists its inputs, and all of them come from you.

Questions

Reasonable objections.

Why won't it just explain the agreement to my buyer?

Because that's the unauthorized practice of law in every U.S. state, and your real-estate licence doesn't cover it. Courts permit filling blanks in an attorney-approved form and prohibit interpreting the provisions in it — and there's no bright-line test for how much modification is too much, which is exactly why the rule here is none. There's a second reason too: anything this tool tells you, you might repeat to a client tomorrow. That's why it refuses even the "just so I understand it myself" version.

My attorney says that's fine in my state. Does it open up then?

No — and that isn't caution, it's what the tool is. Where the line sits for you genuinely does vary: what you may say about a form, whether attorney review is customary where you work, what your state requires you to disclose. Your broker and a real-estate attorney in your state have your version of all three, and this repo has none of them — it routes those questions rather than answering them. But their answer settles what you may say to a client. It doesn't change what this repo writes: nothing addressed to your client, and nothing explaining what a document means, before or after that call. If your state permits something this tool refuses, that permission is yours to use in your own words — not a gate that unlocks a draft.

Can it pull comps or tell me what agents charge in my area?

No, and it won't estimate around the gap. MLS data is licensed per organization — every MLS is its own contract even through an aggregator, national feeds run into six figures a year, and IDX carries standing refresh and audit obligations. A folder of markdown files can't hold that compliance surface and shouldn't pretend to. Your own observations of your own market go in what-i-see-locally.md, and they outrank any national figure the repo carries.

Will it tell me what to charge?

No. It doesn't know your market, your costs, or your pipeline, and a tool that quoted you a rate would be inventing one. What it does is help you say the number you've decided on — and pressure-test whether you've actually decided. If your fee file is blank, that's the finding, and it comes out in the first exchange rather than getting papered over.

Isn't this just prompts I could write myself?

Yes, in the sense that any folder of instructions is. The work that's been done for you is the decomposition — five jobs with declared inputs, a boundary that holds in the same place every time, twelve objections with what's true in each one, and the sourcing behind the legal framing. The check scripts exist so you can confirm the boundary is still where it says it is after you edit it, which is the part people don't build for themselves.

My brokerage sets my fee and my terms. Is this useful?

Partly, and you should know that before adopting it. Jobs 2, 3, and 4 ask you to decide things that in that case aren't yours to decide. Jobs 1 and 5 still work fully. That's two jobs, not five — the repo says so in who-this-is-not-for.md rather than letting you find out in week three.

Does it work for commercial?

No. Different transaction structure, different fee conventions, and the 2024 residential practice changes don't govern it. Every example and every position here assumes a residential deal with a consumer on the other side.

What about my E&O coverage?

Ask your carrier directly whether your policy excludes claims arising from generative-AI-assisted work — 2026 policies have reportedly begun adding those exclusions. The repo flags this and marks it as unverified rather than asserting it, because it came from a build brief and not from a policy anyone read. It's a phone call worth making regardless.

Who's it not for?

Commercial agents, anyone wanting contract language, anyone wanting market data, consumers, agents whose brokerage sets every position, and anyone who wants a word-for-word script to recite. Positions hold under improvisation; scripts break the moment the client says something off-book.