<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-10-16T03:50:16Z</updated>
  <generator>https://njump.me</generator>

  <title>Nostr notes by aimlbling-about.ninerealmlabs.com (Unofficial)</title>
  <author>
    <name>aimlbling-about.ninerealmlabs.com (Unofficial)</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://njump.me/npub1atp3vgr2v3zlpd76hfyph2fxpf0fm8q2h7n4wgl5cq5r2wsupkrs7mqapt.rss" />
  <link href="https://njump.me/npub1atp3vgr2v3zlpd76hfyph2fxpf0fm8q2h7n4wgl5cq5r2wsupkrs7mqapt" />
  <id>https://njump.me/npub1atp3vgr2v3zlpd76hfyph2fxpf0fm8q2h7n4wgl5cq5r2wsupkrs7mqapt</id>
  <icon>https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/72x72/1f98a.png</icon>
  <logo>https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/72x72/1f98a.png</logo>




  <entry>
    <id>https://njump.me/nevent1qqswqvxkf3sqxgc8pvk9xzfg7k9na3jlftxf393g0h4t6vjz254vkrczyr4vx93qdfjytu9hm2aysxafyc99a8vup2l6w4er7nqzsdf6rsxcwmwjd8n</id>
    
      <title type="html">Spec-Driven Development Spec-Driven Development (SDD) is a method ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqswqvxkf3sqxgc8pvk9xzfg7k9na3jlftxf393g0h4t6vjz254vkrczyr4vx93qdfjytu9hm2aysxafyc99a8vup2l6w4er7nqzsdf6rsxcwmwjd8n" />
    <content type="html">
      Spec-Driven Development&lt;br/&gt;&lt;br/&gt;Spec-Driven Development (SDD) is a method to drive AI coding assistants over clearly defined changes.&lt;br/&gt;Spec-driven development blends waterfall and agile development practices; the specs are waterfall-like preplanned work, but taken in small agile-like steps.&lt;br/&gt;The practice helps avoid pitfalls of “vibe coding” by providing specific guidance and expectations to the implementing models, and helps developers by requiring that they think through the request before implementation and providing a clear decision log.&lt;br/&gt;A generic flow for spec-driven development might look something like:&lt;br/&gt;Identify a desired change or improvement and explain why it is important&lt;br/&gt;For that change, carefully describe the desired behavior or outcome and the scope of work&lt;br/&gt;Decide on the specific details of implementation (such as mechanism, tooling, frameworks, services, etc.) and record the decision rationale&lt;br/&gt;Implement the change, following the decisions&lt;br/&gt;Check that the implementation followed the decisions and accomplishes the desired behavior/outcomes&lt;br/&gt;Goldilocks and the Search for an SDD-framework&lt;br/&gt;At the end of last year (Dec 2025), I started with GitHub’s Spec Kit (github/spec-kit: 💫 Toolkit to help you get started with SDD or any other process!).&lt;br/&gt;Spec Kit is a highly-structured process for defining spec-driven work.&lt;br/&gt;It is very “Microsoft”; Spec Kit feels heavy-handed, though the structure probably works well for large projects with many developers working in concert.&lt;br/&gt;My recollection is that Spec Kit was very heavy for small changes; it felt much more “at home” working on full, net-new features rather than making small agile bugfixes or iterating on existing codebases.&lt;br/&gt;For instance, Spec Kit really wants you to define a “Constitution” which is intended to store “principles focused on code quality, testing, and maintainability”.&lt;br/&gt;…&lt;br/&gt;But that’s what AGENTS.md also does; why should I replicate that content in a nonstandard form, and why does Spec Kit require it?&lt;br/&gt;Spec Kit also leaned heavily on users remembering all of the various slash-commands and how it integrated with the associated CLI tool.&lt;br/&gt;After onboarding your project with specify init, you had to remember the following “default” flow and associated commands:&lt;br/&gt;/speckit.constitution -&amp;gt; /speckit.specify -&amp;gt; /speckit.clarify -&amp;gt; /speckit.plan -&amp;gt; /speckit.checklist -&amp;gt; /speckit.tasks -&amp;gt; /speckit.analyze -&amp;gt; /speckit.implement -&amp;gt; /speckit.converge&lt;br/&gt;Yikes.&lt;br/&gt;From Spec Kit, I moved on to try OpenSpec (Fission-AI/OpenSpec: Spec-driven development (SDD) for AI coding assistants.) and (obra/superpowers: An agentic skills framework &amp;amp; software development methodology that works.).&lt;br/&gt;OpenSpec is a more fluid, flexible approach to spec-driven development, which allows a more agile approach to defining “changes”, where each change is defined as a set of artifacts (proposal.md, spec(s).md, design.md, tasks.md) in the openspec/ directory.&lt;br/&gt;The proposal records the reason for the change, the specs define the requirements and testable scenarios, the design records the implementation details and technical decisions, and the tasks plan out the work the agent will complete.&lt;br/&gt;Unlike Spec Kit, which treats specs as a point-in-time historical reference, OpenSpec treats specs as living documents: the project is defined by baseline specs, each change is a modification to the baseline, and those modifications are merged back into the baseline specifications when the change is completed.&lt;br/&gt;Superpowers is a plugin package or set of skills that provide more generic guidance for working with coding agents as opposed to a formal SDD procedure; as such, it is even more flexible than OpenSpec.&lt;br/&gt;Superpowers provides skills to help users brainstorm and plan (with design document and plan artifacts), and other skills guide agents through implementation, testing, and code review.&lt;br/&gt;I really like a lot of the ideas behind Superpowers, but OpenSpec really fit my needs for a guided workflow for agentic development.&lt;br/&gt;In fact, they can be combined, using OpenSpec’s SDD workflow, but using Superpowers’ guidance for working with agents.&lt;br/&gt;There are many like it, but this one is mine&lt;br/&gt;If Spec Kit required too much procedure, Superpowers too little, and OpenSpec was just right, why have I forked my own version?&lt;br/&gt;After using Spec Kit, OpenSpec, and Superpowers, I kept hitting repeated problems that bugged me.&lt;br/&gt;Spec Kit was simultaneously too linear and too rigid, relying on complicated tooling (CLI, prompt templates, slash-commands) and necessitating substantial effort for users to internalize and adhere to its rigorous procedure.&lt;br/&gt;Both Spec Kit and OpenSpec rely on CLI tools that had to be installed rather than being “Skill-native”.&lt;br/&gt;Spec Kit treats specs as historic references rather than living descriptions of the codebase.&lt;br/&gt;OpenSpec uses baseline specs to represent the state of the project, but provides no mechanism to derive the baseline for a brownfield project (or at least did not at the time).&lt;br/&gt;At the time, both procedures planned and worked in isolation without considering the codebase, application, or user experience as a whole, or how the various specs/proposals might interact.&lt;br/&gt;To resolve these, I started by forking the OpenSpec concept into my own family of SDD skills that inherit lessons from fighting OpenSpec and Spec Kit.&lt;br/&gt;These are skill-only – no other installation or tooling is necessary other than Python – making them easy to install by copying the skill directory or via npx skills install.&lt;br/&gt;Each phase in the spec-driven lifecycle is its own skill.&lt;br/&gt;The general workflow aligns closely with OpenSpec: sdd-propose helps the user draft the change artifacts, sdd-apply works through the tasks, and sdd-verify checks that the code aligns with the specs.&lt;br/&gt;sdd-sync syncs the change into the baseline specs, and sdd-archive archives the change.&lt;br/&gt;I’ve also addressed my frustrations above:&lt;br/&gt;A generalized “router” skill helps agents orient to and follow the procedure so the user doesn’t hit the Spec Kit wall: having to learn and recall the specific order of operations or remember specific commands.&lt;br/&gt;As a skills-only approach, the deterministic steps are provided as runnable scripts as part of the skill, rather than requiring installing additional tools.&lt;br/&gt;To work within existing codebases, I’ve added sdd-derive to help the user derive the baseline specs.&lt;br/&gt;To improve overall coherence, agents following the sdd* skills will suggest defining a “NORTH-STAR”, a short elevator pitch defining the reason a project exists.&lt;br/&gt;The north star is like Spec Kit’s Constitution, except designed to maintain coherence to the product rather than to software engineering procedure better left to AGENTS.md.&lt;br/&gt;Then, each proposal includes user stories (“As a {role}, I want {goal}, so that {value}”) that align with the north star, and each requirement defined in the specs must be associated with at least one user story.&lt;br/&gt;Along the way, I’ve also refined instructions.&lt;br/&gt;Specs are defined by outcomes, not mechanisms.&lt;br/&gt;The spec.md should define behavior and outcome, while design.md decides mechanism and implementation detail.&lt;br/&gt;That way, when the spec gets synced, the baseline defines expected behavior rather than implementation detail.&lt;br/&gt;This prevents refactors or changes to underlying code that otherwise maintain behavior from requiring new spec changes.&lt;br/&gt;The verification step suggests using subagents to keep the review within the “smart zone” of an agent’s context window.&lt;br/&gt;Verification also mandates running the full test suite and ensuring that evidence is recorded demonstrating code quality and spec:code alignment.&lt;br/&gt;During implementation, there are often discoveries of new edge cases that must be handled that were not pre-specified during the propose phase.&lt;br/&gt;The SDD instructions require these spec updates to record their changes so overzealous agents don’t induce drift that misaligns spec from original intention over the course of the change.&lt;br/&gt;SDD is not enough&lt;br/&gt;Spec-driven development is still not a silver bullet for delivering high-quality software.&lt;br/&gt;Within the bounds of the spec, agents powered by modern LLMs are quite capable.&lt;br/&gt;However, all of the work surrounding the spec-driven development requires careful attention: it is still difficult to ensure agents fully comprehend the user’s intention and carry it through to fruition, and agents are still poor caretakers of codebase quality.&lt;br/&gt;During my SDD iterations, I spend about half of my time working to translate ideas in my head into the agent’s context so we can collaborate to draft the specifications.&lt;br/&gt;If I need help extracting ideas I have a hard time putting into words, my grill-me skill (all credit to Matt Pocock’s original; mine is lightly refined to the way I like to work) has the agent provide an elicitative interview to extract and solidify those concepts.&lt;br/&gt;Then I can use brainstorming, which sets the agent in opposition to the user to help expand, challenge, and refine ideas.&lt;br/&gt;Then I can spend the remaining half of my time iterating through the SDD process – propose, apply, verify, sync&#43;archive.&lt;br/&gt;Between apply and verify, I also use code-review.&lt;br/&gt;sdd-verify checks spec against code; it does not assess code quality or look for implementation errors.&lt;br/&gt;Finally, I spend another half of my time (wait, what?!) on codebase maintenance.&lt;br/&gt;Dex Horthy at HumanLayer has a few GitHub blog posts (1, 2, 3) that test modern models on SlopCodeBench and find that even frontier models like Fable and Astra contribute to codebase sprawl - a few turns of an agent increase code complexity and verbosity.&lt;br/&gt;Inspired by this (and simultaneously frustrated by how garbage Opus 5 was at writing anything comprehensible), I developed simplify and refactor as an initial backstop.&lt;br/&gt;Perhaps you see where this is going.&lt;br/&gt;The new AI-assisted SDLC (software development lifecycle) uses AI agents to help get the ideas out of your head, to draft the change, and to implement the change.&lt;br/&gt;But agents can’t be trusted, so we use other agents to write tests.&lt;br/&gt;But those tests might not align with the original intention, so we have other agents check spec:code alignment, code:test alignment, and spec:test alignment.&lt;br/&gt;And over the course of all of that work, agents have destroyed the codebase quality, so we have yet more agents trying to claw back sprawl and refactor code back into coherence.&lt;br/&gt;Agents are powerful, and can accelerate users within bounded work.&lt;br/&gt;But they’re not a panacea for doing good work, and users cannot deploy swarms and loops of agents without thoughtful, critical oversight.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://aimlbling-about.ninerealmlabs.com/blog/sdd/&#34;&gt;https://aimlbling-about.ninerealmlabs.com/blog/sdd/&lt;/a&gt;&lt;br/&gt; &lt;img src=&#34;https://aimlbling-about.ninerealmlabs.com/blog/sdd/images/comprehensive-and-precise-spec.jpg&#34;&gt; 
    </content>
    <updated>2026-10-16T02:41:31Z</updated>
  </entry>

</feed>