Skip to content

Quickstart

Getting started with development tools

Get running in 10 minutes.

RequirementHow to Get
⭐ GitHub accountSign up
⭐ GitHub Copilot licenseBusiness or Enterprise required — see plans
⭐ GitHub fine-grained PATRequired for devcontainer GitHub auth via GH_TOKEN
⭐ VS CodeDownload
⭐ Docker DesktopDownload
Azure subscriptionOptional — required only for Step 6 deployment

Step 1: Create Your Repository from the Template

Section titled “Step 1: Create Your Repository from the Template”
  1. Go to the Accelerator template repository
  2. Click the green “Use this template” button → “Create a new repository”
  3. Choose an owner and repository name (e.g. my-infraops-project)
  4. Select Public or Private visibility
  5. Click Create repository

Clone your new repository (not this upstream project):

Terminal window
git clone https://github.com/YOUR-USERNAME/my-infraops-project.git # (1)!
code my-infraops-project
  1. Replace YOUR-USERNAME/my-infraops-project with your actual GitHub username and the repository name you chose in Step 1.
  1. Press F1 (or Ctrl+Shift+P)
  2. Type: Dev Containers: Reopen in Container
  3. Wait 3-5 minutes for setup

The Dev Container installs all tools automatically:

  • Azure CLI + Bicep CLI
  • Terraform CLI + TFLint
  • PowerShell 7
  • Python 3 + diagrams library
  • Go (Terraform MCP server)
  • apex-recall CLI (session recall)
  • Comprehensive set of VS Code extensions

If you plan to deploy to Azure or run the governance baseline workflow, configure your Azure environment with a single command:

Terminal window
npm run setup

This creates an Entra ID app registration, OIDC federated credentials, RBAC roles, and GitHub secrets/variables. See Azure Setup for details and manual alternatives.

Step 5: Configure GH_TOKEN for the Dev Container

Section titled “Step 5: Configure GH_TOKEN for the Dev Container”

This step is easy to miss, but it is required for reliable GitHub CLI and repository operations in the devcontainer.

  1. Create a fine-grained GitHub Personal Access Token
  2. Grant at least these permissions:
PermissionLevel
ContentsRead/Write
MetadataRead
Pull requestsRead/Write
IssuesRead/Write
WorkflowsRead/Write
  1. Open VS Code User Settings (JSON)
  2. Add this entry and replace the placeholder token value:
"terminal.integrated.env.linux": { "GH_TOKEN": "github_pat_your_token_here" }
  1. Rebuild the devcontainer: F1Dev Containers: Rebuild Container
  2. Run gh auth status inside the container and confirm it shows a logged-in token-based session

See Dev Container Setup for the full explanation, screenshots, and token rotation guidance.

Terminal window
gh auth status
az --version && bicep --version && terraform --version && pwsh --version # (1)!
  1. gh auth status should show a token-backed login, and all four CLIs should print version numbers. If any fail, rebuild or reopen the dev container.

Without this setting, the Orchestrator cannot delegate to specialized agents, so multi-step workflows will stall after the first response.

Add this to your VS Code User Settings (Ctrl+, → Settings JSON):

{
"chat.customAgentInSubagent.enabled": true // (1)!
}
  1. This must be in User Settings, not Workspace Settings. Experimental features require user-level configuration.

Why User Settings? Workspace settings exist in .vscode/settings.json, but user settings take precedence for experimental features like subagent invocation.

Verify it’s enabled:

  1. Open Command Palette (Ctrl+Shift+P)
  2. Type: Preferences: Open User Settings (JSON)
  3. Confirm the setting is present

The Orchestrator (🧠 Orchestrator) orchestrates the complete multi-step workflow:

  1. Press Ctrl+Shift+I to open Copilot Chat
  2. Select Orchestrator from the agent dropdown
  3. Describe your project:
Create a simple web app in Azure with:
- App Service for web frontend
- Azure SQL Database for data
- Key Vault for secrets
- Region: swedencentral
- Environment: dev
- Project name: my-webapp

The Orchestrator guides you through all steps with approval gates.

