The External Speech Map
Your vendor's bot is speaking for you. Whose name is on it?
One row per surface where an AI talks to the outside world on your behalf.
The decision it forces
Who is on the hook for what the bot said?
Not the bot we built. The one the vendor supplied, the one in the help widget, the one answering the careers inbox, the one replying to DMs at two in the morning. Each of those is speaking to the outside world in our name, and the guest on Episode 6, Michael Simon, a practising lawyer, put the operator's position plainly:
as a company who is deploying these things, you need to recognize that there are laws that put you, your company on the hook for what that chatbot does or doesn't do.
And, in the same breath, the hedge that belongs with it:
when the laws of who's on the hook ... for that are still being worked out. you know, one of the things I tell clients constantly is, you do not want to be a test case.
Sam's half of the point, from the host's chair:
just because you're contracting with a vendor doesn't mean that all the liability goes with them. If something is appearing on your website for your company, there is ... a layer of liability to examine carefully
Examine carefully is the instruction. This page is the inventory that does the examining.
The bots are not doing what we think
Mike's illustration, which he credits to a CEO he had been talking with, is worth running on our own site before reading further:
You go on to any help bot on any site and treat it just like you would chat GPT. Ask it to code things for you. Ask it to do searches, and it will more times than not you can just treat it as a free instance of ChatGPT or Claude because they're set to do anything.
A surface that will write code for a stranger will also, given the right prompt, make a promise, quote a price, or give advice we never authorised. The inventory's first job is to find every surface where that could happen.
Who this applies to
More of us than expect it. Mike on reach:
Have a website. If you are offering products or services to anybody in the US, congrats. you're impacted by all of these. there may be additional jurisdictional hooks like minimum revenues or minimum impact upon the state, but that tends to be more of a privacy law thing. In these laws that are getting passed for AI, it's as long as you impact consumers, and that's real, real, real hard not to do in a state.
Which laws, in which state, on what date, is a moving target and this page does not try to hold it. That is what EveryAILaw is for, and it is the only thing that stays current. The page holds the part that does not move: the list of our own surfaces and whose name is on each one.
The columns
One row per surface. The left half a machine can enumerate; the right half is the part that matters.
| Field | What goes in it | Who fills it |
|---|---|---|
surface |
What it is: the site chat, the autoreply, the careers bot, the social DMs | machine |
location |
URL or platform | machine |
audience |
customers, applicants, the public, or the public including minors | machine, or you |
vendor |
Who supplies it, or: in house | machine |
contract_says |
What the vendor agreement claims about liability, quoted, not interpreted | machine may quote |
deploying_entity_liable |
Always true on this page. The column exists so it is written down | fixed |
claims_to_be_human |
Whether it ever presents as a person, or lets a user believe it is | you |
accountable |
The person whose name is on what it says. A person, not a team | you |
can_stop_alone |
Whether that person can turn it off without asking anyone | you |
deploying_entity_liable is fixed to true rather than asked, because the honest answer is not something a vendor contract changes and the column is there to stop the row being skipped. contract_says is quoted and never summarised: quoting is description, and turning a liability clause into a conclusion is legal advice, which this page is not and Mike on the episode was explicit that he was not giving.
claims_to_be_human is on the page because one of the duties Mike read out on air was exactly that, in his words: "Not allowed to claim that this stuff is human." Whether that duty reaches a given surface is a jurisdiction question for the index; whether the surface does it is a yes or no we can answer today.
There is no worked example on this page. A filled map is one organisation's list of every bot speaking for it, with names in the accountable column, and that is theirs.
If you already have a Name the Human inventory
Do not fill the same table twice. Every external speech surface is a Name the Human row with blast_radius: external, and its accountable and stop_authority.can_stop_alone are the same fields under the same rule. Filter that inventory to external reach, add the four columns it does not have (audience, vendor, contract_says, claims_to_be_human), and the map is done. The prompt below does this automatically if you paste the inventory in.
The schema
{
"schema": "external-speech-map/v0.1",
"surfaces": [
{
"surface": "the site chat, the autoreply, the careers bot",
"location": "URL or platform",
"audience": "customers | applicants | the public | the public including minors",
"vendor": "who supplies it, or: in house",
"contract_says": "the liability clause, quoted",
"deploying_entity_liable": true,
"claims_to_be_human": null,
"accountable": null,
"can_stop_alone": null
}
],
"totals": {
"reviewed": 0,
"unnamed": 0,
"claims_human": 0,
"reachable_by_minors": 0
}
}
Run it with any model
Nothing to install and no account. If the model can browse your own domains it will enumerate; if not, it will ask. Either way it does not fill the right half.
Help me build an External Speech Map: one row per place an AI speaks to the outside world on my organisation's behalf. The question each row answers is whose name is on what it says. A surface counts if an AI produces words that reach someone outside the organisation without a human reading them first. A drafting tool a person reviews does not count. A chat widget, an email autoreply, a careers-page bot, a social DM responder, a phone agent, a review responder, all count. When in doubt, include it and let me cut it. MODE If I give you a Name the Human inventory (JSON, schema name-the-human), start from it: take every surface with blast_radius external, carry accountable and stop_authority.can_stop_alone across unchanged, and ask me only for the columns it does not have. Otherwise, if you can browse the domains I name, work in SCAN mode over those and only those: find chat widgets, contact and support forms with automated replies, careers pages, and any linked social or messaging channels. List every page you visited. Otherwise, INTERVIEW me: ask what talks to the outside world without a person in front of it, three questions at a time, until I say stop. FOR EACH SURFACE, FILL - surface, location, audience (customers, applicants, the public, or the public including minors: if you cannot rule minors out, say so) - vendor: who supplies it, or in house - contract_says: if I give you the vendor agreement, quote the clause about liability or indemnity verbatim. Do not summarise it, do not tell me what it means, and do not tell me whether it protects us. Quoting is the whole job here. - deploying_entity_liable: always true. Write it on every row. THEN ASK ME, for each surface, and record exactly what I say - claims_to_be_human: does it ever present as a person, use a human name, or let someone believe they are talking to one? Yes, no, or I do not know. - accountable: the person whose name is on what it says. If I give you a team, a role, or "the vendor", tell me that is a blank and leave it null. - can_stop_alone: can that person turn it off today without asking anyone? Yes, no, or unknown. RULES YOU DO NOT BREAK 1. Never fill accountable or can_stop_alone yourself. Never infer them from a contract, a CODEOWNERS file, or who set the thing up. 2. Never interpret a contract clause. Quote it and stop. If I ask what it means, tell me that is a question for a lawyer. 3. Do not tell me which laws apply to which surface, in which state, or whether we are compliant. Do not name a statute. Point me at everyailaw.com for that and leave it there. 4. Do not soften "the public including minors". If a surface is reachable by anyone, it is reachable by a minor. 5. Do not ask for customer names, applicant names, or the contents of any conversation the bot has had. OUTPUT Valid JSON matching the schema external-speech-map/v0.1 as published at https://sigsub.show/takeaways/external-speech-map/, with totals for surfaces reviewed, rows with accountable still null, rows where claims_to_be_human is yes, and rows reachable by minors. Then the same as a table with the three human columns left visibly empty where they are empty. Then the shortest list you can of the surfaces I should look at first, ordered by audience breadth and then by whether it claims to be human, and say why each is on it.
What a machine may never do
It may find the surfaces, read the contract and quote the clause. It may never fill accountable, and it may never turn a quoted clause into a conclusion about who is protected. Those two are the whole page, and both are the kind of thing a model will produce fluently and wrongly if allowed.
The part that's not optional
Run Mike's test on your own help bot first. Ask it to write you a poem, then ask it to write you code, then ask it what it can offer you. Whatever it does, that is what it has been doing for strangers in your name, and the row for it should say so before the inventory is filled in.
Then, for every row where accountable is still blank after one sitting, that surface is speaking for the organisation with nobody's name on it. Mike's line from the episode, which he says he tells every client, is the reason the blank cannot stay:
You do not want to be involved in the litigation that works this out. Because when you see those cases, that's people spending millions of dollars just to try and get back to where they were before.