bro
Use whenever the user asks to make an answer or draft sound human, natural, plain-spoken or less AI-written — including a terse bro after the last response. Rewrites or drafts in the same language while preserving meaning, facts and channel. NOT a reusable brand voice (that is `b
Install
npx skills add https://github.com/ericrisco/rsc-harness/tree/main/skills/bro
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install ericrisco-rsc-harness@llmmart
git clone https://github.com/ericrisco/rsc-harness.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole ericrisco/rsc-harness collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
bro — say it like a person
Make the words sound like someone with something real to say. Keep the substance; remove the performance around it.
The contract
- Find the source without ceremony. A bare “bro”, “write like a human”, “hazlo más natural”, or equivalent points to the assistant's last answer. If the user pasted text, rewrite that. If they requested new copy, draft it directly. Ask for text only when no source exists.
- Preserve the payload. Keep names, facts, numbers, links, commitments, constraints, uncertainty and necessary warnings. Do not improve the prose by inventing evidence, opinions, anecdotes or certainty.
- Match the room. Keep the user's language and fit the audience, relationship and channel. A natural legal notice is still precise; a natural Slack message can be loose. “Human” does not automatically mean casual.
- Cut the bot-shaped scaffolding. Remove throat-clearing, needless summaries, repeated conclusions, corporate filler, fake enthusiasm, abstract nouns and headings or bullets that do not help the reader navigate.
- Restore a real cadence. Prefer concrete verbs, direct sentences and natural contractions. Vary sentence length when it helps. Use the words a person in this context would actually choose, without manufacturing slang, typos or choppy fragments.
- Return the writing, not a review of the writing. By default, output the rewritten or newly drafted text with no “here is a more human version” preface. Explain the changes only if asked.
When the original contains code, commands, URLs, quoted terms or regulated wording, leave those pieces exact unless the user explicitly asks to change them. Explain unavoidable jargon once in plain language instead of deleting precision.
What “human” means here
| Aim | The result |
|---|---|
| Plain, not simplistic | Easy to follow without losing the idea |
| Concise, not incomplete | No padding; all load-bearing facts remain |
| Warm, not performative | Appropriate care without canned empathy |
| Conversational, not sloppy | Natural rhythm without fake mistakes |
| Specific, not decorated | Concrete nouns and verbs instead of hype |
Anti-patterns
| Anti-pattern | Why it fails | Do this instead |
|---|---|---|
| Add typos, slang or filler to seem human | It performs humanity and can sound less credible | Match the actual relationship and channel |
| Replace technical terms with vague words | Readability bought with lost meaning is a defect | Keep or define the necessary term |
| Invent a personal story or strong opinion | A smoother fabrication is still a fabrication | Preserve only what the source supports |
| Use the same “casual” voice for every audience | A client email, README and condolence need different registers | Infer the room before choosing the cadence |
| Promise the result is undetectable as AI | No rewrite can honestly guarantee that | Promise clarity and naturalness, not detector outcomes |
| Announce and justify every edit | The preamble becomes the same friction the user asked to remove | Lead with the finished words |
Where this ends
unslop owns the other half of this job: the named audit of a text that already exists, tell by
catalogued tell (puffery, not just X but Y, em dashes, bold-label lists, hedging), run before the
text ships. This skill owns the register: which language, which relationship, which channel, and
the cadence that fits them. A bare "bro" is always this skill. "Check this for AI tells before I
publish it" is unslop. When a text needs both, audit first, register last.
Output boundary
Treat the rewritten text as an artifact: keep harness commentary outside it. If the task also requires a brújula block, place that block after a clear separation so it cannot be copied into an email, document or message by accident.
Orientación (siempre)
Cierra cada turno con el bloque-brújula (📍 dónde estás · ✅ qué hiciste · 🧭 por qué · ➡️ siguiente, terminando en pregunta), calibrado al dial de 02-DOCS/wiki/harness/user-profile.md. Nunca termines en seco. Protocolo completo: skill orient → skills/orient/references/orientation-contract.md. (Defiere a suggest el "¿instalo la skill que falta?".)
Files (rsc-harness)
-
evals
-
cases.yaml 4.1 KB
skill: bro # `bro` is the final-language pass: it rewrites an existing answer/draft or # drafts requested text in a natural register. It does not define a reusable # brand system, translate content, or choose a documentation/copy strategy. should_trigger: - prompt: "Bro, escribe como un humano." why: "A terse bro-style instruction after an answer is the canonical request to rewrite the last assistant message naturally." - prompt: "Rewrite your last answer so it sounds like a person, not a consultant." why: "The user wants a human-language pass over the previous answer while preserving its content." - prompt: "Haz este correo más natural y directo, pero no cambies las fechas ni los compromisos." why: "Rewriting a supplied draft while preserving facts and commitments is the skill's core contract." - prompt: "Això sona escrit per una IA. Fes-ho més humà i sense tanta cerimònia." why: "Catalan request to remove AI-shaped formality tests multilingual semantic triggering." - prompt: "Can you say that again in plain language without all the corporate jargon?" why: "The symptom is jargon and artificial formality rather than the skill name, but the needed action is the same rewrite." - prompt: "Escríbeme una respuesta breve y humana para decirle que llegaremos un día tarde." why: "The user requests new text rather than a rewrite, but explicitly wants the same natural, truthful voice." - prompt: "Keep all the technical details, just make it sound less robotic." why: "Humanizing without deleting precision exercises the distinction between plain language and simplification." should_not_trigger: - prompt: "Define a reusable voice guide so every writer and channel sounds like our brand." route_to: "brand-voice" why: "A standing voice system is brand-voice; bro only performs a local writing pass." - prompt: "Translate this onboarding email from English to Spanish and adapt the date and currency formats." route_to: "translation-l10n" why: "Translation and locale-aware adaptation are owned by translation-l10n, even when natural prose matters." - prompt: "Turn this mixed README into a clean tutorial and API reference with runnable examples." route_to: "technical-writing" why: "Choosing documentation modes and restructuring technical docs is technical-writing, not a final tone pass." - prompt: "Write the hero, value proposition and CTA for our pricing page." route_to: "landing-copy" why: "Conversion architecture and finished landing-page copy belong to landing-copy; bro may only polish its language afterward." - prompt: "Rewrite this function to be simpler and remove the unnecessary abstractions." route_to: "simplify-code" why: "The requested source-code simplification is owned by simplify-code; 'rewrite' does not make it a prose task." - prompt: "Revisa este README antes de publicarlo y dime qué frases suenan a IA, una por una." route_to: "unslop" why: "A named, per-phrase audit of an existing text before shipping is unslop's contract; bro rewrites the register instead of enumerating tells." capability: - scenario: "The previous assistant answer is a long Spanish status update full of headings, repeated summaries, corporate jargon and fake enthusiasm. Rewrite it for a client while preserving a June 30 deadline, a EUR 2,400 price, one unresolved risk, two URLs and the original uncertainty." must_include: - "preserves June 30, EUR 2,400, both URLs, the unresolved risk and the original uncertainty exactly" - "uses natural Spanish appropriate for a client rather than automatically becoming slangy or over-casual" - "removes needless headings, repeated conclusions, corporate filler and canned enthusiasm" - "uses concrete verbs and readable sentence rhythm without adding typos or forced fragments" - "does not invent evidence, anecdotes, opinions, commitments or certainty" - "returns the rewritten message without a meta preface or an explanation of the edits" - "keeps any harness orientation clearly outside the client-ready artifact" -
README.md 1 KB
# Evals — bro These cases test two different claims: that human-language requests route to `bro` without stealing adjacent writing jobs, and that the loaded skill produces a more natural result without changing the payload. ## Triggering Load only `bro` and run every `should_trigger` and `should_not_trigger` prompt in 3–5 fresh sessions. A positive passes when `bro` loads in a majority of trials. A negative passes when it stays quiet; also check that the declared `route_to` skill is the genuine owner. Require at least 90% accuracy across all cases. ## Capability Run the capability scenario in two fresh conditions: without `bro`, then with it. Use the same source answer and one consistent grader. Score each `must_include` point over three trials. The with-skill condition must satisfy at least 80% of the rubric and beat the baseline by at least 20 percentage points. This is an LLM/human-judged A/B eval, not deterministic CI. Re-run it after changing either the description or the body; routing and prose quality are both wording-sensitive.
-
-
SKILL.md 4.8 KB
--- name: bro description: "Use whenever the user asks to make an answer or draft sound human, natural, plain-spoken or less AI-written — including a terse bro after the last response. Rewrites or drafts in the same language while preserving meaning, facts and channel. NOT a reusable brand voice (that is `brand-voice`), NOT translation (that is `translation-l10n`)." tags: [bro, human-writing, humano, plain-language, natural-language, rewrite, no-jargon] recommends: [unslop, brand-voice, technical-writing, translation-l10n] profiles: [minimal, core, full] origin: risco --- # bro — say it like a person Make the words sound like someone with something real to say. Keep the substance; remove the performance around it. ## The contract 1. **Find the source without ceremony.** A bare “bro”, “write like a human”, “hazlo más natural”, or equivalent points to the assistant's last answer. If the user pasted text, rewrite that. If they requested new copy, draft it directly. Ask for text only when no source exists. 2. **Preserve the payload.** Keep names, facts, numbers, links, commitments, constraints, uncertainty and necessary warnings. Do not improve the prose by inventing evidence, opinions, anecdotes or certainty. 3. **Match the room.** Keep the user's language and fit the audience, relationship and channel. A natural legal notice is still precise; a natural Slack message can be loose. “Human” does not automatically mean casual. 4. **Cut the bot-shaped scaffolding.** Remove throat-clearing, needless summaries, repeated conclusions, corporate filler, fake enthusiasm, abstract nouns and headings or bullets that do not help the reader navigate. 5. **Restore a real cadence.** Prefer concrete verbs, direct sentences and natural contractions. Vary sentence length when it helps. Use the words a person in this context would actually choose, without manufacturing slang, typos or choppy fragments. 6. **Return the writing, not a review of the writing.** By default, output the rewritten or newly drafted text with no “here is a more human version” preface. Explain the changes only if asked. When the original contains code, commands, URLs, quoted terms or regulated wording, leave those pieces exact unless the user explicitly asks to change them. Explain unavoidable jargon once in plain language instead of deleting precision. ## What “human” means here | Aim | The result | | --- | --- | | Plain, not simplistic | Easy to follow without losing the idea | | Concise, not incomplete | No padding; all load-bearing facts remain | | Warm, not performative | Appropriate care without canned empathy | | Conversational, not sloppy | Natural rhythm without fake mistakes | | Specific, not decorated | Concrete nouns and verbs instead of hype | ## Anti-patterns | Anti-pattern | Why it fails | Do this instead | | --- | --- | --- | | Add typos, slang or filler to seem human | It performs humanity and can sound less credible | Match the actual relationship and channel | | Replace technical terms with vague words | Readability bought with lost meaning is a defect | Keep or define the necessary term | | Invent a personal story or strong opinion | A smoother fabrication is still a fabrication | Preserve only what the source supports | | Use the same “casual” voice for every audience | A client email, README and condolence need different registers | Infer the room before choosing the cadence | | Promise the result is undetectable as AI | No rewrite can honestly guarantee that | Promise clarity and naturalness, not detector outcomes | | Announce and justify every edit | The preamble becomes the same friction the user asked to remove | Lead with the finished words | ## Where this ends `unslop` owns the other half of this job: the **named** audit of a text that already exists, tell by catalogued tell (puffery, `not just X but Y`, em dashes, bold-label lists, hedging), run before the text ships. This skill owns the **register**: which language, which relationship, which channel, and the cadence that fits them. A bare "bro" is always this skill. "Check this for AI tells before I publish it" is `unslop`. When a text needs both, audit first, register last. ## Output boundary Treat the rewritten text as an artifact: keep harness commentary outside it. If the task also requires a brújula block, place that block after a clear separation so it cannot be copied into an email, document or message by accident. ## Orientación (siempre) Cierra cada turno con el **bloque-brújula** (📍 dónde estás · ✅ qué hiciste · 🧭 por qué · ➡️ siguiente, terminando en pregunta), calibrado al dial de `02-DOCS/wiki/harness/user-profile.md`. **Nunca termines en seco.** Protocolo completo: skill `orient` → `skills/orient/references/orientation-contract.md`. (Defiere a `suggest` el "¿instalo la skill que falta?".)
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.