{"id":4105,"date":"2026-05-26T17:51:30","date_gmt":"2026-05-26T17:51:30","guid":{"rendered":"https:\/\/www.andrefelizardo.com.br\/blog\/?p=4105"},"modified":"2026-05-26T17:51:34","modified_gmt":"2026-05-26T17:51:34","slug":"spec-driven-development-a-definitive-guide-for-github-spec-kit","status":"publish","type":"post","link":"https:\/\/www.andrefelizardo.com.br\/blog\/spec-driven-development-a-definitive-guide-for-github-spec-kit\/","title":{"rendered":"Spec-Driven Development &#8211; A definitive guide for Github Spec Kit"},"content":{"rendered":"\n<p>I see people saying Spec Driven Development is the way to produce good software using AI Coding Agents (totally agree)\u2014something as <em>the natural evolution of vibe coding<\/em>. But whenever I see examples or videos of people explaining it, they always involve projects built from scratch or really simple ones.<\/p>\n\n\n\n<p>In the following paragraphs, I expect you to understand which commands to use, when, and why \u2014 and then you will be able to work smoothly with Spec Driven Development using the Github Spec Kit.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Spec-Driven Development (SDD)<\/h2>\n\n\n\n<p>Since AI Coding Agents became good at coding (mid 2025?), we&#8217;ve been building projects and features while forgetting everything we learned during the <em>Agile wave<\/em>. Personally, I&#8217;m a big fan of Agile, and sometimes I try to apply it even at home (my wife hates it).<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Sometimes, some people think Agile = Scrum, but it&#8217;s so much more than that.<\/p>\n<\/blockquote>\n\n\n\n<p>Writing prompts, without any structure or framework, with the powerful models we have today, is a waste of resources. Spec-Driven Development isn&#8217;t entirely new, either \u2014 <em>Sam Hatoum<\/em> has been using this term since 2018.<\/p>\n\n\n\n<p>As you can imagine by the name, SDD is an approach where the spec is the source of truth, not the code. That means, you should be able \u2014 for example \u2014 to rebuild a specific feature in a completely different tech stack just by following the specification. Throughout my 12 years in software development, I&#8217;ve watched documentation become increasingly deprioritized during real projects. You can&#8217;t do that with SDD; <strong>keeping the documentation updated is non-negotiable<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What&#8217;s the Github Spec Kit<\/h2>\n\n\n\n<p>I first came across it in a blog post by <a href=\"https:\/\/birgitta.info\/\" target=\"_blank\" rel=\"noreferrer noopener\">Birgitta B\u00f6ckeler<\/a> on Martin Fowler\u2019s blog. To support the practice of SDD with AI, the Github team launched its kit in September 2025. It&#8217;s a CLI \u2014 though you can also download the project for your AI coding agent and manage it manually \u2014 designed to maintain evolving software specifications.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2026\/05\/github-spec-kit-flowpng.png\"><img decoding=\"async\" width=\"1024\" height=\"679\" data-src=\"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2026\/05\/github-spec-kit-flowpng-1024x679.png\" alt=\"\" class=\"wp-image-4106 lazyload\" data-srcset=\"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2026\/05\/github-spec-kit-flowpng-1024x679.png 1024w, https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2026\/05\/github-spec-kit-flowpng-300x199.png 300w, https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2026\/05\/github-spec-kit-flowpng-768x509.png 768w, https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2026\/05\/github-spec-kit-flowpng.png 1159w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/679;\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">speckit-init<\/h3>\n\n\n\n<p>This is the initial setup; you run it once per project. You&#8217;ll be asked which AI tool you want to integrate (Codex\/Copilot\/Claude). If the project already exists, navigate to the project&#8217;s folder and type <code>--here<\/code> at the end of the command.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">speckit-constitution<\/h3>\n\n\n\n<p>This command creates the governance principles and development guidelines. It&#8217;s about the project as a whole, not about a feature or bug fix. You run it only once, but you&#8217;re expected to keep it updated whenever something significant changes.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>You can ask your AI Coding Agent to populate the <em>constitution<\/em> with the bare minimum requirements for your project type, based on the template.<\/p>\n<\/blockquote>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Feature Cycle<\/h3>\n\n\n\n<p>These are the commands you&#8217;ll run every time you start a new feature.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">speckit-specify<\/h4>\n\n\n\n<p>This is probably the longest prompt you will type. If your project follows a Scrum\/Agile structure with Stories and Tasks, this is where you put the Story description, definition of done, and everything related to your goal.<\/p>\n\n\n\n<p>Describe what you want to build, focused on what and why, not on the tech stack.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">speckit-clarify (optional)<\/h4>\n\n\n\n<p>This step is not required, but if you don&#8217;t have a Product Owner, or you are developing solo, I would strongly suggest running it after <code>specify<\/code>. This command helps surface blind spots in your spec.<\/p>\n\n\n\n<p>For example, you may have defined a list, but forgotten to specify the sort order or pagination size. <code>clarify<\/code> will prompt you about these gaps. It&#8217;s a great way to flip the usual dynamic and let your AI Coding Agent interview you about the requirements.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">speckit-checklist (optional)<\/h4>\n\n\n\n<p>This command was added after the community feedback; it wasn&#8217;t part of the tool at launch.<\/p>\n\n\n\n<p>Their Readme describes this step as &#8220;unit tests for English&#8221; and I kinda like it. It validates the completeness, clarity, and consistency of your requirements. Instead of testing the code, it tests the text of your spec. By domain (UX, security, accessibility, performance, API&#8230;), it produces checkboxes to verify the spec is solid before any tasks begin.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">speckit-plan<\/h4>\n\n\n\n<p>This is the moment to propose and describe the tech stack and architecture choices. One critical thing during this step: actually read the plan and validate it. Remove anything you don&#8217;t need, refine a few things. I consider this the main <em>human-in-the-loop<\/em> step of the Spec Kit.<\/p>\n\n\n\n<p>You can iterate using your AI Coding Agent until the plan covers everything you need, without garbage or gaps.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">speckit-tasks<\/h4>\n\n\n\n<p>Simple command. No input needed. The Spec Kit generates the tasks for this feature based on the plan.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">speckit-implement<\/h4>\n\n\n\n<p>Another command that requires no input prompt. But, if you are experienced with AI Coding Agents, you know you need to manage the context window and your cost.<\/p>\n\n\n\n<p>This is the moment to choose the right model (Sonnet? Opus?) for the tasks ahead, so you can pass the names of the specific tasks you want to implement in the next loop.<\/p>\n\n\n\n<p>One important reminder: this entire flow is Git(hub) based, so for <em>each feature cycle<\/em>, the Spec Kit automatically creates a new branch (which is exactly what you want).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Don&#8217;t forget the SDD<\/h2>\n\n\n\n<p>During feature development, if you customized something or discussed a new requirement directly in chat, update the spec right away. At the very least, at the end of each feature cycle, take a moment to ask your AI Coding Agent to update the spec files with everything learned along the way \u2014 especially the non-technical decisions.<\/p>\n\n\n\n<p>A human or an AI should be able to fully recreate the feature and understand all its requirements just by reading the spec.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Keep it updated.<\/p>\n<\/blockquote>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I see people saying Spec Driven Development is the way to produce good software using AI Coding Agents (totally agree)\u2014something as the natural evolution of vibe coding. But whenever I see examples or videos of people explaining it, they always involve projects built from scratch or really simple ones. In the following paragraphs, I expect [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4106,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-4105","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tecnologia"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Spec-Driven Development - A definitive guide for Github Spec Kit - Blog do Andr\u00e9 Felizardo<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.andrefelizardo.com.br\/blog\/spec-driven-development-a-definitive-guide-for-github-spec-kit\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spec-Driven Development - A definitive guide for Github Spec Kit - Blog do Andr\u00e9 Felizardo\" \/>\n<meta property=\"og:description\" content=\"I see people saying Spec Driven Development is the way to produce good software using AI Coding Agents (totally agree)\u2014something as the natural evolution of vibe coding. But whenever I see examples or videos of people explaining it, they always involve projects built from scratch or really simple ones. In the following paragraphs, I expect [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.andrefelizardo.com.br\/blog\/spec-driven-development-a-definitive-guide-for-github-spec-kit\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog do Andr\u00e9 Felizardo\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-26T17:51:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-26T17:51:34+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2026\/05\/github-spec-kit-flowpng.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1159\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Felizardo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Felizardo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/spec-driven-development-a-definitive-guide-for-github-spec-kit\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/spec-driven-development-a-definitive-guide-for-github-spec-kit\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Felizardo\",\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/7ffba68b251851fb519600e2e387a02b\"},\"headline\":\"Spec-Driven Development &#8211; A definitive guide for Github Spec Kit\",\"datePublished\":\"2026-05-26T17:51:30+00:00\",\"dateModified\":\"2026-05-26T17:51:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/spec-driven-development-a-definitive-guide-for-github-spec-kit\\\/\"},\"wordCount\":937,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/spec-driven-development-a-definitive-guide-for-github-spec-kit\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/github-spec-kit-flowpng.png\",\"articleSection\":[\"Tecnologia\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/spec-driven-development-a-definitive-guide-for-github-spec-kit\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/spec-driven-development-a-definitive-guide-for-github-spec-kit\\\/\",\"url\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/spec-driven-development-a-definitive-guide-for-github-spec-kit\\\/\",\"name\":\"Spec-Driven Development - A definitive guide for Github Spec Kit - Blog do Andr\u00e9 Felizardo\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/spec-driven-development-a-definitive-guide-for-github-spec-kit\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/spec-driven-development-a-definitive-guide-for-github-spec-kit\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/github-spec-kit-flowpng.png\",\"datePublished\":\"2026-05-26T17:51:30+00:00\",\"dateModified\":\"2026-05-26T17:51:34+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/7ffba68b251851fb519600e2e387a02b\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/spec-driven-development-a-definitive-guide-for-github-spec-kit\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/spec-driven-development-a-definitive-guide-for-github-spec-kit\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/spec-driven-development-a-definitive-guide-for-github-spec-kit\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/github-spec-kit-flowpng.png\",\"contentUrl\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/github-spec-kit-flowpng.png\",\"width\":1159,\"height\":768},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/spec-driven-development-a-definitive-guide-for-github-spec-kit\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Spec-Driven Development &#8211; A definitive guide for Github Spec Kit\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/\",\"name\":\"Blog do Andr\u00e9 Felizardo\",\"description\":\"Programa\u00e7\u00e3o de dev para dev\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/7ffba68b251851fb519600e2e387a02b\",\"name\":\"Andr\u00e9 Felizardo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/wp-content\\\/wphb-cache\\\/gravatar\\\/9f9\\\/9f92d8b773ef5acf9b462d6dab41d783x96.jpg\",\"url\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/wp-content\\\/wphb-cache\\\/gravatar\\\/9f9\\\/9f92d8b773ef5acf9b462d6dab41d783x96.jpg\",\"contentUrl\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/wp-content\\\/wphb-cache\\\/gravatar\\\/9f9\\\/9f92d8b773ef5acf9b462d6dab41d783x96.jpg\",\"caption\":\"Andr\u00e9 Felizardo\"},\"sameAs\":[\"http:\\\/\\\/www.andrefelizardo.com.br\"],\"url\":\"https:\\\/\\\/www.andrefelizardo.com.br\\\/blog\\\/author\\\/andrefelizardo\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Spec-Driven Development - A definitive guide for Github Spec Kit - Blog do Andr\u00e9 Felizardo","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.andrefelizardo.com.br\/blog\/spec-driven-development-a-definitive-guide-for-github-spec-kit\/","og_locale":"pt_BR","og_type":"article","og_title":"Spec-Driven Development - A definitive guide for Github Spec Kit - Blog do Andr\u00e9 Felizardo","og_description":"I see people saying Spec Driven Development is the way to produce good software using AI Coding Agents (totally agree)\u2014something as the natural evolution of vibe coding. But whenever I see examples or videos of people explaining it, they always involve projects built from scratch or really simple ones. In the following paragraphs, I expect [&hellip;]","og_url":"https:\/\/www.andrefelizardo.com.br\/blog\/spec-driven-development-a-definitive-guide-for-github-spec-kit\/","og_site_name":"Blog do Andr\u00e9 Felizardo","article_published_time":"2026-05-26T17:51:30+00:00","article_modified_time":"2026-05-26T17:51:34+00:00","og_image":[{"width":1159,"height":768,"url":"http:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2026\/05\/github-spec-kit-flowpng.png","type":"image\/png"}],"author":"Andr\u00e9 Felizardo","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Andr\u00e9 Felizardo","Est. tempo de leitura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.andrefelizardo.com.br\/blog\/spec-driven-development-a-definitive-guide-for-github-spec-kit\/#article","isPartOf":{"@id":"https:\/\/www.andrefelizardo.com.br\/blog\/spec-driven-development-a-definitive-guide-for-github-spec-kit\/"},"author":{"name":"Andr\u00e9 Felizardo","@id":"https:\/\/www.andrefelizardo.com.br\/blog\/#\/schema\/person\/7ffba68b251851fb519600e2e387a02b"},"headline":"Spec-Driven Development &#8211; A definitive guide for Github Spec Kit","datePublished":"2026-05-26T17:51:30+00:00","dateModified":"2026-05-26T17:51:34+00:00","mainEntityOfPage":{"@id":"https:\/\/www.andrefelizardo.com.br\/blog\/spec-driven-development-a-definitive-guide-for-github-spec-kit\/"},"wordCount":937,"commentCount":0,"image":{"@id":"https:\/\/www.andrefelizardo.com.br\/blog\/spec-driven-development-a-definitive-guide-for-github-spec-kit\/#primaryimage"},"thumbnailUrl":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2026\/05\/github-spec-kit-flowpng.png","articleSection":["Tecnologia"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.andrefelizardo.com.br\/blog\/spec-driven-development-a-definitive-guide-for-github-spec-kit\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.andrefelizardo.com.br\/blog\/spec-driven-development-a-definitive-guide-for-github-spec-kit\/","url":"https:\/\/www.andrefelizardo.com.br\/blog\/spec-driven-development-a-definitive-guide-for-github-spec-kit\/","name":"Spec-Driven Development - A definitive guide for Github Spec Kit - Blog do Andr\u00e9 Felizardo","isPartOf":{"@id":"https:\/\/www.andrefelizardo.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.andrefelizardo.com.br\/blog\/spec-driven-development-a-definitive-guide-for-github-spec-kit\/#primaryimage"},"image":{"@id":"https:\/\/www.andrefelizardo.com.br\/blog\/spec-driven-development-a-definitive-guide-for-github-spec-kit\/#primaryimage"},"thumbnailUrl":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2026\/05\/github-spec-kit-flowpng.png","datePublished":"2026-05-26T17:51:30+00:00","dateModified":"2026-05-26T17:51:34+00:00","author":{"@id":"https:\/\/www.andrefelizardo.com.br\/blog\/#\/schema\/person\/7ffba68b251851fb519600e2e387a02b"},"breadcrumb":{"@id":"https:\/\/www.andrefelizardo.com.br\/blog\/spec-driven-development-a-definitive-guide-for-github-spec-kit\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.andrefelizardo.com.br\/blog\/spec-driven-development-a-definitive-guide-for-github-spec-kit\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.andrefelizardo.com.br\/blog\/spec-driven-development-a-definitive-guide-for-github-spec-kit\/#primaryimage","url":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2026\/05\/github-spec-kit-flowpng.png","contentUrl":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2026\/05\/github-spec-kit-flowpng.png","width":1159,"height":768},{"@type":"BreadcrumbList","@id":"https:\/\/www.andrefelizardo.com.br\/blog\/spec-driven-development-a-definitive-guide-for-github-spec-kit\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.andrefelizardo.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Spec-Driven Development &#8211; A definitive guide for Github Spec Kit"}]},{"@type":"WebSite","@id":"https:\/\/www.andrefelizardo.com.br\/blog\/#website","url":"https:\/\/www.andrefelizardo.com.br\/blog\/","name":"Blog do Andr\u00e9 Felizardo","description":"Programa\u00e7\u00e3o de dev para dev","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.andrefelizardo.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/www.andrefelizardo.com.br\/blog\/#\/schema\/person\/7ffba68b251851fb519600e2e387a02b","name":"Andr\u00e9 Felizardo","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/wphb-cache\/gravatar\/9f9\/9f92d8b773ef5acf9b462d6dab41d783x96.jpg","url":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/wphb-cache\/gravatar\/9f9\/9f92d8b773ef5acf9b462d6dab41d783x96.jpg","contentUrl":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/wphb-cache\/gravatar\/9f9\/9f92d8b773ef5acf9b462d6dab41d783x96.jpg","caption":"Andr\u00e9 Felizardo"},"sameAs":["http:\/\/www.andrefelizardo.com.br"],"url":"https:\/\/www.andrefelizardo.com.br\/blog\/author\/andrefelizardo\/"}]}},"jetpack_featured_media_url":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2026\/05\/github-spec-kit-flowpng.png","jetpack_shortlink":"https:\/\/wp.me\/p6EP66-14d","jetpack-related-posts":[{"id":981,"url":"https:\/\/www.andrefelizardo.com.br\/blog\/jasmine-testando-seu-codigo-javascript\/","url_meta":{"origin":4105,"position":0},"title":"Jasmine &#8211; Testando seu c\u00f3digo JavaScript","author":"Andr\u00e9 Felizardo","date":"3 de fevereiro de 2018","format":false,"excerpt":"Conforme evolu\u00edmos na complexidade das aplica\u00e7\u00f5es de front-end que desenvolvemos, uma necessidade come\u00e7a a se tornar \u00f3bvia: testar o c\u00f3digo JavaScript. Jasmine \u00e9 um framework exatamente para resolver essa necessidade. Jasmine \u00e9 um framework de testes para o c\u00f3digo JavaScript, que adere aos conceitos de Behavior Driven Development. BDD Jasmine\u2026","rel":"","context":"Em &quot;Dev&quot;","block_context":{"text":"Dev","link":"https:\/\/www.andrefelizardo.com.br\/blog\/category\/dev\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2018\/02\/jasmine-logo.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2018\/02\/jasmine-logo.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2018\/02\/jasmine-logo.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2018\/02\/jasmine-logo.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":1183,"url":"https:\/\/www.andrefelizardo.com.br\/blog\/github-satellite-2020\/","url_meta":{"origin":4105,"position":1},"title":"Github Satellite 2020 &#8211; Muitas novidades","author":"Andr\u00e9 Felizardo","date":"7 de maio de 2020","format":false,"excerpt":"Satellite 2020 foi a primeira confer\u00eancia virtual do Github. O Github j\u00e1 tinha sido liberado gratuitamente para times nesse ano, lan\u00e7ado o app mobile, sem falar na compra do npm. E pensar que tinha gente na #bolhadev que achava que a Microsoft poderia destruir o Github. nem vou comentar o\u2026","rel":"","context":"Em &quot;Tecnologia&quot;","block_context":{"text":"Tecnologia","link":"https:\/\/www.andrefelizardo.com.br\/blog\/category\/tecnologia\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2020\/05\/capa-blog-github-satellite-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2020\/05\/capa-blog-github-satellite-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2020\/05\/capa-blog-github-satellite-1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2020\/05\/capa-blog-github-satellite-1.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2020\/05\/capa-blog-github-satellite-1.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2020\/05\/capa-blog-github-satellite-1.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":2179,"url":"https:\/\/www.andrefelizardo.com.br\/blog\/automatize-o-deploy-de-uma-aplicacao-react-com-github-actions-e-ftp\/","url_meta":{"origin":4105,"position":2},"title":"Automatize o deploy de uma aplica\u00e7\u00e3o React com Github Actions e FTP","author":"Andr\u00e9 Felizardo","date":"5 de julho de 2023","format":false,"excerpt":"O deploy de uma aplica\u00e7\u00e3o React \u00e9 uma etapa crucial para disponibilizar sua cria\u00e7\u00e3o na web. Neste artigo, vamos explorar como fazer o deploy de uma aplica\u00e7\u00e3o React feita com Vite em uma hospedagem compartilhada, usando as ferramentas Github Actions e FTP. Essa combina\u00e7\u00e3o permitir\u00e1 automatizar o processo de deploy,\u2026","rel":"","context":"Em &quot;Tecnologia&quot;","block_context":{"text":"Tecnologia","link":"https:\/\/www.andrefelizardo.com.br\/blog\/category\/tecnologia\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2023\/07\/Automatizando-deploy-react.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2023\/07\/Automatizando-deploy-react.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2023\/07\/Automatizando-deploy-react.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2023\/07\/Automatizando-deploy-react.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2023\/07\/Automatizando-deploy-react.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2023\/07\/Automatizando-deploy-react.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":46,"url":"https:\/\/www.andrefelizardo.com.br\/blog\/a-tag-main\/","url_meta":{"origin":4105,"position":3},"title":"A tag MAIN","author":"Andr\u00e9 Felizardo","date":"3 de mar\u00e7o de 2015","format":false,"excerpt":"A tag MAIN \u00e9 uma tag \"nova\" (lan\u00e7ada em 2013), pouco utilizada e pouco conhecida pela maioria dos front-ends. Assim como as outras novas tags do HTML5 (header, nav, footer, aside, article) sua fun\u00e7\u00e3o sem\u00e2ntica \u00e9 importante. A tag\u00a0<main> define o conte\u00fado principal da p\u00e1gina ou da aplica\u00e7\u00e3o. Dentro desta\u2026","rel":"","context":"Em &quot;Tecnologia&quot;","block_context":{"text":"Tecnologia","link":"https:\/\/www.andrefelizardo.com.br\/blog\/category\/tecnologia\/"},"img":{"alt_text":"Tag Main","src":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/01\/front-end-development.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/01\/front-end-development.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/01\/front-end-development.jpg?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":438,"url":"https:\/\/www.andrefelizardo.com.br\/blog\/o-que-e-angularjs\/","url_meta":{"origin":4105,"position":4},"title":"O que \u00e9 AngularJS","author":"Andr\u00e9 Felizardo","date":"14 de dezembro de 2015","format":false,"excerpt":"AngularJS \u00e9 um framework para o desenvolvimento de aplica\u00e7\u00f5es web, utilizando a o JavaScript.\u00a0Seu objetivo \u00e9 aumentar aplicativos que podem ser acessados por um navegador web, sob o padr\u00e3o model\u2013view\u2013controller (MVC), em um esfor\u00e7o para facilitar tanto o desenvolvimento quanto o teste dos aplicativos. O que \u00e9 AngularJS? Hist\u00f3ria do\u2026","rel":"","context":"Em &quot;Dicas&quot;","block_context":{"text":"Dicas","link":"https:\/\/www.andrefelizardo.com.br\/blog\/category\/dicas\/"},"img":{"alt_text":"AngularJS","src":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2015\/12\/angularjs.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":683,"url":"https:\/\/www.andrefelizardo.com.br\/blog\/criando-pagina-com-rolagem-por-secao-html-css-jquery\/","url_meta":{"origin":4105,"position":5},"title":"Criando p\u00e1gina com rolagem por se\u00e7\u00e3o &#8211; HTML, CSS, jQuery","author":"Andr\u00e9 Felizardo","date":"2 de outubro de 2016","format":false,"excerpt":"Continuando a ajuda a meus brothers, depois de manipular os elementos com JavaScript, o meu mesmo amigo queria fazer um site com se\u00e7\u00f5es, onde toda vez que clicasse em algum bot\u00e3o, ele rolaria para a pr\u00f3xima se\u00e7\u00e3o. A ideia inicial dele era fazer com \u00e2ncoras, e sem JavaScript ou jQuery,\u2026","rel":"","context":"Em &quot;Curiosidades&quot;","block_context":{"text":"Curiosidades","link":"https:\/\/www.andrefelizardo.com.br\/blog\/category\/curiosidades\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.andrefelizardo.com.br\/blog\/wp-content\/uploads\/2016\/10\/html-css-jquery.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/posts\/4105","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/comments?post=4105"}],"version-history":[{"count":0,"href":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/posts\/4105\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/media\/4106"}],"wp:attachment":[{"href":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/media?parent=4105"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/categories?post=4105"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.andrefelizardo.com.br\/blog\/wp-json\/wp\/v2\/tags?post=4105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}