Heading image for post: Spec-Driven Estimation: How Devs Can Estimate Features Quickly and More Accurately with AI

Process AI

Spec-Driven Estimation: How Devs Can Estimate Features Quickly and More Accurately with AI

Profile picture of Craig Hafer

This post is a “sister” piece to Rocketeer Vinicius Negrisolo’s excellent article, Spec-Driven Development: How Product Owners Can Ship Features Faster with AI. If you haven’t read that one yet, I highly recommend checking it out first to get a solid understanding of Spec-Kit, which we’ll be using here to generate our estimates.

This post assumes you already have Spec-Kit set up. Vinny’s post (linked above) is a great resource for that, or you can visit the Spec-Kit GitHub repo and follow their documentation for installation.

Setting the Stage

Let me paint the picture for you: I received an email from a client with a clearly laid-out feature request and was asked to estimate what it might take to complete. The perfect “softball” pitch to see what Spec-Kit can really do.

I navigated to the project directory and initialized Spec-Kit.

It prompted me to choose my AI agent and shell. For my AI agent, I chose OpenCode— a fully open-source AI coding assistant built for the terminal.

I started up opencode from my terminal to begin working with Spec-Kit, established my constitution, and then ran:

/speckit.specify

I pasted the client’s requirements directly into the prompt.

Generating the Spec

Spec-Kit generated a spec.md file — a very thorough document outlining all necessary user stories, their priorities, reasoning, test plans, acceptance criteria, potential edge cases, and more.

This is one of the biggest advantages of Spec-Kit: it performs the kind of structured thinking exercises that would otherwise take hours (or even days) of team discussion, automatically and consistently.

Once you’ve clarified any ambiguous requirements, you can move on to:

/speckit.plan
/speckit.tasks

These commands generate a tasks.md file — the other half of the magic.

The Plan and Tasks

The tasks.md file outlines all the phases needed to complete the feature.

In my case, it generated three phases, each with its own set of tasks. It also flagged that Phase 2 is ⚠️ CRITICAL — no user story work can begin until that phase is complete.

Since my use case was fairly simple, there was only one user story in Phase 3. A great feature of Spec-Kit is that it highlights which phases can be worked on in parallel — a big win for team environments.

Here’s an excerpt from my Phase 3 output:

## Phase 3: User Story 1 - View Daily Completion Totals (Priority: P1) 🎯 MVP

**Goal**: Display total dollar amount of completed jobs for today, categorized by Auto and Manual

**Independent Test**: Can be fully tested by viewing Jobs List with today's date range and verifying tally shows correct completed amounts

### Tests for User Story 1 (per Test-First) ⚠️

**NOTE: Write these tests FIRST, ensure they FAIL before implementation**

- [ ] T003 [P] [US1] Unit test for Job.completed_money_for in test/models/job_test.rb
- [ ] T004 [P] [US1] System test for tally display in test/system/jobs_list_completion_tally_test.rb

### Implementation for User Story 1

- [ ] T005 [US1] Add exposure of auto_completed_total and manual_completed_total in app/controllers/jobs_controller.rb index action
- [ ] T006 [US1] Modify app/views/jobs/index.html.erb to display Auto Complete and Manual Complete tallies when single_day_selected?
- [ ] T007 [US1] Add helper method in app/helpers/jobs_helper.rb for formatting the tally display

**Checkpoint**: At this point, User Story 1 should be fully functional and testable independently

## Phase N: Polish & Cross-Cutting Concerns

**Purpose**: Improvements that affect multiple user stories

- [ ] T008 [P] Run tests and ensure all pass
- [ ] T009 Code cleanup and ensure Rails conventions followed

As you can see, the generated plan clearly lists the goal, test strategy, and implementation steps for each user story.

The first two tasks focus on tests, followed by three implementation tasks, and finally a checkpoint and cleanup phase.

In just minutes, we’ve turned a simple requirements input into a clean, structured breakdown of phases and tasks.

Wrapping Up

Yes, these AI-generated files can be a bit dense at first glance — but there’s no need to overanalyze them. Just skim and extract what you need. For me, that’s the tasks.

Armed with those, I can confidently estimate how long each part will take, and even uncover edge cases I might’ve missed — especially for projects I’m less familiar with.

There’s even more to Spec-Kit, though. You can use it not only for planning but also to accelerate implementation. Check out Vinny’s post, From Spec to Shipping: How Developers Implement Features with AI-Driven Workflows, to see that in action.

I hope this post helps you and your team generate detailed, accurate estimates faster than ever!

More posts about Process Estimation Development AI

  • Adobe logo
  • Barnes and noble logo
  • Aetna logo
  • Vanderbilt university logo
  • Ericsson logo

We're proud to have launched hundreds of products for clients such as LensRentals.com, Engine Yard, Verisign, ParkWhiz, and Regions Bank, to name a few.

Let's talk about your project