Skip to content

umaranit/agentic-sdlc-workshop

Repository files navigation

Agentic SDLC Workshop

A hands-on workshop run with multiple parallel teams of 5 or more — each team made up of a PM, Architect, Database Dev, Backend Dev, UI Dev, and QA Engineer — that uses a sequence of specialised GitHub Copilot agents to take a single business requirement all the way to tested, working code: BRD, design, work items (Epics → Features → Stories → Tasks), scaffold, implementation, and Playwright E2E tests — all generated as local files in the repo. Every team works the same requirement independently, then compares approaches and outcomes at the end.

Start Here — Reading Order

If you are new to this framework, read the documents in this order:

Step File What it gives you
1 README.md (this file) Overview, folder structure, setup, and quick-start commands
2 docs/PRE-SETUP-CHECKLIST.md Checklist of everything to prepare before the workshop begins
3 workshop-stack.md Fill this in before Phase 2. Your tech stack config — language, framework, database, frontend, paths. See docs/STACK-SETUP-GUIDE.md for step-by-step help and ready-to-copy examples.
4 docs/COMPLETE-WORKSHOP-FLOW.md Full step-by-step guide to running the workshop with all agents
5 docs/FACILITATOR-GUIDE.md Narration scripts and talking points (facilitator only)

Just running the workshop? Read steps 1 → 2 → 3 → 4.
Facilitating for an audience? Read all five in order.


What This Framework Does

Takes a single business requirement as input and produces:

  • A complete Business Requirements Document
  • A technical design document with architecture, data model, API contracts, and component structure
  • A full Agile work breakdown: Epics → Features → User Stories → Tasks (as local Markdown files)
  • Effort estimates for every work item with reasoning
  • A capacity-driven sprint plan
  • A working application scaffolded and implemented for your chosen tech stack
  • Playwright end-to-end tests covering the implemented features
  • Optional: the full work-item hierarchy synced to Azure DevOps Boards

Prerequisites

Requirement Notes
VS Code Latest
GitHub Copilot extension Latest (signed in)
Git Any recent version
Azure DevOps account Optional — only required if using the ADO sync phase
ADO MCP server Optional — only required if syncing work items to ADO Boards

Folder Structure

.github/
  agents/                         Copilot agent definitions
    brd-agent.agent.md
    design-agent.agent.md
    epic-agent.agent.md
    feature-agent.agent.md
    user-story-agent.agent.md
    task-agent.agent.md
    scaffold-agent.agent.md
    implement-agent.agent.md
    unit-test-agent.agent.md
    estimate-agent.agent.md
    sprint-planning-agent.agent.md
    playwright-agent.agent.md
    ado-sync-agent.agent.md
    review-agent.agent.md         (on-demand — use at any time after implementation)
  skills/                         Detailed skill instructions per agent
    create-brd/SKILL.md
    create-design-doc/SKILL.md
    create-epics/SKILL.md
    create-features/SKILL.md
    create-user-stories/SKILL.md
    create-tasks/SKILL.md
    create-scaffold/SKILL.md
    implement-task/SKILL.md
    create-unit-tests/SKILL.md
    create-estimates/SKILL.md
    create-sprintplan/SKILL.md
    create-playwright-tests/SKILL.md
    create-ado-sync/SKILL.md
    review-task/SKILL.md

docs/
  requirements/
    BRD.md                        Generated by brd-agent
  design/
    design-doc.md                 Generated by design-agent
  work-items/
    epics/                        Generated by epic-agent
    features/                     Generated by feature-agent
    stories/                      Generated by user-story-agent
  reports/
    effort-estimate-report.html   Generated by estimate-agent
    sprint-plan-report.html       Generated by sprint-planning-agent
  test-reports/                   Generated by playwright-agent (HTML)
  ado-sync-config.json            ADO connection settings
  ado-sync-state.json             Created by ado-sync-agent (idempotency)
  playwright-mcp-setup.md         Playwright MCP configuration guide

