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

npx skills add wondelai/skills/pragmatic-programmer --global
The Pragmatic Programmer
Andrew Hunt & David Thomas
The Pragmatic Programmer by Andrew Hunt & David Thomas

The Pragmatic Programmer Andrew Hunt & David Thomas View on Amazon

02 What it is

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.

03 Key concepts

Five principles your agent applies.

Drawn from The Pragmatic Programmer — not advice it repeats back to you, but decisions it makes while it works.

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

04 Fit

When to use it, and
when not to.

four symptoms it fixes, and four it doesn't.

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.

05 Prompts

Say it like this.

Name the skill at the end of a prompt and the agent applies the framework rather than a vibe. Or say nothing — it loads on its own when a task matches.

example prompts
# 01 · Code review

Identify DRY violations across these modules and suggest consolidation using pragmatic-programmer skill

# 02 · Architecture

Design a tracer bullet implementation for this new feature using pragmatic-programmer skill

# 03 · Design review

Check this codebase for orthogonality issues and tight coupling using pragmatic-programmer skill

# 04 · API design

Apply Design by Contract to define clear interfaces for this service using pragmatic-programmer skill

06 About the author

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.

08 Questions

Before you install.

01

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.

02

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.

03

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.

04

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.

05

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.

09 Guides that use it

Put it to work.

Long-form playbooks where this skill does part of the job.

01 How to Create a New App with AI Skills Go from concept to a well-architected, well-built app — validation, architecture, domain modeling, and clean code — with AI agent skills from Lean Startup, Clean Architecture, DDD, and more. 19 min read 02 From Vibe-Coded Prototype to Production-Ready Product A hands-on engineering playbook for turning an AI-generated prototype into something you can ship and operate — tests, structure, resilience, and scale — using AI agent skills from Clean Code, Refactoring, Release It!, and more. 20 min read 03 How to Refactor a Codebase Buried in Technical Debt A safe, incremental plan for taming a legacy codebase — characterization tests, seams, named refactorings, and boundaries — using AI agent skills from Working Effectively with Legacy Code, Refactoring, Clean Architecture, and more. 18 min read 04 How to Design the Best Possible Architecture for a New App Make the high-leverage architecture decisions right the first time — boundaries, domain model, data, and resilience — using AI agent skills from Clean Architecture, Domain-Driven Design, Designing Data-Intensive Applications, and more. 19 min read 05 Make a Slow App Measurably Faster An engineering playbook for a codebase that ships and earns but has grown slow and tangled — baseline, boundaries, hot paths, the real bottleneck, and the query layer — using AI agent skills from Working Effectively with Legacy Code, Clean Architecture, A Philosophy of Software Design, Refactoring, Release It!, and Designing Data-Intensive Applications. 20 min read

One skill, one command.

Install Pragmatic Programmer, or the whole stack.

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

MIT licensed · Claude, Claude Code, Codex, Cursor, OpenClaw, Hermes · No account

  We build the skills you already use. Now we’ll build yours. See what we build  ·  Book a 15-min call