setup
Skill8 starsChanged 11 days agoMITView on GitHub
Set up stranger-danger in chat. Checks your settings file first, asks a question or two, then changes each file with one prompt that shows its diff, and walks you through the steps only you can do. Nothing is written without your approval.
191 other projects use a version of this.
Adopted by
Most recently taken up by
- hydra-db/hydradb-claude-codetheir own version, first seen Nov 8, 2026
- WALKERKILLER/Look-Tongji-Notestheir own version, first seen Nov 8, 2026
- steerlabs/opensteertheir own version, first seen Nov 8, 2026
- ansvisor/ansvisortheir own version, first seen Nov 8, 2026
- dsifry/metaswarmtheir own version, first seen Nov 8, 2026
- anombyte93/prd-taskmastertheir own version, first seen Nov 8, 2026
Used with
Projects with it also use add-voice-transcription, add-discord and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
juancruzmunozalbeloSkilladd-voice-transcription
Add voice message transcription to NanoClaw using OpenAI's Whisper API. Automatically transcribes WhatsApp voice notes so the agent can read and respond to them.
Also in 5 projects that use this
MicrosoftSkilladd-discord
Add Discord bot channel integration via Chat SDK.
Also in 11 projects that use this
MicrosoftSkilladd-slack
Add Slack channel integration via Chat SDK.
Also in 11 projects that use this
juancruzmunozalbeloSkilladd-telegram-swarm
Add Agent Swarm (Teams) support to Telegram. Each subagent gets its own bot identity in the group. Requires Telegram channel to be set up first (use /add-telegram). Triggers on "agent swarm", "agent teams telegram", "telegram swarm", "bot pool".
Also in 7 projects that use this
- +8 more from microsoft
Other versions191 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 191
- anthropics/knowledge-work-plugins★ 35ksame name
- garrytan/gbrain★ 32ksame name
- gavrielc/nanoclaw★ 31ksame name
- nanocoai/nanoclaw★ 31ksame name
- qwibitai/nanoclaw★ 31ksame name
- Q00/ouroboros★ 6.3ksame name
- pytorch/executorch★ 5.2ksame name
- agenticnotetaking/arscontexta★ 3.5ksame name
- aws/agent-toolkit-for-aws★ 3.4ksame name
- spotify/portal-ai-plugins★ 2.8ksame name
181 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository5 other files it gives its agents.
- coordinatorSkill
- doctorSkill
- osvSkill
- reportSkill
- scanSkill
The file
We split this skill into the rules it gives an agent
8 rules. 0 are common, 5 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 170 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 21
If it exits 0, go on.
- Very specific: line 26
Ask the user one question, with a recommendation: do they use auto mode?
- Distinctive: line 36
If they aren't sure, recommend no for now.
- Very specific: line 50
Run python3 -I "${CLAUDE_PLUGIN_ROOT}/skills/setup/chat.py" show NAME (with --automode and --osv if chosen), with NAME the file's name.
- Distinctive: line 51
Read the staged file it names.
- Distinctive: line 52
If the target file already exists, Read it too (the Write tool needs that).
- Very specific: line 69
If the user would rather set up from a terminal, tell them to run python3 -I "${CLAUDE_PLUGIN_ROOT}/skills/setup/apply.py" there …
- Distinctive: line 71
If a script fails, show its error and point the user to the install steps in the plugin's README.
“Common” is measured: kept by at least 6 in 10 of the 170 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
stranger-danger setup
Set up the plugin in chat. Each file changes through one Write prompt that shows the user its diff. The plugin's settings guard hook refuses any change to these files except the one chat.py works out, so copy the staged text exactly. Guide the user through every step: say what comes next and why before each prompt or step, in plain words, one step at a time.
The script is python3 -I "${CLAUDE_PLUGIN_ROOT}/skills/setup/chat.py" below; run each command exactly as written, from the folder the session started in.
1. Check the settings file first
Run:
python3 -I "${CLAUDE_PLUGIN_ROOT}/skills/setup/chat.py" checkYou have to read the user's settings file to change it, and whatever you read lands in this session. This check reads it for you and prints only the names of values that look like secrets.
- If it exits 0, go on.
- If it exits 1, show its output exactly and stop. Walk the user through its numbered steps one at a time, waiting for them to say each is done. Those steps happen in the user's own editor. Don't read the settings file, don't offer to move the values yourself, and don't work around the check. When they're done, they start a new session and run
/stranger-danger:setupagain.
2. Ask, then show the plan
Ask the user one question, with a recommendation: do they use auto mode? If yes, add --automode to every plan and show command below; it adds the plugin's auto-mode rules. If they aren't sure, the answer is no.
Then ask a second question: do they want the OSV check (/stranger-danger:osv), which checks the packages they hold against public advisories when they type it? If yes, add --osv to every plan and show command below. Say plainly what it adds before they answer:
- five hosts to the sandbox's network list (
api.osv.dev,api.github.com,nodejs.org,peps.python.org,www.python.org), which then open to every sandboxed command in every session;api.github.comis the widest, since a command with a GitHub token at hand could write to GitHub through it; - the results folder
~/.cache/stranger-danger/osvto the sandbox's write list, so any sandboxed command could also write there, and forge a result that silences the check's session line; the plugin's session hook makes the folder, private, when the next session starts; - each run sends the names and versions of everything it finds, in the folders checked and the user's global installs, to OSV and GitHub;
- Node.js's end of life isn't checked, because its list is on a host setup doesn't add (Node's security releases are checked for exact versions, not for a line-only pin such as
.nvmrc20); - it needs the system's own bash, curl, jq 1.6+ and python3.
If they aren't sure, recommend no for now; they can run setup again later with it.
Then run:
python3 -I "${CLAUDE_PLUGIN_ROOT}/skills/setup/chat.py" planShow its output exactly. Tell the user that each listed file is one prompt with its diff, that they can approve or decline each, and that nothing changes until they approve. If it says there's nothing to change, skip to step 4.
3. One prompt per file
For each name the plan listed, in this order: rules, claude-md, settings (skip a name the plan didn't list):
- Run
python3 -I "${CLAUDE_PLUGIN_ROOT}/skills/setup/chat.py" show NAME(with--automodeand--osvif chosen), withNAMEthe file's name. Run it just before that file's Write, not all at once: each file's text can depend on the ones written before it. - Read the staged file it names.
- If the target file already exists, Read it too (the Write tool needs that). The check in step 1 found nothing that looks like a secret in the settings file.
- Tell the user in one sentence what this file is and what changes, then Write the staged text, exactly and in full, to the target path. Copy only the file's text, not the Read tool's line numbers.
If the user declines a prompt, don't retry it: go on to the next file, and say at the end which files weren't changed. If the settings guard refuses a Write, run show for that file again and try once more. If it refuses again, stop and show the user the guard's message. Never write these files any other way: not with Edit, and never through Bash.
4. The user's own steps
Run:
python3 -I "${CLAUDE_PLUGIN_ROOT}/skills/setup/chat.py" nextShow its steps exactly, then guide the user through them one at a time, waiting for each to be done. Explain what each is for if they ask. These steps are the user's by design. Don't edit the rules file or the gate config yourself (the guard refuses it), and don't ask the user for their canary word: it isn't shown, and the doctor checks it.
In a terminal instead
If the user would rather set up from a terminal, tell them to run python3 -I "${CLAUDE_PLUGIN_ROOT}/skills/setup/apply.py" there themselves, with the path filled in, or run python3 "${CLAUDE_PLUGIN_ROOT}/skills/setup/setup.py" and show its step-by-step commands exactly. Never run apply.py or those commands yourself.
If a script fails, show its error and point the user to the install steps in the plugin's README.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

