# Bro-Skill

> Source: <https://github.com/luchasarie/bro-skill>
> Published: 2026-09-10 20:14:02+00:00

`/bro` is a tiny [Agent Skills](https://agentskills.io)-format skill with one job: when the assistant's last reply was too dense, too jargon-heavy, or too formal, you type `/bro` and it re-explains **its own previous message** like a smart friend over a beer.

No new information. No new answers. Just the same thing, said in a way that's impossible to misunderstand.

It's one markdown file. The whole skill is [`SKILL.md`](/luchasarie/bro-skill/blob/main/SKILL.md).

Works with any agent that reads the Agent Skills format — and ships thin slash-command wrappers where a skill alone doesn't give you a typed `/bro`:

| Tool | Skill location | Typed `/bro` via | 
|---|---|---|
| **Hermes Agent** | `~/.hermes/skills/bro/SKILL.md` | skill (auto) | 
| **Claude Code** | `~/.claude/skills/bro/SKILL.md` | `~/.claude/commands/bro.md` | 
| **Cursor** | `~/.cursor/skills/bro/SKILL.md` | skill ( `/bro` ) | 
| **OpenAI Codex** | `~/.codex/skills/bro/SKILL.md` | `~/.codex/prompts/bro.md` | 
| **opencode** | `~/.config/opencode/skills/bro/SKILL.md` | `~/.config/opencode/command(s)/bro.md` | 

Cursor also reads `~/.codex/skills/` and `~/.claude/skills/` (and the matching project folders) as a compatibility fallback. Don't rely on that — Cursor-only machines often have neither directory. The installer writes `~/.cursor/skills/bro/` whenever it detects Cursor, creating `~/.cursor/skills/` if needed (that folder is not there by default).

**One-liner** — detects which tools you have and installs into each:

```
bash <(curl -fsSL https://raw.githubusercontent.com/luchasarie/bro-skill/main/install.sh)
```

**Or from a clone** (better if you want to pull updates later):

```
git clone https://github.com/luchasarie/bro-skill.git
cd bro-skill
./install.sh          # installs into every detected tool
./install.sh --all    # or force-install into every supported tool
```

Then restart your agent session and type `/bro` after any reply that made your eyes glaze over.

```
cd bro-skill && git pull && ./install.sh
```

(Or just re-run the one-liner — it's idempotent.)

**🧱 Software architecture**

The refactor introduces an idempotent reconciliation layer atop the event-sourced aggregate, thereby mitigating dual-write anomalies during the migration window while preserving backward compatibility with the legacy projection contract.

`/bro`

Ok so basically: we added a safety layer that makes sure old and new data don't get out of sync while we're switching systems. Nothing breaks for anything still using the old system. That's it.

**☸️ Kubernetes panic**

The CrashLoopBackOff stems from the liveness probe's failure threshold being exceeded due to the application's blocking initialization sequence, which starves the kubelet's health-check endpoint of a timely response…

`/bro`

Bro, your app takes too long to start up. Kubernetes keeps asking "you alive?" and your app is too busy booting to answer, so k8s kills it and restarts it — over and over. Give it more time (`initialDelaySeconds`) or move the slow startup work into an init container.

**🇧🇷 Same-language rule — PT-BR in, PT-BR out**

A otimização do funil de conversão demanda a implementação de uma estratégia omnichannel de nurturing, visando a maximização do LTV através da redução do churn…

`/bro`

Mano, traduzindo: a gente quer que o cliente compre mais e fique mais tempo. Menos cliente indo embora + cada um gastando mais = mais dinheiro. Era isso que aquela sopa de sigla queria dizer.

**More in [`examples/`](/luchasarie/bro-skill/blob/main/examples):** [git panic](/luchasarie/bro-skill/blob/main/examples/git-panic.md) (watch the commands survive verbatim), [consultant-speak](/luchasarie/bro-skill/blob/main/examples/consultant-speak.md), [full Kubernetes exchange](/luchasarie/bro-skill/blob/main/examples/kubernetes.md), [full architecture exchange](/luchasarie/bro-skill/blob/main/examples/software-architecture.md).

| Rule | What it means | 
|---|---|
| 🔄 **Re-explain, don't re-answer** | Never answers a new question, never adds info, never calls tools | 
| 📏 **Simpler, not shorter** | Clarity over word count — take the space real clarity needs | 
| 📌 **Facts survive verbatim** | Every path, command, filename, number, URL stays *exactly* the same | 
| 🤙 **Light bro flavor** | Casual and direct, not a meme | 
| 🌐 **Same language** | PT-BR in → PT-BR out. English stays English | 
| 🧹 **Flatten structure** | Headers and tables become plain sentences | 

```
bro-skill/
├── SKILL.md     # the entire skill — one file, that's the beauty
├── install.sh   # detects your agent CLIs and drops /bro into each
├── examples/    # before/after pairs across domains and languages
├── README.md    # you are here
└── LICENSE      # MIT
```

It's a 30-line prompt file. If you have a genuinely better phrasing, open a PR — keep the facts-verbatim rule sacred.
