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

Run OpenClaw with a Local LLM on macOS – Guide for 16–24GB RAM
A practical guide to setting up a quantized Qwen 3.5 model with OpenClaw on macOS (16–24GB RAM), including a test skill for verification.

Research Shows Effective AI Prompting Is Cooperative Communication, Not Engineering
Peer-reviewed research indicates that effective prompting with AI models follows the same cooperative communication principles humans use, with Lakera's analysis showing most prompt failures stem from ambiguity rather than model limitations.

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.

Use Task Runners for Common Coding Tasks
Ham Vocke explains how to use simple bash scripts or Makefiles as task runners to standardize common commands like build, test, and format across repositories.