<?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: Lital Shalev</title>
    <description>The latest articles on DEV Community by Lital Shalev (@litalkumiq).</description>
    <link>https://dev.to/litalkumiq</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4200616%2F35c67713-815b-4293-b21c-9e4a67b6e66a.png</url>
      <title>DEV Community: Lital Shalev</title>
      <link>https://dev.to/litalkumiq</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/litalkumiq"/>
    <language>en</language>
    <item>
      <title>We split Claude Code into four roles. The output stopped lying.</title>
      <dc:creator>Lital Shalev</dc:creator>
      <pubDate>Thu, 22 Oct 2026 14:12:54 +0000</pubDate>
      <link>https://dev.to/litalkumiq/we-split-claude-code-into-four-roles-the-output-stopped-lying-2094</link>
      <guid>https://dev.to/litalkumiq/we-split-claude-code-into-four-roles-the-output-stopped-lying-2094</guid>
      <description>&lt;p&gt;Most AI coding assistants are extremely good at one thing: making a confident-sounding first draft of whatever you ask.&lt;/p&gt;

&lt;p&gt;That is also their failure mode.&lt;/p&gt;

&lt;p&gt;If you let a single AI conversation handle "turn this idea into a tested, reviewed, merge-ready pull request," what you actually get is: a spec the model invented, an architecture the model chose silently, code written to pass tests the model also wrote, and no review because the author is the same entity as the reviewer. Shipping that is how AI-assisted engineering acquires its reputation for subtle bugs and unreadable modules.&lt;/p&gt;

&lt;p&gt;Strong engineering teams have never worked that way. Even a two-person team informally splits the work: someone frames the problem, someone decides the approach, someone builds, someone else looks at the diff. The roles may compress onto one person, but the four moments are still there.&lt;/p&gt;

&lt;p&gt;I made that structure explicit for Claude Code, as four slash-command skills, each with one job.&lt;/p&gt;

&lt;h2&gt;
  
  
  The four skills
&lt;/h2&gt;

&lt;p&gt;Each &lt;code&gt;/&amp;lt;skill&amp;gt;&lt;/code&gt; is a self-contained SKILL.md file with a strict output format. You invoke them in sequence (or individually), and each produces an artifact the next stage holds accountable.&lt;/p&gt;

&lt;h3&gt;
  
  
  /product-owner
&lt;/h3&gt;

&lt;p&gt;Turns a raw idea into a testable spec. Output: PROBLEM, TASK SPEC, USER STORIES, ACCEPTANCE CRITERIA, EDGE CASES, OUT OF SCOPE, OPEN QUESTIONS, DEFINITION OF DONE.&lt;/p&gt;

&lt;p&gt;The important part: if the request is missing something load-bearing, this skill is required to flag it under OPEN QUESTIONS rather than invent an answer. The thing that keeps AI coding from being safe is that models by default fill ambiguity with plausibility. Making "ask, don't guess" a hard rule at the spec stage is where most of the ROI lives.&lt;/p&gt;

&lt;h3&gt;
  
  
  /architect
&lt;/h3&gt;

&lt;p&gt;Takes the spec and designs the minimal implementation approach. Output: APPROACH, COMPONENTS, DATA FLOW, INTERFACES, CONSTRAINTS, RISKS, TRADEOFFS, DEFINITION OF DONE.&lt;/p&gt;

&lt;p&gt;First thing the architect skill does is a size check. If the diff would exceed ~400 lines of meaningful code, or touch more than 3-4 files across layers, it refuses to design the whole thing and instead splits it into sub-tasks. The downstream Dev/QA skill works much better on small, isolated changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  /dev-qa
&lt;/h3&gt;

&lt;p&gt;Implements the feature with tests. The core discipline: "Acceptance criteria are the contract. Every checked box must correspond to working code AND a test that would fail without it. If you cannot write the test, you do not understand the requirement."&lt;/p&gt;

&lt;p&gt;Also: no drive-by refactors, no new dependencies without an architect note approving them, no commits to main, no bypassing failing tests. CI must be green before pushing.&lt;/p&gt;

&lt;h3&gt;
  
  
  /code-reviewer
&lt;/h3&gt;

&lt;p&gt;Read-only. Reviews the diff against the spec and architect notes. Output: VERDICT (approve / request changes / needs human), CRITICAL issues, IMPORTANT issues, SUGGESTIONS, WHAT'S DONE WELL, VERIFICATION STORY.&lt;/p&gt;

&lt;p&gt;Every Critical or Important issue must include affected area, risk, and recommended fix. "This feels bad" is not a valid finding; evidence is.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why structuring it this way matters
&lt;/h2&gt;

&lt;p&gt;Three things change when the roles are explicit:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ambiguity surfaces at the cheapest stage.&lt;/strong&gt; OPEN QUESTIONS at the spec step costs nothing to resolve. The same ambiguity caught at code review costs a rework round.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Drift becomes traceable.&lt;/strong&gt; If the final PR doesn't match what the user asked for, the gap is attributable to a specific stage, with a specific output you can inspect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scope creep gets a hard stop.&lt;/strong&gt; Dev/QA is explicitly banned from "while I'm here" cleanups. The architect refuses oversized tasks. The reviewer rejects PRs that exceed the spec.&lt;/p&gt;

&lt;p&gt;None of this is theoretical. If you have ever reviewed a PR that quietly tripled in scope between the ticket and the diff, you know exactly what these guardrails prevent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/KumiQ/ai-engineering-skills.git
&lt;span class="nb"&gt;cd &lt;/span&gt;ai-engineering-skills
&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; ~/.claude/skills
&lt;span class="nb"&gt;ln&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;/skills/product-owner"&lt;/span&gt;  ~/.claude/skills/product-owner
&lt;span class="nb"&gt;ln&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;/skills/architect"&lt;/span&gt;      ~/.claude/skills/architect
&lt;span class="nb"&gt;ln&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;/skills/dev-qa"&lt;/span&gt;         ~/.claude/skills/dev-qa
&lt;span class="nb"&gt;ln&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;/skills/code-reviewer"&lt;/span&gt;  ~/.claude/skills/code-reviewer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Restart Claude Code. &lt;code&gt;/product-owner&lt;/code&gt;, &lt;code&gt;/architect&lt;/code&gt;, &lt;code&gt;/dev-qa&lt;/code&gt;, &lt;code&gt;/code-reviewer&lt;/code&gt; are now available in every project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where this came from
&lt;/h2&gt;

&lt;p&gt;I run &lt;a href="https://www.kumiq.app" rel="noopener noreferrer"&gt;KumiQ&lt;/a&gt;, where we work on making organizational engineering standards usable by AI coding agents, through a Model Context Protocol (MCP) server. These four role-based skills are the workflow layer that sits on top of that: once the agent has access to your organization's standards, these are the roles that actually use them to produce shipped work.&lt;/p&gt;

&lt;p&gt;The skills are MIT-licensed, independent of KumiQ, and useful on their own. If your team is figuring out how to adopt AI coding tools without the output quality dropping, start here.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/KumiQ/ai-engineering-skills" rel="noopener noreferrer"&gt;https://github.com/KumiQ/ai-engineering-skills&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I would genuinely like to hear what breaks when you try these on your own stack. Issues and PRs welcome.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>opensource</category>
      <category>claude</category>
    </item>
  </channel>
</rss>
