<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:thoughtbot="https://thoughtbot.com/feeds/">
  <title>Giant Robots Smashing Into Other Giant Robots</title>
  <subtitle>Written by thoughtbot, your expert partner for design and development.
</subtitle>
  <id>https://robots.thoughtbot.com/</id>
  <link href="https://thoughtbot.com/blog"/>
  <link href="https://feed.thoughtbot.com" rel="self"/>
  <updated>2026-04-08T00:00:00+00:00</updated>
  <author>
    <name>thoughtbot</name>
  </author>
<entry>
  <title>Sixty-six commits and the commands that didn't survive</title>
  <link rel="alternate" href="https://thoughtbot.com/blog/sixty-six-commits-and-the-commands-that-didnt-survive"/>
  <author>
    <name>Rob Whittaker</name>
  </author>
  <id>https://thoughtbot.com/blog/sixty-six-commits-and-the-commands-that-didnt-survive</id>
  <published>2026-04-08T00:00:00+00:00</published>
  <updated>2026-04-07T11:58:20Z</updated>
  <content type="html">&lt;h2 id="sixty-six-commits-and-the-commands-that-didn39t-survive"&gt;
  
    Sixty-six commits and the commands that didn’t survive
  
&lt;/h2&gt;

&lt;p&gt;Last week, I wrote about &lt;a href="https://thoughtbot.com/blog/i-copied-a-prompt-and-built-a-management-system-in-a-week"&gt;building a management system
with Claude Code in a week&lt;/a&gt;. That post covered
the foundation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;meeting transcripts,&lt;/li&gt;
&lt;li&gt;daily logs,&lt;/li&gt;
&lt;li&gt;a &lt;code&gt;/morning&lt;/code&gt; command that pulls everything together.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By the end of week one, I had something useful. Week two
is where I found out what “useful” actually meant.&lt;/p&gt;

&lt;p&gt;Sixty-six commits in seven days. Fifteen commands created.
Three deleted. The system grew, then pruned itself.&lt;/p&gt;
&lt;h2 id="tuesday-the-explosion"&gt;
  
    Tuesday: the explosion
  
&lt;/h2&gt;

&lt;p&gt;Tuesday was the most productive day I’ve had with this
system. I made twenty-eight commits. The morning started
with refactoring my goals into concrete project files. By
lunchtime, I’d created &lt;code&gt;/inbox&lt;/code&gt;, a command to process my
Things inbox one item at a time, following the GTD
clarify-and-organise workflow.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;/inbox&lt;/code&gt; command was ambitious. It identified whether
an item was a project or a single action. It created
Things tasks, support files, and Trello cards in one
operation. It detected duplicates. It had a &lt;code&gt;--dry-run&lt;/code&gt;
flag. By the afternoon I’d:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;added single-item processing,&lt;/li&gt;
&lt;li&gt;an “already-actioned” flow for items I’d dealt with but
hadn’t tracked,&lt;/li&gt;
&lt;li&gt;and inline project creation, so I didn’t have to break
out of the processing loop.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then came &lt;code&gt;/delegate&lt;/code&gt;, a Slack-based delegation command
that sent a message, created a waiting task, and set a
follow-up deadline. And &lt;code&gt;/waiting&lt;/code&gt;, a simpler version for
things that didn’t need a Slack message.&lt;/p&gt;

&lt;p&gt;Here’s what &lt;code&gt;/waiting&lt;/code&gt; looked like:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Waiting Command&lt;/span&gt;

Create a "Waiting for" task to track a delegated
item or pending response.

&lt;span class="gu"&gt;## Arguments&lt;/span&gt;
&lt;span class="p"&gt;
-&lt;/span&gt; &lt;span class="sb"&gt;`&amp;lt;person&amp;gt; &amp;lt;topic&amp;gt;`&lt;/span&gt;: Create a waiting task
&lt;span class="p"&gt;-&lt;/span&gt; No arguments: Prompt for person and topic

&lt;span class="gu"&gt;## Instructions&lt;/span&gt;

&lt;span class="gu"&gt;### Step 1: Parse Arguments&lt;/span&gt;

If arguments provided:
&lt;span class="p"&gt;-&lt;/span&gt; First word = person
&lt;span class="p"&gt;-&lt;/span&gt; Remaining words = topic

&lt;span class="gu"&gt;### Step 2: Gather Optional Details&lt;/span&gt;
&lt;span class="p"&gt;
1.&lt;/span&gt; Deadline: When to follow up if no response?
   Default: 1 week from today
&lt;span class="p"&gt;2.&lt;/span&gt; Project: Add to a project?

&lt;span class="gu"&gt;### Step 3: Create Waiting Task&lt;/span&gt;

