bro

Skills

Skills are policy; the CLI is mechanics.

Each bro capability ships a skill — a markdown file the agent reads that says when and why, while the CLI owns how. Policy drifts in prompts; it survives in a file with a frontmatter trigger.

Shipped skills

SkillTriggerPolicy it carries
act/act, bro: PR pingsLoop until the exit gate is green; severity-aware fix/defer; merge only via bro act merge
debt/debt, ledger workCollect → triage → claim → fix → sync; the human gate is the point
drill/drill, /unwindNarrow → investigate → ascend → prevent; --result mandatory
sync/syncData-ref push/pull, bare-remote smoke rules
wtf/wtfCapture verbatim, never paraphrase
convoy/convoyMulti-bead batch coordination
next/next, "work the backlog", /goalThe autonomous loop: claim → implement → PR → close → repeat. The queue is the approval

Generation

scripts/gen-plugins.ts renders skills/*/SKILL.md into per-client adapters (plugins/{devin,claude,codex}/bro/) plus the embedded copy in packages/cli/src/skills-data.ts. The source of truth is skills/; adapters are build artifacts — edit the source, regen, commit both. npm run check:embedded and check:plugins enforce freshness in CI.

Skill discipline for agents

The global rule: read the governing SKILL.md before running its loop. Policy lives there — waiting mechanics, resolve etiquette, failure fallbacks — don't re-derive it per session.

On this page