@polymorphism-tech/morph-spec 1.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 (83) hide show
  1. package/README.md +279 -0
  2. package/bin/morph-spec.js +53 -0
  3. package/content/.claude/commands/morph-apply.md +66 -0
  4. package/content/.claude/commands/morph-archive.md +79 -0
  5. package/content/.claude/commands/morph-costs.md +206 -0
  6. package/content/.claude/commands/morph-infra.md +209 -0
  7. package/content/.claude/commands/morph-proposal.md +60 -0
  8. package/content/.claude/commands/morph-status.md +71 -0
  9. package/content/.claude/settings.local.json +15 -0
  10. package/content/.claude/skills/infra/bicep-architect.md +419 -0
  11. package/content/.claude/skills/infra/container-specialist.md +437 -0
  12. package/content/.claude/skills/infra/devops-engineer.md +405 -0
  13. package/content/.claude/skills/integrations/asaas-financial.md +333 -0
  14. package/content/.claude/skills/integrations/azure-identity.md +309 -0
  15. package/content/.claude/skills/integrations/clerk-auth.md +290 -0
  16. package/content/.claude/skills/specialists/azure-architect.md +142 -0
  17. package/content/.claude/skills/specialists/cost-guardian.md +110 -0
  18. package/content/.claude/skills/specialists/ef-modeler.md +200 -0
  19. package/content/.claude/skills/specialists/hangfire-orchestrator.md +245 -0
  20. package/content/.claude/skills/specialists/ms-agent-expert.md +209 -0
  21. package/content/.claude/skills/specialists/po-pm-advisor.md +197 -0
  22. package/content/.claude/skills/specialists/standards-architect.md +78 -0
  23. package/content/.claude/skills/specialists/ui-ux-designer.md +325 -0
  24. package/content/.claude/skills/stacks/dotnet-blazor.md +352 -0
  25. package/content/.claude/skills/stacks/dotnet-nextjs.md +402 -0
  26. package/content/.claude/skills/stacks/shopify.md +445 -0
  27. package/content/.morph/archive/.gitkeep +25 -0
  28. package/content/.morph/config/agents.json +149 -0
  29. package/content/.morph/config/config.template.json +96 -0
  30. package/content/.morph/examples/api-nextjs/README.md +241 -0
  31. package/content/.morph/examples/api-nextjs/contracts.ts +307 -0
  32. package/content/.morph/examples/api-nextjs/spec.md +399 -0
  33. package/content/.morph/examples/api-nextjs/tasks.md +168 -0
  34. package/content/.morph/examples/micro-saas/README.md +125 -0
  35. package/content/.morph/examples/micro-saas/contracts.cs +358 -0
  36. package/content/.morph/examples/micro-saas/decisions.md +246 -0
  37. package/content/.morph/examples/micro-saas/spec.md +236 -0
  38. package/content/.morph/examples/micro-saas/tasks.md +150 -0
  39. package/content/.morph/examples/multi-agent/README.md +309 -0
  40. package/content/.morph/examples/multi-agent/contracts.cs +433 -0
  41. package/content/.morph/examples/multi-agent/spec.md +479 -0
  42. package/content/.morph/examples/multi-agent/tasks.md +185 -0
  43. package/content/.morph/features/.gitkeep +25 -0
  44. package/content/.morph/project.md +159 -0
  45. package/content/.morph/specs/.gitkeep +20 -0
  46. package/content/.morph/standards/architecture.md +190 -0
  47. package/content/.morph/standards/azure.md +184 -0
  48. package/content/.morph/standards/coding.md +342 -0
  49. package/content/.morph/templates/agent.cs +172 -0
  50. package/content/.morph/templates/component.razor +239 -0
  51. package/content/.morph/templates/contracts.cs +217 -0
  52. package/content/.morph/templates/decisions.md +106 -0
  53. package/content/.morph/templates/infra/app-insights.bicep +63 -0
  54. package/content/.morph/templates/infra/container-app-env.bicep +49 -0
  55. package/content/.morph/templates/infra/container-app.bicep +156 -0
  56. package/content/.morph/templates/infra/key-vault.bicep +91 -0
  57. package/content/.morph/templates/infra/main.bicep +155 -0
  58. package/content/.morph/templates/infra/parameters.dev.json +23 -0
  59. package/content/.morph/templates/infra/parameters.prod.json +23 -0
  60. package/content/.morph/templates/infra/sql-database.bicep +103 -0
  61. package/content/.morph/templates/infra/storage.bicep +106 -0
  62. package/content/.morph/templates/integrations/asaas-client.cs +387 -0
  63. package/content/.morph/templates/integrations/asaas-webhook.cs +351 -0
  64. package/content/.morph/templates/integrations/azure-identity-config.cs +288 -0
  65. package/content/.morph/templates/integrations/clerk-config.cs +258 -0
  66. package/content/.morph/templates/job.cs +171 -0
  67. package/content/.morph/templates/migration.cs +83 -0
  68. package/content/.morph/templates/proposal.md +155 -0
  69. package/content/.morph/templates/recap.md +105 -0
  70. package/content/.morph/templates/repository.cs +141 -0
  71. package/content/.morph/templates/saas/subscription.cs +347 -0
  72. package/content/.morph/templates/saas/tenant.cs +338 -0
  73. package/content/.morph/templates/service.cs +139 -0
  74. package/content/.morph/templates/spec.md +147 -0
  75. package/content/.morph/templates/tasks.md +235 -0
  76. package/content/.morph/templates/test.cs +239 -0
  77. package/content/CLAUDE.md +318 -0
  78. package/package.json +50 -0
  79. package/src/commands/doctor.js +132 -0
  80. package/src/commands/init.js +121 -0
  81. package/src/commands/update.js +84 -0
  82. package/src/utils/file-copier.js +50 -0
  83. package/src/utils/logger.js +32 -0
