• About Us
  • Privacy Policy
  • Disclaimer
  • Contact Us
TechTrendFeed
  • Home
  • Tech News
  • Cybersecurity
  • Software
  • Gaming
  • Machine Learning
  • Smart Home & IoT
No Result
View All Result
  • Home
  • Tech News
  • Cybersecurity
  • Software
  • Gaming
  • Machine Learning
  • Smart Home & IoT
No Result
View All Result
TechTrendFeed
No Result
View All Result

Understanding Spec-Pushed-Growth: Kiro, spec-kit, and Tessl

Admin by Admin
October 16, 2025
Home Software
Share on FacebookShare on Twitter


I’ve been attempting to grasp one of many newest AI coding buzzword: Spec-driven improvement (SDD). I checked out three of the instruments that label themselves as SDD instruments and tried to untangle what it means, as of now.

Definition

Like with many rising phrases on this fast-paced house, the definition of “spec-driven improvement” (SDD) continues to be in flux. Right here’s what I can collect from how I’ve seen it used thus far: Spec-driven improvement means writing a “spec” earlier than writing code with AI (“documentation first”). The spec turns into the supply of fact for the human and the AI.

GitHub: “On this new world, sustaining software program means evolving specs. […] The lingua franca of improvement strikes to a better degree, and code is the last-mile method.”

Tessl: “A improvement method the place specs — not code — are the first artifact. Specs describe intent in structured, testable language, and brokers generate code to match them.”

After trying over the usages of the time period, and among the instruments that declare to be implementing SDD, it appears to me that in actuality, there are a number of implementation ranges to it:

  1. Spec-first: A effectively thought-out spec is written first, after which used within the AI-assisted improvement workflow for the duty at hand.
  2. Spec-anchored: The spec is saved even after the duty is full, to proceed utilizing it for evolution and upkeep of the respective function.
  3. Spec-as-source: The spec is the principle supply file over time, and solely the spec is edited by the human, the human by no means touches the code.

All SDD approaches and definitions I’ve discovered are spec-first, however not all attempt to be spec-anchored or spec-as-source. And sometimes it’s left obscure or completely open what the spec upkeep technique over time is supposed to be.

An illustration of the three observed levels of SDD, in 2 columns of “Creation of feature” and “Evolution and maintenance of feature”, each level shown in a row. Spec-first: Spec documents lead to code, both specs and code are marked with a robot and human icon, to show that both AI and humans are editing specs and code. Then after creation of feature, the specs are deleted, and during evolution a new spec is created that describes the change. Next row is spec-anchored, shows the same as spec-first, but the spec is not deleted after creation, instead it gets edited during evolution. Final row is spec-as-source, same as spec-anchored, but the human icon is crossed out for the code files, because humans here do not edit the code. All three concepts are connected with inheritance arrows (arrow with a head that is not filled with color), because they build up on top of each other.

What’s a spec?

The important thing query when it comes to definitions in fact is: What’s a spec? There doesn’t appear to be a basic definition, the closest I’ve seen to a constant definition is the comparability of a spec to a “Product Necessities Doc”.

The time period is kind of overloaded in the intervening time, right here is my try at defining what a spec is:

A spec is a structured, behavior-oriented artifact – or a set of associated artifacts – written in pure language that expresses software program performance and serves as steerage to AI coding brokers. Every variant of spec-driven improvement defines their method to a spec’s construction, degree of element, and the way these artifacts are organized inside a challenge.

There’s a helpful distinction to be made I feel between specs and the extra basic context paperwork for a codebase. That basic context are issues like guidelines information, or excessive degree descriptions of the product and the codebase. Some instruments name this context a reminiscence financial institution, in order that’s what I’ll use right here. These information are related throughout all AI coding periods within the codebase, whereas specs solely related to the duties that really create or change that individual performance.

An overview diagram showing agent context files in two categories: Memory Bank (AGENTS.md, project.md, architecture.md as examples), and Specs (Story-324.md, product-search.md, a folder feature-x with files like data-model.md, plan.md as example files).

It seems to be fairly time-consuming to judge SDD instruments and approaches in a means that will get near actual utilization. You would need to strive them out with totally different sizes of issues, greenfield, brownfield, and actually take the time to overview and revise the intermediate artifacts with greater than only a cursory look. As a result of as GitHub’s weblog submit about spec-kit says: “Crucially, your function isn’t simply to steer. It’s to confirm. At every part, you replicate and refine.”

