Achraf Ben Alaya
No Result
View All Result
  • Home
  • News
  • Blog
    • blazor
    • c#
    • Cloud
      • Azure
    • docker
    • sql
    • xamarin
    • Dapr
    • Tricks, Tips and Fixes
    • General Tips & Fix
  • AI
  • Cloud
  • Motivation
  • Courses
  • About
    • Resume
    • Privacy Policy
SUBSCRIBE
  • Home
  • News
  • Blog
    • blazor
    • c#
    • Cloud
      • Azure
    • docker
    • sql
    • xamarin
    • Dapr
    • Tricks, Tips and Fixes
    • General Tips & Fix
  • AI
  • Cloud
  • Motivation
  • Courses
  • About
    • Resume
    • Privacy Policy
No Result
View All Result
Achraf Ben Alaya
No Result
View All Result
ADVERTISEMENT
Home AI

I tried GitHub Spec Kit : An Honest Field Report

achraf by achraf
June 28, 2026
in AI, Blog, copilot
6 min read
0
0
SHARES
3
VIEWS
Share on FacebookShare on Twitter

I spent a session building a complete document upload and management feature into an existing Blazor Server dashboard app using GitHub Spec Kit and an AI coding agent. This is my unfiltered write-up: what Spec Kit is, what went well, what didn’t, and the practical numbers (model, rough token cost) behind it. (this is my first try , i will keep using it for the next 30 days and give another full 3à days feedback )

What I Was Building

The project “ContosoDashboard” is a .NET 10 / Blazor Server training app with EF Core on SQL Server, mock cookie auth, and role-based policies (Employee, TeamLead, ProjectManager, Administrator). The goal was to bolt on a full document management feature:

  • Upload files with metadata, validation, and a progress animation
  • Browse, filter, sort, and search documents
  • Download and in-browser preview (PDF/images)
  • Share documents with other users + notifications
  • Attach documents to tasks and projects
  • An admin-only audit log and usage report

Nothing exotic, but it touches the data layer, services, controllers, Razor pages, navigation, and CSS a realistic vertical slice.

Project url : MicrosoftLearning/ContosoDashboard-SSD: A company dashboard app used as starter code project for training on spec-driven development using GitHub Spec Kit and GitHub Copilot in Visual Studio Code.Training

What Spec Kit Actually Is

Spec Kit pushes a spec-driven development workflow. Instead of jumping straight to code, you move through a sequence of phases, each backed by a slash command:

  1. /speckit.constitution – establish project principles (security by default, layered architecture, YAGNI, incremental delivery).
  2. /speckit.specify – turn a stakeholder doc into a formal spec with user stories and acceptance criteria.
  3. /speckit.clarify – surface and resolve ambiguities before planning.
  4. /speckit.plan – produce a technical plan: data model, contracts, structure decisions.
  5. /speckit.tasks – break the plan into a numbered, dependency-ordered task list.
  6. /speckit.implement – execute the tasks.
  7. /speckit.converge – compare the running implementation against the spec, find gaps, and fix them.

What Went Well

The plan-to-tasks decomposition was genuinely good. Fifty tasks (T001–T050), grouped by user story and ordered by dependency, with explicit file paths in each task. Because every task named its target file, execution rarely got lost. The models came first, then services, then UI exactly the layered order you’d want.

Incremental, independently-testable stories. Each user story (P1–P9) was a checkpoint. Upload (the MVP) landed first; everything else built on it. If I’d run out of time at story 5, I’d still have had a coherent, shippable subset.

Security showed up by default. Files stored outside wwwroot, GUID-based filenames, an IFileStorageService abstraction for a future Azure swap, authorization checks at the service layer, and [Authorize] on every new page and controller. That came straight out of the constitution phase rather than being bolted on later.

The converge phase earned its keep. More on this below it’s where Spec Kit’s structure paid off when things broke.

What Did NOT Go Well

Here’s the honest part.

1. EnsureCreated() silently skipped my new tables. The app initializes its schema with context.Database.EnsureCreated(). That call only creates the database if it doesn’t already exist it does not add new tables to an existing one. So after implementing everything and getting a clean build, the first page load threw:

SqlException: Invalid object name 'Documents'.

The code was correct. The database was stale. No migration step existed, and nothing in the task list flagged that gap. The build passing gave a false sense of “done.” A green build is not a running app.

2. fix-up SQL didn’t match the model. To patch the missing tables without introducing EF migrations, I added idempotent CREATE TABLE IF NOT EXISTS SQL at startup. Then I got a second runtime error:

SqlException: Invalid column name 'UpdatedDate'.

the DDL drifted from the actual C# model LastModifiedDate instead of UpdatedDate , the agent should have used EF Core migrations from the start instead of EnsureCreated().

