Episode 1 — The Contract You Forgot You Made cover art

Episode 1

Episode 1 — The Contract You Forgot You Made

Eleven years after shipping two plugins to the WordPress directory, Christopher went back. The code wasn't broken. So what was he going back to fix?

Length
00:08:30
Published
May 14, 2026
Pillar
WordPress Practice
Guests
Frances, Kenji, Iris

“The code wasn’t broken when you went back. The code was working. What you went back to fix wasn’t the code; it was a contract you’d forgotten you’d made.”

— Iris, in this episode

I imported two old plugins out of WordPress.org (WP.org) last week, read them line by line, and didn’t recognise the developer who’d written them. That was me, in January 2015. I just couldn’t stand behind what he’d shipped anymore, so I rewrote them. Thirty-nine bug fixes each. Nothing glamorous — the kind of bugs you wouldn’t ship today but didn’t bother to fix yesterday.

The thing I kept circling wasn’t the code. It was the fact that someone, somewhere, was installing one of those plugins onto a site they cared about. They didn’t know me. They trusted the directory, which meant they trusted whoever put their name in the header. That was me, eleven years ago, promising something I’d forgotten I’d promised.

This episode is the conversation I needed to have about that — a contract I didn’t know I’d signed, and what changes when you finally see it.

To go with this episode, I built a plugin-author check-in checklist — thirty minutes per plugin, on a staging environment, to honour the contract you forgot you made. Download the plugin-author check-in checklist.

The source essay this episode is built from: What You Owe the People Still Running Your Old Code.

Chapter markers

Most modern podcast clients (Apple Podcasts, Overcast, Pocket Casts) surface these as jump-points.

  • 00:00 — Cold open: Eleven years
  • 00:57 — Act 1: A contract I didn’t know I’d signed
  • 02:11 — Act 2: Kodawari and what you can’t walk past
  • 05:10 — The turn: It was a contract you’d forgotten
  • 06:07 — Act 3: What a directory really is
  • 08:00 — Sign-off

In this conversation

  • Christopher — host, author of the source essay, the plugin author with two old packages still installing on sites he’s never seen
  • Frances — peer-founder push: open-source maintenance isn’t promising forever; you didn’t sign the contract you think you signed
  • Kenji — craft philosopher; introduces kodawari (the unreasonable devotion to getting one specific thing right)
  • Iris — archivist; tracks the long record of the WP.org directory, and delivers the turn

The kodawari frame

Kenji brings kodawari into the room — the Japanese word for the unreasonable devotion to getting one specific thing right, independent of whether anyone else thinks it needs doing. That word organised the thing I’d been struggling to name. I wasn’t going back to repay the people who installed the plugins in 2015. I was going back because the gap between who wrote that code and who I am now had become visible to me, and once it was visible I couldn’t keep walking past it.

That’s the kodawari move. You don’t do the work because anyone asked. You do it because you stopped being okay with the gap.

What a directory actually is

The argument Iris pushed me toward is the one I keep coming back to. The WP.org directory looks like a code repository, and from inside it kind of is. From outside it — from the perspective of someone who installs a plugin — it’s a place where contracts get made between strangers. Same artifact, two different things.

If the directory is a code repository, my obligation is whatever I wrote in the readme. If the directory is a place where contracts get made between strangers, my obligation is to whoever shows up trusting the contract. The math doesn’t scale to all fifty-nine thousand plugins in the directory. It does scale to the ones with my name in the header. That’s a question I get to answer for myself, and the answer I landed on is that I’m only prepared to ship under that name if I’m prepared to be the person whose name is in the header. If I’m not, the plugin doesn’t ship under that name.

Cross-episode call-backs

This is the season opener. The thread it plants — the difference between what you signed and what you owe — comes back in episode 2 (the audit conversation), where the same shape shows up in a different room: what the deliverable says versus what the work actually does.