For 2 of the three instruments I attempted it additionally appears to be much more work to introduce them into an present codebase, due to this fact making it even tougher to judge their usefulness for brownfield codebases. Till I hear utilization stories from folks utilizing them for a time frame on a “actual” codebase, I nonetheless have numerous open questions on how this works in actual life.

That being mentioned – let’s get into three of those instruments. I’ll share an outline of how they work first (or slightly how I feel they work), and can hold my observations and questions for the tip. Word that these instruments are very quick evolving, so they may have already modified since I used them in September.

Kiro

Kiro is the best (or most light-weight) one of many three I attempted. It appears to be principally spec-first, all of the examples I’ve discovered use it for a job, or a person story, with no point out of easy methods to use the necessities doc in a spec-anchored means over time, throughout a number of duties.

Workflow: Necessities → Design → Duties

Every workflow step is represented by one markdown doc, and Kiro guides you thru these 3 workflow steps within its VS Code based mostly distribution.

Necessities: Structured as an inventory of necessities, the place every requirement represents a “Consumer Story” (in “As a…” format) with acceptance standards (in “GIVEN… WHEN… THEN…” format)

A screenshot of a Kiro requirements document

Design: In my try, the design doc consisted of the sections seen within the screenshot beneath. I solely have the outcomes of one among my makes an attempt nonetheless, so I’m undecided if this can be a constant construction, or if it adjustments relying on the duty.

A screenshot of a Kiro design document, showing a component architecture diagram, and then collapsed sections titled Data Flow, Data Models, Error Handling, Testing Strategy, Implementation Approach, Migration Strategy

Duties: An inventory of duties that hint again to the requirement numbers, and that get some further UI parts to run duties one after the other, and overview adjustments per job.

A screenshot of a Kiro tasks document, showing a task with UI elements “Task in progress”, “View changes” next to them. Each task is a bullet list of TODOs, and ends with a list of requirement numbers (1.1, 1.2, 1.3)

Kiro additionally has the idea of a reminiscence financial institution, they name it “steering”. Its contents are versatile, and their workflow doesn’t appear to depend on any particular information being there (I made my utilization makes an attempt earlier than I even found the steering part). The default topology created by Kiro if you ask it to generate steering paperwork is product.md, construction.md, tech.md.

A version of the earlier overview diagram, this time specific to Kiro: The memory bank has 3 files in a steering folder called product.md, tech.md, structure.md, and the specs box shows a folder called category-label-enhancement (the name of my test feature) that contains requirements.md, design.md, tasks.md

Spec-kit

Spec-kit is GitHub’s model of SDD. It’s distributed as a CLI that may create workspace setups for a variety of widespread coding assistants. As soon as that construction is about up, you work together with spec-kit through slash instructions in your coding assistant. As a result of all of its artifacts are put proper into your workspace, that is essentially the most customizable one of many three instruments mentioned right here.

Screenshot of VS Code showing the folder structure that spec-kit set up on the left (command files in .github/prompts, a .specify folder with subfolders memory, scripts, templates); and GitHub Copilot open on the right, where the user is in the process of typing /specify as a command

Workflow: Structure → 𝄆 Specify → Plan → Duties 𝄇

Spec-kit’s reminiscence financial institution idea is a prerequisite for the spec-driven method. They name it a structure. The structure is meant to include the excessive degree rules which can be “immutable” and will all the time be utilized, to each change. It’s mainly a really highly effective guidelines file that’s closely utilized by the workflow.

In every of the workflow steps (specify, plan, duties), spec-kit instantiates a set of information and prompts with the assistance of a bash script and a few templates. The workflow then makes heavy use of checklists within the information, to trace vital person clarifications, structure violations, analysis duties, and many others. They’re like a “definition of accomplished” for every workflow step (although interpreted by AI, so there isn’t any 100% assure that they are going to be revered).

A partial screenshot of the very end of the spec.md file, showing a bunch of checklists for content quality, requirement completeness, execution status.

Under is an outline as an example the file topology I noticed in spec-kit. Word how one spec is made up of many information.

A version of the earlier overview diagram, this time specific to spec-kit: The memory bank has a constitution.md file. There is an extra box labelled “templates” which is an additional concept in spec-kit, with template files for plan, spec, and tasks. The specs box shows a folder called “specs/001-when-a-user” (yes, that’s what spec-kit called it in my test) that contains 8 files, data-model, plan, tasks, spec, research, api, component.

