work
Use brigade work bootstrap once per repo. It writes or verifies .brigade/dogfood.toml, creates local artifact directories, creates the handoff inbox, updates .gitignore, and reports readiness.
Start of day
brigade work briefshows branch state, active sessions, pending tasks, import counts, latest dogfood run, and the command to continue.brigade work statusis the quick dashboard for branch state, dogfood readiness, paths, latest run, and extracted next step.brigade work doctorchecks dogfood config, security config, evidence bundles, Codex CLI, artifact paths, handoff inbox, task acceptance, issue-backed tasks, stale active sessions, ignore coverage, and latest run context.brigade work resumeshows the active or latest session, latest dogfood run, extracted next step, and suggested command.brigade work inboxgroups pending scanner imports by source, kind, priority, age, and acceptance coverage, then suggests plan, promote, dismiss, or run commands.brigade work nextprints only the next task. Add--jsonfor wrappers.
brigade work bootstrap
brigade work brief
brigade work brief --json
brigade work status
brigade work doctor
brigade work resume
brigade work next
brigade work next --json
Task ledger
brigade work taskslists.brigade/work/tasks.json.brigade work task add "..."queues a task manually.brigade work task add "..." --type feature --priority high --acceptance "..."queues typed work with repeatable acceptance criteria.brigade work task add "..." --template bugfix --acceptance "Regression test passes"adds template acceptance criteria while preserving explicit acceptance criteria.brigade work task add --from-issue 42imports a GitHub issue withgh issue viewwhenghis available, including acceptance criteria parsed from issue-body checkboxes or acceptance/test sections.brigade work task add --from-nextpromotes the latest extracted dogfood next step.brigade work task plan <task-id>shows the task metadata, acceptance checklist, template guidance, and suggested run command.brigade work task done <task-id>closes queued work.
brigade work tasks
brigade work task add "build the next slice"
brigade work task add "build the next slice" --type feature --priority high --acceptance "focused tests pass"
brigade work task add --from-next
brigade work task plan <task-id>
brigade work task done <task-id>
Available task templates are vertical-slice, bugfix, red-green-refactor, docs, and security-follow-up. Issue-backed tasks keep issue URL, number, title, labels, state, and source metadata in the local gitignored ledger. Issue body text is not stored, and Brigade does not poll, sync, mutate, or refresh GitHub issues in the background.
Import inbox
brigade work import add "..."creates a scanner-ready local import.brigade work import validate imports.jsonlchecks scanner output against the import schema.brigade work import ingest imports.jsonlingests scanner output.brigade work import memory-careconvertsmemory/cards/decay/refresh-queue.jsoninto imports.brigade work import memory-refreshconverts memory-refresh candidates into task imports with card identity, reason, evidence summary, and acceptance criteria.brigade work import chat-sweepconverts.brigade/chat-memory-sweeps/latest.jsonissues into imports. Actionable sweep issues become task imports with acceptance criteria, while raw private chat text is omitted.brigade work import triagegroups pending imports by source and kind; use--source,--kind, and repeatable--metadata key=valueto narrow noisy queues.brigade work import show <import-id>inspects one import.brigade work import plan <import-id>previews the exact task or handoff promotion would create, including acceptance criteria, template guidance, or handoff target.brigade work import plan-handoff <import-id>previews the Memory Handoff draft target for durable non-task imports.brigade work import dismiss <import-id>removes one noisy item, whiledismiss --allcloses filtered batches.brigade work import promote <import-id>promotes one reviewed import into the task ledger.brigade work import promote-handoff <import-id>promotes one reviewed durable import into a linted Memory Handoff draft.brigade work import promote --run <import-id>promotes exactly one task import, then immediately runs that task through the normal work-session loop.brigade work import promote --all --source memory-care --kind taskbatch-promotes filtered imports; metadata filters also work for scanner-specific fields such ashandoff_issue_category=route-skip.brigade work inbox doctorreports missing scanner provenance, stale pending imports, broken promoted task links, changed dismissed fingerprints, noisy sources, and scanner runs that produced no imports.brigade work inbox archivemoves old promoted, dismissed, and superseded imports into.brigade/work/imports/archive.jsonlwhile preserving pending imports.
Imports are stored under .brigade/work/imports/inbox.jsonl, stay gitignored, and do not write memory directly. Scanner-authored task imports may include type, priority, template, and acceptance; promotion preserves those fields so imported tasks can enter the normal TDD work loop. Durable non-task imports such as decisions, preferences, links, commands, findings, and incidents can be promoted only into reviewed Memory Handoff drafts. For handoff-ingest issues, prefer brigade handoff sync-issues over repeated raw imports.
Scanner registry
brigade work scanners initwrites gitignored.brigade/scanners.tomlwith local producer entries for chat sweep, memory refresh, handoff ingest sync, security findings, backup health, and tool catalog health.brigade work scanners listandshow <scanner-id>inspect configured scanner commands, sources, cadence, timeout, output paths, and conflict windows.brigade work scanners plancalculates intended run windows, reports overlaps or clustered jobs, and prints a suggested staggered schedule.brigade work scanners run <scanner-id>,run --all, andrun --dueexecute configured enabled scanner entries explicitly, never through a shell, and refuse disabled, risky, or overlapping runs unless the matching review flag is present.brigade work scanners run <scanner-id> --ingest-outputvalidates and ingests the scanner’s configured JSONLimport_pathafter a successful run.brigade work scanners runsandrun-show <run-id>inspect receipts under.brigade/scanners/runs/.brigade work scanners doctor --import-issuesreports missing config, disabled required producers, bad commands, missing or stale output paths, schedule conflicts, failed or timed-out runs, malformed receipts, missing logs, and due scanners, then can import those health issues as local task imports.
Daily sweep
brigade work sweepis the daily operator action for scanner review. It runs due scanners by default, or--all/--scanner <id>when selected, ingests configured JSONL outputs unless--no-ingestis present, and writes one report under.brigade/scanners/sweeps/.brigade work sweepsandbrigade work sweep-show <sweep-id>review sweep reports, including scanner run receipt paths, import counts, inbox hygiene, and suggested next commands.brigade work sweep-review <sweep-id>andsweep-review latesttriage one sweep by grouping created imports by source, kind, priority, acceptance coverage, provenance completeness, and status.
The scanner registry is explicit and local. Brigade does not install cron jobs, start a daemon, run scanners from brief or doctor, promote scanner output automatically, or mutate scanner output beyond the configured command’s own behavior.
Code review
brigade work review initwrites gitignored.brigade/reviews.tomlwith disabled starter entries for Codex review, Claude Opus review, and custom local reviewers.brigade work review planshows configured reviewer commands, cwd, timeout, target paths, base ref, output path, findings path, and command blockers without executing anything.brigade work review run <reviewer-id>andrun --allexecute configured reviewers explicitly, never through a shell, and write receipts under.brigade/reviews/runs/.brigade work review runsandbrigade work review show <run-id>inspect review receipts.brigade work review import-findings <run-id>reads the run’s normalized findings JSON, redacts unsafe values, and routes findings into the existing work inbox with sourcecode-review.brigade work review findingsandfinding-show <finding-id-or-import-id>inspect imported review findings.brigade work review closeout <run-id>orcloseout latestwrites a local closeout record that connects review findings to pending imports, dismissals, promoted tasks, completed tasks, and source-fingerprint changes requiring re-review.
Code review is explicit and local. Brigade does not auto-run reviewers from work run, apply fixes, post review comments, mutate GitHub, store auth, or promote findings automatically.
The daily loop
Run the daily loop with brigade work run. It opens a work session, resolves the next task, runs brigade dogfood, and closes completed ledger tasks after successful runs. When the resolved ledger task has acceptance criteria, work run includes them in the task prompt as the definition of done. Then it ends the session, writes a work-session Memory Handoff by default, and prints a recap.
brigade work run
brigade work run --queue-next
brigade work run "review today's changes"
Useful work run switches:
--queue-nextqueues the successful run’s extracted next step for the next session.--titlenames the session.--no-handoffskips the work handoff.--dogfood-handoffalso lets the underlying dogfood run write its own handoff.- Passing a task overrides the resolved next step.
Manual sessions
brigade work start "title"opens.brigade/work/<id>/, records starting context, and writesstart.md.brigade work note "checkpoint"appends a timestamped note to the active session.brigade work end --note "what happened"closes the active session and writesend.md.brigade work end --handoffalso writes a Memory Handoff.
brigade work start "next slice"
brigade work note "wired parser and tests"
brigade work end --note "tests passed" --handoff
Inspect local work sessions with:
brigade work list
brigade work latest
brigade work show <session-id-or-path>
brigade work recap
brigade work recap --since 2026-05-26
Verification and closeout
brigade work verify planpreviews the local verification commands and current evidence snapshot without running anything.brigade work verify runexecutes explicit local verification commands without a shell and writes receipts under.brigade/work/verify-runs/.brigade work verify runsandbrigade work verify show <run-id>inspect local verification receipts.brigade work closeout <session-id-or-latest>writes a local closeout receipt under.brigade/work/closeouts/that collects task acceptance, latest verification, scanner sweep status, code review closeout state, handoff draft status, and session evidence.
Verification and closeout are local gates. Brigade does not mutate CI, GitHub, reviewers, scanner promotions, handoff ingestion, daemons, or schedulers. Verification commands run only when explicitly requested.
Backup health
brigade work backup initwrites gitignored.brigade/backups.tomlwith local NAS and cloud destination examples.brigade work backup statusanddoctorread local JSON summaries for latest snapshot, check, prune, and restore rehearsal status.brigade work backup import-issuesturns stale snapshots, failed checks, stale prunes, missing summaries, overdue restore rehearsals, and unsafe summary fields into localbackup-healthwork imports.
Backup health summaries are local and read-only. Brigade does not run restic, mount storage, prune, restore, send webhooks, or mutate remote backup state.