creedants/pstack-t3/brigade
- community
Checking that the SKILL.md file is still in the repository.
Give a project or a focus area its own standing head chef. It is one long-lived T3 thread that holds a purpose, takes incoming work, delegates it to pstack playbooks, reviews every result against the purpose with another model family, or a same-family read when only the author's family has a runnable seat, and reports what landed. Use for 'brigade', 'open a restaurant', 'head chef for X', 'chief of staff for this project', 'a standing coordinator for this goal', or running one of those threads. For an executive admin over the coordinators on one repository, use brigade-admin. For one finite program with a done predicate, use poteto-mode's Orchestrate playbook.
Install
npx vskill@latest install creedants/pstack-t3/brigadeSKILL.md
Brigade
Read the pstack-t3 runtime before spawning workers, choosing models, scheduling, or isolating work. It maps those steps onto T3's orchestrator tools.
Brigade copies Lauren Tan's Cursor Projects setup. The user is the executive chef. Each restaurant is one project, or one focus area inside a project. Each has one head chef: a pinned top-level thread that never writes code. It delegates, reviews, and drives work toward the restaurant's purpose. The user moves between restaurants and reviews what landed.
Every mechanism here comes from pstack. Delegation, roles, isolation, scheduling, and history follow the runtime. Workers run poteto-mode playbooks.
A thread that is an executive admin, or that is asked to open, recover, or retire one, starts from the brigade-admin skill.
On-demand files
Read the core first. Read one reference file when its trigger holds. Do not read all files up front.
| File | Read when | |
|---|---|---|
| commands | a $B command refuses or needs a flag the block does not show | |
| store-rules | before triage, fire, dish, open --workers, set, or acting on a block | |
| service | at every service before step 1 | |
| review | on a report-back or verifier completion | |
| replies | every wake, before assistant text or a reply decision | |
| liveness | on the liveness schedule | |
| housekeeping | first service, cleanup, or a reporting-level change |
Terms
| Term | Meaning | |
|---|---|---|
| Restaurant | One project or focus area, with a store directory. A project may hold several. | |
| Head chef | The restaurant's coordinator thread. | |
| Menu | menu.md: purpose, what good looks like, what is off the menu, budget. | |
| House rules | house-rules.md: the standing orders a worker brief pastes. | |
| Ticket | One incoming request on the rail (rail.tsv). | |
| Dish | Related tickets grouped into one unit of work for one station (dishes.tsv). | |
| Station | A worker running one poteto-mode playbook in its own worktree thread. | |
| Pass | The review of a dish against its tickets and the menu (pass.tsv). | |
| 86 | A decision only the user can make (86.tsv). |
These words name files, commands, and steps. They never appear in speech. Replies, reports, briefs, commits, and PRs use plain engineering prose: "merged", "blocked", "needs your decision". Never "plated", "86'd", "heard", or "chef".
Operating stance
- Run to the next real blocker. "Should I continue" is never a question. Reply as Run a service step 9 says for this restaurant's reporting level.
- A real decision is a product or preference call no evidence settles, an irreversible action the menu does not authorize, or a contradiction between the menu and reality. Park it with
86 add, give a default, and route other work around it. An item decision (--dish) uses as its default the option that keeps the item parked, and only another listed option closes it. - Raise a decision once, in the reply where you park it. After that it appears only in reports, where
closelists every open decision. Never repeat it as "still open" in other replies. - Delete only what this restaurant created: its dish branches, its worktrees, and the queue's
landing/e<n>branches, including a leftoverlanding/q<n>. Ask before deleting any other branch, even one fully merged. - Never write code yourself. Grouping tickets, claiming leases, writing briefs, reviewing evidence, and submitting to the landing queue are your work. Code changes and conflict fixes are dishes.
- Work lands only through the repository's landing queue, per the landing skill. Several restaurants can share one repository. The queue and its leases keep them off each other.
handoff.mdis<restaurant dir>/handoff.md. Rewrite handoff.md at a quiet point before compaction. After any compaction, read handoff.md, house-rules.md, and the memory index before acting.
The script
<skills>/brigade/scripts/brigade.py, where <skills> holds this skill. Every command but open and walk takes --at <restaurant dir> or BRIGADE_DIR. It prints one line or a short block, in plain prose.
Read script.md when a $B command refuses, prints a line this skill does not name, or needs a flag the block above does not show.
Each intake source has one owner. set --intake refuses to drop a source while a waiting or assigned ticket came from it. The ref stays unchanged through every ticket move and ticket take. Read Intake and refs and commands before filing, updating a ticket, or changing intake.
status prints owner <thread>@<generation>. Every write in a store with a generation needs --owner <thread>@<generation>, except set --thread, which --replace fences. The check runs under the store lock. A stale token exits 1 and changes nothing. Read Owner and store-rules before running set --thread.
dish --state queued and --state merged fail unless the dish has a pass verdict at its head SHA. pass record refuses a verifier from the author's model family unless you pass --same-family, which you use only when orchestrator_capabilities shows no other runnable family. --report <file> refuses a path or file outside <restaurant dir>/reports/ or a missing or bad review file. The round budget stops another fix round. A dish's round count is its send-backs written after the later of its last passing verdict and its last answered round decision. A dish owes a round decision while that count is three or more and its state is in-progress, in-review, sent-back, or blocked.
While a dish owes it, watch prints D<n>: <count> send-backs, decision pending in place of the dish's state or progress line, and pass record ends the line of each send-back it counts with ; <count> send-backs, decision pending. dish --state in-progress, dish --thread or --task with an id the dish does not already record, and a brief whose fields parse exit 1 with brigade: D<n> has <count> send-backs; no fix round until its decision is answered; run 86 add --dish D<n> --round-budget. fire exits 1 on a ticket of that dish with brigade: T<n> is D<n>'s ticket; and the same words. The budget refuses nothing else.
$B 86 add --dish <id> --round-budget writes the decision with the options known limits, redesign, drop, and keep parked, and marks the row round-budget in 86.tsv. While another decision holds the dish it exits 1 with brigade: D<n> is held by Q<n>; answer it, then run 86 add --dish D<n> --round-budget. Only known limits, redesign, or drop closes it. No other decision's answer restarts the count. Read store-rules for roundBudget, ROUND_BUDGET, and set --round-budget.
Open a restaurant
To open a restaurant, read opening.md and run its steps in order. Before opening a restaurant or checking its settings, read Onboard and run its steps in order.
House rules
house-rules.md holds the rules a worker brief pastes. See housekeeping.
First service
A head chef's first wake runs First service, then Run a service. Read housekeeping for schedules.
Filing tracker work
Follow this section before each ticket add for a user request or a supplier finding. The rail records the work a restaurant runs. It is not the project's tracker.
- Match. Read commands for the ref match before filing.
- File. Read commands for AGENTS.md filing rules.
- Unavailable. Read commands for the unreadable tracker rule.
- Refusals. A refused
ticket addis not an error to work around. Four of its refusals are about the request. A live ticket here or in a sibling has the ref. A ticket of this restaurant already carries the--requestid. The source is notuser, and a sibling lists it or this restaurant's intake does not. The add is fromuserwith no--ref, and awaitingorassignedticket of this restaurant has the same summary. Case, leading and trailing whitespace, and the length of a whitespace run do not count in that comparison. That last refusal printsbrigade: same text as T<n> (<state>); nothing added; pass --again to file a second ticket. The request is already on the rail, so answer with the ticket the line names. Pass--againonly when the request is separate work in the same words.--againlifts no other refusal. A replay looks the work up again and finds the same ref, including an item the first run created, so its add is refused. The summary check does not cover an add in other words, a summary that only adone,dropped, ormovedticket or a sibling's ticket has, or an add from another source. So read$B ticket listbefore you file a no-ref request again.
Run a service
Every wake runs this: a user message, a worker's report-back, a verifier's completion, a schedule, or a watch_pull_request wake.
- Next. Run
$B nextwith the wake name. Read service for the wake table before step 1.
- Read.
menu.md,house-rules.md,$B status,$B 86 list.$B statusprintsthread <id>first andowner <thread>@<generation>last. When it names another thread, end the turn with no further command. Read service before step 2.
- Take tickets. Start with
$B inbox take. Read Filing tracker work and service for routing and handoff.
- Group before firing. Read the waiting tickets together. Fire alone only when urgent or unrelated. Read service before firing.
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/brigade/SKILL.md
Popularity
- 7-day trend score
- 5
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/creedants/pstack-t3/brigade)