<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Raunak Kathuria</title>
    <description>The latest articles on DEV Community by Raunak Kathuria (@raunakkathuria).</description>
    <link>https://dev.to/raunakkathuria</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3833513%2F1c61582a-db6e-4c5b-a126-109ffab3ef60.png</url>
      <title>DEV Community: Raunak Kathuria</title>
      <link>https://dev.to/raunakkathuria</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/raunakkathuria"/>
    <language>en</language>
    <item>
      <title>The AI model is a commodity. Taste isn't.</title>
      <dc:creator>Raunak Kathuria</dc:creator>
      <pubDate>Mon, 06 Apr 2026 13:43:10 +0000</pubDate>
      <link>https://dev.to/raunakkathuria/the-ai-model-is-a-commodity-taste-isnt-5177</link>
      <guid>https://dev.to/raunakkathuria/the-ai-model-is-a-commodity-taste-isnt-5177</guid>
      <description>&lt;p&gt;When everyone has access to the same AI, your edge is the judgment behind the output.&lt;/p&gt;

&lt;p&gt;The first &lt;a href="https://www.reddit.com/r/openclaw/comments/1s6w0rt/comment/od4vjq0" rel="noopener noreferrer"&gt;comment&lt;/a&gt; on my Reddit post wasn't a question.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I don't think I've ever seen so many stupid ideas and em-dashes in such a short amount of text.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;No counter-argument. No nuance. Just a precise observation about punctuation I couldn't shake, because they were right. Not about em-dashes, but about the generic text that was presented.&lt;/p&gt;

&lt;p&gt;The post had been written with AI assistance. I'd used em-dashes in almost every sentence, in a rhythm that wasn't mine. The Reddit commenter knew something was off. That's the thing about taste — you recognise the absence of it before you can name it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Everyone has the same AI
&lt;/h2&gt;

&lt;p&gt;Here's the uncomfortable truth: &lt;strong&gt;the model is no longer the differentiator&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Give ten capable people a reasonable prompt and you'll get ten tidy versions of the same answer. Same sentence balance. Same transitions. Same polished neutrality.&lt;/p&gt;

&lt;p&gt;The AI optimises for readability, and readable turns out to mean forgettable.&lt;/p&gt;

&lt;p&gt;What nobody's discussing: AI was trained to be useful to everyone. That means it has no taste. It has capability without judgment, fluency without instinct. It can write anything, which means it sounds like nothing in particular.&lt;/p&gt;

&lt;h2&gt;
  
  
  Taste is judgment you can teach
&lt;/h2&gt;

&lt;p&gt;Everyone who's spent years thinking about something develops a &lt;em&gt;taste&lt;/em&gt; for it. Not just preferences: &lt;em&gt;a finely tuned sense of what belongs and what doesn't&lt;/em&gt;. What to say. What to leave out. What sounds true and what sounds performed.&lt;/p&gt;

&lt;p&gt;That taste isn't in the model. It's in you.&lt;/p&gt;

&lt;p&gt;Taste is the personalisation you bring to AI — the part that can't be trained on someone else's data.&lt;/p&gt;

&lt;p&gt;A doctor has it in diagnosis, the pattern recognition from thousands of cases that flags something wrong before the tests confirm it. A great editor has it for sentences, whether a line is doing the work it thinks it's doing.&lt;/p&gt;

&lt;p&gt;AI can generate the words. It can't generate the judgment behind them.&lt;/p&gt;

&lt;p&gt;The question is whether you can give it yours.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built to do exactly that
&lt;/h2&gt;

&lt;p&gt;After the Reddit comment, I didn't just edit the post. I tried to fix the root cause.&lt;/p&gt;

&lt;p&gt;The problem wasn't the output. It was that I'd given the AI no real constraint to work with. &lt;em&gt;Write like me&lt;/em&gt; is not a constraint. It's a wish. The AI interpreted it as: write clearly, write professionally, write in a way that nobody will object to. And nobody would object to it, because it had no point of view.&lt;/p&gt;

&lt;p&gt;So I spent a few sessions trying to articulate what my voice actually was. Not in general terms, specific ones.&lt;/p&gt;

&lt;p&gt;I asked the agent to read through my Substack posts, my LinkedIn writing, our conversation history. Identify the patterns. Push back on what it got wrong. Refine until the description felt accurate enough to be useful.&lt;/p&gt;

&lt;p&gt;The output was a file I called &lt;code&gt;TASTE.md&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;It's not a style guide. Style guides tell you how to format things. This was closer to a brief for what kind of mind should be speaking: what it cares about, what it would never say, the things that would sound wrong even if they were technically correct.&lt;/p&gt;

&lt;p&gt;The difference in the writing was immediate. Not perfect — it took several passes and a proper audit loop to get the AI detection score from &lt;strong&gt;78% down to 11%&lt;/strong&gt;. The first draft with &lt;code&gt;TASTE.md&lt;/code&gt; loaded still scored 62%. Three rounds to get it to 11%. But the direction was right from the start.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters beyond writing
&lt;/h2&gt;