At first look, GitHub appears to be aspiring to a spec-anchored method (“That’s why we’re rethinking specs — not as static paperwork, however as dwelling, executable artifacts that evolve with the challenge. Specs turn out to be the shared supply of fact. When one thing doesn’t make sense, you return to the spec; when a challenge grows advanced, you refine it; when duties really feel too massive, you break them down.”) Nevertheless, spec-kit creates a department for each spec that will get created, which appears to point that they see a spec as a dwelling artifact for the lifetime of a change request, not the lifetime of a function. This group dialogue is speaking about this confusion. It makes me suppose that spec-kit continues to be what I might name spec-first solely, not spec-anchored over time.

Tessl Framework

(Nonetheless in non-public beta)

Like spec-kit, the Tessl Framework is distributed as a CLI that may create all of the workspace and config construction for quite a lot of coding assistants. The CLI command additionally doubles as an MCP server.

Screenshot of Cursor, showing the files Tessl created in the file tree (.tessl/framework folder), and the open MCP configuration on the right, which starts the tessl command in MCP mode

Tessl is the one one among these three instruments that explicitly aspires to a spec-anchored method, and is even exploring the spec-as-source degree of SDD. A Tessl spec can function the principle artifact that’s being maintained and edited, with the code even marked with a remark on the high saying // GENERATED FROM SPEC - DO NOT EDIT. That is at the moment a 1:1 mapping between spec and code information, i.e. one spec interprets into one file within the codebase. However Tessl continues to be in beta and they’re experimenting with totally different variations of this, so I can think about that this method may be taken on a degree the place one spec maps to a code part with a number of information. It stays to be seen what the alpha product will assist. (The Tessl group themselves see their framework as one thing that’s extra sooner or later than their present public product, the Tessl Registry.)

Right here is an instance of a spec that I had the Tessl CLI reverse engineer (tessl doc --code ...js) from a JavaScript file in an present codebase:

A screenshot of a Tessl spec file

Tags like @generate or @take a look at appear to inform Tessl what to generate. The API part exhibits the concept of defining not less than the interfaces that get uncovered to different elements of the codebase within the spec, presumably to make it possible for these extra essential elements of the generated part are absolutely beneath the management of the maintainer. Operating tessl construct for this spec generates the corresponding JavaScript code file.

Placing the specs for spec-as-source at a fairly low abstraction degree, per code file, most likely reduces quantity of steps and interpretations the LLM has to do, and due to this fact the prospect of errors. Even at this low abstraction degree I’ve seen the non-determinism in motion although, after I generated code a number of instances from the identical spec. It was an fascinating train to iterate on the spec and make it increasingly particular to extend the repeatability of the code technology. That course of jogged my memory of among the pitfalls and challenges of writing an unambiguous and full specification.

A version of our earlier overview diagram, this time specific to Tessl: The memory bank box has a folder .tessl/framework with 4 files, plus KNOWLEDGE.md and AGENTS.md. The specs box shows a file dynamic-data-renderer.spec.md, a spec file. This diagram also has a box for Code, including a file dynamic-data-renderer.js. There is a bidirectional arrow between the Specs and the Code box, as in the Tessl case, those two are synced with each other.

Observations and questions

These three instruments are all labelling themselves as implementations of spec-driven improvement, however they’re fairly totally different from one another. In order that’s the very first thing to remember when speaking about SDD, it’s not only one factor.

One workflow to suit all sizes?

Kiro and spec-kit present one opinionated workflow every, however I’m fairly certain that neither of them is appropriate for almost all of actual life coding issues. Particularly, it’s not fairly clear to me how they’d cater to sufficient totally different downside sizes to be typically relevant.

Once I requested Kiro to repair a small bug (it was the identical one I used up to now to strive Codex), it shortly grew to become clear that the workflow was like utilizing a sledgehammer to crack a nut. The necessities doc turned this small bug into 4 “person tales” with a complete of 16 acceptance standards, together with gems like “Consumer story: As a developer, I need the transformation operate to deal with edge circumstances gracefully, in order that the system stays sturdy when new class codecs are launched.”

