Client Context Card — Setup Guide
What this is
A four-file bundle plus client.json that gives AI persistent context about a single client (a seller or buyer the realtor represents). Mirrors the realtor context card's pattern, but the client is a SUBJECT, not an AUTHOR — there's no brand-voice.md here. The realtor's voice always wins when content gets generated.
File structure
realtors/<realtor-slug>/clients/<client-slug>/
├── _MANIFEST.md ← load order + linked deals
├── about-this-client.md ← who they are (every fact cited)
├── the-story.md ← narrative for content (or story_type: none)
├── relationship-notes.md ← operational, not for content
└── client.json ← contacts, consent, life context
Setup
Run /onboard-client from the repo root. The skill interviews you (the realtor) about the client and builds all five files. Phases:
- Identity + linkage — Name, type (seller/buyer/both/past), which deal(s) this client is on.
- Contacts — Primary contact(s), roles in decision-making, preferred channel.
- Consent — The three hard gates: name in content, story in content, photo in content. No defaults; the realtor must answer each explicitly.
- Life context — Stage (first-time/downsizing/relocation/etc.), tenure on the property if seller, ties to the property in one sentence.
- Do-not-mention — Topics off-limits for this client.
- Story branch — Only fires for sellers with
tenureYears >= 5 AND consent.useStoryInContent: true. Asks the seller's-story questions in priority order. Each paragraph captured with [src: seller, interview YYYY-MM-DD].
- Relationship notes — Communication prefs, sensitivities, decision dynamics.
Key principles
Consent is a hard gate. Don't write a name in any content artifact unless consent.useNameInContent: true. Don't write the story unless consent.useStoryInContent: true. Don't include a photo of the person unless consent.usePhotoInContent: true. Every content skill enforces this at runtime.
Cite every claim. about-this-client.md is biographical; every paragraph ends with [src: seller, interview <date>] or [src: observed]. If the realtor can't source it, it doesn't go in.
Don't invent the story. the-story.md defaults to story_type: none. It only gets populated when the seller explicitly said something the realtor is now reporting. The 722 Old Hershey debacle (a fully fabricated grandma's-house narrative) is the anti-pattern: every fact looked plausible; nothing was sourced.
Linkage is bidirectional. When a deal is linked to a client, both deal.json.clientSlugs and client.json.deals get updated. The skills do this for you.
Where to put the files
Always under the realtor: realtors/<realtor-slug>/clients/<client-slug>/. A client belongs to a realtor's book of business. If the same person works with two different realtors, they get two separate client cards.