&lt;p&gt;Writing is just the most visible place where taste shows up.&lt;/p&gt;

&lt;p&gt;In code review, the taste is your sense of what good architecture feels like in your specific system, not in the benchmark, not in general, in yours. In product decisions, it's the feel for which trade-off your team can absorb right now and which one will cost you a quarter.&lt;/p&gt;

&lt;p&gt;These aren't prompting techniques. They're the accumulated judgment you've built over years, finally expressible in a form something else can use.&lt;/p&gt;

&lt;p&gt;The teams that get the most out of AI aren't the ones with the best prompts. They're the ones who've spent time writing it down, something like &lt;code&gt;TASTE.md&lt;/code&gt;, but for their domain, specifically enough that they can give it to something that has no beliefs of its own.&lt;/p&gt;

&lt;h2&gt;
  
  
  The inversion worth sitting with
&lt;/h2&gt;

&lt;p&gt;AI is trained to be a generalist. That framing is holding people back.&lt;/p&gt;

&lt;p&gt;The same model with your specific taste, the things that would sound wrong to you even if they're technically correct, produces something different from the same model without it. Each piece builds on the last. The output starts to sound like it came from someone.&lt;/p&gt;

&lt;p&gt;And the part I didn't expect: building &lt;code&gt;TASTE.md&lt;/code&gt; didn't just make the AI more useful. It made me clearer about what I actually believe. You can't articulate your taste to something else without first understanding it yourself.&lt;/p&gt;

&lt;p&gt;The Reddit comment that stung on a Sunday evening was useful. Not because it was about the em-dashes, they were right about the generic text that was presented.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Everyone has access to the same AI. What differentiates you is what you bring to it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;How clearly have you articulated your taste?&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is part one of a two-part series. Part two covers the exact process: how to build your own &lt;code&gt;TASTE.md&lt;/code&gt;, the audit loop I use, and what the before/after looks like.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://raunakkathuria.substack.com/p/the-ai-model-is-a-commodity-taste" rel="noopener noreferrer"&gt;raunakkathuria.substack.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>programming</category>
    </item>
    <item>
      <title>The Agentic Stack</title>
      <dc:creator>Raunak Kathuria</dc:creator>
      <pubDate>Mon, 30 Mar 2026 05:16:30 +0000</pubDate>
      <link>https://dev.to/raunakkathuria/the-agentic-stack-5ej7</link>
      <guid>https://dev.to/raunakkathuria/the-agentic-stack-5ej7</guid>
      <description>&lt;p&gt;We’ve spent years building software the same way. A service receives a request, calls another service, writes to a database. Something reads it back. You scale the slow parts, monitor the breaking ones.&lt;/p&gt;

&lt;p&gt;That model still works. It’s reliable, well-understood, and well-tooled. But something’s shifted — and if you haven’t felt it yet in your architecture decisions, you will soon.&lt;/p&gt;

&lt;p&gt;AI has introduced a new execution layer. Not infrastructure. Not middleware. Something that does work — the kind that used to require a human to sit down, think, and grind through.&lt;/p&gt;

&lt;h2&gt;
  
  
  The question nobody’s asking right now
&lt;/h2&gt;

&lt;p&gt;Most leaders ask: “Should we use AI?” That’s the wrong level. Everyone’s already using it — in their IDE, their code review tool, their incident runbook.&lt;/p&gt;

&lt;p&gt;Ask instead: What’s the architecture?&lt;/p&gt;

&lt;p&gt;Because when AI stops being a feature and starts being an execution layer — something that does work rather than assists with work — your system’s structure changes. How you define capability changes. How intent enters the system changes. That’s what the agentic stack is about, and it’s worth understanding before your team figures it out without you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three layers. You already know all of them
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Claw&lt;/strong&gt; is the new unit of architecture. A bounded execution unit with its own role, context, tools, and constraints. Not a microservice — it doesn’t expose an API endpoint. It checks Slack, reads files, calls APIs, drafts responses, takes action. It does things.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Skill&lt;/strong&gt; is the instruction layer. Reusable logic that tells a claw what to do, how to do it, what rules it’s operating under, and what good output looks like. If a claw is the executor, the skill is the judgment baked in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prompt&lt;/strong&gt; is how intent enters the system. Not a rigid API contract — a natural language instruction that activates claws and routes work through skills.&lt;/p&gt;

&lt;p&gt;Three layers. Each one maps to something familiar.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Claw is the architecture. Skill is the language. Prompt is the protocol. That’s the stack your team is building on — whether you’ve named it yet or not.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What this replaces and what it doesn't
&lt;/h2&gt;

&lt;p&gt;Here’s where most explanations go sideways: they frame this as replacement. It isn’t, and treating it that way will cause you to either over-invest or dismiss it entirely.&lt;/p&gt;

&lt;p&gt;Services still define how systems run. Databases still store state. APIs still integrate third-party tools. None of that changes.&lt;/p&gt;

&lt;p&gt;What changes is the coordination layer on top, the work that used to live in Notion docs, Jira comments, and Slack threads.&lt;/p&gt;

