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.*