I had an analogous problem after I used spec-kit, I wasn’t fairly certain what dimension of downside to make use of it for. Out there tutorials are normally based mostly on creating an software from scratch, as a result of that’s best for a tutorial. One of many use circumstances I ended up attempting was a function that might be a 3-5 level story on one among my previous groups. The function trusted numerous code that was already there, it was supposed to construct an outline modal that summarised a bunch of information from an present dashboard. With the quantity of steps spec-kit took, and the quantity of markdown information it created for me to overview, this once more felt like overkill for the dimensions of the issue. It was an even bigger downside than the one I used with Kiro, but additionally a way more elaborate workflow. I by no means even completed the total implementation, however I feel in the identical time it took me to run and overview the spec-kit outcomes I might have carried out the function with “plain” AI-assisted coding, and I might have felt far more in management.

An efficient SDD software would on the very least have to offer flexibility for just a few totally different core workflows, for various sizes and sorts of adjustments.

Reviewing markdown over reviewing code?

As simply talked about, and as you may see within the description of the software above, spec-kit created a LOT of markdown information for me to overview. They had been repetitive, each with one another, and with the code that already existed. Some contained code already. Total they had been simply very verbose and tedious to overview. In Kiro it was a bit simpler, as you solely get 3 information, and it’s extra intuitive to grasp the psychological mannequin of “necessities > design > duties”. Nevertheless, as talked about, Kiro additionally was means too verbose for the small bug I used to be asking it to repair.

To be trustworthy, I’d slightly overview code than all these markdown information. An efficient SDD software must present an excellent spec overview expertise.

False sense of management?

Even with all of those information and templates and prompts and workflows and checklists, I regularly noticed the agent finally not observe all of the directions. Sure, the context home windows at the moment are bigger, which is commonly talked about as one of many enablers of spec-driven improvement. However simply because the home windows are bigger, doesn’t imply that AI will correctly choose up on all the pieces that’s in there.

For instance: Spec-kit has a analysis step someplace throughout planning, and it did numerous analysis on the present code and what’s already there, which was nice as a result of I requested it so as to add a function that constructed on high of present code. However finally the agent ignored the notes that these had been descriptions of present courses, it simply took them as a brand new specification and generated them another time, creating duplicates. However I didn’t solely see examples of ignoring directions, I additionally noticed the agent go means overboard as a result of it was too eagerly following directions (e.g. one of many structure articles).

The previous has proven that one of the best ways for us to remain in command of what we’re constructing are small, iterative steps, so I’m very skeptical that numerous up-front spec design is a good suggestion, particularly when it’s overly verbose. An efficient SDD software must cater to an iterative method, however small work packages nearly appear counter to the concept of SDD.

The way to successfully separate useful from technical spec?

It’s a widespread thought in SDD to be intentional in regards to the separation between useful spec and technical implementation. The underlying aspiration I assume is that finally, we might have AI fill in all of the solutioning and particulars, and change to totally different tech stacks with the identical spec.

In actuality, after I was attempting spec-kit, I regularly bought confused when to remain on the useful degree, and when it was time so as to add technical particulars. The tutorial and documentation additionally weren’t fairly in keeping with it, there appear to be totally different interpretations of what “purely useful” actually means. And after I suppose again on the numerous, many person tales I’ve learn in my profession that weren’t correctly separating necessities from implementation, I don’t suppose we have now monitor file as a career to do that effectively.

Who’s the goal person?

Lots of the demos and tutorials for spec-driven improvement instruments embrace issues like defining product and have targets, they even incorporate phrases like “person story”. The concept right here may be to make use of AI as an enabler for cross-skilling, and have builders take part extra closely in necessities evaluation? Or have builders pair with product folks once they work on this workflow? None of that is made express although, it’s offered as a given {that a} developer would do all this evaluation.

Through which case I might ask myself once more, what downside dimension and kind is SDD meant for? Most likely not for giant options which can be nonetheless very unclear, as certainly that might require extra specialist product and necessities abilities, and plenty of different steps like analysis and stakeholder involvement?

A 2x2 matrix, x-axis “Clarity of problem”, y-axis “Size of problem”. Each quadrant has a box with a question mark, and there is a label in the middle that says “Where does SDD sit?”

Spec-anchored and spec-as-source: Are we studying from the previous?

Whereas many individuals draw analogies between SDD and TDD or BDD, I feel one other necessary parallel to have a look at for spec-as-source specifically is MDD (model-driven improvement). I labored on just a few tasks at first of my profession that closely used MDD, and I saved being reminded about that after I was attempting out the Tessl Framework. The fashions in MDD had been mainly the specs, albeit not in pure language, however expressed in e.g. customized UML or a textual DSL. We constructed customized code mills to show these specs into code.

