wegho-agentes 7.0.0 → 7.0.1
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/.agent/skills/wegho-global-rules/SKILL.md +20 -0
- package/.agent/workflows/PROMPT_GUIDE.md +7 -4
- package/.agents/cli.ts +29 -21
- package/.agents/core/base-agent.ts +28 -12
- package/.agents/core/memory-system.ts +45 -13
- package/.agents/core/report-generator.ts +26 -19
- package/.agents/orchestrator.ts +104 -74
- package/.clinerules +318 -1229
- package/.cursorrules +0 -189
- package/README.md +3 -3
- package/docs/VERSION.md +3 -2
- package/package.json +3 -3
- package/.agents/agents/ai-agents/README.md +0 -175
- package/.agents/agents/ai-agents/agent.ts +0 -83
- package/.agents/agents/ai-agents/specialty.md +0 -14
- package/.agents/agents/architecture/README.md +0 -61
- package/.agents/agents/architecture/agent.ts +0 -238
- package/.agents/agents/architecture/memory.md +0 -111
- package/.agents/agents/architecture/specialty.md +0 -31
- package/.agents/agents/automation/README.md +0 -60
- package/.agents/agents/automation/agent.ts +0 -61
- package/.agents/agents/automation/specialty.md +0 -14
- package/.agents/agents/backend/README.md +0 -155
- package/.agents/agents/backend/agent.ts +0 -100
- package/.agents/agents/backend/specialty.md +0 -14
- package/.agents/agents/cloud/README.md +0 -73
- package/.agents/agents/cloud/agent.ts +0 -53
- package/.agents/agents/cloud/specialty.md +0 -14
- package/.agents/agents/code-auditor/README.md +0 -37
- package/.agents/agents/code-auditor/agent.ts +0 -334
- package/.agents/agents/code-auditor/specialty.md +0 -14
- package/.agents/agents/cro/README.md +0 -200
- package/.agents/agents/cro/agent.ts +0 -61
- package/.agents/agents/cro/specialty.md +0 -14
- package/.agents/agents/database/README.md +0 -67
- package/.agents/agents/database/agent.ts +0 -93
- package/.agents/agents/database/specialty.md +0 -14
- package/.agents/agents/devops/README.md +0 -84
- package/.agents/agents/devops/agent.ts +0 -54
- package/.agents/agents/devops/specialty.md +0 -14
- package/.agents/agents/documentation/README.md +0 -107
- package/.agents/agents/documentation/agent.ts +0 -253
- package/.agents/agents/documentation/memory.md +0 -56
- package/.agents/agents/documentation/specialty.md +0 -33
- package/.agents/agents/frontend/README.md +0 -188
- package/.agents/agents/frontend/agent.ts +0 -211
- package/.agents/agents/frontend/memory.md +0 -139
- package/.agents/agents/frontend/specialty.md +0 -30
- package/.agents/agents/inventory/README.md +0 -35
- package/.agents/agents/inventory/agent.ts +0 -758
- package/.agents/agents/inventory/memory.md +0 -50
- package/.agents/agents/inventory/specialty.md +0 -129
- package/.agents/agents/nextjs/README.md +0 -58
- package/.agents/agents/nextjs/agent.ts +0 -114
- package/.agents/agents/nextjs/specialty.md +0 -14
- package/.agents/agents/pentest/README.md +0 -228
- package/.agents/agents/pentest/agent.ts +0 -96
- package/.agents/agents/pentest/specialty.md +0 -14
- package/.agents/agents/planning/README.md +0 -107
- package/.agents/agents/planning/agent.ts +0 -389
- package/.agents/agents/planning/specialty.md +0 -14
- package/.agents/agents/project-discovery/README.md +0 -35
- package/.agents/agents/project-discovery/agent.ts +0 -344
- package/.agents/agents/project-discovery/specialty.md +0 -14
- package/.agents/agents/quality/README.md +0 -81
- package/.agents/agents/quality/agent.ts +0 -269
- package/.agents/agents/quality/memory.md +0 -110
- package/.agents/agents/quality/specialty.md +0 -31
- package/.agents/agents/rag/README.md +0 -41
- package/.agents/agents/rag/agent.ts +0 -85
- package/.agents/agents/rag/specialty.md +0 -14
- package/.agents/agents/security/README.md +0 -152
- package/.agents/agents/security/agent.ts +0 -218
- package/.agents/agents/security/memory.md +0 -91
- package/.agents/agents/security/specialty.md +0 -31
- package/.agents/agents/task-analyzer/README.md +0 -36
- package/.agents/agents/task-analyzer/agent.ts +0 -462
- package/.agents/agents/task-analyzer/specialty.md +0 -14
- package/.agents/agents/testing/README.md +0 -161
- package/.agents/agents/testing/agent.ts +0 -61
- package/.agents/agents/testing/specialty.md +0 -14
- package/.agents/agents/uiux/README.md +0 -68
- package/.agents/agents/uiux/agent.ts +0 -95
- package/.agents/agents/uiux/specialty.md +0 -14
- package/.agents/base/base-agent.ts +0 -331
- package/.agents/base/memory-system.ts +0 -397
- package/.agents/base/skill-manager.ts +0 -95
- package/.agents/convert-memory.ps1 +0 -153
- package/.agents/examples/reporting-example.md +0 -203
- package/.agents/managers/build-manager.ts +0 -304
- package/.agents/managers/cache-manager.ts +0 -184
- package/.agents/managers/checkpoint-manager.ts +0 -299
- package/.agents/migrate-agents.ps1 +0 -117
- package/.agents/templates/change-report.md +0 -55
- package/.agents/templates/execution-plan.md +0 -36
- package/.agents/unmapped-skills.txt +0 -0
- package/.agents/utils/agent-migrator.ts +0 -360
- package/.agents/utils/agent-monitor.ts +0 -102
- package/.agents/utils/agent-parallelizer.ts +0 -108
- package/.agents/utils/context-monitor.ts +0 -140
- package/.agents/utils/feedback-collector.ts +0 -207
- package/.agents/utils/file-generator.ts +0 -304
- package/.agents/utils/memory-converter.ts +0 -217
- package/.agents/utils/memory-dashboard.ts +0 -147
- package/.agents/utils/performance-tracker.ts +0 -275
- package/.agents/utils/report-generator.ts +0 -193
- package/.agents/utils/retry-utility.ts +0 -140
- package/.agents/utils/workflow-validator.ts +0 -158
|
@@ -1,344 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Project Discovery Agent
|
|
3
|
-
*
|
|
4
|
-
* Responsabilidades:
|
|
5
|
-
* - Detectar se é projeto novo ou existente
|
|
6
|
-
* - Fazer perguntas sobre o projeto
|
|
7
|
-
* - Analisar respostas e gerar relatório
|
|
8
|
-
* - Sugerir/criar agentes customizados
|
|
9
|
-
* - Adicionar estruturas ao código
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
import * as fs from 'fs';
|
|
13
|
-
import * as path from 'path';
|
|
14
|
-
import * as readline from 'readline';
|
|
15
|
-
import { DomainType } from './config.js';
|
|
16
|
-
import { CodeAuditorAgent } from './code-auditor-agent.js';
|
|
17
|
-
|
|
18
|
-
export interface ProjectProfile {
|
|
19
|
-
isNewProject: boolean;
|
|
20
|
-
projectName: string;
|
|
21
|
-
domain: DomainType | 'custom';
|
|
22
|
-
customDomain?: string;
|
|
23
|
-
stack: string[];
|
|
24
|
-
objectives: string[];
|
|
25
|
-
features: string[];
|
|
26
|
-
teamSize: number;
|
|
27
|
-
hasDatabase: boolean;
|
|
28
|
-
hasCMS: boolean;
|
|
29
|
-
hasAuth: boolean;
|
|
30
|
-
hasPayments: boolean;
|
|
31
|
-
customNeeds: string[];
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export interface AgentRecommendation {
|
|
35
|
-
name: string;
|
|
36
|
-
file: string;
|
|
37
|
-
purpose: string;
|
|
38
|
-
priority: 'high' | 'medium' | 'low';
|
|
39
|
-
autoCreate: boolean;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export class ProjectDiscoveryAgent {
|
|
43
|
-
private readline: any;
|
|
44
|
-
|
|
45
|
-
constructor() {
|
|
46
|
-
this.readline = readline.createInterface({
|
|
47
|
-
input: process.stdin,
|
|
48
|
-
output: process.stdout,
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Detecta se é projeto novo
|
|
54
|
-
*/
|
|
55
|
-
detectNewProject(): boolean {
|
|
56
|
-
// Verifica se já existe documentação de agentes
|
|
57
|
-
const hasAgentRules = fs.existsSync('docs/AGENT_RULES.md');
|
|
58
|
-
const hasBuildHistory = fs.existsSync('docs/BUILD_HISTORY.md');
|
|
59
|
-
const hasSymbolsTree = fs.existsSync('docs/SYMBOLS_TREE.md');
|
|
60
|
-
|
|
61
|
-
// Se não existe nenhum, é novo
|
|
62
|
-
if (!hasAgentRules && !hasBuildHistory && !hasSymbolsTree) {
|
|
63
|
-
return true;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// Se tem BUILD_HISTORY vazio ou só com template, é novo
|
|
67
|
-
if (hasBuildHistory) {
|
|
68
|
-
const content = fs.readFileSync('docs/BUILD_HISTORY.md', 'utf-8');
|
|
69
|
-
if (content.includes('[Próximas Entradas]') && !content.includes('Build 001')) {
|
|
70
|
-
return true;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
return false;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Faz pergunta ao usuário
|
|
79
|
-
*/
|
|
80
|
-
private async ask(question: string): Promise<string> {
|
|
81
|
-
return new Promise((resolve) => {
|
|
82
|
-
this.readline.question(question, (answer: string) => {
|
|
83
|
-
resolve(answer.trim());
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Pergunta de múltipla escolha
|
|
90
|
-
*/
|
|
91
|
-
private async askChoice(question: string, choices: string[]): Promise<string> {
|
|
92
|
-
console.log(`\n${question}`);
|
|
93
|
-
choices.forEach((choice, index) => {
|
|
94
|
-
console.log(` ${index + 1}. ${choice}`);
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
const answer = await this.ask('Escolha (número): ');
|
|
98
|
-
const index = parseInt(answer) - 1;
|
|
99
|
-
|
|
100
|
-
if (index >= 0 && index < choices.length) {
|
|
101
|
-
return choices[index];
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
return choices[0]; // Default primeira opção
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Executa descoberta interativa do projeto
|
|
109
|
-
*/
|
|
110
|
-
async discoverProject(): Promise<ProjectProfile> {
|
|
111
|
-
console.log('\nâ”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”');
|
|
112
|
-
console.log('🔠DESCOBERTA DO PROJETO');
|
|
113
|
-
console.log('â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”\n');
|
|
114
|
-
|
|
115
|
-
const isNewProject = this.detectNewProject();
|
|
116
|
-
|
|
117
|
-
if (isNewProject) {
|
|
118
|
-
console.log('✨ Detectado: PROJETO NOVO\n');
|
|
119
|
-
} else {
|
|
120
|
-
console.log('📦 Detectado: PROJETO EXISTENTE\n');
|
|
121
|
-
console.log('🔠Vou primeiro analisar o código existente para gerar relatório...\n');
|
|
122
|
-
|
|
123
|
-
// NOVO: Executar auditoria de código para projetos existentes
|
|
124
|
-
const auditor = new CodeAuditorAgent();
|
|
125
|
-
const auditReport = await auditor.auditProject();
|
|
126
|
-
|
|
127
|
-
// Mostrar resumo da auditoria
|
|
128
|
-
console.log(auditReport.summary);
|
|
129
|
-
|
|
130
|
-
// Salvar relatório
|
|
131
|
-
auditor.saveReport(auditReport);
|
|
132
|
-
|
|
133
|
-
console.log('📋 Execute as correções recomendadas antes de prosseguir.\n');
|
|
134
|
-
console.log('Agora vamos configurar os agentes...\n');
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
// Perguntas básicas
|
|
138
|
-
const projectName = await this.ask('📠Nome do projeto: ');
|
|
139
|
-
|
|
140
|
-
const domain = await this.askChoice(
|
|
141
|
-
'🎯 Qual o domÃnio principal?',
|
|
142
|
-
['Site de NotÃcias', 'Produção/Expedição', 'LogÃstica', 'E-commerce', 'SaaS', 'Outro']
|
|
143
|
-
);
|
|
144
|
-
|
|
145
|
-
let customDomain: string | undefined;
|
|
146
|
-
if (domain === 'Outro') {
|
|
147
|
-
customDomain = await this.ask(' Descreva o domÃnio: ');
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
// Stack
|
|
151
|
-
console.log('\n💻 Stack Tecnológica (separado por vÃrgula):');
|
|
152
|
-
const stackInput = await this.ask(' Ex: Next.js, Supabase, React, TypeScript: ');
|
|
153
|
-
const stack = stackInput.split(',').map(s => s.trim()).filter(s => s.length > 0);
|
|
154
|
-
|
|
155
|
-
// Objetivos
|
|
156
|
-
console.log('\n🎯 Principais objetivos (separado por vÃrgula):');
|
|
157
|
-
const objectivesInput = await this.ask(' Ex: Gestão de conteúdo, Dashboard analytics: ');
|
|
158
|
-
const objectives = objectivesInput.split(',').map(s => s.trim()).filter(s => s.length > 0);
|
|
159
|
-
|
|
160
|
-
// Features
|
|
161
|
-
console.log('\n📋 Features principais (separado por vÃrgula):');
|
|
162
|
-
const featuresInput = await this.ask(' Ex: Login, Pagamentos, Notificações: ');
|
|
163
|
-
const features = featuresInput.split(',').map(s => s.trim()).filter(s => s.length > 0);
|
|
164
|
-
|
|
165
|
-
// Tamanho do time
|
|
166
|
-
const teamSizeInput = await this.ask('\n👥 Tamanho do time (número): ');
|
|
167
|
-
const teamSize = parseInt(teamSizeInput) || 1;
|
|
168
|
-
|
|
169
|
-
// Questões especÃficas
|
|
170
|
-
const hasDatabase = (await this.ask('\nðŸ—„ï¸ Usa banco de dados? (s/n): ')).toLowerCase() === 's';
|
|
171
|
-
const hasCMS = (await this.ask('📰 Precisa de CMS? (s/n): ')).toLowerCase() === 's';
|
|
172
|
-
const hasAuth = (await this.ask('🔠Tem autenticação? (s/n): ')).toLowerCase() === 's';
|
|
173
|
-
const hasPayments = (await this.ask('💳 Processa pagamentos? (s/n): ')).toLowerCase() === 's';
|
|
174
|
-
|
|
175
|
-
// Necessidades customizadas
|
|
176
|
-
console.log('\n🔧 Necessidades especÃficas do projeto (separado por vÃrgula):');
|
|
177
|
-
const customNeedsInput = await this.ask(' Ex: Integração com API externa, Relatórios PDF: ');
|
|
178
|
-
const customNeeds = customNeedsInput.split(',').map(s => s.trim()).filter(s => s.length > 0);
|
|
179
|
-
|
|
180
|
-
this.readline.close();
|
|
181
|
-
|
|
182
|
-
// Mapear domÃnio
|
|
183
|
-
const domainMapping: Record<string, DomainType | 'custom'> = {
|
|
184
|
-
'Site de NotÃcias': 'news',
|
|
185
|
-
'Produção/Expedição': 'production',
|
|
186
|
-
'LogÃstica': 'logistics',
|
|
187
|
-
'E-commerce': 'custom',
|
|
188
|
-
'SaaS': 'custom',
|
|
189
|
-
'Outro': 'custom',
|
|
190
|
-
};
|
|
191
|
-
|
|
192
|
-
return {
|
|
193
|
-
isNewProject,
|
|
194
|
-
projectName,
|
|
195
|
-
domain: domainMapping[domain] || 'custom',
|
|
196
|
-
customDomain: domain === 'Outro' ? customDomain : undefined,
|
|
197
|
-
stack,
|
|
198
|
-
objectives,
|
|
199
|
-
features,
|
|
200
|
-
teamSize,
|
|
201
|
-
hasDatabase,
|
|
202
|
-
hasCMS,
|
|
203
|
-
hasAuth,
|
|
204
|
-
hasPayments,
|
|
205
|
-
customNeeds,
|
|
206
|
-
};
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
/**
|
|
210
|
-
* Gera recomendações de agentes baseado no perfil
|
|
211
|
-
*/
|
|
212
|
-
generateRecommendations(profile: ProjectProfile): AgentRecommendation[] {
|
|
213
|
-
const recommendations: AgentRecommendation[] = [];
|
|
214
|
-
|
|
215
|
-
// Agentes core (sempre recomendados)
|
|
216
|
-
recommendations.push(
|
|
217
|
-
{ name: 'Frontend', file: 'core/frontend-agent.ts', purpose: 'Validar UI/UX', priority: 'high', autoCreate: true },
|
|
218
|
-
{ name: 'Security', file: 'core/security-agent.ts', purpose: 'Detectar vulnerabilidades', priority: 'high', autoCreate: true },
|
|
219
|
-
{ name: 'Architecture', file: 'core/architecture-agent.ts', purpose: 'Manter organização', priority: 'high', autoCreate: true },
|
|
220
|
-
{ name: 'Quality', file: 'core/quality-agent.ts', purpose: 'Lint, build, tests', priority: 'high', autoCreate: true },
|
|
221
|
-
{ name: 'Documentation', file: 'core/documentation-agent.ts', purpose: 'Docs automáticas', priority: 'medium', autoCreate: true }
|
|
222
|
-
);
|
|
223
|
-
|
|
224
|
-
// Agentes de domÃnio especÃficos
|
|
225
|
-
if (profile.domain === 'news' || profile.hasCMS) {
|
|
226
|
-
recommendations.push(
|
|
227
|
-
{ name: 'CMS', file: 'domains/news/cms-agent.ts', purpose: 'Gestão de conteúdo', priority: 'high', autoCreate: true },
|
|
228
|
-
{ name: 'SEO', file: 'domains/news/seo-agent.ts', purpose: 'Otimização SEO', priority: 'high', autoCreate: true }
|
|
229
|
-
);
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
if (profile.domain === 'production') {
|
|
233
|
-
recommendations.push(
|
|
234
|
-
{ name: 'Production Control', file: 'domains/production/production-control-agent.ts', purpose: 'Eventos de produção', priority: 'high', autoCreate: true },
|
|
235
|
-
{ name: 'Quality Control', file: 'domains/production/quality-control-agent.ts', purpose: 'Controle de qualidade', priority: 'medium', autoCreate: false }
|
|
236
|
-
);
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
if (profile.domain === 'logistics') {
|
|
240
|
-
recommendations.push(
|
|
241
|
-
{ name: 'Route', file: 'domains/logistics/route-agent.ts', purpose: 'Otimização de rotas', priority: 'high', autoCreate: true },
|
|
242
|
-
{ name: 'Fleet', file: 'domains/logistics/fleet-agent.ts', purpose: 'Gestão de frota', priority: 'medium', autoCreate: false }
|
|
243
|
-
);
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
// Agentes baseados em features
|
|
247
|
-
if (profile.hasAuth) {
|
|
248
|
-
recommendations.push(
|
|
249
|
-
{ name: 'Auth', file: 'domains/custom/auth-agent.ts', purpose: 'Validar fluxos de autenticação', priority: 'high', autoCreate: true }
|
|
250
|
-
);
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
if (profile.hasPayments) {
|
|
254
|
-
recommendations.push(
|
|
255
|
-
{ name: 'Payments', file: 'domains/custom/payments-agent.ts', purpose: 'Validar transações', priority: 'high', autoCreate: true }
|
|
256
|
-
);
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
if (profile.hasDatabase) {
|
|
260
|
-
recommendations.push(
|
|
261
|
-
{ name: 'Database Security', file: 'core/database-security-agent.ts', purpose: 'RLS e policies', priority: 'high', autoCreate: true }
|
|
262
|
-
);
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
return recommendations;
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
/**
|
|
269
|
-
* Gera relatório do projeto
|
|
270
|
-
*/
|
|
271
|
-
generateReport(profile: ProjectProfile, recommendations: AgentRecommendation[]): string {
|
|
272
|
-
let report = '\nâ”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”\n';
|
|
273
|
-
report += '📊 RELATÓRIO DO PROJETO\n';
|
|
274
|
-
report += 'â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”\n\n';
|
|
275
|
-
|
|
276
|
-
report += `📠**Nome**: ${profile.projectName}\n`;
|
|
277
|
-
report += `🎯 **DomÃnio**: ${profile.domain}${profile.customDomain ? ` (${profile.customDomain})` : ''}\n`;
|
|
278
|
-
report += `✨ **Status**: ${profile.isNewProject ? 'Projeto Novo' : 'Projeto Existente'}\n`;
|
|
279
|
-
report += `👥 **Time**: ${profile.teamSize} pessoa(s)\n\n`;
|
|
280
|
-
|
|
281
|
-
report += `💻 **Stack**:\n`;
|
|
282
|
-
profile.stack.forEach(s => report += ` - ${s}\n`);
|
|
283
|
-
|
|
284
|
-
report += `\n🎯 **Objetivos**:\n`;
|
|
285
|
-
profile.objectives.forEach(o => report += ` - ${o}\n`);
|
|
286
|
-
|
|
287
|
-
report += `\n📋 **Features**:\n`;
|
|
288
|
-
profile.features.forEach(f => report += ` - ${f}\n`);
|
|
289
|
-
|
|
290
|
-
report += `\n🔧 **CaracterÃsticas**:\n`;
|
|
291
|
-
report += ` - Database: ${profile.hasDatabase ? '✅' : 'âŒ'}\n`;
|
|
292
|
-
report += ` - CMS: ${profile.hasCMS ? '✅' : 'âŒ'}\n`;
|
|
293
|
-
report += ` - Auth: ${profile.hasAuth ? '✅' : 'âŒ'}\n`;
|
|
294
|
-
report += ` - Payments: ${profile.hasPayments ? '✅' : 'âŒ'}\n`;
|
|
295
|
-
|
|
296
|
-
if (profile.customNeeds.length > 0) {
|
|
297
|
-
report += `\n🔧 **Necessidades EspecÃficas**:\n`;
|
|
298
|
-
profile.customNeeds.forEach(n => report += ` - ${n}\n`);
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
report += `\nâ”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”\n`;
|
|
302
|
-
report += '🤖 AGENTES RECOMENDADOS\n';
|
|
303
|
-
report += 'â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”\n\n';
|
|
304
|
-
|
|
305
|
-
const highPriority = recommendations.filter(r => r.priority === 'high');
|
|
306
|
-
const mediumPriority = recommendations.filter(r => r.priority === 'medium');
|
|
307
|
-
const lowPriority = recommendations.filter(r => r.priority === 'low');
|
|
308
|
-
|
|
309
|
-
if (highPriority.length > 0) {
|
|
310
|
-
report += '🔴 **Alta Prioridade** (serão criados automaticamente):\n';
|
|
311
|
-
highPriority.forEach(r => {
|
|
312
|
-
report += ` ✅ ${r.name} - ${r.purpose}\n`;
|
|
313
|
-
report += ` 📄 ${r.file}\n`;
|
|
314
|
-
});
|
|
315
|
-
report += '\n';
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
if (mediumPriority.length > 0) {
|
|
319
|
-
report += '🟡 **Média Prioridade** (opcionais):\n';
|
|
320
|
-
mediumPriority.forEach(r => {
|
|
321
|
-
report += ` ⚪ ${r.name} - ${r.purpose}\n`;
|
|
322
|
-
report += ` 📄 ${r.file}\n`;
|
|
323
|
-
});
|
|
324
|
-
report += '\n';
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
report += 'â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”\n';
|
|
328
|
-
report += `✅ **Total**: ${recommendations.length} agentes recomendados\n`;
|
|
329
|
-
report += `🔴 **Auto-criação**: ${recommendations.filter(r => r.autoCreate).length} agentes\n`;
|
|
330
|
-
report += 'â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”\n\n';
|
|
331
|
-
|
|
332
|
-
return report;
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
/**
|
|
336
|
-
* Salva perfil do projeto
|
|
337
|
-
*/
|
|
338
|
-
saveProfile(profile: ProjectProfile): void {
|
|
339
|
-
const profilePath = 'docs/PROJECT_PROFILE.json';
|
|
340
|
-
fs.writeFileSync(profilePath, JSON.stringify(profile, null, 2), 'utf-8');
|
|
341
|
-
console.log(`✅ Perfil salvo em: ${profilePath}\n`);
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# Project Discovery Agent - Especialidade
|
|
2
|
-
|
|
3
|
-
## Responsabilidades
|
|
4
|
-
- Definir responsabilidades especÃficas
|
|
5
|
-
|
|
6
|
-
## Expertise
|
|
7
|
-
- Definir áreas de expertise
|
|
8
|
-
|
|
9
|
-
## Regras
|
|
10
|
-
- Arquivos < 500 linhas
|
|
11
|
-
- Não alucinar APIs
|
|
12
|
-
|
|
13
|
-
## Tarefas TÃpicas
|
|
14
|
-
- Listar tarefas tÃpicas
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
# Quality Agent
|
|
2
|
-
|
|
3
|
-
## 🎯 Responsabilidade
|
|
4
|
-
|
|
5
|
-
Especialista em garantia de qualidade, code review, linting, formatação e validação de padrões de código.
|
|
6
|
-
|
|
7
|
-
## 🛠️ Skills Disponíveis
|
|
8
|
-
|
|
9
|
-
### ✅ Qualidade de Código
|
|
10
|
-
|
|
11
|
-
*Skills de qualidade serão mapeadas quando adicionadas*
|
|
12
|
-
|
|
13
|
-
#### [clean-code](../../skills/clean-code/)
|
|
14
|
-
**Propósito**: Princípios clean code
|
|
15
|
-
**Quando usar**: Revisar qualidade de código
|
|
16
|
-
|
|
17
|
-
#### [code-review-checklist](../../skills/code-review-checklist/)
|
|
18
|
-
**Propósito**: Checklist de code review
|
|
19
|
-
**Quando usar**: Padronizar reviews
|
|
20
|
-
|
|
21
|
-
#### [cc-skill-coding-standards](../../skills/cc-skill-coding-standards/)
|
|
22
|
-
**Propósito**: Padrões de codificação
|
|
23
|
-
**Quando usar**: Enforcar standards
|
|
24
|
-
|
|
25
|
-
#### [lint-and-validate](../../skills/lint-and-validate/)
|
|
26
|
-
**Propósito**: Linting e validação
|
|
27
|
-
**Quando usar**: Automatizar quality checks
|
|
28
|
-
|
|
29
|
-
#### [claude-code-guide](../../skills/claude-code-guide/)
|
|
30
|
-
**Propósito**: Guia de código Claude
|
|
31
|
-
**Quando usar**: Best practices gerais
|
|
32
|
-
|
|
33
|
-
#### [cc-skill-continuous-learning](../../skills/cc-skill-continuous-learning/)
|
|
34
|
-
**Propósito**: Aprendizado contínuo
|
|
35
|
-
**Quando usar**: Melhorar com feedback
|
|
36
|
-
|
|
37
|
-
#### [cc-skill-project-guidelines-example](../../skills/cc-skill-project-guidelines-example/)
|
|
38
|
-
**Propósito**: Exemplo de guidelines
|
|
39
|
-
**Quando usar**: Referência de padrões
|
|
40
|
-
|
|
41
|
-
#### [senior-architect](../../skills/senior-architect/)
|
|
42
|
-
**Propósito**: Expert architect
|
|
43
|
-
|
|
44
|
-
#### [senior-fullstack](../../skills/senior-fullstack/)
|
|
45
|
-
**Propósito**: Fullstack sênior
|
|
46
|
-
|
|
47
|
-
#### [production-code-audit](../../skills/production-code-audit/)
|
|
48
|
-
**Propósito**: Auditoria de produção
|
|
49
|
-
|
|
50
|
-
#### [receiving-code-review](../../skills/receiving-code-review/)
|
|
51
|
-
**Propósito**: Receber code review
|
|
52
|
-
|
|
53
|
-
#### [requesting-code-review](../../skills/requesting-code-review/)
|
|
54
|
-
**Propósito**: Solicitar code review
|
|
55
|
-
|
|
56
|
-
## 📋 Tarefas Típicas
|
|
57
|
-
|
|
58
|
-
- ✅ Revisar código (code review)
|
|
59
|
-
- ✅ Validar padrões de código
|
|
60
|
-
- ✅ Executar linters (ESLint, Prettier)
|
|
61
|
-
- ✅ Verificar limite de 500 linhas
|
|
62
|
-
- ✅ Validar tipagem TypeScript
|
|
63
|
-
- ✅ Detectar code smells
|
|
64
|
-
- ✅ Garantir consistência
|
|
65
|
-
|
|
66
|
-
## 🔗 Dependências
|
|
67
|
-
|
|
68
|
-
- `BaseAgent`
|
|
69
|
-
- `MemorySystem`
|
|
70
|
-
- `SkillManager`
|
|
71
|
-
|
|
72
|
-
## 🔄 Fluxo de Trabalho
|
|
73
|
-
|
|
74
|
-
1. **Consulta memória**: Busca code reviews similares
|
|
75
|
-
2. **Carrega skills**: quality patterns
|
|
76
|
-
3. **Executa validação**: Analisa código
|
|
77
|
-
4. **Registra resultado**: Salva findings em memory.md
|
|
78
|
-
|
|
79
|
-
## 📊 Memória
|
|
80
|
-
|
|
81
|
-
Ver [memory.md](./memory.md) para histórico de code reviews e padrões.
|