Use &lt;span class="sb"&gt;`mcp__things__add_todo`&lt;/span&gt; with:
&lt;span class="p"&gt;-&lt;/span&gt; title: "Waiting for [person] to respond RE: [topic]"
&lt;span class="p"&gt;-&lt;/span&gt; tags: ["Waiting"]
&lt;span class="p"&gt;-&lt;/span&gt; deadline: Selected deadline
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Twenty lines of instructions. That’s all it takes to
codify a GTD pattern that I repeat several times a week.
The command doesn’t do anything clever. It only makes sure
the task title, tag, and deadline are consistent every
time.&lt;/p&gt;
&lt;h2 id="wednesday-real-work-surfaces-real-needs"&gt;
  
    Wednesday: real work surfaces real needs
  
&lt;/h2&gt;

&lt;p&gt;Wednesday brought four meetings: a candidate interview,
two 1:1s, and a scheduling sync. The meeting transcripts
needed processing. The Coverage Sync document needed
updating. I built &lt;code&gt;/covsync&lt;/code&gt;, a command that scans recent
meeting notes and extracts topics for the weekly Coverage
Sync document.&lt;/p&gt;

&lt;p&gt;The difference between &lt;code&gt;/covsync&lt;/code&gt; and &lt;code&gt;/inbox&lt;/code&gt; lies in
their origins. &lt;code&gt;/covsync&lt;/code&gt; emerged because I was sitting in
front of a Coverage Sync document that I needed to fill
out. &lt;code&gt;/inbox&lt;/code&gt; emerged because I should have a command for
it.&lt;/p&gt;
&lt;h2 id="the-weekend-brave-new-work"&gt;
  
    The weekend: Brave New Work
  
&lt;/h2&gt;

&lt;p&gt;On Sunday, I read Aaron Dignan’s &lt;a href="https://www.bravenewwork.com/"&gt;Brave New Work&lt;/a&gt;
and started applying it. I created project files for three
initiatives:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;defining Fusion’s purpose,&lt;/li&gt;
&lt;li&gt;improving investment time visibility,&lt;/li&gt;
&lt;li&gt;and AI ethics guidelines.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each one started with a tension, something that felt wrong
about how the team operated, and a plan to address it
through the team, not for the team.&lt;/p&gt;

&lt;p&gt;That was the system doing something I hadn’t planned. It
wasn’t only tracking my work. It was giving me a place to
think about the kind of leader I wanted to be. A project
file that starts with “the team will define their own
purpose” is a different artefact from a task that says
“write a purpose statement.”&lt;/p&gt;
&lt;h2 id="monday-the-pruning"&gt;
  
    Monday: the pruning
  
&lt;/h2&gt;

&lt;p&gt;By Monday, I had too many commands. &lt;code&gt;/inbox&lt;/code&gt; was the worst
offender. It tried to handle the full GTD workflow in a
single skill and had become unwieldy. I deleted it. I
deleted &lt;code&gt;/project&lt;/code&gt; too. Both tried to codify processes
that worked better as conversations.&lt;/p&gt;

&lt;p&gt;I also rewrote the commit message guidelines. The old
version said, “focus on why, not how.” The new version
gave a specific structure: &lt;code&gt;Before&lt;/code&gt;, &lt;code&gt;We wanted&lt;/code&gt;, &lt;code&gt;We
did&lt;/code&gt;. Every commit since has followed this pattern. It’s a
small thing, but it lets me read the git history like a
journal.&lt;/p&gt;
&lt;h2 id="what-i-learned"&gt;
  
    What I learned
  
&lt;/h2&gt;

&lt;p&gt;The commands that survived week two share a trait: they do
one thing, and I repeat it often enough to want
consistency. &lt;code&gt;/waiting&lt;/code&gt; creates a task with the right
title format, tag, and deadline. &lt;code&gt;/covsync&lt;/code&gt; gathers
meeting notes into a specific document format. &lt;code&gt;/morning&lt;/code&gt;
assembles a briefing from five data sources.&lt;/p&gt;

&lt;p&gt;The commands that died tried to be clever. &lt;code&gt;/inbox&lt;/code&gt; tried
to handle every possible inbox item. &lt;code&gt;/project&lt;/code&gt; tried to formalise something that worked
better as a conversation. They were frameworks for
hypothetical work rather than tools for actual work.&lt;/p&gt;

&lt;p&gt;Sixty-six commits in a week is a lot. But the system is
smaller now than it was on Tuesday. That feels right. The
value isn’t in the number of commands. It’s in knowing
which ones to keep.&lt;/p&gt;

&lt;p&gt;If you’re building something like this, start with the
commands you’d use today. Not the ones you think you’ll
need.&lt;/p&gt;

&lt;aside class="related-articles"&gt;&lt;h2&gt;If you enjoyed this post, you might also like:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://thoughtbot.com/blog/theme-based-iterations"&gt;Theme-Based Iterations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://thoughtbot.com/blog/retrospective-fashionopoly"&gt;Retrospective: Fashionopoly&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://thoughtbot.com/blog/this-week-in-open-source-5"&gt;This week in open source&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/aside&gt;
</content>
  <summary>In week two of building a management system with Claude Code, I created fifteen commands in a day. By the end of the week, I'd deleted three of them.
</summary>
  <thoughtbot:auto_social_share>true</thoughtbot:auto_social_share>
</entry>
</feed>
