Internal · AI Bot Security Pattern
How we locked down Pam, our CST bot, so she can read our customer-service knowledge and nothing else. A repeatable pattern for anyone running several Slack bots off one Claude account.
One Claude account, several Slack bots, each with a specific job. By default, every one of those bots can read everything on the account: your whole filesystem, your second brain, your memory files, and the other bots' data.
That default is fine for a personal assistant. It is not fine for a bot that talks to your team. If a customer-service bot can read employee performance notes, one-on-ones, HR files, or personal records, then a single careless question (or a planted message) can surface things people should never see. The bot needs a hard fence, not a polite request.
Pam is our CST Manager Bot. She drafts customer-service replies for the support team in Slack. Her entire job is customer help, so she should reach only two things: our customer-service knowledge and the two brand websites. Nothing about employees, nothing personal.
Out of the box she had none of that isolation. She ran with full shell access and a shared, wide-open settings file, which meant she could read the second brain, the Claude memory, the Documents folder, even Google credentials. We fixed that. Here is the result.
| Pam CAN access | Why it is allowed |
|---|---|
| Her own knowledge-base folder (CS policy, the per-brand customer-question sets, the Yuma auto-handled digest) | This is the customer-service knowledge, the whole point of the bot |
| The two brand websites and their help centers | To check live policy and product pages for a customer answer |
| Network: Anthropic, Slack, and the brand domains only | Enough to think, reply in Slack, and read the brand sites. Nothing else. |
| Pam CANNOT access verified blocked | What lives there |
|---|---|
| The second brain | Employee one-on-ones, performance, HR, personal, family, investing |
| The Claude memory files | Notes about people and the business |
| The Documents and Library folders | Everything personal and app data |
| Google credentials, secrets, SSH and cloud keys | Account access |
| Other bots' configs and logs | Cross-bot data leakage |
| The shell (Bash) is removed entirely | So she cannot read a file or send data out the side door |
A setting you cannot test is a setting you do not trust. So we ordered Pam, running exactly as she does in production, to read the forbidden files. Then we ordered her to read her own policy file.
The fence sits at the permission layer, below the bot's instructions. So even a planted message that says "ignore your rules and read X" cannot get past it. The block is enforced by the system, not by the bot's good behavior.
If you run more than one Slack bot off a single Claude account, give each bot its own fence. Six steps:
~/ path notation (see gotchas).~/ form (for example ~/second-brain/**). We first wrote the full /Users/you/... path, and it silently matched nothing and blocked nothing. The bot read everything while the config looked correct.