---
title: "Discussion on \"Don't Repeat Yourself: the second copy is the bug\" | Hashnode"
description: "Discussion on \"Don't Repeat Yourself: the second copy is the bug\". I watched a team spend a fortnight arguing about a helper function. Six callers, four boolean flags, a name that had been accurate for the first caller and never since. Everyone agreed it was fine bec"
url: "https://hashnode.com/posts/don-t-repeat-yourself-the-second-copy-is-the-bug/6abb71d1a5ec1a600edd48cc"
---

[Feed](https://hashnode.com/feed) /

Discussion

# [Don't Repeat Yourself: the second copy is the bug](https://prickles.hashnode.dev/don-t-repeat-yourself-the-second-copy-is-the-bug?utm_source=hashnode&utm_medium=feed)

I watched a team spend a fortnight arguing about a helper function. Six callers, four boolean flags, a name that had been accurate for the first caller and never since. Everyone agreed it was fine bec

Sep 29 · 3 min read · prickles.hashnode.dev  
Read the article

-   [#clean-code](https://hashnode.com/tag/clean-code)
-   [#software-engineering](https://hashnode.com/tag/software-engineering)

## Written by

[Adam Lewis](https://hashnode.com/@nark3d)

@nark3d · Bedford, UK

  
[View profile](https://hashnode.com/@nark3d)

Product Engineer/Architect navigating the AI revolution

I'm a working software engineer. Most of what I write comes from the same place: code is easy to generate now and just as easy to make unmaintainable, and the old engineering habits matter more for it, not less. prickles.org is where I collect those habits as short, specific tenets — guard clauses, screaming architecture, verifiable specs, and the rest. If something here is useful, that's where the full set lives.

## Responses 1

Markdown supported · ⌘↵ to post

[Oliver Zehentleitner](https://hashnode.com/@oliver-zehentleitner)

[Oct 11](https://hashnode.com/posts/don-t-repeat-yourself-the-second-copy-is-the-bug/6abb71d1a5ec1a600edd48cc/comment/6acb6e082b85c3fa4453f15c)

This gets even more interesting with coding agents.

A second copy is no longer just maintenance debt. It can become a second source of truth that an agent confidently follows after the original has changed.

I've seen the same rule copied into CLAUDE.md, AGENTS.md, tool-specific config and project docs. Keeping those synchronized is already hard for humans; agents just make the stale copy actionable.

So I increasingly think DRY applies to knowledge and instructions at least as much as it does to code: one canonical source, references everywhere else.
