MyAIDevelopment · Product · Operations notes

Using AI as a Development System, Not Just a Development Tool

The effectiveness of AI coding tools depends less on “how quickly they write code” than on the roles and responsibilities they receive and the verification loop in which they operate.

Basic Perspective

Rather than treating AI as one all-purpose developer, separate its roles as follows.

flowchart TD
    H[Human<br/>Product decisions and final approval] --> M[Manager / Dispatcher]
    M --> W[Worker<br/>Implementation]
    M --> R[Researcher<br/>Research]
    W --> V[Reviewer<br/>Independent verification]
    V --> I[Integration]
    I --> P[PR / Merge]
    P --> E[Process Evaluation]
    E --> M
Layer Core Responsibility
Human Product direction, priorities, approval of high-risk actions
Manager / Dispatcher Interpret requests, break down tasks, select difficulty, model, and role
Workspace Manager Create and clean up Git branches/worktrees
Worker Implement changes
Researcher Investigate existing code, APIs, and structure
Reviewer Independently verify the implementation
Integration Integrate results and check for regressions
Process Evaluator Analyze cost, failures, and recurring problems

The Most Important Operating Principles

1. Use the Repository as Memory Rather Than the Conversation

Long conversations eventually get compacted or interrupted. Store decisions that must last in the repository.

Repository
├─ CLAUDE.md        Claude Code entry point
├─ AGENTS.md        Codex entry point
└─ .ai/
   ├─ PRODUCT.md
   ├─ ARCHITECTURE.md
   ├─ GIT_POLICY.md
   ├─ TEST_POLICY.md
   ├─ DECISIONS.md
   └─ CURRENT_STATE.md

In other words, treat the repository as long-term memory and the session as temporary working memory.

2. Separate Implementation from Verification

Having another agent inspect and verify the actual diff is safer than letting the implementing agent conclude, “I built it, and it works.”

flowchart LR
    A[Worker] --> B[Build / Test]
    B --> C[Independent Reviewer]
    C -->|Fail| A
    C -->|Pass| D[PR / Integration]

3. More Agents Do Not Necessarily Make a Better System

Handoffs between agents also consume tokens and require explanation. One worker and one reviewer may be enough for a small change.

The goal is not maximum parallelism, but lower Cost per Accepted Change while maintaining quality.

The Basic Unit When Combined with Git

The most intuitive unit of feature development is as follows.

1 Feature
↕
1 Branch
↕
1 Worktree
↕
1 Main Development Session

A session can be replaced, while its branch and worktree can remain until the feature is complete.

Good Tasks to Delegate to AI

Responsibilities Humans Should Retain

The AI section of this blog covers how to build a more predictable development system by clearly separating authority and responsibility, rather than “how to give AI more authority.”