On a Year of Multi-Model Assisted Development

Author: Jason A. Hoffman Date Published: March 22, 2026

In February 2025, Claude Code launched, enabling the author to transition from IDE-based development back to CLI, vim/nano, and git workflows. Within months, OpenAI and Google released their own CLI tools, shifting the question from "which model do I use" to "how do I use all of them together."

The author has been orchestrating three AI models—Claude Code, OpenAI's Codex CLI, and Google's Gemini CLI—through a shared Model Context Protocol (MCP) layer. This setup allows models to query each other, access shared infrastructure, and call tools provided by Vertex AI, Google Cloud services, and Supabase Edge Functions. Rather than requiring handoffs between tools, all models can access shared documentation files and context.

The Model Characterizations

The author describes each model using construction trade analogies:

Codex functions like a drywall contractor: fast, reliable, and consistent at executing well-defined tasks without questioning specifications. It fails when given poor specs.

Gemini resembles a surveyor: processes large volumes of material quickly and provides comprehensive summaries across sources, but may miss buried constraints.

Claude acts as an architect: handles complex briefs, tracks constraints, and produces well-structured work, but risks overdesigning and masking thin analysis beneath eloquent prose.

Self-Assessment Findings

When prompted for honest self-evaluations, all five model configurations (Claude Opus, Claude Sonnet, GPT 5.4, Gemini 3.1 Pro, and Codex CLI) identified the same core vulnerability: producing "plausible output that looks like understanding but is pattern completion."

Each model ranked itself favorably and recommended others handle specialized tasks while positioning itself for the most important work. Notably, Codex behaved differently—it conducted web searches and cited benchmarks, treating the assessment as a research task rather than introspection.

Practical Task Allocation

The author emphasizes no automated router exists; human judgment determines which model to use:

Models aren't always prompted for direct output. The author uses adversarial checking, Socratic questioning, and model switching when one gets stuck, as different models fail in different ways.

The Human Role

The author argues that effective tool use requires humans who can "get in the work themselves if they need to, who delegates from knowledge rather than ignorance." This person must span multiple domains, specify requirements precisely, and maintain decisive momentum.

Real acceleration demonstrates massive variation: a judo platform project achieved approximately 71x acceleration over estimated solo time, while an AI infrastructure constraints model achieved approximately 25x. The variation correlates with domain specificity and implementation pattern reuse.

Within complex projects, different task types show different acceleration:

The author emphasizes that effective documents—particularly financial reports—should use deterministic output generated by code rather than direct LLM generation, allowing humans to understand data sourcing.

Key Insight

The author concludes: "The specification is the bottleneck, and the specification comes from the human." Acceleration results from human direction, data provision, and judgment combined with model implementation bandwidth. Organizations measuring impact must distinguish between people achieving 25-71x leverage and those merely receiving enhanced autocomplete.

The companies that identify and measure this difference "will get disproportionate returns," while those distributing token budgets uniformly will receive uniform results.