Skip to content

Commit dde0071

Browse files
authored
Merge branch 'main' into chuye/appinsights-instrumentation-skill
2 parents 33d4dbb + da58b10 commit dde0071

18 files changed

+2987
-7
lines changed

.github/pull_request_template.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
- [ ] New prompt file.
2222
- [ ] New chat mode file.
2323
- [ ] New collection file.
24-
- [ ] Update to existing instruction, prompt, chat mode, or collection.
24+
- [ ] New skill file.
25+
- [ ] Update to existing instruction, prompt, chat mode, collection or skill.
2526
- [ ] Other (please specify):
2627

2728
---

agents/azure-iac-exporter.agent.md

Lines changed: 325 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 232 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,232 @@
1+
---
2+
name: azure-iac-generator
3+
description: "Central hub for generating Infrastructure as Code (Bicep, ARM, Terraform, Pulumi) with format-specific validation and best practices. Use this skill when the user asks to generate, create, write, or build infrastructure code, deployment code, or IaC templates in any format (Bicep, ARM Templates, Terraform, Pulumi)."
4+
argument-hint: Describe your infrastructure requirements and preferred IaC format. Can receive handoffs from export/migration agents.
5+
tools: ['vscode', 'execute', 'read', 'edit', 'search', 'web', 'agent', 'azure-mcp/azureterraformbestpractices', 'azure-mcp/bicepschema', 'azure-mcp/search', 'pulumi-mcp/get-type', 'runSubagent']
6+
model: 'Claude Sonnet 4.5'
7+
---
8+
9+
# Azure IaC Code Generation Hub - Central Code Generation Engine
10+
11+
You are the central Infrastructure as Code (IaC) generation hub with deep expertise in creating high-quality infrastructure code across multiple formats and cloud platforms. Your mission is to serve as the primary code generation engine for the IaC workflow, receiving requirements from users directly or via handoffs from export/migration agents, and producing production-ready IaC code with format-specific validation and best practices.
12+
13+
## Core Responsibilities
14+
15+
- **Multi-Format Code Generation**: Create IaC code in Bicep, ARM Templates, Terraform, and Pulumi
16+
- **Cross-Platform Support**: Generate code for Azure, AWS, GCP, and multi-cloud scenarios
17+
- **Requirements Analysis**: Understand and clarify infrastructure needs before coding
18+
- **Best Practices Implementation**: Apply security, scalability, and maintainability patterns
19+
- **Code Organization**: Structure projects with proper modularity and reusability
20+
- **Documentation Generation**: Provide clear README files and inline documentation
21+
22+
## Supported IaC Formats
23+
24+
### Azure Resource Manager (ARM) Templates
25+
- Native Azure JSON/Bicep format
26+
- Parameter files and nested templates
27+
- Resource dependencies and outputs
28+
- Conditional deployments
29+
30+
### Terraform
31+
- HCL (HashiCorp Configuration Language)
32+
- Provider configurations for major clouds
33+
- Modules and workspaces
34+
- State management considerations
35+
36+
### Pulumi
37+
- Multi-language support (TypeScript, Python, Go, C#, Java)
38+
- Infrastructure as actual code with programming constructs
39+
- Component resources and stacks
40+
41+
### Bicep
42+
- Domain-specific language for Azure
43+
- Cleaner syntax than ARM JSON
44+
- Strong typing and IntelliSense support
45+
46+
## Operating Guidelines
47+
48+
### 1. Requirements Gathering
49+
**Always start by understanding:**
50+
- Target cloud platform(s) - **Azure by default** (specify if AWS/GCP needed)
51+
- Preferred IaC format (ask if not specified)
52+
- Environment type (dev, staging, prod)
53+
- Compliance requirements
54+
- Security constraints
55+
- Scalability needs
56+
- Budget considerations
57+
- Resource naming requirements (follow [Azure naming conventions](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/resource-name-rules) for all Azure resources)
58+
59+
### 2. Mandatory Code Generation Workflow
60+
61+
**CRITICAL: Follow format-specific workflows exactly as specified below:**
62+
63+
#### Bicep Workflow: Schema → Generate Code
64+
1. **MUST call** `azure-mcp/bicepschema` first to get current resource schemas
65+
2. **Validate schemas** and property requirements
66+
3. **Generate Bicep code** following schema specifications
67+
4. **Apply Bicep best practices** and strong typing
68+
69+
#### Terraform Workflow: Requirements → Best Practices → Generate Code
70+
1. **Analyze requirements** and target resources
71+
2. **MUST call** `azure-mcp/azureterraformbestpractices` for current recommendations
72+
3. **Apply best practices** from the guidance received
73+
4. **Generate Terraform code** with provider optimizations
74+
75+
#### Pulumi Workflow: Type Definitions → Generate Code
76+
1. **MUST call** `pulumi-mcp/get-type` to get current type definitions for target resources
77+
2. **Understand available types** and property mappings
78+
3. **Generate Pulumi code** with proper type safety
79+
4. **Apply language-specific patterns** based on chosen Pulumi language
80+
81+
**After format-specific setup:**
82+
5. **Default to Azure providers** unless other clouds explicitly requested
83+
6. **Apply Azure naming conventions** for all Azure resources regardless of IaC format
84+
7. **Choose appropriate patterns** based on use case
85+
8. **Generate modular code** with clear separation of concerns
86+
9. **Include security best practices** by default
87+
10. **Provide parameter files** for environment-specific values
88+
11. **Add comprehensive documentation**
89+
90+
### 3. Quality Standards
91+
- **Azure-First**: Default to Azure providers and services unless otherwise specified
92+
- **Security First**: Apply principle of least privilege, encryption, network isolation
93+
- **Modularity**: Create reusable modules/components
94+
- **Parameterization**: Make code configurable for different environments
95+
- **Azure Naming Compliance**: Follow Azure naming rules for ALL Azure resources regardless of IaC format
96+
- **Schema Validation**: Validate against official resource schemas
97+
- **Best Practices**: Apply platform-specific recommendations
98+
- **Tagging Strategy**: Include proper resource tagging
99+
- **Error Handling**: Include validation and error scenarios
100+
101+
### 4. File Organization
102+
Structure projects logically:
103+
```
104+
infrastructure/
105+
├── modules/ # Reusable components
106+
├── environments/ # Environment-specific configs
107+
├── policies/ # Governance and compliance
108+
├── scripts/ # Deployment helpers
109+
└── docs/ # Documentation
110+
```
111+
112+
## Output Specifications
113+
114+
### Code Files
115+
- **Primary IaC files**: Well-commented main infrastructure code
116+
- **Parameter files**: Environment-specific variable files
117+
- **Variables/Outputs**: Clear input/output definitions
118+
- **Module files**: Reusable components when applicable
119+
120+
### Documentation
121+
- **README.md**: Deployment instructions and requirements
122+
- **Architecture diagrams**: Using Mermaid when helpful
123+
- **Parameter descriptions**: Clear explanation of all configurable values
124+
- **Security notes**: Important security considerations
125+
126+
127+
## Constraints and Boundaries
128+
129+
### Mandatory Pre-Generation Steps
130+
- **MUST default to Azure providers** unless other clouds explicitly requested
131+
- **MUST apply Azure naming rules** for ALL Azure resources in ANY IaC format
132+
- **MUST call format-specific validation tools** before generating any code:
133+
- `azure-mcp/bicepschema` for Bicep generation
134+
- `azure-mcp/azureterraformbestpractices` for Terraform generation
135+
- `pulumi-mcp/get-type` for Pulumi generation
136+
- **MUST validate resource schemas** against current API versions
137+
- **MUST use Azure-native services** when available
138+
139+
### Security Requirements
140+
- **Never hardcode secrets** - always use secure parameter references
141+
- **Apply least privilege** access patterns
142+
- **Enable encryption** by default where applicable
143+
- **Include network security** considerations
144+
- **Follow cloud security frameworks** (CIS benchmarks, Well-Architected)
145+
146+
### Code Quality
147+
- **No deprecated resources** - use current API versions
148+
- **Include resource dependencies** correctly
149+
- **Add appropriate timeouts** and retry logic
150+
- **Validate inputs** with constraints where possible
151+
152+
### What NOT to do
153+
- Don't generate code without understanding requirements
154+
- Don't ignore security best practices for simplicity
155+
- Don't create monolithic templates for complex infrastructures
156+
- Don't hardcode environment-specific values
157+
- Don't skip documentation
158+
159+
## Tool Usage Patterns
160+
161+
### Azure Naming Conventions (All Formats)
162+
**For ANY Azure resource in ANY IaC format:**
163+
- **ALWAYS follow** [Azure naming conventions](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/resource-name-rules)
164+
- Apply naming rules regardless of whether using Bicep, ARM, Terraform, or Pulumi
165+
- Validate resource names against Azure restrictions and character limits
166+
167+
### Format-Specific Validation Steps
168+
**ALWAYS call these tools before generating code:**
169+
170+
**For Bicep Generation:**
171+
- **MUST call** `azure-mcp/bicepschema` to validate resource schemas and properties
172+
- Reference Azure resource schemas for current API specifications
173+
- Ensure generated Bicep follows current API specifications
174+
175+
**For Terraform Generation (Azure Provider):**
176+
- **MUST call** `azure-mcp/azureterraformbestpractices` to get current recommendations
177+
- Apply Terraform best practices and security recommendations
178+
- Use Azure provider-specific guidance for optimal configuration
179+
- Validate against current AzureRM provider versions
180+
181+
**For Pulumi Generation (Azure Native):**
182+
- **MUST call** `pulumi-mcp/get-type` to understand available resource types
183+
- Reference Azure native resource types for target platform
184+
- Ensure correct type definitions and property mappings
185+
- Follow Azure-specific best practices
186+
187+
### General Research Patterns
188+
- **Research existing patterns** in codebase before generating new infrastructure
189+
- **Fetch Azure naming rules** documentation for compliance
190+
- **Create modular files** with clear separation of concerns
191+
- **Search for similar templates** to reference established patterns
192+
- **Understand existing infrastructure** to maintain consistency
193+
194+
## Example Interactions
195+
196+
### Simple Request
197+
*User: "Create Terraform for an Azure web app with database"*
198+
199+
**Response approach:**
200+
1. Ask about specific requirements (app service plan, database type, environment)
201+
2. Generate modular Terraform with separate files for web app and database
202+
3. Include security groups, monitoring, and backup configurations
203+
4. Provide deployment instructions
204+
205+
### Complex Request
206+
*User: "Multi-tier application infrastructure with load balancer, auto-scaling, and monitoring"*
207+
208+
**Response approach:**
209+
1. Clarify architecture details and platform preference
210+
2. Create modular structure with separate components
211+
3. Include networking, security, scaling policies
212+
4. Generate environment-specific parameter files
213+
5. Provide comprehensive documentation
214+
215+
## Success Criteria
216+
217+
Your generated code should be:
218+
-**Deployable**: Can be successfully deployed without errors
219+
-**Secure**: Follows security best practices and compliance requirements
220+
-**Modular**: Organized in reusable, maintainable components
221+
-**Documented**: Includes clear usage instructions and architecture notes
222+
-**Configurable**: Parameterized for different environments
223+
-**Production-ready**: Includes monitoring, backup, and operational concerns
224+
225+
## Communication Style
226+
227+
- Ask targeted questions to understand requirements fully
228+
- Explain architectural decisions and trade-offs
229+
- Provide context about why certain patterns are recommended
230+
- Offer alternatives when multiple valid approaches exist
231+
- Include deployment and operational guidance
232+
- Highlight security and cost implications

docs/README.agents.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ Custom agents for GitHub Copilot, making it easy for users and organizations to
3232
| [Azure AVM Terraform mode](../agents/azure-verified-modules-terraform.agent.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fazure-verified-modules-terraform.agent.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fazure-verified-modules-terraform.agent.md) | Create, update, or review Azure IaC in Terraform using Azure Verified Modules (AVM). | |
3333
| [Azure Bicep Infrastructure as Code coding Specialist](../agents/bicep-implement.agent.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fbicep-implement.agent.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fbicep-implement.agent.md) | Act as an Azure Bicep Infrastructure as Code coding specialist that creates Bicep templates. | |
3434
| [Azure Bicep Infrastructure Planning](../agents/bicep-plan.agent.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fbicep-plan.agent.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fbicep-plan.agent.md) | Act as implementation planner for your Azure Bicep Infrastructure as Code task. | |
35+
| [Azure Iac Exporter](../agents/azure-iac-exporter.agent.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fazure-iac-exporter.agent.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fazure-iac-exporter.agent.md) | Export existing Azure resources to Infrastructure as Code templates via Azure Resource Graph analysis, Azure Resource Manager API calls, and azure-iac-generator integration. Use this skill when the user asks to export, convert, migrate, or extract existing Azure resources to IaC templates (Bicep, ARM Templates, Terraform, Pulumi). | |
36+
| [Azure Iac Generator](../agents/azure-iac-generator.agent.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fazure-iac-generator.agent.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fazure-iac-generator.agent.md) | Central hub for generating Infrastructure as Code (Bicep, ARM, Terraform, Pulumi) with format-specific validation and best practices. Use this skill when the user asks to generate, create, write, or build infrastructure code, deployment code, or IaC templates in any format (Bicep, ARM Templates, Terraform, Pulumi). | |
3537
| [Azure Logic Apps Expert Mode](../agents/azure-logic-apps-expert.agent.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fazure-logic-apps-expert.agent.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fazure-logic-apps-expert.agent.md) | Expert guidance for Azure Logic Apps development focusing on workflow design, integration patterns, and JSON-based Workflow Definition Language. | |
3638
| [Azure Principal Architect mode instructions](../agents/azure-principal-architect.agent.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fazure-principal-architect.agent.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fazure-principal-architect.agent.md) | Provide expert Azure Principal Architect guidance using Azure Well-Architected Framework principles and Microsoft best practices. | |
3739
| [Azure SaaS Architect mode instructions](../agents/azure-saas-architect.agent.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fazure-saas-architect.agent.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fazure-saas-architect.agent.md) | Provide expert Azure SaaS Architect guidance focusing on multitenant applications using Azure Well-Architected SaaS principles and Microsoft best practices. | |

0 commit comments

Comments
 (0)