Rifty Notes

BMAD vs Spec Kit: which harness fits your actual work

BMAD vs Spec Kit: which harness fits your actual work

Key takeaways

  • Spec Kit fits greenfield work where speed matters more than control.
  • BMAD fits brownfield or complex work where losing control costs more than setup.
  • This is a read on how each tool is built, not a benchmark of your exact stack.

You have read the Reddit threads. You have seen the dimension-by-dimension scorecards and the "best SDD tools" roundups. You can recite what each tool does and still not know which one to install. Every page-one result on bmad vs spec kit ranks these two by feature list or by one person's verdict. None of them hands you a rule you can keep.

Here is the rule this page is built to give you: stop asking which framework is better and start asking which failure mode you can least afford. Both tools are agent harnesses, meaning a control layer wrapped around a coding agent. They optimize opposite things. Spec Kit stays light to buy speed. BMAD front-loads structure to buy control. Match that to your work before you install anything, and the choice mostly makes itself.

Why spec-driven development exists at all

Both tools exist to fix the same failure, so judge them against that failure, not against each other's feature sheets.

The problem is context. When you let a coding agent generate feature after feature without deciding what you are building and why, the codebase itself becomes the de-facto specification: a pile of components that happen to run together but are hard to maintain, evolve, and debug. Nobody wrote the spec down, so the code is the spec, and code is a bad place to keep one.

It is bad for a concrete reason. Code is a binding artifact. Once you write an implementation, it is very hard to decouple from it. Requirements negotiation wants cheap edits and throwaway drafts. Code gives you neither. Change your mind after the agent has shipped a few thousand lines and you are not editing a plan, you are unwinding a commitment.

Spec-driven development moves that decision earlier. You agree on what and why in a spec first, then let the agent build against it. The honest cost is real: you do upfront work before a single line of code exists. That is exactly the overhead the skeptics push back on, and on the wrong job they are right to.

Read each tool as an agent harness, not a feature list

A feature list tells you what a tool can do. It does not tell you what it does to your work. For that, score each tool on three axes tied to the failure spec-driven development is trying to fix.

Context load. How much do you set up before the agent writes code? A spec, a set of roles, a planning pass. High context load buys shared understanding and costs you time up front.

Control surface. How much of your judgment does the harness carry forward once work starts? A thin harness gets out of the way. A thick one keeps your decisions in the loop, which is the whole point when a wrong turn is expensive.

Reversibility. How easily do you back out a change? This is the axis the SERP never scores, and it is the one that bites hardest, because code resists rework by design.

These axes do not give you a number. They tell you what to weigh. You still have to run a real task to confirm the fit. But they turn "which is better" into a question you can actually answer for your own codebase.

Where GitHub Spec Kit is strong, and where it bites

GitHub Spec Kit is the lightweight end of the spectrum. It introduces a spec-first workflow as a direct alternative to vibe coding every new feature and bug fix. You write the spec, the agent implements it, and the codebase does not quietly turn into the only record of what you meant. On greenfield work, that is a clean win. Low context load, fast to start, enough structure to keep you honest.

The strain shows up when the system evolves. There is an open workflow question on GitHub about how Spec Kit handles change requests. One user describes it plainly: you create a spec and implement it, then a change request arrives, and the tool leads you to write a new spec for the variation rather than update the original. Now, to know what the system currently does, you read both specs instead of one source of truth. Spec-driven development promised a single spec as the truth. This fragments it.

Treat that as reported, dated behavior from a single user thread, not a confirmed vendor limitation. It is the kind of thing a later Spec Kit version can change. But it points straight at the axis that matters: a harness this light gives you speed and gives up some control over the source of truth as the work grows.

Where BMAD earns its heavier setup

BMAD sits at the other end of the same tradeoff. Spec-driven work swaps raw speed for structure so builders agree on what they are building before the agent writes a line of code, and BMAD leans hard into the structure side of that deal. It loads more planning and role context up front, which is why it costs more to stand up and why it suits work where losing control hurts more than losing speed. On a brownfield service with real constraints, that upfront structure reads less like overhead and more like a guardrail.

Be clear about what this read is and is not. It is a judgment about where BMAD sits on the speed-versus-structure axis, not a first-hand trial of it on your task, and its internal role model is not something published benchmarks pin down. So this stays at the level of what the heavier-structure design implies: more context in, more control carried forward, more cost to pay before you see output. Whether that trade lands depends on your work, which is the whole argument of this page.