issues/                           Task files generated by task-agent
src/                              Project scaffold and implementation code
e2e/                              Playwright test files generated by playwright-agent

workshop-stack.md                 Tech stack configuration (fill in before Phase 2)
init-workspace.sh                 Workspace initialisation (Mac/Linux)
init-workspace.ps1                Workspace initialisation (Windows)

Setup

1. Clone and initialise the workspace

git clone {your-repo-url}
cd {your-repo}

# Mac/Linux
bash init-workspace.sh

# Windows
.\init-workspace.ps1

2. Configure ADO connection (optional — skip if not using Azure DevOps)

Edit docs/ado-sync-config.json:

{
  "organization": "https://dev.azure.com/{your-org}",
  "project": "{your-project-name}",
  "areaPath": "{your-project-name}\\{optional-area}",
  "iterationRootPath": "{your-project-name}\\Sprint"
}

If you are not using Azure DevOps, skip this step. The framework produces all work item files locally and the optional ADO sync phases (Phase 4 and Phase 7) can be omitted entirely.

3. Verify ADO MCP server (optional — skip if not using Azure DevOps)

Ensure the ADO MCP server is connected in VS Code and can list your ADO projects before running the workshop. Full setup instructions — .vscode/mcp.json, authentication via az login or PAT, and verification — are in docs/ado-mcp-setup.md.

Local-only or non-ADO users: Skip this step. The ADO MCP server is not required for any phase except ado-sync-agent.


Running the Framework

Open VS Code with this repository loaded and open the GitHub Copilot Chat panel. For each phase below: select the named agent from the Agent dropdown in the chat panel, type the prompt shown, and press Enter. Phases must run in order — every agent reads the output of the previous one.


Phase 1 — Requirements

Who: PM Agent: brd-agent Prompt: paste the customer requirement text directly into the chat, or reference a file in the repo, e.g.:

create the BRD from requirement.txt

Output: docs/requirements/BRD.md — a structured Business Requirements Document listing actors, functional requirements (FR-XXX), non-functional requirements, business rules, and out-of-scope items. Review it with the team before Phase 2 — every later artifact traces back to it.


Phase 2 — Design

Who: Architect Prerequisite: workshop-stack.md is filled in (no {placeholder} values left). Agent: design-agent Prompt:

create the design document from the BRD

Output: docs/design/design-doc.md — the technical design: architecture overview, data model, API contracts, component structure, and data-testid values. This is the single source of truth that every work-breakdown and implementation agent reads from.


Phase 3 — Work Breakdown

Who: PM (with input from Architect) Run the four agents below in order. Each one reads the output of the previous.

3a — epic-agent

create epics from the design document

Output: docs/work-items/epics/ — one Markdown file per Epic, each covering a major business capability traced to BRD requirements.

3b — feature-agent

create features for all epics

Output: docs/work-items/features/ — one file per Feature, each an independently demonstrable slice of an Epic.

3c — user-story-agent

create user stories for all features

Output: docs/work-items/stories/ — user stories written from the role's perspective with acceptance criteria.

3d — task-agent

create tasks for all user stories

Output: issues/ — typed implementation tasks (DATABASE, BACKEND, UNIT-TEST, FRONTEND, E2E-TEST) ready for the team to pick up.


Phase 4 — ADO Sync, 1st pass (optional — Azure DevOps only)

Skip this phase if you are not using Azure DevOps. Run it now to push the freshly-created backlog (Epics → Features → Stories → Tasks with parent-child links) to Azure DevOps Boards so PMs and stakeholders can review the hierarchy in ADO before any estimation work begins. No estimates or iteration assignments are pushed yet — those come in the 2nd pass (Phase 7).

Who: PM Prerequisites: ADO MCP server connected; docs/ado-sync-config.json filled in. Agent: ado-sync-agent Prompt:

push the backlog to Azure DevOps

Output:

  • Full Epic → Feature → Story → Task hierarchy created in ADO Boards with parent-child links
  • docs/ado-sync-state.json — records each work item ID for the 2nd pass

