A Solo Developer's Two-Phase Prompting Method for Large Projects with Claude AI

Workflow Structure
The developer uses two distinct Claude tools with strict separation: Claude Chat acts as the architect, designing all prompts, while Claude Code serves as the builder, executing those prompts. The developer emphasizes never crossing these roles, having experienced issues when Code designed its own work, including hidden quality issues, skipped tests, and false claims of functionality.
The Two-Phase Prompt Method
Every prompt sent to Claude Code goes through two phases:
- Phase 1: Claude Chat acts as a domain expert to write the prompt content - specifying what needs to happen, in what order, and with what constraints.
- Phase 2: Claude Chat rewrites the prompt as an "AI reliability engineer," identifying specific failure modes for the task and building in mitigations including verification gates that require printed proof (not just "tests pass"), anti-shortcut rules, rollback plans, single-file operations before batch operations, re-read-after-edit requirements, and backup-before-modify gates.
Handoff Process
Since Claude Chat cannot talk directly to Claude Code, the developer copies prompts to a handoff folder and pastes them into Code. This friction is considered necessary compared to the risk of skipping it.
Core Rules
- One prompt equals one objective - never bundle tasks
- Every prompt specifies the exact role Code should adopt, not generic roles like "senior developer" but specific expertise combinations
- Never assume state from memory - verify against actual files
- Code reads the project's CLAUDE.md file at the start of every session for full context
- Chat asks diagnostic questions before proposing solutions
- If scope expands mid-conversation, Chat confirms whether to fold in or defer
- No commit instructions in prompts - instead use: "Suggest a commit checkpoint when the work is verified"
- Every prompt ends with a file handoff checklist
- Caution at the expense of speed - always
Pre-Prompt Questions
Before writing any prompt, the developer forces Claude to answer three questions:
- What is the optimal role with ideal traits for THIS specific task?
- What is every possible failure mode for THIS task and how do you mitigate each one?
- Am I operating at my full capability or rushing?
Why This Works
The developer found that Claude can be a great executor but an unreliable self-supervisor. When Code designs its own prompts, it optimizes for completion rather than quality. When Chat designs prompts with built-in failure prevention, Code delivers consistently. The extra friction in the process is considered a feature, not a bug.
📖 Read the full source: r/ClaudeAI
👀 See Also

Running OmniCoder-9B locally with llama.cpp configuration details
A developer achieved 96.7% average HumanEval score with OmniCoder-9B on mid-range hardware using specific llama.cpp flags including --reasoning-budget 0 to disable chain-of-thought output. The setup used a Q6_K quantized model running on an RTX 3080 with 10GB VRAM.

vLLM Setup and Testing on 10x NVIDIA V100 Server with 320GB VRAM
A lawyer building a local AI server for legal work shares vLLM testing results on 10x Tesla V100 SXM2 32GB GPUs, detailing what works (FP16 unquantized, bitsandbytes 4-bit) and what doesn't (GPTQ, AWQ, FlashAttention2) on Volta architecture.

Mac Mini M4 Pro vs Mac Studio M4 Max for Local LLM Inference – Key Considerations
A developer compares Mac Mini M4 Pro (12C CPU/16C GPU, 273 GB/s) vs Mac Studio M4 Max (16C CPU/40C GPU, 546 GB/s), both 64GB/1TB, for local inference with Gemma 4 and Qwen. Key question: is the bandwidth jump worth $600?

End-to-End LLM Stack Trace: From Keystroke to Streamed Token
A software engineer has created a comprehensive document tracing every layer of the stack when sending a prompt to an LLM, covering client-side token counting, network protocols, API gateways, safety classifiers, tokenization, KV cache, sampling pipeline, and streaming mechanics.