Skip to content

dongbumlee/sdlc-harness

v1.0.1MIT

SDLC Harness — an agent-driven multi-agent system that orchestrates your entire software development lifecycle with harness-quality QA, 19 specialized agents, and 16 domain skills.

SDLC Harness

License: MIT copilot plugin install VS Code GitHub Copilot CLI

From first commit to final release, Harness orchestrates your entire software development lifecycle — so you can focus on building what matters.

SDLC Harness is a multi-agent orchestration system for GitHub Copilot that drives software projects through 9 SDLC phases using 19 specialized AI agents. It combines adversarial QA evaluation, live MCP-powered context, and iterative feedback loops to deliver production-quality code with enforced development standards.

Distributed as an Agent Plugin for VS Code and GitHub Copilot CLI. Install once — get all 19 agents, 16 skills, and the full SDLC workflow instantly.


Table of Contents


Quick Start

Install the plugin

VS Code

GitHub Copilot CLI

First use

Caution

Two VS Code settings are required:

SettingValueWhy
chat.agent.defaultApprovalautopilotWithout this, every tool call requires manual approval.
github.copilot.chat.virtualTools.threshold0Harness uses 7 MCP servers (~150+ tools). The default limit hides tools.

Open your project and bootstrap:

/agent harness
initialize workspace

Harness deploys MCP config, quality instructions, and prompt files, then asks for your project details (name, domain, stack) to generate copilot-instructions.md.

After Harness deploys .vscode/mcp.json, start the MCP servers and open a new chat session (Ctrl+L) — VS Code registers MCP tools at session start.

The repository includes the agent profiles in both supported locations:

  • .github/agents/ — Copilot CLI, GitHub Copilot App, and repository-level discovery.
  • com.github.copilot/agents/ — Agent Plugins-compatible package layout.

The two directories must remain identical. In Copilot CLI, use /agent and select harness; @ is reserved for file references.


Architecture

Agent system (19 agents)

A single user-facing agent — Harness — orchestrates specialized workers, each scoped to a specific SDLC phase with least-privilege tool access.

flowchart TD
    Request["Engineer Request"] --> H["Harness"]

    H --> A["Analyst<br/>Phase 1-2"]
    H --> S["Scaffolder<br/>Phase 3"]
    H --> Dep["Deployer<br/>Phase 3+8"]
    H --> I["Implementer<br/>Phase 4"]
    H --> Doc["Documenter<br/>Phase 5"]
    H --> QA["QA Coordinator<br/>Phase 6"]
    H --> RAI["RAI Reviewer<br/>Phase 7"]
    H --> R["Release Manager<br/>Phase 8-9"]

    QA -->|parallel| R1["Architecture"]
    QA -->|parallel| R2["Azure Compliance"]
    QA -->|parallel| R3["Code Quality"]
    QA -->|parallel| R4["Security"]
    QA -->|parallel| R5["Test Coverage"]
    QA -->|parallel| R6["Req. Completeness"]
    QA -->|parallel| R7["UX & A11y"]
    QA -->|parallel| R8["LLM Behavior"]
    QA -->|parallel| R9["Deploy Readiness"]

    style H fill:#4A90D9,color:#fff
    style QA fill:#E67E22,color:#fff
RoleAgentsPhase
OrchestratorHarnessRoutes all work
Phase workersAnalyst, Scaffolder, Deployer, Implementer, Documenter, QA Coordinator, RAI Reviewer, Release Manager1–9
QA reviewers (9)Architecture, Azure Compliance, Code Quality, Security, Test Coverage, Requirements Completeness, UX/A11y, LLM Behavior, Deployment ReadinessPhase 6
StandaloneQA Bug Checklist ReviewerCross-cutting

9-phase SDLC workflow

PhaseNameAgent
1Requirement AnalysisAnalyst
2DesignAnalyst
3Repo Structure & CI/CDScaffolder
4Implementation & TestsImplementer
5DocumentationDocumenter
6QA ActivitiesQA Coordinator → 9 reviewers
7Responsible AI ReviewRAI Reviewer
8Release PreparationRelease Manager
9PublishRelease Manager

QA evaluation engine

Inspired by Anthropic's harness design research:

  • Generator-evaluator separation — 9 independent reviewers run in parallel, each in its own context window with no anchoring bias.
  • Adversarial posture — every reviewer has explicit anti-leniency instructions.
  • Numeric scoring — each reviewer scores 1-10. Security requires ≥8, others ≥7. Any Critical finding = automatic fail.
  • Iterative loops — QA → fix → targeted re-QA, up to 3 rounds.
  • Weighted composite(security × 1.5 + sum(others)) / 8.5. Composite < 7 = fail.

