The client dossier
*Renamed from "client brain" on Alex's correction, 20 Aug 2026: the goal is not to clone a client. It is to hold everything known about them — meeting notes, ad and social performance, what they have paid, what was decided and why — so that forward planning is pinpoint rather than recalled. Knowledge and legacy, not a personality.*
How information gets in, and how it comes back out as something copy can be written from.
Status: designed. Schema partly built, intake agents not built.
The problem
Copy needs context. That context arrives in wildly different shapes: sometimes a filled-in template, more often a pile of documents, screenshots, photos a client WhatsApps over, and meeting notes nobody wrote up. Requiring a clean template before anything can be produced means the system is unusable on the days it is most needed.
So the system takes whatever it is given — including nothing.
Three levels of input
These are not three systems. One system, three levels of evidence, producing the same artefact with different confidence.
Level 1 — nothing given
Common sense, industry knowledge, and light research on the client. Still agentic: the system looks the client up, reasons about the category, and produces something usable.
Everything it produces is inferred, and must be labelled that way.
Level 2 — a template
Structured input: positioning, audience, offer, tone, constraints. Filled in by a human, or by an agent that drafts it and asks a person to correct it.
The template is a scaffold, not a gate. Its absence never blocks work — it just means falling back to level 1 for the parts nobody filled in.
Level 3 — unsorted material
Documents, transcripts, screenshots, photos, landing pages, meeting notes, a folder of things a client sent over eighteen months. Thrown in as-is.
The agentic layer works out what each item is, extracts what is claimable, files it against the right client, and flags what contradicts what is already known — which is the reconciliation pipeline that already exists.
This is the level that makes the system worth having. Levels 1 and 2 are what any tool does.
The rule that keeps this honest
An assembled context must declare what it is based on.
A brief built purely from inference and a brief built from twelve verified sources must not look alike to the copy layer. If they do, level 1 output gets treated with level 3 confidence, and the result is fluent, specific-sounding, and wrong — the exact failure this whole system exists to avoid.
The machinery for this already exists and should be used rather than reinvented:
features.proof_strength—verified_externaldown toassertedmarket_facts.strength—documenteddown toinferredproduced_by— which worker, which skill version, from which source
So a level 1 context is not a different type. It is a context whose facts are all inferred, and whose assembly says so. Copy written from it should hedge where a claim would otherwise be made, or ask for what it needs.
Everything normalises to text plus provenance
The trick that keeps this from becoming five pipelines: whatever comes in is converted to text with a source record, then the existing extraction and reconciliation pipeline runs unchanged.
| In | Conversion | Then |
|---|---|---|
| Transcript, doc, landing page | already text | extract → reconcile → file |
| Photo, screenshot | vision description plus any text in the image | same |
| text layer, or vision per page | same | |
| Video | transcript plus keyframe descriptions | same |
| Audio, meeting recording | transcript | same |
One pipeline, several front doors. Adding a new input type means adding a converter, not a system.
Cost discipline from content-library.md applies: dedupe first, extract free before calling a model, downscale images, cheap model for recognition.
Campaign context is a separate layer
A client's brand truth is stable. A campaign's context is not: an event has a date, a venue, a capacity, an objective, and none of that belongs in the brand knowledge base — it would look like a permanent fact and quietly rot.
So campaigns carry their own context, with their own dates, and copy reads brand truth and campaign context together. When the campaign ends, its context stops applying without anything needing to be retired from the brand knowledge base.
What gets assembled
For any job, the system assembles a context pack:
- the client and brand kit
- approved brand facts, with proof strength
- relevant market facts, with evidence strength
- campaign context, if this is for a campaign
- applicable taste principles
- the basis statement — what this was built from, and where it is thin
The basis statement is the part that must not be optional. It is what lets a copy worker say "I do not have enough to claim this" instead of inventing it, and what lets a human see, in one line, whether the output in front of them rests on anything.
Deferred deliberately
Automation of intake — Drive watching, Meet notes, inbox — is not built and is not next. Manual upload proves the pipeline; automation is a feeder into something that already works, and building feeders first is how a system ends up with three integrations and no extraction worth feeding.