@polymorphism-tech/morph-spec 2.3.0 → 3.0.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.
Files changed (166) hide show
  1. package/CLAUDE.md +446 -1730
  2. package/README.md +515 -516
  3. package/bin/morph-spec.js +366 -294
  4. package/bin/task-manager.js +429 -368
  5. package/bin/validate.js +369 -268
  6. package/content/.claude/commands/morph-apply.md +221 -158
  7. package/content/.claude/commands/morph-deploy.md +529 -0
  8. package/content/.claude/commands/morph-preflight.md +227 -0
  9. package/content/.claude/commands/morph-proposal.md +122 -101
  10. package/content/.claude/commands/morph-status.md +86 -86
  11. package/content/.claude/commands/morph-troubleshoot.md +122 -0
  12. package/content/.claude/skills/infra/azure-deploy-specialist.md +699 -0
  13. package/content/.claude/skills/level-0-meta/README.md +7 -0
  14. package/content/.claude/skills/level-0-meta/code-review.md +226 -0
  15. package/content/.claude/skills/level-0-meta/morph-checklist.md +117 -0
  16. package/content/.claude/skills/level-0-meta/simulation-checklist.md +77 -0
  17. package/content/.claude/skills/level-1-workflows/README.md +7 -0
  18. package/content/.claude/skills/level-1-workflows/morph-replicate.md +213 -0
  19. package/content/.claude/{commands/morph-clarify.md → skills/level-1-workflows/phase-clarify.md} +131 -184
  20. package/content/.claude/{commands/morph-design.md → skills/level-1-workflows/phase-design.md} +213 -275
  21. package/content/.claude/skills/level-1-workflows/phase-setup.md +106 -0
  22. package/content/.claude/skills/level-1-workflows/phase-tasks.md +164 -0
  23. package/content/.claude/{commands/morph-uiux.md → skills/level-1-workflows/phase-uiux.md} +169 -211
  24. package/content/.claude/skills/level-2-domains/README.md +14 -0
  25. package/content/.claude/skills/level-2-domains/ai-agents/ai-system-architect.md +192 -0
  26. package/content/.claude/skills/{specialists → level-2-domains/architecture}/po-pm-advisor.md +197 -197
  27. package/content/.claude/skills/level-2-domains/architecture/standards-architect.md +156 -0
  28. package/content/.claude/skills/level-2-domains/backend/dotnet-senior.md +287 -0
  29. package/content/.claude/skills/level-2-domains/backend/ef-modeler.md +113 -0
  30. package/content/.claude/skills/level-2-domains/backend/hangfire-orchestrator.md +126 -0
  31. package/content/.claude/skills/level-2-domains/backend/ms-agent-expert.md +109 -0
  32. package/content/.claude/skills/level-2-domains/frontend/blazor-builder.md +210 -0
  33. package/content/.claude/skills/level-2-domains/frontend/nextjs-expert.md +154 -0
  34. package/content/.claude/skills/level-2-domains/frontend/ui-ux-designer.md +191 -0
  35. package/content/.claude/skills/{specialists → level-2-domains/infrastructure}/azure-architect.md +142 -142
  36. package/content/.claude/skills/level-2-domains/infrastructure/bicep-architect.md +126 -0
  37. package/content/.claude/skills/level-2-domains/infrastructure/container-specialist.md +131 -0
  38. package/content/.claude/skills/level-2-domains/infrastructure/devops-engineer.md +119 -0
  39. package/content/.claude/skills/level-2-domains/integrations/asaas-financial.md +130 -0
  40. package/content/.claude/skills/level-2-domains/integrations/azure-identity.md +142 -0
  41. package/content/.claude/skills/level-2-domains/integrations/clerk-auth.md +108 -0
  42. package/content/.claude/skills/level-2-domains/integrations/resend-email.md +119 -0
  43. package/content/.claude/skills/level-2-domains/quality/code-analyzer.md +235 -0
  44. package/content/.claude/skills/level-2-domains/quality/testing-specialist.md +126 -0
  45. package/content/.claude/skills/level-3-technologies/README.md +7 -0
  46. package/content/.claude/skills/level-4-patterns/README.md +7 -0
  47. package/content/.claude/skills/specialists/prompt-engineer.md +189 -0
  48. package/content/.claude/skills/specialists/seo-growth-hacker.md +320 -0
  49. package/content/.morph/config/agents.json +762 -242
  50. package/content/.morph/config/config.template.json +122 -108
  51. package/content/.morph/docs/workflows/design-impl.md +37 -0
  52. package/content/.morph/docs/workflows/enforcement-pipeline.md +668 -0
  53. package/content/.morph/docs/workflows/fast-track.md +29 -0
  54. package/content/.morph/docs/workflows/full-morph.md +76 -0
  55. package/content/.morph/docs/workflows/standard.md +44 -0
  56. package/content/.morph/docs/workflows/ui-refresh.md +39 -0
  57. package/content/.morph/examples/scheduled-reports/decisions.md +158 -0
  58. package/content/.morph/examples/scheduled-reports/proposal.md +95 -0
  59. package/content/.morph/examples/scheduled-reports/spec.md +267 -0
  60. package/content/.morph/hooks/README.md +348 -239
  61. package/content/.morph/hooks/pre-commit-agents.sh +24 -24
  62. package/content/.morph/hooks/task-completed.js +73 -0
  63. package/content/.morph/hooks/teammate-idle.js +68 -0
  64. package/content/.morph/schemas/tasks.schema.json +220 -0
  65. package/content/.morph/standards/agent-framework-blazor-ui.md +359 -0
  66. package/content/.morph/standards/agent-framework-production.md +410 -0
  67. package/content/.morph/standards/agent-framework-setup.md +413 -453
  68. package/content/.morph/standards/agent-framework-workflows.md +349 -0
  69. package/content/.morph/standards/agent-teams-workflow.md +474 -0
  70. package/content/.morph/standards/architecture.md +325 -325
  71. package/content/.morph/standards/azure.md +605 -379
  72. package/content/.morph/standards/dotnet10-migration.md +520 -494
  73. package/content/.morph/templates/CONTEXT-FEATURE.md +276 -0
  74. package/content/.morph/templates/CONTEXT.md +170 -0
  75. package/content/.morph/templates/agent.cs +163 -172
  76. package/content/.morph/templates/clarify-questions.md +159 -0
  77. package/content/.morph/templates/contracts/Commands.cs +74 -0
  78. package/content/.morph/templates/contracts/Entities.cs +25 -0
  79. package/content/.morph/templates/contracts/Queries.cs +74 -0
  80. package/content/.morph/templates/contracts/README.md +74 -0
  81. package/content/.morph/templates/decisions.md +123 -106
  82. package/content/.morph/templates/infra/azure-pipelines-deploy.yml +480 -0
  83. package/content/.morph/templates/infra/deploy-checklist.md +426 -0
  84. package/content/.morph/templates/proposal.md +141 -155
  85. package/content/.morph/templates/recap.md +94 -105
  86. package/content/.morph/templates/simulation.md +353 -0
  87. package/content/.morph/templates/spec.md +149 -148
  88. package/content/.morph/templates/state.template.json +222 -222
  89. package/content/.morph/templates/tasks.md +257 -235
  90. package/content/.morph/templates/ui-components.md +362 -276
  91. package/content/CLAUDE.md +150 -442
  92. package/detectors/structure-detector.js +245 -250
  93. package/docs/README.md +144 -149
  94. package/docs/getting-started.md +301 -302
  95. package/docs/installation.md +361 -361
  96. package/docs/validation-checklist.md +265 -266
  97. package/package.json +80 -80
  98. package/src/commands/advance-phase.js +266 -0
  99. package/src/commands/analyze-blazor-concurrency.js +193 -0
  100. package/src/commands/deploy.js +780 -0
  101. package/src/commands/detect-agents.js +167 -0
  102. package/src/commands/doctor.js +356 -280
  103. package/src/commands/generate-context.js +40 -0
  104. package/src/commands/init.js +258 -245
  105. package/src/commands/lint-fluent.js +352 -0
  106. package/src/commands/rollback-phase.js +185 -0
  107. package/src/commands/session-summary.js +291 -0
  108. package/src/commands/task.js +78 -75
  109. package/src/commands/troubleshoot.js +222 -0
  110. package/src/commands/update.js +192 -159
  111. package/src/commands/validate-blazor-state.js +210 -0
  112. package/src/commands/validate-blazor.js +156 -0
  113. package/src/commands/validate-css.js +84 -0
  114. package/src/commands/validate-phase.js +221 -0
  115. package/src/lib/blazor-concurrency-analyzer.js +288 -0
  116. package/src/lib/blazor-state-validator.js +291 -0
  117. package/src/lib/blazor-validator.js +374 -0
  118. package/src/lib/complexity-analyzer.js +441 -292
  119. package/src/lib/context-generator.js +513 -0
  120. package/src/lib/continuous-validator.js +421 -440
  121. package/src/lib/css-validator.js +352 -0
  122. package/src/lib/decision-constraint-loader.js +109 -0
  123. package/src/lib/design-system-detector.js +187 -0
  124. package/src/lib/design-system-scaffolder.js +299 -0
  125. package/src/lib/hook-executor.js +256 -0
  126. package/src/lib/recap-generator.js +205 -0
  127. package/src/lib/spec-validator.js +258 -0
  128. package/src/lib/standards-context-injector.js +287 -0
  129. package/src/lib/state-manager.js +397 -340
  130. package/src/lib/team-orchestrator.js +322 -0
  131. package/src/lib/troubleshoot-grep.js +194 -0
  132. package/src/lib/troubleshoot-index.js +144 -0
  133. package/src/lib/validation-runner.js +283 -0
  134. package/src/lib/validators/contract-compliance-validator.js +273 -0
  135. package/src/lib/validators/design-system-validator.js +231 -0
  136. package/src/utils/file-copier.js +187 -139
  137. package/content/.claude/commands/morph-costs.md +0 -206
  138. package/content/.claude/commands/morph-setup.md +0 -100
  139. package/content/.claude/commands/morph-tasks.md +0 -319
  140. package/content/.claude/skills/infra/bicep-architect.md +0 -419
  141. package/content/.claude/skills/infra/container-specialist.md +0 -437
  142. package/content/.claude/skills/infra/devops-engineer.md +0 -405
  143. package/content/.claude/skills/integrations/asaas-financial.md +0 -333
  144. package/content/.claude/skills/integrations/azure-identity.md +0 -309
  145. package/content/.claude/skills/integrations/clerk-auth.md +0 -290
  146. package/content/.claude/skills/specialists/ai-system-architect.md +0 -604
  147. package/content/.claude/skills/specialists/cost-guardian.md +0 -110
  148. package/content/.claude/skills/specialists/ef-modeler.md +0 -211
  149. package/content/.claude/skills/specialists/hangfire-orchestrator.md +0 -255
  150. package/content/.claude/skills/specialists/ms-agent-expert.md +0 -263
  151. package/content/.claude/skills/specialists/standards-architect.md +0 -78
  152. package/content/.claude/skills/specialists/ui-ux-designer.md +0 -1100
  153. package/content/.claude/skills/stacks/dotnet-blazor.md +0 -606
  154. package/content/.claude/skills/stacks/dotnet-nextjs.md +0 -402
  155. package/content/.claude/skills/stacks/shopify.md +0 -445
  156. package/content/.morph/config/azure-pricing.json +0 -70
  157. package/content/.morph/config/azure-pricing.schema.json +0 -50
  158. package/content/.morph/hooks/pre-commit-costs.sh +0 -91
  159. package/docs/api/cost-calculator.js.html +0 -513
  160. package/docs/api/design-system-generator.js.html +0 -382
  161. package/docs/api/global.html +0 -5263
  162. package/docs/api/index.html +0 -96
  163. package/docs/api/state-manager.js.html +0 -423
  164. package/src/commands/cost.js +0 -181
  165. package/src/commands/update-pricing.js +0 -206
  166. package/src/lib/cost-calculator.js +0 -429
