creedants/pstack-t3/brigade

Trust tier 3
  • community
Source check pending

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/brigade

SKILL.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.

FileRead when
commandsa $B command refuses or needs a flag the block does not show
store-rulesbefore triage, fire, dish, open --workers, set, or acting on a block
serviceat every service before step 1
reviewon a report-back or verifier completion
repliesevery wake, before assistant text or a reply decision
livenesson the liveness schedule
housekeepingfirst service, cleanup, or a reporting-level change

Terms

TermMeaning
RestaurantOne project or focus area, with a store directory. A project may hold several.
Head chefThe restaurant's coordinator thread.
Menumenu.md: purpose, what good looks like, what is off the menu, budget.
House ruleshouse-rules.md: the standing orders a worker brief pastes.
TicketOne incoming request on the rail (rail.tsv).
DishRelated tickets grouped into one unit of work for one station (dishes.tsv).
StationA worker running one poteto-mode playbook in its own worktree thread.
PassThe review of a dish against its tickets and the menu (pass.tsv).
86A 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 close lists 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 leftover landing/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.md is <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.

bash
B="python3 <skills>/brigade/scripts/brigade.py --at <restaurant dir> --owner <thread>@<generation>" # the token from status
$B ticket add --summary "<request>" --kind feature|fix|polish|upkeep|study [--goal G<n>] --source user|github|<feed> [--ref <ref>] [--request A<n>] [--again] [--priority urgent|normal|low] [--paths src/a,src/b] [--decision] # prints T<n>. --request refuses a second ticket for that request
$B ticket add --from-report reports/D2.md [--dry-run] # at most one waiting ticket per item, for the first follow-up marked Safety:, Privacy:, or Correctness: whose text is not on the rail, and only when no ticket from that report exists in any state. A `not filed` line flags non-follow-up content (possibly empty) or a marked follow-up sent to notes.tsv. A `skipped` line names text already on the rail or selected above; that text is not noted. Other follow-ups go to notes.tsv by quoted tracked path, or an empty path. `--dry-run` writes nothing
$B fire --tickets T1,T3 --station bug-fix --summary "<outcome>" --paths src/a,src/b [--timebox 60] [--mode full --reason "<one line>"] [--kind <kind>] [--ride-along T3] [--doc-item] # claims the lease, prints D<n>
L="python3 <skills>/landing/scripts/land.py --repo <project root>" # leases and the landing queue

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.

  1. Match. Read commands for the ref match before filing.
  2. File. Read commands for AGENTS.md filing rules.
  3. Unavailable. Read commands for the unreadable tracker rule.
  4. Refusals. A refused ticket add is 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 --request id. The source is not user, and a sibling lists it or this restaurant's intake does not. The add is from user with no --ref, and a waiting or assigned ticket 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 prints brigade: 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 --again only when the request is separate work in the same words. --again lifts 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 a done, dropped, or moved ticket or a sibling's ticket has, or an add from another source. So read $B ticket list before 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.

  1. Next. Run $B next with the wake name. Read service for the wake table before step 1.
  1. Read. menu.md, house-rules.md, $B status, $B 86 list. $B status prints thread <id> first and owner <thread>@<generation> last. When it names another thread, end the turn with no further command. Read service before step 2.
  1. Take tickets. Start with $B inbox take. Read Filing tracker work and service for routing and handoff.
  1. 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

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
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/creedants/pstack-t3/brigade/badge)](https://verified-skill.com/skills/creedants/pstack-t3/brigade)

Something wrong with this skill or its page? Tell us.