A web application for marketing experts to generate and manage comprehensive marketing campaigns using AI Agents powered by the Microsoft Agent Framework.
This project uses .NET 9, ASP.NET Core Minimal APIs, and .NET Aspire for local development orchestration.
- MarketingAgents.AppHost - .NET Aspire orchestration project for local development
- MarketingAgents.Api - Backend API service using ASP.NET Core Minimal APIs
- MarketingAgents.AgentHost - Dedicated agent execution and orchestration service
- MarketingAgents.ServiceDefaults - Shared service defaults for telemetry, service discovery, and resilience
- .NET 9 - Latest .NET platform
- ASP.NET Core Minimal APIs - High-performance web APIs
- .NET Aspire 9.5.1 - Local development orchestrator
- Azure Cosmos DB - Primary database (using emulator for local dev)
- Redis - Caching layer (using container for local dev)
- OpenTelemetry - Observability (logs, metrics, traces)
- xUnit + FluentAssertions - Testing framework
- .NET 9 SDK
- Docker Desktop (for Redis and Cosmos DB emulator)
- Visual Studio 2022 17.14+ or VS Code with C# Dev Kit
git clone <repository-url>
cd marketing-agentsdotnet restoredotnet run --project MarketingAgents.AppHostThis will:
- Start the Aspire dashboard (typically at
http://localhost:15888) - Launch Redis container
- Launch Cosmos DB emulator
- Start the API service
- Start the AgentHost service
- Aspire Dashboard:
http://localhost:15888 - API Service:
http://localhost:<port>(check Aspire dashboard for actual port) - Swagger UI:
http://localhost:<port>/swagger - AgentHost Service:
http://localhost:<port>(check Aspire dashboard for actual port)
MarketingAgents/
βββ MarketingAgents.AppHost/ # Aspire orchestration
βββ MarketingAgents.Api/ # API service
β βββ Endpoints/ # Minimal API endpoints
β βββ Services/ # Business logic
β βββ Models/ # DTOs and domain entities
β βββ Data/ # Cosmos DB repositories
βββ MarketingAgents.AgentHost/ # Agent service
β βββ Agents/ # Agent providers
β βββ Services/ # Orchestration services
βββ MarketingAgents.ServiceDefaults/ # Shared configurations
βββ MarketingAgents.Api.Tests/ # Unit tests
βββ MarketingAgents.Api.IntegrationTests/ # Integration tests
# Run all tests
dotnet test
# Run with coverage
dotnet test --collect:"XPlat Code Coverage"# Build all projects
dotnet build
# Build specific project
dotnet build MarketingAgents.ApiThis project uses:
- Nullable reference types - Enabled across all projects
- EditorConfig - Consistent coding standards
- StyleCop Analyzers - C# style rules
- SonarAnalyzer - Code quality and security rules
All warnings are treated as errors to maintain high code quality.
For local development, use .NET User Secrets:
# Set a secret for the API project
dotnet user-secrets set "ConnectionStrings:CosmosDb" "<connection-string>" --project MarketingAgents.ApiKey environment variables:
OTEL_EXPORTER_OTLP_ENDPOINT- OpenTelemetry collector endpointASPNETCORE_ENVIRONMENT- Environment name (Development, Staging, Production)
This project uses MkDocs with Material theme for comprehensive documentation. All documentation lives in the docs/ directory and is deployed automatically to GitHub Pages.
# Install MkDocs and dependencies (first time only)
pip install mkdocs-material mkdocs-git-revision-date-localized-plugin mkdocs-minify-plugin
# Serve documentation locally
npm run docs:serve
# OR
mkdocs serve
# Access at http://localhost:8000/marketing-agents/# Build documentation
npm run docs:build
# OR
mkdocs build
# Build with strict validation (recommended before committing)
npm run docs:build:strict
# OR
mkdocs build --strictDocumentation is automatically built and deployed to GitHub Pages on every push to main that affects:
docs/**- Documentation markdown filesmkdocs.yml- MkDocs configurationspecs/adr/**- Architecture Decision Records
Live Documentation: View on GitHub Pages
docs/
βββ index.md # Landing page
βββ getting-started/
β βββ installation.md # Setup instructions
β βββ quick-start.md # 5-minute tutorial
β βββ configuration.md # Configuration guide
βββ architecture/
β βββ overview.md # High-level architecture
β βββ system-design.md # Detailed system design
β βββ data-flow.md # Data flows and transformations
β βββ decisions.md # ADR index
βββ api/
β βββ rest-api.md # REST API reference
β βββ realtime-api.md # SignalR WebSocket API
βββ guides/
β βββ development.md # Development workflow
β βββ deployment.md # Azure deployment procedures
β βββ troubleshooting.md # Common issues and solutions
βββ reference/
βββ configuration.md # Configuration options
βββ environment-variables.md # Environment variables reference
specs/
βββ prd.md # Product Requirements
βββ adr/ # Architecture Decision Records
β βββ template.md # MADR template
β βββ 0001-use-aspire-for-orchestration.md
β βββ 0002-use-mkdocs-for-documentation.md
βββ features/ # Feature specifications
βββ tasks/ # Technical task specs
βββ journal/ # Engineering journal
- Follow the coding standards defined in
.editorconfig - Ensure all tests pass before submitting PR
- Maintain β₯85% code coverage
- Update documentation as needed
[Add your license here]
Spec2Win-encoded.mp4
This repository provides a preconfigured development environment and agent-driven workflow that takes you from product concept to deployed application through a structured, step-by-step process.
- Open in Dev Container - Everything is preconfigured in
.devcontainer/ - Describe your app idea - The more specific, the better
- Follow the workflow - Use the prompts to guide specialized agents through each phase
The .devcontainer/ folder provides a ready-to-use development container with:
-
Python 3.12
-
Azure CLI & Azure Developer CLI (azd)
-
TypeScript
-
Docker-in-Docker
-
VS Code extensions: GitHub Copilot Chat, Azure Pack, AI Studio
The .vscode/mcp.json configures Model Context Protocol servers that give agents access to:
- context7 - Up-to-date library documentation
- github - Repository management and operations
- microsoft.docs.mcp - Official Microsoft/Azure documentation
- playwright - Browser automation capabilities
- deepcontext - Repository context and understanding for external repos
Four specialized agents in .github/chatmodes/:
- Model: o3-mini
- Tools: Edit files, search, fetch web content
- Purpose: Translates ideas into structured PRDs and FRDs
- Instructions: Asks clarifying questions, identifies business goals, creates living documentation
- Model: Claude Sonnet 4
- Tools: Read files, search, semantic analysis
- Purpose: Reads all standards from
standards/and generates comprehensiveAGENTS.md - Instructions: Analyzes engineering standards, creates unified agent guidelines, establishes coding patterns
- Usage: Run
/generate-agentsat project start (can defer until before/planand/implement)
- Model: Claude Sonnet 4
- Tools: Full development suite + Context7, GitHub, Microsoft Docs, Copilot Coding Agent, AI Toolkit
- Purpose: Breaks down features into tasks, implements code, or delegates to GitHub Copilot
- Instructions: Analyzes specs, writes modular code, follows architectural patterns, creates GitHub issues
- Model: Claude Sonnet 4
- Tools: Azure resource management, Bicep, deployment tools, infrastructure best practices
- Purpose: Deploys applications to Azure with IaC and CI/CD pipelines
- Instructions: Analyzes codebase, generates Bicep templates, creates GitHub Actions, uses Azure Dev CLI
graph TB
Start[("π€ User<br/>High-level app description")]
Start --> PRD["<b>/prd</b><br/>π PM Agent creates<br/>Product Requirements Document"]
PRD --> FRD["<b>/frd</b><br/>π PM Agent breaks down<br/>Feature Requirements Documents"]
FRD --> GenAgents["<b>/generate-agents</b><br/>π― Dev Lead reads standards<br/>& generates AGENTS.md<br/>(optional, before /plan)"]
GenAgents --> Plan["<b>/plan</b><br/>π§ Dev Agent creates<br/>Technical Task Breakdown"]
Plan --> Choice{"Implementation<br/>Choice"}
Choice -->|Local| Implement["<b>/implement</b><br/>π» Dev Agent<br/>implements code locally"]
Choice -->|Delegated| Delegate["<b>/delegate</b><br/>π― Dev Agent creates<br/>GitHub Issue + assigns<br/>Copilot Coding Agent"]
Implement --> Deploy["<b>/deploy</b><br/>βοΈ Azure Agent<br/>creates IaC + deploys to Azure"]
Delegate --> Deploy
Deploy --> Done[("β
Production-Ready<br/>Application on Azure")]
style Start fill:#e1f5ff
style PRD fill:#fff4e6
style FRD fill:#fff4e6
style GenAgents fill:#e3f2fd
style Plan fill:#e8f5e9
style Implement fill:#e8f5e9
style Delegate fill:#e8f5e9
style Deploy fill:#f3e5f5
style Done fill:#e1f5ff
style Choice fill:#fff9c4
-
/prd- Product Requirements Document- PM Agent engages in conversation to understand the product vision
- Creates
specs/prd.mdwith goals, scope, requirements, and user stories - Living document that evolves with feedback
-
/frd- Feature Requirements Documents- PM Agent decomposes the PRD into individual features
- Creates files in
specs/features/for each feature - Defines inputs, outputs, dependencies, and acceptance criteria
-
/generate-agents- Generate Agent Guidelines (Optional)- Dev Lead Agent reads all standards from
standards/directory - Consolidates engineering standards into comprehensive
AGENTS.md - Can be run at project start or deferred until before
/planand/implement - Must be completed before planning and implementation begins
- Dev Lead Agent reads all standards from
-
/plan- Technical Planning- Dev Agent analyzes FRDs and creates technical task breakdowns
- Creates files in
specs/tasks/with implementation details - Identifies dependencies, estimates complexity, defines scaffolding needs
-
/implementOR/delegate- Implementation- Option A (
/implement): Dev Agent writes code directly insrc/backendandsrc/frontend - Option B (
/delegate): Dev Agent creates GitHub Issues with full task descriptions and assigns to GitHub Copilot Coding Agent
- Option A (
-
/deploy- Azure Deployment- Azure Agent analyzes the codebase
- Generates Bicep IaC templates
- Creates GitHub Actions workflows for CI/CD
- Deploys to Azure using Azure Dev CLI and MCP tools
The workflow creates living documentation:
specs/
βββ prd.md # Product Requirements Document
βββ features/ # Feature Requirements Documents
β βββ feature-1.md
β βββ feature-2.md
βββ tasks/ # Technical Task Specifications
βββ task-1.md
βββ task-2.md
src/
βββ backend/ # Backend implementation
βββ frontend/ # Frontend implementation
standards/
βββ general/ # General engineering standards
βββ backend/ # Backend-specific standards
βββ frontend/ # Frontend-specific standards
AGENTS.md # Consolidated agent guidelines (generated)
mkdocs.yml # MKdocs configuration for documentation site
docs/ # MKdocs documentation source files
This repository is configured with MKdocs for generating beautiful project documentation:
- Configuration:
mkdocs.ymlcontains site settings and navigation - Source Files: Documentation markdown files in
docs/directory - Standards: Documentation practices defined in
standards/general/documentation-guidelines.md - Build & Serve: Use MKdocs commands to preview and deploy documentation
The documentation standards ensure consistency, accessibility, and maintainability across all project documentation.
This repository uses git subtrees to integrate engineering standards from external repositories. The standards/ folder contains subtrees from three separate guideline repositories.
Each standards repository uses branches to organize technology-specific rules:
- Backend Standards: Choose between
dotnetorpythonbranches - Frontend Standards: Choose between
react,angular, or other framework branches - General Standards: Use
mainbranch for universal guidelines
This approach allows you to pull only the standards relevant to your tech stack.
When setting up the repository, specify the appropriate branch for your tech stack:
# General standards (always use main)
git subtree add --prefix standards/general https://github.com/EmeaAppGbb/spec2cloud-guidelines.git main --squash
# Backend standards - choose your stack
git subtree add --prefix standards/backend https://github.com/EmeaAppGbb/spec2cloud-guidelines-backend.git dotnet --squash
# OR
git subtree add --prefix standards/backend https://github.com/EmeaAppGbb/spec2cloud-guidelines-backend.git python --squash
# Frontend standards - choose your framework
git subtree add --prefix standards/frontend https://github.com/EmeaAppGbb/spec2cloud-guidelines-frontend.git react --squash
# OR
git subtree add --prefix standards/frontend https://github.com/EmeaAppGbb/spec2cloud-guidelines-frontend.git angular --squashTo pull the latest changes from the upstream guideline repositories, use the same branch:
# Update general standards
git subtree pull --prefix standards/general https://github.com/EmeaAppGbb/spec2cloud-guidelines.git main --squash
# Update backend standards (use your chosen branch)
git subtree pull --prefix standards/backend https://github.com/EmeaAppGbb/spec2cloud-guidelines-backend.git dotnet --squash
# Update frontend standards (use your chosen branch)
git subtree pull --prefix standards/frontend https://github.com/EmeaAppGbb/spec2cloud-guidelines-frontend.git react --squashNote: The
--squashflag combines all commits from the subtree repository into a single commit, keeping the history clean.
If you need to switch to a different tech stack (e.g., from React to Angular), remove the old subtree and add the new one:
# Remove old subtree
git rm -r standards/frontend
git commit -m "Remove React standards"
# Add new subtree
git subtree add --prefix standards/frontend https://github.com/EmeaAppGbb/spec2cloud-guidelines-frontend.git angular --squash# Start with your product idea
"I want to create a smart AI agent for elderly care that tracks vitals and alerts caregivers"
# Step 1: Create the PRD
/prd
# Step 2: Break down into features
/frd
# Step 3: Generate agent guidelines from standards (optional, can defer)
/generate-agents
# Step 4: Create technical plans
/plan
# Step 5a: Implement locally
/implement
# OR Step 5b: Delegate to GitHub Copilot
/delegate
# Step 6: Deploy to Azure
/deploy- Zero Setup - Dev container has everything preconfigured
- Structured Process - Clear workflow from idea to production
- AI-Powered - Specialized agents handle different aspects
- Best Practices - Built-in architectural guidance via
AGENTS.md - Flexible Implementation - Choose local development or delegation
- Azure-Ready - Automated IaC and CI/CD generation
- See
AGENTS.mdfor comprehensive engineering guidelines - Explore
.github/chatmodes/for agent configurations - Review
.github/prompts/for prompt templates
Contributions welcome! Extend with additional agents, prompts, or MCP servers.
From idea to production in minutes, not months. π