Example of a structured, parseable specification DSL from my past experience, mostly recreated from memory. Screen “Write Message” instantiates InputScreen { … } Illustrates things like references to domain model fields, inheritance from other screens for reusability of patterns, navigation logic.

Finally, MDD by no means took off for enterprise purposes, it sits at an ungainly abstraction degree and simply creates an excessive amount of overhead and constraints. However LLMs take among the overhead and constraints of MDD away, so there’s a new hope that we are able to now lastly deal with writing specs and simply generate code from them. With LLMs, we aren’t constrained by a predefined and parseable spec language anymore, and we don’t must construct elaborate code mills. The worth for that’s LLMs’ non-determinism in fact. And the parseable construction additionally had upsides that we’re shedding now: We might present the spec writer with numerous software assist to jot down legitimate, full and constant specs. I ponder if spec-as-source, and even spec-anchoring, may find yourself with the downsides of each MDD and LLMs: Inflexibility and non-determinism.

To be clear, I’m not nostalgic about my MDD expertise up to now and saying “we would as effectively carry that again”. However we must always look to code-from-spec makes an attempt up to now to study from them after we discover spec-driven at the moment.

Conclusions

In my private utilization of AI-assisted coding, I additionally usually spend time on fastidiously crafting some type of spec first to present to the coding agent. So the final precept of spec-first is certainly useful in lots of conditions, and the totally different approaches of easy methods to construction that spec are very wanted. They’re among the many high most regularly requested questions I hear in the intervening time from practitioners: “How do I construction my reminiscence financial institution?”, “How do I write specification and design doc for AI?”.

However the time period “spec-driven improvement” isn’t very effectively outlined but, and it’s already semantically subtle. I’ve even not too long ago heard folks use “spec” mainly as a synonym for “detailed immediate”.

Relating to the instruments I’ve tried, I’ve listed lots of my questions on their actual world usefulness right here. I ponder if a few of them are attempting to feed AI brokers with our present workflows too actually, finally amplifying present challenges like overview overload and hallucinations. Particularly with the extra elaborate approaches that create numerous information, I can’t assist however consider the German compound phrase “Verschlimmbesserung”: Are we making one thing worse within the try of constructing it higher?

Tags: KiroSpecDrivenDevelopmentspeckitTesslUnderstanding
Admin

Admin

Next Post
From Habits to Instruments – O’Reilly

From Habits to Instruments – O’Reilly

Leave a Reply Cancel reply

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

Trending.

Safety Amplified: Audio’s Affect Speaks Volumes About Preventive Safety

Safety Amplified: Audio’s Affect Speaks Volumes About Preventive Safety

May 18, 2025
Reconeyez Launches New Web site | SDM Journal

Reconeyez Launches New Web site | SDM Journal

May 15, 2025
Discover Vibrant Spring 2025 Kitchen Decor Colours and Equipment – Chefio

Discover Vibrant Spring 2025 Kitchen Decor Colours and Equipment – Chefio

May 17, 2025
Flip Your Toilet Right into a Good Oasis

Flip Your Toilet Right into a Good Oasis

May 15, 2025
Apollo joins the Works With House Assistant Program

Apollo joins the Works With House Assistant Program

May 17, 2025

TechTrendFeed

Welcome to TechTrendFeed, your go-to source for the latest news and insights from the world of technology. Our mission is to bring you the most relevant and up-to-date information on everything tech-related, from machine learning and artificial intelligence to cybersecurity, gaming, and the exciting world of smart home technology and IoT.

Categories

  • Cybersecurity
  • Gaming
  • Machine Learning
  • Smart Home & IoT
  • Software
  • Tech News

Recent News

The Subsequent Minecraft Drop Might Be Its Most Chaotic But

The Subsequent Minecraft Drop Might Be Its Most Chaotic But

March 22, 2026
A fast information to recovering a hacked account

A fast information to recovering a hacked account

March 22, 2026
  • About Us
  • Privacy Policy
  • Disclaimer
  • Contact Us

© 2025 https://techtrendfeed.com/ - All Rights Reserved

No Result
View All Result
  • Home
  • Tech News
  • Cybersecurity
  • Software
  • Gaming
  • Machine Learning
  • Smart Home & IoT

© 2025 https://techtrendfeed.com/ - All Rights Reserved