Back to blog

AI-DLC Meets Agent Teams

By The Bushido Collective

Claude Code recently shipped Agent Teams - an experimental feature that coordinates multiple independent Claude Code instances working together. Each teammate gets its own context window, can message other teammates directly, and shares a task list for self-coordination.

AI-DLC now supports it natively.

Why Agent Teams Matter for AI-DLC

AI-DLC's construction loop already breaks work into units - focused pieces with clear completion criteria, each running in its own git worktree on its own branch. Previously, these units ran as subagents: constrained workers that execute within the parent session and can only report results back to the caller.

Agent Teams changes the game. Instead of subagents, each unit can now run as a full independent Claude Code session. The difference matters:

SubagentsAgent Teams
ContextShares parent's context budgetOwn full context window
CommunicationReports back to caller onlyMessages any teammate directly
CoordinationParent manages everythingShared task list, self-coordination
IsolationRuns within parent sessionFully independent session

For AI-DLC, this means a builder teammate working on the backend can message the reviewer teammate about an architectural decision. A test writer can ask the planner for clarification on acceptance criteria. Teammates collaborate like a real team, not just workers reporting to a manager.

How It Works

When CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS is enabled, the /execute loop operates as a team:

  1. The lead session reads the DAG of units and their dependencies
  2. For each ready unit, the lead spawns a teammate in that unit's git worktree
  3. Teammates work independently, executing the current hat's role (plan, build, review)
  4. Teammates communicate findings through the shared mailbox
  5. When a unit's criteria are satisfied, the teammate marks it complete and the lead advances the workflow

Each teammate automatically receives AI-DLC context via hook injection - the current hat instructions, intent, completion criteria, and workflow state. They start with full project context (CLAUDE.md, MCP servers, skills) just like any Claude Code session.

One Mode for the Entire Intent

To make Agent Teams work cleanly with AI-DLC, we moved the operating mode from individual hats to the intent level.

Previously, each hat carried its own mode. A builder defaulted to OHOTL, a reviewer to HITL. This scattered autonomy decisions across hat definitions and made it impossible to give a consistent permission model to teammates.

Now you choose your mode once during /elaborate. That single decision controls the permission model of every teammate spawned during construction:

AI-DLC ModeAgent Teams ModeWhat Happens
HITLplanTeammate plans, lead approves before any implementation
OHOTLacceptEditsTeammate works autonomously, lead can intervene
AHOTLbypassPermissionsFull autonomy, constrained only by completion criteria and backpressure

The mode is stored in the intent file and inherited by the entire workflow:

# .ai-dlc/my-feature/intent.md
---
workflow: default
mode: OHOTL
created: 2026-02-05
status: active
---

A senior engineer doing a routine refactor might choose AHOTL - teammates run with full autonomy, and backpressure hooks (linting, tests, type checks) enforce quality automatically. A team exploring unfamiliar territory might choose HITL - every teammate submits a plan that the lead reviews before implementation begins.

The human decides how much oversight they want. The mode is a property of the work, not the worker.

Dynamic Hat Discovery

We also made workflows more composable. Every hat now carries a description in its frontmatter:

---
name: "🔨 Builder"
description: Implements code to satisfy completion criteria using backpressure as feedback
---

During /elaborate, the system discovers available hats dynamically by reading all hat files rather than referencing a hardcoded table. Drop a new hat file into the hats/ directory with proper frontmatter and it becomes available for workflows immediately.

All thirteen built-in hats now describe themselves:

HatRole
ObserverGathers data about a bug through systematic observation
HypothesizerForms testable theories about bug causes
ExperimenterTests hypotheses through controlled experiments
AnalystEvaluates results and implements the confirmed fix
PlannerCreates tactical execution plans for upcoming bolts
BuilderImplements code using backpressure as feedback
ReviewerVerifies implementation satisfies completion criteria
Test WriterCreates failing tests that define expected behavior (RED)
ImplementerWrites minimal code to make tests pass (GREEN)
RefactorerImproves code quality while keeping tests green (REFACTOR)
DesignerCreates visual designs, UI mockups, and UX flows
Red TeamAttempts to break the implementation through security testing
Blue TeamFixes vulnerabilities identified by Red Team

Custom workflows reference hats by slug. The system resolves them at runtime:

# .ai-dlc/workflows.yml
adversarial:
  description: Security-focused build with attack/defend cycles
  hats: [planner, builder, red-team, blue-team, reviewer]

The Elaboration Flow

The /elaborate command now asks three questions that shape the entire construction loop:

  1. What are you building? Define the intent and completion criteria
  2. What workflow fits? Choose from dynamically discovered workflows and hats
  3. How much autonomy? Select HITL, OHOTL, or AHOTL for the entire intent

These decisions are captured once, persisted in the intent file, and inherited by every teammate throughout construction. No per-hat configuration. No mode drift. One conversation that defines how the team operates.

Try It

Enable Agent Teams in your Claude Code settings:

{
  "env": {
    "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
  }
}

Install or update the AI-DLC plugin:

/plugin marketplace add thebushidocollective/ai-dlc
/plugin install ai-dlc@thebushidocollective-ai-dlc --scope project

Then run /elaborate to define an intent with a mode, and /execute to start the team.

The changes are backwards-compatible. Without Agent Teams enabled, the construction loop uses subagents as before. Existing intents without a mode field default to OHOTL.


Units become teammates. Hats become roles. The intent becomes the team charter.