&lt;p&gt;The glue work. The “someone needs to look at this and decide work”. Before the agentic stack, that required a human. After, a claw handles it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meet Priya
&lt;/h2&gt;

&lt;p&gt;She’s a Senior Engineering Manager at a scaling platform team. Her week, pre-agentic stack: 15 PRs moving through review, senior engineers burning two to three hours a day reading diffs, junior engineers waiting three to five days for feedback that came back cryptic half the time anyway.&lt;/p&gt;

&lt;p&gt;The process ran like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;PR opened → Priya manually assigns reviewer based on who knows the area&lt;/li&gt;
&lt;li&gt;Reviewer reads 300–500 lines of code&lt;/li&gt;
&lt;li&gt;Leaves comments → author reads them, guesses at intent → revises&lt;/li&gt;
&lt;li&gt;Reviewer re-reads, re-approves or re-requests changes&lt;/li&gt;
&lt;li&gt;Repeat until it's good enough&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's six to eight human touchpoints per PR. Multiply by 15 PRs a week.&lt;/p&gt;

&lt;p&gt;They tried building a claw to do first-pass reviews. The skill encoded the team’s standards — naming conventions, test coverage thresholds, security anti-patterns, documentation expectations. First two weeks were rough. It flagged too aggressively, left feedback in a tone that annoyed the engineers, and missed context on a few architectural decisions it didn’t have visibility into.&lt;/p&gt;

&lt;p&gt;They fixed the skill. Rewrote the tone guidelines, added the architecture docs to its context, tuned the flagging thresholds. By week four, it was doing what a good junior reviewer would do — and Priya’s seniors were only seeing the PRs that genuinely needed a human call.&lt;/p&gt;

&lt;p&gt;That’s the actual story. It wasn’t clean. It worked anyway.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it looks like in practice
&lt;/h2&gt;

&lt;p&gt;Here's a simplified skill definition for a code review claw:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;code-review&lt;/span&gt;
&lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Review pull requests against team engineering standards. Flag violations. Approve clean PRs. Escalate anything touching auth or payments.&lt;/span&gt;
&lt;span class="na"&gt;context&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;repo&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;standards/engineering-guidelines.md&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;file&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;.github/CODEOWNERS&lt;/span&gt;
&lt;span class="na"&gt;tools&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;read_pr_diff&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;post_review_comment&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;request_human_review&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;approve_pr&lt;/span&gt;
&lt;span class="na"&gt;constraints&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Never approve PRs touching /src/auth without human sign-off&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Always flag missing tests as blocking&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Post feedback in plain English, not just line references&lt;/span&gt;
&lt;span class="na"&gt;output&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;structured review with verdict&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;approve | changes_requested | escalate&lt;/span&gt;
&lt;span class="s"&gt;The skill is the logic. The claw is the executor. The PR opening is the prompt.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No new service to build. No new API to maintain. You're composing behaviour, not writing code.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually changes for you
&lt;/h2&gt;

&lt;p&gt;Your senior engineers stop being the default reviewers. Their judgment gets encoded into skills — and applied at scale, consistently, without their calendar getting eaten. They shift from doing reviews to defining what a good review looks like. That’s a leverage upgrade.&lt;/p&gt;

&lt;p&gt;Code standards become executable, not aspirational. There’s a meaningful difference between a policy nobody reads and a skill a claw runs on every PR. One is stated. One is applied. You’ve probably written a lot of policies that belong in the second category.&lt;/p&gt;

&lt;p&gt;Your junior engineers get faster feedback loops. They learn faster because the signal isn’t filtered through whoever had time to review that week.&lt;/p&gt;

&lt;p&gt;And you get visibility into work that was previously invisible. Every claw action is logged. Every decision is traceable. Which is a kind of accountability your process almost certainly doesn’t have right now.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to start
&lt;/h2&gt;

&lt;p&gt;Pick one workflow that is a bottleneck. Not a hypothetical one, a specific named workflow that your team complains about in retros.&lt;/p&gt;

&lt;p&gt;Write down, in plain language, what a good human does in that workflow. Step by step. Including the judgment calls, the rules they apply, the things they'd escalate. That's your first skill. The trigger is your first prompt. The claw executes it.&lt;/p&gt;

&lt;p&gt;Run it alongside your human process for two weeks. Don’t replace anything yet — just compare the outputs. Trust the parts that are right. Fix the parts that aren’t.&lt;/p&gt;

&lt;p&gt;That’s it. Everything else is refinement.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The most interesting thing about this stack isn’t the technology. It’s that the judgment your best people carry around in their heads — the stuff that makes them irreplaceable — can now be encoded and applied everywhere, all the time, without them being in the room.&lt;br&gt;
That’s what’s actually happening. The naming is new. The leverage isn’t.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What workflow in your team still requires a human because nobody’s written down what good looks like? Genuinely curious — drop it in the comments.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>openclaw</category>
      <category>agents</category>
    </item>
  </channel>
</rss>
