Turn Specs into Sub-Agent Tasks Without Guessing: The AI-SDLC Design Phase
As AI coding agents move from single-prompt assistance to parallel multi-agent execution, teams need a rigorous handoff so sub-agents don't re-derive context or guess. This design-phase process shows a concrete, tool-agnostic pattern (with Claude Code and Codex specifics) for making parallel agent development deterministic and reviewable by humans.
In the fourth post of the AI-SDLC series, the author details how the design phase takes the spec, decision record, and fixed code baseline from requirements, and produces a technical plan plus a task breakdown that drives parallel development by multiple sub-agents. The core principle: sub-agents see only their assigned task, with no design-phase conversation or sibling tasks, so the design must be complete enough that development needs no guessing.
The post explains the seven required deliverables, a fixed template for per-module technical design documents with five content parts and four Mermaid diagrams, and an acceptance mapping table ensuring each spec criterion maps to a design part and a test. It also addresses how to stop agents from pulling in out-of-scope features, breaking tasks by observable business behavior rather than by platform or layer, and writing machine-readable YAML task blocks with read refs, write scope, done-when conditions, and verify commands. A notable change: the author removed a slow in-phase review loop, now generating the plan once and having a human judge it, while the CLI only checks structural order (duplicate IDs, missing dependencies, cycles).
The article also covers handling incomplete materials by pausing affected tasks, distinguishing what must exist before coding from what only arrives after, and the single confirmation step where the developer authorizes the task-graph scope, isolated working copy, and local checks.
Removing the in-phase review loop and trusting a single human review reflects a pragmatic trade-off: agent self-review loops are far more expensive in time than a one-shot generation that may be imperfect, and human feedback becomes the training signal for the next generation.
The emphasis on 'no guessing' makes explicit that context isolation for sub-agents is the fundamental constraint; every drafting choice, from YAML blocks to read_refs, exists to compensate for the sub-agent's lack of parent conversation.
Breaking tasks by business behavior instead of by platform or layer is a generalizable principle: verification capability, not code structure, should drive task boundaries, even when that means accepting larger tasks for joint validation.
The distinction between missing materials that block coding and those only obtainable after code exists (real-device effects, live redirects) prevents needless pauses and keeps the design phase moving without waiting on external teams.
The plan is generated only once, and I haven't seen this pitfall covered in your repository. If the testing intent isn't written into the task description, will the sub-agent still be able to see that acceptance criterion when it starts work?