@@ -0,0 +1,479 @@
1
+ # Multi-Agent System - Especificação
2
+
3
+ ## 1. Visão Geral
4
+
5
+ Sistema de agentes de IA cooperativos usando Microsoft Semantic Kernel para resolver tarefas complexas através de decomposição e especialização.
6
+
7
+ ### 1.1 Objetivos
8
+
9
+ - Criar sistema escalável de agentes cooperativos
10
+ - Implementar orquestração inteligente de tarefas
11
+ - Fornecer extensibilidade para novos agentes e plugins
12
+ - Manter custos controlados com uso eficiente de tokens
13
+
14
+ ### 1.2 Use Cases
15
+
16
+ | Use Case | Agentes Envolvidos |
17
+ |----------|-------------------|
18
+ | Pesquisa de mercado | Orchestrator → Research → Analysis → Writing |
19
+ | Análise de documentos | Orchestrator → Research → Analysis |
20
+ | Geração de relatórios | Orchestrator → Research → Writing |
21
+ | Q&A com base de conhecimento | Orchestrator → Research |
22
+
23
+ ## 2. Arquitetura
24
+
25
+ ### 2.1 Componentes Principais
26
+
27
+ ```
28
+ ┌─────────────────────────────────────────────────────────────────┐
29
+ │ API Layer │
30
+ │ ┌─────────────────┐ ┌─────────────────┐ │
31
+ │ │ ChatEndpoints │ │ AgentEndpoints │ │
32
+ │ └─────────────────┘ └─────────────────┘ │
33
+ └─────────────────────────────────────────────────────────────────┘
34
+
35
+
36
+ ┌─────────────────────────────────────────────────────────────────┐
37
+ │ Orchestration Layer │
38
+ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
39
+ │ │ TaskDecomposer │ │ AgentRouter │ │ ResultAggregator│ │
40
+ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
41
+ └─────────────────────────────────────────────────────────────────┘
42
+
43
+
44
+ ┌─────────────────────────────────────────────────────────────────┐
45
+ │ Agent Layer │
46
+ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │
47
+ │ │ Research │ │ Analysis │ │ Writing │ │
48
+ │ │ Agent │ │ Agent │ │ Agent │ │
49
+ │ └──────────────┘ └──────────────┘ └──────────────────────┘ │
50
+ └─────────────────────────────────────────────────────────────────┘
51
+
52
+
53
+ ┌─────────────────────────────────────────────────────────────────┐
54
+ │ Plugin Layer │
55
+ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
56
+ │ │ WebSearch │ │ Document │ │ DataAnalysis│ │
57
+ │ │ Plugin │ │ Plugin │ │ Plugin │ │
58
+ │ └─────────────┘ └─────────────┘ └─────────────┘ │
59
+ └─────────────────────────────────────────────────────────────────┘
60
+
61
+
62
+ ┌─────────────────────────────────────────────────────────────────┐
63
+ │ Infrastructure Layer │
64
+ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
65
+ │ │ Azure OpenAI │ │ Vector Store │ │ Memory Store │ │
66
+ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
67
+ └─────────────────────────────────────────────────────────────────┘
68
+ ```
69
+
70
+ ### 2.2 Fluxo de Dados
71
+
72
+ ```
73
+ User Request
74
+
75
+
76
+ ┌─────────────────────────────────────────┐
77
+ │ Task Decomposition │
78
+ │ "Compare cloud providers" → │
79
+ │ [Research AWS, Research Azure, │
80
+ │ Research GCP, Compare, Write Report] │
81
+ └─────────────────────────────────────────┘
82
+
83
+
84
+ ┌─────────────────────────────────────────┐
85
+ │ Agent Execution │
86
+ │ Research Agent → findings[] │
87
+ │ Analysis Agent → insights │
88
+ │ Writing Agent → report │
89
+ └─────────────────────────────────────────┘
90
+
91
+
92
+ ┌─────────────────────────────────────────┐
93
+ │ Result Aggregation │
94
+ │ Combine outputs, format, validate │
95
+ └─────────────────────────────────────────┘
96
+
97
+
98
+ Final Response
99
+ ```
100
+
101
+ ## 3. Requisitos Funcionais
102
+
103
+ ### 3.1 API
104
+
105
+ | ID | Requisito |
106
+ |----|-----------|
107
+ | API-001 | Endpoint de chat para interação com usuário |
108
+ | API-002 | Endpoint para consultar status de processamento |
109
+ | API-003 | Endpoint para listar agentes disponíveis |
110
+ | API-004 | Streaming de respostas (SSE) |
111
+ | API-005 | Autenticação via API Key |
112
+
113
+ ### 3.2 Orchestrator
114
+
115
+ | ID | Requisito |
116
+ |----|-----------|
117
+ | ORCH-001 | Análise de intenção do usuário |
118
+ | ORCH-002 | Decomposição de tarefas complexas |
119
+ | ORCH-003 | Roteamento para agentes especialistas |
120
+ | ORCH-004 | Agregação de resultados |
121
+ | ORCH-005 | Retry automático em falhas |
122
+ | ORCH-006 | Timeout por subtarefa |
123
+
124
+ ### 3.3 Agentes
125
+
126
+ | ID | Requisito |
127
+ |----|-----------|
128
+ | AGT-001 | Research Agent com acesso a web search |
129
+ | AGT-002 | Research Agent com RAG (vector search) |
130
+ | AGT-003 | Analysis Agent para comparações |
131
+ | AGT-004 | Analysis Agent para insights |
132
+ | AGT-005 | Writing Agent para relatórios |
133
+ | AGT-006 | Writing Agent para sumários |
134
+
135
+ ### 3.4 Plugins
136
+
137
+ | ID | Requisito |
138
+ |----|-----------|
139
+ | PLG-001 | WebSearch via Bing API |
140
+ | PLG-002 | Document retrieval via vector store |
141
+ | PLG-003 | Calculator para análises numéricas |
142
+ | PLG-004 | Date/Time utilities |
143
+
144
+ ### 3.5 Memória
145
+
146
+ | ID | Requisito |
147
+ |----|-----------|
148
+ | MEM-001 | Conversation memory por sessão |
149
+ | MEM-002 | Semantic memory para contexto relevante |
150
+ | MEM-003 | Persistência opcional em Cosmos DB |
151
+
152
+ ## 4. Requisitos Não-Funcionais
153
+
154
+ ### 4.1 Performance
155
+
156
+ | ID | Requisito |
157
+ |----|-----------|
158
+ | PERF-001 | Response streaming para UX fluida |
159
+ | PERF-002 | Timeout máximo de 60s por request |
160
+ | PERF-003 | Execução paralela de subtarefas independentes |
161
+
162
+ ### 4.2 Custo
163
+
164
+ | ID | Requisito |
165
+ |----|-----------|
166
+ | COST-001 | Limite de tokens por request configurável |
167
+ | COST-002 | Uso de modelos menores para subtarefas simples |
168
+ | COST-003 | Cache de resultados de pesquisa |
169
+ | COST-004 | Tracking de uso de tokens |
170
+
171
+ ### 4.3 Segurança
172
+
173
+ | ID | Requisito |
174
+ |----|-----------|
175
+ | SEC-001 | API Key authentication |
176
+ | SEC-002 | Rate limiting por API key |
177
+ | SEC-003 | Input sanitization |
178
+ | SEC-004 | Output filtering (PII, harmful content) |
179
+
180
+ ## 5. Agentes em Detalhe
181
+
182
+ ### 5.1 Orchestrator Agent
183
+
184
+ **System Prompt**:
185
+ ```
186
+ You are an orchestrator agent responsible for coordinating other specialized agents.
187
+
188
+ When you receive a user request:
189
+ 1. Analyze the intent and complexity
190
+ 2. Decompose into subtasks if needed
191
+ 3. Delegate to appropriate specialist agents
192
+ 4. Aggregate and format the final response
193
+
194
+ Available agents:
195
+ - research: For information gathering, web search, document retrieval
196
+ - analysis: For data analysis, comparisons, insight generation
197
+ - writing: For text generation, summaries, reports
198
+
199
+ Respond with a plan in JSON format:
200
+ {
201
+ "understanding": "Brief summary of user's request",
202
+ "subtasks": [
203
+ {"agent": "research", "task": "specific task description"},
204
+ {"agent": "analysis", "task": "specific task description"},
205
+ {"agent": "writing", "task": "specific task description"}
206
+ ]
207
+ }
208
+ ```
209
+
210
+ ### 5.2 Research Agent
211
+
212
+ **System Prompt**:
213
+ ```
214
+ You are a research specialist agent. Your capabilities include:
215
+ - Searching the web for current information
216
+ - Retrieving relevant documents from the knowledge base
217
+ - Summarizing and extracting key information
218
+
219
+ When researching:
220
+ 1. Use web_search for current/recent information
221
+ 2. Use document_search for internal knowledge
222
+ 3. Synthesize findings into structured data
223
+
224
+ Always cite your sources and indicate confidence level.
225
+ ```
226
+
227
+ **Plugins**:
228
+ - `web_search(query, max_results)`
229
+ - `document_search(query, limit)`
230
+
231
+ ### 5.3 Analysis Agent
232
+
233
+ **System Prompt**:
234
+ ```
235
+ You are an analysis specialist agent. Your capabilities include:
236
+ - Analyzing data and identifying patterns
237
+ - Comparing options and alternatives
238
+ - Generating insights and recommendations
239
+
240
+ When analyzing:
241
+ 1. Structure the data clearly
242
+ 2. Apply appropriate analytical frameworks
243
+ 3. Provide evidence-based conclusions
244
+
245
+ Be objective and highlight trade-offs.
246
+ ```
247
+
248
+ **Plugins**:
249
+ - `calculate(expression)`
250
+ - `compare(items, criteria)`
251
+
252
+ ### 5.4 Writing Agent
253
+
254
+ **System Prompt**:
255
+ ```
256
+ You are a writing specialist agent. Your capabilities include:
257
+ - Generating clear, well-structured text
258
+ - Creating summaries and reports
259
+ - Adapting tone and style for the audience
260
+
261
+ When writing:
262
+ 1. Start with a clear structure
263
+ 2. Use appropriate formatting
264
+ 3. Be concise but comprehensive
265
+
266
+ Match the requested format (report, summary, email, etc.).
267
+ ```
268
+
269
+ ## 6. Plugins em Detalhe
270
+
271
+ ### 6.1 WebSearchPlugin
272
+
273
+ ```csharp
274
+ public class WebSearchPlugin
275
+ {
276
+ private readonly BingSearchService _searchService;
277
+
278
+ [KernelFunction("web_search")]
279
+ [Description("Search the web for information on a topic")]
280
+ public async Task<SearchResults> SearchAsync(
281
+ [Description("The search query")] string query,
282
+ [Description("Maximum results to return")] int maxResults = 5)
283
+ {
284
+ var results = await _searchService.SearchAsync(query, maxResults);
285
+ return new SearchResults
286
+ {
287
+ Query = query,
288
+ Items = results.Select(r => new SearchResult
289
+ {
290
+ Title = r.Title,
291
+ Snippet = r.Snippet,
292
+ Url = r.Url
293
+ }).ToList()
294
+ };
295
+ }
296
+ }
297
+ ```
298
+
299
+ ### 6.2 DocumentPlugin
300
+
301
+ ```csharp
302
+ public class DocumentPlugin
303
+ {
304
+ private readonly IVectorStore _vectorStore;
305
+ private readonly IEmbeddingService _embeddingService;
306
+
307
+ [KernelFunction("document_search")]
308
+ [Description("Search internal documents using semantic similarity")]
309
+ public async Task<IEnumerable<DocumentResult>> SearchDocumentsAsync(
310
+ [Description("The search query")] string query,
311
+ [Description("Maximum documents")] int limit = 3)
312
+ {
313
+ var embedding = await _embeddingService.GetEmbeddingAsync(query);
314
+ var documents = await _vectorStore.SearchAsync(embedding, limit);
315
+
316
+ return documents.Select(d => new DocumentResult
317
+ {
318
+ Title = d.Title,
319
+ Content = d.Content,
320
+ Score = d.Score,
321
+ Source = d.Source
322
+ });
323
+ }
324
+ }
325
+ ```
326
+
327
+ ## 7. APIs
328
+
329
+ ### 7.1 Chat Endpoint
330
+
331
+ ```
332
+ POST /api/chat
333
+ Content-Type: application/json
334
+
335
+ {
336
+ "message": "Compare AWS, Azure and GCP for a SaaS startup",
337
+ "sessionId": "optional-session-id",
338
+ "stream": true
339
+ }
340
+
341
+ Response (streaming):
342
+ data: {"type": "thinking", "content": "Analyzing request..."}
343
+ data: {"type": "agent", "agent": "research", "status": "started"}
344
+ data: {"type": "agent", "agent": "research", "status": "completed"}
345
+ data: {"type": "content", "content": "Based on my analysis..."}
346
+ data: {"type": "done", "usage": {"tokens": 1234}}
347
+ ```
348
+
349
+ ### 7.2 Agents Endpoint
350
+
351
+ ```
352
+ GET /api/agents
353
+
354
+ Response:
355
+ {
356
+ "agents": [
357
+ {
358
+ "id": "orchestrator",
359
+ "name": "Orchestrator Agent",
360
+ "description": "Coordinates other agents",
361
+ "capabilities": ["task_decomposition", "routing", "aggregation"]
362
+ },
363
+ {
364
+ "id": "research",
365
+ "name": "Research Agent",
366
+ "description": "Information gathering specialist",
367
+ "capabilities": ["web_search", "document_retrieval", "summarization"]
368
+ }
369
+ ]
370
+ }
371
+ ```
372
+
373
+ ## 8. Modelo de Dados
374
+
375
+ ### 8.1 Conversation
376
+
377
+ ```csharp
378
+ public class Conversation
379
+ {
380
+ public string Id { get; set; }
381
+ public string UserId { get; set; }
382
+ public List<Message> Messages { get; set; }
383
+ public DateTime CreatedAt { get; set; }
384
+ public DateTime UpdatedAt { get; set; }
385
+ }
386
+
387
+ public class Message
388
+ {
389
+ public string Id { get; set; }
390
+ public MessageRole Role { get; set; } // User, Assistant, System
391
+ public string Content { get; set; }
392
+ public AgentMetadata? AgentMetadata { get; set; }
393
+ public TokenUsage? Usage { get; set; }
394
+ public DateTime Timestamp { get; set; }
395
+ }
396
+
397
+ public class AgentMetadata
398
+ {
399
+ public string AgentId { get; set; }
400
+ public List<string> PluginsUsed { get; set; }
401
+ public Dictionary<string, object> Metadata { get; set; }
402
+ }
403
+ ```
404
+
405
+ ### 8.2 Agent Task
406
+
407
+ ```csharp
408
+ public class AgentTask
409
+ {
410
+ public string Id { get; set; }
411
+ public string AgentId { get; set; }
412
+ public string Description { get; set; }
413
+ public TaskStatus Status { get; set; }
414
+ public string? Input { get; set; }
415
+ public string? Output { get; set; }
416
+ public string? Error { get; set; }
417
+ public TimeSpan Duration { get; set; }
418
+ public TokenUsage Usage { get; set; }
419
+ }
420
+
421
+ public enum TaskStatus
422
+ {
423
+ Pending,
424
+ Running,
425
+ Completed,
426
+ Failed
427
+ }
428
+ ```
429
+
430
+ ## 9. Configuração
431
+
432
+ ### 9.1 Azure OpenAI
433
+
434
+ ```json
435
+ {
436
+ "AzureOpenAI": {
437
+ "Endpoint": "https://{resource}.openai.azure.com/",
438
+ "ApiKey": "{key}",
439
+ "Deployments": {
440
+ "Chat": "gpt-4",
441
+ "ChatFast": "gpt-35-turbo",
442
+ "Embedding": "text-embedding-ada-002"
443
+ }
444
+ }
445
+ }
446
+ ```
447
+
448
+ ### 9.2 Agent Configuration
449
+
450
+ ```json
451
+ {
452
+ "Agents": {
453
+ "Orchestrator": {
454
+ "Model": "gpt-4",
455
+ "MaxTokens": 2000,
456
+ "Temperature": 0.3
457
+ },
458
+ "Research": {
459
+ "Model": "gpt-35-turbo",
460
+ "MaxTokens": 1500,
461
+ "Temperature": 0.5
462
+ },
463
+ "Analysis": {
464
+ "Model": "gpt-35-turbo",
465
+ "MaxTokens": 1500,
466
+ "Temperature": 0.3
467
+ },
468
+ "Writing": {
469
+ "Model": "gpt-4",
470
+ "MaxTokens": 3000,
471
+ "Temperature": 0.7
472
+ }
473
+ }
474
+ }
475
+ ```
476
+
477
+ ---
478
+
479
+ *MORPH-SPEC by Polymorphism Tech*
@@ -0,0 +1,185 @@
1
+ # Multi-Agent System - Tasks
2
+
3
+ ## Fase 1: Setup do Projeto
4
+
5
+ | ID | Task | Dependências | Estimativa |
6
+ |----|------|--------------|------------|
7
+ | T001 | Criar solution e projetos | - | S |
8
+ | T002 | Configurar packages (Semantic Kernel, etc) | T001 | S |
9
+ | T003 | Configurar appsettings.json | T001 | S |
10
+ | T004 | Criar estrutura de pastas | T001 | S |
11
+
12
+ ## Fase 2: Infrastructure Layer
13
+
14
+ | ID | Task | Dependências | Estimativa |
15
+ |----|------|--------------|------------|
16
+ | T005 | Implementar AzureOpenAIService | T002 | M |
17
+ | T006 | Implementar EmbeddingService | T005 | M |
18
+ | T007 | Implementar InMemoryVectorStore | T006 | M |
19
+ | T008 | Implementar ConversationStore (in-memory) | T002 | M |
20
+
21
+ ## Fase 3: Plugin Layer
22
+
23
+ | ID | Task | Dependências | Estimativa |
24
+ |----|------|--------------|------------|
25
+ | T009 | Criar WebSearchPlugin | T005 | M |
26
+ | T010 | Configurar Bing Search API | T009 | S |
27
+ | T011 | Criar DocumentPlugin | T007 | M |
28
+ | T012 | Criar CalculatorPlugin | T005 | S |
29
+ | T013 | Criar DateTimePlugin | T005 | S |
30
+
31
+ ## Fase 4: Agent Layer - Base
32
+
33
+ | ID | Task | Dependências | Estimativa |
34
+ |----|------|--------------|------------|
35
+ | T014 | Criar BaseAgent abstract class | T005 | M |
36
+ | T015 | Implementar AgentFactory | T014 | M |
37
+ | T016 | Criar AgentContext (DI scope) | T015 | M |
38
+
39
+ ## Fase 5: Agent Layer - Agents
40
+
41
+ | ID | Task | Dependências | Estimativa |
42
+ |----|------|--------------|------------|
43
+ | T017 | Implementar ResearchAgent | T014, T009, T011 | L |
44
+ | T018 | Implementar AnalysisAgent | T014, T012 | M |
45
+ | T019 | Implementar WritingAgent | T014 | M |
46
+ | T020 | Implementar OrchestratorAgent | T017-T019 | L |
47
+
48
+ ## Fase 6: Orchestration Layer
49
+
50
+ | ID | Task | Dependências | Estimativa |
51
+ |----|------|--------------|------------|
52
+ | T021 | Implementar TaskDecomposer | T020 | M |
53
+ | T022 | Implementar AgentRouter | T015, T021 | M |
54
+ | T023 | Implementar ResultAggregator | T020 | M |
55
+ | T024 | Implementar Orchestrator | T021-T023 | L |
56
+
57
+ ## Fase 7: Memory Layer
58
+
59
+ | ID | Task | Dependências | Estimativa |
60
+ |----|------|--------------|------------|
61
+ | T025 | Implementar ConversationMemory | T008 | M |
62
+ | T026 | Implementar SemanticMemory | T007 | M |
63
+ | T027 | Integrar memória com Orchestrator | T024-T026 | M |
64
+
65
+ ## Fase 8: API Layer
66
+
67
+ | ID | Task | Dependências | Estimativa |
68
+ |----|------|--------------|------------|
69
+ | T028 | Configurar Program.cs base | T001 | M |
70
+ | T029 | Criar ChatEndpoints | T024, T027 | M |
71
+ | T030 | Implementar streaming (SSE) | T029 | M |
72
+ | T031 | Criar AgentEndpoints | T015 | S |
73
+ | T032 | Criar HealthEndpoints | T028 | S |
74
+ | T033 | Configurar API Key auth | T028 | S |
75
+
76
+ ## Fase 9: Error Handling & Resilience
77
+
78
+ | ID | Task | Dependências | Estimativa |
79
+ |----|------|--------------|------------|
80
+ | T034 | Implementar retry policies | T024 | M |
81
+ | T035 | Implementar circuit breaker | T034 | M |
82
+ | T036 | Implementar timeout handling | T024 | M |
83
+ | T037 | Criar error logging middleware | T028 | S |
84
+
85
+ ## Fase 10: Monitoring & Metrics
86
+
87
+ | ID | Task | Dependências | Estimativa |
88
+ |----|------|--------------|------------|
89
+ | T038 | Implementar token tracking | T005 | M |
90
+ | T039 | Implementar usage metrics | T038 | M |
91
+ | T040 | Criar cost estimation | T039 | S |
92
+ | T041 | Integrar com App Insights | T028 | M |
93
+
94
+ ## Fase 11: Infrastructure (IaC)
95
+
96
+ | ID | Task | Dependências | Estimativa |
97
+ |----|------|--------------|------------|
98
+ | T042 | Criar main.bicep | - | M |
99
+ | T043 | Configurar Container App | T042 | M |
100
+ | T044 | Configurar Azure OpenAI (manual) | - | M |
101
+ | T045 | Configurar Key Vault | T042 | S |
102
+ | T046 | Configurar App Insights | T042 | S |
103
+
104
+ ## Fase 12: Testes
105
+
106
+ | ID | Task | Dependências | Estimativa |
107
+ |----|------|--------------|------------|
108
+ | T047 | Criar testes unitários - Plugins | T009-T013 | M |
109
+ | T048 | Criar testes unitários - Agents | T017-T020 | M |
110
+ | T049 | Criar testes integração - Orchestrator | T024 | L |
111
+ | T050 | Criar testes E2E - API | T029-T032 | L |
112
+
113
+ ## Fase 13: Documentação
114
+
115
+ | ID | Task | Dependências | Estimativa |
116
+ |----|------|--------------|------------|
117
+ | T051 | Documentar APIs (OpenAPI) | T029-T032 | M |
118
+ | T052 | Criar guia de extensibilidade | T014-T020 | M |
119
+ | T053 | Criar exemplos de uso | T029 | M |
120
+
121
+ ## Checkpoints
122
+
123
+ | Checkpoint | Após Tasks | Validação |
124
+ |------------|------------|-----------|
125
+ | CP1 | T004 | Projeto compila |
126
+ | CP2 | T008 | Infrastructure funcionando |
127
+ | CP3 | T013 | Plugins funcionando |
128
+ | CP4 | T020 | Agents funcionando |
129
+ | CP5 | T024 | Orchestrator funcionando |
130
+ | CP6 | T027 | Memória integrada |
131
+ | CP7 | T033 | API completa |
132
+ | CP8 | T037 | Error handling completo |
133
+ | CP9 | T041 | Monitoring ativo |
134
+ | CP10 | T046 | IaC pronto |
135
+ | CP11 | T053 | Projeto completo |
136
+
137
+ ## Legenda
138
+
139
+ - **S** = Small (< 1h)
140
+ - **M** = Medium (1-3h)
141
+ - **L** = Large (3-8h)
142
+
143
+ ## Dependências Críticas
144
+
145
+ ```
146
+ Azure OpenAI Setup (T044) - BLOQUEANTE para todos os testes reais
147
+
148
+ T005 (LLM Service) → T014 (BaseAgent) → T017-T020 (Agents) → T024 (Orchestrator)
149
+
150
+ T006 (Embedding) → T007 (VectorStore) → T011 (DocumentPlugin)
151
+
152
+ T009 (WebSearch) → T017 (ResearchAgent)
153
+ ```
154
+
155
+ ## Ordem de Execução Recomendada
156
+
157
+ ### Fase Paralela 1 (Setup)
158
+ - T001-T004 (Setup)
159
+ - T042 (IaC base)
160
+
161
+ ### Fase Paralela 2 (Foundation)
162
+ - T005-T008 (Infrastructure)
163
+ - T044 (Azure OpenAI manual)
164
+
165
+ ### Fase Paralela 3 (Building Blocks)
166
+ - T009-T013 (Plugins)
167
+ - T014-T016 (Agent base)
168
+
169
+ ### Fase Sequencial 4 (Core)
170
+ - T017-T020 (Agents)
171
+ - T021-T024 (Orchestration)
172
+ - T025-T027 (Memory)
173
+
174
+ ### Fase Paralela 5 (API + Supporting)
175
+ - T028-T033 (API)
176
+ - T034-T037 (Resilience)
177
+ - T038-T041 (Monitoring)
178
+
179
+ ### Fase Final
180
+ - T043-T046 (IaC complete)
181
+ - T047-T053 (Tests + Docs)
182
+
183
+ ---
184
+
185
+ *MORPH-SPEC by Polymorphism Tech*
@@ -0,0 +1,25 @@
1
+ # Features em Desenvolvimento
2
+
3
+ Esta pasta contém as features ATIVAS em desenvolvimento.
4
+
5
+ ## Estrutura
6
+
7
+ ```
8
+ features/
9
+ └── {feature-name}/
10
+ ├── proposal.md # Proposta (por que e o quê)
11
+ ├── spec.md # Especificação técnica
12
+ ├── tasks.md # Checklist de implementação
13
+ ├── contracts.cs # Interfaces e DTOs
14
+ ├── decisions.md # ADRs
15
+ └── recap.md # Resumo pós-implementação
16
+ ```
17
+
18
+ ## Workflow
19
+
20
+ 1. `/morph-proposal {feature}` - Criar nova feature
21
+ 2. Revisar e aprovar proposal
22
+ 3. `/morph-apply {feature}` - Implementar
23
+ 4. `/morph-archive {feature}` - Arquivar quando concluída
24
+
25
+ *Gerado pelo MORPH Framework*