Credits

  • Host: Christopher Ross — voice clone trained on Christopher’s recorded audio, used in the studio with his authorisation
  • Frances, Kenji, Iris: synthesised cast personas, characters in the show
  • Audio production: in-house, Sites I’ve Never Seen studio
  • AI disclosure: see my standing stance on disclosing every use of AI — the cloned host voice and the synthesised cast both fall under it

Listen

Subscribe in your podcast app of choice — the show is on Apple Podcasts, Spotify, Pocket Casts, Overcast, YouTube Music, Amazon Music, and the Podcast Index. If your app asks for a feed URL, the canonical RSS (Really Simple Syndication) feed is thisismyurl.com/feed/podcast/.

Or download the MP3 (audio file) directly.

What to do next

If you have a plugin on WP.org you haven’t looked at in a while, the plugin-author check-in checklist is the thirty-minute version of what this episode is about. If you’d like a second set of eyes on what your check-in turned up, send me a note.

Thanks for listening. — Christopher

Full transcript

Transcript — Episode 0001: The Contract You Forgot You Made

Full accessible transcript of the episode. Speaker labels match the audio. No stage directions, no IPA tags — this is the version for screen-reader and reader audiences.


Christopher: Eleven years. That's how long my code has been installing on sites I've never seen.

I last touched two of these plugins in January, two thousand and fifteen. Last week I imported them out of WordPress dot org, read them line by line, and didn't recognise the developer who'd written them. That was me. I just couldn't stand behind what he'd shipped anymore.

So I rewrote them. Thirty-nine bug fixes each. Nothing glamorous — the kind of bugs you'd refuse to ship today but didn't bother to fix yesterday.

The thing I keep coming back to isn't the code. It's that somewhere, right now, someone is installing one of those plugins onto a site they care about. They don't know me. They trusted the directory. Which means they trusted whoever put their name in the header.

That was me. Eleven years ago. Promising something I'd forgotten I'd promised.

I want to talk about a contract I didn't know I'd signed.

Two plugins on WordPress dot org. Both have my name in the header. Both have been installing on sites I've never seen for eleven years. And until last week, I hadn't looked at the code since I wrote it.

Frances: Christopher, hold on. Before we get into it — what made you go back?

Christopher: Honestly? I don't know. Something about reading my own name in the SVN history and not recognising the work.

Frances: Right, but that's the part I want to push on. You couldn't have known in two thousand and fifteen what those plugins would still be doing in two thousand and twenty-six. The WordPress dot org directory contract is informal at best. Plugin authors disappear all the time. You're talking like you broke a promise. Did you?

Christopher: I think I did.

Frances: To whom?

Christopher: To whoever installed them last week.

Frances: A stranger.

Christopher: A stranger who trusted the directory enough to install code with my name on it.

Kenji: Can I ask something different?

Christopher: Please.

Kenji: Eleven years. That's a specific number. Why now? What happened last month that didn't happen in year three, or year seven?

Christopher: I don't have a clean answer for that.

Kenji: That might be the question worth sitting with.

Frances: Look, I want to come back to the contract question, because I think Christopher's being hard on himself in a way that's not actually fair. Open source maintenance isn't promising forever. You publish something, you maintain it for a while, life moves on. The community knows that.

Christopher: The community knows it. The next person who installs the plugin doesn't.

Frances: Which is why the directory has the "last updated" date. People can read it.

Christopher: Most people don't.

Frances: Whose fault is that?

Christopher: I think we just disagree on what fault means here. You're describing the contract that exists. I'm describing the one I felt I'd signed.

Frances: And those are different.

Christopher: And those are different.

Kenji: This is the kodawari question.

Christopher: Say more.

Kenji: Kodawari is the Japanese word for that thing you can't quite let go of. The unreasonable devotion to getting one specific thing right. It's not about whether anyone else thinks the work needs doing. It's about whether you can keep walking past it.

Christopher: Yeah.

Kenji: What I hear you saying — and Frances, push back on this — is that you walked past those plugins for eleven years and then couldn't anymore. The question isn't "did you owe them maintenance," because Frances is right that you didn't. The question is — what made you finally see the work as something you couldn't walk past?

