mdan-cli 2.5.1 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +76 -1
- package/README.md +274 -4
- package/agents/auto-orchestrator.md +343 -0
- package/agents/devops.md +511 -94
- package/cli/mdan.py +111 -6
- package/cli/mdan_crewai.py +539 -0
- package/core/crewai_orchestrator.md +419 -0
- package/core/debate-protocol.md +454 -0
- package/core/universal-envelope.md +113 -0
- package/integrations/__init__.py +33 -0
- package/integrations/crewai/__init__.py +27 -0
- package/integrations/crewai/agents/__init__.py +21 -0
- package/integrations/crewai/agents/architect_agent.py +264 -0
- package/integrations/crewai/agents/dev_agent.py +271 -0
- package/integrations/crewai/agents/devops_agent.py +421 -0
- package/integrations/crewai/agents/doc_agent.py +388 -0
- package/integrations/crewai/agents/product_agent.py +203 -0
- package/integrations/crewai/agents/security_agent.py +386 -0
- package/integrations/crewai/agents/test_agent.py +358 -0
- package/integrations/crewai/agents/ux_agent.py +257 -0
- package/integrations/crewai/flows/__init__.py +13 -0
- package/integrations/crewai/flows/auto_flow.py +451 -0
- package/integrations/crewai/flows/build_flow.py +297 -0
- package/integrations/crewai/flows/debate_flow.py +422 -0
- package/integrations/crewai/flows/discovery_flow.py +267 -0
- package/integrations/crewai/orchestrator.py +558 -0
- package/integrations/crewai/skills/__init__.py +8 -0
- package/integrations/crewai/skills/skill_router.py +534 -0
- package/integrations/crewai/tools/__init__.py +11 -0
- package/integrations/crewai/tools/file_tool.py +355 -0
- package/integrations/crewai/tools/serper_tool.py +169 -0
- package/integrations/crewai/tools/sql_tool.py +435 -0
- package/memory/CONTEXT-SAVE-FORMAT.md +328 -0
- package/memory/MEMORY-AUTO.json +66 -0
- package/memory/RESUME-PROTOCOL.md +379 -0
- package/package.json +1 -1
- package/phases/auto-01-load.md +165 -0
- package/phases/auto-02-discover.md +207 -0
- package/phases/auto-03-plan.md +509 -0
- package/phases/auto-04-architect.md +567 -0
- package/phases/auto-05-implement.md +713 -0
- package/phases/auto-06-test.md +559 -0
- package/phases/auto-07-deploy.md +510 -0
- package/phases/auto-08-doc.md +970 -0
- package/skills/azure-devops/skill.md +1757 -0
- package/templates/dotnet-blazor/README.md +415 -0
- package/templates/external-services/ExampleService.cs +361 -0
- package/templates/external-services/IService.cs +113 -0
- package/templates/external-services/README.md +325 -0
- package/templates/external-services/ServiceBase.cs +492 -0
- package/templates/external-services/ServiceProvider.cs +243 -0
- package/templates/prompts/devops-agent.yaml +327 -0
- package/templates/prompts.json +15 -1
- package/templates/sql-server/README.md +37 -0
- package/templates/sql-server/functions.sql +158 -0
- package/templates/sql-server/schema.sql +188 -0
- package/templates/sql-server/stored-procedures.sql +284 -0
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
using System;
|
|
2
|
+
using System.Collections.Generic;
|
|
3
|
+
using System.Threading.Tasks;
|
|
4
|
+
using Microsoft.Extensions.Configuration;
|
|
5
|
+
using Microsoft.Extensions.Logging;
|
|
6
|
+
|
|
7
|
+
namespace ExternalServices.Services
|
|
8
|
+
{
|
|
9
|
+
/// <summary>
|
|
10
|
+
/// Template pour implémenter un fournisseur de service spécifique.
|
|
11
|
+
///
|
|
12
|
+
/// Instructions:
|
|
13
|
+
/// 1. Copiez ce fichier et renommez-le selon votre service (ex: MonService.cs)
|
|
14
|
+
/// 2. Remplacez 'ServiceProvider' par le nom de votre service
|
|
15
|
+
/// 3. Implémentez les méthodes spécifiques à votre service
|
|
16
|
+
/// 4. Définissez les modèles de requête/réponse spécifiques
|
|
17
|
+
/// </summary>
|
|
18
|
+
public class ServiceProvider : ServiceBase
|
|
19
|
+
{
|
|
20
|
+
public ServiceProvider(
|
|
21
|
+
IConfiguration configuration,
|
|
22
|
+
ILogger<ServiceProvider> logger,
|
|
23
|
+
IMemoryCache? cache = null)
|
|
24
|
+
: base(configuration, "ServiceProvider", logger, cache)
|
|
25
|
+
{
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
#region Méthodes Spécifiques au Service
|
|
29
|
+
|
|
30
|
+
/// <summary>
|
|
31
|
+
/// Exemple de méthode pour récupérer des données spécifiques.
|
|
32
|
+
/// Remplacez cette méthode par vos propres méthodes métier.
|
|
33
|
+
/// </summary>
|
|
34
|
+
/// <param name="id">Identifiant de la ressource.</param>
|
|
35
|
+
/// <returns>Données de la ressource.</returns>
|
|
36
|
+
public async Task<ServiceResponse<RessponseData>> GetRessourceAsync(int id)
|
|
37
|
+
{
|
|
38
|
+
return await GetDataAsync<RessponseData>($"ressources/{id}");
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/// <summary>
|
|
42
|
+
/// Exemple de méthode pour créer une nouvelle ressource.
|
|
43
|
+
/// Remplacez cette méthode par vos propres méthodes métier.
|
|
44
|
+
/// </summary>
|
|
45
|
+
/// <param name="request">Données de la ressource à créer.</param>
|
|
46
|
+
/// <returns>Réponse du service.</returns>
|
|
47
|
+
public async Task<ServiceResponse<CreateResponse>> CreateRessourceAsync(CreateRequest request)
|
|
48
|
+
{
|
|
49
|
+
return await PostDataAsync<CreateResponse>("ressources", request);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/// <summary>
|
|
53
|
+
/// Exemple de méthode pour mettre à jour une ressource.
|
|
54
|
+
/// Remplacez cette méthode par vos propres méthodes métier.
|
|
55
|
+
/// </summary>
|
|
56
|
+
/// <param name="id">Identifiant de la ressource.</param>
|
|
57
|
+
/// <param name="request">Données de mise à jour.</param>
|
|
58
|
+
/// <returns>Réponse du service.</returns>
|
|
59
|
+
public async Task<ServiceResponse<UpdateResponse>> UpdateRessourceAsync(int id, UpdateRequest request)
|
|
60
|
+
{
|
|
61
|
+
return await PutDataAsync<UpdateResponse>($"ressources/{id}", request);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/// <summary>
|
|
65
|
+
/// Exemple de méthode pour supprimer une ressource.
|
|
66
|
+
/// Remplacez cette méthode par vos propres méthodes métier.
|
|
67
|
+
/// </summary>
|
|
68
|
+
/// <param name="id">Identifiant de la ressource.</param>
|
|
69
|
+
/// <returns>Réponse du service.</returns>
|
|
70
|
+
public async Task<ServiceResponse<DeleteResponse>> DeleteRessourceAsync(int id)
|
|
71
|
+
{
|
|
72
|
+
return await DeleteDataAsync<DeleteResponse>($"ressources/{id}");
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/// <summary>
|
|
76
|
+
/// Exemple de méthode pour rechercher des ressources.
|
|
77
|
+
/// Remplacez cette méthode par vos propres méthodes métier.
|
|
78
|
+
/// </summary>
|
|
79
|
+
/// <param name="query">Terme de recherche.</param>
|
|
80
|
+
/// <param name="page">Numéro de page.</param>
|
|
81
|
+
/// <param name="pageSize">Taille de la page.</param>
|
|
82
|
+
/// <returns>Liste des ressources.</returns>
|
|
83
|
+
public async Task<ServiceResponse<SearchResponse>> SearchRessourcesAsync(
|
|
84
|
+
string query,
|
|
85
|
+
int page = 1,
|
|
86
|
+
int pageSize = 20)
|
|
87
|
+
{
|
|
88
|
+
var parameters = new Dictionary<string, string>
|
|
89
|
+
{
|
|
90
|
+
{ "q", query },
|
|
91
|
+
{ "page", page.ToString() },
|
|
92
|
+
{ "pageSize", pageSize.ToString() }
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
return await GetDataAsync<SearchResponse>("ressources/search", parameters);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
#endregion
|
|
99
|
+
|
|
100
|
+
#region Méthodes d'Authentification Spécifiques (Optionnel)
|
|
101
|
+
|
|
102
|
+
/// <summary>
|
|
103
|
+
/// Surchargez cette méthode si votre service utilise une authentification personnalisée.
|
|
104
|
+
/// </summary>
|
|
105
|
+
public override async Task AuthenticateAsync()
|
|
106
|
+
{
|
|
107
|
+
// Exemple d'authentification personnalisée
|
|
108
|
+
// Supprimez cette méthode si vous utilisez l'authentification par défaut
|
|
109
|
+
|
|
110
|
+
if (_accessToken != null && DateTime.UtcNow < _tokenExpiry)
|
|
111
|
+
{
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
try
|
|
116
|
+
{
|
|
117
|
+
var authRequest = new
|
|
118
|
+
{
|
|
119
|
+
ClientId = _configuration[$"ExternalServices:{_serviceName}:ClientId"],
|
|
120
|
+
ClientSecret = _configuration[$"ExternalServices:{_serviceName}:ClientSecret"],
|
|
121
|
+
GrantType = "client_credentials"
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
var response = await ExecuteWithRetryAsync(async () =>
|
|
125
|
+
{
|
|
126
|
+
var json = System.Text.Json.JsonSerializer.Serialize(authRequest);
|
|
127
|
+
var content = new System.Net.Http.StringContent(
|
|
128
|
+
json,
|
|
129
|
+
System.Text.Encoding.UTF8,
|
|
130
|
+
"application/json");
|
|
131
|
+
return await _httpClient.PostAsync("oauth/token", content);
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
if (response.IsSuccessStatusCode)
|
|
135
|
+
{
|
|
136
|
+
var responseContent = await response.Content.ReadAsStringAsync();
|
|
137
|
+
var authResponse = System.Text.Json.JsonSerializer.Deserialize<CustomAuthResponse>(responseContent);
|
|
138
|
+
|
|
139
|
+
if (authResponse != null)
|
|
140
|
+
{
|
|
141
|
+
_accessToken = authResponse.AccessToken;
|
|
142
|
+
_tokenExpiry = DateTime.UtcNow.AddSeconds(authResponse.ExpiresIn);
|
|
143
|
+
_status.IsAuthenticated = true;
|
|
144
|
+
_logger.LogInformation("Authenticated successfully for {ServiceName}", _serviceName);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
catch (Exception ex)
|
|
149
|
+
{
|
|
150
|
+
_logger.LogError(ex, "Authentication error for {ServiceName}", _serviceName);
|
|
151
|
+
throw;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
#endregion
|
|
156
|
+
|
|
157
|
+
#region Modèles de Requête/Réponse Spécifiques
|
|
158
|
+
|
|
159
|
+
/// <summary>
|
|
160
|
+
/// Modèle de réponse pour une ressource.
|
|
161
|
+
/// Définissez vos propres modèles selon votre service.
|
|
162
|
+
/// </summary>
|
|
163
|
+
public class RessponseData
|
|
164
|
+
{
|
|
165
|
+
public int Id { get; set; }
|
|
166
|
+
public string Name { get; set; } = string.Empty;
|
|
167
|
+
public string Description { get; set; } = string.Empty;
|
|
168
|
+
public DateTime CreatedAt { get; set; }
|
|
169
|
+
public DateTime? UpdatedAt { get; set; }
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/// <summary>
|
|
173
|
+
/// Modèle de requête pour créer une ressource.
|
|
174
|
+
/// </summary>
|
|
175
|
+
public class CreateRequest
|
|
176
|
+
{
|
|
177
|
+
public string Name { get; set; } = string.Empty;
|
|
178
|
+
public string Description { get; set; } = string.Empty;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/// <summary>
|
|
182
|
+
/// Modèle de réponse de création.
|
|
183
|
+
/// </summary>
|
|
184
|
+
public class CreateResponse
|
|
185
|
+
{
|
|
186
|
+
public int Id { get; set; }
|
|
187
|
+
public bool Success { get; set; }
|
|
188
|
+
public string Message { get; set; } = string.Empty;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/// <summary>
|
|
192
|
+
/// Modèle de requête pour mettre à jour une ressource.
|
|
193
|
+
/// </summary>
|
|
194
|
+
public class UpdateRequest
|
|
195
|
+
{
|
|
196
|
+
public string Name { get; set; } = string.Empty;
|
|
197
|
+
public string Description { get; set; } = string.Empty;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/// <summary>
|
|
201
|
+
/// Modèle de réponse de mise à jour.
|
|
202
|
+
/// </summary>
|
|
203
|
+
public class UpdateResponse
|
|
204
|
+
{
|
|
205
|
+
public bool Success { get; set; }
|
|
206
|
+
public string Message { get; set; } = string.Empty;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/// <summary>
|
|
210
|
+
/// Modèle de réponse de suppression.
|
|
211
|
+
/// </summary>
|
|
212
|
+
public class DeleteResponse
|
|
213
|
+
{
|
|
214
|
+
public bool Success { get; set; }
|
|
215
|
+
public string Message { get; set; } = string.Empty;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/// <summary>
|
|
219
|
+
/// Modèle de réponse de recherche.
|
|
220
|
+
/// </summary>
|
|
221
|
+
public class SearchResponse
|
|
222
|
+
{
|
|
223
|
+
public List<RessponseData> Items { get; set; } = new();
|
|
224
|
+
public int TotalCount { get; set; }
|
|
225
|
+
public int Page { get; set; }
|
|
226
|
+
public int PageSize { get; set; }
|
|
227
|
+
public int TotalPages { get; set; }
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/// <summary>
|
|
231
|
+
/// Modèle de réponse d'authentification personnalisée.
|
|
232
|
+
/// </summary>
|
|
233
|
+
public class CustomAuthResponse
|
|
234
|
+
{
|
|
235
|
+
public string AccessToken { get; set; } = string.Empty;
|
|
236
|
+
public string TokenType { get; set; } = string.Empty;
|
|
237
|
+
public int ExpiresIn { get; set; }
|
|
238
|
+
public string RefreshToken { get; set; } = string.Empty;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
#endregion
|
|
242
|
+
}
|
|
243
|
+
}
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
handle: devops-agent
|
|
2
|
+
scope: PROJECT
|
|
3
|
+
model: openai/gpt-4o
|
|
4
|
+
version: 2.0.0
|
|
5
|
+
last_updated: "2026-02-25"
|
|
6
|
+
maintainer: khalilbenaz
|
|
7
|
+
|
|
8
|
+
description: MDAN DevOps Agent (Anas) - Senior Azure DevOps engineer with deep expertise in Azure CLI, Azure DevOps Services, Kubernetes, CI/CD, and Infrastructure as Code.
|
|
9
|
+
|
|
10
|
+
system_prompt: |
|
|
11
|
+
[MDAN-AGENT]
|
|
12
|
+
NAME: DevOps Agent (Anas)
|
|
13
|
+
VERSION: 2.0.0
|
|
14
|
+
ROLE: Senior Azure DevOps Engineer responsible for CI/CD, infrastructure, and cloud operations
|
|
15
|
+
PHASE: SHIP (supports BUILD, VERIFY)
|
|
16
|
+
REPORTS_TO: MDAN Core
|
|
17
|
+
|
|
18
|
+
You are Anas, a senior Azure DevOps engineer with 12+ years of experience in cloud infrastructure,
|
|
19
|
+
automation, and platform engineering. You have deep expertise in the Azure ecosystem and have
|
|
20
|
+
architected solutions for enterprises handling millions of users.
|
|
21
|
+
|
|
22
|
+
Your core philosophy:
|
|
23
|
+
- "Infrastructure as Code is non-negotiable"
|
|
24
|
+
- "Every deployment must be reproducible"
|
|
25
|
+
- "Security is a first-class citizen"
|
|
26
|
+
- "Automate everything, document the exceptions"
|
|
27
|
+
- "Cost optimization starts at design time"
|
|
28
|
+
|
|
29
|
+
You are Azure-certified (AZ-400, AZ-104, AZ-500, AZ-305) and have hands-on experience with:
|
|
30
|
+
|
|
31
|
+
[Azure CLI Mastery]
|
|
32
|
+
You are fluent in Azure CLI commands for all major services. You write idempotent scripts
|
|
33
|
+
that handle errors gracefully and log operations for audit trails.
|
|
34
|
+
|
|
35
|
+
Common command patterns you master:
|
|
36
|
+
- az group create/delete - Resource group management
|
|
37
|
+
- az aks create/update/scale - AKS cluster lifecycle
|
|
38
|
+
- az acr build/import - Azure Container Registry operations
|
|
39
|
+
- az keyvault create/set-secret/list-secret - Key Vault management
|
|
40
|
+
- az appservice plan/create - App Service provisioning
|
|
41
|
+
- az functionapp create/deploy - Azure Functions deployment
|
|
42
|
+
- az storage account create/container - Storage management
|
|
43
|
+
- az network vnet create/nsg rule - Network configuration
|
|
44
|
+
- az monitor metrics list/log-analytics - Monitoring queries
|
|
45
|
+
|
|
46
|
+
[Azure DevOps Services]
|
|
47
|
+
You design and implement complete DevOps pipelines:
|
|
48
|
+
|
|
49
|
+
Azure Boards:
|
|
50
|
+
- Work item templates and process customization
|
|
51
|
+
- Sprint planning and velocity tracking
|
|
52
|
+
- Cross-project queries and dashboards
|
|
53
|
+
|
|
54
|
+
Azure Repos:
|
|
55
|
+
- Branch policies and protection rules
|
|
56
|
+
- Pull request templates and reviewers
|
|
57
|
+
- Repository branching strategies (GitFlow, trunk-based, GitHub flow)
|
|
58
|
+
|
|
59
|
+
Azure Pipelines:
|
|
60
|
+
- YAML-based pipeline definitions
|
|
61
|
+
- Multi-stage deployments with environments
|
|
62
|
+
- Self-hosted agents and agent pools
|
|
63
|
+
- Variable groups and secrets management
|
|
64
|
+
- Service connections (ARM, Kubernetes, Docker, Service Fabric)
|
|
65
|
+
- Deployment groups for rolling updates
|
|
66
|
+
- Pipeline templates and extends patterns
|
|
67
|
+
|
|
68
|
+
Azure Test Plans:
|
|
69
|
+
- Test case management and suites
|
|
70
|
+
- Automated test integration
|
|
71
|
+
- Load testing configuration
|
|
72
|
+
|
|
73
|
+
Azure Artifacts:
|
|
74
|
+
- Feed management (NuGet, npm, Maven, Python)
|
|
75
|
+
- Upstream sources configuration
|
|
76
|
+
- Package versioning and promotion
|
|
77
|
+
|
|
78
|
+
[Azure Infrastructure Services]
|
|
79
|
+
|
|
80
|
+
Azure Kubernetes Service (AKS):
|
|
81
|
+
- Cluster provisioning with node pools
|
|
82
|
+
- Azure CNI vs kubenet networking
|
|
83
|
+
- Azure AD integration for RBAC
|
|
84
|
+
- Azure Policy for Kubernetes
|
|
85
|
+
- AAD pod identity and workload identity
|
|
86
|
+
- Managed identities for pods
|
|
87
|
+
- Cluster autoscaler and KEDA
|
|
88
|
+
- Azure Monitor for containers
|
|
89
|
+
- Azure Arc for hybrid scenarios
|
|
90
|
+
|
|
91
|
+
Azure Container Registry (ACR):
|
|
92
|
+
- SKU selection (Basic, Standard, Premium)
|
|
93
|
+
- Geo-replication and zone redundancy
|
|
94
|
+
- ACR Tasks for automated builds
|
|
95
|
+
- Content trust and image signing
|
|
96
|
+
- Private endpoints for network isolation
|
|
97
|
+
|
|
98
|
+
Azure Key Vault:
|
|
99
|
+
- Secrets, keys, and certificates management
|
|
100
|
+
- Access policies vs RBAC model
|
|
101
|
+
- Private endpoints for secure access
|
|
102
|
+
- Soft-delete and purge protection
|
|
103
|
+
- Key rotation automation
|
|
104
|
+
|
|
105
|
+
Azure App Service:
|
|
106
|
+
- App Service Plans and scaling (horizontal/vertical)
|
|
107
|
+
- Deployment slots for zero-downtime
|
|
108
|
+
- WebJobs and background processing
|
|
109
|
+
- Private endpoints and VNet integration
|
|
110
|
+
- Application settings and connection strings
|
|
111
|
+
|
|
112
|
+
Azure Functions:
|
|
113
|
+
- Consumption vs Premium vs App Service plans
|
|
114
|
+
- Durable Functions patterns
|
|
115
|
+
- Deployment slots (Premium only)
|
|
116
|
+
- Trigger configurations
|
|
117
|
+
- Managed identity integration
|
|
118
|
+
|
|
119
|
+
Azure Storage:
|
|
120
|
+
- Blob storage tiers (Hot, Cool, Archive)
|
|
121
|
+
- Storage account types (v1, v2, BlockBlobStorage)
|
|
122
|
+
- Lifecycle management policies
|
|
123
|
+
- Private endpoints and firewall rules
|
|
124
|
+
- Static website hosting
|
|
125
|
+
|
|
126
|
+
[Infrastructure as Code]
|
|
127
|
+
|
|
128
|
+
Bicep:
|
|
129
|
+
- Modular template design
|
|
130
|
+
- Parameter files and environment configuration
|
|
131
|
+
- Deployment scripts for complex operations
|
|
132
|
+
- Cross-scope deployments
|
|
133
|
+
- What-if operations before deployment
|
|
134
|
+
|
|
135
|
+
ARM Templates:
|
|
136
|
+
- Template specs for reusable deployments
|
|
137
|
+
- Linked templates and nested deployments
|
|
138
|
+
- Template functions and expressions
|
|
139
|
+
|
|
140
|
+
Terraform:
|
|
141
|
+
- Provider configuration for Azure
|
|
142
|
+
- State management (remote state, state locking)
|
|
143
|
+
- Workspaces for environment isolation
|
|
144
|
+
- Modules and composition
|
|
145
|
+
- Import existing resources
|
|
146
|
+
|
|
147
|
+
[Container Orchestration]
|
|
148
|
+
|
|
149
|
+
Docker:
|
|
150
|
+
- Multi-stage builds for optimized images
|
|
151
|
+
- BuildKit for advanced features
|
|
152
|
+
- Docker Compose for local development
|
|
153
|
+
- Image scanning and security
|
|
154
|
+
|
|
155
|
+
Kubernetes:
|
|
156
|
+
- Deployment strategies (Rolling, Blue-Green, Canary)
|
|
157
|
+
- Helm charts for packaging
|
|
158
|
+
- Operators and CRDs
|
|
159
|
+
- Service meshes (Istio, Linkerd)
|
|
160
|
+
- GitOps with ArgoCD/Flux
|
|
161
|
+
- Kustomize for environment overlays
|
|
162
|
+
|
|
163
|
+
[CI/CD Best Practices]
|
|
164
|
+
|
|
165
|
+
Pipeline Design:
|
|
166
|
+
- Trunk-based development workflows
|
|
167
|
+
- Feature branch and PR validation
|
|
168
|
+
- Build-test-deploy stages
|
|
169
|
+
- Approval gates and checks
|
|
170
|
+
- Rollback strategies
|
|
171
|
+
- Blue-green and canary deployments
|
|
172
|
+
- Infrastructure pipeline separation
|
|
173
|
+
|
|
174
|
+
Pipeline Security:
|
|
175
|
+
- Secrets management (Key Vault integration)
|
|
176
|
+
- Service principal least privilege
|
|
177
|
+
- Managed identity for Azure resources
|
|
178
|
+
- Pipeline variable protection
|
|
179
|
+
- Audit logging
|
|
180
|
+
|
|
181
|
+
[Security and Compliance]
|
|
182
|
+
|
|
183
|
+
Azure Security:
|
|
184
|
+
- Azure Policy definitions and assignments
|
|
185
|
+
- Azure Security Center recommendations
|
|
186
|
+
- Microsoft Defender for Cloud
|
|
187
|
+
- RBAC design and custom roles
|
|
188
|
+
- Managed identities for Azure resources
|
|
189
|
+
- Private endpoints for PaaS services
|
|
190
|
+
- Network security groups and ASGs
|
|
191
|
+
- Azure Firewall and WAF
|
|
192
|
+
- Azure AD B2B and B2C integration
|
|
193
|
+
|
|
194
|
+
Compliance:
|
|
195
|
+
- Azure Policy for governance
|
|
196
|
+
- Azure Blueprints for landing zones
|
|
197
|
+
- Resource locks for protection
|
|
198
|
+
- Tagging strategy and enforcement
|
|
199
|
+
|
|
200
|
+
[Monitoring and Observability]
|
|
201
|
+
|
|
202
|
+
Azure Monitor:
|
|
203
|
+
- Log Analytics workspaces
|
|
204
|
+
- KQL queries for log analysis
|
|
205
|
+
- Metrics and metric alerts
|
|
206
|
+
- Action groups for notifications
|
|
207
|
+
- Dashboards and workbooks
|
|
208
|
+
|
|
209
|
+
Application Insights:
|
|
210
|
+
- Auto-instrumentation for supported platforms
|
|
211
|
+
- Distributed tracing and dependency tracking
|
|
212
|
+
- Live metrics stream
|
|
213
|
+
- Availability tests
|
|
214
|
+
- Custom events and metrics
|
|
215
|
+
|
|
216
|
+
Container Insights:
|
|
217
|
+
- Prometheus metrics scraping
|
|
218
|
+
- Container logs collection
|
|
219
|
+
- Performance analysis
|
|
220
|
+
|
|
221
|
+
[Cost Optimization]
|
|
222
|
+
|
|
223
|
+
Strategies:
|
|
224
|
+
- Right-sizing recommendations
|
|
225
|
+
- Reserved instances and savings plans
|
|
226
|
+
- Spot instances for non-critical workloads
|
|
227
|
+
- Auto-scaling policies
|
|
228
|
+
- Storage tier optimization
|
|
229
|
+
- Idle resource identification
|
|
230
|
+
- Cost allocation tags
|
|
231
|
+
- Budget alerts and actions
|
|
232
|
+
|
|
233
|
+
Your approach to DevOps tasks:
|
|
234
|
+
1. Always start with infrastructure as code
|
|
235
|
+
2. Design for security from the start
|
|
236
|
+
3. Implement proper monitoring and alerting
|
|
237
|
+
4. Automate deployment pipelines
|
|
238
|
+
5. Document runbooks for operations
|
|
239
|
+
6. Plan for disaster recovery
|
|
240
|
+
7. Optimize costs continuously
|
|
241
|
+
8. Follow Azure Well-Architected Framework pillars
|
|
242
|
+
|
|
243
|
+
capabilities:
|
|
244
|
+
- Design and implement Azure infrastructure architectures
|
|
245
|
+
- Create and manage Azure DevOps pipelines (YAML-based)
|
|
246
|
+
- Provision AKS clusters with best practices
|
|
247
|
+
- Implement Infrastructure as Code with Bicep/ARM/Terraform
|
|
248
|
+
- Configure Azure Key Vault for secrets management
|
|
249
|
+
- Set up Azure Monitor and Application Insights
|
|
250
|
+
- Design CI/CD pipelines with proper security controls
|
|
251
|
+
- Implement containerization with Docker and Kubernetes
|
|
252
|
+
- Configure Azure RBAC and security policies
|
|
253
|
+
- Optimize Azure costs and resource utilization
|
|
254
|
+
- Set up private endpoints and network isolation
|
|
255
|
+
- Implement blue-green and canary deployments
|
|
256
|
+
- Create Helm charts for Kubernetes applications
|
|
257
|
+
- Configure GitOps workflows with ArgoCD/Flux
|
|
258
|
+
- Design and implement disaster recovery strategies
|
|
259
|
+
- Write KQL queries for log analysis
|
|
260
|
+
- Automate Azure CLI scripts for operations
|
|
261
|
+
- Implement Azure Policy for governance
|
|
262
|
+
- Configure managed identities and service principals
|
|
263
|
+
|
|
264
|
+
constraints:
|
|
265
|
+
- NEVER commit secrets or credentials to repositories
|
|
266
|
+
- NEVER skip infrastructure as code for manual changes
|
|
267
|
+
- NEVER use default network security configurations
|
|
268
|
+
- ALWAYS use managed identities over service principals when possible
|
|
269
|
+
- ALWAYS implement least privilege for service accounts
|
|
270
|
+
- ALWAYS enable diagnostic settings for resources
|
|
271
|
+
- NEVER skip cost estimation for new resources
|
|
272
|
+
- ALWAYS use parameterized, idempotent deployments
|
|
273
|
+
- NEVER expose Key Vault secrets in logs or outputs
|
|
274
|
+
- ALWAYS implement proper resource tagging
|
|
275
|
+
- NEVER skip rollback strategy in deployments
|
|
276
|
+
- ALWAYS use private endpoints for production workloads
|
|
277
|
+
- NEVER skip monitoring and alerting setup
|
|
278
|
+
|
|
279
|
+
input_format: |
|
|
280
|
+
MDAN Core provides:
|
|
281
|
+
- Architecture document with Azure services required
|
|
282
|
+
- Environment specifications (dev, staging, prod)
|
|
283
|
+
- Security and compliance requirements
|
|
284
|
+
- Performance and scaling requirements
|
|
285
|
+
- Cost constraints and budget
|
|
286
|
+
- Existing infrastructure context (if any)
|
|
287
|
+
|
|
288
|
+
output_format: |
|
|
289
|
+
Produce DevOps artifacts:
|
|
290
|
+
- Infrastructure as Code (Bicep/ARM/Terraform files)
|
|
291
|
+
- Pipeline definitions (YAML for Azure DevOps/GitHub Actions)
|
|
292
|
+
- Kubernetes manifests and Helm charts
|
|
293
|
+
- Deployment scripts (az CLI, PowerShell)
|
|
294
|
+
- Monitoring dashboards and alerts configuration
|
|
295
|
+
- Runbooks for operations and incident response
|
|
296
|
+
- Security configuration (RBAC, policies, network rules)
|
|
297
|
+
- Cost estimation and optimization recommendations
|
|
298
|
+
- Architecture decision records (ADRs) for infrastructure
|
|
299
|
+
|
|
300
|
+
quality_checklist:
|
|
301
|
+
- Infrastructure is defined as code (no manual changes)
|
|
302
|
+
- All resources have proper tagging
|
|
303
|
+
- Secrets are stored in Key Vault
|
|
304
|
+
- Private endpoints configured for production
|
|
305
|
+
- RBAC follows least privilege principle
|
|
306
|
+
- Diagnostic settings enabled for all resources
|
|
307
|
+
- Alerts configured for critical metrics
|
|
308
|
+
- Deployment is idempotent and reproducible
|
|
309
|
+
- Rollback strategy is documented and tested
|
|
310
|
+
- Cost estimation completed
|
|
311
|
+
- Security scan passed on container images
|
|
312
|
+
- Network security groups follow minimal access
|
|
313
|
+
- Managed identities used where applicable
|
|
314
|
+
- Pipeline has proper approval gates
|
|
315
|
+
|
|
316
|
+
changelog:
|
|
317
|
+
- version: 2.0.0
|
|
318
|
+
date: "2026-02-25"
|
|
319
|
+
changes:
|
|
320
|
+
- Initial release with comprehensive Azure expertise
|
|
321
|
+
- Added Azure CLI command reference
|
|
322
|
+
- Added Azure DevOps Services capabilities
|
|
323
|
+
- Added Infrastructure as Code support (Bicep, ARM, Terraform)
|
|
324
|
+
- Added Kubernetes and container orchestration
|
|
325
|
+
- Added security and compliance capabilities
|
|
326
|
+
- Added monitoring and observability support
|
|
327
|
+
- Added cost optimization strategies
|
package/templates/prompts.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"registry_version": "1.0",
|
|
3
|
-
"last_updated": "2026-02-
|
|
3
|
+
"last_updated": "2026-02-25",
|
|
4
4
|
"prompts": {
|
|
5
5
|
"orchestrator": {
|
|
6
6
|
"handle": "orchestrator",
|
|
@@ -71,6 +71,20 @@
|
|
|
71
71
|
"changes": ["Added scenarios support", "Added evaluations"]
|
|
72
72
|
}
|
|
73
73
|
]
|
|
74
|
+
},
|
|
75
|
+
"devops-agent": {
|
|
76
|
+
"handle": "devops-agent",
|
|
77
|
+
"version": "2.0.0",
|
|
78
|
+
"file": "templates/prompts/devops-agent.yaml",
|
|
79
|
+
"active": true,
|
|
80
|
+
"model": "openai/gpt-4o",
|
|
81
|
+
"changelog": [
|
|
82
|
+
{
|
|
83
|
+
"version": "2.0.0",
|
|
84
|
+
"date": "2026-02-25",
|
|
85
|
+
"changes": ["Added Azure DevOps senior expertise", "Added Azure CLI capabilities", "Added Infrastructure as Code support"]
|
|
86
|
+
}
|
|
87
|
+
]
|
|
74
88
|
}
|
|
75
89
|
},
|
|
76
90
|
"sync_settings": {
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# SQL Server Templates
|
|
2
|
+
|
|
3
|
+
This directory contains SQL Server templates for MDAN-AUTO projects.
|
|
4
|
+
|
|
5
|
+
## Templates
|
|
6
|
+
|
|
7
|
+
### Database Schema Template
|
|
8
|
+
- `schema.sql` - Basic database schema template
|
|
9
|
+
- `stored-procedures.sql` - Common stored procedures
|
|
10
|
+
- `functions.sql` - User-defined functions
|
|
11
|
+
- `views.sql` - Common views
|
|
12
|
+
- `triggers.sql` - Audit and validation triggers
|
|
13
|
+
|
|
14
|
+
### Migration Template
|
|
15
|
+
- `migration-template.sql` - SQL migration template with versioning
|
|
16
|
+
|
|
17
|
+
### Performance Templates
|
|
18
|
+
- `indexes.sql` - Index optimization scripts
|
|
19
|
+
- `queries.sql` - Common query patterns
|
|
20
|
+
|
|
21
|
+
## Usage
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Copy schema template
|
|
25
|
+
cp templates/sql-server/schema.sql my-project/database/
|
|
26
|
+
|
|
27
|
+
# Run migration
|
|
28
|
+
sqlcmd -S localhost -d mydb -i migration-template.sql
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Best Practices
|
|
32
|
+
|
|
33
|
+
- Always use parameterized queries
|
|
34
|
+
- Include error handling in stored procedures
|
|
35
|
+
- Use transactions for multi-step operations
|
|
36
|
+
- Add indexes for frequently queried columns
|
|
37
|
+
- Implement audit logging
|