0%

Vibe Coding with Context-Driven Development using Conductor for Gemini CLI

In the Vibe Coding era, AI often lacks understanding of overall project context, architectural constraints, and long-term goals, leading to inconsistent outputs, frequent context loss, and potential architectural drift. To address these challenges, methodologies like Spec-Driven Development (SDD) and Context-Driven Development (CDD) have emerged, advocating for "writing specifications first, then letting AI generate code according to specs." This article introduces the SDD and CDD methodologies, their implementation in tools like Spec-Kit, OpenSpec, and Gemini Conductor, and finally presents a Gemini Conductor workflow setup tool create-conductor-flow.

423621769737783_.pic_hd

Background: From Vibe Coding to Structured AI Programming

In February 2025, Andrej Karpathy coined the term "Vibe Coding," advocating to "forget that code exists." The concept quickly went viral but also brought massive technical debt—what the industry calls "Vibe Coding Hangover."

In response, two methodologies emerged in the second half of 2025:

  • Spec Driven Development (SDD): Represented by GitHub Spec-Kit, AWS Kiro, and Tessl
  • Context Driven Development (CDD): Represented by Google Conductor

Both attempt to introduce structure and discipline to AI coding, but from different angles.

SDD (Spec Driven Development)

An AI-assisted programming paradigm that writes structured requirement specifications before coding, making specs the single source of truth for both humans and AI. Based on the lifecycle and authority of specifications, it's divided into three progressive levels.

"Specs don't serve code; code serves specs"

Core Principles:

  1. Intent First: Define "what" and "why" before "how"
  2. Spec as Truth: Specifications are the anchor point for development
  3. Behavior-Oriented: Specs describe system behavior, constraints, interface contracts, and success criteria
  4. AI Execution: AI generates, validates, and regenerates code based on specs
  5. Traceability: Full chain traceability from intent to requirements to design to tasks to code

CDD (Context Driven Development)

An AI-assisted programming framework that enables AI to understand complete project context through systematic management of three context layers (project-level, task-level, history-level). The core proposition is that humans maintain understanding and control of the code.

"AI analyzes the entire project, not just single lines of code"

Core Principles:

  1. Context Persistence: Transform context from ephemeral chat to persistent Markdown files
  2. Intent Before Implementation: Formalize requirement specs and execution plans before coding
  3. Continuous Feedback Loop: Borrowing from DevOps continuous integration concepts
  4. Human Control: Developers make architectural decisions; AI is an advisor, not a replacement
  5. Context as Code (CaC): Code and documentation serve both humans and AI
  6. Full-Stack Context Awareness: Understanding the codebase as a whole, not individual files

Simple Analogy

Method Analogy
Vibe Coding Telling a contractor "just make it look nice"
SDD Drawing complete construction blueprints first, workers follow strictly
CDD Taking the contractor on a tour of your home to understand your style preferences before starting

CDD is more like adding contextual constraints to Vibe Coding, while SDD uses specification documents as constraints. Both aim to solve the chaos of Vibe Coding but take different paths.

1
2
3
4
5
6
7
8
9
10
11
The opposite of Vibe Coding


"Formalize intent before AI coding"


├── SDD Perspective: Emphasizes spec documents as source of truth
│ (Spec = Requirements + Constraints + Acceptance Criteria + Design Decisions)
└── CDD Perspective: Emphasizes quality of context provided to AI
(Context = Project History + Architecture + Conventions + Specs + Plans)

Two Dimensions

1
2
3
4
5
6
           Strong Context (Context Depth) CDD

|
Weak Spec ──────┼─────────→ Strong Spec (Spec Strength) SDD
|
Weak Context
Dimension CDD SDD
Focus Input: How much AI knows about existing project Output: How to constrain AI generation
Core Question "Does AI understand my codebase?" "Does AI generate according to specs?"
Emphasis Understanding what you already have Defining what you want to build

Combined Usage

Four Possible Combinations:

Combination Description Effect
Low CDD + Low SDD Vibe Coding Chaos
High CDD + Low SDD Pure context assist AI understands project but freestyles
Low CDD + High SDD Pure spec-driven Has specs but doesn't understand existing code
High CDD + High SDD Both combined AI both understands project and follows specs

