New Skills! v1.3 brings /pr, /implement-spec, and /retro — Transcript
Full transcript
- 0:00Hello folks, version 1.3 of my skills
- 0:03repo is out and it brings three very
- 0:06important skills that have become
- 0:07central to my workflow. Today I'm going
- 0:09to show you about implement spec. I'm
- 0:11going to show you about PR and I'm going
- 0:13to show you about retro. And retro I
- 0:16think is the one that I've just seen
- 0:19absolutely go nuts on socials. People
- 0:21going crazy for this skill and it has
- 0:24felt incredibly powerful to me too. And
- 0:26the first place I want to start is the
- 0:28implement spec skill. The main flow of
- 0:30my approach for landing huge chunks of
- 0:33work at once is essentially two
- 0:35different entities. You have a spec and
- 0:38then you have the tickets that implement
- 0:40that spec. The spec kind of acts like
- 0:42the place where you're going and then
- 0:44the tickets break that destination down
- 0:47into a set of sessions that you can then
- 0:50run in a single coding agent. If you try
- 0:52to implement the spec all in one coding
- 0:54agent, you would go into the dumb zone
- 0:56of that coding agent, you might end up
- 0:58hitting auto compact. And you know,
- 1:00while that works sometimes, and it is
- 1:02getting better, I still think that
- 1:04breaking things down into individual
- 1:06tickets is just a lot cleaner. Now, the
- 1:08way that you orchestrate those tickets,
- 1:09the way that you give them each to one
- 1:12coding agent has always been a little
- 1:13bit confusing for users. And I've kind
- 1:16of been sort of going back and forth
- 1:18over the way that I recommend you do
- 1:20this. The most annoying and manual way
- 1:23to do this is managing it yourself where
- 1:25you the user say okay uh agent we are
- 1:28going to implement our first ticket. You
- 1:30wait for it to be complete. You clear
- 1:32the context and then you say okay
- 1:34implement ticket two. You wait. You
- 1:36clear the context. You say implement
- 1:38ticket three. You're kind of acting like
- 1:40a for loop there. It's not really
- 1:42workable. So that is what I would
- 1:44describe as the manual loop there which
- 1:46is not much fun. But you can change that
- 1:49by having a deterministic loop where you
- 1:51have a script that reach uh reads each
- 1:53ticket and then runs implements on it
- 1:55itself. This is how I recommend that
- 1:57most people do this because once you've
- 1:58set up your deterministic loop, it's
- 2:00going to run the same way every time.
- 2:02It's very reliable and it's cheap,
- 2:05right? Because you're not using an agent
- 2:06or you're not using a human to run that
- 2:09loop. You just essentially get a script
- 2:11to do it for you. But setting this up is
- 2:13quite complicated and requires a lot of
- 2:16patience as you sort of refine your loop
- 2:18and get it better and better. And so I
- 2:20see this as out of range for beginners.
- 2:22And so I wanted some way of allowing
- 2:26beginners to see not have to manually
- 2:29loop it themselves. And so I decided,
- 2:31okay, why don't we try a middle ground
- 2:34where we have sub agents go through and
- 2:37implement the loop. In other words, an
- 2:38agent does the babysitting instead of a
- 2:41human. This means that all of the
- 2:42tickets will be implemented by sub
- 2:44agents. And this has recently gotten
- 2:47possible because sub aents can
- 2:49themselves spawn sub aents. So before
- 2:52sub agents were kind of a little bit
- 2:54nerfed whereas now they're actually as
- 2:56powerful as orchestrator agents. And so
- 2:58this is what implement spec does is it
- 3:01the agent sits there looking at all of
- 3:03the tickets orchestrating them and then
- 3:05implements them in sub aents. This is I
- 3:08would say worse than doing a
- 3:10deterministic loop because the
- 3:11deterministic loop again it's
- 3:12deterministic. It works the same way
- 3:14every time. But implement spec is a good
- 3:16way to get started with AFK workflows
- 3:19away from keyboard workflows where you
- 3:21step away and it implements the entire
- 3:23spec. Before you use any skill, you
- 3:25should read the entire skill. And it's
- 3:27not particularly long here. There are
- 3:30nine steps in its process and it's got a
- 3:32little bit of reference material just at
- 3:33the top. One crucial thing is it goes
- 3:35for parallelization where it can. And so
- 3:37this says the tickets are not a list of
- 3:39steps. They're a task graph with
- 3:41blocking relationships between them.
- 3:43That means there's always a frontier of
- 3:44tickets that are ready to be grabbed. If
- 3:46we take a look at the steps, we can see
- 3:47it reads the spec and tickets. It does a
- 3:50little bit of exploration in its own sub
- 3:52agent. It creates an integration branch
- 3:55and then it goes and uses implement sub
- 3:57aents to implement each ticket using TDD
- 4:00and using work trees too. Once that's
- 4:02done, it merges its work to the
- 4:04integration branch with a sub aent and
- 4:07then pings off more implement sub aent
- 4:09until all the work is done. And once it
- 4:12the work is done, it goes and calls code
- 4:14review on the integration branch. Then
- 4:16it cleans up all of its work and makes
- 4:18the PR ready for review. So you get a
- 4:20single PR off this huge great big spec.
- 4:23I have been reaching for this a lot more
- 4:25than I thought I would, especially on
- 4:28systems where you haven't set up these
- 4:29deterministic scripts yet, where you
- 4:31don't have your like software factory
- 4:33dialed in. I suppose implement spec has
- 4:36been really really useful. It's been in
- 4:37in progress for a while now, but I
- 4:39thought now's the moment. Let's graduate
- 4:41this so people can use it and fiddle
- 4:43around with it and build their own
- 4:44version of this, too. This is a basic
- 4:46version of how you might implement your
- 4:48own spec. You could do something totally
- 4:50different to this. You could use stacked
- 4:52PRs. You could do all sorts of stuff.
- 4:54And in fact, talking of PRs, one of uh
- 4:56my most used recent skills has to be the
- 4:59PR skill. So, PR skill.md. I've been a
- 5:02huge fan of Dex Hies for a while now. I
- 5:04recently got to meet up with him in
- 5:06person and he has this gorgeous skill
- 5:08called Show Me. What show me does is it
- 5:10helps the user understand the current
- 5:12topic visually with concise diagrams and
- 5:15it uses all of this like uh really nice
- 5:18pseudo code. This looks a little bit
- 5:20garbage, but actually when you see it in
- 5:22the context of a PR, it really makes the
- 5:25PR a lot easier to read and review. PRs
- 5:28are still the main bottleneck for work
- 5:30getting to Maine. And my goal with this
- 5:33PR skill, kind of inspired by Show Me,
- 5:37is to make human review as easy as
- 5:40possible. And in the skill, we provide
- 5:41essentially a template for writing a PR
- 5:44body. That's all the skill does. We
- 5:46first start with a summary based on the
- 5:48kind of show me template which we
- 5:50include in the skill and then we ask for
- 5:53evidence. So before and after. This
- 5:55evidence is an essential part of
- 5:57learning to trust your agent, learning
- 6:00to trust your agents outputs. and
- 6:01actually prompting it to provide
- 6:03evidence often means it runs an extra
- 6:05test or it takes an extra screenshot if
- 6:07it has that ability and it provides you
- 6:10runtime information on that it's actual
- 6:14change is doing what it thinks it's
- 6:15doing without asking for hard evidence
- 6:17it's very easy for agents to say yeah
- 6:19that probably works cuz I've read the
- 6:20code but no verification is something
- 6:22I'm beginning to be really obsessed with
- 6:25especially after my recent interview
- 6:26with Lauren and then the third heading
- 6:28here is merge danger so how dangerous Is
- 6:31this PR going to be to merge? One
- 6:33metaphor I've really like here is, is
- 6:35this a one-way door or is this a two-way
- 6:38door? A two-way door is a door that you
- 6:40can walk back through. In other words,
- 6:41we can easily revert this PR. But a
- 6:44one-way door is a, you know, a PR that's
- 6:46going to do something out in the world.
- 6:49It's going to delete some data or it's
- 6:51going to be expensive in some way to
- 6:53roll back. And then finally, you have
- 6:54blast radius here. So the potential
- 6:56ramifications of the changes. So, if you
- 6:59have a very small blast radius on a
- 7:01two-way door, then, you know, you really
- 7:03don't need to like review that PR very
- 7:05hard. And so, having this at the bottom,
- 7:07probably the, you know, first or second
- 7:09thing the person is going to see is
- 7:11essential. So, for instance, here's one
- 7:13of the PRs in my repo that has been
- 7:15provided by the PR skill. This is
- 7:16essentially merging two algorithms that
- 7:19were basically the same. And we can see
- 7:21the files deleted and the files added in
- 7:23the right context. We understand the
- 7:25functions, the sort of the call stack
- 7:27that's being structured here, but
- 7:28crucially, we have the evidence. We have
- 7:30a before and after on a real entity. So,
- 7:33there's no intro in this one, but
- 7:35afterwards, it adds the intro, which is
- 7:37kind of the behavior that we want here.
- 7:39And finally, we can see that the merge
- 7:40danger is two-way. It's just a pure
- 7:42refactor plus one deliberate behavior
- 7:44change, and the blast radius is small.
- 7:46So, this PR skill is just become
- 7:48absolutely indispensable to my flow. It
- 7:50is also one of the most consistently
- 7:52invoked model invoke skills that I've
- 7:54seen. The you you the user don't have to
- 7:57worry about it at all. It seems to just
- 7:59invoke it every single time, at least on
- 8:01Opus 5.5. So you should just be able to
- 8:03download it and just see your PR bodies
- 8:05get better. And of course, if you
- 8:07already have a PR body skill, then why
- 8:09not just steal what you can from this?
- 8:11Now, before we talk about the retro
- 8:12skill, we should mention that there has
- 8:14been a big change in how my especially
- 8:17grill with docs function. So let's take
- 8:19a look at domain modeling here and
- 8:21domain modeling skill now instead of
- 8:25writing to context.md writes to
- 8:27glossery.mmd. The inspiration for this
- 8:29skill came from DDD came from Eric
- 8:32Evans's book domain driven design. And
- 8:35[snorts] for that I was essentially
- 8:37using a file name based on the concept
- 8:40of bounded context from DDD. And so this
- 8:43used to be context.md like this. But now
- 8:47I've sort of moved away from the DDD
- 8:50style flow. I mean, I still use DDD in
- 8:53all but name, but I wanted a slightly
- 8:56less overloaded term here. Context.md
- 8:59just felt way too vague. It didn't sort
- 9:02of trigger the agent to pull it in at
- 9:03the right moment. And for users, it was
- 9:06pretty confusing. I also ended up
- 9:07reducing the amount of stuff in glossery
- 9:10or in context.md until it was literally
- 9:12just a glossery. So there really is no
- 9:14point anymore. glossery.mmd is now what
- 9:16we're going this is also updated
- 9:17everywhere and so loads of my skills
- 9:20rely on seeing a glossery.mmd in order
- 9:23to behave properly in order to use the
- 9:24domain language at all points and so you
- 9:27will need to definitely update this.
- 9:29There's no other behavior changes about
- 9:30the skill. It's really literally just a
- 9:32file name change and I think that this
- 9:35is one that folks have been wanting for
- 9:36a while. So I'm glad to ship it. But now
- 9:38let's take a look at the retro skill and
- 9:40let's actually do it by running it. What
- 9:43I noticed with my skill set is that I
- 9:46impose a lot I ask a lot of you the
- 9:49user. And what I was kind of asking of
- 9:52you is you were responsible for overtime
- 9:58making changes to the repo that would
- 9:59improve it. In other words, I was asking
- 10:01you to manage your agents.mmd to manage
- 10:04your skills, to make sure that your repo
- 10:06was token efficient, to make sure that
- 10:08your environment was good and safe for
- 10:10the agent to write code in, that you had
- 10:12good lint rules, that you had good
- 10:13navigation. And I realized that I
- 10:15personally was doing a lot of stuff to
- 10:17my repos to my agents in order to make
- 10:20them easier for me to work with to make
- 10:22them more performant. And so I realized,
- 10:24why don't I bundle that up into a skill?
- 10:27And this is what retro does. It is short
- 10:29for retrospective. You run it on a
- 10:32coding agent session, either the current
- 10:34one or, you know, 10 that I've currently
- 10:37got or let's say the previous one, and
- 10:39it will suggest improvements for next
- 10:41time. The cool thing about actually
- 10:42reading real sessions here is that it's
- 10:45able to look at what happened with the
- 10:48agent. It's able to see the
- 10:50inefficiencies that maybe the agent
- 10:51actually hides from. I really like this
- 10:53post from Andre Retro by Mogers. Game
- 10:55changer. My agents are bumping into all
- 10:57kinds of problems. that went undetected.
- 11:00But due to persistence, the features
- 11:02still got built one way or another. In
- 11:03other words, the agent doesn't complain,
- 11:05I think, as much as it should, and
- 11:08doesn't try to fix its own mistakes. You
- 11:11kind of need to get another agent to
- 11:13look back on those sessions and see
- 11:14where it went wrong and see how to help.
- 11:16And so, this is what our agent has found
- 11:19here. The agent ran an irreversible
- 11:20public action before you picked a fix.
- 11:23The agent found why the 1.3.0 release
- 11:25was missing and then it ran a release
- 11:27without actually asking. This is why, by
- 11:29the way, when you actually look at the
- 11:30releases, you'll see there's no 1.3.0
- 11:33release, only a 1.3.1 release. You know,
- 11:35Claude kind of screwed this up. I don't
- 11:36honestly care that much about it, so I
- 11:39don't mind this one in my context. We
- 11:41can see that this particular repo in has
- 11:43no actual guard rail. So, there is a
- 11:45PNPM check script, but nothing actually
- 11:47runs it. So, it's suggesting adding a CI
- 11:50pipeline here. In here, we can see
- 11:52there's context loss happening between
- 11:54compactions in long sessions. So, I use
- 11:57animatics to kind of create my videos or
- 12:00early drafts of them now. And it's
- 12:02saying that there's some loss when you
- 12:04compact. And so, it's saying move some
- 12:06of the repeated instructions into an
- 12:08animatic skill. This is definitely a
- 12:10really good one, and I'm definitely
- 12:12going to implement that for sure. Oh,
- 12:13look at this one. A custom CLI that I've
- 12:15created for my course video manager
- 12:17wastess tokens. So, Retro looks at token
- 12:20inefficiency too. Wiki, which is another
- 12:22custom CLI, is not on path locally and
- 12:24Wiki AI hero has gaps. So, Retro is
- 12:27merciless. It will look at your actual
- 12:30sessions and see what is going on and it
- 12:32will pretty much always find ways to
- 12:34improve. Now, what I'd say with Retro is
- 12:36you want to use your human judgment when
- 12:39you look at these. I know, for instance,
- 12:41the thing that it thinks is most serious
- 12:43is actually not that bad. It's just a
- 12:46release. I can always create and cut new
- 12:48releases. And so the way retro works is
- 12:50it's designed to be human in the loop.
- 12:52It's not designed to just keep creating
- 12:54these fixes random. Pretty much everyone
- 12:56when I show them this, they go, "Ooh,
- 12:58I'd love to automate this." No, you
- 12:59don't want to automate this. Automating
- 13:02this means that the agent will get
- 13:03itself into a loop where it continually
- 13:06finds false positives. It continually
- 13:08tries to fix things and you'll end up in
- 13:10this weird trajectory where it just
- 13:12takes the repo and your agent into a
- 13:14place it shouldn't really go. So, I
- 13:16recommend you run retro on a sampling of
- 13:19your agent sessions. Every time you've
- 13:21got a free moment and you realize, "Oh,
- 13:23I haven't run retro in a while." Just
- 13:25try getting it to run through your most
- 13:27recent sessions. Maybe a session that
- 13:29has gone wrong, let's say, or you feel
- 13:31the agent has done something weird, and
- 13:33retro will usually find a fix. We can
- 13:35see that inside the steps in the retro
- 13:37skill, it has several categories for
- 13:39improvements that it looks for. How easy
- 13:41is your codebase to navigate? Are there
- 13:44automated checks that we could add?
- 13:46Could we add coding standards for the
- 13:47automated reviewer to enforce? How
- 13:50healthy is the global agents.mmd? Is the
- 13:52tool economy any good? Are there any
- 13:54noops in the instructions in steering
- 13:56files? Does the agent have access to all
- 13:58the information it needs? Overall, I've
- 14:00seen my token efficiency and just the
- 14:02quality of work that I've been able to
- 14:04produce massively increase by running
- 14:06retro regularly. And if you want to see
- 14:08the quality of your work increase too,
- 14:10then I recommend you take my AI coding
- 14:12crash course which is on aihero.dev. I'm
- 14:14updating this today with a new lesson
- 14:16focusing on implement spec. And if you
- 14:17want to take control of your coding
- 14:19agent and utilize my skills better, then
- 14:21this is the place. But folks, thank you
- 14:23so much for following along. Hopefully
- 14:24you enjoy Skills V1.3. Enjoy seeing the
- 14:28uncomfortable truth of how bad your
- 14:30agent sessions are with retro.
About this transcript
This page contains the full transcript of New Skills! v1.3 brings /pr, /implement-spec, and /retro by Matt Pocock, generated from the public captions YouTube serves with the video. The transcript has 2,909 words across 400 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to choose a caption track available on the video.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, caption language selection, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.