System Design

SDLC Orchestrator Architecture

A 7-phase software development pipeline with multi-provider support, quality-gated iterations, and per-provider cost tracking.

SDLC Pipeline Flow

Requirements

1. Analyst

2. PM

Dev 0

Dev 1

Dev N

4. Integration

QA 0

QA 1

QA 2

6. Feedback

Output

If completion score < threshold, loop back to Developers (Phase 3) with QA feedback

Phase Details

1

Analyst

Decomposes requirements into components with file lists and dependencies, acceptance criteria (testable, measurable), technical notes and complexity estimation.

2

Project Manager

Creates non-overlapping work assignments. Validates no file is assigned to multiple developers. Groups related files to minimize integration issues.

3

Developers (Parallel)

Each developer receives assigned files only and can only create files they are assigned (enforced). Receives team coordination context showing all assignments.

4

Integration Developer

Systematic cross-file verification: CSS/HTML class/ID matching, JavaScript/HTML element references, module/export issues, layout/structure integration.

5

QA Review (Parallel)

Each QA agent independently reviews ALL files (not just a subset). Checks critical integration points. Marks severity: critical, major, minor.

6

Feedback Coordinator

Deduplicates similar issues across QA agents. Calculates completion score using weighted algorithm. Decides if threshold is met or iteration needed.

Completion Scoring Algorithm

// Weighted completion score calculation

finalScore = (criticalScore × 0.40) +

(majorScore × 0.25) +

(minorScore × 0.15) +

(acScore × 0.20)

// Issue penalties per occurrence:

criticalScore = max(0, 1.0 - (criticalIssues × 0.50))

majorScore    = max(0, 1.0 - (majorIssues × 0.15))

minorScore    = max(0, 1.0 - (minorIssues × 0.05))

acScore       = passedCriteria / totalCriteria

Project Structure

# Multi-language SDLC orchestrator implementations

rdn-swarm/

src/

nodejs/

swarm.js                 # Main entry point

sdlc-orchestrator.js     # 2000+ lines - SDLC pipeline

providers/               # Anthropic, OpenAI, Google

swarm-config.json        # Role-specific configuration

python/

swarm.py                 # Main entry point

sdlc/                     # Orchestrator, config, types

sdlc/providers/           # Multi-provider support

go/

swarm.go                 # Main entry point

sdlc/orchestrator.go     # 2000+ lines - goroutines

providers/               # Zero external deps

dotnet/

Swarm.cs                 # Main CLI interface

SdlcOrchestrator.cs      # Full 7-phase pipeline

Providers/               # LLM provider interfaces

Extensible Provider Architecture

Anthropic

Claude Models

  • claude-sonnet-4-20250514
  • claude-opus-4-20250514
  • Native SDK integration

Google

Gemini Models

  • gemini-2.0-flash
  • gemini-1.5-pro
  • REST API integration

OpenAI

GPT Models

  • gpt-4o
  • gpt-4o-mini
  • OpenAI SDK integration

New providers can be added by implementing the base provider interface with createMessage() method

Concurrency Models

Node.js

Event Loop

  • Promise.all for parallel execution
  • Promise.race for semaphore slots
  • Executing array tracks active

Python

asyncio

  • asyncio.Semaphore(n) limits
  • asyncio.gather for parallelism
  • async with for clean acquire

Go

Goroutines

  • Channel-based semaphore
  • sync.WaitGroup for join
  • Zero external dependencies

.NET

async/await

  • SemaphoreSlim for limits
  • Task.WhenAll for parallelism
  • Native HttpClient API

Configuration (swarm-config.json)

// Per-role provider and model configuration

{

"roles": {

"analyst": { "provider": "anthropic", "model": "claude-sonnet-4-20250514" },

"projectManager": { "provider": "google", "model": "gemini-2.0-flash" },

"developer": { "provider": "anthropic", "model": "claude-sonnet-4-20250514" },

"integrationDeveloper": { "provider": "anthropic", "model": "claude-opus-4-20250514" },

"qaReview": { "provider": "google", "model": "gemini-2.0-flash" },

"feedbackCoordinator": { "provider": "openai", "model": "gpt-4o-mini" },

"summaryGenerator": { "provider": "anthropic", "model": "claude-sonnet-4-20250514" }

},

"orchestration": {

"maxDevelopers": 5,

"maxQAAgents": 3,

"maxIterations": 10,

"completionThreshold": 0.8,

"maxCost": 2.00

}

}

Quick Start

1

Clone Repo

git clone github.com/jreidell/rdn-swarm
2

Set API Keys

export ANTHROPIC_API_KEY=...
3

Edit Requirements

vim inputs/requirements.md
4

Run SDLC

node swarm.js --mode sdlc