OpenAI has finally announced GPT-5.
https://openai.com/index/introducing-gpt-5/
As part of the launch, GPT‑5 is available free or at a significantly reduced price for a limited time. Notably, on Cursor, even new users can access GPT‑5 in Agent Mode at no cost.
In this article, we’ll take advantage of this window to demonstrate Spec‑Driven Development using near‑free tooling.
Components Used
While many combinations are possible, for this walkthrough we’ll use tools that offer generous free tiers:
Kiro + Jules + Cursor + GPT‑5
- Kiro: IDE, generates
Specs
- Jules: Web service, here, evaluates
Specs
validity - Cursor: IDE, generates instructions for the coding agent model by referencing the
Specs
- GPT‑5: LLM, operates based on instructions from Cursor
What are Kiro, Spec-Driven Development?
Sorry for the self-promotion, but please refer to this article:
- Kiro and Spec‑Driven Development: A Quick Refresher — https://dev.to/beagle_dog_inu/kiro-and-spec-driven-development-a-quick-refresher-752
In brief:
Kiro is an AI-powered coding IDE developed by AWS.
Spec-Driven Development(SDD) is the approach of creating specifications documents(Specs) first before asking for coding.
What is Jules?
Jules is Google's autonomous AI coding agent that operates as web service.
It integrates with GitHub and operates at the repository level.
While its coding capabilities aren't advanced enough for new development, it's particularly strong in areas like maintenance, testing, documentation verification, and code review.
This time, we'll be using it to evaluate the validity of Specs
.
What is Cursor?
Cursor is a VS Code–based AI coding IDE and one of the most advanced tools in this category. Although typically intended for paid users, there is a limited‑time free trial of GPT‑5 even for free users, which we will make use of here.
Workflow Overview
1. Create Specs in Kiro
I’ll reuse the Specs
from my previous article with improvements. After experimenting with the initial phases using Sonnet 4.0 and encountering issues, I made the following changes:
- Explicitly specify TypeScript
- Minimize
class
usage - Adopt Kent Beck’s Canon TDD approach and update the task list accordingly
- Prohibit modifying test cases when tests fail
- Create
Steering
including the above rules
For background on Kent Beck’s Canon TDD approach, this article is helpful:
2. (Optional) Evaluate Specs Validity Using Jules
(While this step isn't mandatory, I wanted to evaluate the soundness of also TDD implementation this time, so I'll include this process.)
While the generated Specs
are readable, manually verifying their soundness is quite challenging. We'll use Jules for this validation.
I upload the Specs
and Steering
to the GitHub repository, grant Jules access, and issue the following prompt:
This product includes specification documents for Spec-Driven Development. The documentation is located in the .kiro/specs/browser-tetris directory. Specifically, requirements are defined in requirements.md, design specifications in design.md, and the task list in tasks.md. The .kiro/steering directory contains rules that must be followed during coding. Please verify: 1. Whether design.md is consistent with requirements in requirements.md 2. Whether tasks.md covers all aspects of design.md 3. Whether design.md and tasks.md adhere to Kent Beck's recommended TDD approach
The results are satisfactory, so we can proceed.
Jules' response is as follows (summary):
The analysis results based on the review of the specifications and operational guidelines are summarized below. Is design.md based on requirements.md? Conclusion: No. design.md is based on requirements.md but significantly expands the scope. Details: Adds new block types, skip function, pause function, and leveling system. There are also inconsistencies in controls (e.g., space key function differs). Does tasks.md fully cover design.md? Conclusion: Yes. tasks.md comprehensively covers all aspects of design.md with a detailed implementation plan. Details: Breaks down all features into specific, actionable tasks, covering everything from initial setup to integration testing. Serves as an excellent TDD-based roadmap. Do design.md and tasks.md adhere to Kent Beck's recommended TDD? Conclusion: Yes. Fully compliant with Kent Beck's TDD methodology. Details: Development guidelines explicitly state adherence to TDD. tasks.md consistently applies the Red-Green-Refactor cycle across all development stages, from data models to UI, demonstrating disciplined adherence.
3. Implement with Cursor
Launch Cursor and open the relevant directory.
In Agent mode, select GPT-5 as the model and proceed as follows:
This project should be developed using Spec‑Driven Development. The specification documents are located in the .kiro/specs/browser-tetris directory, - Requirements are defined in requirements.md - Design specifications are in design.md - The task list is in tasks.md The .kiro/steering directory contains rules that must be followed during coding. Refer to tasks.md and begin development sequentially from task #1
Cursor proceeds sequentially from task #1, much like Kiro. Perhaps due to differences in IDE capabilities, it appears to adhere to the steering rules even more strictly than Kiro, resulting in a rigorously Spec‑Driven Development and at a faster pace.
4. Complete Coding → Fix Bugs → Completion
I worked on this intermittently, so I can’t give an exact timeframe, but the main tasks were completed within a few hours.
Initially, we had a functional prototype - amazing!
However, there were two bugs:
- Block rotation wasn't reflected visually until after landing
- The game over condition was incorrect, preventing proper game over detection
I issued bug fix instructions and completed the project. (I'm regretting forgetting to instruct them with TDD...)
Demo site
https://github.com/beagleworks/SDD-BrowserTetrisPlus/public/
Repository(some documents are written in Japanese)
https://github.com/beagleworks/SDD-BrowserTetrisPlus
The implementation now works as intended.
Overall Assessment
While I made minor adjustments to Specs
, Steering
, and some template files before deployment, approximately 95% of the application was implemented by AI.
When I tested the same tasks earlier with Kiro (Sonnet 4.0), some items I had initially abandoned as difficult were completed by GPT‑5 without hesitation. Cursor’s high level of polish also contributed—so while this isn’t solely about GPT‑5’s raw capability, the combination of SDD + Kent Beck’s Canon TDD with Cursor + GPT‑5 proved remarkably effective.
And the fact that this combination is currently available for free—even if only for a limited time—is genuinely exciting.
This could be an opportunity to try creating various applications - it would be interesting!
Top comments (0)