Invoke agents directly for specific tasks:

  1. Press Ctrl+Shift+A to open the agent picker
  2. Select the specific agent (e.g., requirements)
  3. Enter your prompt

The agents work in sequence with handoffs. Steps 1-3.5 and 7 are shared; steps 4-6 route to Bicep or Terraform agents based on your iac_tool selection in Step 1. During requirements gathering, the Requirements agent asks which IaC tool you prefer — this choice determines which planning, code generation, and deployment agents the Orchestrator invokes.

Each agent has a thematic codename for easy reference in documentation and prompts.

StepAgentCodenameWhat Happens
1requirements📜 ScribeCaptures requirements
2architect🏛️ OracleWAF assessment
3design🎨 ArtisanDiagrams/ADRs (optional)
3.5governance🛡️ WardenPolicy discovery/compliance
4iac-planner📐 StrategistImplementation plan
5bicep-codegen / terraform-codegen⚒️ ForgeIaC templates
6bicep-deploy / terraform-deploy🚀 EnvoyAzure deployment
7as-built📚 ChroniclerDocumentation suite

Approval Gates: The Orchestrator pauses at key points:

  • Gate 1: After requirements (Step 1) — confirm requirements
  • Gate 2: After architecture (Step 2) — approve WAF assessment
  • Gate 2.5: After governance (Step 3.5) — approve governance constraints
  • Gate 3: After planning (Step 4) — approve implementation plan
  • Gate 4: After validation (Step 5) — approve preflight results
  • Gate 5: After deployment (Step 6) — verify resources
  • Governance returns no policies: continue if 04-governance-constraints.json shows discovery_status: "COMPLETE". An empty policy list means no deny-effect constraints were found for that scope.
  • Pricing, auth, or tooling fails: fix the environment first, then resume the same step. Start with Troubleshooting and Dev Container Setup.
  • Security or cost findings block progress: update the generated plan or code, then re-run the same step with the exact failing output so the agent can repair it.

Before you deploy, review the mandatory guidance in Security Baseline and Cost Governance.

After completing the workflow:

agent-output/my-webapp/
├── 01-requirements.md # Captured requirements (includes iac_tool)
├── 02-architecture-assessment.md # WAF analysis
├── 03-des-diagram.drawio # Optional Step 3 architecture diagram
├── 04-implementation-plan.md # Phased plan
├── 04-dependency-diagram.py # Step 4 dependency diagram
├── 04-runtime-diagram.py # Step 4 runtime diagram
├── 04-governance-constraints.md # Policy discovery
├── 05-implementation-reference.md # Module inventory
├── 06-deployment-summary.md # Deployed resources
└── 07-*.md # Documentation suite
# Bicep track output:
infra/bicep/my-webapp/
├── main.bicep # Entry point
├── main.bicepparam # Parameters
└── modules/
├── app-service.bicep
├── sql-database.bicep
└── key-vault.bicep
# — OR — Terraform track output:
infra/terraform/my-webapp/
├── main.tf # Entry point
├── variables.tf # Input variables
├── outputs.tf # Outputs
├── terraform.tfvars # Variable values
└── modules/
├── app-service/
├── sql-database/
└── key-vault/
GoalResource
Understand the full workflowworkflow.md
Try a guided hands-on challengeMicroHack
Try a complete workflowPrompt Guide
Review mandatory guardrailsSecurity Baseline and Cost Governance
Generate architecture diagramsUse drawio skill (or python-diagrams for charts)
Create documentationUse azure-artifacts skill
Explore Terraform patternsUse terraform-patterns skill
Troubleshoot issuestroubleshooting.md
Contribute to the upstream repoazure-agentic-infraops
Ctrl+Shift+I → Orchestrator → Describe project → Follow gates
Ctrl+Shift+A → Select agent → Type prompt → Approve

Skills activate automatically based on your prompt:

  • “Create an architecture diagram” → drawio
  • “Generate an ADR” → azure-adr
  • “Create workload documentation” → azure-artifacts

Or invoke explicitly:

Use the drawio skill to create a diagram for my-webapp