Phase 5 — Estimation

Who: PM or Architect Agent: estimate-agent Prompt:

analyse all work and produce the estimate report

Output:

  • Effort estimates written into every Task, Story, Feature, and Epic file
  • docs/reports/effort-estimate-report.html — a self-contained HTML summary you can open in any browser to review totals, breakdowns by task type, and the reasoning behind each estimate.

Phase 6 — Sprint Planning

Who: PM Agent: sprint-planning-agent Prompt:

create the sprint plan

The agent will ask three questions about team capacity (developers per role, sprint length, hours per developer per sprint). Answer them in chat.

Output: docs/reports/sprint-plan-report.html — a capacity-driven sprint plan showing which stories land in which sprint, utilisation per role, dependencies, and sprint goals. Open in a browser to review.


Phase 7 — ADO Sync, 2nd pass (optional — Azure DevOps only; skip if you skipped Phase 4)

Re-run the same agent. It detects the existing docs/ado-sync-state.json and switches to update mode — sets Remaining Work from estimates and Iteration from the sprint plan on already-synced items. Never creates duplicates. Any new work items found locally since the 1st pass are created and linked.

Who: PM Agent: ado-sync-agent Prompt:

update ADO with estimates and sprint assignments

Output:

  • Remaining Work and Iteration fields populated on existing ADO work items
  • docs/ado-sync-state.json updated with lastUpdated timestamp

Phase 8 — Scaffold

Who: Architect or any developer Prerequisite: workshop-stack.md has no unfilled {placeholder} values. Agent: scaffold-agent Prompt:

generate the project scaffold

Output: src/ populated with the folder structure, entry-point stubs, dependency manifest (e.g. package.json / requirements.txt / pom.xml), and playwright.config.ts for the chosen stack. Additive only — no existing files are overwritten.


Phase 9 — Implementation

Who: Database Dev → Backend Dev → UI Dev (in dependency order) Implement each task file in issues/ in this order: DATABASE → BACKEND → UNIT-TEST → FRONTEND → E2E-TEST.

  • implement-agent handles DATABASE, BACKEND, and FRONTEND tasks
  • unit-test-agent handles UNIT-TEST tasks (run after each BACKEND task)
  • playwright-agent handles E2E-TEST tasks (Phase 10, after all FRONTEND tasks)

Agent: implement-agent Prompt (one task at a time):

implement issues/01-DATABASE-{name}.md

Output: production code written to the folders defined in workshop-stack.md (e.g. routes_folder, controllers_folder, components_folder). The agent updates the task file's status to done.

Optional — unit tests after each BACKEND task: Agent: unit-test-agent Prompt:

implement issues/{UNIT-TEST-task-file}.md

Output: unit test files written to unit_tests_folder from workshop-stack.md, with one test case per acceptance criterion.

On-demand review: After implementing any task, invoke review-agent with the task file path. It posts a structured review directly in chat — pass/fail per acceptance criterion plus a recommendation to APPROVE or REQUEST CHANGES. Nothing is written to disk; fix any issues and re-invoke on the same task to re-review.


Phase 10 — E2E Testing (optional — requires app to be running)

Skip this phase if the application has not been implemented yet. playwright-agent generates test files from E2E-TEST task acceptance criteria and the design document, then optionally runs them against the running application using the Playwright MCP server.

Requirements:

  • Application running locally at the baseURL from playwright.config.ts (if present — created by scaffold-agent); otherwise the fallback URL is dev_server_url from workshop-stack.md
  • Playwright installed (npm install, pip install pytest-playwright, etc.)
  • Playwright MCP server configured (see docs/playwright-mcp-setup.md)

Who: QA Engineer Agent: playwright-agent Prompt:

create tests for all E2E-TEST tasks