See docs/harness-design.md for the full research-to-implementation mapping.

MCP integration (7 servers)

Agents fetch live context from external tools — no stale training data:

ServerPurposeUsed by
GitHub MCPSDK patterns, reference repos, code searchImplementer, Scaffolder, Analyst
Awesome-CopilotOWASP Top 10, Bicep best practices, Python standardsSecurity Reviewer, Deployer
Azure MCPValidate Azure resources, manage subscriptionsDeployer, Azure Compliance Reviewer
Azure DevOps MCPADO wikis, pipelines, work itemsQA Coordinator, Deployer
Microsoft Learn MCPAVM module docs, Azure service documentationDeployer, Documenter
Context7Current framework docs (FastAPI, React, etc.)Implementer, Analyst
PlaywrightBrowser automation for E2E testingQA Coordinator

How It Works

/agent harness
Implement the order history API from ADR-012.
  1. Harness identifies this as Phase 4, verifies the ADR exists, delegates to Implementer.
  2. Implementer fetches live SDK patterns (GitHub MCP), loads framework docs (Context7), writes code + tests.
  3. QA Coordinator spawns 9 reviewers in parallel — each scores 1-10 with adversarial posture.
  4. If any domain fails its threshold, Harness runs an iterative fix loop (up to 3 rounds).
  5. Documenter updates the ADR. Release Manager creates the PR.

Engineers stay in control — agents propose, engineers decide. Every subagent call is visible in Chat as a collapsible tool call.

See docs/workflow-guide.md for the full step-by-step walkthrough with sequence diagrams.


Cloud Packs

Cloud Packs are modular skill sets for specific cloud platforms. Each pack adds deployment, data access, and storage skills tailored to that provider.

PackSkillsStatus
Azuresdlc-azure-deployment, sdlc-cosmos-repository, sdlc-blob-storageIncluded
AWSsdlc-aws-deployment, sdlc-dynamodb-repository, sdlc-s3-storagePlanned
GCPsdlc-gcp-deployment, sdlc-firestore-repository, sdlc-gcs-storagePlanned

The Azure Pack metadata is bundled at packs/azure/pack.json; its three skills are also published in the root skills/ directory so current Agent Plugins clients discover them. To create a new cloud pack, use the packs/_template/ skeleton.


Canary Testing

SDLC Harness includes an E2E test framework for validating the harness itself. Canary specs define expected agent behavior for each SDLC phase.

  • 11 canary specs across bench/canaries/ (one per phase + catalog-specific tests)
  • 2 JSON schemas in schemas/ for validation (canary specs, cloud packs)
  • CI integrationcanary-test.yml validates spec schema on PRs touching agents/skills
  • Results stored as structured JSON in bench/results/
# Validate canary specs locally
python tools/validate_canaries.py

What's Included

Agents (19)

AgentDescription
HarnessOrchestrator — routes all SDLC work
AnalystPhase 1-2: Requirements & design
ScaffolderPhase 3: Repo structure from templates
DeployerPhase 3+8: Azure infrastructure (Bicep/AVM)
ImplementerPhase 4: Production code + tests
DocumenterPhase 5: ADRs, API docs
QA CoordinatorPhase 6: Dispatches 9 parallel reviewers
RAI ReviewerPhase 7: Responsible AI assessment
Release ManagerPhase 8-9: Changelog, PR, publish
Architecture ReviewerQA: Layering, dependency boundaries
Azure Compliance ReviewerQA: SDK usage, AVM, identity
Code Quality ReviewerQA: Naming, docstrings, dead code
Security ReviewerQA: OWASP, secrets, auth
Test Coverage ReviewerQA: Tests, coverage, assertions
Requirements Completeness ReviewerQA: All requirements addressed
UX & Accessibility ReviewerQA: ARIA, keyboard nav, a11y
LLM Behavior ReviewerQA: Prompt safety, grounding, citations
Deployment Readiness ReviewerQA: Error handling, perf, observability
QA Bug Checklist ReviewerStandalone: 338 real bug patterns

Skills (16)