3. A first pass at download logging was wrong. the app was not working at all and i had SqlException: Invalid column name ‘UpdatedDate’ + SqlException: Invalid object name ‘Documents’. and i asked the /speckit.converge to analyse and fix it .

How Converge Saved Me

Both database errors were caught and fixed through /speckit.converge. The flow was: paste the runtime exception → the agent compares the implementation against the spec, plan, and tasks → it identifies the gap → appends a new numbered task (T051, T052) to tasks.md → fixes the code. The task list stayed honest about what was actually wrong, not just what was originally planned. That closed loop between “here’s the error” and “here’s the traceable fix” is the workflow’s strongest feature.

The Numbers: Model and Token Cost

  • Model used: Claude Opus 4.6, driving the agent inside VS Code.
  • Scope: ~13 new files and ~8 modified files, 50 planned tasks plus 2 convergence tasks, several full-file Razor pages (some 300+ lines), and multiple build/verify cycles.
  • Token usage: Since i was on 0 % while i started , i used almost 7 % from my token usage presnted below by the number of tokens

Would I Use Spec Kit Again?

Short Answer YES and Now , i’m still testing .

my feeling is its md files little overwhelmed.., reading and going through each of them looks little boring and really too much.

For now i see Spec Kit is useful for non-core developers or technical product people building prototypes, because it documents decisions, context, specs, and tradeoffs better than pure vibe coding.
For experienced developers on familiar projects, it can slow things down; its best use is for unclear domains or complex features where guided discovery helps uncover risks and better solutions.
I will keep testing for the next 30 days and we will see if i change my mind and i will share in a new blog post or maybe a youtube video .
Thanks for reading .

ShareTweet
Previous Post

I Let Five-AI Agents Build My App. Here’s Exactly What Happened.

Related Posts

AI

I Let Five-AI Agents Build My App. Here’s Exactly What Happened.

May 20, 2026
62
AI

GitHub Copilot Skills for Terraform: 5 On-Demand AI Assistants for Azure Container Apps

March 29, 2026
245
Azure

From Terraform to Autopilot: AI-Assisted Automation for Azure Container Apps  Part 3

March 29, 2026
1.6k
Azure

Building a Microservices Architecture on Azure Container Apps with Terraform Part 2

March 1, 2026
211
Blog

 2025 – Certifications, Community, and 50K Views

December 28, 2025
143
Azure

From Manual Terraform to AI-Assisted DevOps: Building an Azure Container Platform (Part 1)

December 23, 2025
318

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Terraform

Certifications

Microsoft certified trainer (MCT)

Recommended

Azure Elastic Job Tutorial: Automate Your SQL Jobs Efficiently

Azure Elastic Job Tutorial: Automate Your SQL Jobs Efficiently

June 23, 2024
292
My Trip to Turkey

My Trip to Turkey

February 5, 2022
392
The Significance of Azure DevSecOps: Best Practices for Securing Your Pipelines

The Significance of Azure DevSecOps: Best Practices for Securing Your Pipelines

August 17, 2023
463
Microsoft Teams

What’s new in Microsoft Teams

September 4, 2020
379
Configure postman / newman API tests in Azure DevOps

Configure postman / newman API tests in Azure DevOps

October 25, 2021
3.7k
Configuring Self-hosted Agent In Azure DevOps Pipeline

Configuring Self-hosted Agent In Azure DevOps Pipeline

April 13, 2023
1.4k
Facebook Twitter LinkedIn Youtube

I tried GitHub Spec Kit : An Honest Field Report

June 28, 2026

I Let Five-AI Agents Build My App. Here’s Exactly What Happened.

May 20, 2026

GitHub Copilot Skills for Terraform: 5 On-Demand AI Assistants for Azure Container Apps

March 29, 2026

Categories

  • AI (6)
  • Apps (1)
  • Azure (70)
  • blazor (2)
  • Blog (99)
  • c# (7)
  • Cloud (72)
  • copilot (4)
  • Courses (4)
  • Dapr (4)
  • docker (4)
  • Games (1)
  • General Tips & Fix (1)
  • Home (1)
  • Kubernetes Service (AKS) (1)
  • Motivation (3)
  • motivation (2)
  • News (9)
  • Resume (1)
  • sql (4)
  • Terrafrom (2)
  • Tricks, Tips and Fixes (4)
  • xamarin (5)
No Result
View All Result
  • Home
  • News
  • Blog
    • blazor
    • c#
    • Cloud
      • Azure
    • docker
    • sql
    • xamarin
    • Dapr
    • Tricks, Tips and Fixes
    • General Tips & Fix
  • AI
  • Cloud
  • Motivation
  • Courses
  • About
    • Resume
    • Privacy Policy