YouTube2Text

Answering Your GitHub Spec Kit Questions — Transcript

by Den Delimarsky · 4,081 words · 594 segments · language en · Watch on YouTube

Full transcript

  1. 0:00Hey friends, today instead of me
  2. 0:01rambling about more Spec It features and
  3. 0:03changes, I thought I'd instead focus on
  4. 0:05something that is much more important to
  5. 0:07me and that is answering your questions.
  6. 0:10The videos that I've been posting about
  7. 0:12the Spec It evolution have been gaining
  8. 0:14a lot of traction and there were a lot
  9. 0:17of comments that I thought it'd be much
  10. 0:18better for me to just address over video
  11. 0:20so that future developers, future PMs,
  12. 0:23designers, data scientists that are
  13. 0:24using this tooling can benefit from. So,
  14. 0:27the first question is from Bobby Wang
  15. 0:300120 and that is, "Thanks for the video
  16. 0:33on Spec It. Quick question, you add the
  17. 0:35learnings to the spec doc at the end.
  18. 0:37After several iterations, the plan tasks
  19. 0:39and other MD files can drift from what
  20. 0:41actually shipped. Do you also update
  21. 0:43those files or leave them as historical?
  22. 0:46In your view, should we update only the
  23. 0:48spec doc or all the docs when the work
  24. 0:49is done?" I'd say if I look back at my
  25. 0:53workflow, I try to keep the spec itself
  26. 0:56as the sole source of truth unless I am
  27. 1:00making changes to specific
  28. 1:02implementation details. So, for example,
  29. 1:03if I go through the process of designing
  30. 1:06a new landing page for my site, right?
  31. 1:09And I have made certain design
  32. 1:11decisions. I have made certain certain
  33. 1:12decisions around things like the layout
  34. 1:15of the page or what should be and
  35. 1:16shouldn't be included. And some of these
  36. 1:18decisions will pop in after the fact.
  37. 1:21Like you've already started specifying
  38. 1:23things, you've already started kind of
  39. 1:24working through the implementation and
  40. 1:25you realize, "Oh, I forgot that I want
  41. 1:28to include a list of testimonials forgot
  42. 1:30that I want to include a contact form or
  43. 1:32a box to subscribe to my newsletter."
  44. 1:34Right? So,
  45. 1:35you'll obviously ask the LM to go and
  46. 1:38get the functionality for you, but that
  47. 1:40was not in your initial spec. And what I
  48. 1:42usually do is knowing the fact that for
  49. 1:45a lot of these things, I will reuse them
  50. 1:47in the future. For example, as I
  51. 1:48mentioned in my previous video, like
  52. 1:50what if I decide to change my static
  53. 1:51site generator or if I decide to change
  54. 1:53the back end, I still want to have the
  55. 1:56specification that is the source of
  56. 1:57truth and reflecting what I meant with
  57. 2:00the actual final output. So, in this
  58. 2:02case, I just asked the LM to encode the
  59. 2:04learnings from the conversation, from
  60. 2:06the context that we have into the
  61. 2:08specification. And some of those
  62. 2:09learnings can also be encoded into the
  63. 2:11plan. Now, I personally consider the
  64. 2:13spec to be the more durable artifact of
  65. 2:16all of them, right? Because the plan
  66. 2:18changes. As I mentioned, the plan is
  67. 2:20much more flexible because the the the
  68. 2:22plan file is the technical spec. This is
  69. 2:25where I define the shape of the API.
  70. 2:27This is where I define the framework
  71. 2:28that I'm using, the database. And those
  72. 2:30can change. So, if you're not changing
  73. 2:32those, you can leave the plan as is and
  74. 2:34update just the spec. If you realize
  75. 2:37that actually the database that I chose
  76. 2:39is not really fitting, like I can't use
  77. 2:41SQLite, I actually need to use like a
  78. 2:43document DB hosted in the cloud, then of
  79. 2:45course update the plan as well. But I
  80. 2:47tend to update them and keep them
  81. 2:49updated as I go through the process
  82. 2:51because you're absolutely right. But
  83. 2:53there's going to be points that where a
  84. 2:54lot of these things will just be
  85. 2:56underspecified and I will realize after
  86. 2:58the fact that it drifted quite heavily
  87. 3:01from what I initially envisioned because
  88. 3:03I did not ask the questions that I
  89. 3:04thought I would ask. So, keeping them up
  90. 3:06to date is generally a good idea. But
  91. 3:08I'd say from a priority perspective, the
  92. 3:10spec document and the constitution
  93. 3:12probably be the most important and then
  94. 3:14obviously the implementation plan and
  95. 3:16tasks,
  96. 3:18I'd say it's generally a reflection of
  97. 3:19the implementation plan or the technical
  98. 3:21plan anyway. So, you can just delete
  99. 3:23tasks and just recreate it as you see
  100. 3:25fit. And another question is from Carlos
  101. 3:28Pravia 4967. "In our team, we tend to
  102. 3:30use different Git repos to develop
  103. 3:32different parts of the app. For example,
  104. 3:34one repo for implementing the required
  105. 3:36app logic and endpoints, another for
  106. 3:38handling the client side and UI and
  107. 3:39perhaps another for deploying GraphQL
  108. 3:42other types of data queries. In this
  109. 3:44type of scenario, would you recommend
  110. 3:46using one Spec It per repo to define,
  111. 3:48refine and test these components in a
  112. 3:50modular and safe way? Maybe with
  113. 3:52different team members focusing solely
  114. 3:53on that part of the app and then having
  115. 3:55another repo that maintains a high-level
  116. 3:57spec. How do you integrate and maintain
  117. 3:59coherence between these components?"
  118. 4:01That's actually an interesting question
  119. 4:02because in our samples so far, right?
  120. 4:05Like you've seen the videos, you've seen
  121. 4:06the demos, it's all about having one
  122. 4:09repository. And because when you operate
  123. 4:10in one repository, things are relatively
  124. 4:13constrained and easy to manage because
  125. 4:15if you work with the built-in Spec It
  126. 4:17templates, you'll notice that when you
  127. 4:19use the specify command, it's going to
  128. 4:21create a new branch within that
  129. 4:23repository, right? And that branch is
  130. 4:24going to have a version of the templates
  131. 4:29that sometimes are encoded based on the
  132. 4:31constitution. There's going to have
  133. 4:33a version of the spec, a version of
  134. 4:36anything else you might include in that
  135. 4:37particular iteration, right? So,
  136. 4:40if there is a shared spec repo, then
  137. 4:44somehow you need to cross-reference it
  138. 4:46from other repositories, right? So, if
  139. 4:47you have 7, 10, 15 different repos, then
  140. 4:51how is the core spec repo being
  141. 4:53included? Is it a submodule? Like you
  142. 4:56could do that, but then you're just
  143. 4:57increasing the complexity of actually
  144. 4:59managing that code. So, from my
  145. 5:01perspective and my experiments that I
  146. 5:03have done personally, again, take this
  147. 5:04with a boulder of salt because it might
  148. 5:06not be fitting for every single
  149. 5:07scenarios. But But what I've seen is
  150. 5:10using
  151. 5:11one Spec It deployment. And when I say
  152. 5:14that is basically like bootstrapping it
  153. 5:15for a specific project within one
  154. 5:17repository is the most helpful because
  155. 5:19then the the
  156. 5:21work is contained within that repo and
  157. 5:24managing becomes much much easier than
  158. 5:27using it across multiple repositories.
  159. 5:28Now, that being said, you can have
  160. 5:30content that is shared. So, for example,
  161. 5:32if you have a constitution that defines
  162. 5:34how web apps are built inside your
  163. 5:36organization, then that constitution can
  164. 5:37be pulled in through a Git submodule,
  165. 5:39for example, right? Like that's seems
  166. 5:42fairly trivial to set up and that is
  167. 5:44reusable. But there's other things that
  168. 5:46might not work as well, right? Because
  169. 5:49certain specs that you create for one
  170. 5:50repo are not really applicable to
  171. 5:52another one. If you have a repository
  172. 5:54that is for a mobile application and
  173. 5:55another one for a web app, then those
  174. 5:58spec templates or even the spec sets
  175. 6:00that already exist, they're
  176. 6:01very little value in probably matching
  177. 6:04them up unless you're talking about
  178. 6:05specific API design documents, right?
  179. 6:08So, I'd say like it it really depends on
  180. 6:10the workflow, but I've seen personally
  181. 6:12that per repo configurations of Spec It
  182. 6:15work better than having one shared
  183. 6:17unless you absolutely need that. And
  184. 6:20then you can use again tools like Git
  185. 6:21submodules to create this kind of
  186. 6:23infrastructure around the Git mechanisms
  187. 6:27to make sure that that content is
  188. 6:28actually shared across repositories.
  189. 6:29All right, the next one is a very
  190. 6:31interesting one. It's from SusieQ Codes.
  191. 6:33"Great video. I added to an existing
  192. 6:35project and use it to help refactor a
  193. 6:37monolithic page.tsx as a TypeScript
  194. 6:40component. It seemed to be going great,
  195. 6:42but when it made some changes, I noticed
  196. 6:43it had dropped some prior features. I'm
  197. 6:45using Cursor. I asked it a few questions
  198. 6:47and immediately began making more code
  199. 6:49changes even though we hadn't specked
  200. 6:51out the changes, which yeah, makes
  201. 6:52sense. So, if you overlook something and
  202. 6:54it starts creating new files which you
  203. 6:56then catch, what's the best process to
  204. 6:57capture the right specs, research tasks?
  205. 7:00I had to unwind and write a new spec
  206. 7:01even though spec one hadn't been
  207. 7:03completely implemented correctly or does
  208. 7:04spec two take care of updating what
  209. 7:06occurred in the first branch?"
  210. 7:09So, this is an interesting scenario. So,
  211. 7:11I think if I unwind
  212. 7:13kind of this explanation, it's
  213. 7:15essentially you have started a project,
  214. 7:18you have a specification, you went
  215. 7:20through that spec process, and then down
  216. 7:23the line you realize that, "Oh, Cursor
  217. 7:25started going off the rails a little bit
  218. 7:27and just creating things on its own that
  219. 7:29you did not ask for." And so, you need
  220. 7:31to now go and remove those files. What I
  221. 7:33started doing generally, and this is why
  222. 7:36it's so important to use Git here. It is
  223. 7:40it is so so important to use source
  224. 7:42control. Is my approach to this is
  225. 7:45when I start working on a new feature, I
  226. 7:47start working on a new component for
  227. 7:51something or a bug fix. And I use Spec
  228. 7:53It. So, when I use /specify, it of
  229. 7:55course creates a new branch. That makes
  230. 7:57it very easy. I also use a Git client. A
  231. 7:59Git client like GitHub Desktop or
  232. 8:01Sublime Merge or GitKraken, any of them
  233. 8:05really are great. You know, it's all
  234. 8:08like ice cream. It depends on your
  235. 8:09preference of what you actually like.
  236. 8:11But what I started doing is as I go
  237. 8:13through this iterative process and
  238. 8:14especially once you go into the
  239. 8:16implementation stages and that things
  240. 8:18can become a little bit murkier because
  241. 8:20there's things that you have not
  242. 8:21specified in the initial spec, initial
  243. 8:23prompt, and then you have to go and
  244. 8:24cover that. What happens is sometimes it
  245. 8:27does go off the rails. It starts
  246. 8:29creating new files and going building
  247. 8:31experiences you did not ask it for. And
  248. 8:32the easiest way for you to unwind that
  249. 8:36is to first of all, encode the
  250. 8:38requirements that you want. So, you spot
  251. 8:39it like, "Oh, I do not want to have a
  252. 8:41component for
  253. 8:43footer changes on my website." Right?
  254. 8:46So, that's fine. You encode it in the
  255. 8:47specification and then you go to the Git
  256. 8:50client that you have because you're
  257. 8:51already operating on a branch. You
  258. 8:53select the files that were not yet
  259. 8:55committed because we're because we're
  260. 8:57working on Git, we don't just
  261. 8:59automatically commit every single
  262. 9:00change, but we do it in batches. So, and
  263. 9:03you can just discard those changes. The
  264. 9:04spec can stay the same. The spec
  265. 9:06document is there. Make sure that that
  266. 9:08is actually checked into the branch and
  267. 9:09committed and pushed and then the code
  268. 9:12changes are flexible. So, if you see it
  269. 9:13go off the rails,
  270. 9:15just update the spec, discard the
  271. 9:17changes for the files, and then use the
  272. 9:19spec to re-essentially go through the
  273. 9:21process of creating things. So, that to
  274. 9:23me is the easiest way to do this is just
  275. 9:25lean heavily into the actual Git
  276. 9:28workflows. Super important. I think if
  277. 9:31there's one thing that I encourage
  278. 9:32people that are trying to use Spec It is
  279. 9:34get very familiar with how Git works,
  280. 9:37how branching works, and how you can
  281. 9:39stage changes and iterate on them
  282. 9:41without necessarily worrying about the
  283. 9:43fact that a uh you know, a rogue agent
  284. 9:46is going to go astray because it decided
  285. 9:48to, you know, design something
  286. 9:50differently and now you have to go and
  287. 9:51unfurl and figure out like what are all
  288. 9:53the things that went wrong and what are
  289. 9:55the code changes. Like
  290. 9:56use Git. Commit often for things that
  291. 9:59work.
  292. 10:00As you iterate, make sure that you track
  293. 10:02of that again with Git on a branch that
  294. 10:05we create for you by default and then
  295. 10:07use that to your advantage. That that
  296. 10:09would be my recipe for this. That's the
  297. 10:10easiest way to manage it. All right, the
  298. 10:12next question is from Griff.Ann and that
  299. 10:14is you mentioned the possibility of
  300. 10:15refactoring the website in the future
  301. 10:17and being able to simply reuse the spec
  302. 10:20because it did not include technical
  303. 10:21implementation details. How would a
  304. 10:23process like that work? Does the agent
  305. 10:26go back through each feature spec one by
  306. 10:28one including branching? If you were to
  307. 10:29create a new empty project with just the
  308. 10:31constitution and specs? So, that's an
  309. 10:34interesting one because I it's coming on
  310. 10:36the heels of the last video where I
  311. 10:37showed that I added a reading list to my
  312. 10:39website. And the challenge with this is
  313. 10:43that initially when I started my
  314. 10:45website, I of course did not use Spec
  315. 10:47Git. The website was started based on my
  316. 10:49own blogging habits, my own
  317. 10:51configuration. I actually wrote some
  318. 10:53custom templates on top of Comod as I
  319. 10:55called out in the video, it's all based
  320. 10:57on
  321. 10:58Hugo, the Hugo static site generator.
  322. 11:00Now,
  323. 11:01of course, in the context of this
  324. 11:03functionality, not everything would be
  325. 11:05recreated from scratch because this is
  326. 11:07not what's referred to as a greenfield
  327. 11:08project. This is not a project that I
  328. 11:10set it up from scratch from zero with
  329. 11:12all the artifacts being built with Spec
  330. 11:14Git. So, unless I go back and actually
  331. 11:16say, "Here's the structure of the
  332. 11:18landing page. Here's the structure of
  333. 11:19the about page. Here's the structure of
  334. 11:21the blog post page." All this stuff of
  335. 11:23course would not be recreated. But, for
  336. 11:25features that were built using Spec Git,
  337. 11:28for bug fixes that were built using Spec
  338. 11:30Git, for anything that is actually
  339. 11:33encoded in spec files, I can recreate
  340. 11:36this. So, you can imagine if I at some
  341. 11:37point decide instead of using Hugo to
  342. 11:39move to, let's say, Jekyll and Jekyll
  343. 11:41uses a different templating engine and I
  344. 11:44don't have the same ability to just have
  345. 11:46a built-in reading list page, I can just
  346. 11:49ask my coding agent, whatever I use at
  347. 11:51the time, to go in and rebuild based on
  348. 11:55that spec, right? So, in the context of
  349. 11:57the code base I'm operating in, it's
  350. 11:59going to go ahead and rebuild that. Now,
  351. 12:00of course, it's not going to rebuild
  352. 12:01everything. And of course, there's going
  353. 12:03to be a lot of variability, but it is
  354. 12:06the approach here. So, you can you can
  355. 12:08essentially detach the implementation
  356. 12:10from the spec and that that's where the
  357. 12:12value of the specification comes from,
  358. 12:13right? Because the spec itself is the I
  359. 12:17want to call it like the executable
  360. 12:19artifact. This the spec becomes the code
  361. 12:21because I can just toss it into an LLM
  362. 12:23and say, "Go build this in the context
  363. 12:25of what I'm operating." If you're
  364. 12:26building a project from scratch, that is
  365. 12:28a brand new app, you're building, I
  366. 12:30don't know, a SaaS business, it's a SaaS
  367. 12:32application, and then you encode
  368. 12:34everything in specs and every feature is
  369. 12:36spec, you know, your landing page, your
  370. 12:39checkout page, your user profile page,
  371. 12:41then of course, like because you have
  372. 12:43those artifacts, down the line, you can
  373. 12:45go on and recreate that with a different
  374. 12:47framework, with a different tool set, on
  375. 12:49different databases, and so on and so
  376. 12:51forth. But, it depends on the project
  377. 12:52and if it's a brownfield project, then
  378. 12:54of course, it will depend on having
  379. 12:56prior information encoded in specs. The
  380. 12:59next question is from Alpataminalp2933
  381. 13:03and that is, "Thanks for the great
  382. 13:04effort. The main problem with Spec Git
  383. 13:06is TDD or test-driven development. I
  384. 13:08think if you put a non-TDD approach in
  385. 13:10the constitution, it will shine. I don't
  386. 13:11have anything as TDD but intelligence,
  387. 13:13context, Linux, intensive credits, etc.
  388. 13:15Vi- wise, we're not there yet." Uh yes,
  389. 13:19I know and I'm practically working on
  390. 13:21this. So, for folks that don't know, if
  391. 13:23you use the built-in templates, one of
  392. 13:24the things that we encoded in them is
  393. 13:28test-driven development approaches. So,
  394. 13:29any new project, any new feature you
  395. 13:31start, it actually goes in and says,
  396. 13:32"Oh, you need to create tests." And as
  397. 13:34you saw in my last video where I talked
  398. 13:37about the possibility of using this with
  399. 13:40my own site, like I don't need tests.
  400. 13:43I'm just creating something that is
  401. 13:45based on the existing project. I just
  402. 13:47want a new page for for the site, right?
  403. 13:50So, tests can be very very heavy and
  404. 13:52very time-consuming, context-consuming
  405. 13:54as well because building that out is
  406. 13:56just a massive massive pain in the
  407. 13:58behind. So, yes, fully acknowledge that
  408. 14:01this is a problem. It's coming. We're
  409. 14:03going to have a TDD-less option for this
  410. 14:06and then you can add test-driven as you
  411. 14:08need, but it's not going to be baked in
  412. 14:10by default because, yeah, I agree. It's
  413. 14:12it's it's a little heavy and it's not
  414. 14:14really appropriate for every single
  415. 14:16scenario. I'd say like even actually for
  416. 14:17most very quick prototypy iterative
  417. 14:20scenarios, like I don't I don't need
  418. 14:21tests. Just give me the product. I want
  419. 14:23to see it. I want to I want to see it on
  420. 14:25my screen. I want to be able to interact
  421. 14:27with it and not worry about which tests
  422. 14:29were created because all that stuff can
  423. 14:30come in later for more serious
  424. 14:33enterprise projects. So, point taken.
  425. 14:35Thank you so much for the feedback. Now,
  426. 14:37another question comes from Ninjatronics
  427. 14:39and that is, "So, what will be the
  428. 14:40proper way of adding features to my
  429. 14:42current website that I didn't start with
  430. 14:44Spec Git?" Hmm.
  431. 14:46It's exactly the same thing that I did
  432. 14:48in my previous video. The site that you
  433. 14:50saw, the blog that I maintain, my own
  434. 14:53blog is not actually built with Spec
  435. 14:55Git. I had it for since I want to say
  436. 14:57like 2017 in the current shape with Hugo
  437. 15:00and for like
  438. 15:01more than a decade because I used
  439. 15:03WordPress before, right? Like it was not
  440. 15:04built with Spec Git. It's a custom theme
  441. 15:07and I used Spec Git to build on top of
  442. 15:09it. So, you can use different techniques
  443. 15:11to actually build out the context of the
  444. 15:14code base, right? So, like folks have
  445. 15:16been using Cloud.md to provide that
  446. 15:18context and by the way, when you use
  447. 15:19Spec Git and specifically one of the
  448. 15:22commands is going to bootstrap that
  449. 15:24agent file if it does not exist to
  450. 15:25encode some of the decisions. But, if
  451. 15:27you already have one, then you can use
  452. 15:29that to provide context as to how your
  453. 15:31project is structured, what are the
  454. 15:33components, how it operates, how it's
  455. 15:35being built, and that will allow the LLM
  456. 15:37that as you're creating new features to
  457. 15:39use that context to actually understand
  458. 15:42the relationships and know like, "Oh, if
  459. 15:43I'm going to create a new footer, I need
  460. 15:46to look in the components folder here
  461. 15:48for this TSX file that's going to be my
  462. 15:50footer." Right? So, the process is not
  463. 15:52that different from one any greenfield
  464. 15:54projects. So, your biggest bottleneck is
  465. 15:56really going to be to provide as much
  466. 15:58context to the LLM as possible about
  467. 16:01your project, about what you're building
  468. 16:03and how you built it previously so that
  469. 16:05when you start specking new things, it
  470. 16:07has that context and then it can operate
  471. 16:10with it and say, "Oh, I know where to
  472. 16:11look for components." That being said,
  473. 16:13in my experience, depending on the
  474. 16:15complexity of the project, the LLMs, the
  475. 16:17modern models especially, are very good
  476. 16:20about kind of sussing out this context
  477. 16:22dynamically. So, I as an experiment, you
  478. 16:24know, I showed you the reading page in
  479. 16:26my previous video. But, something that
  480. 16:27I've also done before is asking it to go
  481. 16:30and build me a new component that I can
  482. 16:32embed like a podcast player in specific
  483. 16:35page types and you can modify it, right?
  484. 16:37And it would actually scan the
  485. 16:40component definitions within the folder
  486. 16:41and say, "Okay, let me take a look at
  487. 16:42how all these components are defined.
  488. 16:44Let me take a look at where the podcast
  489. 16:46component might live." And it created
  490. 16:47relatively well. Like I'd say like there
  491. 16:49there is of course gaps and you as an
  492. 16:51engineer are going to be in control and
  493. 16:53saying like, "Oh, you actually looked at
  494. 16:54the wrong folder because this is the
  495. 16:56compiled components, not the actual
  496. 16:58defined components." So, you still have
  497. 17:00to be aware of those things, but I I I
  498. 17:01noticed that that gets better. But, I'd
  499. 17:02say like if you provide proactive
  500. 17:04context ahead of time, that usually
  501. 17:07works much much better uh on any new
  502. 17:09feature iterations. And the last
  503. 17:11question for today is going from AOUsef.
  504. 17:15I think that's how I pronounce that
  505. 17:16name. Yep, A A Y 0 U S E F. For the
  506. 17:20simple use case most web devs would have
  507. 17:22spent much less time building with no AI
  508. 17:24or simple AI assistants. For complex use
  509. 17:26cases, not sure how the constitution
  510. 17:28will fit in a single repo with back and
  511. 17:29front and DB files and other docs. You
  512. 17:32are absolutely correct. So, the the
  513. 17:34sample that I showed you and again for
  514. 17:35folks that have missed the previous
  515. 17:36video, just go check it out. It's me
  516. 17:38adding a reading list page to my blog.
  517. 17:41Um it is a relatively simple use case
  518. 17:44and I'd say like if you're somebody that
  519. 17:46is comfortable with CSS, JavaScript, and
  520. 17:48templating in Hugo like I am, like sure.
  521. 17:50Yeah, I could have created this with no
  522. 17:52AI and this is just like a demo. But, at
  523. 17:54the same time, I'd say it's
  524. 17:55demonstrating how that process can work.
  525. 17:58For complex use cases you called out
  526. 18:00where, you know, you have a repository
  527. 18:02like a mono repo that contains a whole
  528. 18:03bunch of other things that are not
  529. 18:05necessarily tied together, this does
  530. 18:08become a little bit trickier, right?
  531. 18:09Because you have one specified folder
  532. 18:12with the kind of the the templates and
  533. 18:14everything else that are usually like if
  534. 18:16you define a constitution, like the
  535. 18:17constitution becomes bound to the
  536. 18:19specified folder and that specified
  537. 18:22folder is now embedded directly into the
  538. 18:24context of where you're operating.
  539. 18:27What we're looking at right now is how
  540. 18:29to properly split that up so that you
  541. 18:31can have a dot specify folder for your
  542. 18:33backend, a dot specify folder for your
  543. 18:35front end, a dot specify folder for your
  544. 18:37API,
  545. 18:38like monitoring solutions, and so on and
  546. 18:40so forth. So, basically give you the
  547. 18:41granularity so that
  548. 18:43you're still encoding the commands, the
  549. 18:44custom slash commands inside whatever
  550. 18:46agent folder you have as you should,
  551. 18:48right? Because they're they're generic.
  552. 18:50Like the slash specify is the same. If
  553. 18:53you're using slash clarify, it's the
  554. 18:55same. It doesn't matter which project
  555. 18:57you're using. The command itself is
  556. 18:59exactly the same as it would be for any
  557. 19:01other project. But, what changes is the
  558. 19:04format of the constitution, the format
  559. 19:06of the specs, the requirements. Like
  560. 19:07some things, as we just talked about
  561. 19:09like test-driven development, some of
  562. 19:10them require tests, some of them don't.
  563. 19:11So, you could have multiple specify
  564. 19:14folders in these different projects and
  565. 19:17then use
  566. 19:19the prompts from from the project as is
  567. 19:21within those folders. So, we're we're
  568. 19:23kind of testing this out right now and
  569. 19:25there's going to be a documented
  570. 19:26approach to make it a little bit easier
  571. 19:27because mono repos are a thing.
  572. 19:30We know it's a thing and we know we have
  573. 19:32to actually cover it. So, not yeah, not
  574. 19:34every scenario is going to be uh this
  575. 19:36vanilla very much constrained Git up
  576. 19:40environments like a one repo one
  577. 19:41project. So, yeah, uh we know it's
  578. 19:43coming. It's going to be documented.
  579. 19:45You're going to receive this in one of
  580. 19:47the next videos. I'm excited to show you
  581. 19:49our progress. And that's it. That's it
  582. 19:51for the questions for today's video.
  583. 19:53Stay tuned for the next one. I have way
  584. 19:55more coming. There's way more updates
  585. 19:57coming to SpecKit. I'm excited to see
  586. 20:00all of you testing it out and pushing it
  587. 20:02to its limits, providing so much
  588. 20:03feedback. And please go to
  589. 20:05github.com/github/spec-kit,
  590. 20:08provide your feedback, participate in
  591. 20:10discussions. And I'm excited.
  592. 20:13I use the word not likely at all. I am
  593. 20:15excited to bring you more SpecKit
  594. 20:18goodness very, very soon. See you then.

About this transcript

This page contains the full transcript of Answering Your GitHub Spec Kit Questions by Den Delimarsky, generated from the public captions YouTube serves with the video. The transcript has 4,081 words across 594 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.