
Run simulated people (proxies) from an org against Mermaid charts, wireframes, flows, and designs. Verbs are use, meeting, redteam, prep, followup, compare, ask, talk, calibrate, new, clone, org new, export, import, and pages. Use when the user types /proxies or asks to run a meeting, red team, or question with the proxies in this repo.
npx mdskills install rgourley/proxiesRelated
Sophisticated stakeholder simulation system with parallel proxy agents and structured formats
A simulated room of stakeholders you run an idea, prototype, or design concept past before the real meeting. Each person has a card: role, incentives, hard lines, blind spots, voice. You give them a flow, spec, or prototype, and each one tells you where it breaks for them.
Proxies are simulations. They show the concerns a role would likely raise. They do not predict what a real person says.
You need Node 22 or later and Claude Code. There is nothing to install.
git clone https://github.com/rgourley/proxies.git
cd proxies
claude
Claude Code loads the /proxies skill and the persona agent from .claude/ when it starts in this folder. Start a new session after you clone or pull, so it picks up changes to either. Then run /proxies use tilt to check that it works.
Run from this folder in Claude Code. Full details live in .claude/skills/proxies/SKILL.md.
| Command | What it does |
|---|---|
/proxies use | Pick the org and list its people |
/proxies redteam "" | Everyone tries to break it |
/proxies meeting "" | Debate, then the decision owner calls it |
/proxies prep | Each person's top questions |
/proxies followup | Check whether a revision answered their objections |
/proxies compare | Each person picks a version |
/proxies ask "" / talk | Talk to one person |
/proxies calibrate | Tune a card against what the real person said |
/proxies org new "" | Create an org |
/proxies new | Add a person to the active org |
/proxies clone --to | Copy a person into another org and adapt them |
/proxies export / import | Share an org as one JSON file |
/proxies pages | Rebuild and republish the results page |
Flags for the run commands:
| Flag | What it does |
|---|---|
--org | Use this org instead of the active one |
--use | Invite only the people whose uses list has this use case |
--with a,b,c | Invite exactly these people. Overrides --use |
--dissenter | This person holds their position unless someone answers their block |
--no-decision | End a meeting after the rebuttals, with no decision round |
--wordy | Drop the word targets, so each person writes at full length |
--noui | Show the results in chat and do not open the page |
After a run, the results page opens by default. Chat shows only the verdict and the run folder.
All feedback is in plain business English.
Describe the company, and Claude drafts the org:
/proxies org new acme "Mid-size insurer, 4,000 staff, buying a claims tool. Regulated by state insurance boards. IT and compliance can veto vendors."
It writes orgs/acme/org.md: the business, rules, culture, who decides what, and the company's vocabulary. Anything it guessed is marked "(assumed)", and you see the draft before it saves.
Then add people one at a time. Each gets a handle and a seat, which is the role template they start from:
/proxies use acme
/proxies new dana compliance
Claude asks for the name and title and drafts the rest. The seats live in seats/, and you can add your own. /proxies clone dana --to acme adapts a person from another org.
Each person has a decision level: owner decides, veto can block, approve must sign off, consult gives input, and inform is kept in the loop. Everything is plain markdown, so you can also edit the files by hand. Copy orgs/tilt/ to start.
When the real person would have said something different, run /proxies calibrate dana "what they actually said". Claude proposes edits to their file and logs the change.
Each person gets a generated avatar in the style of the Proxies illustration. Their pronouns choose the hair and clothes, and the same person always gets the same avatar. To set it yourself, add any of these to the person file: avatar_hair (bob, bun, ponytail, long, short, curls, scarf, side, buzz, bald, receding, quiff), avatar_top (blazer, suit, turtleneck, vneck, dress), avatar_facial_hair (none, beard, mustache, stubble), and avatar_glasses (none, round, square). To get a different random avatar, add avatar_seed with any text.
The page opens on its own after every run. To build and open it by hand:
npm run pages
open runs.html
Each run shows who blocks, the ranked findings, what to fix first, and every person's full response. Click any name to open that person's card. npm run pages -- --org tilt builds a page with one org. /proxies pages republishes it as a private Claude artifact that you share from its Share menu.
An org exports to one JSON file with its people, their calibration logs, and the seats they use:
npm run export-org -- tilt
npm run import-org -- tilt.proxies.json
In Claude Code, use /proxies export tilt and /proxies import tilt.proxies.json. The page's Export button copies the same JSON, and /proxies import with no file reads it from the clipboard on macOS.
The import never overwrites an existing org. Add --as to import it under another name. If a seat differs from your copy, the import stops and names it.
Three fictional orgs ship with the repo so you can try it right away. tilt is a SaaS company that makes a project planning tool. brightpath is a 14-site clinic network. northpine is a game studio that runs one live game and is building its next one. They hold people only. You bring the thing to review:
/proxies use tilt
/proxies redteam path/to/your-flow.mmd "an agency invites 30 client reviewers"
Git does not keep a client org out of the repo by default. List client orgs, briefs, and runs in .git/info/exclude. That file stays on your machine and is never pushed:
orgs/acme/
briefs/acme/
runs/*acme*/
seats/ role templates that every org reuses
orgs//org.md company context: regulators, culture, decision rights, vocabulary
orgs//people/ one file per person; frontmatter feeds the card
orgs//calibration/ one log per person: real quotes, misses, and the edits they caused
formats/ rules for each command: meeting, redteam, prep, followup, compare, ask/talk, calibrate
briefs// shared project context: brief.md plus the real source docs every proxy reads
runs/ one folder per run, with every proxy's output
.claude/agents/ the persona runner (one person per subagent)
.claude/skills/proxies/ the orchestrator
A person file names its seat. The runner gets the seat file, then org.md, then the person file.
PolyForm Shield 1.0.0. You can use, change, and share Proxies for any purpose, including inside your company, except to build a product that competes with it. Versions published before this change keep the FSL-1.1-MIT license they shipped with.
Best experience: Claude Code
/plugin marketplace add rgourley/proxiesThen /plugin menu → select skill → restart. Use /skill-name:init for first-time setup.
Other platforms
Install via CLI
npx mdskills install rgourley/proxiesProxies: simulated stakeholder reviews in Claude Code is a free, open-source AI agent skill. Run simulated people (proxies) from an org against Mermaid charts, wireframes, flows, and designs. Verbs are use, meeting, redteam, prep, followup, compare, ask, talk, calibrate, new, clone, org new, export, import, and pages. Use when the user types /proxies or asks to run a meeting, red team, or question with the proxies in this repo.
Install Proxies: simulated stakeholder reviews in Claude Code with a single command:
npx mdskills install rgourley/proxiesThis downloads the skill files into your project and your AI agent picks them up automatically.
Proxies: simulated stakeholder reviews in Claude Code works with Claude Code, Claude Desktop, Cursor, Vscode Copilot, Windsurf, Continue Dev, Codex, Gemini Cli, Amp, Roo Code, Goose, Opencode, Trae, Qodo, Command Code. Skills use the open SKILL.md format which is compatible with any AI coding agent that reads markdown instructions.