Output:

  • e2e/*.spec.ts — one TypeScript spec file per feature area, using only data-testid selectors from the design document
  • docs/test-reports/ — HTML test report (when tests are executed)

To run the tests and view the report:

npx playwright test
npx playwright show-report docs/test-reports

Agent Reference

Agent Purpose Reads Writes
brd-agent Business Requirements Document Requirement text docs/requirements/BRD.md
design-agent Technical design BRD docs/design/design-doc.md
epic-agent Epic work items Design doc, BRD docs/work-items/epics/
feature-agent Feature work items Epics, design doc docs/work-items/features/
user-story-agent User story work items Features, BRD, design doc docs/work-items/stories/
task-agent Implementation tasks Stories, design doc issues/
scaffold-agent Project scaffold workshop-stack.md src/ folder structure + entry points
implement-agent Feature implementation Task files, design doc, workshop-stack.md src/
unit-test-agent (on-demand) Unit tests for BACKEND tasks BACKEND task files, workshop-stack.md Unit test files in unit_tests_folder
estimate-agent Effort estimates + report All work items Work item files + HTML report
sprint-planning-agent Sprint plan + report Estimates, stories HTML report
playwright-agent E2E tests + test report E2E-TEST tasks, design doc e2e/*.spec.ts + HTML report
ado-sync-agent (optional, two-pass) ADO Boards sync — 1st pass after task breakdown creates the hierarchy; 2nd pass after sprint planning updates Remaining Work and Iteration All work items, estimates, sprint plan ADO work items + docs/ado-sync-state.json
review-agent (on-demand) Code review vs acceptance criteria Task file, implemented code, design doc Structured review reply in chat (no files written)

Key Design Principles

Domain fidelity Every agent preserves the exact entity names, role names, and lifecycle states from the original requirement. Nothing is renamed or generalised without explicit instruction.

Traceability Every work item traces back to a BRD functional requirement (FR-XXX). Every design decision traces to a requirement. Every task traces to a user story. The chain is never broken.

No estimates during work breakdown Estimation is a separate phase. Work breakdown agents never assign effort. This prevents scope being constrained by premature estimates.

Dependency ordering Tasks are always ordered DATABASE → BACKEND → UNIT-TEST → FRONTEND → E2E-TEST. Sprint planning always respects this dependency chain.

Idempotency Every agent handles re-runs gracefully. Files are overwritten, not duplicated. The ADO sync state file prevents duplicate work items.

Tech-stack agnostic The framework describes patterns and contracts, not specific frameworks, ORMs, or libraries. It works for any technology stack.


Extending the Framework

To add a new agent:

  1. Create .github/agents/{name}.agent.md
  2. Create .github/skills/{skill-name}/SKILL.md
  3. Add the agent to the workshop flow at the appropriate phase
  4. Update the handoff message of the preceding agent

To customise estimation heuristics: Edit .github/skills/create-estimates/SKILL.md Adjust the t-shirt size to hours table and complexity signals.

To customise sprint planning capacity: Fill in team size and sprint length in workshop-stack.md (Universal Optional Fields section). The sprint-planning-agent reads capacity inputs interactively.

To add a new task type: Edit .github/skills/create-tasks/SKILL.md Add the new type to the type table and define its scope rules.


Troubleshooting

Issue Resolution
Agent renames domain entities Re-invoke with explicit entity names listed
Mermaid diagrams not rendering Open file in VS Code Markdown Preview
HTML reports not opening Open directly in a browser — no server needed
ADO sync fails with 401 Refresh your PAT token
ADO sync fails with 404 Check organisation and project name in config
Duplicate work items in ADO Check docs/ado-sync-state.json — re-runs are idempotent (the 2nd pass updates rather than re-creates); only delete stale entries if the ADO item itself was deleted
Sprint plan overcommits capacity Re-invoke sprint-planning-agent with lower hours per developer

Facilitator Resources

  • PRE-SETUP-CHECKLIST.md — complete before every workshop
  • FACILITATOR-GUIDE.md — talking points, timing, and recovery steps
  • init-workspace.sh / init-workspace.ps1 — workspace initialisation

Built for the Agentic SDLC Workshop. Extend it, adapt it, make it yours.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors