{"id":89191,"date":"2026-05-09T16:16:18","date_gmt":"2026-05-09T16:16:18","guid":{"rendered":"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/"},"modified":"2026-05-09T16:16:18","modified_gmt":"2026-05-09T16:16:18","slug":"meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents","status":"publish","type":"post","link":"https:\/\/youzum.net\/th\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/","title":{"rendered":"Meet GitHub Spec-Kit: An Open Source Toolkit for Spec-Driven Development with AI Coding Agents"},"content":{"rendered":"<p>If you have spent time using AI coding agents \u2014 GitHub Copilot, Claude Code, Gemini CLI \u2014 you have probably run into this situation: you describe what you want, the agent generates a block of code that looks correct, compiles, and then subtly misses the actual intent. This \u201cvibe-coding\u201d approach can work for quick prototypes but becomes less reliable when building mission-critical applications or working with existing codebases. The issue, as GitHub frames it, is not the coding agent\u2019s ability \u2014 it is the approach. Developers have been treating coding agents like search engines, when they should be treated more like literal-minded pair programmers who excel at pattern recognition but still need unambiguous instructions.<\/p>\n<p>To address this, GitHub has open sourced <strong><a href=\"https:\/\/github.com\/github\/spec-kit\" target=\"_blank\" rel=\"noreferrer noopener\">Spec-Kit<\/a><\/strong> \u2014 a toolkit designed to bring Spec-Driven Development (SDD) to AI coding workflows. The project currently has 90k+ stars and 8k+ forks on GitHub, and has become one of the faster-growing developer tooling repositories in recent memory.<\/p>\n<h3 class=\"wp-block-heading\"><strong>What is Spec-Driven Development?<\/strong><\/h3>\n<p>Spec-Driven Development inverts the traditional power structure of software development. Specifications do not serve code \u2014 code serves specifications. The Product Requirements Document (PRD) is not a guide for implementation; it is the source that generates implementation.<\/p>\n<p>In practice, this means you write a structured specification first \u2014 describing what you want to build and why, without specifying the tech stack \u2014 and then feed that into an AI coding agent as a grounding document. The spec becomes the source of truth that tools and AI agents use to generate, test, and validate code. The result is less guesswork, fewer surprises, and higher-quality code.<\/p>\n<p>This is distinct from \u201cdocumentation-first\u201d as traditionally practiced. SDD is not about writing exhaustive, dry requirements documents that nobody reads. It is not about waterfall planning or trying to predict the future through extensive planning exercises. And it is not about creating more bureaucracy that slows engineering teams down. The spec remains a living artifact \u2014 updated as requirements evolve, rather than filed away after project kickoff.<\/p>\n<h3 class=\"wp-block-heading\"><strong>What <\/strong><strong>Spec-Kit<\/strong> Actually Includes<\/h3>\n<p><strong>Spec-Kit<\/strong>has two key components: the Specify CLI, a helper command-line tool that bootstraps projects for SDD by downloading official templates for the coding agent and platform of your choice; and a set of templates and helper scripts that establish the foundation for the SDD experience \u2014 defining what a spec looks like, what a technical plan encompasses, and how it all breaks down into individual tasks that an AI agent can execute.<\/p>\n<p>The CLI is written in Python and requires Python 3.11+. Installation via <code>uv<\/code> is the recommended method:<\/p>\n<div class=\"dm-code-snippet dark dm-normal-version default no-background-mobile\">\n<div class=\"control-language\">\n<div class=\"dm-buttons\">\n<div class=\"dm-buttons-left\">\n<div class=\"dm-button-snippet red-button\"><\/div>\n<div class=\"dm-button-snippet orange-button\"><\/div>\n<div class=\"dm-button-snippet green-button\"><\/div>\n<\/div>\n<div class=\"dm-buttons-right\"><a><span class=\"dm-copy-text\">Copy Code<\/span><span class=\"dm-copy-confirmed\">Copied<\/span><span class=\"dm-error-message\">Use a different Browser<\/span><\/a><\/div>\n<\/div>\n<pre class=\"no-line-numbers\"><code class=\"no-wrap language-php\">uv tool install specify-cli --from git+https:\/\/github.com\/github\/spec-kit.git@vX.Y.Z\nspecify init &lt;PROJECT_NAME&gt;<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Once initialized, the agent has access to a set of slash commands that map directly to the SDD workflow. The <strong>core commands<\/strong> are:<\/p>\n<ul class=\"wp-block-list\">\n<li><code>\/speckit.constitution<\/code> \u2014 establishes the project\u2019s non-negotiable governing principles<\/li>\n<li><code>\/speckit.specify<\/code> \u2014 captures what you want to build, focused on the \u201cwhat\u201d and \u201cwhy\u201d without tech stack details<\/li>\n<li><code>\/speckit.plan<\/code> \u2014 generates the technical implementation plan given your chosen stack<\/li>\n<li><code>\/speckit.tasks<\/code> \u2014 breaks the plan into an actionable, dependency-ordered task list<\/li>\n<li><code>\/speckit.taskstoissues<\/code> \u2014 converts the generated task list into GitHub issues for tracking and execution<\/li>\n<li><code>\/speckit.implement<\/code> \u2014 executes those tasks using the AI coding agent<\/li>\n<\/ul>\n<p>There are also three <strong>optional commands<\/strong> for enhanced quality and validation:<\/p>\n<ul class=\"wp-block-list\">\n<li><code>\/speckit.clarify<\/code> \u2014 surfaces underspecified areas through structured, sequential questioning before a technical plan is created (recommended before <code>\/speckit.plan<\/code> to reduce rework downstream)<\/li>\n<li><code>\/speckit.analyze<\/code> \u2014 runs cross-artifact consistency and coverage analysis after <code>\/speckit.tasks<\/code> and before <code>\/speckit.implement<\/code><\/li>\n<li><code>\/speckit.checklist<\/code> \u2014 generates custom quality checklists that validate requirements completeness, clarity, and consistency<\/li>\n<\/ul>\n<p>An important addition is <code>constitution.md<\/code>. In the SDD context, a constitution document establishes a set of non-negotiable principles for a project \u2014 testing conventions, CLI-first requirements, organizational design system standards. These are captured once and referenced throughout every subsequent development phase.<\/p>\n<p><!-- GitHub Spec Kit \u2014 Step-by-Step Guide | WordPress Embed --><br \/>\n<!-- Paste this into a Custom HTML block in the WordPress block editor --><\/p>\n<div>\n<div class=\"sk-badge\">\n    <svg viewbox=\"0 0 16 16\"><path d=\"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z\"><\/path><\/svg><br \/>\n    GitHub Spec Kit\n  <\/div>\n<h2 class=\"sk-title\">How to Use GitHub Spec Kit: A Step-by-Step Guide<\/h2>\n<p class=\"sk-sub\">Spec-Driven Development (SDD) with AI coding agents \u2014 from installing the CLI to running your first implementation. Follows the official workflow from the <a href=\"https:\/\/github.com\/github\/spec-kit\">github\/spec-kit<\/a> repository.<\/p>\n<div class=\"sk-progress-wrap\">\n<div class=\"sk-progress-track\">\n<div class=\"sk-progress-fill\"><\/div>\n<\/div>\n<p>    <span class=\"sk-progress-label\">Step 1 of 10<\/span>\n  <\/p><\/div>\n<div class=\"sk-dots\"><\/div>\n<p>  <!-- STEP 1 --><\/p>\n<div class=\"sk-card active\" data-step=\"1\">\n<div class=\"sk-step-label\">Step 1 \u2014 Prerequisites<\/div>\n<h3 class=\"sk-step-title\">Make sure you have the right tools installed<\/h3>\n<p class=\"sk-step-body\">Before installing the Specify CLI, you need four things on your machine. Spec Kit is cross-platform and works on <strong>Linux, macOS, and Windows<\/strong>.<\/p>\n<ul class=\"sk-checklist\">\n<li><span class=\"ck\"><svg viewbox=\"0 0 12 12\"><\/svg><\/span><span><strong>Python 3.11+<\/strong> \u2014 download from <a href=\"https:\/\/www.python.org\/downloads\/\">python.org<\/a><\/span><\/li>\n<li><span class=\"ck\"><svg viewbox=\"0 0 12 12\"><\/svg><\/span><span><strong>uv<\/strong> (recommended) or <strong>pipx<\/strong> for package management \u2014 install uv from <a href=\"https:\/\/docs.astral.sh\/uv\/\">docs.astral.sh\/uv<\/a><\/span><\/li>\n<li><span class=\"ck\"><svg viewbox=\"0 0 12 12\"><\/svg><\/span><span><strong>Git<\/strong> \u2014 download from <a href=\"https:\/\/git-scm.com\/downloads\">git-scm.com<\/a><\/span><\/li>\n<li><span class=\"ck\"><svg viewbox=\"0 0 12 12\"><\/svg><\/span><span><strong>A supported AI coding agent<\/strong> \u2014 Claude Code, GitHub Copilot, Gemini CLI, Cursor, Windsurf, Codex CLI, or any of the 29 supported integrations<\/span><\/li>\n<\/ul>\n<div class=\"sk-tip\">\n      <span class=\"sk-icon\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/1f4a1.png\" alt=\"\ud83d\udca1\" class=\"wp-smiley\" \/><\/span><br \/>\n      <span><strong>Why uv?<\/strong> It manages tool installations globally, keeps them in your PATH, and makes upgrading easy with <code>uv tool list<\/code>, <code>uv tool upgrade<\/code>, and <code>uv tool uninstall<\/code>. It\u2019s the officially recommended method.<\/span>\n    <\/div>\n<div class=\"sk-footer\">\n      <span class=\"sk-counter\">1 \/ 10<\/span>\n<div class=\"sk-nav-btns\">\n        <button class=\"sk-btn\" disabled>\u2190 Back<\/button><br \/>\n        <button class=\"sk-btn primary\">Next \u2192<\/button>\n      <\/div>\n<\/div>\n<\/div>\n<p>  <!-- STEP 2 --><\/p>\n<div class=\"sk-card\" data-step=\"2\">\n<div class=\"sk-step-label\">Step 2 \u2014 Installation<\/div>\n<h3 class=\"sk-step-title\">Install the Specify CLI from GitHub<\/h3>\n<p class=\"sk-step-body\">The only official Spec Kit package is published directly from the GitHub repository. <strong>Do not install from PyPI<\/strong> \u2014 any package there with the same name is not maintained by the Spec Kit team.<\/p>\n<div class=\"sk-code\"><span class=\"comment\"># Persistent install (recommended) \u2014 replace vX.Y.Z with latest tag<\/span><br \/>\n<span class=\"cmd\">uv tool install<\/span> specify-cli <span class=\"flag\">\u2013from<\/span> git+https:\/\/github.com\/github\/spec-kit.git<span class=\"arg\">@vX.Y.Z<\/span>\n<p><span class=\"comment\"># Or using pipx<\/span><br \/>\n<span class=\"cmd\">pipx install<\/span> git+https:\/\/github.com\/github\/spec-kit.git<span class=\"arg\">@vX.Y.Z<\/span><\/p>\n<p><span class=\"comment\"># Verify installation<\/span><br \/>\n<span class=\"cmd\">specify<\/span> version<\/p><\/div>\n<div class=\"sk-warn\">\n      <span class=\"sk-icon\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/26a0.png\" alt=\"\u26a0\" class=\"wp-smiley\" \/><\/span><br \/>\n      <span>Check the <a href=\"https:\/\/github.com\/github\/spec-kit\/releases\">Releases page<\/a> for the latest tag (e.g. <code>v0.8.4<\/code>). Installing from <code>main<\/code> may include unreleased changes.<\/span>\n    <\/div>\n<div class=\"sk-tip\">\n      <span class=\"sk-icon\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/1f504.png\" alt=\"\ud83d\udd04\" class=\"wp-smiley\" \/><\/span><br \/>\n      <span><strong>One-time usage (no install):<\/strong> Run <code>uvx --from git+https:\/\/github.com\/github\/spec-kit.git@vX.Y.Z specify init &lt;PROJECT&gt;<\/code> to try without a persistent install.<\/span>\n    <\/div>\n<div class=\"sk-footer\">\n      <span class=\"sk-counter\">2 \/ 10<\/span>\n<div class=\"sk-nav-btns\">\n        <button class=\"sk-btn\">\u2190 Back<\/button><br \/>\n        <button class=\"sk-btn primary\">Next \u2192<\/button>\n      <\/div>\n<\/div>\n<\/div>\n<p>  <!-- STEP 3 --><\/p>\n<div class=\"sk-card\" data-step=\"3\">\n<div class=\"sk-step-label\">Step 3 \u2014 Initialize<\/div>\n<h3 class=\"sk-step-title\">Bootstrap your project with <code>specify init<\/code><\/h3>\n<p class=\"sk-step-body\">Navigate to your project folder and run <code>specify init<\/code>. The CLI detects which AI coding agent you have installed and sets up the right directory structure, templates, and commands automatically.<\/p>\n<div class=\"sk-code\"><span class=\"comment\"># New project in a new folder<\/span><br \/>\n<span class=\"cmd\">specify init<\/span> <span class=\"arg\">my-photo-app<\/span>\n<p><span class=\"comment\"># Initialize inside an existing directory<\/span><br \/>\n<span class=\"cmd\">specify init<\/span> . <span class=\"flag\">\u2013integration<\/span> <span class=\"arg\">claude<\/span><\/p>\n<p><span class=\"comment\"># Skills mode for Claude Code and Codex CLI<\/span><br \/>\n<span class=\"cmd\">specify init<\/span> . <span class=\"flag\">\u2013integration<\/span> <span class=\"arg\">codex<\/span> <span class=\"flag\">\u2013integration-options<\/span>=\u201d\u2013skills\u201d<\/p>\n<p><span class=\"comment\"># Check all required tools are present<\/span><br \/>\n<span class=\"cmd\">specify<\/span> check<\/p><\/div>\n<p class=\"sk-step-body\">After this, your project will contain a <code>.specify\/<\/code> directory with <code>memory\/<\/code>, <code>scripts\/<\/code>, <code>specs\/<\/code>, and <code>templates\/<\/code> subdirectories.<\/p>\n<div class=\"sk-tip\">\n      <span class=\"sk-icon\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/1f4a1.png\" alt=\"\ud83d\udca1\" class=\"wp-smiley\" \/><\/span><br \/>\n      <span><strong>Skills mode:<\/strong> Claude Code, Codex CLI, Kimi Code, Devin, and several other agents use a skills-based installation \u2014 files go into agent-specific directories (e.g. <code>.claude\/skills\/<\/code>) instead of slash-command prompt files. Run <code>specify integration list<\/code> to see which mode each agent uses.<\/span>\n    <\/div>\n<div class=\"sk-footer\">\n      <span class=\"sk-counter\">3 \/ 10<\/span>\n<div class=\"sk-nav-btns\">\n        <button class=\"sk-btn\">\u2190 Back<\/button><br \/>\n        <button class=\"sk-btn primary\">Next \u2192<\/button>\n      <\/div>\n<\/div>\n<\/div>\n<p>  <!-- STEP 4 --><\/p>\n<div class=\"sk-card\" data-step=\"4\">\n<div class=\"sk-step-label\">Step 4 \u2014 Constitution<\/div>\n<h3 class=\"sk-step-title\">Set project principles with <code>\/speckit.constitution<\/code><\/h3>\n<p class=\"sk-step-body\">The first command you run inside your agent is <code>\/speckit.constitution<\/code>. This creates a <code>constitution.md<\/code> file containing <strong>non-negotiable governing principles<\/strong> the agent follows throughout every subsequent phase. Run this <strong>once per project<\/strong>.<\/p>\n<div class=\"sk-code\"><span class=\"comment\"># Example \u2014 photo album app<\/span><br \/>\n<span class=\"cmd\">\/speckit.constitution<\/span> Create principles focused on:<br \/>\n\u2013 Code quality and test coverage standards<br \/>\n\u2013 User experience consistency across all screens<br \/>\n\u2013 Performance requirements for image-heavy interfaces<br \/>\n\u2013 No third-party image upload services \u2014 local storage only<\/div>\n<p class=\"sk-step-body\">This writes to <code>.specify\/memory\/constitution.md<\/code>. Think of it as standing instructions \u2014 things like \u201calways use TypeScript,\u201d \u201cnever introduce breaking API changes,\u201d or \u201cfollow our internal design system.\u201d<\/p>\n<div class=\"sk-footer\">\n      <span class=\"sk-counter\">4 \/ 10<\/span>\n<div class=\"sk-nav-btns\">\n        <button class=\"sk-btn\">\u2190 Back<\/button><br \/>\n        <button class=\"sk-btn primary\">Next \u2192<\/button>\n      <\/div>\n<\/div>\n<\/div>\n<p>  <!-- STEP 5 --><\/p>\n<div class=\"sk-card\" data-step=\"5\">\n<div class=\"sk-step-label\">Step 5 \u2014 Specification<\/div>\n<h3 class=\"sk-step-title\">Describe what to build with <code>\/speckit.specify<\/code><\/h3>\n<p class=\"sk-step-body\">Now describe what you want to build \u2014 focus entirely on the <strong>\u201cwhat\u201d and \u201cwhy.\u201d<\/strong> Do not mention the tech stack at this stage. The agent produces a <code>spec.md<\/code> with user stories and functional requirements.<\/p>\n<div class=\"sk-code\"><span class=\"comment\"># Example \u2014 photo album app spec<\/span><br \/>\n<span class=\"cmd\">\/speckit.specify<\/span> Build an application that organizes photos into albums.<br \/>\nAlbums are grouped by date and can be re-organized by dragging<br \/>\nand dropping on the main page. Albums are never nested inside<br \/>\nother albums. Within each album, photos are previewed in a<br \/>\ntile-like interface. Users can rename and delete albums but<br \/>\ncannot delete individual photos from within an album view.<\/div>\n<div class=\"sk-warn\">\n      <span class=\"sk-icon\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/26a0.png\" alt=\"\u26a0\" class=\"wp-smiley\" \/><\/span><br \/>\n      <span><strong>Do not mention tech stack here.<\/strong> Mixing \u201cwhat to build\u201d with \u201chow to build it\u201d at this stage leads to over-constrained specs. The tech stack comes in Step 7.<\/span>\n    <\/div>\n<p class=\"sk-step-body\">The output goes into <code>.specify\/specs\/001-photo-app\/spec.md<\/code> and a new Git branch is created automatically.<\/p>\n<div class=\"sk-footer\">\n      <span class=\"sk-counter\">5 \/ 10<\/span>\n<div class=\"sk-nav-btns\">\n        <button class=\"sk-btn\">\u2190 Back<\/button><br \/>\n        <button class=\"sk-btn primary\">Next \u2192<\/button>\n      <\/div>\n<\/div>\n<\/div>\n<p>  <!-- STEP 6 --><\/p>\n<div class=\"sk-card\" data-step=\"6\">\n<div class=\"sk-step-label\">Step 6 \u2014 Optional Quality Commands<\/div>\n<h3 class=\"sk-step-title\">Clarify and validate your spec before planning<\/h3>\n<p class=\"sk-step-body\">Before generating the technical plan, two optional commands help surface gaps and validate your specification. Both are recommended, and can be skipped for quick spikes or exploratory prototypes.<\/p>\n<div class=\"sk-opt-grid\">\n<div class=\"sk-opt-card\">\n<div class=\"sk-opt-cmd\">\/speckit.clarify<\/div>\n<div class=\"sk-opt-desc\">Structured, sequential questioning that records answers directly in a Clarifications section of the spec. Reduces rework downstream. Run <strong>before<\/strong> <code>\/speckit.plan<\/code>.<\/div>\n<\/div>\n<div class=\"sk-opt-card\">\n<div class=\"sk-opt-cmd\">\/speckit.checklist<\/div>\n<div class=\"sk-opt-desc\">Generates custom quality checklists that validate requirements completeness, clarity, and consistency \u2014 described in the README as \u201cunit tests for English.\u201d Run after clarification.<\/div>\n<\/div>\n<\/div>\n<div class=\"sk-code\"><span class=\"comment\"># Run clarification first<\/span><br \/>\n<span class=\"cmd\">\/speckit.clarify<\/span>\n<p><span class=\"comment\"># Then validate spec completeness and clarity<\/span><br \/>\n<span class=\"cmd\">\/speckit.checklist<\/span><\/p><\/div>\n<p class=\"sk-step-body\">During clarification, the agent might ask things like:<\/p>\n<ul class=\"sk-checklist\">\n<li><span class=\"ck\"><svg viewbox=\"0 0 12 12\"><\/svg><\/span><span>Should albums support multiple selection for batch operations?<\/span><\/li>\n<li><span class=\"ck\"><svg viewbox=\"0 0 12 12\"><\/svg><\/span><span>Is there a maximum number of photos per album?<\/span><\/li>\n<li><span class=\"ck\"><svg viewbox=\"0 0 12 12\"><\/svg><\/span><span>Should drag-and-drop work on mobile, or desktop only?<\/span><\/li>\n<\/ul>\n<div class=\"sk-tip\">\n      <span class=\"sk-icon\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/1f4a1.png\" alt=\"\ud83d\udca1\" class=\"wp-smiley\" \/><\/span><br \/>\n      <span>If intentionally skipping clarification, explicitly tell the agent \u2014 otherwise it may block waiting on missing clarifications before allowing you to proceed to planning.<\/span>\n    <\/div>\n<div class=\"sk-footer\">\n      <span class=\"sk-counter\">6 \/ 10<\/span>\n<div class=\"sk-nav-btns\">\n        <button class=\"sk-btn\">\u2190 Back<\/button><br \/>\n        <button class=\"sk-btn primary\">Next \u2192<\/button>\n      <\/div>\n<\/div>\n<\/div>\n<p>  <!-- STEP 7 --><\/p>\n<div class=\"sk-card\" data-step=\"7\">\n<div class=\"sk-step-label\">Step 7 \u2014 Technical Plan<\/div>\n<h3 class=\"sk-step-title\">Define the stack with <code>\/speckit.plan<\/code><\/h3>\n<p class=\"sk-step-body\">Now specify the tech stack and architecture. The agent generates a <code>plan.md<\/code>, a <code>data-model.md<\/code>, a <code>research.md<\/code>, and a <code>quickstart.md<\/code>.<\/p>\n<div class=\"sk-code\"><span class=\"comment\"># Example \u2014 photo album app plan<\/span><br \/>\n<span class=\"cmd\">\/speckit.plan<\/span> Use Vite with vanilla HTML, CSS, and JavaScript.<br \/>\nKeep third-party libraries to a minimum. Images are not uploaded<br \/>\nanywhere \u2014 metadata is stored in a local SQLite database via<br \/>\na lightweight Express backend. Drag-and-drop uses the native<br \/>\nHTML5 Drag and Drop API.<\/div>\n<p class=\"sk-step-body\">Your directory after this step:<\/p>\n<div class=\"sk-code\">.specify\/specs\/001-photo-app\/<br \/>\n  \u251c\u2500\u2500 spec.md<br \/>\n  \u251c\u2500\u2500 plan.md<br \/>\n  \u251c\u2500\u2500 data-model.md<br \/>\n  \u251c\u2500\u2500 research.md<br \/>\n  \u2514\u2500\u2500 quickstart.md<\/div>\n<div class=\"sk-tip\">\n      <span class=\"sk-icon\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/1f4a1.png\" alt=\"\ud83d\udca1\" class=\"wp-smiley\" \/><\/span><br \/>\n      <span>Check <code>research.md<\/code> to verify the correct tech stack was chosen. If a rapidly-changing framework is involved, ask the agent to research the specific installed version before moving forward.<\/span>\n    <\/div>\n<div class=\"sk-footer\">\n      <span class=\"sk-counter\">7 \/ 10<\/span>\n<div class=\"sk-nav-btns\">\n        <button class=\"sk-btn\">\u2190 Back<\/button><br \/>\n        <button class=\"sk-btn primary\">Next \u2192<\/button>\n      <\/div>\n<\/div>\n<\/div>\n<p>  <!-- STEP 8 --><\/p>\n<div class=\"sk-card\" data-step=\"8\">\n<div class=\"sk-step-label\">Step 8 \u2014 Task Breakdown<\/div>\n<h3 class=\"sk-step-title\">Generate tasks with <code>\/speckit.tasks<\/code> and <code>\/speckit.taskstoissues<\/code><\/h3>\n<p class=\"sk-step-body\">Run <code>\/speckit.tasks<\/code> to produce a <code>tasks.md<\/code> with the full implementation roadmap. Tasks are organized by user story, dependency-ordered, and annotated with parallel execution markers.<\/p>\n<div class=\"sk-code\"><span class=\"cmd\">\/speckit.tasks<\/span>\n<p><span class=\"comment\"># tasks.md output structure (example excerpt):<\/span><br \/>\n## User Story: Album Management<br \/>\n\u2013 [ ] Create SQLite schema: albums, photos tables<br \/>\n\u2013 [ ] [P] Build Express GET \/albums endpoint<br \/>\n\u2013 [ ] [P] Build Express POST \/albums endpoint<br \/>\n\u2013 [ ] [P] Implement album rename PUT \/albums\/:id<br \/>\n## Checkpoint: Validate album CRUD independently<\/p><\/div>\n<p class=\"sk-step-body\">The <code>[P]<\/code> marker indicates tasks that can run in parallel. Each user story section ends with a <strong>Checkpoint<\/strong> to validate that phase\u2019s functionality works independently before the next begins. Optionally, convert tasks to GitHub Issues:<\/p>\n<div class=\"sk-code\"><span class=\"cmd\">\/speckit.taskstoissues<\/span><\/div>\n<div class=\"sk-footer\">\n      <span class=\"sk-counter\">8 \/ 10<\/span>\n<div class=\"sk-nav-btns\">\n        <button class=\"sk-btn\">\u2190 Back<\/button><br \/>\n        <button class=\"sk-btn primary\">Next \u2192<\/button>\n      <\/div>\n<\/div>\n<\/div>\n<p>  <!-- STEP 9 --><\/p>\n<div class=\"sk-card\" data-step=\"9\">\n<div class=\"sk-step-label\">Step 9 \u2014 Cross-Artifact Analysis<\/div>\n<h3 class=\"sk-step-title\">Validate consistency with <code>\/speckit.analyze<\/code><\/h3>\n<p class=\"sk-step-body\"><strong>After generating tasks<\/strong> and before running implementation, run the optional <code>\/speckit.analyze<\/code> command. It performs a cross-artifact consistency and coverage check across the spec, plan, data model, and tasks to ensure everything is aligned.<\/p>\n<div class=\"sk-code\"><span class=\"cmd\">\/speckit.analyze<\/span><\/div>\n<p class=\"sk-step-body\">The agent will flag issues such as:<\/p>\n<ul class=\"sk-checklist\">\n<li><span class=\"ck\"><svg viewbox=\"0 0 12 12\"><\/svg><\/span><span>A user story in <code>spec.md<\/code> with no corresponding task in <code>tasks.md<\/code><\/span><\/li>\n<li><span class=\"ck\"><svg viewbox=\"0 0 12 12\"><\/svg><\/span><span>The plan referencing a database table that is undefined in the data model<\/span><\/li>\n<li><span class=\"ck\"><svg viewbox=\"0 0 12 12\"><\/svg><\/span><span>A behaviour described in the spec that has no task assigned to implement it<\/span><\/li>\n<\/ul>\n<div class=\"sk-tip\">\n      <span class=\"sk-icon\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/1f4a1.png\" alt=\"\ud83d\udca1\" class=\"wp-smiley\" \/><\/span><br \/>\n      <span>This is a <strong>read-only<\/strong> command \u2014 it produces a findings report without modifying any files. Fix flagged issues before running <code>\/speckit.implement<\/code> to prevent cascading errors during code generation.<\/span>\n    <\/div>\n<div class=\"sk-footer\">\n      <span class=\"sk-counter\">9 \/ 10<\/span>\n<div class=\"sk-nav-btns\">\n        <button class=\"sk-btn\">\u2190 Back<\/button><br \/>\n        <button class=\"sk-btn primary\">Next \u2192<\/button>\n      <\/div>\n<\/div>\n<\/div>\n<p>  <!-- STEP 10 --><\/p>\n<div class=\"sk-card\" data-step=\"10\">\n<div class=\"sk-step-label\">Step 10 \u2014 Implementation<\/div>\n<h3 class=\"sk-step-title\">Execute with <code>\/speckit.implement<\/code><\/h3>\n<p class=\"sk-step-body\">With all artifacts in place, run <code>\/speckit.implement<\/code>. The agent first validates that <code>constitution.md<\/code>, <code>spec.md<\/code>, <code>plan.md<\/code>, and <code>tasks.md<\/code> are all present, then executes tasks in order \u2014 respecting dependencies and <code>[P]<\/code> parallel markers.<\/p>\n<div class=\"sk-code\"><span class=\"cmd\">\/speckit.implement<\/span>\n<p><span class=\"comment\"># The agent will:<br \/>\n# 1. Validate all prerequisite artifacts exist<br \/>\n# 2. Parse tasks.md for the correct execution order<br \/>\n# 3. Execute tasks, respecting [P] parallel markers<br \/>\n# 4. Report progress and handle errors at each step<\/span><\/p><\/div>\n<div class=\"sk-warn\">\n      <span class=\"sk-icon\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/26a0.png\" alt=\"\u26a0\" class=\"wp-smiley\" \/><\/span><br \/>\n      <span><strong>Local CLI tools must be installed.<\/strong> The agent will run commands like <code>npm<\/code>, <code>dotnet<\/code>, or <code>python<\/code> directly on your machine. Make sure all required runtimes are available before running this command.<\/span>\n    <\/div>\n<div class=\"sk-tip\">\n      <span class=\"sk-icon\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/1f501.png\" alt=\"\ud83d\udd01\" class=\"wp-smiley\" \/><\/span><br \/>\n      <span><strong>Adding a new feature?<\/strong> Skip <code>\/speckit.constitution<\/code> (runs once per project) and start from <code>\/speckit.specify<\/code> for each subsequent feature.<\/span>\n    <\/div>\n<div class=\"sk-footer\">\n      <span class=\"sk-counter\">10 \/ 10<\/span>\n<div class=\"sk-nav-btns\">\n        <button class=\"sk-btn\">\u2190 Back<\/button><br \/>\n        <button class=\"sk-btn primary\">\u2713 Done<\/button>\n      <\/div>\n<\/div>\n<\/div>\n<p>  <!-- Summary --><\/p>\n<div class=\"sk-summary\">\n<h4><img decoding=\"async\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/2705.png\" alt=\"\u2705\" class=\"wp-smiley\" \/> Full Spec Kit Workflow \u2014 Quick Reference<\/h4>\n<ul>\n<li>Install: <code>uv tool install specify-cli --from git+https:\/\/github.com\/github\/spec-kit.git@vX.Y.Z<\/code><\/li>\n<li>Init project: <code>specify init &lt;PROJECT&gt; --integration &lt;agent&gt;<\/code><\/li>\n<li>Set principles: <code>\/speckit.constitution<\/code> \u2014 run once per project<\/li>\n<li>Write spec: <code>\/speckit.specify<\/code> \u2014 describe <em>what<\/em> to build, not <em>how<\/em><\/li>\n<li>Clarify gaps: <code>\/speckit.clarify<\/code> (optional, recommended before plan)<\/li>\n<li>Validate spec: <code>\/speckit.checklist<\/code> (optional, after clarify)<\/li>\n<li>Generate plan: <code>\/speckit.plan<\/code> \u2014 specify tech stack and architecture<\/li>\n<li>Break into tasks: <code>\/speckit.tasks<\/code> + optional <code>\/speckit.taskstoissues<\/code><\/li>\n<li>Check consistency: <code>\/speckit.analyze<\/code> (optional, <strong>after tasks<\/strong>, before implement)<\/li>\n<li>Build it: <code>\/speckit.implement<\/code><\/li>\n<\/ul><\/div>\n<div class=\"sk-source\">Source: <a href=\"https:\/\/github.com\/github\/spec-kit\" target=\"_blank\">github.com\/github\/spec-kit<\/a> \u00b7 MIT License \u00b7 v0.8.4<\/div>\n<\/div>\n<h3 class=\"wp-block-heading\"><strong>The Development Phases<\/strong><\/h3>\n<p><strong>Spec-Kit<\/strong> supports three broad development scenarios. For greenfield projects, you start with high-level requirements, generate specifications, and plan implementation before writing any code. For iterative enhancement on existing codebases (\u201cbrownfield\u201d), you add features incrementally without discarding prior context. For legacy modernization, where the original intent is often lost to time, you capture essential business logic in a modern spec, design a fresh architecture in the plan, and let the AI rebuild the system without carrying forward inherited technical debt.<\/p>\n<p>The <code>\/speckit.tasks<\/code> command produces a <code>tasks.md<\/code> file with task breakdowns organized by user story, dependency ordering (so models are implemented before services, services before endpoints), parallel execution markers tagged <code>[P]<\/code>, exact file path specifications, and checkpoint validation between phases.<\/p>\n<h3 class=\"wp-block-heading\"><strong>Agent Compatibility and Extensibility<\/strong><\/h3>\n<p>The Specify CLI supports a wide range of AI coding agents. When you run <code>specify init<\/code>, the CLI sets up the appropriate command files, context rules, and directory structures for your chosen AI coding agent. <strong>Spec-Kit<\/strong> currently supports 29 named integrations \u2014 including Claude Code, GitHub Copilot, Gemini CLI, Cursor, Windsurf, Codex CLI, Qwen Code, Kiro CLI, Goose, Mistral Vibe, Devin for Terminal, Roo Code, and IBM Bob \u2014 along with a <code>Generic<\/code> integration for any agent not on the list.<\/p>\n<p>An important distinction: for several agents, <strong>Spec-Kit<\/strong> installs <strong>agent skills<\/strong> rather than slash-command prompt files. Claude Code, for example, uses a skills-based integration that places files under <code>.claude\/skills\/<\/code>. Codex CLI similarly uses skills invoked as <code>$speckit-&lt;command&gt;<\/code>. For these integrations, pass <code>--integration-options=\"--skills\"<\/code> during <code>specify init<\/code> to install in skills mode.<\/p>\n<p>The toolkit can also be extended through two mechanisms. Extensions introduce new commands and templates \u2014 for example, Jira or Azure DevOps integration, post-implementation code review, OWASP LLM threat modeling, or V-Model test traceability. Presets override existing templates and commands to enforce organizational or regulatory standards without adding new capabilities. There are currently over 70 community-contributed extensions in the catalog, covering categories including <code>docs<\/code>, <code>code<\/code>, <code>process<\/code>, <code>integration<\/code>, and <code>visibility<\/code>, each flagged as either Read-only or Read+Write in effect.<\/p>\n<h3 class=\"wp-block-heading\"><strong>Key Takeaways<\/strong><\/h3>\n<ul class=\"wp-block-list\">\n<li>GitHub\u2019s <strong>Spec-Kit<\/strong> is an open source toolkit that introduces a structured Spec-Driven Development (SDD) workflow for AI coding agents, moving away from ad-hoc prompting.<\/li>\n<li>The core workflow runs through six commands: <code>\/speckit.constitution<\/code> \u2192 <code>\/speckit.specify<\/code> \u2192 <code>\/speckit.plan<\/code> \u2192 <code>\/speckit.tasks<\/code> \u2192 <code>\/speckit.taskstoissues<\/code> \u2192 <code>\/speckit.implement<\/code>, with three additional optional commands for validation.<\/li>\n<li><strong>Spec-Kit<\/strong> supports 29 named AI coding agent integrations plus a Generic option; some agents (including Claude Code and Codex CLI) use a skills-based installation mode rather than slash commands.<\/li>\n<li>A growing ecosystem of 70+ community extensions adds integrations with tools like Jira, Azure DevOps, and GitHub Issues, plus quality gates for security, testing, and drift detection.<\/li>\n<li>The project is self-described as an experiment and is best suited for greenfield builds and large feature work rather than small bug fixes.<\/li>\n<\/ul>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<p>Check out\u00a0the\u00a0<strong><a href=\"https:\/\/github.com\/github\/spec-kit\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub Repo here<\/a>.\u00a0<\/strong>Also,\u00a0feel free to follow us on\u00a0<strong><a href=\"https:\/\/x.com\/intent\/follow?screen_name=marktechpost\" target=\"_blank\" rel=\"noreferrer noopener\"><mark>Twitter<\/mark><\/a><\/strong>\u00a0and don\u2019t forget to join our\u00a0<strong><a href=\"https:\/\/www.reddit.com\/r\/machinelearningnews\/\" target=\"_blank\" rel=\"noreferrer noopener\">150k+ ML SubReddit<\/a><\/strong>\u00a0and Subscribe to\u00a0<strong><a href=\"https:\/\/www.aidevsignals.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">our Newsletter<\/a><\/strong>. Wait! are you on telegram?\u00a0<strong><a href=\"https:\/\/t.me\/machinelearningresearchnews\" target=\"_blank\" rel=\"noreferrer noopener\">now you can join us on telegram as well.<\/a><\/strong><\/p>\n<p>Need to partner with us for promoting your GitHub Repo OR Hugging Face Page OR Product Release OR Webinar etc.?\u00a0<strong><a href=\"https:\/\/forms.gle\/MTNLpmJtsFA3VRVd9\" target=\"_blank\" rel=\"noreferrer noopener\"><mark>Connect with us<\/mark><\/a><\/strong><\/p>\n<p>The post <a href=\"https:\/\/www.marktechpost.com\/2026\/05\/08\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/\">Meet GitHub Spec-Kit: An Open Source Toolkit for Spec-Driven Development with AI Coding Agents<\/a> appeared first on <a href=\"https:\/\/www.marktechpost.com\/\">MarkTechPost<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>If you have spent time using AI coding agents \u2014 GitHub Copilot, Claude Code, Gemini CLI \u2014 you have probably run into this situation: you describe what you want, the agent generates a block of code that looks correct, compiles, and then subtly misses the actual intent. This \u201cvibe-coding\u201d approach can work for quick prototypes but becomes less reliable when building mission-critical applications or working with existing codebases. The issue, as GitHub frames it, is not the coding agent\u2019s ability \u2014 it is the approach. Developers have been treating coding agents like search engines, when they should be treated more like literal-minded pair programmers who excel at pattern recognition but still need unambiguous instructions. To address this, GitHub has open sourced Spec-Kit \u2014 a toolkit designed to bring Spec-Driven Development (SDD) to AI coding workflows. The project currently has 90k+ stars and 8k+ forks on GitHub, and has become one of the faster-growing developer tooling repositories in recent memory. What is Spec-Driven Development? Spec-Driven Development inverts the traditional power structure of software development. Specifications do not serve code \u2014 code serves specifications. The Product Requirements Document (PRD) is not a guide for implementation; it is the source that generates implementation. In practice, this means you write a structured specification first \u2014 describing what you want to build and why, without specifying the tech stack \u2014 and then feed that into an AI coding agent as a grounding document. The spec becomes the source of truth that tools and AI agents use to generate, test, and validate code. The result is less guesswork, fewer surprises, and higher-quality code. This is distinct from \u201cdocumentation-first\u201d as traditionally practiced. SDD is not about writing exhaustive, dry requirements documents that nobody reads. It is not about waterfall planning or trying to predict the future through extensive planning exercises. And it is not about creating more bureaucracy that slows engineering teams down. The spec remains a living artifact \u2014 updated as requirements evolve, rather than filed away after project kickoff. What Spec-Kit Actually Includes Spec-Kithas two key components: the Specify CLI, a helper command-line tool that bootstraps projects for SDD by downloading official templates for the coding agent and platform of your choice; and a set of templates and helper scripts that establish the foundation for the SDD experience \u2014 defining what a spec looks like, what a technical plan encompasses, and how it all breaks down into individual tasks that an AI agent can execute. The CLI is written in Python and requires Python 3.11+. Installation via uv is the recommended method: Copy CodeCopiedUse a different Browser uv tool install specify-cli &#8211;from git+https:\/\/github.com\/github\/spec-kit.git@vX.Y.Z specify init &lt;PROJECT_NAME&gt; Once initialized, the agent has access to a set of slash commands that map directly to the SDD workflow. The core commands are: \/speckit.constitution \u2014 establishes the project\u2019s non-negotiable governing principles \/speckit.specify \u2014 captures what you want to build, focused on the \u201cwhat\u201d and \u201cwhy\u201d without tech stack details \/speckit.plan \u2014 generates the technical implementation plan given your chosen stack \/speckit.tasks \u2014 breaks the plan into an actionable, dependency-ordered task list \/speckit.taskstoissues \u2014 converts the generated task list into GitHub issues for tracking and execution \/speckit.implement \u2014 executes those tasks using the AI coding agent There are also three optional commands for enhanced quality and validation: \/speckit.clarify \u2014 surfaces underspecified areas through structured, sequential questioning before a technical plan is created (recommended before \/speckit.plan to reduce rework downstream) \/speckit.analyze \u2014 runs cross-artifact consistency and coverage analysis after \/speckit.tasks and before \/speckit.implement \/speckit.checklist \u2014 generates custom quality checklists that validate requirements completeness, clarity, and consistency An important addition is constitution.md. In the SDD context, a constitution document establishes a set of non-negotiable principles for a project \u2014 testing conventions, CLI-first requirements, organizational design system standards. These are captured once and referenced throughout every subsequent development phase. GitHub Spec Kit How to Use GitHub Spec Kit: A Step-by-Step Guide Spec-Driven Development (SDD) with AI coding agents \u2014 from installing the CLI to running your first implementation. Follows the official workflow from the github\/spec-kit repository. Step 1 of 10 Step 1 \u2014 Prerequisites Make sure you have the right tools installed Before installing the Specify CLI, you need four things on your machine. Spec Kit is cross-platform and works on Linux, macOS, and Windows. Python 3.11+ \u2014 download from python.org uv (recommended) or pipx for package management \u2014 install uv from docs.astral.sh\/uv Git \u2014 download from git-scm.com A supported AI coding agent \u2014 Claude Code, GitHub Copilot, Gemini CLI, Cursor, Windsurf, Codex CLI, or any of the 29 supported integrations Why uv? It manages tool installations globally, keeps them in your PATH, and makes upgrading easy with uv tool list, uv tool upgrade, and uv tool uninstall. It\u2019s the officially recommended method. 1 \/ 10 \u2190 Back Next \u2192 Step 2 \u2014 Installation Install the Specify CLI from GitHub The only official Spec Kit package is published directly from the GitHub repository. Do not install from PyPI \u2014 any package there with the same name is not maintained by the Spec Kit team. # Persistent install (recommended) \u2014 replace vX.Y.Z with latest tag uv tool install specify-cli \u2013from git+https:\/\/github.com\/github\/spec-kit.git@vX.Y.Z # Or using pipx pipx install git+https:\/\/github.com\/github\/spec-kit.git@vX.Y.Z # Verify installation specify version Check the Releases page for the latest tag (e.g. v0.8.4). Installing from main may include unreleased changes. One-time usage (no install): Run uvx &#8211;from git+https:\/\/github.com\/github\/spec-kit.git@vX.Y.Z specify init &lt;PROJECT&gt; to try without a persistent install. 2 \/ 10 \u2190 Back Next \u2192 Step 3 \u2014 Initialize Bootstrap your project with specify init Navigate to your project folder and run specify init. The CLI detects which AI coding agent you have installed and sets up the right directory structure, templates, and commands automatically. # New project in a new folder specify init my-photo-app # Initialize inside an existing directory specify init . \u2013integration claude # Skills mode for Claude Code and Codex CLI specify init . \u2013integration codex \u2013integration-options=\u201d\u2013skills\u201d # Check all required tools are present specify check After this, your project<\/p>","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"pmpro_default_level":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_pvb_checkbox_block_on_post":false,"footnotes":""},"categories":[52,5,7,1],"tags":[],"class_list":["post-89191","post","type-post","status-publish","format-standard","hentry","category-ai-club","category-committee","category-news","category-uncategorized","pmpro-has-access"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Meet GitHub Spec-Kit: An Open Source Toolkit for Spec-Driven Development with AI Coding Agents - YouZum<\/title>\n<meta name=\"description\" content=\"\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e42\u0e14\u0e23\u0e19\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/youzum.net\/th\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/\" \/>\n<meta property=\"og:locale\" content=\"th_TH\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Meet GitHub Spec-Kit: An Open Source Toolkit for Spec-Driven Development with AI Coding Agents - YouZum\" \/>\n<meta property=\"og:description\" content=\"\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e42\u0e14\u0e23\u0e19\" \/>\n<meta property=\"og:url\" content=\"https:\/\/youzum.net\/th\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/\" \/>\n<meta property=\"og:site_name\" content=\"YouZum\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DroneAssociationTH\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-09T16:16:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/1f4a1.png\" \/>\n<meta name=\"author\" content=\"admin NU\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin NU\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 \u0e19\u0e32\u0e17\u0e35\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/\"},\"author\":{\"name\":\"admin NU\",\"@id\":\"https:\/\/yousum.gpucore.co\/#\/schema\/person\/97fa48242daf3908e4d9a5f26f4a059c\"},\"headline\":\"Meet GitHub Spec-Kit: An Open Source Toolkit for Spec-Driven Development with AI Coding Agents\",\"datePublished\":\"2026-05-09T16:16:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/\"},\"wordCount\":2416,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/yousum.gpucore.co\/#organization\"},\"image\":{\"@id\":\"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/1f4a1.png\",\"articleSection\":[\"AI\",\"Committee\",\"News\",\"Uncategorized\"],\"inLanguage\":\"th\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/\",\"url\":\"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/\",\"name\":\"Meet GitHub Spec-Kit: An Open Source Toolkit for Spec-Driven Development with AI Coding Agents - YouZum\",\"isPartOf\":{\"@id\":\"https:\/\/yousum.gpucore.co\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/1f4a1.png\",\"datePublished\":\"2026-05-09T16:16:18+00:00\",\"description\":\"\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e42\u0e14\u0e23\u0e19\",\"breadcrumb\":{\"@id\":\"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/#breadcrumb\"},\"inLanguage\":\"th\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"th\",\"@id\":\"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/#primaryimage\",\"url\":\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/1f4a1.png\",\"contentUrl\":\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/1f4a1.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/youzum.net\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Meet GitHub Spec-Kit: An Open Source Toolkit for Spec-Driven Development with AI Coding Agents\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/yousum.gpucore.co\/#website\",\"url\":\"https:\/\/yousum.gpucore.co\/\",\"name\":\"YouSum\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/yousum.gpucore.co\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/yousum.gpucore.co\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"th\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/yousum.gpucore.co\/#organization\",\"name\":\"Drone Association Thailand\",\"url\":\"https:\/\/yousum.gpucore.co\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"th\",\"@id\":\"https:\/\/yousum.gpucore.co\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/youzum.net\/wp-content\/uploads\/2024\/11\/tranparent-logo.png\",\"contentUrl\":\"https:\/\/youzum.net\/wp-content\/uploads\/2024\/11\/tranparent-logo.png\",\"width\":300,\"height\":300,\"caption\":\"Drone Association Thailand\"},\"image\":{\"@id\":\"https:\/\/yousum.gpucore.co\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/DroneAssociationTH\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/yousum.gpucore.co\/#\/schema\/person\/97fa48242daf3908e4d9a5f26f4a059c\",\"name\":\"admin NU\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"th\",\"@id\":\"https:\/\/yousum.gpucore.co\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/youzum.net\/wp-content\/uploads\/avatars\/2\/1746849356-bpfull.png\",\"contentUrl\":\"https:\/\/youzum.net\/wp-content\/uploads\/avatars\/2\/1746849356-bpfull.png\",\"caption\":\"admin NU\"},\"url\":\"https:\/\/youzum.net\/th\/members\/adminnu\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Meet GitHub Spec-Kit: An Open Source Toolkit for Spec-Driven Development with AI Coding Agents - YouZum","description":"\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e42\u0e14\u0e23\u0e19","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:\/\/youzum.net\/th\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/","og_locale":"th_TH","og_type":"article","og_title":"Meet GitHub Spec-Kit: An Open Source Toolkit for Spec-Driven Development with AI Coding Agents - YouZum","og_description":"\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e42\u0e14\u0e23\u0e19","og_url":"https:\/\/youzum.net\/th\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/","og_site_name":"YouZum","article_publisher":"https:\/\/www.facebook.com\/DroneAssociationTH\/","article_published_time":"2026-05-09T16:16:18+00:00","og_image":[{"url":"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/1f4a1.png","type":"","width":"","height":""}],"author":"admin NU","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin NU","Est. reading time":"13 \u0e19\u0e32\u0e17\u0e35"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/#article","isPartOf":{"@id":"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/"},"author":{"name":"admin NU","@id":"https:\/\/yousum.gpucore.co\/#\/schema\/person\/97fa48242daf3908e4d9a5f26f4a059c"},"headline":"Meet GitHub Spec-Kit: An Open Source Toolkit for Spec-Driven Development with AI Coding Agents","datePublished":"2026-05-09T16:16:18+00:00","mainEntityOfPage":{"@id":"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/"},"wordCount":2416,"commentCount":0,"publisher":{"@id":"https:\/\/yousum.gpucore.co\/#organization"},"image":{"@id":"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/#primaryimage"},"thumbnailUrl":"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/1f4a1.png","articleSection":["AI","Committee","News","Uncategorized"],"inLanguage":"th","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/","url":"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/","name":"Meet GitHub Spec-Kit: An Open Source Toolkit for Spec-Driven Development with AI Coding Agents - YouZum","isPartOf":{"@id":"https:\/\/yousum.gpucore.co\/#website"},"primaryImageOfPage":{"@id":"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/#primaryimage"},"image":{"@id":"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/#primaryimage"},"thumbnailUrl":"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/1f4a1.png","datePublished":"2026-05-09T16:16:18+00:00","description":"\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e42\u0e14\u0e23\u0e19","breadcrumb":{"@id":"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/#breadcrumb"},"inLanguage":"th","potentialAction":[{"@type":"ReadAction","target":["https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/"]}]},{"@type":"ImageObject","inLanguage":"th","@id":"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/#primaryimage","url":"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/1f4a1.png","contentUrl":"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/1f4a1.png"},{"@type":"BreadcrumbList","@id":"https:\/\/youzum.net\/meet-github-spec-kit-an-open-source-toolkit-for-spec-driven-development-with-ai-coding-agents\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/youzum.net\/"},{"@type":"ListItem","position":2,"name":"Meet GitHub Spec-Kit: An Open Source Toolkit for Spec-Driven Development with AI Coding Agents"}]},{"@type":"WebSite","@id":"https:\/\/yousum.gpucore.co\/#website","url":"https:\/\/yousum.gpucore.co\/","name":"YouSum","description":"","publisher":{"@id":"https:\/\/yousum.gpucore.co\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/yousum.gpucore.co\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"th"},{"@type":"Organization","@id":"https:\/\/yousum.gpucore.co\/#organization","name":"Drone Association Thailand","url":"https:\/\/yousum.gpucore.co\/","logo":{"@type":"ImageObject","inLanguage":"th","@id":"https:\/\/yousum.gpucore.co\/#\/schema\/logo\/image\/","url":"https:\/\/youzum.net\/wp-content\/uploads\/2024\/11\/tranparent-logo.png","contentUrl":"https:\/\/youzum.net\/wp-content\/uploads\/2024\/11\/tranparent-logo.png","width":300,"height":300,"caption":"Drone Association Thailand"},"image":{"@id":"https:\/\/yousum.gpucore.co\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DroneAssociationTH\/"]},{"@type":"Person","@id":"https:\/\/yousum.gpucore.co\/#\/schema\/person\/97fa48242daf3908e4d9a5f26f4a059c","name":"admin NU","image":{"@type":"ImageObject","inLanguage":"th","@id":"https:\/\/yousum.gpucore.co\/#\/schema\/person\/image\/","url":"https:\/\/youzum.net\/wp-content\/uploads\/avatars\/2\/1746849356-bpfull.png","contentUrl":"https:\/\/youzum.net\/wp-content\/uploads\/avatars\/2\/1746849356-bpfull.png","caption":"admin NU"},"url":"https:\/\/youzum.net\/th\/members\/adminnu\/"}]}},"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"admin NU","author_link":"https:\/\/youzum.net\/th\/members\/adminnu\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/youzum.net\/th\/category\/ai-club\/\" rel=\"category tag\">AI<\/a> <a href=\"https:\/\/youzum.net\/th\/category\/committee\/\" rel=\"category tag\">Committee<\/a> <a href=\"https:\/\/youzum.net\/th\/category\/news\/\" rel=\"category tag\">News<\/a> <a href=\"https:\/\/youzum.net\/th\/category\/uncategorized\/\" rel=\"category tag\">Uncategorized<\/a>","rttpg_excerpt":"If you have spent time using AI coding agents \u2014 GitHub Copilot, Claude Code, Gemini CLI \u2014 you have probably run into this situation: you describe what you want, the agent generates a block of code that looks correct, compiles, and then subtly misses the actual intent. This \u201cvibe-coding\u201d approach can work for quick prototypes&hellip;","_links":{"self":[{"href":"https:\/\/youzum.net\/th\/wp-json\/wp\/v2\/posts\/89191","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/youzum.net\/th\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/youzum.net\/th\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/youzum.net\/th\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/youzum.net\/th\/wp-json\/wp\/v2\/comments?post=89191"}],"version-history":[{"count":0,"href":"https:\/\/youzum.net\/th\/wp-json\/wp\/v2\/posts\/89191\/revisions"}],"wp:attachment":[{"href":"https:\/\/youzum.net\/th\/wp-json\/wp\/v2\/media?parent=89191"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/youzum.net\/th\/wp-json\/wp\/v2\/categories?post=89191"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/youzum.net\/th\/wp-json\/wp\/v2\/tags?post=89191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}