I have a confession: I’ve been telling you to “vibe code,” but I’ve been missing a critical piece of the puzzle.
For the last year, most of us have been treating AI like a smart intern in a different room. You write a requirement, paste it into a chat, copy the code back, and manually stitch everything together across files.
It works for small tasks. But it doesn’t scale to a real product with dozens of files, shared state, and architectural decisions that compound. That isn’t building. That is manual labor disguised as innovation.
But last week, I sat down with Dheeraj Sharma, a product leader who just shipped a paid Chrome extension (SubflowAI) to the store in 19 days. He hasn’t written production code in over a decade. When we looked at his workflow, I realized the game has changed.
We are moving away from “Chatting” and toward Product Governance.
The roadmap for today’s deep dive:
The Vibe Shift: Moving from being a “Glue PM” to an “Intent PM.”
The Chain of Command: Why your PRD needs an Executive Branch (the CLAUDE.md).
The Governance Stack: A real look at the rules that prevented a $2,800 mistake.
The 19-Day Build: Dheeraj’s guest tutorial on shipping SubflowAI.
The 2026 Collab Model: How to lead a codebase without getting lost in the syntax.
Let’s get into it. 👇
This collaboration was possible using DraftKit.app.
Starting a piece like this usually takes days of back and forth. Instead of staring at a blank page, we fed DraftKit our newsletters and Dheeraj’s original message. In minutes, it generated the smart draft that became the foundation for this entire post.
If you want to stop managing outlines and start shipping content, try it at DraftKit.app.
Stop Calling it “Coding”
Most PMs and CEOs look at a terminal and see a “Dev-only” zone. They think tools like Claude Code are just faster ways to write Python.
They are wrong.
For a PM, this is an Autonomous Product Manager. The shift is subtle but massive: You aren’t writing syntax. You are giving the codebase a set of rules and watching it upgrade itself. Dheeraj calls this “Vibe Coding,” but for those of us leading products, it is about Intent.
In the old way (ChatGPT), you are the glue. You have to remember everything. In the new way (Claude Code), the AI lives inside your project. It reads your files, understands your architecture, and remembers your rules. It can propose a plan and execute by reading files, writing code, running tests, committing changes. All happens within the same conversation.
The Secret Weapon: The CLAUDE.md File
During our collaboration, Dheeraj corrected me on something important. I initially called the CLAUDE.md file “the new PRD.” He pushed back:
“It’s not a PRD. A PRD defines what to build. CLAUDE.md defines how the AI works on your project including the constraints, the conventions, the non-negotiables. It’s more like a constitution than a requirements document.“
That distinction matters. A PRD is a decision document that lives in Notion, Jira, or Google Docs or even your project as markdown files. A CLAUDE.md file lives in the codebase itself. It sits right next to the code it governs. It’s not 50 pages of user stories. It’s a focused set of rules that the AI reads on every single session.
This is a simple text file that acts as the Project Memory. As a PM, you don’t touch the complex code files. You own the Rules of Engagement. You write your non-negotiables in plain English right there in the repo.
By using a CLAUDE.md file, you aren’t just giving the AI context; you are giving it a constitution. If you write in that file: “Every new feature must include an automated tracking event,” the AI will follow that rule consistently. Across every session, every developer, every feature. You don’t need to remind it. It reads the file every time it starts.
That is Product Governance at scale. You aren’t “checking” the work anymore; you are defining the constraints that make mistakes impossible.
What Actually Goes in a CLAUDE.md File
Here’s what surprised me: It’s not abstract product vision. It’s specific, operational rules. Here’s a real excerpt from SubflowAI’s CLAUDE.md:
Security Principles (MUST FOLLOW)
1. Cost-ordered pipeline: Free/cheap checks FIRST, KV reads LAST.
2. Backward compatibility is non-negotiable: Every server change must work with the oldest extension version in the wild.
3. Auth on every endpoint: Every endpoint must validate license.
4. URL whitelist for server-side fetches: Never let the server fetch arbitrary URLs (SSRF prevention).Dheeraj and I see this from two sides:
The Dev Side (Dheeraj): “This file gives the AI enough context to work fast without making mistakes. When I’m implementing a new endpoint at 11pm, I don’t need to remember all the security rules. They’re in the file. Claude reads them before I even start.”
The PM Side (Me): “This is how I enforce my vision without touching code. If I write ‘backward compatibility is non-negotiable,’ every piece of code the AI generates respects that constraint. I’m governing outcomes, not reviewing pull requests.”
The distinction is important: a CLAUDE.md file governs how work gets done. A PRD governs what work gets done. You need both. But for the first time, a PM can directly influence the how, in plain English, committed to the repo.
The Case Study: Building SubflowAI
Guest Tutorial by Dheeraj Sharma
I’m going to pass the mic to Dheeraj. He’s going to walk you through exactly how he built and shipped SubflowAI (a tool for Substack writers) using this stack.
Take it away, Dheeraj Sharma.
“I shipped a Chrome extension to the Chrome Web Store in January 2026. It has paying subscribers now. My last serious programming was over a decade ago. I can read code, but write production software? That wasn’t in my skill set anymore.
Until I discovered Claude Code.
What Vibe Coding Actually Means
The term ‘vibe coding’ describes working with AI tools not as code generators, but as thinking partners.
Traditional AI: ‘Write me a function to validate emails.’ You get code, you copy-paste it.
Vibe Coding: ‘I’m building a license system. I need to check keys against an API and cache the results. I’m worried about security. Help me think through the architecture.’
You get a conversation. The AI asks clarifying questions. You refine the ‘vibe’ together.
The Workflow That Worked
1. Re-establishing Context
Every session began the same way. AI tools don’t have perfect memory across sessions, so I’d re-establish where we were in the terminal:
‘I’m continuing work on SubflowAI. Current status: Dashboard UI is complete. Today’s goal: Build the endpoint that calls Gemini. What questions do you have before we start?’
This took 30 seconds but saved hours of confusion.
2. Discuss Before Implementing
Before writing any code, I’d discuss the approach. I’d ask about the tradeoffs between calling an API directly from the extension versus routing it through our server. We’d go back and forth. Sometimes I’d push back with product constraints the AI didn’t know about. The conversation was the value.
3. Testing and Refinement
After each piece, I’d test it manually. If the generation worked but timed out on long content, I’d report back: ‘The generation works, but long content causes a timeout. How can we handle that?’
What I Got Wrong (And How AI Caught It)
The real value of this collaboration became clear when it caught problems I would have shipped.
The 108 Console Logs: I added debugging notes everywhere and forgot them. When I asked Claude Code to check for production readiness, it found 108
console.logstatements. It proposed a single utility to wrap all logging and disable it with one flag.The 2,880 API Calls: My first license check pinged the API every 30 seconds. The AI asked: ‘What happens if a user leaves the tab open?’ The math showed 288,000 calls per day for just 100 users. We redesigned it to only check when users take actions, a 99% reduction in cost.
The Security Bypass: I only validated licenses when someone clicked ‘Schedule.’ I missed that someone could subscribe for a month, schedule 100 posts, and cancel. Claude caught this: ‘What happens to scheduled notes if the license expires before they post?’ It forced us to add a check at the moment of publishing.
What I Built
The final product has a full Dashboard with four views, a rich text editor, a visual calendar, and a backend for license validation. It is roughly 4,500 lines of code. It took 30 days of evenings and weekends, and a $5 infrastructure cost at launch.”
About Dheeraj
Dheeraj is a product leader and the creator of SubflowAI, a tool helping Substack writers automate their growth. You can find him diving deep into AI-led development at his newsletter, GenAI Unplugged.
Why this is the Future of Product Management
Dheeraj’s story isn’t about an engineer getting faster. It is about a Product Manager taking control of the codebase.
As PMs, we have been trained for years in the exact skills that make this work:
Requirements Clarity: Translating a user problem into a clear description. The clearer your prompt, the better the output. PMs have been training this muscle for years.
Edge Case Thinking: Asking “what if...” until the solution is bulletproof. Every “what if” Dheeraj asked became an architecture decision that prevented a bug.
User Empathy: Knowing when a feature is technically elegant but actually useless. Dheeraj chose one-click scheduling with preset time slots over a complex date-time picker. He chose not because it was easier to build, but because Substack writers don’t want to think about scheduling.
Scope Discipline: AI tools love to over-engineer. They’ll add error handling for scenarios that can’t happen, build abstractions for one-time operations, and design for hypothetical future requirements. The PM skill of saying “that’s too much, what’s the simplest version?” is critical. Without it, your codebase bloats fast.
The Product Manager + Builder Collaboration Model
This is how we recommend you split the work if you are collaborating with a technical partner in 2026.
Why this is a win for CEOs and Founders
If you are a founder, your biggest fear is “Translation Loss.” You say A, the dev builds B.
With a CLAUDE.md file, your vision is no longer a suggestion; it is a technical constraint. The cost of changing direction drops dramatically. If you update a rule in CLAUDE.md, every new piece of code follows the new rule automatically. Existing code still needs refactoring. But now you can tell the AI “update the codebase to match the new rule in CLAUDE.md” and it understands the full scope of what needs to change.
The boundary between “Idea” and “Prototype” has shifted. You don’t need to be a coder to lead a codebase. You just need to know how to define the rules.
The Practical Split: CLAUDE.md vs PRD vs Tech Spec
This is where teams get confused. The CLAUDE.md file doesn’t replace your other documents rather it complements them.
The 2026 Strategic Roadmap: Product Governance
Q1: The Constitutional Setup Stop writing PRDs for internal tools. Install Claude Code and create your first CLAUDE.md file. Define three non-negotiable security and design rules in plain English.
Q2: Spec Conversion Rewrite your ambiguous User Stories as structured System Prompts. Create a “Master Context File” that defines your design tokens and business logic.
Q3: Systems and Governance Architect a multi-agent workflow to automate a repetitive manual process. Define the “State Object” that agents pass between them to ensure data integrity.
Q4: The Architect Standard Update your organizational standards. Use your “Builder” experience to advocate for AI-Native architecture rather than just AI-wrapper features.
Final Thoughts: The Architect has Arrived
We have definitively exited the “Play Phase.” The true value of this technology lies in the architecture, not the chatbox. We are witnessing the end of “Managing Products” and the birth of “Building Intelligence.”
The tools of creation have been democratized, but the discipline of architecture has never been more elite. You can remain a manager of tickets, or you can become an architect of intelligence. The choice is binary.
What would you build today if your vision was committed to the repo and the AI read it before every single session?
Save The Date: Cozora AI Summit
I will be part of Cozora’s AI Summit on March 27. I will be presenting a session on building with AI together with Dheeraj Sharma.
Proof Of Work
I have been tracking the community’s latest builds in the Substack chat. The caliber of technical execution is incredible. These aren’t just articles; they are architectural blueprints for the next wave of AI products:
The Deep Dives
Dee McCrorey wrote a sharp analysis on the rise of the fractional specialist. Andrew explains how AI tools allow experts to act as “Fixer-Uppers” who resolve complex product debt without the overhead of a full-time hire. Read it here.
Nirav Bhatt wrote a provocative look at the end of the traditional developer stack. Nirav breaks down whether Claude Code is just an assistant or a total replacement for the manual layers of software engineering. Read it here.








Thank you, Elena, for giving me the opportunity to contribute in this article.
This is interesting, but also a bit risky if taken too literally.
turning prompts into PRDs works well when the problem is already clear - you’re compressing the translation layer.
but in most teams, the harder part is figuring out what should be built and why. that still needs messy thinking, context, and debate.
otherwise it risks becoming faster execution on something that wasn’t thought through enough.