@@ -1,263 +0,0 @@
1
- # Agent Framework Expert
2
-
3
- Especialista em Microsoft Agent Framework e integração de IA em aplicações .NET.
4
-
5
- > **IMPORTANTE:** O MORPH-SPEC usa **exclusivamente** Microsoft Agent Framework.
6
- > Semantic Kernel foi descontinuado.
7
-
8
- ## Responsabilidades
9
-
10
- 1. **Integrar Microsoft Agent Framework** em projetos .NET 10
11
- 2. **Criar agentes** com instruções e tools
12
- 3. **Otimizar prompts** e gerenciar tokens
13
- 4. **Implementar RAG** com vector search
14
-
15
- ## Triggers
16
-
17
- Keywords: `agent`, `ai`, `llm`, `openai`, `chat`, `prompt`, `tool`, `function calling`, `rag`, `embedding`
18
-
19
- ## Microsoft Agent Framework (.NET 10)
20
-
21
- > Framework oficial da Microsoft para criar agentes de IA.
22
- > Substitui Semantic Kernel com foco exclusivo em agentes.
23
-
24
- ### Estrutura Básica
25
-
26
- ```csharp
27
- // Agent com Microsoft Agent Framework
28
- using Microsoft.Agents.AI;
29
- using Microsoft.Extensions.AI;
30
-
31
- public class OrderAnalysisAgent
32
- {
33
- private readonly IChatClient _chatClient;
34
- private readonly ILogger<OrderAnalysisAgent> _logger;
35
-
36
- public OrderAnalysisAgent(
37
- IChatClient chatClient,
38
- ILogger<OrderAnalysisAgent> logger)
39
- {
40
- _chatClient = chatClient;
41
- _logger = logger;
42
- }
43
-
44
- public async Task<string> AnalyzeOrderAsync(Order order, CancellationToken ct = default)
45
- {
46
- var agent = _chatClient.CreateAgent(
47
- instructions: """
48
- Você é um especialista em análise de pedidos.
49
-
50
- Analise o pedido fornecido e retorne:
51
- 1. Resumo do pedido
52
- 2. Sugestões de upsell baseadas nos itens
53
- 3. Risco de cancelamento (baixo/médio/alto) com justificativa
54
-
55
- Seja conciso e objetivo.
56
- """,
57
- name: "OrderAnalyzer"
58
- );
59
-
60
- var prompt = $"""
61
- Pedido: {order.OrderNumber}
62
- Total: {order.Total:C}
63
- Itens: {order.Items.Count}
64
- Cliente: {order.Customer.Name}
65
- Histórico: {order.Customer.TotalOrders} pedidos anteriores
66
-
67
- Analise este pedido.
68
- """;
69
-
70
- _logger.LogInformation("Analisando pedido {OrderNumber}", order.OrderNumber);
71
-
72
- var response = await agent.RunAsync(prompt, cancellationToken: ct);
73
- return response.Content;
74
- }
75
- }
76
- ```
77
-
78
- ### Configuração do ChatClient
79
-
80
- ```csharp
81
- // Program.cs
82
- using Microsoft.Extensions.AI;
83
-
84
- // Azure OpenAI
85
- builder.Services.AddSingleton<IChatClient>(sp =>
86
- {
87
- var config = sp.GetRequiredService<IConfiguration>();
88
-
89
- return new ChatClient(
90
- model: "gpt-4o-mini",
91
- credential: new ApiKeyCredential(config["AzureOpenAI:ApiKey"]!),
92
- endpoint: new Uri(config["AzureOpenAI:Endpoint"]!)
93
- );
94
- });
95
-
96
- // Registrar agent como service
97
- builder.Services.AddScoped<IOrderAnalysisAgent, OrderAnalysisAgent>();
98
- ```
99
-
100
- ### Tools (Function Calling)
101
-
102
- ```csharp
103
- using Microsoft.Agents.AI;
104
-
105
- public class OrderAgent
106
- {
107
- private readonly IChatClient _chatClient;
108
- private readonly IOrderService _orderService;
109
-
110
- public OrderAgent(IChatClient chatClient, IOrderService orderService)
111
- {
112
- _chatClient = chatClient;
113
- _orderService = orderService;
114
- }
115
-
116
- [AgentTool("get_order")]
117
- [Description("Busca um pedido pelo número")]
118
- public async Task<Order?> GetOrderAsync(
119
- [Description("Número do pedido")] string orderNumber,
120
- CancellationToken ct = default)
121
- {
122
- return await _orderService.GetByNumberAsync(orderNumber, ct);
123
- }
124
-
125
- [AgentTool("calculate_discount")]
126
- [Description("Calcula desconto baseado no histórico do cliente")]
127
- public decimal CalculateDiscount(
128
- [Description("ID do cliente")] int customerId,
129
- [Description("Valor do pedido")] decimal orderTotal)
130
- {
131
- // Lógica de desconto baseada em histórico
132
- return orderTotal * 0.1m;
133
- }
134
-
135
- public async Task<string> ChatAsync(string userMessage, CancellationToken ct = default)
136
- {
137
- var agent = _chatClient.CreateAgent(
138
- instructions: """
139
- Você é um assistente de pedidos.
140
- Use as tools disponíveis para ajudar os usuários.
141
- Seja conciso e profissional.
142
- """,
143
- name: "OrderAssistant",
144
- tools: new[]
145
- {
146
- AgentTool.FromMethod(nameof(GetOrderAsync), this),
147
- AgentTool.FromMethod(nameof(CalculateDiscount), this)
148
- }
149
- );
150
-
151
- var response = await agent.RunAsync(userMessage, cancellationToken: ct);
152
- return response.Content;
153
- }
154
- }
155
- ```
156
-
157
- ### Threads (Conversação Persistente)
158
-
159
- ```csharp
160
- public class ChatService
161
- {
162
- private readonly IChatClient _chatClient;
163
- private readonly Dictionary<string, AgentThread> _threads = new();
164
-
165
- public async Task<string> CreateConversationAsync(string userId)
166
- {
167
- var agent = _chatClient.CreateAgent(
168
- instructions: "Você é um assistente útil e amigável.",
169
- name: "ChatAssistant"
170
- );
171
-
172
- var thread = await agent.CreateThreadAsync();
173
- _threads[userId] = thread;
174
-
175
- return thread.Id;
176
- }
177
-
178
- public async Task<string> SendMessageAsync(
179
- string userId,
180
- string message,
181
- CancellationToken ct = default)
182
- {
183
- if (!_threads.TryGetValue(userId, out var thread))
184
- throw new InvalidOperationException("Thread não encontrada");
185
-
186
- var agent = _chatClient.CreateAgent(
187
- instructions: "Você é um assistente útil e amigável.",
188
- name: "ChatAssistant"
189
- );
190
-
191
- await thread.AddMessageAsync(message, ct);
192
- var response = await agent.RunAsync(thread, cancellationToken: ct);
193
-
194
- return response.Content;
195
- }
196
- }
197
- ```
198
-
199
- ## Padrões de Prompt
200
-
201
- ### System Prompt Estruturado
202
-
203
- ```csharp
204
- var systemPrompt = """
205
- # Identidade
206
- Você é {AgentName}, especialista em {Domain}.
207
-
208
- # Contexto
209
- {ContextDescription}
210
-
211
- # Regras
212
- - {Rule1}
213
- - {Rule2}
214
-
215
- # Formato de Resposta
216
- {ResponseFormat}
217
-
218
- # Exemplos
219
- Input: {ExampleInput}
220
- Output: {ExampleOutput}
221
- """;
222
- ```
223
-
224
- ### Otimização de Tokens
225
-
226
- 1. **Use gpt-4o-mini** como padrão (mais barato)
227
- 2. **Limite contexto** a informações relevantes
228
- 3. **Cache prompts** fixos quando possível
229
- 4. **Meça tokens** com TikToken
230
-
231
- ## Modelo Padrão
232
-
233
- | Uso | Modelo | Custo |
234
- |-----|--------|-------|
235
- | Tarefas simples | gpt-4o-mini | $0.15/1M input |
236
- | Análise complexa | gpt-4o | $2.50/1M input |
237
- | Embedding | text-embedding-3-small | $0.02/1M |
238
-
239
- ## Documentação de Referência
240
-
241
- - [Microsoft Agent Framework](https://learn.microsoft.com/agent-framework/)
242
- - [Agent Framework GitHub](https://github.com/microsoft/agent-framework)
243
- - [Microsoft.Extensions.AI](https://learn.microsoft.com/dotnet/ai/ai-extensions)
244
- - [Azure OpenAI Service](https://learn.microsoft.com/azure/ai-services/openai/)
245
- - **[Guia Completo: Agent Framework Setup](../../.morph/standards/agent-framework-setup.md)**
246
-
247
- ## Checklist de Integração AI
248
-
249
- - [ ] Package `Microsoft.Agents.AI` instalado
250
- - [ ] `IChatClient` configurado com DI
251
- - [ ] Modelo gpt-4o-mini como padrão
252
- - [ ] API keys no Key Vault (não hardcoded)
253
- - [ ] Agents registrados como services
254
- - [ ] Tools registradas manualmente
255
- - [ ] System prompt estruturado
256
- - [ ] Error handling para rate limits
257
- - [ ] Logging de prompts/responses (dev only)
258
- - [ ] Custos estimados por operação
259
- - [ ] **NÃO usar Semantic Kernel**
260
-
261
- ---
262
-
263
- *MORPH-SPEC by Polymorphism Tech*
@@ -1,78 +0,0 @@
1
- # Standards Architect
2
-
3
- Especialista em padrões de código, arquitetura e boas práticas para projetos .NET.
4
-
5
- ## Responsabilidades
6
-
7
- 1. **Garantir aderência aos padrões** definidos em `.morph/standards/`
8
- 2. **Validar nomenclatura** de classes, métodos, variáveis
9
- 3. **Revisar código** antes de aprovar merges
10
- 4. **Definir convenções** de projeto
11
-
12
- ## Triggers
13
-
14
- Ativado automaticamente em todo projeto MORPH-SPEC (Core Agent).
15
-
16
- Keywords: `standards`, `naming`, `convention`, `pattern`, `review`, `quality`
17
-
18
- ## Padrões de Código (.NET)
19
-
20
- ### Nomenclatura
21
-
22
- ```csharp
23
- // Classes: PascalCase
24
- public class OrderService { }
25
-
26
- // Interfaces: I + PascalCase
27
- public interface IOrderService { }
28
-
29
- // Métodos: PascalCase
30
- public async Task<Order> GetOrderAsync(int id) { }
31
-
32
- // Variáveis: camelCase
33
- private readonly ILogger _logger;
34
-
35
- // Constantes: UPPER_SNAKE_CASE
36
- public const string DEFAULT_STATUS = "pending";
37
- ```
38
-
39
- ### Estrutura de Projeto
40
-
41
- ```
42
- src/
43
- ├── {Project}.Domain/ # Entidades, Value Objects
44
- ├── {Project}.Application/ # Services, DTOs, Interfaces
45
- ├── {Project}.Infrastructure/ # EF, External Services
46
- ├── {Project}.Web/ # Blazor, API Controllers
47
- └── {Project}.Tests/ # Unit, Integration tests
48
- ```
49
-
50
- ### Padrões Blazor
51
-
52
- ```razor
53
- @* Componentes: PascalCase.razor *@
54
- @* Parameters: [Parameter] obrigatório *@
55
- @* EventCallbacks: On{Event}Async *@
56
-
57
- <OrderList Orders="@_orders" OnSelectAsync="HandleSelectAsync" />
58
- ```
59
-
60
- ## Documentação de Referência
61
-
62
- - [C# Coding Conventions](https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions)
63
- - [.NET Naming Guidelines](https://learn.microsoft.com/en-us/dotnet/standard/design-guidelines/naming-guidelines)
64
- - [Blazor Best Practices](https://learn.microsoft.com/en-us/aspnet/core/blazor/performance)
65
-
66
- ## Checklist de Revisão
67
-
68
- - [ ] Nomenclatura segue convenções
69
- - [ ] Async/await usado corretamente
70
- - [ ] Nullable reference types habilitado
71
- - [ ] DI registrado corretamente
72
- - [ ] Logs estruturados com ILogger
73
- - [ ] Exceptions tratadas adequadamente
74
- - [ ] Código sem warnings
75
-
76
- ---
77
-
78
- *MORPH-SPEC by Polymorphism Tech*