setup
Skill3 starsChanged 6 days agoApache-2.0View on GitHub
Set this project up for the commandeck workflow. Use when the owner runs /commandeck:setup or says "set up commandeck", "install the workflow here". Run it in the project's main checkout.
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 repository10 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- doctorSkill
- file-issueSkill
- handoffSkill
- maxreviewSkill
- revokeSkill
- uninstallSkill
- updateSkill
- worktreereviewSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
80 rules. 0 are common, 52 are distinctive, and 28 are very specific to this project.
0
Common
Most of the 171 edited versions we read keep these.
52
Distinctive
This author's own choices. Worth a look.
28
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 10
Ask each question once, show the owner every change before it is made, then run one script.
- Very specific: line 27
Before the first question, run one probe: bash -c 'command -v orca-ide.
- Very specific: line 38
Run bash ${CLAUDE_PLUGIN_ROOT}/scripts/setup.sh --questions begin.
- Very specific: line 42
If it stops on requirements are missing, show what it printed, as printed.
- Distinctive: line 46
Ask "Install": Install (recommended) | I'll do it myself | Stop
- Distinctive: line 49
Stop: set nothing up.
- Very specific: line 51
Only "Install" runs setup.sh --questions begin --install-missing.
- Distinctive: line 66
Ask "Setup": Auto Setup (recommended) | Custom
- Very specific: line 76
Ask the profile. Only when --questions begin printed both "Codex reviewer: ready" and "Codex model: found": Ask "Auto profile": Claude + …
- Distinctive: line 77
Ask "Auto profile": Claude + Codex (recommended) | Claude Only Otherwise: Ask "Auto profile": Claude Only (recommended) | Stop
- Distinctive: line 79
Ask "Auto profile": Claude Only (recommended) | Stop
- Very specific: line 82
Stop: run setup.sh --questions end and stop.
- Very specific: line 89
keep the front matter the file opens with as its first lines, and write no <!-- commandeck: line.
- Distinctive: line 92
Ask "Global CLAUDE.md": Optimize it (recommended) | Leave it as it is
- Very specific: line 94
Leave it as it is: no byte of the file changes.
- Very specific: line 97
Run bash ${CLAUDE_PLUGIN_ROOT}/scripts/setup.sh --auto <claude-openai|claude> --rules-rewrite <folder> and step 3's flags.
- Very specific: line 98
Run bash ${CLAUDE_PLUGIN_ROOT}/scripts/relay-sync.sh.
- Distinctive: line 103
Ask them in this order, up to four questions per call.
- Distinctive: line 106
Ask "Reviewer": Claude (recommended) | Codex
- Distinctive: line 111
Ask "Permissions": This project (recommended) | Every project
- Very specific: line 113
Every project: in ~/.claude/settings.json, for every project on this machine.
- Distinctive: line 115
Only when the check printed "your project rules": Ask "Your rules": Merge (recommended) | Keep both
- Distinctive: line 116
Ask "Your rules": Merge (recommended) | Keep both
- Very specific: line 118
Keep both: sessions load the plugin's rules as they are, beside yours.
- Distinctive: line 130
Ask "Rule <n>": Keep mine (recommended) | Use the plugin's | Keep both
- Very specific: line 131
Keep mine: sessions leave the plugin's rule out.
- Very specific: line 132
Use the plugin's / Keep both: both load (setup never edits your own text).
- Distinctive: line 138
Ask "Own startup": Merge (recommended) | Replace | Skip Ask "Own main": Merge (recommended) | Replace | Skip
- Distinctive: line 139
Ask "Own main": Merge (recommended) | Replace | Skip
- Distinctive: line 143
Only when the check printed "your global rules", else offer Install (recommended) | Skip: Ask "Global rules": Merge (recommended) | Add as …
- Distinctive: line 144
Ask "Global rules": Merge (recommended) | Add as block | Skip Ask "Global CLAUDE": Merge (recommended) | Add as block | Skip
- Distinctive: line 145
Ask "Global CLAUDE": Merge (recommended) | Add as block | Skip
- Very specific: line 147
Add as block: all of them, in a marked block.
- Distinctive: line 157
Ask "Settings": Recommended set (recommended) | Choose groups | Keep saved
- Very specific: line 160
Keep saved: sends none of these flags.
- Distinctive: line 162
Ask "Groups": Models | Plan seats | Reviewer | Review workflow Ask "More groups": Caches | Builders and wakes | Units views | Auto-decide A …
- Distinctive: line 163
Ask "More groups": Caches | Builders and wakes | Units views | Auto-decide A chosen group asks each of its keys once, up to four keys per …
- Distinctive: line 176
Ask "Context": 200K (recommended) | Larger
- Very specific: line 179
Read the check's "context window" line first.
- Distinctive: line 185
Ask "Builder clear line": 180K (recommended) | 150K | 250K | Off
- Distinctive: line 187
Ask "Issue sizing": 40K (recommended) | 30K | 60K | Off
- Distinctive: line 189
Only with the Codex reviewer: Ask "Trust every hook in this Codex home before each Codex launch?": Yes (recommended) | No
- Distinctive: line 190
Ask "Trust every hook in this Codex home before each Codex launch?": Yes (recommended) | No
- Distinctive: line 196
Ask "Relay": None (recommended) | Chief of Staff | <saved name, if any>
- Distinctive: line 201
Ask "Relay voice": Plain and brief (recommended) | Write my own | <saved line, if any>
- Very specific: line 203
When a relay already exists, run bash ${CLAUDE_PLUGIN_ROOT}/scripts/relay-sync.sh.
- Distinctive: line 204
Ask "Relay": Rebase it (recommended) | Leave as is
- Very specific: line 206
Leave as is: nothing is run.
- Distinctive: line 208
Ask "Dashboard": On, this machine only (recommended) | Off | <saved names, if any>
- Distinctive: line 214
Ask "Merge check": <detected command> (recommended) | None | Type my own | <saved command, if any>
- Distinctive: line 219
Ask "Full suite before the final review": On (recommended) | Off
- Distinctive: line 233
Ask "Strict hooks": Off (recommended) | On
- Distinctive: line 237
Ask "Main prompt cache": 1h (recommended) | 5m | Leave as is
- Very specific: line 240
Leave as is: writes nothing.
- Distinctive: line 241
Ask "Builder and worker prompt cache": 5m (recommended) | 1h | Leave as is
- Distinctive: line 246
Ask "Chief of Staff prompt cache": 1h (recommended) | 5m | Leave as is
- Distinctive: line 251
Ask "Auto mode": Add two entries (recommended) | Leave as is | Take them out
- Very specific: line 253
Leave as is: Changes nothing in ~/.claude/settings.json.
- Distinctive: line 257
Ask "Worker cuts": None (recommended) | Name some | <saved lists, if any>
- Distinctive: line 260
Ask "Keep words": None (recommended) | Add one | <saved words, if any>
- Very specific: line 262
Add one, or typed as the picker's own text answer, as <word>=<name>[,<name>...]: builder-launch.sh --keep <word> brings those skills and …
- Very specific: line 263
Add-ons, one multi-select question (multiSelect: true): Ask "Add-ons": All (recommended) | serena | agent-browser | None
- Distinctive: line 264
Ask "Add-ons": All (recommended) | serena | agent-browser | None
- Very specific: line 269
All sends nothing; the other chosen ones are sent as --addons <a>,<b>, None as --addons none.
- Distinctive: line 276
Ask "Blocking severity": P2 and above (recommended) | P1 and above | P3 and above
- Distinctive: line 278
Ask "Closing pass from": 5 (recommended) | 3 | 8
- Distinctive: line 280
Ask "Fresh closing reviewer": Yes (recommended) | No
- Distinctive: line 282
Ask "Closing pass": Runs (recommended) | None
- Distinctive: line 285
Ask "Small build": 200 lines (recommended) | 400 | Off
- Distinctive: line 288
Ask "Review flags": Defaults (recommended) | Off | Set each
- Very specific: line 289
When a finished build is flagged for a written review: over 30 minutes of review, over a third of the time on tests or idle waits, over 30 …
- Distinctive: line 291
Ask "Review minutes": 30 (recommended) | Off | 60 Ask "Test share": 33 (recommended) | Off | 50 Ask "List price": 30 (recommended) | Off | …
- Distinctive: line 292
Ask "Test share": 33 (recommended) | Off | 50 Ask "List price": 30 (recommended) | Off | 100
- Distinctive: line 293
Ask "List price": 30 (recommended) | Off | 100
- Very specific: line 303
Run the same command with every answer's flags and --plan: bash ${CLAUDE_PLUGIN_ROOT}/scripts/setup.sh <flags> --plan.
- Distinctive: line 308
Ask "Apply": Apply (recommended) | Change an answer | Cancel
- Very specific: line 319
If it printed a codex notify: ASK: line, Codex's notify runs the owner's own wrapper script, and it calls an older plugin version's hook.
- Distinctive: line 323
Ask "Notify wrapper": Change it (recommended) | Leave it
- Very specific: line 325
Leave it: run it with --notify-wrapper no.
- Distinctive: line 340
Ask "Demo build": Yes (recommended) | Skip
“Common” is measured: kept by at least 6 in 10 of the 171 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
/commandeck:setup
Ask each question once, show the owner every change before it is made, then
run one script. Do not edit any settings or rules file yourself: setup.sh
records what was there before it changes it and copies an owner's file beside
it first, and an edit made around it cannot be undone by uninstall. Auto Setup
writes its merged rule text only into the staging folder auto-setup.sh
--sources names, never into a rule file: setup.sh writes it from there.
Rule: a refused or failed question call is not an answer: say which question it was and the error (such as Invalid tool parameters), ask the same thing again in plain text, and never skip it or assume a default.
Rule: a question has 2 to 4 options, or the call fails. Where only one answer is always there (no saved value, nothing detected), a second option takes the typed value: "Type my own", "Write my own", "Name some" or "Add one". Choosing it asks for the value in plain text, once; the picker's own text answer takes the value directly.
Rule: every question goes through AskUserQuestion, with exactly the headers and options written here, recommended option first, and each option's one-line description as written. The recommended option's label ends in " (recommended)", as written below, in every question. While setup asks, the picker guard's decoy is off (--questions begin below), so a question has up to four options of its own. A typed value is a question too: its options are the likely values (the saved one first when there is one), and the picker's own free-text answer takes any other. Never print a list of follow-up questions in plain text. An answer setup cannot use as given is asked again as a picker that offers only the choices setup supports.
Rule: free text the owner types (the relay's name and its line, the merge check command, a host name) is passed to setup.sh exactly as typed, never corrected, completed or reformatted; a suspected slip may be asked about before anything is sent, and the original is sent unless the owner changes it.
Rule: a saved answer is offered first, marked "(saved)" (and "(recommended)" too when it is that one: the same answer once case and surrounding spaces are set aside, offered as one option and sent as the saved text). Only the questions that apply are asked: the step says when one is skipped.
Before the first question, run one probe: bash -c 'command -v orca-ide; true'.
It changes nothing, and no answer from it is a failure. If a hook that is not
this plugin's refuses it (its file is not under ${CLAUDE_PLUGIN_ROOT}), stop
there. Tell the owner which hook refused, that this plugin cannot run in this
project until that rule allows orca-ide, and the one command to run in their
own terminal, in this folder, with the plugin's folder written out:
bash <plugin folder>/scripts/setup.sh --profile claude|claude-openai. Never
edit, switch off or work round the project's own guard.
0. Check first
Run bash ${CLAUDE_PLUGIN_ROOT}/scripts/setup.sh --questions begin. It checks
the requirements, says what it found, and turns the picker guard's decoy off
until setup ends. It writes nothing else.
If it stops on requirements are missing, show what it printed, as printed.
The "yours to do" lines are the owner's: plain text, never a question. If
there is a "can install" group, show its commands exactly as printed, then ask:
Ask "Install": Install (recommended) | I'll do it myself | Stop
- Install: runs the commands shown above, and no other.
- I'll do it myself: stop now; run /commandeck:setup again after.
- Stop: set nothing up.
Only "Install" runs setup.sh --questions begin --install-missing; any other
answer runs setup.sh --questions end and stops.
Then tell the owner, in three lines: Commandeck turns this session into an
orchestrator that hands each build to a Builder pane in its own worktree, has
each build reviewed, and merges it locally only after review and tests pass.
Setup will write its config (.claude/commandeck.json), permission rules,
git's local exclude list, two background jobs (a watcher and, if chosen, the
dashboard), and only what the answers below choose; with Custom, nothing is
written until the owner has seen the full list and said Apply, and Auto Setup
applies its profile with no preview. Then read back the "Found"
lines --questions begin printed, in plain words.
Then ask:
Ask "Setup": Auto Setup (recommended) | Custom
- Auto Setup: one more question, then the plugin's reference profile is applied with the values detected here, and your rule files are merged with the plugin's and tightened (each one backed up first; uninstall puts the originals back). Go to "Auto Setup" below.
- Custom: every question below, as before; setup never edits your own rule text. Go to step 1.
Auto Setup
Auto asks one question, plus the global CLAUDE.md question when that file is there, and nothing else: no project-file question, no preview, no Apply, no demo build.
- Ask the profile. Only when
--questions beginprinted both "Codex reviewer: ready" and "Codex model: found": Ask "Auto profile": Claude + Codex (recommended) | Claude Only Otherwise: Ask "Auto profile": Claude Only (recommended) | Stop- Claude + Codex: the reference profile; Codex reviews each build and runs the second plan judge, on the newest model the Codex CLI reports.
claude-openai - Claude Only: the same profile, with the reviewer and the second plan judge on Opus at the same efforts.
claude - Stop: run
setup.sh --questions endand stop.
- Claude + Codex: the reference profile; Codex reviews each build and runs the second plan judge, on the newest model the Codex CLI reports.
- Run
bash ${CLAUDE_PLUGIN_ROOT}/scripts/auto-setup.sh --sources. It empties the staging folder and prints, tab-separated,staging <folder>,template <name> <path>for the plugin's four rule templates, andfile <key> <path>orlinked <key> <path>for each of the owner's rule files. Alinkedfile is a link to or from AGENTS.md or the global file: leave it alone. For eachfileline, read the file and the templates it is weighed against (AGENT_STARTUP.md and main-session.md for the project's files; global-claude.md and global-rules.md forglobal/CLAUDE.md). Write its merged text, with the Write tool, to<folder>/<key>(<folder>/global/CLAUDE.mdfor the global file):- drop each owner line that a plugin template rule already states (the plugin's rule still loads);
- drop each owner line that conflicts with a plugin rule: the plugin's rule wins;
- tighten the wording of what is left, keeping every rule the plugin does not state;
- compare each file only with the plugin's templates, never with the owner's other files;
- keep the front matter the file opens with as its first lines, and write no
<!-- commandeck:line. A file that needs no change is not staged. For each dropped conflicting line, add one line to<folder>/conflicts.tsv:<key>, the owner's line, the plugin's rule, separated by tabs (no tab inside a field). Write nothing outside the staging folder.
- When step 2 printed a
file global/CLAUDE.mdline: stage it as above (a file that needs no change stays unstaged), runbash ${CLAUDE_PLUGIN_ROOT}/scripts/auto-setup.sh --global-preview <folder>, and show what it printed, as printed: the change, and oneCONFLICT:line per line the plugin's rule replaces. That file applies to every project on this machine. Then: Ask "Global CLAUDE.md": Optimize it (recommended) | Leave it as it is- Optimize it: the staged text replaces the file (a copy is made first), and the plugin's rules it lacks are added in marked blocks.
--global-rewrite yes --global-claude merge --global-rules merge - Leave it as it is: no byte of the file changes.
--global-rewrite no --global-claude skip --global-rules skipWith no global file, ask the same question with no preview: Optimize it creates the file with the plugin's rules (--global-claude install --global-rules install); Leave it as it is sends--global-claude skip --global-rules skip. With alinked global/CLAUDE.mdline (the global file and AGENTS.md are one file), stage nothing for it and ask the same question with no preview: Optimize it adds the plugin's rules in marked blocks and keeps your text (--global-claude merge --global-rules merge); Leave it as it is sends--global-claude skip --global-rules skip.
- Optimize it: the staged text replaces the file (a copy is made first), and the plugin's rules it lacks are added in marked blocks.
- Run
bash ${CLAUDE_PLUGIN_ROOT}/scripts/setup.sh --auto <claude-openai|claude> --rules-rewrite <folder>and step 3's flags. If it stops on a--rules-rewrite:line, it changed nothing: fix the staged file it names (the folder is kept) and run the same command again. Any other stop: read its line to the owner. - Run
bash ${CLAUDE_PLUGIN_ROOT}/scripts/relay-sync.sh. If it printsrelay: <n> commits behind main, runbash ${CLAUDE_PLUGIN_ROOT}/scripts/relay-sync.sh --rebaseand show its line. - Show setup's summary as printed, its
rules:andauto:lines included: each rule file rewritten or left, each conflict settled, each backup path, each detected value and where it came from, and the dashboard's address. Runbash ${CLAUDE_PLUGIN_ROOT}/scripts/doctor.shand show every line that is notok. Stop there.
1. The questions
Ask them in this order, up to four questions per call.
- Who reviews each build?
Ask "Reviewer": Claude (recommended) | Codex
- Claude: a second Claude session reviews; nothing else to install.
--profile claude - Codex: OpenAI's Codex CLI reviews (it must be signed in).
--profile claude-openaiOffer Codex only if the check said "Codex reviewer: ready".
- Claude: a second Claude session reviews; nothing else to install.
- Where do permission rules go?
Ask "Permissions": This project (recommended) | Every project
- This project: in
.claude/settings.local.json, which git never sees.--scope project - Every project: in
~/.claude/settings.json, for every project on this machine.--scope machineA changed answer moves the rules; setup says so.
- This project: in
- Only when the check printed "your project rules":
Ask "Your rules": Merge (recommended) | Keep both
- Merge: sessions leave out the plugin's rules your CLAUDE.md and
.claude/rules/already state word for word.--rules merge - Keep both: sessions load the plugin's rules as they are, beside yours.
--rules skipOn Merge, find rules that say the same thing in other words, or disagree: runpython3 ${CLAUDE_PLUGIN_ROOT}/scripts/merge-rules.py ${CLAUDE_PLUGIN_ROOT}/templates/AGENT_STARTUP.md --against <each rules file> --units(and the same fortemplates/main-session.md), read each printed rule against the owner's files, and for each one that matches only in meaning or conflicts, ask one question (up to four per call). Its header is "Rule<n>", counting from 1 (keep the printed id for the flag; never show it). Its question says in words what the two rules have in common, then quotes both texts whole: the owner's line, with its file, and the plugin's rule. For example: "Your CLAUDE.md and the plugin both set when to run tests. Yours: 'Run the suite before every commit.' The plugin's: 'Run the smallest set of tests that would fail.' Which should sessions follow?" Ask "Rule<n>": Keep mine (recommended) | Use the plugin's | Keep both - Keep mine: sessions leave the plugin's rule out.
--rules-drop <id> - Use the plugin's / Keep both: both load (setup never edits your own text).
--rules-keep <id>--rules-drop ''clears every earlier answer. On a rerun, an id already undermergeDecisionsin.claude/commandeck.jsonis not asked again: only new or changed plugin rules are (a changed rule has a new id).
- Merge: sessions leave out the plugin's rules your CLAUDE.md and
- For each "your own AGENT_STARTUP.md" or "your own .claude/main-session.md"
line the check printed, every time setup runs:
Ask "Own startup": Merge (recommended) | Replace | Skip
Ask "Own main": Merge (recommended) | Replace | Skip
- Merge: yours keeps loading, and the plugin's rules it lacks are added in a marked block (shown in the preview; uninstall takes the block out); each session leaves out of the block what the project rules it loads already state.
--own-startup merge/--own-main-session merge - Replace: sessions load the plugin's version; yours stays on disk, untouched.
replace - Skip: yours loads instead of the plugin's whole version, as today.
skip
- Merge: yours keeps loading, and the plugin's rules it lacks are added in a marked block (shown in the preview; uninstall takes the block out); each session leaves out of the block what the project rules it loads already state.
- Only when the check printed "your global rules", else offer Install (recommended) | Skip:
Ask "Global rules": Merge (recommended) | Add as block | Skip
Ask "Global CLAUDE": Merge (recommended) | Add as block | Skip
- Merge: only the plugin's rules your
~/.claude/CLAUDE.mdlacks, in a marked block.--global-rules merge/--global-claude merge - Add as block: all of them, in a marked block.
block - Install (no file yet): creates the file with them.
install - Skip: the file is left alone.
skip"Global rules" are the plugin's working, review, agent and test rules; "Global CLAUDE" its general instructions (working rules, code exploration, root-cause discipline). Your own text is never changed, and a copy of the file is made first.
- Merge: only the plugin's rules your
- The settings. Every
/pluginconfig option has a recommended value in the plugin's recommended profile: therecommended <key>: <value> (takes: ...)lines--questions beginprinted. They are the one source of recommended values and of every value a key takes; never answer either from this text. An answer is sent as--option <key>=<value>(any key/pluginconfig lists; a key with its own flag, below, is sent either way) and saved as that key in/pluginconfig, where it can be changed later. A value--plansays it skipped (a Codex model on the Claude profile) is not an error. Ask "Settings": Recommended set (recommended) | Choose groups | Keep saved- Recommended set: every setting from the recommended profile, listed by the
--planpreview; nothing else is asked about them.--recommended - Choose groups:
--recommended, then each chosen group's answers override it. - Keep saved: sends none of these flags. Offer it only on a rerun (
--questions beginprinted "earlier answers"). On "Choose groups", two multi-select questions (multiSelect: true): Ask "Groups": Models | Plan seats | Reviewer | Review workflow Ask "More groups": Caches | Builders and wakes | Units views | Auto-decide A chosen group asks each of its keys once, up to four keys per call. The question names the key and what it sets; its options are the recommended value first, marked "(recommended)", then up to three other values from the key'stakes:list (a model's other families, an effort's neighbours, a boolean's other value); the owner's own text answer takes any other value in that list. Sent as--option <key>=<value>, after--recommended. - Models:
orchestratorModel,orchestratorEffort(this session; saved in this checkout's.claude/settings.local.json),builderModel,builderEffort,fixerEnabled,fixerFirstModel,fixerFirstEffort,fixerModel,fixerEffort.projecttakes back an earlier answer, so the role runs on its default. A Builder cannot be off, and no advisor is added. - Plan seats:
planAuthorEnabled,planAuthorModel,planAuthorEffort,planAuthorFast,planJudgeSolEnabled,planJudgeSolAgent(codex or claude; the Reviewer question sets the default, and a Claude judge reads only),planJudgeSolModel,planJudgeSolEffort,planJudgeSolFast,planJudgeOpusEnabled,planJudgeOpusModel,planJudgeOpusEffort,planJudgeOpusFast. A fast tier costs more; offer a Codex seat's only when the check said "Codex fast mode: available". - Reviewer:
codexReviewerModel,codexReviewerEffort,codexReviewerFast. On the Codex profile, when the check said "Codex model: not found", offer the id it printed first, as recommended. The Claude reviewer's model is one of opus, sonnet, fable. - Review workflow: step 13.
- Caches: step 11.
- Builders and wakes:
maxBuilders(a whole number; empty is no cap, so leave it out for no cap),wakeKinds,wakeWindowSeconds.--option maxBuilders=<n>. - Units views:
unitsBand,unitsPane,unitsStatus. - Auto-decide:
autoDecideSeats. Ask "Context": 200K (recommended) | Larger - 200K: your account's model holds 200K tokens; panes compact sooner.
--standard-context - Larger: your model holds more (a 1M window).
--no-standard-contextRead the check's "context window" line first. When it says 1M, or your own model id ends in[1m], Larger goes first and is the one marked "(recommended)". When it found no model setting, add to the question: "Not sure? /model shows your model: one marked 1M, or an id that ends in [1m], is Larger." Then, one call: Ask "Builder clear line": 180K (recommended) | 150K | 250K | Off - Past this much context the Builder finishes its step, writes a handoff and goes on in a fresh session of its pane: past it every turn re-reads a large cached context.
--builder-clear-line '', or150000,250000(a typed140k,140Kor140000is sent as typed; setup reads all three); Off:--builder-clear-line offAsk "Issue sizing": 40K (recommended) | 30K | 60K | Off - The batch brief sizes each issue; one that shares no files with the rest and needs more reading than this is proposed to the orchestrator as its own unit before the launch.
--issue-sizing '', or30000,60000; Off keeps today's grouping:--issue-sizing offOnly with the Codex reviewer: Ask "Trust every hook in this Codex home before each Codex launch?": Yes (recommended) | No - Yes: every Codex launch (a pane or
codex exec) first trusts every hook in the Codex home, so a hook another tool rewrote in an update does not open the pane on Codex's "hooks need review" menu, where it sits.--trust-all-hooks on - No: only the plugin's own hooks are trusted. A pane that opens on the review menu ends its launch as failed, naming the blocked hooks.
--trust-all-hooks off - The
--planpreview lists the hooks it will trust; show that list with the question. The Claude reviewer runs Sonnet high and is not asked.
- Recommended set: every setting from the recommended profile, listed by the
- An assistant pane?
Ask "Relay": None (recommended) | Chief of Staff | <saved name, if any>
- None: no assistant pane.
--name '' --persona '' - Chief of Staff: a pane that relays between you and the orchestrator, so you can talk to one place.
--name 'Chief of Staff'Setup also makes theFast-laneandResearch-laneworktrees, with or without a relay and without a pane. They are not asked; the report says "Lane:" for each. A typed name is sent as--name <n>. With a relay: Ask "Relay voice": Plain and brief (recommended) | Write my own | <saved line, if any> - its one line on how it should sound.
--persona <text>When a relay already exists, runbash ${CLAUDE_PLUGIN_ROOT}/scripts/relay-sync.sh. If it printsrelay: <n> commits behind main: Ask "Relay": Rebase it (recommended) | Leave as is - Rebase it: its worktree moves onto the project's local main, so its hooks and rules are current. Say how many commits behind, and that the relay pane may be running and sees the change. After Apply, run
bash ${CLAUDE_PLUGIN_ROOT}/scripts/relay-sync.sh --rebase; it refuses and changes nothing when the worktree has uncommitted changes or the rebase conflicts: show its line. - Leave as is: nothing is run. In Custom, never run
--rebasewithout this answer.
- None: no assistant pane.
- A dashboard?
Ask "Dashboard": On, this machine only (recommended) | Off | <saved names, if any>
- On, this machine only: a local web page of builds and costs, served by a background job, reachable from this machine only.
--dashboard --bind 127.0.0.1 --hosts '' - Off: no job, no port.
--no-dashboard - On plus another name: the page also answers to a name such as a tailnet's, typed as the picker's own text answer (or the saved names). This one listens on the network (
0.0.0.0), so say so; a name not on the list still gets a 403.--dashboard --bind 0.0.0.0 --hosts <name>[,<name>]It serves HTTPS behind a login. Tell the owner to runpython3 ${CLAUDE_PLUGIN_ROOT}/scripts/dashboard_serve.py set-password <user>once (8 characters or more; they type it, you do not); setup stops with exit 5 until a password is stored.
- On, this machine only: a local web page of builds and costs, served by a background job, reachable from this machine only.
- What must pass before a merge?
Ask "Merge check":
<detected command>(recommended) | None | Type my own | <saved command, if any>- The one command that must pass before a merge, e.g. the project's test script.
--test-command '<cmd>' - None: merges wait for review only.
--test-command ''Detect it first (package.jsontestscript, a Makefiletesttarget), and offer it first. With none detected, None is the one marked "(recommended)". Then, with a merge check set (with None, skip this: setup records Off and says so): Ask "Full suite before the final review": On (recommended) | Off - On: one full run of
<testCommand>per build; catches failures a static review misses. The closing review pass runs it on the build's tip, and a red run is a NO-GO. Recommended when the whole suite takes under about 10 minutes.--full-suite on - Off: the closing pass runs no tests; the merge check still runs.
--full-suite offThen ask "Typecheck before the closing pass":<detected>(recommended) | None | Type my own - The command that must be green before a closing review pass starts.
--typecheck-command '<cmd>' - None: no typecheck; the closing pass says so and goes on.
--typecheck-command ''Detect it first:npm run typecheckwhen package.json has that script, elsenpx tsc --noEmitwhen atsconfig.jsonis at the root. With none detected, None is the one marked "(recommended)". Then ask "Screen code":web/src/(recommended when it exists) | None | Type my own - The folders that hold screen code; a merge that changes a screen file there needs screenshot evidence.
--screen-paths 'web/src/'(several:--screen-paths 'app/ui/,web/src/') - None: the merge's screen and placeholder checks are skipped.
--screen-paths ''Then, when the project tracks a lockfile (package-lock.json,pnpm-lock.yaml,yarn.lockand the like), ask "Lockfile reads": Deny (recommended) | Allow - Deny: one
Read(**/<lockfile>)rule per lockfile name is added to the project's.claude/settings.jsondeny list: built-in reads of the lockfile are refused, whole or partial (best-effort for the built-in search tools); shell search such asrgstill works and is the way to look inside.--lockfile-deny on - Allow: setup adds no rule, and takes out the ones it added before.
--lockfile-deny off
- The one command that must pass before a merge, e.g. the project's test script.
- Strict hooks?
Ask "Strict hooks": Off (recommended) | On
- Off: only the safety hooks (lost work, wrong commits).
--no-strict - On: also search before reading, and one test run per change.
--strict
- Off: only the safety hooks (lost work, wrong commits).
- How long Claude keeps a conversation's prompt cache, one answer for each role. Asked when the owner chose the Caches group in step 6 (the recommended set answers all three), with these three questions;
--option mainPromptCacheTtl=<v>and the flags below are the same answer: Ask "Main prompt cache": 1h (recommended) | 5m | Leave as is- 1h: Main keeps its cache 1 hour. Saved in
.claude/main-session.settings.json, which only a main started withclaude --settings <that file>reads.--main-cache-ttl 1h - 5m: Main keeps its cache 5 minutes, in the same file.
--main-cache-ttl 5m - Leave as is: writes nothing; what is set now stays, a value an earlier setup wrote included.
--main-cache-ttl leaveAsk "Builder and worker prompt cache": 5m (recommended) | 1h | Leave as is - 5m: Builders, reviewers and every other worker pane keep their cache 5 minutes, subagents too. On real sessions a 5-minute cache cost 6 to 17% less for worker panes: they seldom pause long enough for a 1-hour cache to pay. Saved in each worktree's
.claude/settings.local.jsonand, for subagents,subagentPromptCacheTtlin.claude/settings.json.--worker-cache-ttl 5m - 1h: The same panes and subagents keep their cache 1 hour.
--worker-cache-ttl 1h - Leave as is: writes nothing; what is set now stays, a value an earlier setup wrote included.
--worker-cache-ttl leaveWith a relay: Ask "Chief of Staff prompt cache": 1h (recommended) | 5m | Leave as is - 1h: The relay pane keeps its cache 1 hour. It waits on you between turns, and on real sessions a 5-minute cache cost it about 85% more than 1 hour. Saved in its worktree's
.claude/settings.local.json; its other settings stay. The doctor warns if another file overrides it.--relay-cache-ttl 1h - 5m: The relay pane keeps its cache 5 minutes, in the same file.
--relay-cache-ttl 5m - Leave as is: writes nothing; what is set now stays, a value an earlier setup wrote included.
--relay-cache-ttl leaveThen, the auto-mode classifier (it checks each command in a pane run in auto mode): Ask "Auto mode": Add two entries (recommended) | Leave as is | Take them out - Add two entries: Your Claude panes run in auto mode. Two plain-English lines go into ~/.claude/settings.json, kept with Claude Code's built-in list, so its safety check knows the plugin's scripts and the relay pane. They apply in every project on this machine.
--auto-mode add - Leave as is: Changes nothing in ~/.claude/settings.json; a refusal of a plugin script stays possible.
--auto-mode leave - Take them out: offered only when
bash -c 'jq -e "[.entries[].autoMode // empty] | length > 0" ~/.commandeck/install/_machine.json >/dev/null 2>&1 && echo recorded; true'prints "recorded". Removes the two lines setup added, for every project on this machine; your own entries stay.--auto-mode removeA list of yours without"$defaults"is left as it is (it replaces Claude Code's built-in list) and setup says how to keep that list. Then, what worker and Builder panes turn off on top of the plugin's own cuts (the plugin ships no names): Ask "Worker cuts": None (recommended) | Name some | <saved lists, if any> - None: worker panes drop only the Stripe plugin and the three browser skills.
--worker-skills-off '' --worker-plugins-off '' - Name some, or typed as the picker's own text answer: skill names (
<plugin>:<skill>for a plugin's) andplugin@marketplacekeys, separated by commas. Names with an @ go in--worker-plugins-off <a>,<b>, the rest in--worker-skills-off <a>,<b>. A plugin's own skills cannot be turned off one at a time: only the whole plugin. Ask "Keep words": None (recommended) | Add one | <saved words, if any> - None: no word of yours;
--keep billingand--keep allstill work. A saved word left out is sent as--keep-word <word>=. - Add one, or typed as the picker's own text answer, as
<word>=<name>[,<name>...]:builder-launch.sh --keep <word>brings those skills and plugins back for one unit.--keep-word <word>=<names>, once per word.
- 1h: Main keeps its cache 1 hour. Saved in
- Add-ons, one multi-select question (
multiSelect: true): Ask "Add-ons": All (recommended) | serena | agent-browser | None- All: every add-on in
config/addons.tsv, installed or updated to its latest on each setup run, no version pinned. Sends no--addons. - serena: code navigation by symbol; one language-server process per project. Choosing it also turns on the two hooks that read it (
--serena): the read-tracker nudge and the pane-budget gate. - agent-browser: a browser for agents; a download of a few hundred MB.
- None: install nothing; setup prints each command to run later.
All sends nothing; the other chosen ones are sent as
--addons <a>,<b>, None as--addons none. Setup runs them for this main checkout and reports each as installed or failed, with the command.
- All: every add-on in
- The review workflow. Asked when the owner chose the Review workflow group in step 6. The recommended set answers the
first four questions already (
--recommended: P2 and above hold a merge, a closing pass from pass 5, a fresh closing reviewer, a closing pass; the small-build line and the review flags stay at their defaults). When Keep saved was chosen and--questions beginprintedreview workflow: not answered, ask the first three questions even so. One call, then the rest: Ask "Blocking severity": P2 and above (recommended) | P1 and above | P3 and above- The lowest severity of finding that holds a merge.
--block-at P2,P1orP3Ask "Closing pass from": 5 (recommended) | 3 | 8 - From this many passes every pass is a closing pass; a P0 or P1 still open two passes later stops for the owner.
--pass-cap <n>Ask "Fresh closing reviewer": Yes (recommended) | No - Yes: the closing pass reads the whole branch handed no earlier finding.
--fresh-closing yes; No:--fresh-closing noAsk "Closing pass": Runs (recommended) | None - Runs: after the narrowed passes end GO, one more pass reads the whole branch, and its GO merges.
--closing-pass yes - None: the narrowed pass that ends GO merges.
--closing-pass noAsk "Small build": 200 lines (recommended) | 400 | Off - A first pass is one reviewer under this many changed lines, else three.
--small-build ''or<n> - Off: every first pass has three reviewers.
--small-build offAsk "Review flags": Defaults (recommended) | Off | Set each - When a finished build is flagged for a written review: over 30 minutes of review, over a third of the time on tests or idle waits, over 30 US dollars at list price. Defaults:
--max-review-min '' --max-test-percent '' --max-usd ''; Off:--review-flags off. On "Set each": Ask "Review minutes": 30 (recommended) | Off | 60 Ask "Test share": 33 (recommended) | Off | 50 Ask "List price": 30 (recommended) | Off | 100 - "Off" sends
offfor that flag; a default (30, 33, 30) sends''; another number is sent as typed.
- The lowest severity of finding that holds a merge.
Numbers and typed values are passed exactly as typed. Setup refuses one it cannot use and changes nothing; read its line to the owner and ask that question again as a picker. Main, the Builder and the reviewer cannot be off: setup refuses that answer and says why.
2. Preview, then apply
Run the same command with every answer's flags and --plan:
bash ${CLAUDE_PLUGIN_ROOT}/scripts/setup.sh <flags> --plan. It prints every
file it would create or change (a diff for a changed one), every copy it would
make, every job and add-on, and writes nothing. Show it to the owner, then:
Ask "Apply": Apply (recommended) | Change an answer | Cancel
- Apply: make exactly these changes.
- Change an answer: name the question; ask it again, then preview again.
- Cancel: nothing is written.
On Cancel run setup.sh --questions end and stop. On Apply run the same
command without --plan. If it stops, it changed nothing or says what it
changed: read the line to the owner;
bash ${CLAUDE_PLUGIN_ROOT}/scripts/uninstall.sh puts a half-done setup back.
A real run ends the decoy's pause, whether it succeeds or fails.
If it printed a codex notify: ASK: line, Codex's notify runs the owner's own
wrapper script, and it calls an older plugin version's hook. Show the old line
and the new one as printed, then ask (the decoy is back: it goes first):
Ask "Notify wrapper": Change it (recommended) | Leave it
- Change it: run the same command with
--notify-wrapper yes. - Leave it: run it with
--notify-wrapper no; the doctor will warn.
3. After
Show setup's summary as printed: Done, Needs you, Optional, and how to change
an answer later. Run bash ${CLAUDE_PLUGIN_ROOT}/scripts/doctor.sh and show
every line that is not ok.
Tell the owner, in plain words: setup added /test-audit <test folder>, which
checks a folder of tests for ones that cannot fail or test nothing, writes a
report and changes no file; it runs as a workflow, which setup switched on in
.claude/settings.json.
Then ask (setup has ended, so the decoy is back and goes first):
Ask "Demo build": Yes (recommended) | Skip
- Yes: one small brief (
${CLAUDE_PLUGIN_ROOT}/templates/_builder-brief-template.md) launched withbuilder-launch.sh, to see a Builder, a review pass and a local merge end to end. It takes about 25 minutes (a small build measured 24) and runs one Builder session plus one review pass. - Skip: go straight to the first real request.
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.