SkillPurpose
sdlc-workspace-initBootstrap workspace (MCP config, instructions, prompts)
sdlc-project-scaffoldingScaffold projects from templates
sdlc-project-manifestCross-agent consistency manifest
sdlc-reference-catalogLiving catalog of approved libraries
sdlc-adr-authoringArchitecture Decision Records
sdlc-requirements-discoveryRequirements elicitation
sdlc-architecture-reviewArchitecture review checklist
sdlc-code-qualityCode quality review checklist
sdlc-security-reviewOWASP + Azure security patterns
sdlc-project-qaComprehensive product QA checklist
sdlc-qa-bug-checklist338 real production bug patterns
sdlc-reviewer-output-formatStructured YAML output for reviewers
sdlc-canary-runnerE2E canary test runner
sdlc-azure-deploymentAzure Pack: Bicep/AVM deployment
sdlc-cosmos-repositoryAzure Pack: Cosmos DB Repository Pattern
sdlc-blob-storageAzure Pack: Blob Storage + Queue operations

Quality instructions (14 files, auto-applied by file type)

LanguageCode qualityTest quality
Pythoncode-quality-pytest-quality
TypeScriptcode-quality-tstest-quality-ts
React/TSXcode-quality-tsxtest-quality-tsx
C#code-quality-csharptest-quality-csharp
Javacode-quality-javatest-quality-java
Gocode-quality-gotest-quality-go
Rustcode-quality-rusttest-quality-rust

Prompt files (6)

PromptPhaseRoutes to
requirement-and-design1-2Analyst
repo-structure-and-cicd3Scaffolder
deployment3+8Deployer
implementation-and-tests4Implementer
repo-documentation5Documenter
qa-rai-release6-8Harness

Prerequisites

ToolVersionPurpose
VS CodelatestPrimary IDE
GitHub Copilot + Copilot ChatlatestRequired extensions
Python3.12+Primary language for templates
uvlatestPython package manager
DockerlatestContainer builds, MCP servers
Git2.40+Version control
Azure CLIlatestAzure resource management
Azure Developer CLI1.18.2+azd up provisioning
Bicep CLIlatestInfrastructure-as-Code

Conditional: Node.js 20+ / pnpm for TypeScript/React projects.


Adopting in Your Repo

Option A: Plugin install (recommended)

# Register the marketplace once
copilot plugin marketplace add Dongbumlee/sdlc-harness

# Install or update the plugin from the marketplace
copilot plugin install sdlc-harness@sdlc-harness

Then open any project and run:

/agent harness
initialize workspace

Harness generates copilot-instructions.md, deploys quality instructions and prompt files.

To update the plugin later:

copilot plugin marketplace update sdlc-harness
copilot plugin install sdlc-harness@sdlc-harness

copilot plugin install Dongbumlee/sdlc-harness still works today, but Copilot CLI marks direct repository installs as deprecated. Use the marketplace form to remain compatible with future CLI releases.

Option B: Manual copy

  1. Copy .github/agents/, skills/, .github/prompts/, .github/instructions/, .design/, .vscode/mcp.json
  2. Set <PROJECT_NAME> in .github/copilot-instructions.md
  3. Select quality instruction files matching your stack

Adoption checklist

  • Install plugin or copy files
  • Run /agent harness or /sdlc-workspace-init to generate workspace files
  • Review .github/copilot-instructions.md
  • Start MCP servers, open new chat session
  • Enable branch protection on main

Contributing

SDLC Harness development happens on the evo branch.

Repository structure

com.github.copilot/   ← Copilot-specific agents
skills/               ← Portable Agent Plugins skills
plugin.json           ← Root plugin manifest
bench/canaries/       ← E2E canary test specs
schemas/              ← JSON schemas for validation
tools/                ← Validation scripts
docs/                 ← Architecture docs, specs, guides

CI checks

WorkflowPurpose
canary-test.ymlValidates canary spec schema on PRs touching agents/skills
bump-plugin-version.ymlManually bumps the plugin version and synchronizes marketplace metadata

To publish a plugin update, open Actions → Bump Plugin Version → Run workflow, choose patch, minor, or major, and run it from the branch to update. The workflow updates plugin.json, .claude-plugin/marketplace.json, creates a matching vX.Y.Z tag, and pushes the commit to that branch.

Key rules

  • VSIX distribution is retired — do not recreate vscode-extension/, sync-check.yml, or build-vsix.yml. The repo ships as a root Agent Plugins package via plugin.json, skills/, and com.github.copilot/, with .claude-plugin/marketplace.json providing marketplace metadata.
  • Agent/skill changes require corresponding canary spec updates
  • All QA reviewers emit structured YAML output (see sdlc-reviewer-output-format skill)

License

MIT