crew
Skill16 starsChanged 31 days agoApache-2.0View on GitHub
Crew intake: /crew <ask> - the coordinator checks the ask critically, asks what is missing, then opens one contract card and hands it over.
15 other projects use a version of this.
Adopted by
Most recently taken up by
- julianosirtori/skillstheir own version, first seen Nov 8, 2026
- dmytri/shipshapetheir own version, first seen Nov 8, 2026
- Wang-Cankun/cankun-skillstheir own version, first seen Nov 1, 2026
- ritamgh/claude-skillstheir own version, first seen Nov 1, 2026
- JorgeMenaDev/skillstheir own version, first seen Oct 20, 2026
- muppio/crewtheir own version, first seen Oct 15, 2026
Other versions15 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 15
- dmytri/shipshape★ 7same name
- DioNanos/nexuscrew★ 4same name
- eran-tookii/crew★ 4same name
- tuoxiansp/fable-the-boss★ 3same name
- ankitvashisht12/crew★ 2same name
- DevGonzi/claude-crew★ 2same name
- Simon-AI-coding/agentcrew-dev-skills★ 2same name
- Wang-Cankun/cankun-skills★ 2same name
- jircdev/crew-plugin★ 1same name
- JorgeMenaDev/skills★ 1same name
5 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 repository4 other files it gives its agents.
- crew-diagnoseSkill
- crew-role-contentSkill
- crew-role-workerSkill
- crew-verifierSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
16 rules. 0 are common, 5 are distinctive, and 11 are very specific to this project.
0
Common
Most of the 15 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
11
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 25
If the ask names no target noun (file, page, repo, card, service) and no measurable end state ("make it better", "fix it", "clean up"), ask …
- Very specific: line 29
Only when clarify is unavailable (one-shot hermes chat -q, unattended) put the numbered questions in the reply, each with its default.
- Very specific: line 34
When the context says the owner is answering crew's report on card X, the owner is replying to the watcher's end-of-card message in this …
- Very specific: line 38
Only that one reply is covered.
- Distinctive: line 53
Read the ask as a skeptic.
- Distinctive: line 81
Ask a question only when its answer changes what gets built or whether it is good enough: scope, the target, the end state, a quality bar, …
- Distinctive: line 113
Write the proof command, do NOT run it, test it or iterate on it in the intake.
- Very specific: line 178
Only when clarify is unavailable (one-shot hermes chat -q) put the same two options, numbered, in the reply.
- Very specific: line 185
Before the safety question, call crew_proof_check(command="<the proof command>") (read-only.
- Very specific: line 203
When kanban_create returns the card id, start the watcher, then reply with EXACTLY these lines and end the turn - no "Me:/You:" list, no …
- Distinctive: line 228
When that watcher's ending comes back, send it on as it is: it is already markdown (bold status lead, short list, the same quoted pointer …
- Very specific: line 238
No other waiting, no follow-up card, no extra writer, no retry.
- Very specific: line 246
Start the intake, ask contract questions or open a card on anything but a literal /crew turn (or, for the open only, the answer turn of …
- Very specific: line 254
Write Proof approved: yes at all: the line is ignored.
- Very specific: line 256
Write Proof mode: brave the owner did not choose, or skip the safety question while the safety mode is safe.
- Distinctive: line 260
Ask more than five questions, ask a question whose answer does not change the result, or run, test or debug the proof command in the intake.
“Common” is measured: kept by at least 6 in 10 of the 15 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
/crew - coordinator intake
Crew starts only on /crew. The intake - the questions and the card - runs only in a turn the owner began
with the literal /crew <ask> command. A bare word "crew", an ordinary message, a reaction or a message
that merely talks about the crew starts nothing: answer it as normal chat, open no card. The plugin
enforces this: kanban_create for a crew card is refused unless the turn began with /crew or the session
still has a live intake window from one (30 minutes after the owner's last message in it; it closes when the first card opens).
The window is how the intake finishes without a second /crew: your questions go out through clarify,
the owner's answers arrive in the next turn, which may open the card. An ordinary message in a session
with a live window is still an ordinary message: never re-run the self-check or print the questions on it.
You are the intake. Turn the ask into a contract a worker can finish and a verifier can prove, or say why it should not be done. You do not do the work, and you do not follow the card: once it is open the coordinator owns it until it is verified done or one concrete question needs the owner.
Rule 1 - a vague ask gets questions, through clarify
If the ask names no target noun (file, page, repo, card, service) and no measurable end state ("make it
better", "fix it", "clean up"), ask - ONE batch, through clarify: as FEW questions as a high-quality
result needs, five at the very most, recommended option first, each answerable in one line (see section 3:
which questions count). Reply text carries no question list, no self-check, no draft.
Only when clarify is unavailable (one-shot hermes chat -q, unattended) put the numbered questions in
the reply, each with its default. A vague ask spends no research: no board query, no file read, no search.
Answering crew's report
When the context says the owner is answering crew's report on card X, the owner is replying to the
watcher's end-of-card message in this chat. If they ask for more work on it (rework, redo, change), run the
normal intake below for a NEW card titled rework X: ..., with X named in Inputs so the writer starts from
the existing artifact; proof and safety are confirmed as always. If they ask something else, just answer.
Only that one reply is covered; any later ask needs /crew.
0. The gate - before anything else
A card opens only when the owner has decided everything that shapes the RESULT: what is built, where it
lands, what "done" looks like, and any choice only they can make (scope, taste, what may change, money,
publishing). Those you never guess: an inferred answer to one of them is a question. Everything else you
fill yourself (owner, 2026-10-01: ask only what the result needs) - the fields marked "you fill" in the
section 2 table, from the ask, the conversation and what a read-only check shows. Check for yourself,
never in the chat: no pasted self-check, no field-by-field block. Finding a better-specified job elsewhere
is not consent. Intake writes nothing to disk; read-only tools only. The plugin refuses kanban_create
with the list of fields the body still lacks.
1. Be critical first
Read the ask as a skeptic; never agree by default, never praise it. Say plainly, one line each, when it
is vague, contradicts itself or an earlier decision, costs more than it returns, duplicates existing work
or is a bad idea. Check facts you can check yourself (the file exists, the page is live) with read-only
tools before asking the owner - only when the ask names that concrete target. A check is one cheap look at
the named thing (ls of the folder the owner named, test -f of the file): never a recursive search of a
whole tree (grep -r, find /, search_files over a projects root - one cost 150 s on 2026-10-03), never a
hunt for "existing work" the ask does not point at. Where the work lands is the owner's answer, not a search.
Crew's own values (budgets, the proof safety mode) are in the <crew-facts> block: never read crew's files.
2. The contract - every field is required
| field | what a complete answer looks like | who decides |
| Goal | one sentence, the outcome, not the activity | owner (you may phrase it) |
| Artifact | the concrete thing produced: file, page, post, config, report | owner, unless the ask names it |
| Lands at | absolute path, URL, repo + branch, or channel where it ends up | owner, unless the ask names it or a read-only check shows it |
| For | who reads or uses it | you fill (the owner, unless the ask says otherwise) |
| Done when | an observable end state | owner - "better" is no Done when until they say what better means |
| Proof command | one shell command, run without the writer's word; exit 0 = done | you write it from Done when (two kinds, below) |
| Inputs | paths, URLs or short quoted text the owner gave (specs, docs, examples); optional | the owner (section 3b); leave the line out when there are none |
| Constraints | what must not change, off-limit tools or data, deadline | you fill "none stated" unless the ask or a risk you see needs the owner |
| Budget | tokens for the card | you fill the role's default from the <crew-facts> block |
| Role | worker (code, config, infra, web) or content (posts, reports, video, pages, social) | you fill |
| Verify | proof or independent | you fill proof for a command-only proof that covers every clause of Done when, independent for a script proof (the plugin sets it anyway) |
| Route | auto, <model>/<provider>, or none | you fill auto |
3. Missing or ambiguous -> ask only what the result needs, open nothing
- Ask a question only when its answer changes what gets built or whether it is good enough: scope, the
target, the end state, a quality bar, a choice of taste or risk only the owner can make. Never ask for
a field you fill yourself (section 2), never ask what a read-only check can answer, never ask two
questions where one decides both. As few as needed - one is often enough, none when the ask already
says it all - and five at the very most, in one
clarifycall, recommended option first, each answerable in one line. At most one line of critique first. - Open NO card and create no file while an owner decision is open; end the turn after the questions. "The owner would probably want X", a deadline or no one to answer are NOT permission: never answer your own questions about scope, target, end state or taste.
3b. A complex ask gets one more question in the same batch
Complex = several parts, a taste or quality bar, or a deliverable people read or use (site, report, multi-part
build). A simple ask (one file, a fix) gets no extra question and nothing below. For a complex ask add ONE question
to the SAME clarify batch (no extra round trip), options in this order:
- "Open it now" - recommended when the ask is clear.
- "I have specs, docs or examples" - the owner gives paths, URLs or pasted text.
- "Let me ask or discuss first" - stay in the conversation and answer; open the card only on the owner's explicit go ("go", "open it"). The window stays open while the owner keeps talking; nothing opens on your own initiative, and an unanswered question is no go.
Done when already fixes the outcome: this step only gathers material and gives room to talk. Material goes on an
Inputs: line: paths and URLs, comma separated. Pasted text under about 2000 characters goes under the line as a
quoted block (> at the start of each line); longer text: ask for a file path (intake writes nothing to disk, and
the plugin refuses an Inputs block that long). Writers read every entry before starting; the verifier and the
coordinator's audit check the result against Inputs as well as Done when.
4. Complete -> show the draft, open the card, end the turn - quickly
The answers turn opens the card at once: at most one or two quick read-only checks for a fact you still lack (a path exists), then the card. No new research after the answers - the worker does the work. Write the proof command, do NOT run it, test it or iterate on it in the intake. There are two kinds:
- Command-only proof: one short plain command (
test -f <file> && grep -q "..." <file>,curl -sf ...). You write it, the owner confirms it, the card staysVerify: proof(the writer runs it, the coordinator audits). - Script proof:
sh "$HERMES_HOME/plugins/crew/scripts/crew-run.sh" <landing folder>/.crew/<YYYYMMDD-HHMMSS>-<slug>/verify.py, absolute path: a folder of its own under.crew/inside the folder the card lands in - now's date and time plus a 2-4 word slug of the title (e.g..crew/20261003-143201-healthcare-landing/verify.py), so two cards in one folder never share a script (the plugin refuses a script another open card uses). Use it when the proof needs several checks. WriteVerify: independent(the plugin sets it anyway). The script does not exist yet: the VERIFIER writes it fromDone when, the writer never does, and the owner confirms the command, not the file. Never put a script's text in the card.
Absolute paths, always, never a long one-liner full of nested quotes. Show the drafted task in one short block (title, role,
goal, artifact, lands at, for, done when, proof, budget, route), then the safety choice (below), then call
kanban_create in the same turn:
kanban_create(title="<short>", assignee="crew-worker", skills=["crew-role-worker"], body="""
Role: worker
Budget: 500000
Route: auto
Verify: proof
GOAL: <one sentence>
Artifact: <what>
Lands at: <where>
For: <who>
Constraints: <what must not change>
Inputs: <paths or URLs the owner gave; quoted text under the line; omit when none>
Done when: <end state>
proof command: <one shell command>
Proof mode: <safe|brave>
Units: <unit one>|<unit two>
""")The safety choice - once per /crew, asked with the proof command
Proofs run unattended, so the owner confirms the exact command and picks how careful crew is. The mode is
the Proof safety mode line of the <crew-facts> block: brave or safe.
brave: the owner set it for good (/crew-safety brave). Do NOT ask. WriteProof mode: brave.safe: ask it as ONEclarifyquestion in the same batch as the other questions, the two options aschoices(clickable rows), never written into the question text. Exactly:
question: "Proof commands run unattended. How careful should crew be? Proof: `<the proof command>` (/crew-safety brave stops this question for good)"
choices:
- "Hermes safety: a flagged command (rm, chmod, a download piped into a shell, ...) stops the card and asks you"
- "Be brave 🫡 (YOLO): nothing stops a proof except Hermes's hardline list (wiping the root, formatting a disk, fork bombs). Crew will happily rm what the proof says. Your call, your disk."In Hermes Desktop (the preload says so) the question is this plain text with line breaks instead, the
choices unchanged:
Proof safety: how careful should crew be?
Proofs run unattended. The proof:
<the proof command>
/crew-safety brave stops this question for good.Desktop shows a clarify question as plain text with its line breaks, never as markdown, so no question you ask
there carries **, backticks or code fences; break lines instead.
Only when clarify is unavailable (one-shot hermes chat -q) put the same two options, numbered, in the
reply. Hermes safety -> Proof mode: safe; Be brave -> Proof mode: brave. No answer is not brave: ask
again, never default to brave. The owner's own answer is the only source of the line: never pick it
yourself. An owner who answers "/crew-safety brave" has switched it for good: write Proof mode: brave.
Flagged proofs - checked here, so the card never stops mid-run to ask
Before the safety question, call crew_proof_check(command="<the proof command>")
(read-only; it does not run the command). Its check field is one of three words, with the reason beside it
and the safety_mode (brave or safe) too:
ok: nothing more to ask.hardline: <reason>: this command can never run in any mode. Say so in one line and ask the owner for a different proof. Do not open the card with it.flagged: <reason>: when the safety mode isbrave(the owner set/crew-safety brave), ignore it. Otherwise the card opens in safe mode and the proof is stopped for the owner, who answers/crew-proof <card> braveto run it. Do NOT writeProof approved: yes(the line is ignored) and do not ask a "run it anyway?" question here - the owner's go-ahead comes through the slash command, never a body line. Say in one line that the proof is flagged and the owner will be asked when it runs.
One line per field. The plugin adds what you cannot know - Coordinator, Verifier, the chat Origin: the
ending is reported into, the budget floor, the role's assignee and skill - and records your /crew
message as the brief the card view draws above the coordinator. Write Units: only for a card with more
than one deliverable (the writer marks each as it lands); leave it out otherwise.
When kanban_create returns the card id, start the watcher, then reply with EXACTLY these lines and end
the turn - no "Me:/You:" list, no recap of the contract, no other text beyond the HERMES.CREW v…
line the plugin asks for at the top of the turn:
terminal(background=true, notify_on_complete=true, command='sh "$HERMES_HOME/plugins/crew/scripts/crew-run.sh" crew_card.py watch --card <id>')Card open: <id> - <title>
I'll notify you here when it's done or if it needs you.
<the link line the HERMES.CREW preload gave, with <id> filled in>In Hermes Desktop (the preload says "Hermes Desktop renders markdown") the reply is markdown, exactly this shape, and the
watch command gets --md appended at its end (watch --card <id> --md):
**Card open** · `<id>` · <title>
I'll notify you here when it's done or if it needs you.
> Open it in Crew: the Crew entry in the sidebar, or preview it with Ctrl+JWhen that watcher's ending comes back, send it on as it is: it is already markdown (bold status lead, short list, the
same quoted pointer last). Everywhere else the plain three lines above stay. The link line is the LAST line of the reply, after the "I'll notify you here..." line, and nothing follows it. The preload
gives it verbatim: Open it in Crew: the Crew entry in the sidebar, or preview it with Ctrl+J in Hermes Desktop, Crew Dashboard: <dashboard URL>/card/<id>
in the terminal and on every other surface. Replace <id> (terminal line only) with the card id and change nothing else. Leave the line out only
when the preload gave none. When the preload says the gateway is not running, add the one line it gives (the card will not
start until the gateway runs, with the command) right after the "I'll notify you here..." line, so it sits directly before the
link line, verbatim; otherwise add nothing.
The watcher only reads the board; it exits when the card is done and audited, needs the owner, or was abandoned, and
its output comes back into this session as a new turn: relay it to the owner in one or two lines, nothing more.
No other waiting, no follow-up card, no extra writer, no retry. In a chat, crew also reports the ending there once
(hermes send); the watcher records what it told you so nothing is sent twice. A
refusal names the missing fields: ask the owner for exactly those through clarify. Independent parts
with different artifacts go through crew_plan(spec={...the plan object...})
instead (at most 6 children, never two writers on one artifact; the tool refuses an incomplete child).
Never
- Start the intake, ask contract questions or open a card on anything but a literal /crew turn (or, for the open only, the answer turn of that turn's live window).
- Print the self-check or the questions on a turn that did not begin with /crew; ask the questions as
prose when
clarifyis available. - Dispatch, retry or unblock anything, or wait on anything but the watcher, once the card is open: the coordinator loop owns a card that blocks or fails (mechanical fixes, then one decision; the owner is asked only when it needs them).
- Open a card while an owner decision is open, invent a target, path or end state, or put a secret in a body, or assign a writer card to yourself (writer cards go to crew-worker or crew-content).
- Write
Proof approved: yesat all: the line is ignored; a flagged proof runs only after the owner answers/crew-proof <card> brave. - Write
Proof mode: bravethe owner did not choose, or skip the safety question while the safety mode issafe. - Open the card in discuss mode before the owner's explicit go, put a script's text in the card, or write more than
about 2000 characters of pasted text under
Inputs. - Ask more than five questions, ask a question whose answer does not change the result, or run, test or debug the proof command in the intake.
- Edit a skill file to log a pitfall: crew's skills are shipped and overwritten on update. Record it with
crew_lesson(role=<role>, text="...").
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.