Google Conductor claims CDD, but it's actually SDD with context engineering. In the words of the Google Conductor team: "Rather than jumping straight into implementation, you first formalize your intent. CDD unlocks context-driven development by moving project context from the chat window to the codebase itself."

Three Levels of SDD (Bockeler/Fowler Framework)

Birgitta Bockeler (Distinguished Engineer at Thoughtworks) proposed the three-level SDD framework on Martin Fowler's website:

Level One: Spec-First

Write specifications before AI coding as guidance for the current task. After task completion, specs are typically discarded.

  • Specs are temporary tools
  • Subsequent changes require creating new specs
  • Humans still directly maintain code
  • Representative tools: Kiro, Spec-Kit, Antigravity

Level Two: Spec-Anchored

Specs persist after feature creation, continuously edited during maintenance and evolution phases. Humans and AI jointly modify specs and code.

  • Specs become long-term documentation for features
  • Specs and code maintained in parallel
  • Both are editable artifacts
  • Representative tools: Conductor (archive retention mode), Tessl (claimed goal)

Level Three: Spec-as-Source

Specs become the primary editable artifact; humans only maintain specs and never directly touch code.

  • Code marked with // GENERATED FROM SPEC - DO NOT EDIT
  • Human interaction with code only through specs indirectly
  • The most radical form of SDD
  • Representative tools: Tessl (exploring)
Level Spec Lifetime Code Status Human Edits
Spec-First Temporary Primary artifact Spec + Code
Spec-Anchored Persistent Parallel artifact Spec + Code
Spec-as-Source Permanent Derived product Spec only

SDD Tool Comparison

All four tools implement Spec-Driven Development (SDD), but with different design philosophies and strictness levels:

Tool Publisher SDD Level Core Philosophy
Kiro Amazon Spec-First EARS syntax + Steering guardrails
Conductor Google Spec-First Project-level context enhancement, TDD built-in
Spec Kit GitHub Spec-First Constitution-driven strict specs, TDD built-in
OpenSpec Fission AI Spec-Anchored Delta Specs incremental iteration

Tool Positioning Map

Tool Project-Level Rules Feature Spec
Spec Kit Anchored (Constitution) First (branch lifecycle)
Kiro Anchored (Steering) First (task lifecycle)
Conductor Anchored (product.md, tech-stack.md) First (track lifecycle)
OpenSpec None Anchored (system source of truth)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  Pure CDD                                                   Pure SDD
│ │
▼ ▼
┌─────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────┐
│ Cursor │ │Antigravity│ │Conductor │ │ OpenSpec │ │ ? │
│ │ │ Kiro │ │Spec-Kit │ │ │ │ │
└─────────┘ └───────────┘ └───────────┘ └───────────┘ └───────┘
│ │ │ │ │
─────┴────────────┴───────────────┴──────────────┴────────────┴─────
Context Engine Spec-First Spec-First Spec-Anchored Spec-as-Source
(No spec flow) (Use & discard) (Partial reuse) (Archive & reuse) (Code not editable)



Progressive Relationship:

1
2
3
4
5
6
No Spec → Spec-First → Spec-Anchored → Spec-as-Source
│ │ │ │
│ │ │ └── Specs replace code
│ │ └── Specs and code coexist, long-term maintenance
│ └── Specs guide tasks, discarded after completion
└── Pure context, no spec flow

How to Choose

SDD Level Context Loaded Per Task Token Consumption
Spec-First Current task's spec + project rules Lower
Spec-Anchored Current task's spec + all related existing specs / specs index + project rules Higher
Spec-as-Source Complete specs (code derived from spec, requires full understanding) Highest

The larger the system, the more extensive the specs/ directory becomes, and the higher the context cost per change—even hierarchical loading cannot fully address this. This is a trade-off.

Therefore, Spec-First is currently the most cost-effective level. Spec-Anchored is suitable for scenarios that require extremely high consistency and are willing to bear the token cost. The specific additional cost needs to be evaluated through actual testing.

How to Use Conductor

Gemini CLI

1
gemini extensions install https://github.com/gemini-cli-extensions/conductor --auto-update

Other Coding Agents

1
npm create conductor-flow

Or if you prefer the shorthand alias:

1
npx conductor-init

References