prompt engineering peaked at "bro, wtf"

Your agent opened a PR.
Who merges it?

Not you. bro drives it β€” watches the review gate, answers the threads, fixes the findings, merges on green, and sweeps the debt after. Done is a verdict, not a vibe.

$ /plugin marketplace add ThePlenkov/bro
$ /plugin install bro@bro
your agent Β· ~/app Β· bro plugin on

done is a verdict, not a vibe. merged is not done either.

>ship it
●Done! All tests pass and the PR is ready. πŸŽ‰
β””Stop hook Β· bro: PR #42 not done β€” unresolved review threads, CI still pending
●…right. Checking.
●Bash(bro review act threads)
β””src/auth.ts "this null check does nothing"
β””src/auth.ts "why are we logging the token?"
●Fixed both, replied, pushed. Letting the gate decide.
●Bash(bro review act wait --merge)
β””exit_gate=OK β€” merged
●Now it is done. For real this time.

real commands, dramatized agents.

The gate is the product

One read, one verdict: threads=0 ci=0 reviewers=0 sast=0 β€” that's what "ready to merge" means when bro says it. And merged still isn't done: reviewers' leftovers land in a public ledger instead of rotting in closed tabs. bro sweeps its own merged PRs β€” the debt ledger is live.

And when one agent isn't enough

  1. clibro

    the mechanics your prompts kept forgetting. one command, one verdict.

  2. pluginsevery agent

    Claude, Codex, Cursor, Devin, OpenCode, Kilo, pi β€” same bro inside.

  3. hooksthe lifecycle

    rehydrate on start, nudge on prompt, gate the stop. always fail-open.

  4. skillsthe policy

    thin wrappers: when to call bro, never how. the how lives in code.

  5. connectorsyour systems

    tasks, reviews, agents, models, events β€” beads, GitHub, GitLab, Jira, tmux, Gas City, ACP.

Fine, it orchestrates now. Still no swarm by default, no token bonfire. Your agent keeps its own session β€” bro hooks into its lifecycle and keeps it honest. When you do want many agents, one facade spawns them β€” native processes, tmux panes, Gas City, ACP providers β€” under a fleet cap, and they reach you through a mailbox, not a wait loop. Long waits go to a background shell β€” bro review act wait, bro review watch β€” not even a subagent: zero tokens while the gate settles, and your agent keeps working. Gates, not loops.

bro writes bro

Agents claim beads, ship through the act gate, sweep their own review debt, and turn retros into the next beads β€” a hand-rolled script today is a bro command next week. This site, the CLI, and most of the merged PRs were built that way.

The whole vocabulary β€” bead, mol, convoy, act, drill, wtf β€” lives in the glossary, not on a landing page that rots against the CLI.