Frances: I'll tell you what I think it is. Guilt.

Christopher: Maybe.

Frances: I'm not saying guilt is bad. I'm saying — if the thing that moved you wasn't a contract but a feeling, then we're talking about a different story. We're talking about why you went back, not about what you owed.

Christopher: I think both can be true. The contract was real. The contract is what made the guilt available to me. I couldn't have felt guilty about a contract I hadn't signed.

Frances: That's fair.

Iris: May I come in?

Christopher: Of course.

Iris: I've been sitting with this. I want to bring a long view, if I may.

Christopher: Please.

Iris: I track plugins. Both the ones that get maintained and the ones that don't. The WordPress dot org directory currently lists — I checked this morning — roughly fifty-nine thousand plugins. Of those, the number that have been updated in the last twelve months is somewhere under thirty thousand. The remainder are what we politely call "stale."

Frances: That's most of them.

Iris: That's most of them. And of those stale plugins, the number whose original author has come back, eleven years later, and rewritten them to a current standard — well. I'd have to count on my fingers. It is not a common phenomenon.

Christopher: I don't know how to take that.

Iris: Take it as data, for the moment. There is something specific about your case that I'd like to understand. You went back to plugins that — forgive me — almost certainly weren't causing anyone any harm. The download counts aren't massive. Most authors in your position would have either left them alone or quietly removed them from the directory.

Christopher: I thought about removing them.

Iris: What stopped you?

Christopher: The same thing that made me go back, I think.

Iris: Which was?

Christopher: That my name was on them.

Iris: This is the part I want to put a finger on, if you'll allow me. Because I've watched a great many authors not come back. And the thing I see in your case that's different —

Christopher: Go on.

Iris: The code, when you went back to it. Was it broken?

Christopher: Not really. It worked. It did what the readme said it did. It wasn't insecure. It wasn't crashing sites. It was just — old code. Coding standards issues you wouldn't ship today. Dead social-sharing links to services that don't exist anymore. The kind of stuff that wouldn't pass my code review today.

Iris: So the code was working.

Christopher: The code was working.

Iris: Then what you went back to fix wasn't the code.

Christopher: No.

Iris: It was a contract you'd forgotten you'd made.

Christopher: Yeah.

Frances: Huh.

Kenji: That's what I was trying to get at, I think. You went back because the work was finally visible to you as work you couldn't walk past. And the work wasn't the bugs. The work was the contract.

Christopher: Yeah.

Christopher: I think there's something here about what a directory is. The WordPress dot org directory looks like a code repository. From inside it, it kind of is. From outside it — from the perspective of someone who installs a plugin — it's a place where contracts get made between strangers.

Frances: That changes the question.

Christopher: It does. Because if the directory is a code repository, then my obligation is whatever I wrote in the readme. But if the directory is a place where contracts get made between strangers, then my obligation is to whoever shows up trusting the contract. Which is anyone who installs the plugin. Including the person who installed it this morning.

Kenji: That's the version of the argument I think holds.

Christopher: I think so too.

Frances: I'm — partly convinced. The thing I'd still push back on is that you can't scale this. There are fifty-nine thousand plugins. Most of them have abandoned authors. You can't ask all of them to go back. That's not a sustainable expectation.

Christopher: I'm not asking all of them.

Frances: Then what are you asking?

Christopher: I'm asking myself. For the plugins with my name in the header. The math at fifty-nine thousand doesn't matter to that question. The math that matters is — when I put a plugin out, am I prepared to be the person whose name is in the header? And if the answer is no, the plugin doesn't ship under that name.

Iris: That's a clean way of putting it.

Kenji: It also makes the eleven-year question easier, doesn't it?

Christopher: Does it?

Kenji: You went back not because you owed the people who installed it. You went back because at some point you stopped being okay with the gap between who wrote that code and who you are now. The contract was always there. Eleven years ago, you weren't ready to see it. Now you are. The work is just — catching up.

Christopher: Yeah.

Christopher: Eleven years. The code finally caught up to the name in the header.


End of episode.