25 agent skills to improve your workflow in GitHub Copilot | Matt Pocock | GitHub Copilot Day — Transcript
Full transcript
- 0:05I'm extremely delighted to be here and
- 0:08I've been somehow come into possession
- 0:11of the most or the second most popular
- 0:13skills repo in the world. I'm coming to
- 0:17you from sunny Oxfordshire right now and
- 0:20I'm going to introduce to you to the
- 0:22skills repo and also maybe look at a
- 0:25couple of new things that are coming to
- 0:26the skills repo and how you can apply
- 0:28those in GitHub copilot. So, first of
- 0:30all, let me show you the repo. We are up
- 0:31to around 259K
- 0:33stars, which is fairly wild to me. I
- 0:36never really thought we would get there.
- 0:38And the place we're going to start is in
- 0:41the main flow here. So, the idea of
- 0:44these skills is you can really ship any
- 0:47size of work that you want to. And the
- 0:49place we pretty much always start is
- 0:51with this grill with docks skill. For
- 0:54those who haven't used my skills before,
- 0:57this is essentially a way to align
- 1:00yourself with the agent. And it means
- 1:02that like it's so often that you will
- 1:05get the agent and you will look at the
- 1:08work that they've done and they will
- 1:10just have not produced the thing that
- 1:12you want them to. And so doing a kind of
- 1:15preession grilling kind of before the
- 1:17agent does any work whatsoever I found
- 1:20has been absolutely essential. And this
- 1:22is what that looks like in GitHub
- 1:24Copilot. So if we head over to the
- 1:27terminal here, I have been doing some
- 1:30actual real work on my repo this
- 1:32morning. My repo is a course video
- 1:34manager where I handle all of my video
- 1:36editing. I manage all of my course
- 1:38videos. And let's take a look at what
- 1:40that actually looked like. So what I did
- 1:42first of all is I use GitHub issues to
- 1:45coordinate all the things I want to
- 1:47change about the repo itself. This means
- 1:50that keeping those outside of the repo,
- 1:52I just get a lot more value in pumping
- 1:54those into uh automated loops, in
- 1:57passing them directly to agents, and
- 1:59sometimes even just triggering them via
- 2:01labels. But that's kind of outside the
- 2:03scope for today. But what that looks
- 2:05like in GitHub Copilot is it means I can
- 2:07just go into issues. I could press W
- 2:09here to open up a work tree and I ended
- 2:11up inside this work tree here. So this
- 2:14little example, if I press enter to go
- 2:16in, what happens is I just literally say
- 2:18grill with docs issue 1612. And this
- 2:21issue was one that I actually needed to
- 2:23fix. It's basically adding something
- 2:25into the CLI that comes served with this
- 2:28uh course video manager. Now what
- 2:30happened first is it goes and does an
- 2:32exploration in a sub agent. Very nice.
- 2:34And once it's done the exploration, once
- 2:36it understands what it wants to grill me
- 2:38about, then it begins asking its
- 2:41questions. And so these questions here
- 2:42supported hierarchy selectors. So the
- 2:45problem here is that I've got an entity
- 2:48that I want to fetch called a beat. And
- 2:50that beat is attached to videos, but it
- 2:53wants to be able to search not only on
- 2:55videos, but on lessons where there are
- 2:57multiple videos and on sections where
- 2:59there are multiple lessons beneath that.
- 3:01And so it says, okay, both selectors
- 3:03mutually exclusive. I'm going to um use
- 3:06a dictation tool to just answer these
- 3:09questions fully because I kind of
- 3:10prepped a little bit for this. So I know
- 3:11what I'm doing. Yeah, I think we should
- 3:13use um all three supported hierarchy
- 3:15selectors. I think using the
- 3:18deterministic hierarchy order makes
- 3:19sense. And then videos with an empty
- 3:22plan. I think we can just exclude them.
- 3:24I don't think we need to add any kind of
- 3:26uh extra signal in there. So now that's
- 3:30gone in. I'm just going to press return
- 3:31there. And it's now going to ask me the
- 3:33next round of questions. In other words,
- 3:36what grill with docs is doing is it's
- 3:38pushing out the frontier of these
- 3:40questions and we're reaching alignment
- 3:43slower and slower or rather faster and
- 3:45faster and faster. So, it's gone and
- 3:47kicked off another explore agent and
- 3:49while it's kicking off the explore
- 3:50agent, it's going to ask me some more
- 3:52questions. This level of alignment
- 3:54basically means that you and the agent
- 3:55are reaching a shared understanding
- 3:57together. You are figuring out where
- 4:00you're going together. And this is
- 4:01really useful in situations where you
- 4:04have lots of unknown unknowns where you
- 4:06don't quite know where you're going. And
- 4:08so I absolutely love this. But then what
- 4:11happens next? What do you do after
- 4:13you've done a grilling session? Well,
- 4:15let's take a look at what happened next.
- 4:17So in my real version here, what I did,
- 4:20this is fairly long chat history. We did
- 4:22our grilling session. It did a bunch of
- 4:25asked the user a bunch of questions,
- 4:26asked the user more questions and then
- 4:28it kicked off and actually implemented
- 4:30it. So what grill we or what grill with
- 4:33docs does is it takes that set of
- 4:35questions that it asked you and then
- 4:37tries to reach a shared understanding
- 4:39with you. And then what we end up with
- 4:41is a nice little pull request. So if I
- 4:43head into the PR itself, I've done a
- 4:46little trick actually in the PR which
- 4:48I'm rather proud of and is actually not
- 4:50my trick, it's somebody else's. So, if
- 4:52we take a look at uh where was the PR
- 4:55here? It was uh add
- 4:59this one. Add bulk section and lesson
- 5:02beat lists. Now, this PR body probably
- 5:05looks rather nice to you. What we have
- 5:08is we have this rather nice little diff
- 5:11showing exactly what has changed about
- 5:13the CLI. You have just this very small
- 5:16amount of preserves the current compact
- 5:19uh excludes uh archive beats, lessons,
- 5:21etc. And we have a nice little mermaid
- 5:23diagram which we can open up here. So we
- 5:25see that sections, okay, sections
- 5:27contain lessons that have a fractional
- 5:28order. Lessons contain videos and we can
- 5:31access those with the lesson. And then
- 5:33videos contain the beats with their
- 5:34fractional order. You know, this is a
- 5:36real application. There's stuff
- 5:37relatively complex here. And we can dive
- 5:39into this mermaid diagram and this diff
- 5:42and understand it a lot better. And the
- 5:44thing that's firing here, the thing
- 5:46that's making this look nice is not my
- 5:49skill. Actually, I'm going to shout out
- 5:51Dexter Horthy at Human Layer Skills
- 5:54who's written a brilliant skill called
- 5:55Show Me. Helps the user understands the
- 5:58current topic visually with concise
- 6:00diagrams, code shaped sketches, and
- 6:02focused HTML artifacts. I mean, just
- 6:04look at this stuff.
- 6:06This is basically a really really nice
- 6:09set of tools for understanding how code
- 6:12changes. we have a pseudo code. Um like
- 6:15if you have changes to an algorithm
- 6:17that's relatively complicated, we can
- 6:19show it as pseudo code. We can show
- 6:21runtime control flow as a call tree
- 6:23here. This UI structure one is amazing
- 6:25for front-end components because it
- 6:27shows exactly where each component is.
- 6:30It can sort of show stuff changing
- 6:32across different components and
- 6:35different files. And then we have
- 6:36mermaid diagrams of course which GitHub
- 6:38handles naturally. And we have file
- 6:40responsibility and all that stuff. The
- 6:42one I really like is diff. So using diff
- 6:45for component changes, for file layout
- 6:48changes, for call tree and call stack
- 6:49changes. And what this skill does is it
- 6:52really encourages the agent to push
- 6:55towards using these uh sort of diff
- 6:58views instead of writing a bunch of
- 7:00stuff in text. And so the nice thing
- 7:02about this PR is that it's really short
- 7:04to read. You know, there's less than 100
- 7:06words here. And once you've dived in to
- 7:08understand the mermaid diagram, you dive
- 7:09in to understand the diff, it's pretty
- 7:11nice. And so as part of this skill or
- 7:13part of this session here, which is uh
- 7:17back here, at some point in the session,
- 7:19I said, okay, use show me to create the
- 7:21PR. Now, what happens next? So, one
- 7:26thing I'm really interested in is sure,
- 7:28you've got this PR, but how do we make
- 7:30sure that before the human gets to this
- 7:32PR, how do we make sure that this PR is
- 7:36of high enough quality that we can
- 7:38really um guarantee that the user's time
- 7:41is not wasted, right? Because
- 7:45I just hate and this is something that
- 7:47comes up again and again and again when
- 7:48I work with teams and try to get their
- 7:50processes better. Like so many teams are
- 7:54going, okay, PRs are now the bottleneck.
- 7:56How do we get through the enormous
- 7:58amount of PRs that we're seeing? And
- 8:00sure, we can improve the DX, right? We
- 8:02can improve this view to make sure that
- 8:04it's as easy to review as possible, but
- 8:07we also need to make sure that the code
- 8:08itself is of high enough quality. And so
- 8:11for that, I recommend using my code
- 8:13review skill. So after implementation, I
- 8:16recommend running this code review
- 8:17skill. It's somewhere in the history
- 8:19here. And this code review skill, what
- 8:22it does, there you go. There's the show
- 8:23me that we had before. What code review
- 8:26does is it first figures out what you're
- 8:29diffing against, what has changed, and
- 8:31it's using origin main as the fix point
- 8:33here. It then searches for any um coding
- 8:37standards that you've got inside your
- 8:38repo. You can see GitHub Copilot
- 8:40searching for the coding standards here.
- 8:42It's reading the claw.md files and it
- 8:45now does two things. it spawns a sub
- 8:48agent to check all those coding
- 8:51standards. So it's checking whether the
- 8:53actual um code that was implemented
- 8:56corresponds to the stuff you've written
- 8:58that you know we need to do it this way
- 9:01we need to do it X way and I have a list
- 9:03of coding standards that I keep in my
- 9:05repo that I append to when things go
- 9:08wrong and we'll talk about that in a
- 9:09minute. Then it's also doing a spec
- 9:12check. So it's doing a check against
- 9:14what I actually specified using this
- 9:16conversation history making sure that
- 9:18the thing that was built is actually the
- 9:21thing that we wanted. And what this
- 9:22means is because we're doing these in
- 9:24sub aents these are clean context
- 9:26windows. It means that the agent drops a
- 9:29lot of its preconceptions. We get a new
- 9:31trajectory in the conversation and is
- 9:34often able to surface stuff that you
- 9:35hadn't considered before. And so looks
- 9:38like our spec came back with no
- 9:40findings. That's nice. and standards.
- 9:41There's one judgment call duplicated
- 9:43beat learning goal relation
- 9:45configuration in DB beat services
- 9:47operations. Okay, interesting. If we go
- 9:49into GitHub copilot, we can see that
- 9:51this was created as a commit here. So,
- 9:54dduplicate beat relation query. Let's
- 9:56review here and we can see that okay,
- 9:59what it did was before we had a bit of
- 10:02duplicated configuration between two
- 10:03calls and it turned that into an as uh
- 10:07kind of object here to figure that out.
- 10:09That's nice. That's a nice little
- 10:11change. And all of that happens. Code
- 10:13review happens before the user goes to
- 10:16review. I think there's this prevailing
- 10:18idea with uh AI code review that the
- 10:22code review should then go to the human
- 10:24to figure out what should change next or
- 10:27whether we should actually implement
- 10:29these things. In other words, the output
- 10:30of most code review skills is comments.
- 10:33I believe that code review is kind of
- 10:35part of the implementation flow and so
- 10:37it's kind of like a traditional red
- 10:38green refactor. The implementer agent is
- 10:41responsible for doing the red green like
- 10:43just getting the thing working and then
- 10:45the refactor is done by these review
- 10:47agents that I've been working with. So
- 10:49that means we end up with a PR that is
- 10:51pretty nice to review. And actually
- 10:53looking down the code here, I can see
- 10:56okay, there's something that is sort of
- 10:58stressing me out a little bit. It's not
- 11:00anything to do with a command here or
- 11:02any of this stuff. I just had a little
- 11:04look and I realized, okay, this where is
- 11:07this? this RPC layer here. I've got a
- 11:10feeling that this is not very type-
- 11:11safe. Had a little look inside the code
- 11:13and I realized ah that's pretty gross
- 11:16actually. I really don't like that. And
- 11:18so what I've realized is I want to I
- 11:20don't want to block this PR but as part
- 11:22of this PR merging or maybe uh in a
- 11:25stack I want to take a look at that work
- 11:28take a look at this code and maybe think
- 11:31about improving the architecture of it.
- 11:33And for that we have a lovely lovely
- 11:36skill which is in the upkeep section
- 11:38which is called improve codebase
- 11:40architecture. What this skill does is it
- 11:43takes a look at your repo and you can
- 11:46give it a little nudge for the things
- 11:47you want it to take a look at. And what
- 11:50it does is it gives you a report based
- 11:53on the things that it thinks you should
- 11:54change. And this report can be
- 11:56incredibly valuable. So if we take a
- 11:59look at the report that ours generated I
- 12:01think it's this one actually. Apologies
- 12:02for the sudden switch to light mode. Let
- 12:04me take a look at the um
- 12:07actual
- 12:09uh session which was inside improve
- 12:11codebase architecture planning. Now what
- 12:13I did was I called this with I want you
- 12:15to take a look at the recent PR and see
- 12:17if you can improve anything related to
- 12:18the RPC. Maybe make things more type-
- 12:21safe. I'm not quite sure of the
- 12:22architecture around that area. I want
- 12:23you to take a look and offer some
- 12:25suggestions. This code is stuff that I
- 12:27haven't really authored myself. I've
- 12:28been kind of letting the AI run wild.
- 12:30I'm sure that folks have a have a strong
- 12:33sense of what that feels like. An
- 12:35improved codebase architecture here,
- 12:36what it produces is a very nice little
- 12:39diagram. The first thing it's saying is
- 12:41okay, these are its recommendations down
- 12:44here. Check every remote call.
- 12:46Interesting. So, it flags up the uh
- 12:49exact lines that it's looking for here
- 12:51and it's saying the problem. The remote
- 12:53adapter module is shallow at the scene.
- 12:55Each adapter checks calls that it has.
- 12:57It does not report a missing call. The
- 12:59final cast tells Typescript that the
- 13:00adapter has every domain call. Now, this
- 13:03is pretty gnarly language that it's
- 13:05using here. And for this gnarly
- 13:07language, I actually have another skill
- 13:09that I really like. In fact, there's two
- 13:10skills. There is my skill, but I'm
- 13:12actually going to shout out someone
- 13:13else's skill called uh PTO's skill. And
- 13:17PTO here is a phenomenal skill writer
- 13:21and this is one you absolutely have to
- 13:22have in your library which is it
- 13:26basically takes AI text and it unslops
- 13:28it. So it turns it into really beautiful
- 13:32I maybe not sure about beautiful but it
- 13:35takes out all of the AI tells from your
- 13:38work and it means that horrible sort of
- 13:40like um garbage like this the remote
- 13:43adapter module is shallow at the seam
- 13:45you can actually get it to write it in
- 13:46much planer language. So, I strongly
- 13:48recommend that if you're interested in
- 13:50an unsloped skill. However, I do, you
- 13:52know, I do understand what it means and
- 13:54I do like this idea. Okay, we can just
- 13:56reduce make it a bit more simple here
- 13:59with there's a little bit down the
- 14:00bottom here that I also liked as well.
- 14:02So, this is sort of a deep module coming
- 14:04out from a lots of shallow modules. So,
- 14:06what I did was I decided, okay, let's
- 14:08actually implement that. Now, what is
- 14:10implementing something this complicated
- 14:13look like? Because the previous one I
- 14:15happen to know sort of the relative
- 14:17scope of what we were trying to do. I
- 14:19knew that we could walk through it just
- 14:22in a single session. We wouldn't need to
- 14:25um do it over multiple sessions. In
- 14:27other words, we just did grow with docs,
- 14:29then we implemented it and then we used
- 14:31code review at the bottom. But for
- 14:33things that might cross over multiple
- 14:35sessions or might spiral out of control
- 14:37in terms of the size, then I recommend a
- 14:40different approach. You can do grill
- 14:41with docs and or in our case we've kind
- 14:44of got something pretty workable
- 14:45already. We can go improve codebase
- 14:47architecture and then turn that into a
- 14:50spec. Now the point of a spec is if we
- 14:53take a look at our GitHub issues in
- 14:55here, we can take a look at this spec
- 14:57that I created which is uh I think it is
- 15:02here. Make the CVM RPC call mappings and
- 15:06forwarding type save. What I ended up
- 15:08doing was I turned that really nice um
- 15:12sort of diagram here, this uh spec of
- 15:14what was supposed to be done and I
- 15:16turned it into a proper spec where we
- 15:18had user stories. We have a solution
- 15:20here and a problem as well as a bunch of
- 15:22implementation decisions and kind of
- 15:24specking out exactly what I wanted from
- 15:25the work and then we call a different
- 15:28skill under that to create the actual
- 15:31tickets that correspond to making the
- 15:33spec reality. So this spec is
- 15:36essentially the destination and these
- 15:38tickets are the journey and what I did
- 15:43is all of this was done inside one
- 15:45session inside the planning session and
- 15:47you can see that it's published two
- 15:48independent tickets right at the bottom
- 15:50and I've been using two tickets there
- 15:53and then in a separate session I did the
- 15:55implementation and this implementation
- 15:58will be quite new to anyone who's used
- 16:00my skills before which is I used a skill
- 16:02called implement spec and I just sent it
- 16:06the spec. So what it did first is it
- 16:08went and mapped the tickets dependencies
- 16:11and then opened a draft PR and then
- 16:14those two tickets it turned out were
- 16:15independent so they could be worked on
- 16:17by themselves independently. And so what
- 16:20it did was it worked them independently
- 16:23on separate work trees and branches. So
- 16:26we have parallelization here. We're able
- 16:28to spawn out multiple sub aents to put
- 16:30them on different work trees. GitHub
- 16:32Copilot is handling all of this for me.
- 16:35And then it rebased them together and
- 16:37yeah, merged into DraftBr. Everything's
- 16:40working. Uh, merge adapter ticket. There
- 16:43we go. And then it did a code review at
- 16:46the end. So, one thing that this skill
- 16:49does really nicely is we can actually
- 16:51take a look at the skill in a minute is
- 16:52it runs an exploration agent. It runs
- 16:55everything it can in parallel and then
- 16:58it code reviews it at the end and fixes
- 17:00everything it finds.
- 17:02So once we get to there, there we go.
- 17:04You can see the code review running. You
- 17:05can see it fixing the review findings.
- 17:07We ended up with a pretty nice PR that
- 17:10we can actually just stack on top of the
- 17:12other one. So here is the original PR.
- 17:15Oh no, here we go. No, this is the the
- 17:16proper PR. It closes all of the tickets
- 17:19that we created. Closes the spec. It
- 17:21closes the each individual ticket. And
- 17:24then we get a nice thing that we can
- 17:26actually merge on top of it in order to
- 17:28make our operations type safe in future.
- 17:30So that's the flow is if you want to
- 17:32make your code actually um function
- 17:35better over time and clear up some of
- 17:38the slop, you end up with these nice
- 17:40architecture reviews that you can just
- 17:41keep working on. But what about if you
- 17:44want to actually take this approach,
- 17:48take this unslopping approach and apply
- 17:50it to your own agent, to your agents
- 17:52environment. What do you do then? Well,
- 17:56I've got a new skill. And this new skill
- 17:58is called retro. Retro, take the four
- 18:01most recent sessions and do a retro on
- 18:04them. And a retro comes from the word
- 18:07retrospective where at the end of a
- 18:09piece of work, you look back over what
- 18:11you've done and see what you can
- 18:13improve. And so agents are pretty good
- 18:15at this because a lot of agents have
- 18:17access to their own session history. So
- 18:19does GitHub copilot. So it reads the you
- 18:22know most recent sessions reads the
- 18:24implementation session the architecture
- 18:25session looks for all the session
- 18:27artifacts and the session checkpoints
- 18:28and then it suggests a bunch of ideas.
- 18:32So we can see the implement spec run
- 18:34created PR directly from the active
- 18:35feature branch rather than its intended
- 18:37base. So there was a little bit of
- 18:39confusion there with the agent. So it's
- 18:41saying you probably need to change the
- 18:43skill a little bit. Tighten
- 18:44implementation specs integration branch
- 18:46step resolve the target base before
- 18:48creating anything. Then it's also
- 18:50looking at tool economy. So it's seeing
- 18:52are the tools that we're calling token
- 18:55efficient enough and also we're looking
- 18:57at navigation steps here. So this retro
- 19:00is something that's really exciting to
- 19:02me and something I'm going to continue
- 19:04working on and it builds on the main
- 19:06flow of the skills here where you grill
- 19:10you then uh either go and create spec
- 19:12and tickets to work it over multiple
- 19:15different sessions multiple sub aents.
- 19:16You then go to implement it. You then do
- 19:19a code review on it. And then you do a
- 19:21retro where you look for opportunities
- 19:23to do better next time. I'm excited
- 19:25about the growth of these skills. I'm
- 19:26excited about how so many people are
- 19:28going to get to work with them. And I
- 19:30just I love being able to package up my
- 19:32processes and send them to you. You can
- 19:34install them. You can modify them,
- 19:36fiddle with them. And I think that's so
- 19:38so exciting for this era that we live
- 19:40in. I love it. So, thank you so much for
- 19:42watching. Have a great rest of Copilot
- 19:44Day. See you very soon.
About this transcript
This page contains the full transcript of 25 agent skills to improve your workflow in GitHub Copilot | Matt Pocock | GitHub Copilot Day by GitHub, generated from the public captions YouTube serves with the video. The transcript has 3,744 words across 520 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 translate the transcript into 100+ languages.
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, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.