YouTube2Text

mattpocock/skills: A complete AI Coding workflow, end-to-end — Transcript

by Matt Pocock · 3,717 words · 505 segments · language en · Watch on YouTube

Full transcript

  1. 0:00Hello friends, it occurs to me that I've
  2. 0:01never actually put together a proper
  3. 0:04tutorial for my skills repo. At the time
  4. 0:06of recording this repo is up to 162,000
  5. 0:09stars. We have 7.5 million downloads and
  6. 0:12I've never made a tutorial for it. I get
  7. 0:14questions all the time like what is the
  8. 0:15sequence I should use these skills in,
  9. 0:17how should I install them, how should I
  10. 0:18set them up? So this video is going to
  11. 0:20be a walk through of the main flow you
  12. 0:22use when you're using these skills.
  13. 0:25We're not going to look at the advanced
  14. 0:26stuff, we're not going to look at the
  15. 0:27new stuff really, we're just going to
  16. 0:29focus on the main flow. The stuff you
  17. 0:31need to get started. To walk you through
  18. 0:33this, I'm going to be using one of my
  19. 0:34work repos which is the AI Hero CLI.
  20. 0:37This is the command line interface that
  21. 0:38drives a lot of my exercises that I use
  22. 0:41on my courses. I've never actually set
  23. 0:43up my skills to work with this repo so
  24. 0:44now is a great chance. If you want to
  25. 0:46set up my skills on a brand new project,
  26. 0:48you just do this except you do it in an
  27. 0:49empty directory. So it works the same
  28. 0:51whether you're using a brownfield code
  29. 0:52base or a greenfield code base. I'm
  30. 0:54going to open up the command line
  31. 0:55interface here and I'm going to type NPX
  32. 0:58skills at latest add mattpocock/skills.
  33. 1:03This assumes a couple of things. It
  34. 1:05assumes that you've got Node.js
  35. 1:06installed. This NPX comes from Node.js
  36. 1:10and it runs the skills.sh command line
  37. 1:13installer from Vercel. What this
  38. 1:15basically does is it installs a GitHub
  39. 1:17repo of skills called mattpocockskills
  40. 1:20and it can walk through a few setup
  41. 1:22questions here. It first says it needs
  42. 1:24to install the following packages. Yes,
  43. 1:25that seems fine to me and then it did a
  44. 1:28couple of things and we now have a long
  45. 1:30long list of all the skills that we
  46. 1:31could install. It found 38 skills here
  47. 1:34which is a lot and you can see if I
  48. 1:36scroll up and down that they're in two
  49. 1:37groups. We've got the mattpocockskills
  50. 1:39and then we've got other skills. So the
  51. 1:42mattpocockskills are the ones that I
  52. 1:43have blessed as the skills that I think
  53. 1:46are good enough to be public facing. The
  54. 1:48other ones are ones that I'm
  55. 1:49experimenting with right now and may
  56. 1:51delete in future. What I recommend you
  57. 1:53do is you go to the top here and you can
  58. 1:55kind of go up and down. It's kind of
  59. 1:58broken, I have to say. And if you press
  60. 2:00space here, and you should see that if
  61. 2:02you scroll up, okay, they're now all
  62. 2:04selected. You press space, and then you
  63. 2:06press return, and now uh you've selected
  64. 2:09all of the official skills. I'm not
  65. 2:11terribly happy with Versel's CLI here,
  66. 2:13so I may change it in future, or maybe
  67. 2:15even just ship my own. But uh for now,
  68. 2:18that's as good as it gets. One thing
  69. 2:19that is good is that it will set up your
  70. 2:21skills to work with any agent. So, I use
  71. 2:24Claude Code, but you can go down here
  72. 2:26and sort of just select the ones that
  73. 2:27you want. I'm using space to select. I
  74. 2:30think by default, if I zoom out a touch,
  75. 2:33then it supports all of these universal
  76. 2:36ones up here. So, cursor, Codex, Claude,
  77. 2:38etc. But anything that uses like Claude
  78. 2:41skills, such as Claude Code, then you
  79. 2:42need to set up yourself. So, I'm going
  80. 2:44to press return here, and it should now
  81. 2:47be configured to set up my skills for
  82. 2:48Claude Code. The installation scope
  83. 2:50defines where your skills are installed,
  84. 2:52whether they're installed just in the
  85. 2:53current directory, or whether they're
  86. 2:55global. This will depend on what your
  87. 2:56team's conventions are. If you're
  88. 2:58working in a team, I would say that
  89. 2:59project skills are the right way to go.
  90. 3:01That way, everyone is using the same
  91. 3:03skill set on every project, and it means
  92. 3:05that you can contribute to the skills
  93. 3:07together and make those decisions
  94. 3:08together. But global is fine if you're
  95. 3:11just a solo developer working on your
  96. 3:12own stuff, like I am. So, I'm going to
  97. 3:14press return here, install it in my home
  98. 3:16directory, and I'm going to choose
  99. 3:17symlink as the recommended way. The
  100. 3:20choice here is whether you copy it to
  101. 3:22the agents folder as well as the dot uh
  102. 3:25Claude folder. And
  103. 3:27it's kind of not a nice way to do it.
  104. 3:28Symlink is just the nice, easy way to do
  105. 3:30it. So, I wouldn't even make a decision
  106. 3:31here, just choose symlink. So, it now
  107. 3:33gives you a summary of all the things
  108. 3:34that you're installing here. There seems
  109. 3:36to be an alert on Socket about to spec.
  110. 3:38I'll take a look at that later. But yes,
  111. 3:40we can proceed with installation, and
  112. 3:42it's now installed all of the skills.
  113. 3:44This means then that I can run Claude
  114. 3:46inside here, or whatever your agent is,
  115. 3:48and I'm going to create a new So, I'm
  116. 3:51just going to say hello to get out of
  117. 3:52this agent's view here. Now, depending
  118. 3:54on the harness you're using, this will
  119. 3:55show up in different ways, but on Cloud
  120. 3:57Code, I can press forward slash and I
  121. 3:59now see that I have a few skills
  122. 4:01available to me. I have grill me,
  123. 4:03grilling, way finder, grill with docs,
  124. 4:05etc. Loads of stuff. Now, the difference
  125. 4:07between my skills and lots of other
  126. 4:09skills repos that are out there is my
  127. 4:11skills are mostly user invoked. That
  128. 4:14means that if I run context here, not
  129. 4:17many of my skills actually leech their
  130. 4:19way into the description. And the
  131. 4:22descriptions I have are quite short and
  132. 4:24precise. So, that means that even though
  133. 4:26we've downloaded all of my skills, the
  134. 4:28skills only take up 660 tokens here. So,
  135. 4:32it's very, very light in terms of
  136. 4:33context load. So, okay, we got the
  137. 4:35skills. Now, what we have to do is we
  138. 4:37have to run set up Mac Pocock skills.
  139. 4:40And this will do a few things. My skills
  140. 4:42rely on some uh configuration inside the
  141. 4:46repository, and this does a few things
  142. 4:49for you. The first thing is it means you
  143. 4:51need to use an issue tracker. We're
  144. 4:53going to be saving um specs, we're going
  145. 4:56to be saving tickets, and we need to
  146. 4:57save them somewhere. You've got kind of
  147. 5:00an infinity of choices here. You can use
  148. 5:01GitHub, you can use local markdown, or
  149. 5:04you can literally use anything. The way
  150. 5:06that the skill works is that it looks at
  151. 5:09your local configuration. And so, you
  152. 5:11can set it up for Jira, you can set it
  153. 5:13up for Linear. And the way you do that
  154. 5:14is you just tell the agent what you want
  155. 5:16to set it up for, and it will go and set
  156. 5:18it up for it. I just want to emphasize
  157. 5:19that. People are asking me all the time,
  158. 5:20"How do I make my skills work with Jira,
  159. 5:22work with Beads, work with Linear?" It
  160. 5:25already does. All you need to do is just
  161. 5:27run set up Mac Pocock and just say, "Set
  162. 5:29it up with Jira." Except, I don't want
  163. 5:31to set it up with Jira. I'm just going
  164. 5:33to set it up with local markdown,
  165. 5:35please. So, that's fine by me. The next
  166. 5:37question to answer here is about triage
  167. 5:39labels. So, there are a set of labels
  168. 5:41that the skill relies on to communicate
  169. 5:42information about the tickets that it
  170. 5:44produces. It's not really that important
  171. 5:46here, so I'm just going to accept the
  172. 5:48defaults. You can look at the docs on
  173. 5:50the triage skill if you want to learn
  174. 5:51more. So, defaults is fine. The next one
  175. 5:54is about the domain documentation. So,
  176. 5:57my skills like to have a little bit of
  177. 5:59docs, a context .md file, and an ADR
  178. 6:03inside the repo. And it's basically
  179. 6:05asking if it's going to be a single
  180. 6:07context or a multi-context. I think
  181. 6:09single context is the way to go here.
  182. 6:12Multi-context is if you have a big mono
  183. 6:14repo and you need lots of different
  184. 6:17bounded contexts within it. But for 99%
  185. 6:21of people, a single context is going to
  186. 6:22be fine. All right, so it's gone ahead
  187. 6:24and written a few things here. The first
  188. 6:26thing it's written is inside claw.md,
  189. 6:28it's added a few little links here. So,
  190. 6:31this is the new stuff. It's just linking
  191. 6:33to the issue tracker docs, linking to
  192. 6:35the triage labels, and linking to the
  193. 6:37domain docs. And each of these are at
  194. 6:40docs, agents, domain issue tracker. So,
  195. 6:43we can see here that it's going to save
  196. 6:45all of the issues and specs inside a
  197. 6:49scratch file. So, with that, our setup
  198. 6:50for this repo is complete. And so, you
  199. 6:52might be thinking, how do I get started?
  200. 6:54Well, before we get started, I'm going
  201. 6:56to show you one more really cool thing.
  202. 6:58You can, if you're following along, just
  203. 7:00stop the video now and use one skill.
  204. 7:02You can use the ask Matt skill. This ask
  205. 7:05Matt skill is essentially me as a skill.
  206. 7:08It knows everything that is needed about
  207. 7:10the skills repo and what you should do
  208. 7:12first. So, we can say, ask Matt, how do
  209. 7:15I get started? I want to make some code
  210. 7:16changes here. What is the main flow I
  211. 7:18should use? I can now submit that and
  212. 7:20see what it says. By the way, I'm using
  213. 7:22Whisper flow as my transcription. So,
  214. 7:23here we go. It's saying the main flow,
  215. 7:25idea to ship. Since you have a code
  216. 7:27base, start at the top of the main flow
  217. 7:29and walk down in it in one unbroken
  218. 7:32context window. So, it's very um
  219. 7:34kind of really telling you how to use
  220. 7:38your sessions as well. I I believe that
  221. 7:40being conscious about the context window
  222. 7:43that you're using, the tokens that
  223. 7:44you're using is essential to using AI
  224. 7:46well. It says you should start with
  225. 7:48grill with docs. It interviews you to
  226. 7:50sharpen the idea and because you're in a
  227. 7:52repo it's stateful. It records what it
  228. 7:54learns in context.md and ADRs. This is
  229. 7:57where you turn I want to change X into a
  230. 7:59crisp defensible plan. Defensible is
  231. 8:01such an LLM phrase, honestly. Can you
  232. 8:03settle every open question just by
  233. 8:04talking? If a question needs a runnable
  234. 8:06answer, then you can use prototype,
  235. 8:08which I've done a video about on it.
  236. 8:10Bridged in and out of by handoff, if not
  237. 8:12skip this. Once you've done the
  238. 8:14interview and grill with docs, you can
  239. 8:15either go straight to the implement
  240. 8:17skill, or if it needs multiple sessions
  241. 8:20to go through, then you can go to to
  242. 8:22spec and to tickets. Let me make this a
  243. 8:24little bit clearer for you. The default
  244. 8:26flow looks like this. You start with
  245. 8:27grill with docs, and this interviews you
  246. 8:30based on the idea that you want to
  247. 8:31produce. For instance, if I clear out of
  248. 8:33ask math, of course I could go and ask
  249. 8:35follow-ups here, use it as a tutorial
  250. 8:37itself, but let me just show you. I'm
  251. 8:39going to say grill with docs, and I'm
  252. 8:40going to kick it off with an idea. I'm
  253. 8:42going to say, I would like to remove
  254. 8:44most of the internal tooling on this CLI
  255. 8:47to make it just only public-facing.
  256. 8:49There's a lot of craft here. I want to
  257. 8:51just take this repo down a notch. It
  258. 8:53really can be as vague as this. You
  259. 8:55don't need to do too much here. Grill
  260. 8:56with docs is going to do the heavy
  261. 8:58lifting by asking you a bunch of
  262. 8:59follow-up questions. It's going and
  263. 9:01exploring a bunch of code here. And by
  264. 9:03the way, I'm [clears throat] using
  265. 9:03Claude Code, I'm using Opus 4.8 on
  266. 9:06medium effort, but you really don't have
  267. 9:09to use the same setup as me. These
  268. 9:10skills are being used by a bunch of
  269. 9:12different people, bunch of different
  270. 9:13harnesses, different models, different
  271. 9:14effort levels. And we can see it's
  272. 9:16already asked the first question here.
  273. 9:18So, it's gotten a clear map of the
  274. 9:19entire repo. It's looking at the
  275. 9:21internal namespace with 11 subcommands.
  276. 9:23So, this is what a grilling session
  277. 9:25looks like. You go through all of the
  278. 9:27questions until you feel or you and the
  279. 9:30agent feel that you've reached a shared
  280. 9:32understanding. I'm going to do that now,
  281. 9:33and then I'll check in with you once I'm
  282. 9:35done.
  283. 9:36Okay, it didn't end up taking too long.
  284. 9:38We ended up with what, six questions?
  285. 9:41That's not very much for grilling
  286. 9:42session. Usually mine end up being about
  287. 9:44sort of 20 questions depending on the
  288. 9:46size of it, but we've ended up with a
  289. 9:48decent plan. We're going to delete uh 10
  290. 9:50command files, delete three tests,
  291. 9:52rewire shared modules. And all I did
  292. 9:55here was I just answered questions until
  293. 9:57it said, "Okay, we've walked the whole
  294. 9:59tree. We've reached a shared
  295. 10:01understanding. Let me lay out the plan."
  296. 10:03Notice here, I wasn't using plan mode
  297. 10:05for this. I was actually in auto mode in
  298. 10:06claw code, which is kind of like the
  299. 10:08default mode. And you now have a fork in
  300. 10:11the road. If you think that this work is
  301. 10:13going to be big enough that it will need
  302. 10:15multiple agent sessions, then you can
  303. 10:17skip numbers two and three here and go
  304. 10:20straight into implement. The way you
  305. 10:22would do that is you would just say, uh
  306. 10:24forward slash implement this. And in
  307. 10:26this case, I do think that is what we
  308. 10:28should do. I've still got about, uh I
  309. 10:31think of my context window is kind of
  310. 10:33like ending or getting significantly
  311. 10:35dumber around 140k
  312. 10:38mark. I think of that as kind of like
  313. 10:40the smart zone of the LLM. If you go
  314. 10:42above 140k, you end up sort of with, you
  315. 10:44know, attention degradation. It ends up
  316. 10:46getting stupider, does weird
  317. 10:48hallucinations. So, I think of having
  318. 10:50like, okay, we've got 100k of budget
  319. 10:52here to remove 10 commands. That seems
  320. 10:54super easy. Definitely something, you
  321. 10:57know, we can definitely do that. So,
  322. 10:58this is what I would usually do. I would
  323. 10:59just say implement and then I would
  324. 11:01leave it, let it run, and it would
  325. 11:03finish the work. However, in the
  326. 11:04interest of showing you everything, I'm
  327. 11:05going to pretend that this work is going
  328. 11:07to take more than one session, that I've
  329. 11:09maybe run out of context window in the
  330. 11:11current or run out of smart zone in the
  331. 11:13current window, and I'm going to need to
  332. 11:15spread this out over multiple context
  333. 11:16windows. So, I'm going to call to spec
  334. 11:19here instead. So, instead of writing
  335. 11:21implement this, I'm going to say to spec
  336. 11:23here. And that's it. What this is going
  337. 11:25to do is it's going to take all of the
  338. 11:27discussion that I've had, all of this
  339. 11:2946.1k tokens, and it's going to compress
  340. 11:32it into a document that we can use
  341. 11:34later. This is where our issue tracker
  342. 11:36comes in. So, this issue tracker we're
  343. 11:38just going to use local markdown files
  344. 11:40and so it's just going to spit out the
  345. 11:41spec into a local directory. This spec
  346. 11:43is going to be the destination that
  347. 11:45we're heading to over this multi-ticket
  348. 11:48sprint. In other words, this is what
  349. 11:50we're going to end up with. This is the
  350. 11:51description of everything of how it's
  351. 11:53going to look at the end. And then the
  352. 11:54tickets is the description of how we're
  353. 11:56going to get there. Okay, we can see
  354. 11:58it's been written and published to the
  355. 12:00issue tracker. If I open this up, we can
  356. 12:02see it is in here. So, it's very nice
  357. 12:05and detailed. It's got a problem
  358. 12:06statement, a solution, a bunch of user
  359. 12:08stories, implementation decisions,
  360. 12:10testing decisions, a lot of stuff here.
  361. 12:12And this is going to be really useful
  362. 12:14cuz we'll be able to compare this at the
  363. 12:16end to make sure that our implementation
  364. 12:19matched the spec. So, now that we've got
  365. 12:20the spec, I'm going to go into the same
  366. 12:22session, not going to change sessions
  367. 12:23here, and now I'm going to say to
  368. 12:25tickets. And this is where it will
  369. 12:28basically try to turn the spec into an
  370. 12:31implementation plan. Each one of these
  371. 12:32tickets is supposed to just be the size
  372. 12:35of a single context window or a single
  373. 12:37smart zone. And if we look here, we can
  374. 12:39see that it's kind of given us three
  375. 12:42tickets here. So, three slices. I think
  376. 12:45that these three slices are a little bit
  377. 12:47much. I actually think it can be done in
  378. 12:49one slice. Do it in one slice instead.
  379. 12:53And so it's now put this in a file. So,
  380. 12:55it's put the ticket in tickets.md. Now,
  381. 12:58this is quite a bad example cuz it's
  382. 13:00kind of copying the stuff that's in our
  383. 13:02product requirements documents. So, let
  384. 13:03me show you an actual real example. Here
  385. 13:05is a spec that I implemented a couple of
  386. 13:07days ago to remove a bunch of stuff from
  387. 13:10a repo. So, I'm on a real removal spree
  388. 13:13recently. And you can see that this is
  389. 13:15the spec and underneath it has 11 sub
  390. 13:18issues. So, 11 tickets underneath it.
  391. 13:21And each of these tickets, so this is a
  392. 13:22very detailed spec, each of these
  393. 13:25tickets is a single context window
  394. 13:27session. So, if we click into here, we
  395. 13:29can see it's just pretty short. Most of
  396. 13:32the acceptance criteria is already in
  397. 13:35the main spec, and so this one is just
  398. 13:37literally what do you build in this
  399. 13:39session? So, that's number session one,
  400. 13:41then session two, then session three.
  401. 13:44You can see that how this breaks down a
  402. 13:46huge chunk of work into manageable
  403. 13:49pieces that the agent can then go and
  404. 13:51do. However, here we are left with a
  405. 13:53single manageable piece. So, what I'm
  406. 13:55going to do is I'm going to clear the
  407. 13:57context here. Now, we have everything we
  408. 14:00need so that we can just run a bunch of
  409. 14:02agents to tackle this problem. So, I can
  410. 14:04clear the context, and then I'm just
  411. 14:06going to say at tickets here, and I'm
  412. 14:09before that I'll say
  413. 14:11implement this. So, now because we have
  414. 14:14the spec that decides where we're going
  415. 14:16and the tickets that decide how we get
  416. 14:18there, the agent has everything it needs
  417. 14:20and we're ready to implement. Now, when
  418. 14:22you're doing this by hand, the idea is
  419. 14:23that you then implement each ticket one
  420. 14:26by one. So, you don't say do every
  421. 14:28single ticket, you say okay, we go and
  422. 14:31implement, then we see if we've hit the
  423. 14:32smart zone. If we haven't, maybe we can
  424. 14:34squeeze in one more ticket here, but
  425. 14:37usually I would say you clear in between
  426. 14:39every single ticket. Then, once you've
  427. 14:41done all of the implementation, you've
  428. 14:43got your full thing all implemented,
  429. 14:46then you can go and code review and do
  430. 14:48the final check against the spec. We can
  431. 14:50see here it really was a very small
  432. 14:52piece of work actually. It's only 42
  433. 14:55.7k, and it's now about to, as part of
  434. 14:58the implement, run the code review. As
  435. 15:00part of the implement script, it goes
  436. 15:01and runs all the type check, runs the
  437. 15:03build, run is doing even more
  438. 15:06verification, checking AI Hero internal
  439. 15:08help, shows only edit commits, and it's
  440. 15:10gone and loaded the code review skill.
  441. 15:12This review is based on two axes. First,
  442. 15:15it compares the work done against the
  443. 15:17original spec. This is really useful
  444. 15:20when you've done a huge chunk of work
  445. 15:22and the agent might have forgotten
  446. 15:24things in tickets or the tickets might
  447. 15:25have been unspecified. Doing a final
  448. 15:27pass means you actually nail everything.
  449. 15:30And then it also checks against the
  450. 15:32standards documentation that you've got
  451. 15:33in your own repo. In this repo we don't
  452. 15:35really have any coding standards
  453. 15:37documented anywhere, but if it doesn't
  454. 15:39detect any, then it uses some classic
  455. 15:40ones kind of from Martin Fowler. So it
  456. 15:43looks at code smells, tries to figure
  457. 15:45out if there's any bad stuff. Doing
  458. 15:46these in sub agents is really important
  459. 15:48because if you do it in the main agent,
  460. 15:51it means that the main agent already has
  461. 15:53written the code and agents are often
  462. 15:55really bad at editing code or improving
  463. 15:58code they've just written. Because
  464. 16:00they've wrote it, so they just think,
  465. 16:02"Okay, that's fantastic. That's fine."
  466. 16:04Whereas if you spawn some agents, then
  467. 16:06they're going to have a clear context
  468. 16:07window and they're going to do a much
  469. 16:08better job reviewing the code. Okay, we
  470. 16:10can see that both came back. So
  471. 16:14cross-checked every acceptance criteria
  472. 16:16against the spec, checked everything
  473. 16:18against the standards, and cool. We're
  474. 16:20good to go. And it's now committed
  475. 16:21against the current branch. Beautiful.
  476. 16:23So that is our flow complete. We aligned
  477. 16:25before we got started. We created some
  478. 16:28spec and tickets in order to make sure
  479. 16:30it worked over multiple sessions. We
  480. 16:32then implemented it and the implement
  481. 16:33skill itself used the code review. This
  482. 16:36is the main flow that all of my work
  483. 16:38runs through. And the stuff that isn't
  484. 16:39in the main flow is stuff that I'm
  485. 16:41experimenting with, stuff that I'm
  486. 16:42improving, always trying to get this
  487. 16:44loop faster, better, easier to run. And
  488. 16:48for that, if you're interested in that,
  489. 16:50then you should check out my newsletter
  490. 16:51for these skills. This YouTube channel
  491. 16:52is a great place to be for subscribing
  492. 16:54to understanding more about the skills,
  493. 16:56but really the good stuff is on the
  494. 16:58newsletter. If you want on the day
  495. 16:59updates when I ship new skills, when I
  496. 17:01add updates to
  497. 17:03kind of that you need to keep updated
  498. 17:05with, then this is the place to be. But
  499. 17:06thank you so much for watching.
  500. 17:07Hopefully this tutorial gives you an
  501. 17:09idea on how to get set up with the
  502. 17:11skills and what the main flow is
  503. 17:12supposed to be. Thanks for watching,
  504. 17:14happy skilling, and I will see you very
  505. 17:16soon.

About this transcript

This page contains the full transcript of mattpocock/skills: A complete AI Coding workflow, end-to-end by Matt Pocock, generated from the public captions YouTube serves with the video. The transcript has 3,717 words across 505 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.