The harness-fit matrix: match the tool to the work

Here is the keep-able version. Read down the column that matches your work, not across looking for a winner.

AxisSpec KitBMAD
CodebaseGreenfield, fresh startBrownfield, existing constraints
TeamSolo or small, moving fastTeam work where alignment matters
Control vs speedSpeed first, light structureControl first, structure up front
Context loadLow: write a spec, goHigh: roles and planning before code
Optimizes againstOver-planning throwaway workUnder-controlling a complex change

The matrix is directional. It is built on how each tool is designed, not a controlled test of both on your stack. A cell that says BMAD still assumes you can pay its setup cost, and your own codebase can override any single row. Use it to form a hypothesis, then run one real task to check it.

What practitioners actually report

The community conversation around bmad vs spec kit, on Reddit and elsewhere, tends to collapse into one word for BMAD: overengineered. That take is true and useless at the same time, because it is workload-specific.

Here is the split that actually holds up. Builders on simple, fast-moving work find heavy planning structure like BMAD's a drag, and for a solo dev shipping a quick feature they are right. Spec-first structure only earns its keep once the work gets complex enough that ambiguity costs more than setup. Speed without structure just ships ambiguity at scale, so the critique is not really a ruling on the tools. It is a ruling on the job. "Overengineered" for a throwaway script is exactly the control a team needs on a regulated brownfield service. Do not read one person's take as a universal one.

The same split shows up when these tools get put to a real test rather than a scorecard, evaluated against a single concrete feature: a medium backend addition to an existing serverless Python service touching security, auth, and infrastructure. A test like that does not crown a universal winner. It restates the axis. On a fast, contained change the light harness has less to justify, and on a change with more ways to go wrong the front-loaded one has more to protect. The tool that fits is a property of the work, not a fixed score.

Where OpenSpec and other Spec Kit alternatives fit

Most readers choosing here are really choosing among more than two, and the same context-load lens places the rest of the field. Rank the tools by how much structure you load before the agent writes code and you get a clear low-to-high ordering rather than three logos competing on the same ground: Spec Kit at the light, greenfield end; OpenSpec and the lighter Spec Kit alternatives in the middle, closer to Spec Kit than to BMAD's role-planning weight; BMAD at the heavy, control-first end. Superpowers-family tools land on that same spectrum, sorted the same way, by how much they ask you to load up front.

One honest caveat: there is far less public, verified detail on OpenSpec and the rest than on Spec Kit, so read this as orientation on where they sit, not a tested head-to-head of each. Do not commit to one of these on the strength of a spectrum position alone. What the lens buys you is a way to rank tools you have not benchmarked by how much context they load before code, then run the one real task that confirms it.

Context-load spectrum: Spec Kit sits light and greenfield, OpenSpec and Superpowers mid, BMAD heavy and control-first.

The rule to keep: pick one, and know when you're wrong

Two lines, kept:

Choose Spec Kit when the work is greenfield and speed matters more than control. Choose BMAD when the work is brownfield or complex enough that losing control costs more than the extra setup.

Then the guardrail: do not reach for the heavy harness on throwaway work. If you will delete it next week, BMAD's planning pass is time you do not get back, and Spec Kit's lightness is the feature.

Name where each choice fails, because a rule with honest edges is one you can trust. Pick BMAD for work that turns out simple and you over-plan something you discard. Pick Spec Kit for a system that keeps evolving and its per-variation spec handling can blur your source of truth over time. Neither failure is fatal if you can back out. So build the reversibility check in: choose the harness you can most cheaply abandon after one real task, and treat the first task as the test, not the commitment.

Where Rifty's harness thinking comes in

If the lens on this page felt natural, that is the frame Rifty works in. Rifty treats control, legibility, and reversibility as first-class, the same three axes used here to compare these tools. The reader who cares which harness carries their judgment forward, rather than which one generates the most output, is the reader Rifty is built for.

Be straight about the fit. Rifty is a by-introduction-only research lab and operating product, not an SDD tool you install this afternoon next to BMAD or Spec Kit. If you just need to pick a framework today, use the rule above and move on. If the harness-fit way of thinking matches how you already work, read Rifty's agent-harness framework on the levers that decide what ships, see how it draws the line between agentic engineering and vibe coding, and compare it against how you evaluate AI agent frameworks and agent orchestration tools today. If the fit holds, request an introduction.

More from Rifty Notes.