<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Kacper Ryniec]]></title><description><![CDATA[Kacper is an Engineering Director focused on building strong engineering teams, developing technical capabilities, and enabling effective software delivery aligned with business outcomes.]]></description><link>https://kacperryniec.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!wQCD!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9585e2d0-2179-4f04-82ed-73960dca6e76_1024x1024.png</url><title>Kacper Ryniec</title><link>https://kacperryniec.substack.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 02 Jun 2026 05:45:41 GMT</lastBuildDate><atom:link href="https://kacperryniec.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Kacper Ryniec]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[kacperryniec@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[kacperryniec@substack.com]]></itunes:email><itunes:name><![CDATA[Kacper Ryniec]]></itunes:name></itunes:owner><itunes:author><![CDATA[Kacper Ryniec]]></itunes:author><googleplay:owner><![CDATA[kacperryniec@substack.com]]></googleplay:owner><googleplay:email><![CDATA[kacperryniec@substack.com]]></googleplay:email><googleplay:author><![CDATA[Kacper Ryniec]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Blank Page Was the Point]]></title><description><![CDATA[AI can take the typing off your PMs' plates. It can't take the thinking &#8212; unless you let it.]]></description><link>https://kacperryniec.substack.com/p/the-blank-page-was-the-point</link><guid isPermaLink="false">https://kacperryniec.substack.com/p/the-blank-page-was-the-point</guid><dc:creator><![CDATA[Kacper Ryniec]]></dc:creator><pubDate>Tue, 12 May 2026 08:31:02 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Ty0y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2196cdbe-7f64-4408-aedc-f25ac790fbeb_1448x1086.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ty0y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2196cdbe-7f64-4408-aedc-f25ac790fbeb_1448x1086.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ty0y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2196cdbe-7f64-4408-aedc-f25ac790fbeb_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!Ty0y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2196cdbe-7f64-4408-aedc-f25ac790fbeb_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!Ty0y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2196cdbe-7f64-4408-aedc-f25ac790fbeb_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!Ty0y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2196cdbe-7f64-4408-aedc-f25ac790fbeb_1448x1086.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ty0y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2196cdbe-7f64-4408-aedc-f25ac790fbeb_1448x1086.png" width="1448" height="1086" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2196cdbe-7f64-4408-aedc-f25ac790fbeb_1448x1086.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1086,&quot;width&quot;:1448,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3345768,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://kacperryniec.substack.com/i/196530813?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2196cdbe-7f64-4408-aedc-f25ac790fbeb_1448x1086.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ty0y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2196cdbe-7f64-4408-aedc-f25ac790fbeb_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!Ty0y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2196cdbe-7f64-4408-aedc-f25ac790fbeb_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!Ty0y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2196cdbe-7f64-4408-aedc-f25ac790fbeb_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!Ty0y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2196cdbe-7f64-4408-aedc-f25ac790fbeb_1448x1086.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>What gets lost when AI drafts your PRDs in thirty seconds &#8212; and how to keep the thinking that actually matters</h3><p>Every product team has the same Monday morning. Someone &#8212; a stakeholder, a CEO, a customer who&#8217;s been waiting too long &#8212; asks for a feature. The PM nods, retreats to a Notion page, and stares at it. By Thursday there&#8217;s a PRD. By the next sprint, there&#8217;s a backlog. Somewhere in that journey the messy idea became a buildable thing, and most of the value the PM created was in that compression.</p><p>For most of the last decade, that compression was a bottleneck. Specs took days. Discovery interviews piled up untranscribed. Backlogs drifted out of sync with strategy. The 7-person team had one PM and the PM had three open tabs of customer feedback they hadn&#8217;t gotten to yet.</p><p>In 2026, that bottleneck has moved. The PRD that took four days now takes forty minutes. The user research that piled up gets clustered into themes overnight. The backlog stays coherent because something is watching it. And the role of the PM &#8212; and the PO and the BA &#8212; is shifting in ways that are easy to miss if you&#8217;re only counting throughput.</p><p>This piece is for the engineering leader trying to figure out what to actually do with that.</p><h2>What&#8217;s changed in the last twelve months</h2><p>The honest summary is that frontier models finally got good enough at three things that matter for the front end of the SDLC: synthesizing unstructured input, holding product context across artifacts, and operating inside the tools your PMs already live in. Those three together are what turned demoware into something that ships.</p><p>A discovery call now becomes a structured insight in minutes &#8212; not a transcript dump, but a themed cluster tied to a user goal, with the relevant quotes attached. A one-sentence feature idea becomes a draft PRD with user stories, acceptance criteria, success metrics, and the awkward open questions you&#8217;d usually only catch on the third pass. A change to the roadmap propagates to the dependent tickets, and the agent flags where the release notes no longer match what&#8217;s actually shipping.</p><p>A year ago this required three different tools, a custom GPT, and a PM willing to babysit the output. Today it runs in the background of Productboard or Jira while the PM is in a customer interview. The work is being done; the question is what the human is now doing instead.</p><h2>The case for adopting it</h2><p>The pitch is concrete and it&#8217;s not really about speed.</p><p>Yes, the artifacts get drafted faster. A senior PM at a 12-person team I&#8217;ve spoken to said her PRD cycle compressed from &#8220;two days of writing plus a day of stakeholder review&#8221; to &#8220;ninety minutes plus a day of stakeholder review&#8221; &#8212; and the second number is the one that matters. The thinking still takes the same time. The typing doesn&#8217;t.</p><p>What actually changes is what fills the time the typing used to take. Discovery work that used to be deferred &#8212; the second customer interview, the competitor teardown, the &#8220;let me actually go look at the support tickets from last quarter&#8221; &#8212; gets done because there&#8217;s now room for it. The PRDs get reviewed against the strategy doc, because the agent can do that comparison in seconds and the PM only has to read the diff. The acceptance criteria get tighter because the PM has time to sit with the engineer for an hour rather than handing off a doc.</p><p>There&#8217;s also a quieter shift in artifact coherence that&#8217;s worth naming. In a typical 7&#8211;15 person team, the PRD lives in Notion, the backlog lives in Jira, the roadmap lives in a third tool, and the release notes live in someone&#8217;s drafts folder. They drift. They contradict each other by week three. The current generation of agents can hold all of those in a single context window and flag the drift &#8212; not perfectly, but well enough that the PM stops being a manual reconciliation engine. That role was never strategic, and getting it off the PM&#8217;s plate is one of the genuine wins.</p><p>For Business Analysts and Product Owners working in regulated or enterprise contexts, the shift is different but real. The drudgery of translating a stakeholder conversation into a structured user story, complete with acceptance criteria mapped to compliance requirements, is exactly the kind of pattern-matching work the models are now good at. The BA&#8217;s job becomes editing and challenging the draft, not producing it.</p><h2>The case for skepticism</h2><p>This is where I&#8217;d ask you to slow down.</p><p><strong>The first failure mode is the obvious one:</strong> the agent confidently writes a PRD that sounds reasonable but is built on a misreading of the customer problem. It cites three insights from the discovery research that aren&#8217;t quite what the customer said. It proposes success metrics that are easy to measure but don&#8217;t actually correspond to the business outcome. </p><p style="text-align: center;"><code>The team builds the wrong thing, faster. </code></p><p>This is not a hypothetical &#8212; it&#8217;s what happens when the synthesis layer gets trusted without scrutiny, and it&#8217;s the most common pattern I see in teams six months into adoption.</p><p><strong>The second failure mode is more interesting</strong>, and it&#8217;s the one I&#8217;d flag most strongly to executives: <strong>AI-drafted artifacts can quietly erase the thinking that the artifact was supposed to surface.</strong></p><p>A PRD is not just a document. It&#8217;s the trace of a struggle &#8212; the PM forced themselves to articulate what the problem actually is, who the user actually is, what success actually looks like. The blank page is uncomfortable because the thinking is uncomfortable. When an agent fills the page in thirty seconds, the discomfort goes away. So does, often, the thinking.</p><p>The PM who uses the agent as a sparring partner &#8212; drafts something, has the agent challenge it, redrafts, asks the agent to argue against the success metric &#8212; gets the thinking and the speed. The PM who uses the agent as a stenographer ships PRDs that look right and aren&#8217;t. The difference between these two PMs is invisible in the artifact and obvious in the product six months later. This is the apprenticeship problem from code review, but worse &#8212; because in code review there&#8217;s at least a senior reviewer in the loop who might catch a subtle mistake. In product, the test is the market, and the feedback loop is months long.</p><p><strong>The third</strong> is what I&#8217;d call <strong>stakeholder flattening</strong>. A skilled BA or Product Owner does something subtle when they sit between business stakeholders and engineering: they negotiate. They translate, they push back, they hold the tension between &#8220;what was asked for&#8221; and &#8220;what should be built.&#8221; When you replace that human translation layer with an agent that produces a clean structured user story directly from a stakeholder transcript, you lose the negotiation. The story is faithful to what was said, which is often not what was meant, and which is usually not what should be built. The senior BAs I&#8217;ve talked to are using AI as a first-pass tool and adding their judgment on top. The risk is the cost-pressured organization that decides to skip the BA entirely.</p><p><strong>The fourth is data residency</strong>, and it&#8217;s the same story you&#8217;ve already been having about code: where does the customer feedback go, where do the PRDs go, who gets to train on them. For most teams the right answer is a vendor with a zero-retention agreement. For some industries it&#8217;s a self-hosted or in-tenant deployment. &#8220;We just plugged it into a consumer chatbot&#8221; is not a defensible posture if the input is your customer interview transcripts.</p><h2>Tools worth evaluating</h2><p>The market for AI in product management has bifurcated more cleanly than the code review market did. Three categories cover most of the realistic decision space for a 7&#8211;15 person team.</p><p><strong><a href="https://www.chatprd.ai/">ChatPRD</a></strong> is the focused-tool pick. It&#8217;s purpose-built for PRD drafting, document review, and PM coaching, and it integrates outward to Linear, Jira, Notion, and the prototyping tools your team uses (v0, Lovable, Bolt). The pitch is essentially &#8220;an on-demand CPO who reviews your specs,&#8221; and in practice the structured templates and the document feedback loop are the most useful parts. Pricing is roughly in the range of a single PM tool subscription per seat, with a usable free tier for evaluation. The trade-off is scope: it&#8217;s a great PRD tool, not a feedback synthesis or roadmap coherence tool. For a small team where the bottleneck is really &#8220;writing the spec,&#8221; it&#8217;s the path of least resistance.</p><p><strong><a href="https://www.productboard.com/">Productboard Spark</a></strong> (and the Productboard AI add-on for existing Productboard customers) is the broader-platform pick. Spark is the standalone product agent at roughly $19&#8211;$24 per maker per month, and the AI add-on for existing Productboard plans is around $20 per maker per month on top of the base license. Where ChatPRD focuses on the PRD, Productboard&#8217;s offering pulls together customer feedback aggregation, insight clustering, brief generation, competitive analysis, and roadmap context. It&#8217;s the right pick if your team&#8217;s actual bottleneck is &#8220;we have customer feedback in eight tools and nobody is reading it&#8221; rather than &#8220;we can&#8217;t write specs fast enough.&#8221; It&#8217;s heavier to set up. It pays back in teams where discovery is the constraint.</p><p><strong><a href="https://claude.ai/">Claude Projects</a> (or <a href="https://chatgpt.com/">ChatGPT Projects</a>) plus a thoughtful workflow</strong> is the lightweight pick, and it&#8217;s the one I&#8217;d start most teams on. Create a Project per product area, load it with the strategy doc, the personas, the existing PRDs, the style guide, and the recent customer interview notes. Use it for drafting, review, synthesis, and stakeholder communication. Pricing is whatever your existing Claude or ChatGPT team plan costs. The trade-off is integration: you&#8217;re copy-pasting between the agent and your PM tools, which is fine for a small team and miserable at scale. But the workflow flexibility is enormous, and you learn what your team actually wants the agent to do before you commit to a vendor.</p><p>A few honorable mentions worth knowing about. <strong><a href="https://www.granola.ai/">Granola</a></strong> and <strong><a href="https://otter.ai/">Otter</a></strong> for interview transcription and structured notes &#8212; Granola in particular has won fans among PMs for its templated outputs over raw transcripts. <strong><a href="https://www.atlassian.com/software/jira/product-discovery">Jira Product Discovery&#8217;s AI</a></strong> is worth a look if you&#8217;re already deep in the Atlassian stack and want the prioritization and theme-extraction layer without changing tools. <strong><a href="https://www.notion.com/product/ai">Notion AI</a></strong> has improved meaningfully and may be enough if your team&#8217;s docs already live there. And <strong><a href="https://www.aha.io/">Aha!</a></strong> remains the most comprehensive end-to-end platform if you&#8217;re willing to commit to a single, opinionated system &#8212; but the implementation cost is real, and it&#8217;s overkill for most 7&#8211;15 person teams.</p><h2>A 90-day implementation plan for a 7&#8211;15 person team</h2><p>The mistake teams make is buying a platform first and figuring out the workflow later. Reverse it.</p><p><strong>Weeks 1&#8211;2: scope and select.</strong> Map your current PM/PO/BA workflow. Where does the time actually go? For most small teams it&#8217;s one of three places: drafting specs, synthesizing customer feedback, or keeping artifacts in sync. The bottleneck determines the tool category. If it&#8217;s specs, ChatPRD or a Claude Projects workflow. If it&#8217;s feedback synthesis, Productboard Spark or a Granola+Claude pipeline. If it&#8217;s coherence across roadmap/backlog/release notes, you&#8217;re looking at a heavier platform &#8212; but be honest about whether the coherence problem is severe enough to justify the switching cost. Run a security review on whoever you pick. For most commercial product teams you want a zero-retention agreement at minimum.</p><p><strong>Weeks 3&#8211;4: pilot with one PM and one workflow.</strong> Pick one PM (or BA, or PO &#8212; whoever has the most representative workload) and one specific workflow: usually PRD drafting or interview synthesis. Have them use the tool for that workflow only, log what worked, what was wrong, and what they had to redo. Two metrics worth tracking from day one: time-to-first-draft on a PRD, and a subjective quality score from the engineering lead on the resulting spec. The second is the one that matters.</p><p><strong>Weeks 5&#8211;8: expand to the full PM/PO/BA group, advisory only.</strong> Roll the tool out to the rest of the product roles. Resist two temptations. First, don&#8217;t make it mandatory yet &#8212; let people use it where it helps and skip it where it doesn&#8217;t. Second, don&#8217;t over-customize the prompts and templates in the first month; the defaults are usually well-chosen and aggressive customization tends to encode whatever bad habits the team already has. Set up a weekly 30-minute retro for the product group to share what&#8217;s working. The first three weeks of these retros are gold &#8212; that&#8217;s where you find out the agent is hallucinating customer quotes, or that two PMs have independently invented the same workaround.</p><p><strong>Weeks 9&#8211;12: codify and decide.</strong> Pull the data. Run a real retro. Three questions: are PRDs getting from idea to engineering-ready faster? Is the quality of those PRDs as judged by engineering leads holding or improving? Are PMs spending the freed time on discovery and stakeholder work, or on more PRDs they didn&#8217;t need to write? The third question is the one that catches the bad pattern early. If the answers are positive, formalize it: pick a default tool, document the workflow, set expectations that PMs use it for first drafts and bring their own judgment to the second pass. If the answers are mixed, swap tools or descope. Don&#8217;t keep it running on inertia.</p><p>For a team of this size, expect total cost in the range of $100&#8211;$400 per month at standard pricing (lower if you stay on Claude/ChatGPT Projects, higher if you pick Productboard Spark with multiple makers), plus roughly 15&#8211;30 hours of product-team time spread across the quarter for setup, tuning, and evaluation. The break-even is faster than for code review tools because the artifacts are higher-leverage and the workflows are more concentrated. If a single PRD cycle compresses by even half, you&#8217;ve paid for it many times over in a quarter.</p><h2>What this is actually about</h2><p>The interesting question isn&#8217;t whether AI agents can write PRDs. They can, and they&#8217;re getting better quickly. The interesting question is what your product organization should look like when the cheapest, fastest first draft on every spec, every user story, every backlog refinement is produced by a machine &#8212; and what your PMs, POs, and BAs should be doing with the time and attention that frees up.</p><p>The optimistic answer is: more discovery, more customer time, more strategic thinking. The pessimistic answer is: more PRDs that nobody needed, drafted faster.</p><p>Which one your team gets is mostly a function of leadership. If you measure the product team on PRD throughput, you&#8217;ll get throughput, and you&#8217;ll find out in eighteen months that the products got worse. If you measure them on discovery depth, customer outcomes, and the quality of the questions they&#8217;re asking &#8212; and you treat the agent as the thing that bought you the time to ask those questions &#8212; you&#8217;ll get a meaningfully better product organization than you had a year ago.</p><p>The blank page was the point. The discomfort of it was the point. AI can take the typing off your team&#8217;s plate, but it can&#8217;t take the thinking. And if you let it pretend to, the thinking is what you&#8217;ll lose.</p><p>That&#8217;s the question worth your thinking time.</p>]]></content:encoded></item><item><title><![CDATA[CodeRabbit + Azure DevOps: practical setup notes]]></title><description><![CDATA[The short version]]></description><link>https://kacperryniec.substack.com/p/coderabbit-azure-devops-practical</link><guid isPermaLink="false">https://kacperryniec.substack.com/p/coderabbit-azure-devops-practical</guid><dc:creator><![CDATA[Kacper Ryniec]]></dc:creator><pubDate>Thu, 07 May 2026 07:47:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-0P0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad18f8e-720e-4b4e-8a72-b6a38324a524_1448x1086.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-0P0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad18f8e-720e-4b4e-8a72-b6a38324a524_1448x1086.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-0P0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad18f8e-720e-4b4e-8a72-b6a38324a524_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!-0P0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad18f8e-720e-4b4e-8a72-b6a38324a524_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!-0P0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad18f8e-720e-4b4e-8a72-b6a38324a524_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!-0P0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad18f8e-720e-4b4e-8a72-b6a38324a524_1448x1086.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-0P0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad18f8e-720e-4b4e-8a72-b6a38324a524_1448x1086.png" width="1448" height="1086" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7ad18f8e-720e-4b4e-8a72-b6a38324a524_1448x1086.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1086,&quot;width&quot;:1448,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3043798,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://kacperryniec.substack.com/i/196524759?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad18f8e-720e-4b4e-8a72-b6a38324a524_1448x1086.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-0P0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad18f8e-720e-4b4e-8a72-b6a38324a524_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!-0P0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad18f8e-720e-4b4e-8a72-b6a38324a524_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!-0P0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad18f8e-720e-4b4e-8a72-b6a38324a524_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!-0P0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ad18f8e-720e-4b4e-8a72-b6a38324a524_1448x1086.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The short version</h2><p>CodeRabbit&#8217;s Azure DevOps integration works well, but the setup is meaningfully different from the GitHub flow. There&#8217;s no native OAuth app &#8212; you connect via a Personal Access Token (PAT) tied to an Azure DevOps user. Plan accordingly.</p><p><strong>Official docs:</strong> <a href="https://docs.coderabbit.ai/platforms/azure-devops">https://docs.coderabbit.ai/platforms/azure-devops</a></p><p><strong>Best community walkthrough (2026):</strong> <a href="https://dev.to/rahulxsingh/coderabbit-azure-devops-setting-up-ai-code-review-524h">https://dev.to/rahulxsingh/coderabbit-azure-devops-setting-up-ai-code-review-524h</a></p><h2>Before you start</h2><p>Make sure you have:</p><ul><li><p>An Azure DevOps organization with at least one project and Azure Repos repository</p></li><li><p><strong>Project Administrator or Organization Administrator permissions</strong> &#8212; required to install extensions and configure service connections</p></li><li><p>An <strong>organizational email address</strong> &#8212; personal emails are not supported for this integration</p></li><li><p>Admin approval rights for Microsoft Apps consent requests (or someone who has them, sitting next to you)</p></li></ul><p>You don&#8217;t need Azure Pipelines changes, Docker, or any local tooling. CodeRabbit runs on its own infrastructure and connects via webhook + PAT.</p><h2>Recommended setup approach</h2><p>The single most important decision: <strong>don&#8217;t use a real engineer&#8217;s PAT</strong>. Create a dedicated service account in Azure DevOps for CodeRabbit, generate the PAT from that account, and document the rotation date somewhere your team will actually see it (e.g., as a calendar event owned by the platform team, not a single person).</p><p>Why this matters: PATs expire. When they do, CodeRabbit silently stops reviewing PRs. If the PAT belongs to an engineer who leaves the company, you lose code review across the org with no warning. A service account with a long-lived token managed by your secrets solution is the only sane long-term setup.</p><h3>Step-by-step</h3><ol><li><p><strong>Create the service account user</strong> in Azure DevOps. Give it Reader access at the organization level, and Contributor access on the repos you want reviewed.</p></li><li><p><strong>Sign in as that service account</strong> and generate a PAT:</p><ul><li><p>Click the settings icon next to your avatar &#8594; Personal Access Tokens &#8594; New Token</p></li><li><p>Scope to &#8220;All accessible organizations&#8221; (or specific orgs)</p></li><li><p>Set the longest expiry your security policy allows (typically 90 or 180 days)</p></li><li><p>Required scopes: Code (Read &amp; Write), Pull Request Threads (Read &amp; Write), Project and Team (Read), User Profile (Read)</p></li></ul></li><li><p><strong>Sign up at coderabbit.ai</strong> with your organizational email. Choose Azure DevOps as the platform during onboarding.</p></li><li><p><strong>On the &#8220;Azure DevOps User&#8221; page</strong>, paste the PAT generated in step 2.</p></li><li><p><strong>On the &#8220;Repositories&#8221; page</strong>, toggle on the repos you want reviewed. Start with one or two.</p></li></ol><p>The integration is live within a minute. Open a test PR to confirm CodeRabbit posts a walkthrough comment and inline review.</p><h2>The branch policy gate (do this in week 4, not week 1)</h2><p>Once your team trusts the review quality, Azure DevOps lets you make CodeRabbit a required status check before merge. In your project: <strong>Repos &#8594; Branches &#8594; three-dot menu on main &#8594; Branch policies &#8594; Require status checks to succeed</strong>. Add CodeRabbit&#8217;s status name (typically review &#8212; confirm in CodeRabbit docs for the current value), set it as Required, and configure it to reset on new commits.</p><p>Don&#8217;t enable this on day one. Run advisory-only for at least 2&#8211;3 sprints first. Gating merges on AI suggestions before the team has calibrated their trust creates friction, not quality.</p><h2>Configuration</h2><p>CodeRabbit reads a .coderabbit.yaml file from the root of each repo. Two things worth doing early:</p><p><strong>Tone instructions</strong> &#8212; set the reviewer&#8217;s voice to match your team&#8217;s culture:</p><p>language: &#8220;en-US&#8221;</p><p>tone_instructions: &#8220;You are an expert code reviewer working in an enterprise team. Be concise, prioritize correctness over style, and skip nitpicks unless they affect maintainability.&#8221;</p><p><strong>Path-specific instructions</strong> &#8212; different rules for different parts of a monorepo:</p><p>reviews:</p><p>  path_instructions:</p><p>    - path: &#8220;services/auth/**&#8221;</p><p>      instructions: |</p><p>        Focus on token validation, password hashing (bcrypt only),</p><p>        and OWASP authentication best practices.</p><p>    - path: &#8220;services/payments/**&#8221;</p><p>      instructions: |</p><p>        Pay close attention to idempotency, currency rounding,</p><p>        and PCI-DSS compliance concerns.</p><p>You can also set organization-level instructions in the CodeRabbit dashboard that apply to all repos without needing to be added to each .coderabbit.yaml. Repository-level instructions merge with org-level ones, they don&#8217;t replace them.</p><h2>Known sharp edges vs. the GitHub integration</h2><p>The Azure DevOps integration is fully functional, but a few things to know:</p><ul><li><p><strong>PAT rotation</strong> is on you. GitHub&#8217;s OAuth app handles credentials transparently; Azure DevOps doesn&#8217;t. Set a calendar reminder for two weeks before expiry.</p></li><li><p><strong>Comment threading</strong> is slightly different. CodeRabbit posts comments as PR threads rather than as part of a formal &#8220;review submission&#8221; the way GitHub allows. In practice this is fine, but if your team is used to GitHub&#8217;s &#8220;Files changed &#8594; Submit review&#8221; flow, the muscle memory won&#8217;t transfer cleanly.</p></li><li><p><strong>Branch policy status names</strong> can drift between CodeRabbit versions. If you wire up a required check, verify the status name still matches after CodeRabbit updates.</p></li></ul><h2>Pricing (as of early 2026)</h2><p>CodeRabbit Pro is $24&#8211;30 per developer per month. For a 7&#8211;15 person team, that&#8217;s $170&#8211;$450/month. There&#8217;s a free tier with rate limits (200 files/hour, 4 PR reviews/hour) that&#8217;s fine for evaluation but will throttle a real team quickly.</p><p>Self-hosted is available but only for CodeRabbit Enterprise customers with 500+ seats &#8212; not realistic at this team size. If you have data residency or air-gap requirements that rule out the SaaS, Greptile or Claude Code Review (with appropriate tenancy) are likely better fits.</p><h2>What &#8220;done&#8221; looks like</h2><p>After 30 days you should be able to answer yes to all of these:</p><ol><li><p>CodeRabbit posts a review on every PR within 5 minutes of opening</p></li><li><p>Your .coderabbit.yaml is checked into each repo and reflects team conventions</p></li><li><p>The PAT is owned by a service account, not a person, and the rotation date is on a shared calendar</p></li><li><p>At least one engineer per team has been designated as the &#8220;CodeRabbit owner&#8221; for tuning and feedback</p></li><li><p>You have baseline metrics (time-to-first-review, defect escape rate) from before adoption to compare against</p></li></ol><p>If you can&#8217;t answer yes to all five, don&#8217;t expand the rollout &#8212; fix the gap first.</p>]]></content:encoded></item><item><title><![CDATA[The Code Review Bottleneck Is Solved. Now What?]]></title><description><![CDATA[A balanced look at AI code review agents &#8212; what they fix, what they break, and how to roll them out without losing your senior bench]]></description><link>https://kacperryniec.substack.com/p/the-code-review-bottleneck-is-solved</link><guid isPermaLink="false">https://kacperryniec.substack.com/p/the-code-review-bottleneck-is-solved</guid><dc:creator><![CDATA[Kacper Ryniec]]></dc:creator><pubDate>Tue, 05 May 2026 09:40:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!XxK8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed47c87-bb66-4dfd-a017-066664b3d160_1448x1086.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XxK8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed47c87-bb66-4dfd-a017-066664b3d160_1448x1086.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XxK8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed47c87-bb66-4dfd-a017-066664b3d160_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!XxK8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed47c87-bb66-4dfd-a017-066664b3d160_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!XxK8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed47c87-bb66-4dfd-a017-066664b3d160_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!XxK8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed47c87-bb66-4dfd-a017-066664b3d160_1448x1086.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XxK8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed47c87-bb66-4dfd-a017-066664b3d160_1448x1086.png" width="1448" height="1086" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8ed47c87-bb66-4dfd-a017-066664b3d160_1448x1086.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1086,&quot;width&quot;:1448,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2756274,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://kacperryniec.substack.com/i/196522393?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed47c87-bb66-4dfd-a017-066664b3d160_1448x1086.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XxK8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed47c87-bb66-4dfd-a017-066664b3d160_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!XxK8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed47c87-bb66-4dfd-a017-066664b3d160_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!XxK8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed47c87-bb66-4dfd-a017-066664b3d160_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!XxK8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed47c87-bb66-4dfd-a017-066664b3d160_1448x1086.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>What it actually means to put AI agents in your code review pipeline</h2><p>Code review is the part of engineering that nobody quite figured out how to scale. You hire more engineers, you ship more code, and the review queue grows faster than your senior reviewers can drain it. PRs sit for two days. Junior engineers context-switch. Bugs slip in not because the reviewers were careless, but because by Thursday afternoon, &#8220;LooksGoodToMe&#8221; starts to feel like the path of least resistance.</p><p>This is the gap that AI code review agents are now filling &#8212; and as a Engineering Director, the question is no longer <em>whether</em> to evaluate them, but how to think clearly about what they actually do, what they don&#8217;t, and where they fit in your engineering culture.</p><h2>What&#8217;s changed in the last eighteen months</h2><p>We&#8217;ve moved past the era of linters that catch unused imports and call it AI. The current generation of agents &#8212; the ones built on frontier models with proper repository context &#8212; reads diffs the way a thoughtful staff engineer might. They notice when a new function duplicates logic that already exists three directories away. They flag a race condition in the async code your junior dev wrote at 11pm. They ask, in a comment on the PR, why the retry policy was changed and whether that interacts with the idempotency guarantees in the upstream service.</p><p>A year ago, this was a demo. Today, it&#8217;s a Tuesday.</p><p>The agents that have proven useful in production share a few characteristics. They run automatically on every PR, leave inline comments rather than monolithic reports, prioritize their findings by severity, and &#8212; crucially &#8212; know when to stay quiet. The ones that comment on every PR with seven low-value suggestions get muted within a sprint. The ones that flag two real issues and say nothing else become part of the team.</p><h2>The case for adopting them</h2><p>The honest pitch is straightforward. AI reviewers compress feedback latency from hours or days to minutes. A junior engineer pushes a branch and gets a first pass of comments before lunch &#8212; not from their tech lead, who&#8217;s in back-to-back meetings, but from an agent that&#8217;s already read the diff, the related files, and (if you&#8217;ve wired it up properly) the relevant ADRs and style guides.</p><p>This shifts the role of human reviewers in a way that&#8217;s worth naming explicitly. Your senior engineers stop being grammar-checkers and pattern-matchers. The boring catches &#8212; null handling, missing error paths, inconsistent logging, obvious test gaps &#8212; get surfaced before a human ever opens the PR. Humans are freed to focus on the things only humans currently do well: judgment about architecture, trade-offs about technical debt, mentorship in the comments, and the social work of keeping a codebase coherent.</p><p>There&#8217;s also a quieter benefit that doesn&#8217;t show up in a Gantt chart. Code reviews are one of the most emotionally charged parts of engineering culture. An AI catching a bug feels different from a peer catching it. Some of the friction &#8212; the defensiveness, the perceived hierarchy, the awkwardness of pushing back on someone senior &#8212; simply isn&#8217;t there. Teams I&#8217;ve spoken to report that engineers iterate more freely on agent feedback, treating it like a sparring partner rather than a verdict.</p><p>And the economics are favorable in a way that&#8217;s easy to miss. The marginal cost of an AI review is measured in cents. The marginal cost of a senior engineer&#8217;s attention is measured in opportunity cost on the most important problems your company faces.</p><h2>The case for skepticism</h2><p>None of which means you should turn it on and walk away.</p><p>The first failure mode is over-trust. AI agents are confident even when wrong, and they will occasionally produce comments that sound reasonable but reference functions that don&#8217;t exist, suggest refactors that break unstated invariants, or hallucinate security issues. If your team treats agent comments as gospel, you&#8217;ll ship worse code, not better &#8212; because human reviewers will start deferring to a system that doesn&#8217;t deserve that deference.</p><p>The second is review fatigue. An agent that comments thirty times on a fifty-line PR is worse than no agent at all. Engineers learn to scroll past the noise, and when they scroll past the noise, they scroll past the signal too. The agents that work in practice are aggressively tuned for precision over recall &#8212; which means accepting that they will miss some real issues to avoid drowning the team in false ones.</p><p>The third, and the one I&#8217;d flag most strongly to executives: AI review can quietly erode the apprenticeship function of code review. When a senior engineer comments on a junior&#8217;s PR, two things happen. The code gets better, and the junior learns. If the agent catches everything before the senior looks, the senior stops looking carefully &#8212; and the junior stops getting the kind of mentorship that builds judgment over years. This is a long-horizon cost that won&#8217;t show up in next quarter&#8217;s metrics. It will show up in five years, when your senior bench is thinner than you expected.</p><p>The fourth is security and IP. Sending your proprietary code to a third-party model is a decision that needs to be made deliberately, with your security and legal teams in the room. The answers are getting better &#8212; on-prem deployments, zero-retention agreements, dedicated capacity &#8212; but &#8220;we just plugged it in&#8221; is not a defensible posture if the code in question is your competitive moat.</p><h2>Tools worth evaluating</h2><p>The market in 2026 has consolidated into a few clear categories. For a team standing this up for the first time, three options cover most of the realistic decision space.</p><p><strong><a href="https://www.coderabbit.ai/">CodeRabbit</a></strong><a href="https://www.coderabbit.ai/"> </a>is the broadest pick and the easiest place to start. It installs as a GitHub, GitLab, Bitbucket, or Azure DevOps app, runs automatically on every PR, and posts severity-tagged inline comments with one-click fixes. It integrates with the static analysis and SAST tools you already pay for, and pricing lands around $24&#8211;30 per developer per month on the Pro tier. The trade-off is depth: it analyzes the diff well but has weaker cross-codebase reasoning, so it&#8217;s better at catching local issues than systemic ones. For a team of 7&#8211;15 with a heterogeneous stack, this is the path of least resistance.</p><p><strong><a href="https://www.greptile.com/">Greptile</a></strong><a href="https://www.greptile.com/"> </a>sits at the other end of the spectrum. Instead of analyzing diffs in isolation, it indexes your entire repository and builds a code graph, then traces dependencies and follows leads across files when reviewing a PR. This is the right choice if your codebase has the kind of cross-file coupling where a change in one service quietly breaks another &#8212; which is most non-trivial codebases by year three. Setup takes longer because of the indexing step, but the signal-to-noise ratio on systemic issues is meaningfully higher.</p><p><strong><a href="https://code.claude.com/docs/en/code-review">Claude Code Review</a></strong> is Anthropic&#8217;s own offering, currently in research preview for Team and Enterprise subscriptions. It uses a fleet of specialized agents that examine PRs in the context of your full codebase and posts severity-tagged inline comments. Behavior is tunable through a CLAUDE.md or REVIEW.md file checked into the repo, which is a clean way to encode team conventions. It&#8217;s worth a look if you&#8217;re already using Claude Code elsewhere in your engineering workflow, or if you want the review behavior tied to the same model your engineers are using to write code.</p><p>A few honorable mentions: <strong>GitHub Copilot Code Review</strong> bundles into existing Copilot subscriptions and is the lowest-friction option if you&#8217;re already paying for Copilot, though it&#8217;s lighter in depth. <strong>Graphite Agent</strong> is excellent if you&#8217;re willing to adopt stacked PRs as a workflow, but the workflow shift is real cost. <strong>Qodo</strong> is worth considering if test generation alongside review is a priority.</p><h2>A sample 90-day implementation plan for a 7&#8211;15 person team</h2><p>The mistake most teams make is rolling this out as a top-down mandate. The plan below assumes you want adoption to be earned, not enforced.</p><p><strong>Weeks 1&#8211;2: scope and select.</strong> Have your engineering lead pick a tool &#8212; most teams in this size range should default to CodeRabbit unless you have specific reasons (deep cross-file coupling pushes you toward Greptile; existing Claude Code investment pushes you toward Claude Code Review). Run a security review with whoever owns that function. Confirm data handling: where does the code go, is it used for training, what&#8217;s the retention policy. For most commercial codebases, you&#8217;ll want a zero-retention agreement and either SOC 2 Type II or a self-hosted option.</p><p><strong>Weeks 3&#8211;4: shadow mode on one repo.</strong> Install the tool on a single non-critical repo. Configure it to comment but not request changes or block merges. Brief the team: this is an experiment, the bot is advisory, push back on its comments freely. Pick two engineers &#8212; ideally one senior and one mid-level &#8212; to act as observers and log instances where the bot was useful, useless, or actively wrong.</p><p><strong>Weeks 5&#8211;8: expand to all repos, still advisory.</strong> Once the team has calibrated their trust, turn it on across your codebase. Tune the configuration: most tools support a config file where you specify what to flag and what to ignore. Resist the temptation to over-configure early &#8212; the defaults are usually well-chosen, and aggressive customization tends to produce worse outcomes for the first month than just letting it run.</p><p><strong>Weeks 9&#8211;12: evaluate and decide.</strong> Pull the data. Run a retro with the team. Three questions matter: are PRs getting first feedback faster? Are defects in production trending down or flat? Do engineers find the comments useful or do they ignore them? If the answers are positive, formalize the rollout &#8212; make it a default expectation that PRs get an AI review pass before human review. If the answers are mixed, either swap tools or descope. Don&#8217;t keep it running on inertia.</p><p>For a team of this size, expect total cost in the range of $200&#8211;$500 per month at standard pricing, plus roughly 20&#8211;40 hours of engineering time spread across the quarter for setup, tuning, and evaluation. The break-even is fast: if the tool saves your senior engineers two hours a week each, you&#8217;ve paid for it many times over.</p><h2>The frame that actually matters</h2><p>The interesting question isn&#8217;t whether AI agents can review code. They can, and they&#8217;re getting better quickly. The interesting question is what your engineering organization should look like when the cheapest, fastest reviewer on every PR is a machine that never gets tired and never gets defensive &#8212; and what the humans on your team should be doing with the time and attention that frees up.</p><p>That second question is the one worth your weekend.</p>]]></content:encoded></item><item><title><![CDATA[The Two-Layer Stack: How to Actually Compare BMAD, SpecKit, Superpowers, and the Rest]]></title><description><![CDATA[Most comparison articles in this space confuse two different layers of the stack. Once you separate them, picking a tool stops being hard.]]></description><link>https://kacperryniec.substack.com/p/the-two-layer-stack-how-to-actually</link><guid isPermaLink="false">https://kacperryniec.substack.com/p/the-two-layer-stack-how-to-actually</guid><dc:creator><![CDATA[Kacper Ryniec]]></dc:creator><pubDate>Thu, 30 Apr 2026 21:07:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!M7qa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02204615-ae30-4bf9-81da-62e368133af8_1448x1086.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!M7qa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02204615-ae30-4bf9-81da-62e368133af8_1448x1086.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M7qa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02204615-ae30-4bf9-81da-62e368133af8_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!M7qa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02204615-ae30-4bf9-81da-62e368133af8_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!M7qa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02204615-ae30-4bf9-81da-62e368133af8_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!M7qa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02204615-ae30-4bf9-81da-62e368133af8_1448x1086.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!M7qa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02204615-ae30-4bf9-81da-62e368133af8_1448x1086.png" width="1448" height="1086" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/02204615-ae30-4bf9-81da-62e368133af8_1448x1086.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1086,&quot;width&quot;:1448,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3243749,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://kacperryniec.substack.com/i/196046785?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02204615-ae30-4bf9-81da-62e368133af8_1448x1086.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!M7qa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02204615-ae30-4bf9-81da-62e368133af8_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!M7qa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02204615-ae30-4bf9-81da-62e368133af8_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!M7qa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02204615-ae30-4bf9-81da-62e368133af8_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!M7qa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02204615-ae30-4bf9-81da-62e368133af8_1448x1086.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Five agentic coding frameworks now hold over 170,000 combined GitHub stars. </strong>BMAD, GitHub SpecKit, Superpowers, GSD, OpenSpec &#8212; plus AWS Kiro on the commercial side. Every few weeks someone posts a new comparison, and every comparison reaches a different conclusion.<sup>&#185;</sup></p><p>Here&#8217;s what most of them get wrong: they treat these tools as alternatives to each other when they often aren&#8217;t. They mix in coding agents (Claude Code, Cursor, Copilot) as if they belong in the same bucket. And they recommend frameworks based on GitHub stars rather than what&#8217;s actually breaking in your workflow.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://kacperryniec.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>After spending a chunk of Q1 2026 going through these frameworks, the practitioner write-ups, and the available production data, one framing keeps holding up. The AI coding stack has two distinct layers, and 90% of the confusion in this space comes from treating them as one.</p><h1><strong>The Two Layers</strong></h1><p><strong>Layer 1 &#8212; The Agent. </strong>This is the tool that actually writes the code: Claude Code, Cursor, GitHub Copilot, Windsurf, Codex CLI, Aider, Cline. These are software products with their own UX, pricing, and model integrations. They&#8217;re what you fire up when you want to ship something.</p><p><strong>Layer 2 &#8212; The Methodology Framework. </strong>This is the structure layered on top of the agent: BMAD, SpecKit, Superpowers, GSD, OpenSpec. They define how the agent should think, plan, and hand off work. They&#8217;re not software you install in the traditional sense &#8212; they&#8217;re prompts, personas, skill files, and workflows that run on top of whatever agent you&#8217;ve already got.</p><p>This distinction sounds pedantic until you notice it explains every confused comparison article in the space. Comparing BMAD to Cursor is like comparing Scrum to Microsoft Word. They operate at different altitudes.</p><p>Once you accept the two-layer model, the question changes. It&#8217;s no longer <em>&#8220;which framework should I pick?&#8221;</em> It&#8217;s <em>&#8220;what&#8217;s breaking at which layer?&#8221;</em> That question has a tractable answer.</p><h1><strong>The Methodology Layer: What&#8217;s Actually Competing</strong></h1><p>With the agent layer set aside, the methodology layer has six serious players as of Q2 2026. Each makes a different bet about what kind of structure AI agents need.</p><h2><strong>BMAD-METHOD</strong></h2><p><strong>The bet: </strong>Simulate an entire enterprise software team. BMAD defines specialized AI personas &#8212; Mary (Business Analyst), Preston (PM), Winston (Architect), Sally (Product Owner), Simon (Scrum Master), Devon (Developer), plus QA &#8212; each with its own scope and explicit handoff protocol. Work moves through phases sequentially, and each persona produces structured artifacts (briefs, PRDs, architecture docs, stories) that feed the next.</p><p><strong>Where it&#8217;s strongest: </strong>Coordination at scale. February 2026 reviews consistently identify BMAD as &#8220;the healthiest project&#8221; in the methodology space, with responsive Discord support and the broadest agile lifecycle coverage.<sup>&#178;</sup> One independent case study reported &#8220;a level of precision and speed unattainable with unstructured AI development methods&#8221; using BMAD on a multi-tenant SaaS build.<sup>&#179;</sup> V6&#8217;s scale-adaptive planning automatically adjusts depth based on project complexity (Quick Flow for bugs, full BMAD for new products), partially addressing the over-engineering complaint.<sup>&#8308;</sup></p><p><strong>Where it breaks: </strong>Twelve agents and a heavy artifact set produce a steep learning curve. Practitioners testing BMAD Full in February 2026 reported six-day cycles for features that didn&#8217;t justify them.<sup>&#178;</sup> BMAD also defaults to a shared output directory, so parallel work by multiple engineers requires manual configuration. And the artifacts are static &#8212; when implementation drifts from the spec, manual reconciliation is on you.<sup>&#8309;</sup></p><p><strong>Use it when: </strong>Multiple engineers are sharing an AI workflow, requirements are still being shaped, or organizations need reviewable decisions between phases.</p><h2><strong>GitHub SpecKit</strong></h2><p><strong>The bet: </strong>Specifications are the source of truth; code is just their expression. Released by GitHub in September 2025, SpecKit drives development through slash commands &#8212; /constitution, /specify, /clarify, /plan, /tasks, /analyze, /implement &#8212; with explicit human checkpoints between each. Crossed 55,000 GitHub stars within months.</p><p><strong>Where it&#8217;s strongest: </strong>GitHub-backed credibility, agent-agnostic design (works with Claude Code, Copilot, Codex, Gemini CLI), and a clean slash-command UX that feels native to anyone already using a terminal-based agent.<sup>&#8310;</sup> The /clarify gate flags unknowns as &#8220;NEEDS CLARIFICATION&#8221; rather than guessing &#8212; a small thing that prevents a lot of downstream pain. IBM has published a fork specifically for infrastructure-as-code workflows.<sup>&#8309;</sup></p><p><strong>Where it breaks: </strong>No built-in code review step &#8212; iteration effectively stops at the planning phase. Changing direction means re-running affected commands, each regenerating its full document with no diff of just the changed sections. February 2026 testing also found that produced code didn&#8217;t always faithfully map to spec intent. Community signals are weaker than BMAD: a stale PR queue and no community channel as of early 2026.<sup>&#178;</sup></p><p><strong>Use it when: </strong>Greenfield work where you want lighter scaffolding than BMAD but more structure than vibe coding. Particularly strong if you&#8217;re already in the GitHub ecosystem.</p><h2><strong>Superpowers</strong></h2><p><strong>The bet: </strong>Discipline through enforcement, not knowledge. Created by Jesse Vincent in October 2025, Superpowers installs composable skills (SKILL.md files) that force the agent through brainstorm &#8594; spec &#8594; plan &#8594; TDD &#8594; review. The TDD skill literally auto-deletes code written before a failing test. Accepted into Anthropic&#8217;s official marketplace January 2026, and growth has been explosive &#8212; over 124,000 stars by March 2026.<sup>&#8311;</sup></p><p><strong>Where it&#8217;s strongest: </strong>It solves a problem the others don&#8217;t fully address. AI agents already know about TDD and good engineering practice &#8212; they just skip it under &#8220;time pressure.&#8221; Superpowers makes skipping mechanically impossible. It also uses git worktrees for isolation and subagents that start fresh on each task to prevent context drift. Notably, it leans on Cialdini&#8217;s persuasion principles to keep agents from rationalizing their way out of the rules.<sup>&#179;</sup></p><p><strong>Where it breaks: </strong>TDD-centric philosophy fits app code better than infrastructure or research code. The cognitive overhead is real &#8212; managing the structured workflow requires effort, and fast refactors or throwaway scripts feel over-constrained. It also doesn&#8217;t decide delivery phases, so it doesn&#8217;t replace BMAD or SpecKit at the project layer.</p><p><strong>Use it when: </strong>Production code where quality matters more than speed, autonomous multi-hour agent sessions, or any context where you can&#8217;t supervise every step the agent takes.</p><h2><strong>GSD (Get Stuff Done)</strong></h2><p><strong>The bet: </strong>Most projects don&#8217;t need elaborate agent hierarchies &#8212; they need clear task decomposition, fast iteration, and defense against context rot. GSD uses a flatter agent structure with &#8220;wave parallelism&#8221; to isolate context across subagents. The discuss &#8594; plan &#8594; execute &#8594; verify loop is brutally simple, with each phase running in a fresh context window.</p><p><strong>Where it&#8217;s strongest: </strong>Speed. The Reddit consensus on r/ClaudeCode is striking: &#8220;I&#8217;ve tried BMAD, SpecKit, Taskmaster. GSD has delivered the best results for me. By far.&#8221; Naturally fits ambiguous or fluid requirements. Solo developers and small teams report it as the fastest path to working output.<sup>&#8312;</sup></p><p><strong>Where it breaks: </strong>Without structured artifacts, knowledge can vanish between sessions. Easy to build quickly in the wrong direction. Doesn&#8217;t scale well to teams or long-term maintenance &#8212; it&#8217;s explicitly described in current reviews as a &#8220;solo vibe-coding tool.&#8221;</p><p><strong>Use it when: </strong>Prototypes, MVPs, internal tools, solo work. Skip it for anything that has to be maintained by a team six months from now.</p><h2><strong>OpenSpec</strong></h2><p><strong>The bet: </strong>Brownfield first. Instead of generating full specs from scratch, you write delta specs &#8212; only what&#8217;s changing. Completed specs archive and merge into a source-of-truth document that grows with the project.</p><p><strong>Where it&#8217;s strongest: </strong>Lightest footprint of the methodology frameworks. Works well when modifications must be reviewed before implementation begins. February 2026 evaluations found OpenSpec&#8217;s delta specs kept tracking accurate and made it easy to verify implementation against plan &#8212; a real advantage on existing codebases.<sup>&#178;</sup></p><p><strong>Where it breaks: </strong>Built and maintained by one person, which is a real bus-factor concern. Iteration is frictionless but not enforced &#8212; no review gates between phases. Not suited for large multi-service initiatives where specification drift during implementation creates coordination problems.<sup>&#8309;</sup></p><p><strong>Use it when: </strong>Iterative changes to existing codebases that need structured approval gates without heavy upfront planning overhead.</p><h2><strong>AWS Kiro (the productized outlier)</strong></h2><p><strong>The bet: </strong>Take the spec-driven concept and ship it as a polished IDE rather than an open-source framework. Kiro is AWS&#8217;s AI-powered IDE running on Claude Sonnet via Bedrock. It generates requirements in EARS notation, system design, and dependency-ordered task lists &#8212; all before code. Adds agent hooks (event triggers on file save), steering files for persistent project context, and deep AWS integration including IAM Policy Autopilot and GovCloud support.<sup>&#8313;</sup></p><p><strong>Where it&#8217;s strongest: </strong>If you&#8217;re building on AWS, the integration depth is genuine &#8212; Lambda, DynamoDB, IAM, CDK, CloudFormation all benefit. The hooks system enforces quality without relying on developer discipline. For greenfield enterprise development on AWS, the spec-first approach has real teeth.</p><p><strong>Where it breaks: </strong>Model lock-in (Claude only via Bedrock), AWS lock-in for the high-value features, and a $19/month price tag with a 50-credit free tier that, per multiple Q1 2026 user reports, &#8220;burns through in a single session.&#8221; The rigid Requirements &#8594; Design &#8594; Task List &#8594; Coding pipeline has been described as something that &#8220;kills momentum during iteration.&#8221;<sup>&#8309;</sup> And there was a notable early-access incident where Kiro-generated code reportedly triggered an AWS service disruption &#8212; the &#8220;vibe too hard, brought down AWS&#8221; story that made the rounds on Hacker News.<sup>&#185;&#8304;</sup></p><p><strong>Use it when: </strong>AWS-native projects where compliance and traceability matter more than iteration speed, and where your team already lacks documentation discipline.</p><h1><strong>Quick Comparison</strong></h1><p>All six frameworks at a glance, based on Q1&#8211;Q2 2026 evaluations:</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/trWR3/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2e964089-984c-4778-81b8-07cc10da9575_1220x816.png&quot;,&quot;thumbnail_url_full&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/60fd41fd-1a7e-44ad-a31d-7cf65b06a2e5_1220x816.png&quot;,&quot;height&quot;:303,&quot;title&quot;:&quot;Created with Datawrapper&quot;,&quot;description&quot;:&quot;&quot;}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="https://datawrapper.dwcdn.net/trWR3/1/" width="730" height="303" frameborder="0" scrolling="no"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><h1><strong>The Insight Most Teams Miss: Layer Them</strong></h1><p>Here&#8217;s what changed my mind about this whole space. The most informed practitioners in Q1 2026 aren&#8217;t picking one framework. They&#8217;re stacking them at different layers.</p><p><strong>The cleanest combination people are running: </strong>BMAD for the project layer (PRDs, stories, architecture notes), Superpowers for the task layer (TDD, verification, root-cause debugging during a single Claude Code session). BMAD answers <em>&#8220;what order should work happen in?&#8221;</em> Superpowers answers <em>&#8220;how does my agent stop skipping tests and inventing APIs?&#8221;</em> They&#8217;re not competing &#8212; they&#8217;re complementary.<sup>&#185;&#185;</sup></p><p>This is also why the GitHub-stars comparison is misleading. Superpowers crossing 124K stars doesn&#8217;t mean it&#8217;s &#8220;better&#8221; than BMAD &#8212; it means more individual developers want better-behaved agents than want full team simulation. Both numbers are true. Neither tells you what to use.</p><h3><strong>A practical heuristic</strong></h3><p>Diagnose what&#8217;s breaking. Then pick the layer.</p><ul><li><p><strong>Coordination problem? </strong>(&#8221;Nobody agrees what we&#8217;re building,&#8221; &#8220;AI keeps losing the plot between sessions&#8221;) &#8594; BMAD or SpecKit at the project layer.</p></li><li><p><strong>Discipline problem? </strong>(&#8221;Agent skips tests,&#8221; &#8220;declares victory too early,&#8221; &#8220;invents APIs&#8221;) &#8594; Superpowers at the task layer.</p></li><li><p><strong>Speed problem? </strong>(&#8221;Process is killing momentum on a prototype&#8221;) &#8594; GSD, or no framework at all.</p></li><li><p><strong>Brownfield problem? </strong>(&#8221;Existing codebase, can&#8217;t redesign from scratch&#8221;) &#8594; OpenSpec.</p></li><li><p><strong>Compliance / AWS problem? </strong>(&#8221;Need traceability, deploying to GovCloud&#8221;) &#8594; Kiro, accepting the lock-in tradeoff.</p></li></ul><h1><strong>One Honest Caveat About &#8220;Case Studies&#8221;</strong></h1><p>If you go looking for rigorous, third-party-validated case studies in this space, you&#8217;ll come up short. The frameworks are too new, and almost everything you&#8217;ll read &#8212; including most of what&#8217;s cited above &#8212; is practitioner write-ups, not audited outcomes.</p><p>What we have is directional. BMAD has the most independent case study coverage, including documented multi-tenant SaaS builds. SpecKit has GitHub itself as a case study (used internally before open-sourcing) plus published implementations from IBM, Microsoft, and EPAM. Superpowers has Simon Willison&#8217;s October 2025 endorsement and Spring AI&#8217;s January 2026 adoption of a similar Agent Skills pattern as ecosystem validation. Kiro has AWS&#8217;s own deployment behind it.</p><p>What we don&#8217;t have, yet, is the kind of controlled study that would tell you whether &#8220;10x productivity&#8221; claims survive contact with reality. Anyone telling you they have those numbers in Q2 2026 is reporting their own experience, not measured outcomes. Adjust your priors accordingly.</p><p>There&#8217;s one number worth knowing: the OSVBench research published in 2025 found that spec-driven approaches reduce logic errors by 23&#8211;37% compared to direct generation.<sup>&#185;&#178;</sup> That&#8217;s the most credible empirical finding in this whole space, and it applies to the entire spec-driven category &#8212; BMAD, SpecKit, Kiro, and OpenSpec all benefit from it.</p><h1><strong>Where This Is Heading</strong></h1><p>A few patterns are worth watching as Q2 2026 unfolds.</p><p><strong>SKILL.md is becoming the cross-platform standard. </strong>Eleven-plus tools now support it &#8212; Claude Code, Cursor, Copilot, Codex, Gemini CLI, Kiro, Amp, Manus, OpenCode, Goose, Roo Code. That portability matters: skills written for one agent increasingly work everywhere.<sup>&#179;</sup></p><p><strong>Living specs are eating static specs. </strong>The biggest unresolved gripe with BMAD and SpecKit is that their artifacts go stale the moment implementation drifts. Newer entrants (Augment&#8217;s Intent, for example) are betting on specs that update as agents work. Expect this to be the next major architectural fight.<sup>&#8309;</sup></p><p><strong>Security is the dark side of skill libraries. </strong>Snyk&#8217;s February 2026 ToxicSkills audit found prompt injection in 36% of skills they tested, with 1,467 malicious payloads. Treat skills like npm packages: vet before installing, prefer official catalogs, and audit third-party additions. The ecosystem mirrors early npm/PyPI risk patterns.<sup>&#179;</sup></p><p><strong>If you only take one thing from this: </strong>stop asking &#8220;BMAD or SpecKit?&#8221; and start asking &#8220;agent layer or methodology layer &#8212; and what&#8217;s actually breaking?&#8221; Pick the layer first, then the tool. Most teams who have been burned by framework adoption skipped that step.</p><p><em>What&#8217;s working for your team in 2026? Drop a comment &#8212; I&#8217;m especially curious about teams running BMAD + Superpowers stacks, or anyone who tried Kiro past the 50-credit free tier.</em></p><h1><strong>Sources</strong></h1><p><strong>1. </strong>Hightower, R. (March 2026). &#8220;The Great Framework Showdown: Superpowers vs. BMAD vs. SpecKit vs. GSD.&#8221; AI in Plain English &#8212; <a href="https://ai.plainenglish.io/the-great-framework-showdown-superpowers-vs-bmad-vs-speckit-vs-gsd-360983101c10">https://ai.plainenglish.io/the-great-framework-showdown-superpowers-vs-bmad-vs-speckit-vs-gsd-360983101c10</a></p><p><strong>2. </strong>Ran the Builder (February 2026). &#8220;I Tested Three Spec-Driven AI Tools. Here&#8217;s My Honest Take.&#8221; &#8212; <a href="https://ranthebuilder.cloud/blog/i-tested-three-spec-driven-ai-tools-here-s-my-honest-take/">https://ranthebuilder.cloud/blog/i-tested-three-spec-driven-ai-tools-here-s-my-honest-take/</a></p><p><strong>3. </strong>Walker, R. (February 2026). &#8220;Agentic Skills Frameworks Compared.&#8221; Ry Walker Research &#8212; <a href="https://rywalker.com/research/agentic-skills-frameworks">https://rywalker.com/research/agentic-skills-frameworks</a></p><p><strong>4. </strong>BMAD-METHOD official repository (v6 documentation). GitHub &#8212; <a href="https://github.com/bmad-code-org/BMAD-METHOD">https://github.com/bmad-code-org/BMAD-METHOD</a></p><p><strong>5. </strong>Augment Code (March 2026). &#8220;6 Best Spec-Driven Development Tools for AI Coding in 2026.&#8221; &#8212; <a href="https://www.augmentcode.com/tools/best-spec-driven-development-tools">https://www.augmentcode.com/tools/best-spec-driven-development-tools</a></p><p><strong>6. </strong>GitHub Blog (September 2025). &#8220;Spec-driven development with AI: Get started with a new open source toolkit.&#8221; &#8212; <a href="https://github.blog/ai-and-ml/generative-ai/spec-driven-development-with-ai-get-started-with-a-new-open-source-toolkit/">https://github.blog/ai-and-ml/generative-ai/spec-driven-development-with-ai-get-started-with-a-new-open-source-toolkit/</a></p><p><strong>7. </strong>Pulumi Blog (April 2026). &#8220;Superpowers, GSD, and GSTACK: Picking the Right Framework for Your Coding Agent.&#8221; &#8212; <a href="https://www.pulumi.com/blog/claude-code-orchestration-frameworks/">https://www.pulumi.com/blog/claude-code-orchestration-frameworks/</a></p><p><strong>8. </strong>Obvious Works (April 2026). &#8220;Agentic Coding Tools 2026: The 7 frameworks that will take your development to the next level.&#8221; &#8212; <a href="https://www.obviousworks.ch/en/agentic-coding-tools-2026-the-7-frameworks-that-take-your-development-to-a-new-level/">https://www.obviousworks.ch/en/agentic-coding-tools-2026-the-7-frameworks-that-take-your-development-to-a-new-level/</a></p><p><strong>9. </strong>Kiro official site. AWS &#8212; https://kiro.dev/</p><p><strong>10. </strong>OpenAIToolsHub (March 2026). &#8220;Kiro Review: Amazon&#8217;s Spec-Driven IDE Powered by Claude.&#8221; &#8212; <a href="https://www.openaitoolshub.org/en/blog/kiro-review-amazon-ide">https://www.openaitoolshub.org/en/blog/kiro-review-amazon-ide</a></p><p><strong>11. </strong>AWS Galaxy (April 2026). &#8220;BMAD and Superpowers: A Process Framework and a Skill Library, Side by Side.&#8221; &#8212; <a href="https://awsgalaxy.com/blog/2026-04-24/bmad-and-superpowers">https://awsgalaxy.com/blog/2026-04-24/bmad-and-superpowers</a></p><p><strong>12. </strong>DEV Community (January 2026). &#8220;The Paradigm Shift from Reactive to Proactive AI in Software Development&#8221; (citing OSVBench, April 2025) &#8212; <a href="https://dev.to/kirodotdev/the-paradigm-shift-from-reactive-to-proactive-ai-in-software-development-a-comparative-analysis-of-148p">https://dev.to/kirodotdev/the-paradigm-shift-from-reactive-to-proactive-ai-in-software-development-a-comparative-analysis-of-148p</a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://kacperryniec.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>