Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions sdlc-agents/PHASES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# SDLC Agent Classification

## requirements
- prd.agent.md
- specification.agent.md
- refine-issue.agent.md

## planning
- plan.agent.md
- planner.agent.md
- task-planner.agent.md
- task-researcher.agent.md
- implementation-plan.agent.md
- research-technical-spike.agent.md

## architecture
- api-architect.agent.md
- repo-architect.agent.md
- project-architecture-planner.agent.md
- se-system-architecture-reviewer.agent.md

## development
- principal-software-engineer.agent.md
- software-engineer-agent-v1.agent.md
- address-comments.agent.md

## testing
- tdd-red.agent.md
- tdd-green.agent.md
- tdd-refactor.agent.md
- qa-subagent.agent.md
- playwright-tester.agent.md
- debug.agent.md

## devops
- devops-expert.agent.md
- se-gitops-ci-specialist.agent.md

## cloud
- (none)

## security
- se-security-reviewer.agent.md
- sast-sca-security-analyzer.agent.md

## maintenance
- tech-debt-remediation-plan.agent.md
- project-documenter.agent.md
- technical-content-evaluator.agent.md
79 changes: 79 additions & 0 deletions sdlc-agents/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
$ErrorActionPreference = "Stop"
Set-Location "c:\Users\VMADMIN\Music\awesome-copilot"

$phases = @("requirements","planning","architecture","development","testing","devops","cloud","security","maintenance")

$agentMap = [ordered]@{
requirements = @("prd.agent.md","specification.agent.md","refine-issue.agent.md")
planning = @("plan.agent.md","planner.agent.md","task-planner.agent.md","task-researcher.agent.md","implementation-plan.agent.md","research-technical-spike.agent.md")
architecture = @("api-architect.agent.md","repo-architect.agent.md","project-architecture-planner.agent.md","se-system-architecture-reviewer.agent.md")
development = @("principal-software-engineer.agent.md","software-engineer-agent-v1.agent.md","address-comments.agent.md")
testing = @("tdd-red.agent.md","tdd-green.agent.md","tdd-refactor.agent.md","qa-subagent.agent.md","playwright-tester.agent.md","debug.agent.md")
devops = @("devops-expert.agent.md","se-gitops-ci-specialist.agent.md")
cloud = @()
security = @("se-security-reviewer.agent.md","sast-sca-security-analyzer.agent.md")
maintenance = @("tech-debt-remediation-plan.agent.md","project-documenter.agent.md","technical-content-evaluator.agent.md")
}

$skillMap = [ordered]@{
requirements = @("prd","create-specification","update-specification","gen-specs-as-issues","create-github-issue-feature-from-specification","create-github-issues-for-unmet-specification-requirements")
planning = @("create-implementation-plan","update-implementation-plan","create-technical-spike","breakdown-plan","breakdown-feature-prd","create-github-issues-feature-from-implementation-plan")
architecture = @("architecture-blueprint-generator","context-map","acquire-codebase-knowledge","create-architectural-decision-record")
development = @("breakdown-feature-implementation","refactor-plan","refactor","review-and-refactor","conventional-branch","conventional-commit","git-flow-branch-creator","git-commit","documentation-writer","create-readme")
testing = @("breakdown-test","webapp-testing","playwright-generate-test","javascript-typescript-jest","pytest-coverage")
devops = @("devops-rollout-plan","github-actions-efficiency","github-actions-hardening","github-release")
cloud = @()
security = @("security-review","threat-model-analyst","secret-scanning","codeql")
maintenance = @("incident-postmortem")
}

foreach ($p in $phases) {
New-Item -ItemType Directory -Force -Path (Join-Path "sdlc-agents" $p) | Out-Null
New-Item -ItemType Directory -Force -Path (Join-Path "sdlc-skills" $p) | Out-Null
}

foreach ($phase in $agentMap.Keys) {
foreach ($name in $agentMap[$phase]) {
$src = Get-ChildItem "sdlc-agents" -Recurse -File -Filter $name | Select-Object -First 1
if (-not $src) { throw "Agent not found: $name" }
$dst = Join-Path (Join-Path "sdlc-agents" $phase) $name
if ($src.FullName -ne (Join-Path (Get-Location) $dst)) {
Move-Item -Force -Path $src.FullName -Destination $dst
}
}
}

foreach ($phase in $skillMap.Keys) {
foreach ($name in $skillMap[$phase]) {
$src = Get-ChildItem "sdlc-skills" -Recurse -Directory | Where-Object { $_.Name -eq $name -and (Test-Path (Join-Path $_.FullName "SKILL.md")) } | Select-Object -First 1
if (-not $src) { throw "Skill not found: $name" }
$dstParent = Join-Path "sdlc-skills" $phase
$dst = Join-Path $dstParent $name
if ($src.FullName -ne (Join-Path (Get-Location) $dst)) {
if (Test-Path $dst) { Remove-Item -Recurse -Force $dst }
Move-Item -Force -Path $src.FullName -Destination $dstParent
}
}
}

@'
# SDLC Agents

This folder contains SDLC-focused agents organized by lifecycle phase.

## Phase Folders

- requirements
- planning
- architecture
- development
- testing
- devops
- cloud
- security
- maintenance

## Notes

- This is a curated copy from the main agents collection.
- Cloud is currently a placeholder phase with no dedicated agent in this subset.
41 changes: 41 additions & 0 deletions sdlc-agents/architecture/api-architect.agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
description: 'Your role is that of an API architect. Help mentor the engineer by providing guidance, support, and working code.'
name: 'API Architect'
---
# API Architect mode instructions

Your primary goal is to act on the mandatory and optional API aspects outlined below and generate a design and working code for connectivity from a client service to an external service. You are not to start generation until you have the information from the
developer on how to proceed. The developer will say, "generate" to begin the code generation process. Let the developer know that they must say, "generate" to begin code generation.

Your initial output to the developer will be to list the following API aspects and request their input.

## The following API aspects will be the consumables for producing a working solution in code:

- Coding language (mandatory)
- API endpoint URL (mandatory)
- DTOs for the request and response (optional, if not provided a mock will be used)
- REST methods required, i.e. GET, GET all, PUT, POST, DELETE (at least one method is mandatory; but not all required)
- API name (optional)
- Circuit breaker (optional)
- Bulkhead (optional)
- Throttling (optional)
- Backoff (optional)
- Test cases (optional)

## When you respond with a solution follow these design guidelines:

- Promote separation of concerns.
- Create mock request and response DTOs based on API name if not given.
- Design should be broken out into three layers: service, manager, and resilience.
- Service layer handles the basic REST requests and responses.
- Manager layer adds abstraction for ease of configuration and testing and calls the service layer methods.
- Resilience layer adds required resiliency requested by the developer and calls the manager layer methods.
- Create fully implemented code for the service layer, no comments or templates in lieu of code.
- Create fully implemented code for the manager layer, no comments or templates in lieu of code.
- Create fully implemented code for the resilience layer, no comments or templates in lieu of code.
- Utilize the most popular resiliency framework for the language requested.
- Do NOT ask the user to "similarly implement other methods", stub out or add comments for code, but instead implement ALL code.
- Do NOT write comments about missing resiliency code but instead write code.
- WRITE working code for ALL layers, NO TEMPLATES.
- Always favor writing code over comments, templates, and explanations.
- Use Code Interpreter to complete the code generation process.
Loading
Loading