# Pragmatic Programmer

> Practical software craftsmanship — an AI agent skill based on *The Pragmatic Programmer* by Andrew Hunt & David Thomas.

Published 2026-02-23 · Updated 2026-08-17 · Code Quality · Free and MIT-licensed
Canonical: https://skills.wondel.ai/skills/pragmatic-programmer/
Source: https://github.com/wondelai/skills/tree/main/pragmatic-programmer

**Install:** `npx skills add wondelai/skills/pragmatic-programmer --global`

## What is the Pragmatic Programmer skill?

Hunt and Thomas's The Pragmatic Programmer is about the craft habits that outlast any framework, and this free skill hands them to your agent: DRY applied to knowledge rather than characters, orthogonal design, tracer bullets that prove a path end to end, and contracts that state what a function actually promises.

## Key concepts from The Pragmatic Programmer your agent applies

- **DRY Principle** — Don't Repeat Yourself — every piece of knowledge should have a single, unambiguous representation in the system.
- **Orthogonality** — Design components that are independent and decoupled — changing one shouldn't affect others.
- **Tracer Bullets** — Build a thin end-to-end slice first to validate architecture, then fill in the details incrementally.
- **Design by Contract** — Define clear preconditions, postconditions, and invariants for every module and function.
- **Rubber Duck Debugging** — Explain the problem step by step to find the answer — articulating the issue often reveals the solution.

## When to use Pragmatic Programmer — and when not to

Reach for it when:

- You're starting something new and want a thin working path through the whole system before filling it in.
- The same knowledge is duplicated in three places and changing it means changing all three.
- Modules are so entangled that a change in one reliably breaks another.
- You want your agent to state a function's preconditions and invariants instead of guessing at edge cases.

Reach for something else when:

- You want line-level readability rules — Clean Code is the more specific tool.
- The task is a named, mechanical code transformation — use Refactoring.
- You are choosing between architectures or drawing dependency boundaries — use Clean Architecture.
- The system is already in production and failing under load — Release It! covers stability, this does not.

## About Andrew Hunt & David Thomas

Agile Manifesto co-authors, founders of Pragmatic Bookshelf. Andrew Hunt and David Thomas are pioneering software consultants who co-founded the Pragmatic Bookshelf and helped write the Agile Manifesto. Their book has been a staple of software engineering education for over two decades.

More: https://en.wikipedia.org/wiki/Andy_Hunt_(author) · https://www.wikidata.org/wiki/Q262277 · https://en.wikipedia.org/wiki/Dave_Thomas_(programmer) · https://www.wikidata.org/wiki/Q377261
The book: https://openlibrary.org/books/OL27533114M/The_Pragmatic_Programmer · https://en.wikipedia.org/wiki/The_Pragmatic_Programmer · https://www.wikidata.org/wiki/Q7758002

## Example prompts

- Identify DRY violations across these modules and suggest consolidation using pragmatic-programmer skill _(Code review)_
- Design a tracer bullet implementation for this new feature using pragmatic-programmer skill _(Architecture)_
- Check this codebase for orthogonality issues and tight coupling using pragmatic-programmer skill _(Design review)_
- Apply Design by Contract to define clear interfaces for this service using pragmatic-programmer skill _(API design)_

## Frequently asked questions

### How do I install the Pragmatic Programmer skill?

Run `npx skills add wondelai/skills/pragmatic-programmer --global`. It takes about 30 seconds and needs no account. The Pragmatic Programmer skill then works in Claude, Claude Code, Claude Cowork, Codex, Cursor, OpenClaw and Hermes Agent — anything that reads the open agentskills.io format — and your agent loads it on its own when a task calls for it. It is free and MIT-licensed, and the source is at https://github.com/wondelai/skills.

### Which book is the Pragmatic Programmer skill based on?

It packages *The Pragmatic Programmer* by Andrew Hunt & David Thomas — agile Manifesto co-authors, founders of Pragmatic Bookshelf. The skill distils the book's method into instructions your agent follows while it works, covering dry principle, orthogonality and tracer bullets. It sits in the Code Quality part of the library.

### What is a tracer bullet, in practice?

A thin, working slice through every layer of the system — real UI to real API to real database — built before any layer is complete. It proves the pieces connect and gives you something to aim adjustments at. It differs from a prototype in that you keep it: prototypes are thrown away, tracer bullets become the skeleton.

### Is DRY just about not copy-pasting code?

No, and the skill applies the stronger version. DRY is about every piece of *knowledge* having one authoritative representation. Two functions with identical bodies that encode genuinely different rules are not a DRY violation and should not be merged; two different-looking functions that encode the same business rule are. The skill asks which knowledge is being duplicated before it suggests extracting anything.

### Does this overlap with Clean Code?

They sit at different altitudes and are often installed together. Clean Code is about the sentence — this name, this function, this conditional. Pragmatic Programmer is about the paragraph and the habit: how you decouple modules, how you prove a design early, how you keep knowledge in one place. Neither replaces the other.

## Related

- All Code Quality skills: https://skills.wondel.ai/skills/code/
- Clean Code: https://skills.wondel.ai/skills/clean-code/
- Refactoring: https://skills.wondel.ai/skills/refactoring-patterns/
- Software Design: https://skills.wondel.ai/skills/software-design-philosophy/
- Legacy Code: https://skills.wondel.ai/skills/working-with-legacy-code/

