49 comments

  • felooboolooomba2 minutes ago
    Anything ending in "maxxing" will be seen as a joke, treated with contempt or both. The poor guy is livestreaming his acute body dysmorphic disorder. Social media is making money off him and we're all either laughing or astonished.
  • chrisldgk42 minutes ago
    At this point, why not just write the code yourself? Defining exactly what the product is supposed to do is the hard part, writing code is the easy part. Write your specs as code and you have your product - why let your LLM do the fun part?
    • Stehfyn17 minutes ago
      Just because I am capable of "writing all that code", doesn't make the option preferable to defining a vast majority of spec up front and having an LLM generate an implementation. I am already going to spend the brain power on reviewing the code. I am already going to spend the brain power on pontificating edge cases, external module interactions, and next steps. Why not fast forward to that point and save 80% of the time (and brain power/attention/motivation to boot)?
  • brendanmc66 hours ago
    Author here, if you don&#x27;t want to read all that, I&#x27;ll post one excerpt that I think sums it up nicely:<p>&gt; <i>My point is, the spec must live somewhere, even if you don’t write it down. The spec is what you want the software to be. It often exists only in your head or in conversations. You and your team and your business will always care what the spec says, and that’s never going to change. So you’re better off writing it down now! And I think that a plain old list of acceptance criteria is a good place to start. (That’s really all that `feature.yaml` is.)</i>
    • skeedle1 minute ago
      Beyond writing the spec down, you can share the spec or use someone else&#x27;s spec. That&#x27;s why spex.build was created, to be a hub with versioned specs so people can just create their own implementations, in the language, style, and particulars that they want.
    • jacquesm18 minutes ago
      You have rediscovered the job of Software Analyst, which until the early 90&#x27;s was a thing. Then that all got upended and we ended up with a mix between product owners, project managers and developers &#x2F; devops but I think that that ignores the fact that Analyst is a different set of skills.
    • K0balt2 hours ago
      I independently converged on something similar. I use two to three specification docs for my c++ work: a firmware manual (describes features and interfaces)) , an implementation plan (order of implementation, mechanisms where specified - new features go in here) and a product manual ( user story, external effects) I start with a user story, build an implementation plan, write the code, write the firmware manual, check the 3 documents +code for consistency and coherence. Either change the code or the documentation to reflect a coherent unified truth. (Implementation plan gradually becomes as-built) I also have the code comprehensively commented so that it is difficult to misinterpret. “Correct, coherent, consistent, commented”<p>We iterate feature by feature through this process, and occasionally circle back on the original product manual to identify drift.<p>After the original documentation is drafted, I have the agent write up placeholder files and define all of the interfaces we expect to need (we will end up adding a lot later, but that’s ok) every file should reflect a clear separation of concerns, and can only be reached into through its defined interface, all else is private. I end up with more individual files than I would by hand, but by constraining scope at file granularity, and defining an inviolate interface per file, I avoid the LLM tendency to take shortcuts that create unmaintainable code.<p>I also open each new context with an onboarding process that briefly describes the logos and the ethos of the project, why the agent should be deeply invested in the success of the project, as well as learnings.md which the agent writes as it comes across notable gotchas or strong preferences of mine.<p>Needless to say, I use one million context , and it’s a token fire… but the results are solid and my productivity is 5-10x
    • Twey2 hours ago
      The traditional name for this spec is ‘source code’ — a canonical source of truth for the behaviour of a system that is as human-readable as we know how to make it, that will be processed by automated tools into a less-readable derived artefact for a computer to execute.<p>Checking the compiled artefact into the codebase without checking in its source code has always been a risky move!
      • benterix54 minutes ago
        A specification, whether formal or less formal, is very different from the source code.
      • DeathArrow45 minutes ago
        &gt;The traditional name for this spec is ‘source code’<p>Specs are the end goal, not how the software look at a moment in time.
      • fragmede1 hour ago
        Technology evolves and traditions change. What persists is the role, not the filename and its extension. Weddings are still weddings even after things went from painted portraits to film cameras to camcorders to smartphones to livestreams. Same with birthdays. Cards became phone calls, Facebook wall posts, group chats, shared albums, or generated videos (Sora, RIP).<p>The tradition of having a deck of punch cards evolved to having assembly, to Pascal, Fortran, C, basic. The important part is a human-auditable directive, not an opaque, generated artifact as the thing that matters.<p>have evolved and adapted. Photography, film cameras, polaroids, camcorders, digital cameras, smartphones, social media, Zoom&#x2F;virtual attendees. Same with birthdays. Handwritten cards, to phone calls to e-cards, Facebook wall posts, video calls, shared photo albums and Sora (RIP) videos.
        • Yokohiii7 minutes ago
          &gt; The important part is a human-auditable directive, not an opaque, generated artifact as the thing that matters.<p>Your arguments create a false dichotomy. You look at it from consumer perspective, while coding and it&#x27;s artifacts are usually done by suppliers. If you change camcorder to tv advertisement, the requirements shift. The human auditable directive and the outcome matter. Coca Cola probably has very high standards for their IP (the directive) and doesn&#x27;t care about the outcome (AI slop ads). The result is disgruntled consumers.<p>If you don&#x27;t care about the &quot;opaque&quot; generated artifact, the you are Coca Cola.
    • rogermarley1 hour ago
      This ultimately converges on what source code is though.<p>The most common form of what you&#x27;d call a &quot;spec&quot; is the acceptance criteria on a work ticket, which is an accretive spec i.e. a description of desired change -- &quot;given what already exists, change it as follows&quot;. I.e. if you somehow layered and summarized and condensed all tickets that have been made since product started, you&#x27;d have your &quot;spec&quot;.<p>But it&#x27;s the devs who were doing that condensing via understanding each desired spec addition vs reality of existing codebase.<p>So the gap between what people are currently calling &quot;specs&quot; what the code was already doing is not big and will not stay big, but for the fact you&#x27;re effectively adding another (quasi) compile step underneath - and in this case its a non-deterministic one.
    • beshrkayali5 hours ago
      I wrote something similar recently about how agent-generated code lacks the institutional memory that human-written code has. There&#x27;s nobody to ask why a decision was made (1).<p>“Specsmaxxing” is basically the right response to this. When you can&#x27;t rely on authorial memory, you have to put the intent somewhere durable. Specs become the source of truth by default if we continue down the road of AI generated code.<p>1: <a href="https:&#x2F;&#x2F;ossature.dev&#x2F;blog&#x2F;ai-generated-code-has-no-author&#x2F;" rel="nofollow">https:&#x2F;&#x2F;ossature.dev&#x2F;blog&#x2F;ai-generated-code-has-no-author&#x2F;</a>
      • bizzletk3 hours ago
        I&#x27;ve been attaching to my commit messages a Git Trailer [1] of the Session UUID from the Claude Code conversation that created that commit.<p>It allows Claude to look back into the session where a change was made and see the decisions made, tradeoffs discussed and other history not captured by code, tests.<p>[1] <a href="https:&#x2F;&#x2F;git-scm.com&#x2F;docs&#x2F;git-interpret-trailers" rel="nofollow">https:&#x2F;&#x2F;git-scm.com&#x2F;docs&#x2F;git-interpret-trailers</a>
      • nicbou4 hours ago
        I had a similar experience refactoring a large codebase• The only thing that made it possible was that each commit message had a JIRA ticket number tying it to a requirement or task. I could find the people behind the business logic and ask them about it.
      • try-working3 hours ago
        the recursive-mode workflow has full traceability, including why decisions were made, what the original requirement was, what the previous state was, etc. <a href="https:&#x2F;&#x2F;recursive-mode.dev&#x2F;introduction" rel="nofollow">https:&#x2F;&#x2F;recursive-mode.dev&#x2F;introduction</a>
    • hansmayer4 hours ago
      &gt; will always care what the spec says, and that’s never going to change<p>Did I miss something or is everyone back in 1970s, working in waterfall processes now?
      • scandox4 hours ago
        All through the agile era I wrote detailed specs for projects and then followed an agile process. The most successful parts of every project were the ones that we were able to spec best even when they diverged significantly from the original spec.<p>You don&#x27;t plan to follow the plan. You plan in order to understand the whole problem space. Obviously no plan survives contact with reality.
        • fsloth4 hours ago
          Agree!<p>Another point of view is that LLM:s perform to an extent on the same level as outsourcing does. This interface requires a bit more contract mass than doing everything within single team.
        • chrisweekly39 minutes ago
          &quot;Plans are worthless, but planning is essential.&quot;
      • hypendev3 hours ago
        We never left waterfall in the end. Working with and for dozens, collaborating with probably a hundred software companies in different scales, every single one said:<p>We do agile<p>Guess what? Every single one of them was doing waterfall.<p>Their agile included preplanning and pre-specifying the full spec and each task, before the project kicked off. We&#x27;d have meetings where we&#x27;d drill down into tasks, folks would write them down so detailed that there would be no other way than doing that. Agile would be claimed, but the start date, end date, end spec and number of developers was always concrete.<p>Sometimes, the end date was too late, so a panic would ensue. Most of the time, the date was too late because developers had &quot;unknowns&quot; which then had to be &quot;drilled down and specced so they wouldnt be unknowns&quot;. Sometimes, nearly 50% of the workweek was spent on meetings.<p>A few times, a project was running late - so to make sure we are _really_ doing it agile, we&#x27;d have morning standups, evening standups, weekly plannings, retrospectives, and backlog refinement. It would waste the time, and the &quot;unknowns&quot; aka &quot;tickets to refine&quot; were again, as always, dependant upon the PM&#x2F;PO&#x2F;CEO&#x27;s wishes, which wouldn&#x27;t get crystallized until it was _really last minute_.<p>One customer wanted us to do a 2 year agile plan on building their product. We had gigantic calls with 20+ people in them, out of which at least half had some kind of &quot;Agile SCRUM Level 3 Black belt Jirajitsu&quot; certificates.<p>To them, Agile was just a thing you say before you plan things. Agile was just an excuse to deal with project being late by pinning it on Agile. Agile was just a cop out of &quot;PM didn&#x27;t know what to do here so he didnt write anything down&quot;. Agile was a &quot;we are modern and cool&quot; sticker for a company.<p>And unfortunately, to most of them, agile was just a thing you say for the job, as their minds worked in waterfall mode, their obligations worked in waterfall mode, companies worked in waterfall mode, and if they failed their obligation to the waterfall, their job would go down one.<p>So while we were doing the Agile ceremonies, prancing around with our Scrum master hats, using the right words to fit into the Agile™ worldview - we were doing waterfall all along.<p>And after 15 years, I&#x27;m not even sure - did agile really ever exist?
        • OHfsfuiohsef32 minutes ago
          Continuous integration and demos to stakeholders (devs, designers, product managers etc) every 2 weeks - these practices are now engrained :-) It&#x27;s frequent to then do corrections after these demos, and that really helps ensuring the product manager is getting what their customers need.<p>Easy to forget waterfall in 1970s &#x2F; 80s really meant teams working on their own for months and then realizing there is no way to assemble the whole product from the parts. Or that the industry has moved on and the product is obsolete.<p>Agile as &quot;devs can do what they want&quot; never really existed ;-) Managers always have to plan &#x2F; T-Shirt size resources (time, devs) to some degree. For stuff that&#x27;s really hard to break into tasks, the magic word is &quot;the plan is to do a POC first&quot;.<p>Coming from someone who also doesn&#x27;t like teams being asked to break their unknowns into 30 known tasks. It&#x27;s a compromise... I agree with all your points on how Agile is abused &#x2F; misunderstood. Yet i believe in the progress from continuous integration and regular demos to stakeholders as a sign we did change something....
      • wuiheerfoj4 hours ago
        Sort of, but the downside of waterfall was you build the wrong thing and waste a shitload of time rewriting it.<p>When rewriting the entire codebase is very quick and cheap, why bother iterating on small components?
        • lnrd3 hours ago
          &gt; When rewriting the entire codebase is very quick and cheap, why bother iterating on small components?<p>We are nowhere near this scenario tbh. Token cost is very high and is currently heavily subsidized by VC money to gain market share. Also this realistically only applies to small projects, small codebases and mostly greenfield ones. No way you can rewrite the whole codebase quickly and cheaply in any mid-sized+ projects<p>But even assuming token cost plummets, any non-trivial piece of software that is valuable enough to generate income for the company is also big, complex, interconnected enough that cannot be rewritten quickly even by AI, also for business reasons too. If a piece of code works, is stable and is tested, then rewriting it will always bring a high degree of risk and uncertainty that in a lot of business critical applications is just not worth it. A stable system can stay untouched for years besides minor dependencies updates.
      • 0123456789ABCDE3 hours ago
        waterfall is not the sole purveyor of written docs<p>distributed teams do well when proposals, decision, etc, are written down, and can be easily found and referenced<p>it doesn&#x27;t mean docs are frozen in time and can&#x27;t be patched like code
      • nlnn4 hours ago
        I read that as &quot;the business caring about what the spec says will never change&quot; rather than &quot;the spec will never change&quot;.
      • JohnHaugeland4 hours ago
        waterfall doesn’t mean writing down decisions
      • beshrkayali3 hours ago
        [dead]
    • nalpha5 hours ago
      What&#x27;s the difference between this and Jira. Your specs already live somewhere, it&#x27;s where you defined them. That&#x27;s why it&#x27;s nice to put the Jira ticket number in your code &#x2F; commit, so you can refer back to the spec when something breaks
      • mike_hearn3 hours ago
        A specification isn&#x27;t a series of change requests! Using Jira as your source of truth is no different to just recording all your prompts. There&#x27;s nothing you can easily review to spot contradictions or how things interact with one another.<p>I&#x27;ve been doing &quot;specmaxxing&quot; for a few months now. Unlike the author I don&#x27;t use Yaml, I use a mix of Markdown and Gherkin. If you haven&#x27;t encountered Gherkin before, it&#x27;s not new and you might know it under the name Cucumber or BDD.<p><a href="https:&#x2F;&#x2F;cucumber.io&#x2F;docs&#x2F;" rel="nofollow">https:&#x2F;&#x2F;cucumber.io&#x2F;docs&#x2F;</a><p>Gherkin is basically a structured form of English that can be fed into a unit testing framework to match against methods.<p>The nice thing about writing acceptance criteria this way is that they become executable and analyzable. You write some Gherkin and then ask the model to make the tests execute and pass. Now in a good IDE (IntelliJ has good support) you can run the acceptance criteria to ensure they pass, navigate from any specific acceptance criteria to the code which tests it (and from there to the code that implements it), you can generate reports, integrate it into CI and so on.<p>And when writing out acceptance tests that are quite similar, the IDE will help you with features like auto-complete. But if you need something that isn&#x27;t implemented in the test-side code yet, no big deal. Just write it anyway and the model will write the mapping code.<p>There&#x27;s a variant of Gherkin specifically designed for writing UI tests for web apps that also looks quite interesting. And because it&#x27;s an old ecosystem there&#x27;s lots of tooling around it.<p>Another thing I&#x27;ve found works well is asking the models to review every spec simultaneously and find contradictions. I&#x27;ve built myself a tool that does this and highlights the problems as errors in IntelliJ, like compiler errors. So I can click a button in the toolbar and then navigate between paragraphs that contradict each other. It&#x27;s like a word processor but for writing specs.<p>Once you&#x27;re doing spec driven development, you don&#x27;t need to write prompts anymore. Every prompt can just be &quot;Update the code and tests to match the changes to the specs.&quot;
        • eterps3 hours ago
          I agree, Cucumber works really well with LLMs.<p>&gt; I use a mix of Markdown and Gherkin<p>Gherkin also has a Markdown based syntax that is not well known:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;cucumber&#x2F;gherkin&#x2F;blob&#x2F;main&#x2F;MARKDOWN_WITH_GHERKIN.md" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;cucumber&#x2F;gherkin&#x2F;blob&#x2F;main&#x2F;MARKDOWN_WITH_...</a><p>I prefer that to the &#x27;verbose&#x27; original syntax. MDG also renders nicely in code forges.
        • try-working3 hours ago
          I solved this five months ago with recursive-mode: recursive-mode.dev&#x2F;introduction
          • chrisweekly30 minutes ago
            Thanks! Looks great, bookmarked.
        • MoreQARespect3 hours ago
          The problem with gherkin is that it was a badly designed language.<p>The general idea of &quot;readable specification language&quot; was an inspired one but it failed on execution - it has gnarly syntax, no typing and bad abstractions.<p>This results in poor tests which are hard to maintain and diverge between being either too repetitive to be useful or too vague to be useful.<p>The ecosystem is big but it&#x27;s built on crumbling foundations which is why when most people used it most of them got frustrated and gave up on it.<p>Annoyingly there&#x27;s a certain amount of gaslighting around it too (&quot;it didnt work for you coz you werent using it correctly&quot;) which is eleven different kinds of wrong.
      • cowanon774 hours ago
        Jira is only a set of changes though. What happens on a long (10+ year) and complex (10+) developer project with many changes and revisions? Eventually you need an explicit specification that itself has a &quot;current state&quot;, and a change log. Theoretically you could generate this from Jira, but in my experience it eventually became a mess on any larger project that didn&#x27;t have explicit and maintained writen requirements.
        • foobarbecue2 hours ago
          Jira has current state and a change log. The proposal here is &quot;use yaml instead of jira.&quot; Same damn thing, same damn mess.
      • Diti5 hours ago
        What about when you migrate away from Jira, or when there’s a Cloudflare outage?
    • gnat5 hours ago
      Nice! Your spec-maxxing is very resonant. I&#x27;ve been doing working with explicit requirements: elicit them from conversation with me or introspecting another piece of software; one-shot from them; and keep them up-to-date as I do the &quot;old man shouts at Claude&quot; iterations after whatever one-shotting came up with.<p>Unlike you, I wish for the LLM to do as much of the work as possible -- but &quot;as possible&quot; is doing a lot of work in that sentence. I&#x27;m still trying to get clear on exactly where I am needed and where Opus and iterations will get there eventually.<p>It has really challenged me to get clearer on what a requirement is vs a constraint (e.g., &quot;you don&#x27;t get to reinvent the database schema, we&#x27;re building part of a larger system&quot;). And I still battle with when and how to specify UI behaviours: so much UI is implicit, and it seems quite daunting to have to specify so much to get it working. I have new respect for whoever wrote the undoubtedly bajillion tests for Flutter and other UI toolkits.
      • gnat5 hours ago
        Forgot to add: I get several benefits from doing this.<p>1. Specifications that live outside the code. We have a lot of code for which &quot;what should this do?&quot; is a subjective answer, because &quot;what was this written to do?&quot; is either oral legend or lost in time. As future Claude sessions add new features, this is how Claude can remember what was intentional in the existing code and what were accidents of implementation. And they&#x27;re useful for documenters, support, etc.<p>2. Specifications that stay up to date as code is written. No spec survives first contact with the enemy (implementation in the real world). &quot;Huh, there are TWO statuses for Missing orders, but we wrote this assuming just one. How do we display them? Which are we setting or is it configurable?&quot; etc. Implementer finds things the specifier got wrong about reality, things the specifier missed that need to be specified&#x2F;decided, and testing finds what they both missed.<p>I have a colleague working on saving architecture decisions, and his description of it feels like a higher-abstraction version of my saving and maintaining requirements.
        • try-working3 hours ago
          Specifications doesn&#x27;t tell you what to do, they say what the end state should be. In between that you need a codebase analysis step and an implementation plan.<p>My recursive-mode workflow handles all of that and more and gives you full traceability: <a href="https:&#x2F;&#x2F;recursive-mode.dev&#x2F;introduction" rel="nofollow">https:&#x2F;&#x2F;recursive-mode.dev&#x2F;introduction</a>
        • energy1235 hours ago
          I do (1) the same but (2) differently. In my workflow, (2) are AI generated specs using human written (1) as the input. It&#x27;s an intermediate stage between (1) and the codebase, allowing for a gradual token expansion from 30k to 250k to the final code which is 2-3M. The benefit I&#x27;ve found with this approach is it gives the AI a way to iterate on the details of whole system in one context window, whereas fitting the whole codebase into one prompt is impossible. The code is then nothing more than a style transfer from (2).
          • hansmayer4 hours ago
            Let&#x27;s cut through the noise - what did you build with this very elaborate process and how much ARR is it generating ?
            • rrgok3 hours ago
              Asking the real questions. I would also really like know how much value AIs are bringing in terms of ARR or MRR.
          • kennyloginz4 hours ago
            Jfc
    • algoth131 minutes ago
      So basically, talk with a rubber duck, but record the conversation
    • colechristensen3 hours ago
      So what I&#x27;m building is a github clone with epics&#x2F;issues&#x2F;kanban + specs&#x2F;requirements&#x2F;standards + CI&#x2F;testing&#x2F;coverage with the idea that all of those things connect so issues+requirements+testing all interact via code+webUI+CLI the point being that we can specify how a product is to function and the steps to get there and it&#x27;s less a matter of telling a person or an LLM to read and implement the spec and more software actually keeping track at all times.
    • slopinthebag5 hours ago
      I actually read it all since it did not contain any hints of being AI generated (although I wouldn&#x27;t be surprised to learn you did use AI to write it), so thank you for that. It&#x27;s kind of crazy how I now have the default expectation that posts posted here are AI slop with little thought or care put in.<p>I am also stealing the idea of talking to LLMs as if it&#x27;s an email. So funny, we need to be joymaxxing a bit more I think :)
    • DonHopkins5 hours ago
      Great idea -- just one suggestion if you want it to catch on: perform some IncelCultureMinning on the nomenclature.<p>You probably don&#x27;t want people associating your work with abusing crystal meth and hitting yourself in the face with a hammer.<p>For anyone missing the reference, SNL has a pretty good explainer:<p><a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=4XMPLdiXB1k" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=4XMPLdiXB1k</a>
  • ffsm82 hours ago
    Why is the vibecoding crowd still holding onto the idea that markdown (or here yml) is a better spec then <i>code</i>?<p>Seriously, it&#x27;s just not<p>Write your code like it&#x27;s your spec and your software will be more stable, maintainable clearer to read.<p>Code is not transient, it is your friggin spec itself<p>And if your code isn&#x27;t structured like it&#x27;s a spec, then your code is garbage from the perspective of LLM driven development
    • brendanmc61 hour ago
      I think you are confusing the spec as &quot;this is how it must be built&quot;, as opposed to, &quot;this is what the software must do and must not do to be acceptable&quot;.<p>To me saying &quot;the code is the spec&quot; is like saying &quot;the business wants it this way because that&#x27;s how the code is written&quot;. Which is obviously backwards.<p>Does the business mandate we use a cache for this hot path? No, but the business set performance targets, and the cache was a sensible way to satisfy them. See the difference?<p>I believe that the &#x27;musts&#x27; and &#x27;must nots&#x27; deserve special attention, and need to be recorded well before I decide on the &#x27;how&#x27;. Every team does this differently. I find that writing itemized, functional acceptance criteria is practical way to marry the two domains. I also think the process matters a lot more now, because the temptation to let an agent ship it is increasing and the tedium of maintaining these specs is decreasing.
      • kibwen1 hour ago
        <i>&gt; Does the business mandate we use a cache for this hot path? No, but the business set performance targets, and the cache was a sensible way to satisfy them. See the difference?</i><p>This seems confused. Specs are free to include as much or as little detail as they deem necessary. If a spec only wants to suggest vague performance goals and handwave the details, that&#x27;s permitted. But if specs want to specify the exact means by which performance will be guaranteed, that&#x27;s also permitted. And this isn&#x27;t an anti-pattern, this is often very useful. For example, plenty of APIs in the real world specify algorithmic upper bounds for time and space consumption, which is useful in that they allow downstream consumers to have a greater understanding of what sort of performance their own systems will exhibit despite the API itself being a black box in other respects.<p>So the answer to the original question definitely isn&#x27;t &quot;no&quot;, it&#x27;s &quot;maybe, depending on the sort of guarantees we want to provide to our users&quot;.
        • brendanmc643 minutes ago
          I think we are actually saying the same thing! We could think of situations where the cache would be verboten (sensitive info), or where it would be mandatory, like in your example, or optional like in my example.<p>My aim was to voice disagreement with the &quot;code is spec&quot; crowd, whom I think are using a different (and in my opinion tautological &#x2F; useless &#x2F; counterproductive) definition of spec. Probably because they are mad that I use trigger words like Vibe and Maxxing, and they assume I can&#x27;t even read the code I&#x27;m shipping. I digress.<p>In your &quot;time complexity is a downstream requirement&quot; example, which is a great one, I think you would prefer to have well-maintained written documentation of that criterion that lives <i>outside</i> of the procedural code itself, would you not? How much attention that doc gets is a matter of process and preference, but I&#x27;m advocating it should get more (spec-first).
      • lelanthran1 hour ago
        &gt; I think you are confusing the spec as &quot;this is how it must be built&quot;, as opposed to, &quot;this is what the software must do and must not do to be acceptable&quot;.<p>You can&#x27;t enforce a &quot;do not do this&quot; to an LLM. Just putting it in the context by saying &quot;don&#x27;t do this&quot; makes it <i>more</i> likely that it will eventually do that.
        • jychang1 hour ago
          Yes, I agree. If you tell humans &quot;do not think of pink elephants&quot;, they are more likely to think about pink elephants.<p>Therefore, you must not use humans for any important work.
          • lelanthran59 minutes ago
            &gt; Yes, I agree. If you tell humans &quot;do not think of pink elephants&quot;, they are more likely to think about pink elephants.<p>&gt; Therefore, you must not use humans for any important work.<p>Counterpoint, <i>all</i> important work done in the history of humans were done by... humans, and yet I see no pink elephants created as a result of telling humans &quot;do not think of pink elephants&quot;.
            • jfreds12 minutes ago
              I’ve seen loads of very bad&#x2F;wrong code written by humans
      • mpalmer38 minutes ago
        &gt; I think you are confusing the spec as &quot;this is how it must be built&quot;, as opposed to, &quot;this is what the software must do and must not do to be acceptable&quot;.<p>You are confusing code with application code. The latter thing you describe is a test, which is expressible in code.
      • locknitpicker1 hour ago
        &gt; To me saying &quot;the code is the spec&quot; is like saying &quot;the business wants it this way because that&#x27;s how the code is written&quot;. Which is obviously backwards.<p>Not only is it backwards, it is a belief that is completely wrong and detached from reality. More often than not, implementations contrast with business requirements both in terms of bugs and gotchas.<p>Also, it&#x27;s laughable how code is depicted as the realization of any spec when the whole software development sector is organized around processes that amount to improvising solutions in short iterations.
    • brap1 hour ago
      Software engineering is different from other engineering disciplines in that the most explicit spec of the thing you’re building <i>is</i> the actual thing itself.<p>When you want to build a bridge you finalize all the blueprints and then someone goes and actually pours concrete, in software the blueprint is the code, and the code is also the bridge.<p>However there are different levels of abstraction for writing specs and code is just the most explicit form. With LLMs more of our time can be spent in those higher levels of abstraction and free us from work that is often repetitive and mundane.<p>I think the (distant) future of software engineering is not code writing but mostly requirements writing, and so it makes sense to build frameworks, “IDEs”, etc. around this new form of “programming”.<p>I don’t know if ACAI is the right one but the direction is interesting.
      • oblio1 hour ago
        &gt; When you want to build a bridge you finalize all the blueprints and then someone goes and actually pours concrete<p>Construction has plans &quot;as designed&quot; and &quot;as built&quot;.
    • musebox351 hour ago
      Not all parts of the code is equal in this respect. Those parts pertaining to the user visible portion (API of a library, command args of a CLI, UI of a GUI&#x2F;TUI app, endpoints in a web service, etc.) are closely related to the spec. The rest is more fluid as long as it does not change user visible behavior. The choices still affect maintenance and debugging costs, so there is some pressure to not YOLO these portions. I think the most difficult design decisions relate to how to separate the two and how to ensure a smooth evolution of both user facing and programmer facing design decisions.<p>What is different now is that maintainability and debugging design decisions were made w.r.t. human coders or teams in the past which is not necessarily the case anymore. Should we just specify the API and let agents figure the rest or do we still want to control the rest to ensure maintenance and security? A year ago I definitely thought so. Now it is more murky as the agents are faster browsers of codebases and can explore runtime effects faster than I can type and parse output. Strongest empirical observations depend on the runtime behavior so they have an edge there.
    • raincole51 minutes ago
      Before AI era, specs meant documentations. The specs of jpeg, png, h.264, docx, usbc or whatever format you can think of, are not just a bunch of C++ source files.<p>Compilable source files served as example implementations, complementary to the specs themselves. The idea that code is spec is just agile brainrot, like the idea that clean code means you never need to write documents or comments.
    • anonzzzies2 hours ago
      Most &#x27;programmers&#x27; cannot read or write code very well (or reason about structure or architecture) and so they want to &#x27;program in english&#x27;.
    • rogermarley1 hour ago
      Exactly. There&#x27;s little gap between a spec that&#x27;s been written to the level of detail needed and just code. There&#x27;s some, but it&#x27;s not a big gap after decades of umpteen new frameworks and languages and new forms of abstraction.<p>The core of the misunderstanding is between new builds and making changes to existing builds (where most software dev work actually happens). Yes, you&#x27;ll get a great headstart with a detailed spec for a new build. The issue is in the hundreds of changes that&#x27;ll follow that.<p>Do people think that the desire to make shortcuts and do minimum effort changes is going to stop just because you&#x27;ve got a bit-more-natural-language-looking spec? And then with an AI underneath making probabilistic changes to code that&#x27;s now basically a compile target - they really think the dev pace isn&#x27;t going to collapse, but just faster and with a big ongoing inference bill?<p>The LLM&#x27;s <i>do not form mental models</i>. You are not going to get a better results from an LLM vibe coding against spec diffs vs a dev prompting it from a position of understanding the codebase and the requested change.
    • smokel1 hour ago
      No, code is not the same as a specification. There are a lot of accidental implementation details that the customer may not require. By making the code the specification, you end up with those details becoming requirements, and you can then no longer change that implementation.<p>Having functional behavior and implementation details separate can be really useful, even though it is typically a pain to keep them in sync.
    • bdcravens1 hour ago
      It needn&#x27;t be an either&#x2F;or. I find writing pseudocode in a structured, but flexible, manner highly effective.
    • adipose1 hour ago
      i think it&#x27;s the same reason where if you fail to produce the amazing results a scammer&#x2F;guru&#x2F;MLM promised you, they can always respond with:<p>&gt; &quot;we never said this would work for everyone, it depends on the effort you put into it!&quot;<p>it&#x27;s perfect for extending the lifespan of a scam on someone because yes, obviously it&#x27;s true that in general you can improve results by working harder, being more disciplined, whatever...<p>same here, functionally. of course there are better and worse ways of writing a spec, a prompt, etc. but i honestly think a lot of the focus on this is a way to divert attention from the overall ceiling of these tools in general.<p>in other words yes, it&#x27;s not all bullshit, but there&#x27;s a huge aspect of this &quot;prompt&#x2F;spec engineering&quot; that in my view is a way to unconsciously buttress the &quot;LLMs are going to 10x our GDP&quot; mindset -- if those high expectations aren&#x27;t panning out, there&#x27;s always:<p>&gt; &quot;we never said this would work for everyone, it depends on the effort you put into the spec!&quot;
    • zbyforgotp2 hours ago
      The idea is that the spec is somehow compressed in comparison to the code.
    • locknitpicker1 hour ago
      &gt; Why is the vibecoding crowd still holding onto the idea that markdown (or here yml) is a better spec then code?<p>From your comments it sounds like you are oblivious to the whole problem domain.<p>The whole point of these tools and frameworks is to provide a high level description of not only what features are already implemented in a project but also and more importantly what features you want to implement.<p>To put it in simpler terms, the point is to write down high level specs in a way that coding assistants can parse them and implement them.<p>I recommend you research spec-driven development, a whole set of frameworks designed to put together specs in a way coding agents can roll out plans to implement features in one-shot or few-shot prompts.<p>You know, what specs are used for.
      • ffsm86 minutes ago
        Oh I&#x27;ve researched it and did two projects entirely like that, both scaled to 150k loc and I believe 90k loc last summer to fall.<p>That approach just doesn&#x27;t scale unless you don&#x27;t care about your product whatsoever, hence my comment<p>I&#x27;ve successfully been working on various personal projects with highly stable functionality since I stopped that approach and instead focused more into leveraging my codebase to become the spec.<p>Very low maintenance and great to add features after the initial hurdle of structuring your codebase that it&#x27;s less about implementation detail and more about spec<p>So yeah, sorry but your imagination is running wild
    • soma80881 hour ago
      This may hold true for greenfields, a little harder to do with a million line, 15 year old legacy code base. Good luck with your credits watching your agent churn those those files over and over and over for each request.
      • ffsm81 hour ago
        And are you seriously suggesting you&#x27;ll be able to do spec driven development via markdown files in that? If not, then you&#x27;re missing the point entirely.<p>I very explicitly stated that if your codebase isn&#x27;t written like a spec you cannot effectively use it for LLM driven development.<p>You can still edit the code via LLM, it&#x27;s just always going to be a highly involved process with very careful reviews unless you&#x27;re happy with regressions.
    • brentcrude1 hour ago
      [dead]
  • cabnm3 minutes ago
    I don&#x27;t think the manic tone of the blog post is an indication that overcoming AI psychosis has worked in any way.
  • colinmarc5 hours ago
    Wow - I love programming in YAML! You know what would make this really fun? Sprinkle in some Jinja. Then we&#x27;ll be cooking with gas.
    • hansmayer5 hours ago
      :) Here is a crazy thought - what if we had some kind of a narrowed down, specific subset of normal language which would translate into specific computer-level instructions. So for example, instead of telling computer to read something from a file and transform it in a certain way, you actually had a specific instruction to open a file, which worked the same each time you used it and guaranteed to fail if you used it the wrong way? Wow, the possibilities are endless :)
      • wiseowise4 hours ago
        Don’t be ridiculous, that would be extremely hard. Oppressive even, because it’s unattainable to an average person. And it is, otherwise there would be millions of programmers in the world. Was it unattainable or “we have to pay these suckers money, and they have <i>rights</i> and lives outside of work”? Bah! Just make sure to renew your subscription, agent will do the thinking and you bring the money.
        • hansmayer4 hours ago
          But Paul Graham says that the guy from Replit whom he funded told him the source code is &quot;object code&quot; now, so we don&#x27;t need to look at it all ? It must be utter wisdom since PG managed to get wealthy by selling some website during dotcom-mania so he must have insights we are missing?
          • wiseowise2 hours ago
            Heathen. And you dare to say this on a website created by the guy?
          • oblio1 hour ago
            &gt; PG managed to get wealthy by selling some website during dotcom-mania<p>I don&#x27;t remember how much he made selling the &quot;quickly-killed startup bought by now failed internet giant&quot;.<p>But I&#x27;m fairly sure how much money he made building something other people used is peanuts compared to what he made investing early in companies where others built things, instead of him.
      • woolion1 hour ago
        [flagged]
    • grunder_advice5 hours ago
      Exactly. At some point, the specification becomes so complex, it&#x27;s easier to just write the code yourself.<p>It&#x27;s why famously, programmers always say, the code is the documentation, because writing detailed docs is very tedious and nobody wants to do it.
      • bonesss5 hours ago
        There are middle-ways.<p>Behaviour Driven Development or Spec Driven Development are, loosely, forms of Test Driven Development where you encode the specification into the code base. No impedance, full insight, formality through code.<p>I think people get really dogmatic about “test” projects, but with a touch of effort a unit test harness can be split up into integration tests, acceptance tests, and specification compliance tests. Pull the data out as human readable reports and you have a living, verifiable, specification.<p>Particularly using something comparable to back-ticks in F#, which let test names be defined with spaces and punctuation (ie “<i>fulfills requirement 5.A.1, timeouts fail gracefully on mobile</i>”), you can create specific layers of compiled, versioned, and verifiable specification baked into the codebase and available for PMs and testers and clients and approval committees.
    • bronxpockfabz4 hours ago
      We might as well future proof this by writing specs in YAML-ified Ruby, this way it&#x27;s more flexible, I&#x27;ve been told it&#x27;s best practice!
    • karmakaze2 hours ago
      I started reading to find out why Yaml? In it&#x27;s place I found a great post.<p>One thing though, I loved the &quot;AUTH-1&quot; numbering and the Yaml breaks that into an Auth section, with &quot;1.&quot; subsection which I don&#x27;t like nearly as much, the codification AUTH-1 is more referenceable&#x2F;searchable.
      • brendanmc61 hour ago
        Ah, I should have said explicitly or provided an example of in the post;<p>The tooling expects that you refer to each requirement by full ID e.g.<p><pre><code> # admin.AUTH.1</code></pre>
    • photios5 hours ago
      Dreaming about ` | nindent 12` in my specs! :D
    • dgellow3 hours ago
      Crying in k8s templating
  • jFriedensreich5 hours ago
    Where is the part where the author overcomes ai psychosis? Reads like digging in deeper and deeper.
    • brendanmc64 hours ago
      Fair, I could have made that point clearer. It&#x27;s a couple things. First is that I finally stopped experimenting with TUIs, harnesses, models, subagents, roles, skills, mcp, md libraries etc. and have mostly settled on this approach, and got back to building other things with it. I&#x27;m sure that won&#x27;t last forever though.<p>Second is that I&#x27;m doing a lot less &quot;seat of my pants prompting&quot; and doing more engineering and ideating, which was a big goal of mine. So I&#x27;m feeling less psychotic there too.<p>And sort of tangentially to that, I think a significant subset of devs actually are willing to just prompt their way to nirvana, day in and day out. I&#x27;m not. I think the spec will carry a lot of weight for a long time. Maybe they will get further than I give them credit for? Maybe the whole digital world becomes a single chat box?
      • dgellow3 hours ago
        I don’t understand how that relates to AI psychosis?
        • brendanmc63 hours ago
          I guess I misappropriated the term then, woops. AI OCD? AI obsession? Whatever you call the behavior that I saw myself and others falling in to. Getting obnoxiously fixated on the tooling and the models to a counterproductive degree.
          • MaKey3 hours ago
            AI psychosis: <i>(informal) A phenomenon wherein individuals reportedly develop or experience worsening psychosis, such as paranoia and delusions, in connection with their use of chatbots.</i><p><a href="https:&#x2F;&#x2F;en.wiktionary.org&#x2F;wiki&#x2F;AI_psychosis" rel="nofollow">https:&#x2F;&#x2F;en.wiktionary.org&#x2F;wiki&#x2F;AI_psychosis</a>
          • jFriedensreich2 hours ago
            The thing is, devs with AI psychosis often work on memory systems and harnesses as part of their delusion, so i would not rule out you have it!
        • khalic3 hours ago
          Some people seem to give very little thought to semantics and semiotics lately, to the point where people use words vaguely without even looking it up.
      • aliceryhl3 hours ago
        This is not psychosis.
    • wiseowise4 hours ago
      That’s the best part: you don’t. “You would extend the prompt to improve it”. They’ll just ask Claude to write an AI tool to overcome psychosis (the program will spam Anthropic servers with racial slurs which will promptly cause ban of the user, success).
  • sailfast43 minutes ago
    This seems like circling around the same problem: AI just misses things sometimes and the things it misses can end up being really important. If you don’t cross-check it, you’ll have a bad time.<p>I’ve used a couple of different skills libraries for this - most recently “super powers” which builds a detailed markdown plan and then uses TDD for most parts.<p>Not sure converting to YAML and running an app to track beats Linear tickets or a local cache or markdown if I’m honest but if it works for you and your process that’s great!<p>Mainly I don’t think everyone building their bespoke solution needs to try and create a product out of it. If it works for you, maybe good enough. Focus on your process before you worry about generalizing these days.
  • smokel1 hour ago
    Quite some people here dismiss requirements engineering as something non-agile and ancient.<p>If you are in this camp, consider educating yourself a bit on the V-model [1] and notice that this is not only used in the waterfall model, but that it is a way to decompose problems and verify that everything works properly.<p>This may not be required for a small hobby project, but if you start working at something with multiple companies in various technologies, it soon becomes extremely useful.<p>[1] <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;V-model" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;V-model</a>
  • cube22223 hours ago
    Love the writing style!<p>&gt; Nothing beats an organic, pasture-raised, hand-written spec.<p>Hah, I strongly empathize with the wording. I’ve been starting my design docs for fellow humans with “100% hand-written, organic content”, I might steal a part of yours.<p>Overall, cool idea. I don’t see myself using your SaaS, but the approach of tagging the requirements and constraints to make them easier to find sounds good.<p>One project you didn’t mention which I think is also, I think, a cool perspective on this is codespeak.dev , but I haven’t given it a go yet.<p>All in all, I feel like maintaining specs, and having agents translate spec diffs into code diffs is a promising area for the future. Good thing I enjoy writing!
  • stevefan19994 hours ago
    So...is this just Cucumber <i>cough cough</i> behavior driven design again, but stored in YAML so that LLMs can read it easier by loading the AST instead of tokenizing the text?
  • matthova1 hour ago
    Generally excited to try it out. The only thing that gives me pause is the idea of asking Claude to install a specific package. I know this is a bit naive as I’m probably downloading so many other things without my knowledge, but planning to read&#x2F;fork the source before running any install commands
    • brendanmc620 minutes ago
      If you do end up taking a closer look (very much appreciated), take a peek at this security checklist I went over before publishing. I&#x27;m also scarred by all the supply chain attacks lately, do let me know if anything is missing.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;acai-sh&#x2F;cli&#x2F;blob&#x2F;main&#x2F;docs&#x2F;security.md" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;acai-sh&#x2F;cli&#x2F;blob&#x2F;main&#x2F;docs&#x2F;security.md</a>
  • arikrahman6 hours ago
    I use OpenSpec for my spec management, and I scrolled down to the comparison. The gripe seems to be with a semantic difference. Specs describing a current system is the basis for AS&#x2F;IS Gap Analysis.<p>Also, I mainly pursue these tools so that I can have AI accelerate this process and broker an agreement after negotiating specs with the agent.
    • jochem95 hours ago
      I&#x27;m also doing openspec for a few months now and it&#x27;s really good if you invest enough in the specs (in the beginning I skimmed over much, now I pay attention to all details and fix anything that&#x27;s wrong or where I see a gap).<p>The one thing I like that OP brings is to tie specs and code together. The openspec flow does help a lot in keeping code synced with specs, but when a spec changes, AI needs to find the relevant code to change it. It&#x27;s pretty easy to miss something in large codebase (especially when there is lots of legacy stuff).<p>Being able to search for numbered spec tags to find relevant bits of code makes it much more likely to find what needs to be changed (and probably with less token use too).
    • energy1236 hours ago
      I can see one benefit to a structured yaml for specs like the OP is doing: it gives you more control over what you include in the context window. But coming up with a good schema that doesn&#x27;t handicap you or add cognitive burden, compared to the freeform flexibility of md&#x2F;txt, is a challenge.
      • arikrahman5 hours ago
        If the selling point is a new file format for spec management, it would be more interesting to provide an offering with org-mode. The author admits they were unaware of other pre-existing solutions before this project so I am providing context to their critique of OpenSpec.
  • jwpapi5 hours ago
    And once you’ve written all these specs you realize it became so slow that it’s faster to do it yourself in editor
    • girvo5 hours ago
      People don’t actually track wall clock time, I’ve noticed.
    • motoxpro5 hours ago
      at which point you realize you never had a plan written down and you are using the code as a spec
      • jbjbjbjb5 hours ago
        Which takes us back to this:<p><a href="https:&#x2F;&#x2F;haskellforall.com&#x2F;2026&#x2F;03&#x2F;a-sufficiently-detailed-spec-is-code" rel="nofollow">https:&#x2F;&#x2F;haskellforall.com&#x2F;2026&#x2F;03&#x2F;a-sufficiently-detailed-sp...</a>
    • wiseowise4 hours ago
      But have you thought about “fun factor”? It’s where you sit like an addict in a casino for weeks and burn tokens in a hope of winning a software that you could’ve written? Who doesn’t consider “fun” thinking about work crap all the time, writing to your agent, verifying walls of slop?
  • jeffreygoesto5 hours ago
    Old ist new I guess. This is independent of whether A&quot;I&quot; or a human executes, the point is that you need this if specifying and execution lie apart, be it in time or space. This is basically the whole point of the V-Model and processes (if used correctly as a tool and not preferred as goals) and was already researched an formalized in the 60s and 70s.
  • clbrmbr55 minutes ago
    I’ve had great success structuring requirements using Johnny Decimal. Well organized and numbered requirements for each project is mega helpful for agents and humans throughout the progress. Oh and I love açaí.
  • dotneter3 hours ago
    I didn’t quite understand why YAML is better than Markdown for such specifications.<p>If the specification is written in such a strict format as YAML, I would expect it to be executable, something like this <a href="https:&#x2F;&#x2F;blog.fooqux.com&#x2F;blog&#x2F;executable-specification&#x2F;" rel="nofollow">https:&#x2F;&#x2F;blog.fooqux.com&#x2F;blog&#x2F;executable-specification&#x2F;</a><p>But as far as I understood, for acai that is not the case.
    • brendanmc61 hour ago
      Here is how I got from Markdown to YAML in a few easy steps:<p>1. Start with unmaintainable prompt.<p><pre><code> Add auth to the admin route. It must only be accessible to team members. It must not be accessible to team members with the `quarantine` role. Unauthorized users should be redirected to the &#x2F;login page, with query param `?error=unauthorized`. Requires fresh session, no older than 10 minutes. </code></pre> 2. Put it in a structured .md spec of some kind<p><pre><code> # Feat: Admin Route ## Auth requirements * [ ] Accessible to team members. * [ ] Not be accessible to members with `quarantine` role. * [ ] Redirects unauthorized users to &#x2F;login * [ ] Redirect path includes `?error=unauthorized` * [ ] Requires fresh session, no older than 10 minutes. </code></pre> But how do you cross reference the requirements? Give them stable IDs?<p><pre><code> # Feat: Admin Route ## Requirements AUTH.1: Accessible to team members. AUTH.2: Not be accessible to members with `quarantine` role. AUTH.3: Redirects unauthorized users to &#x2F;login. AUTH.3.1: Redirect path includes `?error=unauthorized`. AUTH.4: Requires fresh session, no older than 10 minutes. </code></pre> Might as well clean it up and make it machine readable at that point?<p><pre><code> feature: name: admin-route requirements: AUTH: 1: Accessible to team members. 2: Not be accessible to members with `quarantine` role. 3: Redirects unauthorized users to &#x2F;login. 3-1: Redirect path includes `?error=unauthorized`. 4: Requires fresh session, no older than 10 minutes.</code></pre> ```
      • dotneter3 minutes ago
        &gt; Might as well clean it up and make it machine readable at that point?<p>For me this looks pretty machine readable.<p>## Requirements<p><pre><code> AUTH.1: Accessible to team members. AUTH.2: Not be accessible to members with `quarantine` role. AUTH.3: Redirects unauthorized users to &#x2F;login. AUTH.3.1: Redirect path includes `?error=unauthorized`. AUTH.4: Requires fresh session, no older than 10 minutes. </code></pre> Yes, yaml is more &quot;parseble&quot;. But I still need to use some format conventions inside yaml. So I could just use them inside markdown as well.
    • csomar2 hours ago
      It&#x27;s not. And LLMs don&#x27;t do well with YAML either. I&#x27;ve had the agent&#x2F;model struggle with `sed` trying to count how many spaces are in there multiple times to get the file to pass. It&#x27;s the worst format you can use for LLMs.
  • wesselbindt6 hours ago
    I&#x27;m still confused as to why folks don&#x27;t just write executable specs.
    • mike_hearn3 hours ago
      Some of us do! That&#x27;s called Gherkin.
    • eterm5 hours ago
      Ambiguity is the grease that keeps everything turning.
    • cenamus5 hours ago
      So basically tests?
      • MoreQARespect5 hours ago
        Yes, except a test can be turing complete - i.e. code.<p>An executable spec like gherkin or hitchstory is config - it has no loops or conditionals. There are a number of rarely recognized benefits to this.
    • carlbarrdahl5 hours ago
      Could you expand on this?
      • booi5 hours ago
        code
        • arikrahman5 hours ago
          Literate programming would provide specs and code instead of working backwards from hard coded functions to figure out specs.
          • cassianoleal3 hours ago
            &gt; working backwards from hard coded functions to figure out specs.<p>People do that? Actual professionals?
    • fudgeonastick5 hours ago
      If you&#x27;re confused, and have tried Opus for coding, I&#x27;m keen to hear what problems or workflows it&#x27;s not good at.<p>If you&#x27;re genuinely confused, and haven&#x27;t tried Opus for coding, then it&#x27;s not surprising you&#x27;re confused!<p>It is also okay for you to just not like the idea of LLMs for coding (but say that!).
      • wiseowise4 hours ago
        I’m using Opus 4.6 and I’m so confused! Maybe I should try Opus 4.7, which is almost twice as expensive to get some clarity (but not too much, I need to save money for Opus 4.8)?
      • oytis5 hours ago
        That&#x27;s what the article is about - overcoming problems with AI cooding tools using specs in Yaml. If we&#x27;ve got that far, it might be better to write specs in a proper programming language instead and skip the AI layer altogether
        • adi_kurian4 hours ago
          Think the idea is to still get monumental acceleration between fancy YAML specs (bullet points with some indentation that an intelligent technical manager could write) and production ready code.
  • taffydavid4 hours ago
    I just spent a week training up in spec driven development through bmad, which was awful, and speckit which was ok but not great. Both had what seemed like unnecessary ceremony around the specs, generating fields of spec documents which presumably fill up the context window quickly. I just kept thinking &quot;this should be using something simpler, all this markdown is unnecessary&quot;<p>This seems like the answer to that thought!
  • teekert3 hours ago
    It’s like a yaml of an event model but less graphical. Right? I think I will prefer Event Modeling especially with Martin Dilger now building tooling very much with agents in mind. There is no one place to read about his most recent efforts except for his LinkedIn feed though I fear.l so won’t post any urls, but information is easy enough to find.<p>A full blown event model facilitates all communication, human (management, devs, ops) and agentic. But maybe I’m missing something, maybe the dashboard can have this function I didn’t dig into it too much.
  • augment_me5 hours ago
    Completely subjective take, but I feel like 95% of these &quot;tools&quot; that are prompt-engineering inventions created by the authors with their bias and to suit their needs don&#x27;t have anything supporting them besides the authors&#x27; subjective experience.<p>I have seen the same idea with processes, pipelines, lists, bullet points, jsons, yamls, trees, prioritization queues all for LLM context and instruction alignment. It&#x27;s like the authors take the structure they are familiar with, and go 100% in on it until it provides value for them and then they think it&#x27;s the best thing since sliced bread.<p>I would like, for once, to see some kind of exploration&#x2F;abalation against other methods. Or even better, a tool that uses your data to figure out your personal bias and structure preference for writing specs, so that you can have a way of providing yourself value.
    • sunaookami4 hours ago
      It&#x27;s Vibesmaxxing
    • hsaliak1 hour ago
      nobody knows what to build when everything can be built, there is no moat.
    • IceDane4 hours ago
      It&#x27;s like horoscopes for the entirely-too-AI-pilled. Founded in nothing but vibes.<p>&quot;Don&#x27;t write prompts like that, do it like this! I swear it&#x27;s better. Claude says so!&quot;
  • zarzavat5 hours ago
    YAML is one of the worst technologies ever invented, it has more warts than features. One of the benefits of LLMs is that they can write YAML for me, wherever I am forced to use it.<p>Otherwise, I like the idea of machine-readable specs.
  • wismwasm6 hours ago
    Try openspec: <a href="https:&#x2F;&#x2F;github.com&#x2F;Fission-AI&#x2F;OpenSpec&#x2F;blob&#x2F;main&#x2F;docs&#x2F;getting-started.md" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Fission-AI&#x2F;OpenSpec&#x2F;blob&#x2F;main&#x2F;docs&#x2F;gettin...</a>
    • arikrahman5 hours ago
      That was my initial thought when reading the headline but the author states they didn&#x27;t know it existed before doing this project and critiques it.
    • brendanmc65 hours ago
      Indeed I have a lot of catch up to do, will spend some time with the popular tools before I go too much further down this road.
  • photios5 hours ago
    Yesterday I heard about lat.md [1] which seems to have similar ideas about annotating code with spec refs. I now need to try them both.<p>[1] <a href="https:&#x2F;&#x2F;www.lat.md&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.lat.md&#x2F;</a>
    • brendanmc65 hours ago
      Oh cool, thanks for sharing. LLMs tend to adopt these patterns on their own, so I&#x27;m sure my ideas are far from unique.
    • arikrahman5 hours ago
      Agents.md actually scales and outperforms alternatives so I would be skeptical about overcomplicating the proces <a href="https:&#x2F;&#x2F;vercel.com&#x2F;blog&#x2F;agents-md-outperforms-skills-in-our-agent-evals" rel="nofollow">https:&#x2F;&#x2F;vercel.com&#x2F;blog&#x2F;agents-md-outperforms-skills-in-our-...</a>
  • k92943 hours ago
    What is yours agentic development experience with elixir? I used to like elixir a lot during a pre agentic era, but with coding agents it feels like the language isn&#x27;t the best choice - slow compile time, weak type system (at least it was a year ago, I know there is work on that front), small ecosystem...
  • up-n-atom6 hours ago
    the token usage isn’t sustainable. formal english is a barrier but requirement for specification. brevity is the language of money and that’s the premise of management using ai.<p>fyi language alone can’t define&#x2F;describe requirements which is why UML existed.
    • jstanley6 hours ago
      Natural language is a fully general system and can define and describe everything.<p>You could deterministically process any UML diagram into a prose equivalent.<p>And in fact you couldn&#x27;t do the other way around (any prose -&gt; UML) because UML is less powerful than natural language and actually <i>can&#x27;t</i> express everything that natural language can.
      • hansmayer4 hours ago
        &gt; can define and describe everything.<p>Can it also <i>fully</i> describe a composition by Bach or a Rembrandt&#x27;s painting? In some weird, overly complex way it probably &#x27;could&#x27;, but it would be very painful. That&#x27;s why we pick other forms of expression. We use other forms of expression to compact and optimise information delivery. Another benefit is that we cut out the noise. So yes UML cannot describe everything natural language can, but then again why should it - it was designed as a specific framework for designing relations between objects. Not more and not less. Similar for sequence diagrams or other forms of communicating ideas efficiently.
      • rzzzt5 hours ago
        There are also diagram notation languages and LLMs are happy to both consume and produce e.g. Mermaid.
    • ako6 hours ago
      I think uml exists to help humans understand and communicate specifications, not because language alone is insufficient.
      • null_ptr15 hours ago
        I mean, if you can&#x27;t agree on what UML is, then what hope do you have to agree on what the spec says?
  • hansmayer5 hours ago
    &gt; We are entering the post-slop era. My software is more robust, better tested, better integrated, and more observable than ever before. And my velocity keeps increasing!<p>Don&#x27;t we just love the hard fact conclusions based on sample size N=1 and hand-waving arguments?
    • wiseowise4 hours ago
      They’re at the forefront of the industry. Catch up, slowpoke!
      • hansmayer4 hours ago
        Yeah. Waiting to be left behind...since 2020...
  • foobarbecue2 hours ago
    Unfortunate name collision between your ACID concept and the database principles (atomicity, consistency, isolation, durability).
  • k92944 hours ago
    Small advice - make one repo “main” and link to it from the website instead of an organisation.<p>I wanted to star the project to track the progress but it feels a bit weird.. Which repo shall I track? Server? Cli? Sounds like a misc repos.
    • brendanmc63 hours ago
      Ooh thought I did that, thanks.
  • opengears3 hours ago
    There are also Architectural Decision Records (ADRs), which might be something similar. <a href="https:&#x2F;&#x2F;adr.github.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;adr.github.io&#x2F;</a>
    • 0123456789ABCDE3 hours ago
      some folks also refer to these as PRODUCT decision records
  • jnpnj2 hours ago
    looks like an informal DSL for specs that brings back some quantifiable structure, how many people follow the same ?<p>also, i wonder if people who did MDD (model driven development) have embedded AI in their methodology
  • DeathArrow40 minutes ago
    When developing large or complex software with AI, I think we need kind of a &quot;Jira for coding agents&quot; - something that is much lighter and simple than Jira, where agents can see the specs, see what is completed, what is the relationship between different features and what needs to change.<p>That would be easier to use than gazillons of .md files and skills.
  • lifeisstillgood4 hours ago
    I also have started numbering my Acceptance criteria and pushing that across the team(s). It’s going pretty well. Some note however are<p>1. Don’t write in yaml. It’s really hard for humans. Write in markdown and use a standard means to convert to lists &#x2F; yaml.<p>2. Think beyond you writing your own specs - how does this expand into teams of tens or more. The ticketing system you have (jira? Bugzilla) is not designed for <i>discussion</i> of the <i>acceptance criteria</i>. I think we are heading into a world of waterfall again where we have discussions around the acceptance criteria. This is not a bad thing - is used to be called product management and they would write an upfront spec.<p>If this new world of a tech and a business user lead the writing of a new spec (like a PEP) and then then AI implements it and it’s put into a UAT harness for larger review and a daily cycle begins, we might have something.<p>Good luck
  • didgeoridoo2 hours ago
    I’m building something similar with <a href="https:&#x2F;&#x2F;github.com&#x2F;LabLeaks&#x2F;special" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;LabLeaks&#x2F;special</a> (apologies for the desultory slop-laden README, need to give that a lot more human attention) but I’ve gone in a slightly different direction: a “spec” is a product contract claim <i>supported by attached tests that verify it</i>. It’s a little Cucumber-y, if anyone remembers that, but a lot more flexible — you just write stuff like<p><pre><code> @spec LINT_COMMAND.ORPHAN_VERIFIES linter reports blocks that do not attach to a supported owned item. </code></pre> Then<p><pre><code> #[test] &#x2F;&#x2F; @verifies SPECIAL.LINT_COMMAND.ORPHAN_VERIFIES fn rejects_orphan_verifies_blocks() { let block = block_with_path(&quot;src&#x2F;example.rs&quot;, &amp;[&quot;@verifies EXPORT.ORPHAN&quot;]); let parsed = parse_current(&amp;block); assert!(parsed.verifies.is_empty()); assert_eq!(parsed.diagnostics.len(), 1); assert!( parsed.diagnostics[0] .message .contains(&quot;@verifies must attach to the next supported item&quot;) );</code></pre> }<p>And then the CLI command “special specs” pulls your specs and all attached verification + test code so you (or your LLM) to analyze whether the (hopefully passing!) test actually supports the product claim.<p>There’s also a bunch of other code quality commands and source annotations in there for architectural design &amp; analysis, fuzzy-checking for DRY opportunities, and general codebase health. But on the overall principle, this article is dead-on: when developing with LLMs, your source of truth should be in your code, or at least co-located with it.
  • TheServitor4 hours ago
    ugh with the &quot;maxxing&quot; everything
    • gverrilla1 hour ago
      it&#x27;s 4chan&#x2F;incel language. ugh indeed
  • imiric5 hours ago
    I&#x27;m tired, boss.<p>This industry has become a parody of itself, and people are celebrating.
    • brendanmc64 hours ago
      It&#x27;s ok friend, all I did is put acceptance criteria in a list so I can parse it and quickly track cross-references. The rest is just Elixir&#x2F;Phoenix and some creative writing.
  • SirFatty2 hours ago
    Stopped at &quot;Specsmaxxing&quot;.
  • mrbnprck5 hours ago
    Could it be that slop PRs are less frequently rejected&#x2F;commented due to (unfortunate) increased acceptance of it? As it turns out when maxxing AI on leaf parts of a program, the quality of the code doesn&#x27;t matter that much anymore when compared to building the fundament.
  • pineaux3 hours ago
    Anything [prefix]maxxing just sounds so bad. It just feels so Andrew Tate...
  • hsaliak1 hour ago
    the problem is not the forward pass, its the control&#x2F;feedback loop when slop is written in response to the forward pass. Perhaps we should give the LLM 2 specs, one designed for the forward pass and another for the acceptance criteria &#x2F;backward pass that&#x27;s focused on tests, best practices and code, so that the output is independently verified?
  • wiseowise5 hours ago
    What is it with people and procrastinating with the most useless shit you can imagine?<p>First it was choice of editor: people were micro optimizing every aspect of their typing experience, editor wars where people would literally slaughter over suggesting another camp.<p>Editor wars v2: IDEs arrived and second editor war began.<p>Revenge of the note taking apps: Obsidian&#x2F;Roam&#x2F;Joplin&#x2F;Apple Notes&#x2F;Logseq. Just one plugin, just one more knowledge graph, bro, and I’ll have peak productivity. 10x is almost here.<p>AI: you’re witnessing it now.<p>Do people NOT have anything else in life? How are y’all finding time to do all of this shit? Are you doing it on company time? Do you have hobbies, do you learn foreign languages, travel, have kids or spouses, drive a car, other thousand “normie” things outside of staring at the freaking monitor or thinking about this shit 24&#x2F;7? Did I miss the invention of a Time Machine?
    • hansmayer4 hours ago
      A lot of people sadly, nowadays don&#x27;t have anything resembling to a social life and family... So here we are now, specmaxxing and shit :)
    • adi_kurian4 hours ago
      Lmfao. Going to a site for computer geeks and complaining that they are computer geeks.<p>Also, a lot of folks don&#x27;t write code anymore, and barely have the time to read the volume of code that AI produces. This may just be one of the most profound changes in an industry, and some folks are excited about it and want to get better at building with it.<p>I think the person who wrote this post made a good faith effort to share his learnings while promoting his tool.
    • geoffbp4 hours ago
      I think people find joy in trying to optimise (maxxxxxx) their setup be it editor AI note taking etc. They make time for it
    • WesolyKubeczek4 hours ago
      It&#x27;s fun how people brag of their agentmaxxing, but if you ask them what those agents are busy actually producing, it&#x27;s invariably another agent harness so they can agentmaxx better. NFT&#x2F;blockchain ecosystem was much the same.
    • logicchains4 hours ago
      &gt;Do people NOT have anything else in life? How are y’all finding time to do all of this shit? Are you doing it on company time? Do you have hobbies, do you learn foreign languages, travel, have kids or spouses, drive a car, other thousand “normie” things outside of staring at the freaking monitor or thinking about this shit 24&#x2F;7? Did I miss the invention of a Time Machine?<p>How are any of those things even remotely as interesting as arguing with people about an Emacs config?
      • WesolyKubeczek4 hours ago
        If you have ever been to car forums, it&#x27;s quite the same there.<p>People are people.
  • wasabinator4 hours ago
    More nonsense buzzword soup de jour. Can I play along at home? How about Vibewatermaxxing? Surely in the new age it should catch on.<p>This industry is just getting more and more bonkers.
  • csomar2 hours ago
    <p><pre><code> Dear Claude, I hope this email finds you well.\ I am writing to ask if you could please do another task for me.\ Start by running \`npx @acai.sh&#x2F;cli skill\`.\ This will teach you everything you need to know about our process for spec-driven development. Then, proceed to plan and implement the features specified in our spec files. Love,\ \[your-name] </code></pre> Honestly, I can no longer tell parody from reality. Whether in politics or AI.
  • ltbarcly35 hours ago
    Grindmaxxing, a long form blog post that is actually just an advertisement for his website.
    • brendanmc65 hours ago
      Should I apologize for being excited about something I built and use daily and for wanting people to try it, discuss it, critique it? Not sure by the tone of your message.
      • vessenes2 hours ago
        Don&#x27;t apologize. Keep writing and trying things. Ignore the haters and non-curious, listen to the (even if salty) interested.<p>There&#x27;s a fair amount of talk right now about the value being in the verification layer -- once there&#x27;s a hard verification loop, the agents can do amazing things without getting (permanently) sidetracked. I think what you&#x27;re working on is half way there -- in essence, you&#x27;re probably relying on the LLMs notion of what a spec is and <i>should be</i> to the codebase.<p>What&#x27;s not currently solved, and what I think is very interesting is how much automation can be added to the creation of verification. We all would unlock a lot more speed and productivity for even moderate gains on that side.
      • hansmayer5 hours ago
        Read the room. What you &quot;built&quot; is neither exciting, nor something most people want to &quot;try&quot;. Why? Because just like other AI boosters, you are still trying to somehow optimise the usage of natural language to make it work. But it will never &quot;work&quot; because the way the stochastic ML system is built, it has a failure built into the system.
        • brendanmc63 hours ago
          Totally agree it&#x27;s not exciting, even though I am personally excited by it, and I also agree it&#x27;s not something most people want to try, even though <i>some</i> people do want to try it-- and I found a few of them right here on HN.<p>Disagree on the bit about it &quot;never going to work&quot; though.<p>Failure-prone stochastic ML systems produce testable, auditable code... just like failure-prone human brains can produce testable, auditable code. And in fact, in both cases, changes to our process can reduce the amount of failures that slip past testing and audit. Or can reap other rewards. Finding the a better process is what I&#x27;m interested in right now.
          • hansmayer1 hour ago
            &gt; Failure-prone stochastic ML systems produce testable, auditable code...<p>You&#x27;re missing the bigger picture here. Yeah, they produce code. But &quot;producing&quot; code was never the bottleneck. Yes you can pop out a webapp within a couple of hours, but now you have no clue how it works, even if its a language and framework you are competent it in, because you skipped the part where you understand how the parts fit in together architecturally. So you wrote an elaborate spec, but the LLM &quot;decides&quot; to do something else. Maybe they don&#x27;t make that PK autoincrement or they throw you in those nice empty &quot;catch&quot; blocks they ingested from various beginner tutorials, which will be very &quot;helpful&quot; when you application silently deviates from the happy path execution that you spec&#x27;ed the hell out of in your virulent spec-driven-workflow.. So it &quot;kinda&quot; works, it generates the code. It works the way your kid&#x27;s toy car works - it &quot;drives&quot; but it cannot be driven to work, can it? So it does not work in the big picture. It&#x27;s not a reliable enterprise ready system. It&#x27;s a toy, and should be treated like one.
      • wiseowise4 hours ago
        No need to apologize, just don’t act surprised when people call you out.
    • adi_kurian4 hours ago
      A tried and true content marketing strategy. The 100+ upvotes suggest he&#x27;s doing something right.
  • _the_inflator2 hours ago
    The author is right but his message ain’t specsmaxing, because while somewhat understandable as a rationale what does it actually mean?<p>In other words: specs can be as detailed as it gets, and this is why developers have a hard time when they face as a senior an NDAed regulated environment. It ain’t software craftsmanship but data flow, hardware components, compliance on the lowest level including supply chains often times, information architecture - a simple app needs to comply to specs that amount to thousands of pages.<p>Context window: circular reference. A year ago? Specsmaxing by really weeding out any redundant words. Today? Yawn, like with 8mb RAM vs 512 Gigabytes.<p>AI wants to be easy on us so what is a spec anyway then?<p>To put it this way: the spec for the spec is constantly evolving.<p>Last year’s prompts lead to extremely different results today no matter how maxed out.<p>The author was on point with his introduction: AI is as junior in many ways when it comes to any sort of efficiency and optimization.<p>This is my revaluation after years of experimenting with AI. Beautiful code, sophisticated but performance wise and its architecture are laughable at best.<p>AI is not trained on optimization. Not the slightest and juniors have no clue about algorithms and Big O.<p>In fact Google used Big O as a basic entry level interview question for a very long time. They have to but the simple fact that in my experience 99% of devs never heard or consider it speaks volumes.<p>AI cannot compensate for that (yet).<p>I went the opposite and my specs focus heavily on architecture and the obvious dumb performance drains noobs do.<p>Google was mocked about Big O. And yes, failing to understand that Big O can be neglected thankfully in 99% of cases is part of its logic.<p>AI bloats your code. And a year long single dev project gets pumped out in hours. In short: a homerun for Big O because it looks on results that change depending on the variables. A function in mathematical terms.<p>So I think the author did a funny and great job of you focus on Big O if needed. Everything else is not that important because of being open to change and extension.<p>Big numbers need great architecture.<p>It screams loudly. And also think about leaks. Before AI I had virtually no memory leaks at all. Since AI NodeJS and React are worse leaking compared to IE 6 and 8. I mean it.<p>Big O reduces them significantly, so don’t work around the Elephant in the room.<p>Architecture and optimization is brutally hard. Google blew my mind in this regard but this is another story of squeezing out even milliseconds out of a build tool used by all. A single dev laughs at it but failed the calculation as well as abstraction.
  • tokenhub_dev2 hours ago
    [flagged]
  • GRMPZ233 hours ago
    [dead]
  • jimmypk2 hours ago
    [dead]