<?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: Murilo Narciso</title>
    <description>The latest articles on DEV Community by Murilo Narciso (@murilomn58).</description>
    <link>https://dev.to/murilomn58</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%2F4016358%2F806d398f-3049-434b-9ae3-c03841c40bc8.jpg</url>
      <title>DEV Community: Murilo Narciso</title>
      <link>https://dev.to/murilomn58</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/murilomn58"/>
    <language>en</language>
    <item>
      <title>I stopped prompt-and-praying with Claude Code. Now it interviews me first.</title>
      <dc:creator>Murilo Narciso</dc:creator>
      <pubDate>Sun, 05 Jul 2026 15:30:41 +0000</pubDate>
      <link>https://dev.to/murilomn58/i-stopped-prompt-and-praying-with-claude-code-now-it-interviews-me-first-48he</link>
      <guid>https://dev.to/murilomn58/i-stopped-prompt-and-praying-with-claude-code-now-it-interviews-me-first-48he</guid>
      <description>&lt;p&gt;For months my workflow with Claude Code was what I now call prompt-and-pray: write a big prompt describing the feature, watch the AI code for a while, and discover at the end that it solved the wrong problem. Then pay again, in tokens and in patience, to redo it.&lt;/p&gt;

&lt;p&gt;The turning point was admitting the problem wasn't the model. It was me, shipping vague specs to a very fast executor. A junior dev with a vague ticket writes the wrong thing slowly; Claude writes the wrong thing at 200 tokens per second.&lt;/p&gt;

&lt;p&gt;So I stopped tuning prompts and built a protocol instead. This post is the full methodology, free to steal even if you never install anything.&lt;/p&gt;

&lt;h3&gt;
  
  
  The core inversion: the AI interviews you
&lt;/h3&gt;

&lt;p&gt;The first fix was flipping the interview. Instead of me describing the feature, the AI questions me. One question at a time, no vague answers accepted, challenging my assumptions against what actually exists in the codebase, until scope and success criteria are airtight.&lt;/p&gt;

&lt;p&gt;This sounds slow. It's the opposite. Twenty minutes of interrogation is cheaper than one wrong implementation, and the interview ends with something a prompt never gives you: a shared, written understanding of what we're building and what we're explicitly NOT building.&lt;/p&gt;

&lt;h3&gt;
  
  
  Six phases, four human gates
&lt;/h3&gt;

&lt;p&gt;The full protocol runs as a single command (&lt;code&gt;/adp&lt;/code&gt;) that drives a feature end to end:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp27psjy68wydo8cawi3e.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp27psjy68wydo8cawi3e.gif" alt="The /adp command running all six phases with four human approval gates" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Phase&lt;/th&gt;
&lt;th&gt;What happens&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;0 · grill-me&lt;/td&gt;
&lt;td&gt;The AI interviews you until scope is airtight. &lt;strong&gt;Gate: you approve the scope.&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1 · to-prd&lt;/td&gt;
&lt;td&gt;The conversation becomes a real PRD: user stories, acceptance criteria. &lt;strong&gt;Gate: you approve the PRD.&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2 · to-issues&lt;/td&gt;
&lt;td&gt;The PRD is sliced into vertical slices in dependency order. &lt;strong&gt;Gate: you approve the slicing.&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3 · tech-lead&lt;/td&gt;
&lt;td&gt;Each slice is implemented in TDD, one subagent per issue.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4 · qa&lt;/td&gt;
&lt;td&gt;Green tests + the actual screen opened in a browser as evidence.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5 · guardrails-pr&lt;/td&gt;
&lt;td&gt;A PreToolUse hook blocks secrets from reaching any commit, then opens the PR. &lt;strong&gt;Gate: you review the merge.&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The design constraint that matters: the flow STOPS at those four gates and waits for explicit human approval. Nothing becomes code without a human having seen the plan. This is deliberately the opposite of the fully-autonomous-agent trend. I think the interesting engineering problem right now is deciding where the human belongs in the loop, not removing them from it.&lt;/p&gt;

&lt;h3&gt;
  
  
  The artifact I didn't expect to love: a living architecture map
&lt;/h3&gt;

&lt;p&gt;Every team draws an architecture diagram once, pins it to a Miro board, and watches it rot. In this protocol, re-rendering the map is a phase, not a good intention. Every merged feature redraws an interactive HTML map that lives in the repo itself: files, screens, skills, subagents, MCP servers, hooks. Click a node, see the files responsible for it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs3j4sdjnhkxtyz6edbno.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs3j4sdjnhkxtyz6edbno.png" alt="The living architecture map: an interactive canvas re-rendered after every delivered feature" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It became the most-used artifact of the whole system, including for onboarding humans.&lt;/p&gt;

&lt;h3&gt;
  
  
  The token economics surprised me
&lt;/h3&gt;

&lt;p&gt;Here's the effect I didn't design for. Because the skills carry the reasoning (the interview script, the PRD format, the slicing convention, the QA checklist are all written down), the implementation model doesn't have to think about the process, only execute inside it. In practice that let me run Sonnet on medium effort where I previously used Opus on high effort, with comparable results on most features.&lt;/p&gt;

&lt;p&gt;In my estimates that's up to ~70% fewer tokens per feature. To be clear about what that number is: my own estimate from my own usage comparing Sonnet-medium against Opus-high, not a formal benchmark. The bigger saving is less visible anyway: a feature specified before implementation doesn't get built twice.&lt;/p&gt;

&lt;p&gt;If you take one thing from this post, take this: &lt;strong&gt;choose your model by how much of the reasoning is already written down, not by the task.&lt;/strong&gt; Expensive models for genuine uncertainty (discovery, spec writing). Cheaper models for execution inside a written process.&lt;/p&gt;

&lt;h3&gt;
  
  
  Steal it
&lt;/h3&gt;

&lt;p&gt;The methodology above is complete; you can implement it with plain skills in any setup. If you want the packaged version:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The free tier&lt;/strong&gt; (the interview phase + PRD phase + conventions file) is open source: &lt;a href="https://github.com/murilomn58/Claude-Spec-Driven-Fase-Zero" rel="noopener noreferrer"&gt;github.com/murilomn58/Claude-Spec-Driven-Fase-Zero&lt;/a&gt;. Install natively: &lt;code&gt;/plugin marketplace add murilomn58/Claude-Spec-Driven-Fase-Zero&lt;/code&gt; then &lt;code&gt;/plugin install adp-fase-zero@adp&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The full protocol&lt;/strong&gt; (all six phases, the map, the secrets hook) is a paid plugin at &lt;a href="https://claudespecdriven.com.br" rel="noopener noreferrer"&gt;claudespecdriven.com.br&lt;/a&gt; (R$47, about USD 9).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One honest caveat: I built this for Brazilian devs first, so the site and the plugin content are in Portuguese. The methodology isn't language-bound, and Claude follows PT-BR skills fine while responding in your language, but if that's a dealbreaker, the free repo plus this post gives you everything you need to build your own.&lt;/p&gt;

&lt;p&gt;Where would you place the human gates in your loop? That's the design question I keep coming back to, and I'd genuinely like to read other answers.&lt;/p&gt;

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