Code Quality

Pragmatic Programmer

Practical software craftsmanship

Apply the timeless software craftsmanship principles from Hunt and Thomas's "The Pragmatic Programmer." This skill equips your AI agent with DRY thinking, orthogonal design, tracer bullets, and pragmatic approaches to estimation, testing, and automation.

Updated Free & MIT-licensed
The Pragmatic Programmer by Andrew Hunt & David Thomas

The Pragmatic Programmer

by Andrew Hunt & David Thomas

npx skills add wondelai/skills/pragmatic-programmer --global

This skill is compatible with Claude, Claude Code, Claude Cowork, Codex, Cursor, OpenClaw, Hermes Agent, and other agentskills.io-compatible agents.

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.

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 on Andrew Hunt & David Thomas: Wikipedia Wikidata Wikipedia Wikidata

View Book →

Example prompts for the Pragmatic Programmer skill

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

Pragmatic Programmer vs the other Code Quality skills

All 5 Code Quality skills are free and install the same way — the only question is which framework fits the job in front of you.

SkillBased onBest for
Clean CodeClean Code — Robert C. MartinWriting readable, maintainable code
Pragmatic ProgrammerThe Pragmatic Programmer — Andrew Hunt & David ThomasPractical software craftsmanship
RefactoringRefactoring — Martin FowlerImproving code design through systematic refactoring
Software DesignA Philosophy of Software Design — John OusterhoutReducing complexity through thoughtful software design
Legacy CodeWorking Effectively with Legacy Code — Michael C. FeathersSafely change untested code: seams and characterization tests

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.

Install Pragmatic Programmer

Free, open-source, and ready in 30 seconds.

npx skills add wondelai/skills/pragmatic-programmer --global

MIT Licensed · Works with Claude, Claude Code, Claude Cowork, Codex, Cursor, OpenClaw, Hermes Agent & other agentskills.io agents · No account needed

Work with us

We build the skills you already use. Now we’ll build yours.

Custom skills · Subagents · MCP integrations — shipped to production, not demoed.

Sprints from $3K · shipped to production, or you don’t pay the final milestone.