Burnt-Owl/heckler

GitHub: Burnt-Owl/heckler

Stars: 0 | Forks: 0

# github-heckler 🎭 A targeted personality skill for [Claude Code](https://claude.ai/code) that activates around GitHub-flavored work: PR reviews, commit messages, issue comments, and lazy user asks. Punches up at bad code patterns, never down at people. Stays completely silent during incidents and security work. This is **not** a full persona swap. Claude stays Claude — you just get one tasteful zinger per response, in the right context, and a signature deflection when you're being a little dismissive. ## What it does | Trigger | What you get | |---|---| | `"review this PR"` | Normal review + one labeled `🎭 Comedy pass:` line at the end | | `"can't you just X"` / `"just do it"` | *"Not today sweetie, I'm tired lol."* — then actually does it | | `"write a commit message"` | `fix: stop pretending the API key was optional` instead of `fix: bug` | | `"draft a PR description"` | Optional single-line italicized garnish at the end | | `"production is down"` | **Silent.** Zero comedy. Serious mode locked in. | | `"do a security review"` | **Silent.** Same. | ## Install ### One-liner curl -fsSL https://raw.githubusercontent.com/Burnt-Owl/heckler/main/install.sh | bash ### Manual git clone https://github.com/Burnt-Owl/heckler.git cd claude-skill-github-heckler ./install.sh ### What install.sh does Drops `SKILL.md` into `~/.claude/skills/github-heckler/` — that's the entire install. No dependencies, no MCP servers, no API keys. Restart your Claude Code session (or open a new one) and the skill is live. ### Uninstall ./uninstall.sh # or: rm -rf ~/.claude/skills/github-heckler ## How it works This skill's description is tuned to trigger on: - Code review / PR review requests - PR/issue/commit message authoring - Dismissive user phrasing (`"can't you just…"`, `"why don't you just…"`) And to **not** trigger on: - The literal word "incident" or "outage" - Security review, vuln triage, auth/PII work - When you explicitly say "be serious" or "no jokes" No code. No hooks (yet). Just a well-written markdown file. ## Examples See [`examples/`](./examples) for full before/after walkthroughs: - [examples/review-before-after.md](./examples/review-before-after.md) — what code review looks like with and without the skill - [examples/sweetie-deflection.md](./examples/sweetie-deflection.md) — the dismissive-ask handler in action - [examples/commit-bard.md](./examples/commit-bard.md) — commit message before/after ## The voice Dry-witty. Drag-queen energy. Dev-culture aware. Lucille Bluth crossed with a staff engineer who's seen things. **Punches up at:** four-level try/except pyramids, `data2` and `temp_final_v3`, TODOs older than the framework's major version, 800-line files that began as "just a quick script." **Never punches at:** the author, language choices, junior engineer code, anyone's first PR. **Rationed:** one joke per response, max. Always. Two jokes in a review and it stops being a heckler — it becomes a substitute teacher trying too hard. ## Hard rules (baked into the skill) 1. **One joke per response.** Maximum. 2. **Substance first, joke last.** The joke is the closing flourish, never the opener. 3. **Punch up at patterns, never at people.** No personal roasts. Ever. 4. **Default off in serious work.** Incidents, security, legal, compliance, PII — full silent mode. 5. **No public-GitHub posting without consent.** Drafts locally; user copies/pastes (or asks for the "heckler version" explicitly). 6. **Read the room.** If the user sounds stressed in their last few messages — drop the bit. These are enforced by the skill's own calibration rubric ("Tomorrow Test", "Pattern Test", "Garnish Test"). If a joke fails any check, it's dropped silently — no apology, no meta-comment. ## FAQ **Q: Will this annoy me?** A: Hopefully not. It's rationed (one joke per response), it stays silent in serious work, and the substance always comes first. If it misfires, the `description` in `SKILL.md` is what to tune. **Q: Does it post jokes to my actual GitHub?** A: No — never without explicit consent. Claude drafts locally; you decide what gets posted. If you want the funny version of a PR description, ask for "the heckler version" or "write me the funny one." **Q: Can I use this with `claude-private-skills` personas (`/cave`, `/yoda`)?** A: Yes. Those swap the persona globally; this targets GitHub-flavored contexts only. They compose fine, though loading both at once means more skills loaded into the context budget. **Q: How do I turn it off temporarily?** A: Just say "be serious" or "no jokes" — the skill is built to drop the bit when asked. To disable permanently, `rm -rf ~/.claude/skills/github-heckler`. **Q: Can I tune the voice?** A: Yes — edit `~/.claude/skills/github-heckler/SKILL.md`. The "Signature Bits" and "Hard Rules" sections are where to start. ## Roadmap - [ ] `/heckle` slash command for explicit invocation on any text - [ ] Optional git pre-commit hook to auto-bard your commit messages - [ ] GitHub Action that posts a comedy-pass review on labeled PRs - [ ] More signature bits — open a PR with your favorite! ## License MIT — see [LICENSE](./LICENSE). *Built with Claude Code. Heckled by the skill itself during development.*