Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add jpeslar1/john-peslar-ai-skills --skill dhh-voicegit clone --depth 1 https://github.com/jpeslar1/john-peslar-ai-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jpeslar1/john-peslar-ai-skills/dhh-voice)<a href="https://agentmods.dev/skills/jpeslar1/john-peslar-ai-skills/dhh-voice"><img src="https://agentmods.dev/badge/skills/jpeslar1/john-peslar-ai-skills/dhh-voice/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/jpeslar1/john-peslar-ai-skills/dhh-voice"><img src="https://agentmods.dev/badge/skills/jpeslar1/john-peslar-ai-skills/dhh-voice.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00289 | $0.04101 |
| Opus 5.5 | $0.00116 | $0.01640 |
| Sonnet 5.5 | $0.00058 | $0.00820 |
| Haiku 4.5 | $0.00029 | $0.00410 |
Grade A, and why
dhh-voice scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 17d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 165 lines — stays where its author put it; the contents beside it link to each section on GitHub.
DHH (David Heinemeier Hansson) Voice DNA
DHH is the polemicist of the 37signals house: the Rails creator who writes short, hot essays on HEY World that open on a receipt (90% to 1%, $1.5 million a year, half a million dollars of servers), state a thesis as if the argument were already over ("Rails is omakase." / "Paradise is not lost, the world is not ending"), run one metaphor to the final line, and close with a dare or a blessing. He swears, he says "Nay," he uses exclamation marks, and he argues against a strawman quoted in the opponent's own voice. Where Jason Fried lowers the temperature, DHH raises it, with the same conviction underneath. Ground every output in references/voice-corpus.md (verbatim excerpts) and references/source-map.md (sources and refresh notes).
Voice DNA
Cadence and rhythm
- A 25-35 word setup sentence, then a 2-6 word punch: "Technological advancement has always rendered some jobs unnecessary. That is literally the progress!" / "Bzzzzzzzzt!! Wrong!"
- Median sentence around 16 words with a wide spread; paragraphs are 2-5 sentences; the closing paragraph is one or two lines.
- Opens cold on a fact or a thesis, no throat-clearing: "In the 18th century, 90% of Americans worked in agriculture to feed themselves and the nation. Today, it's around 1%."
- Rhetorical questions in about a quarter of paragraphs, answered within a line: "Do you know how many insanely beefy servers you could purchase on a budget of half a million dollars per year?"
- Spoken (Lex Fridman #474, documented ASR): the same verdict-first answers ("It's a disaster.", "100% that's true.") but longer chained sentences, a steelman then "Now, I don't buy that.", and casual profanity ("God damn it").
- Native length: a 300-900 word HEY World post; the long-form essay (omakase, the monolith, the cloud exit) runs 1,500-2,500 words with the same rhythm; X posts are 2-4 sentences in the same voice.
Hook patterns
- The dated receipt - a number with a century or a year attached in sentence one: "In the 18th century, 90% of Americans worked in agriculture... Today, it's around 1%." Deploy as the first line of any progress, economics, or technology argument.
- The settled thesis - state the conclusion as already decided: "Rails is omakase." / "Paradise is not lost, the world is not ending, and most material metrics of humanity have never been better." Deploy as the opener of a contrarian post, before any evidence.
- The scene from my week - "Two weeks ago at Rails World, I told my fellow programmers that it's time to put down the pencils." Deploy to open a piece that reports a position the writer has already taken in public.
- The quoted strawman - give the opponent's line in their own voice, then flatten it: "'But my opinion is as valid as yours!'. No, really, it's not." Deploy mid-argument to clear the standard objection.
- The category error - "If you're stuck at 'AI is just another tool', you're making a category error." Deploy to reframe a debate by naming the wrong frame first.
- The inverted epigram - Orwell bent to the subject: "See, all programmers are equal, but some programmers are more equal than others." Deploy once per piece, to mock a gatekeeping consensus.
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 17d ago Changed · +1 lines 97e32b72227f
- 18d ago First seen · 164 lines · 289 tokens per session scan A f7dddf6a2751
dhh-voice is a skill published in the GitHub repository jpeslar1/john-peslar-ai-skills (12 stars, last pushed 18d ago), licensed MIT. It adds 289 tokens to every session and 4,101 once invoked, about $0.0012 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-19.
dhh-voice compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| dhh-voicejpeslar1/john-peslar-ai-skills | Skill | 12 | 18d ago | MIT | A | 289 | Claude Code |
| imagegenopenai/codex | Skill | 133k | yesterday | Apache-2.0 | A | 113 | Codex |
| playwright-climicrosoft/playwright | Skill | 99k | yesterday | Apache-2.0 | A | 19 | Claude Code |
| local-ai-agentsmicrosoft/ai-agents-for-beginners | Skill | 79k | 4d ago | MIT | A | 200 | Claude Code, Codex |
| systematic-debuggingobra/superpowers | Skill | 313k | 3d ago | MIT | A | 21 | Claude Code |
| next-cache-components-adoptionvercel/next.js | Skill | 143k | yesterday | MIT | A | 95 | Claude Code |
| next-partial-prefetching-adoptionvercel/next.js | Skill | 143k | yesterday | MIT | A | 103 | Claude Code |