@girardelli/architect 2.2.0 → 5.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 (212) hide show
  1. package/README.md +105 -116
  2. package/architect-run.sh +431 -0
  3. package/assets/banner-v3.html +561 -0
  4. package/dist/agent-generator/context-enricher.d.ts +58 -0
  5. package/dist/agent-generator/context-enricher.d.ts.map +1 -0
  6. package/dist/agent-generator/context-enricher.js +613 -0
  7. package/dist/agent-generator/context-enricher.js.map +1 -0
  8. package/dist/agent-generator/domain-inferrer.d.ts +52 -0
  9. package/dist/agent-generator/domain-inferrer.d.ts.map +1 -0
  10. package/dist/agent-generator/domain-inferrer.js +585 -0
  11. package/dist/agent-generator/domain-inferrer.js.map +1 -0
  12. package/dist/agent-generator/framework-detector.d.ts +40 -0
  13. package/dist/agent-generator/framework-detector.d.ts.map +1 -0
  14. package/dist/agent-generator/framework-detector.js +611 -0
  15. package/dist/agent-generator/framework-detector.js.map +1 -0
  16. package/dist/agent-generator/index.d.ts +47 -0
  17. package/dist/agent-generator/index.d.ts.map +1 -0
  18. package/dist/agent-generator/index.js +545 -0
  19. package/dist/agent-generator/index.js.map +1 -0
  20. package/dist/agent-generator/stack-detector.d.ts +14 -0
  21. package/dist/agent-generator/stack-detector.d.ts.map +1 -0
  22. package/dist/agent-generator/stack-detector.js +124 -0
  23. package/dist/agent-generator/stack-detector.js.map +1 -0
  24. package/dist/agent-generator/templates/core/agents.d.ts +17 -0
  25. package/dist/agent-generator/templates/core/agents.d.ts.map +1 -0
  26. package/dist/agent-generator/templates/core/agents.js +1256 -0
  27. package/dist/agent-generator/templates/core/agents.js.map +1 -0
  28. package/dist/agent-generator/templates/core/architecture-rules.d.ts +7 -0
  29. package/dist/agent-generator/templates/core/architecture-rules.d.ts.map +1 -0
  30. package/dist/agent-generator/templates/core/architecture-rules.js +274 -0
  31. package/dist/agent-generator/templates/core/architecture-rules.js.map +1 -0
  32. package/dist/agent-generator/templates/core/general-rules.d.ts +8 -0
  33. package/dist/agent-generator/templates/core/general-rules.d.ts.map +1 -0
  34. package/dist/agent-generator/templates/core/general-rules.js +301 -0
  35. package/dist/agent-generator/templates/core/general-rules.js.map +1 -0
  36. package/dist/agent-generator/templates/core/hooks-generator.d.ts +21 -0
  37. package/dist/agent-generator/templates/core/hooks-generator.d.ts.map +1 -0
  38. package/dist/agent-generator/templates/core/hooks-generator.js +233 -0
  39. package/dist/agent-generator/templates/core/hooks-generator.js.map +1 -0
  40. package/dist/agent-generator/templates/core/index-md.d.ts +7 -0
  41. package/dist/agent-generator/templates/core/index-md.d.ts.map +1 -0
  42. package/dist/agent-generator/templates/core/index-md.js +246 -0
  43. package/dist/agent-generator/templates/core/index-md.js.map +1 -0
  44. package/dist/agent-generator/templates/core/orchestrator.d.ts +8 -0
  45. package/dist/agent-generator/templates/core/orchestrator.d.ts.map +1 -0
  46. package/dist/agent-generator/templates/core/orchestrator.js +422 -0
  47. package/dist/agent-generator/templates/core/orchestrator.js.map +1 -0
  48. package/dist/agent-generator/templates/core/preflight.d.ts +8 -0
  49. package/dist/agent-generator/templates/core/preflight.d.ts.map +1 -0
  50. package/dist/agent-generator/templates/core/preflight.js +213 -0
  51. package/dist/agent-generator/templates/core/preflight.js.map +1 -0
  52. package/dist/agent-generator/templates/core/quality-gates.d.ts +11 -0
  53. package/dist/agent-generator/templates/core/quality-gates.d.ts.map +1 -0
  54. package/dist/agent-generator/templates/core/quality-gates.js +254 -0
  55. package/dist/agent-generator/templates/core/quality-gates.js.map +1 -0
  56. package/dist/agent-generator/templates/core/security-rules.d.ts +7 -0
  57. package/dist/agent-generator/templates/core/security-rules.d.ts.map +1 -0
  58. package/dist/agent-generator/templates/core/security-rules.js +528 -0
  59. package/dist/agent-generator/templates/core/security-rules.js.map +1 -0
  60. package/dist/agent-generator/templates/core/skills-generator.d.ts +19 -0
  61. package/dist/agent-generator/templates/core/skills-generator.d.ts.map +1 -0
  62. package/dist/agent-generator/templates/core/skills-generator.js +546 -0
  63. package/dist/agent-generator/templates/core/skills-generator.js.map +1 -0
  64. package/dist/agent-generator/templates/core/workflow-fix-bug.d.ts +7 -0
  65. package/dist/agent-generator/templates/core/workflow-fix-bug.d.ts.map +1 -0
  66. package/dist/agent-generator/templates/core/workflow-fix-bug.js +237 -0
  67. package/dist/agent-generator/templates/core/workflow-fix-bug.js.map +1 -0
  68. package/dist/agent-generator/templates/core/workflow-new-feature.d.ts +8 -0
  69. package/dist/agent-generator/templates/core/workflow-new-feature.d.ts.map +1 -0
  70. package/dist/agent-generator/templates/core/workflow-new-feature.js +321 -0
  71. package/dist/agent-generator/templates/core/workflow-new-feature.js.map +1 -0
  72. package/dist/agent-generator/templates/core/workflow-review.d.ts +7 -0
  73. package/dist/agent-generator/templates/core/workflow-review.d.ts.map +1 -0
  74. package/dist/agent-generator/templates/core/workflow-review.js +104 -0
  75. package/dist/agent-generator/templates/core/workflow-review.js.map +1 -0
  76. package/dist/agent-generator/templates/domain/index.d.ts +22 -0
  77. package/dist/agent-generator/templates/domain/index.d.ts.map +1 -0
  78. package/dist/agent-generator/templates/domain/index.js +1176 -0
  79. package/dist/agent-generator/templates/domain/index.js.map +1 -0
  80. package/dist/agent-generator/templates/stack/index.d.ts +8 -0
  81. package/dist/agent-generator/templates/stack/index.d.ts.map +1 -0
  82. package/dist/agent-generator/templates/stack/index.js +695 -0
  83. package/dist/agent-generator/templates/stack/index.js.map +1 -0
  84. package/dist/agent-generator/templates/template-helpers.d.ts +75 -0
  85. package/dist/agent-generator/templates/template-helpers.d.ts.map +1 -0
  86. package/dist/agent-generator/templates/template-helpers.js +726 -0
  87. package/dist/agent-generator/templates/template-helpers.js.map +1 -0
  88. package/dist/agent-generator/types.d.ts +196 -0
  89. package/dist/agent-generator/types.d.ts.map +1 -0
  90. package/dist/agent-generator/types.js +27 -0
  91. package/dist/agent-generator/types.js.map +1 -0
  92. package/dist/analyzer.d.ts +5 -0
  93. package/dist/analyzer.d.ts.map +1 -1
  94. package/dist/analyzer.js +46 -5
  95. package/dist/analyzer.js.map +1 -1
  96. package/dist/analyzers/forecast.d.ts +85 -0
  97. package/dist/analyzers/forecast.d.ts.map +1 -0
  98. package/dist/analyzers/forecast.js +337 -0
  99. package/dist/analyzers/forecast.js.map +1 -0
  100. package/dist/analyzers/git-cache.d.ts +7 -0
  101. package/dist/analyzers/git-cache.d.ts.map +1 -0
  102. package/dist/analyzers/git-cache.js +41 -0
  103. package/dist/analyzers/git-cache.js.map +1 -0
  104. package/dist/analyzers/git-history.d.ts +113 -0
  105. package/dist/analyzers/git-history.d.ts.map +1 -0
  106. package/dist/analyzers/git-history.js +333 -0
  107. package/dist/analyzers/git-history.js.map +1 -0
  108. package/dist/analyzers/index.d.ts +10 -0
  109. package/dist/analyzers/index.d.ts.map +1 -0
  110. package/dist/analyzers/index.js +7 -0
  111. package/dist/analyzers/index.js.map +1 -0
  112. package/dist/analyzers/temporal-scorer.d.ts +72 -0
  113. package/dist/analyzers/temporal-scorer.d.ts.map +1 -0
  114. package/dist/analyzers/temporal-scorer.js +140 -0
  115. package/dist/analyzers/temporal-scorer.js.map +1 -0
  116. package/dist/anti-patterns.d.ts +7 -0
  117. package/dist/anti-patterns.d.ts.map +1 -1
  118. package/dist/anti-patterns.js +25 -6
  119. package/dist/anti-patterns.js.map +1 -1
  120. package/dist/cli.d.ts +2 -3
  121. package/dist/cli.d.ts.map +1 -1
  122. package/dist/cli.js +275 -113
  123. package/dist/cli.js.map +1 -1
  124. package/dist/config.d.ts +6 -0
  125. package/dist/config.d.ts.map +1 -1
  126. package/dist/config.js +48 -11
  127. package/dist/config.js.map +1 -1
  128. package/dist/html-reporter.d.ts +3 -1
  129. package/dist/html-reporter.d.ts.map +1 -1
  130. package/dist/html-reporter.js +248 -12
  131. package/dist/html-reporter.js.map +1 -1
  132. package/dist/index.d.ts +16 -3
  133. package/dist/index.d.ts.map +1 -1
  134. package/dist/index.js +63 -4
  135. package/dist/index.js.map +1 -1
  136. package/dist/project-summarizer.d.ts +38 -0
  137. package/dist/project-summarizer.d.ts.map +1 -0
  138. package/dist/project-summarizer.js +463 -0
  139. package/dist/project-summarizer.js.map +1 -0
  140. package/dist/refactor-reporter.js +1 -1
  141. package/dist/scanner.d.ts +8 -2
  142. package/dist/scanner.d.ts.map +1 -1
  143. package/dist/scanner.js +153 -113
  144. package/dist/scanner.js.map +1 -1
  145. package/dist/scorer.d.ts.map +1 -1
  146. package/dist/scorer.js +24 -11
  147. package/dist/scorer.js.map +1 -1
  148. package/dist/types.d.ts +29 -0
  149. package/dist/types.d.ts.map +1 -1
  150. package/package.json +12 -3
  151. package/src/agent-generator/context-enricher.ts +672 -0
  152. package/src/agent-generator/domain-inferrer.ts +635 -0
  153. package/src/agent-generator/framework-detector.ts +669 -0
  154. package/src/agent-generator/index.ts +634 -0
  155. package/src/agent-generator/stack-detector.ts +115 -0
  156. package/src/agent-generator/templates/core/agents.ts +1296 -0
  157. package/src/agent-generator/templates/core/architecture-rules.ts +287 -0
  158. package/src/agent-generator/templates/core/general-rules.ts +306 -0
  159. package/src/agent-generator/templates/core/hooks-generator.ts +242 -0
  160. package/src/agent-generator/templates/core/index-md.ts +260 -0
  161. package/src/agent-generator/templates/core/orchestrator.ts +459 -0
  162. package/src/agent-generator/templates/core/preflight.ts +215 -0
  163. package/src/agent-generator/templates/core/quality-gates.ts +256 -0
  164. package/src/agent-generator/templates/core/security-rules.ts +543 -0
  165. package/src/agent-generator/templates/core/skills-generator.ts +585 -0
  166. package/src/agent-generator/templates/core/workflow-fix-bug.ts +239 -0
  167. package/src/agent-generator/templates/core/workflow-new-feature.ts +323 -0
  168. package/src/agent-generator/templates/core/workflow-review.ts +106 -0
  169. package/src/agent-generator/templates/domain/index.ts +1201 -0
  170. package/src/agent-generator/templates/stack/index.ts +705 -0
  171. package/src/agent-generator/templates/template-helpers.ts +776 -0
  172. package/src/agent-generator/types.ts +232 -0
  173. package/src/analyzer.ts +51 -5
  174. package/src/analyzers/forecast.ts +496 -0
  175. package/src/analyzers/git-cache.ts +52 -0
  176. package/src/analyzers/git-history.ts +488 -0
  177. package/src/analyzers/index.ts +33 -0
  178. package/src/analyzers/temporal-scorer.ts +227 -0
  179. package/src/anti-patterns.ts +29 -6
  180. package/src/cli.ts +316 -117
  181. package/src/config.ts +52 -11
  182. package/src/html-reporter.ts +263 -13
  183. package/src/index.ts +93 -10
  184. package/src/project-summarizer.ts +521 -0
  185. package/src/refactor-reporter.ts +1 -1
  186. package/src/scanner.ts +136 -90
  187. package/src/scorer.ts +26 -11
  188. package/src/types.ts +27 -0
  189. package/tests/agent-generator.test.ts +427 -0
  190. package/tests/analyzers-integration.test.ts +174 -0
  191. package/tests/architect-adapter-enrichment.test.ts +9 -0
  192. package/tests/context-enricher.test.ts +971 -0
  193. package/tests/fixtures/monorepo/package.json +6 -0
  194. package/tests/fixtures/monorepo/packages/app/package.json +12 -0
  195. package/tests/fixtures/monorepo/packages/app/src/index.ts +6 -0
  196. package/tests/fixtures/monorepo/packages/core/package.json +7 -0
  197. package/tests/fixtures/monorepo/packages/core/src/index.ts +7 -0
  198. package/tests/forecast.test.ts +509 -0
  199. package/tests/framework-detector.test.ts +1172 -0
  200. package/tests/git-history.test.ts +254 -0
  201. package/tests/monorepo-scan.test.ts +170 -0
  202. package/tests/scanner.test.ts +7 -8
  203. package/tests/scorer.test.ts +594 -0
  204. package/tests/stack-detector.test.ts +241 -0
  205. package/tests/template-generation.test.ts +706 -0
  206. package/tests/template-helpers.test.ts +1152 -0
  207. package/tests/temporal-scorer.test.ts +307 -0
  208. package/dist/agent-generator.d.ts +0 -106
  209. package/dist/agent-generator.d.ts.map +0 -1
  210. package/dist/agent-generator.js +0 -1398
  211. package/dist/agent-generator.js.map +0 -1
  212. package/src/agent-generator.ts +0 -1526
@@ -0,0 +1,546 @@
1
+ import { getEnriched } from '../template-helpers.js';
2
+ /**
3
+ * Analisa módulos e detecta padrões recorrentes (adapters, factories, extractors, etc.)
4
+ */
5
+ function detectPatterns(ctx) {
6
+ const enriched = getEnriched(ctx);
7
+ const modules = enriched.modules || [];
8
+ const patterns = [];
9
+ // Collect all file/class names from modules
10
+ const allFiles = [];
11
+ const allServices = [];
12
+ const allControllers = [];
13
+ const allEntities = [];
14
+ for (const mod of modules) {
15
+ allServices.push(...mod.services);
16
+ allControllers.push(...mod.controllers);
17
+ allEntities.push(...mod.entities);
18
+ allFiles.push(...mod.testFiles);
19
+ }
20
+ const allNames = [...allServices, ...allControllers, ...allEntities, ...allFiles];
21
+ // Detect Adapter pattern
22
+ const adapters = allNames.filter(n => /adapter/i.test(n));
23
+ if (adapters.length > 0) {
24
+ patterns.push({
25
+ name: 'Adapter Pattern',
26
+ description: 'O projeto utiliza o padrão Adapter para abstrair integrações externas e garantir desacoplamento.',
27
+ examples: adapters.slice(0, 5),
28
+ howToCreate: `1. Criar interface no domínio: \`I{Nome}Port\`
29
+ 2. Implementar adapter: \`{Nome}Adapter implements I{Nome}Port\`
30
+ 3. Registrar no container de DI
31
+ 4. Escrever testes unitários com mock do adapter
32
+ 5. Garantir que o domínio nunca importe o adapter diretamente`,
33
+ });
34
+ }
35
+ // Detect Factory pattern
36
+ const factories = allNames.filter(n => /factory/i.test(n));
37
+ if (factories.length > 0) {
38
+ patterns.push({
39
+ name: 'Factory Pattern',
40
+ description: 'Factories são usadas para encapsular a lógica de criação de objetos complexos.',
41
+ examples: factories.slice(0, 5),
42
+ howToCreate: `1. Criar classe factory: \`{Nome}Factory\`
43
+ 2. Método principal: \`create({params}): {Tipo}\`
44
+ 3. Encapsular validações e defaults
45
+ 4. Escrever testes para cada variação de criação`,
46
+ });
47
+ }
48
+ // Detect Extractor pattern
49
+ const extractors = allNames.filter(n => /extractor|parser|reader/i.test(n));
50
+ if (extractors.length > 0) {
51
+ patterns.push({
52
+ name: 'Extractor/Parser Pattern',
53
+ description: 'Extractors/Parsers são usados para extrair e transformar dados de fontes externas (PDFs, APIs, arquivos).',
54
+ examples: extractors.slice(0, 5),
55
+ howToCreate: `1. Criar interface: \`I{Tipo}Extractor\`
56
+ 2. Implementar: \`{Tipo}Extractor implements I{Tipo}Extractor\`
57
+ 3. Método principal: \`extract(source): ExtractedData\`
58
+ 4. Testar com fixtures (dados de exemplo)
59
+ 5. Tratar edge cases: dados vazios, formato inválido, timeout`,
60
+ });
61
+ }
62
+ // Detect Repository pattern
63
+ const repositories = allNames.filter(n => /repository|repo/i.test(n));
64
+ if (repositories.length > 0) {
65
+ patterns.push({
66
+ name: 'Repository Pattern',
67
+ description: 'Repositories abstraem o acesso a dados, separando lógica de negócio da persistência.',
68
+ examples: repositories.slice(0, 5),
69
+ howToCreate: `1. Criar interface: \`I{Entidade}Repository\`
70
+ 2. Métodos padrão: findById, findAll, save, delete
71
+ 3. Implementar com ORM ou query builder
72
+ 4. Testar com banco in-memory ou mock`,
73
+ });
74
+ }
75
+ // Detect Middleware/Guard pattern
76
+ const middlewares = allNames.filter(n => /middleware|guard|interceptor|pipe/i.test(n));
77
+ if (middlewares.length > 0) {
78
+ patterns.push({
79
+ name: 'Middleware/Guard Pattern',
80
+ description: 'Middlewares e Guards implementam cross-cutting concerns (auth, logging, validation).',
81
+ examples: middlewares.slice(0, 5),
82
+ howToCreate: `1. Criar middleware/guard com interface do framework
83
+ 2. Implementar lógica de interceptação
84
+ 3. Registrar no pipeline de request
85
+ 4. Testar isoladamente com request mocking`,
86
+ });
87
+ }
88
+ // Detect DTO/Schema pattern
89
+ const dtos = allNames.filter(n => /dto|schema|model|entity/i.test(n));
90
+ if (dtos.length > 2) { // Only if there are several
91
+ patterns.push({
92
+ name: 'DTO/Schema Pattern',
93
+ description: 'DTOs e Schemas definem contratos de entrada/saída e validações.',
94
+ examples: dtos.slice(0, 5),
95
+ howToCreate: `1. Criar DTO/Schema para cada endpoint
96
+ 2. Validações no DTO (não no controller)
97
+ 3. Separar RequestDTO e ResponseDTO
98
+ 4. Documentar campos obrigatórios e opcionais
99
+ 5. Usar validação automática do framework`,
100
+ });
101
+ }
102
+ // Detect Service Layer pattern (almost always present)
103
+ if (allServices.length > 1) {
104
+ patterns.push({
105
+ name: 'Service Layer Pattern',
106
+ description: 'Services encapsulam toda a lógica de negócio, mantendo controllers finos.',
107
+ examples: allServices.slice(0, 5),
108
+ howToCreate: `1. Criar service: \`{Domínio}Service\`
109
+ 2. Injetar dependências via constructor
110
+ 3. Um método por caso de uso (SRP)
111
+ 4. Lançar exceções de domínio (não HTTP)
112
+ 5. Testar unitariamente com mocks de dependências`,
113
+ });
114
+ }
115
+ return patterns;
116
+ }
117
+ /**
118
+ * Gera conteúdo do skill principal do projeto
119
+ */
120
+ export function generateProjectSkills(ctx) {
121
+ const enriched = getEnriched(ctx);
122
+ const patterns = detectPatterns(ctx);
123
+ const stack = 'stack' in ctx ? ctx.stack : undefined;
124
+ const domain = enriched.domain;
125
+ if (patterns.length === 0) {
126
+ return null; // Não gerar se não houver padrões detectados
127
+ }
128
+ const langs = stack?.languages.map((l) => l.toLowerCase()) || [];
129
+ const isPython = langs.includes('python');
130
+ const isDart = langs.includes('dart');
131
+ const isGo = langs.includes('go');
132
+ // Naming convention per language
133
+ let fileConvention = 'camelCase para arquivos, PascalCase para classes';
134
+ if (isPython)
135
+ fileConvention = 'snake_case para arquivos e funções, PascalCase para classes';
136
+ else if (isDart)
137
+ fileConvention = 'snake_case para arquivos, camelCase para funções, PascalCase para classes';
138
+ else if (isGo)
139
+ fileConvention = 'lowercase para pacotes, PascalCase para exports, camelCase para privados';
140
+ // Build frameworks label from enriched detectedFrameworks (most accurate) or stack.frameworks
141
+ const detectedFw = enriched.detectedFrameworks;
142
+ const frameworksLabel = detectedFw && detectedFw.length > 0
143
+ ? detectedFw.map(f => f.version ? `${f.name} v${f.version}` : f.name).join(', ')
144
+ : (stack?.frameworks.length ? stack.frameworks.join(', ') : 'Não detectados');
145
+ const patternsContent = patterns.map(p => `### ${p.name}
146
+
147
+ ${p.description}
148
+
149
+ **Exemplos no projeto:**
150
+ ${p.examples.map(e => `- \`${e}\``).join('\n')}
151
+
152
+ **Como criar um novo:**
153
+ ${p.howToCreate}
154
+ `).join('\n---\n\n');
155
+ const domainSection = domain ? `
156
+ ---
157
+
158
+ ## Padrões de Domínio: ${domain.domain}${domain.subDomain ? ` / ${domain.subDomain}` : ''}
159
+
160
+ ${domain.businessEntities?.length ? `### Entidades de Negócio
161
+ ${domain.businessEntities.map(e => `- **${e.name}**: ${e.fields?.join(', ') || 'campos detectados'}`).join('\n')}` : ''}
162
+
163
+ ${domain.integrations?.length ? `### Integrações
164
+ ${domain.integrations.map(i => `- **${i.name}** (${i.type})`).join('\n')}` : ''}
165
+
166
+ ${domain.compliance?.length ? `### Compliance
167
+ ${domain.compliance.map(c => `- **${c.name}**: ${c.reason}`).join('\n')}` : ''}
168
+ ` : '';
169
+ return `---
170
+ antigravity:
171
+ trigger: 'on_demand'
172
+ description: 'Padrões e convenções específicos do projeto'
173
+ version: 3.1.0
174
+ ---
175
+
176
+ # 📚 Skills: Padrões do Projeto
177
+
178
+ > Referência rápida dos padrões arquiteturais detectados e como seguí-los.
179
+
180
+ ---
181
+
182
+ ## Convenções
183
+
184
+ - **Nomenclatura de arquivos:** ${fileConvention}
185
+ - **Stack:** ${stack?.languages.join(', ') || 'Não detectada'}
186
+ - **Frameworks:** ${frameworksLabel}
187
+
188
+ ---
189
+
190
+ ## Padrões Arquiteturais Detectados
191
+
192
+ ${patternsContent}
193
+ ${domainSection}
194
+ ---
195
+
196
+ ## Checklist para Novo Código
197
+
198
+ \`\`\`
199
+ □ Segue os padrões acima?
200
+ □ Testes escritos antes do código (TDD)?
201
+ □ Nomenclatura consistente com convenções?
202
+ □ Sem duplicação de lógica existente?
203
+ □ Documentação atualizada (JSDoc/docstring)?
204
+ \`\`\`
205
+ `;
206
+ }
207
+ /**
208
+ * Generates ARCHITECT-INTEGRATION.md skill with real project data
209
+ */
210
+ export function generateArchitectIntegrationSkill(ctx) {
211
+ const enriched = getEnriched(ctx);
212
+ const projectName = ctx.projectName;
213
+ const report = ctx.report;
214
+ const config = ctx.config;
215
+ return `---
216
+ antigravity:
217
+ trigger: 'on_demand'
218
+ description: 'Como usar o Architect para análise contínua de arquitetura'
219
+ version: 5.1.0
220
+ ---
221
+
222
+ # 🏗️ Skill: Architect Integration — ${projectName}
223
+
224
+ > Como usar \`@girardelli/architect\` para manter a qualidade arquitetural.
225
+
226
+ ---
227
+
228
+ ## Instalação
229
+
230
+ \`\`\`bash
231
+ npm install -g @girardelli/architect
232
+ \`\`\`
233
+
234
+ ---
235
+
236
+ ## Comandos Disponíveis
237
+
238
+ ### Análise completa
239
+ \`\`\`bash
240
+ # Gera HTML report + JSON + .agent/ framework
241
+ architect analyze .
242
+
243
+ # Output:
244
+ # → architect-report.html (visual)
245
+ # → architect-report.json (dados)
246
+ # → .agent/ (framework de agentes)
247
+ \`\`\`
248
+
249
+ ### Score rápido
250
+ \`\`\`bash
251
+ # Verificação rápida do score
252
+ architect score .
253
+
254
+ # JSON output (para CI)
255
+ architect score . --json
256
+ \`\`\`
257
+
258
+ ### Regenerar agentes
259
+ \`\`\`bash
260
+ # Regenera .agent/ com dados atualizados
261
+ architect agents .
262
+ \`\`\`
263
+
264
+ ---
265
+
266
+ ## Estado Atual — ${projectName}
267
+
268
+ | Métrica | Valor |
269
+ |---------|-------|
270
+ | **Score** | ${report.score.overall}/100 |
271
+ | **Meta** | ${config.scoreThreshold}/100 (mínimo) |
272
+ | **Score Modularity** | ${report.score.breakdown.modularity}/100 |
273
+ | **Score Coupling** | ${report.score.breakdown.coupling}/100 |
274
+ | **Score Cohesion** | ${report.score.breakdown.cohesion}/100 |
275
+ | **Score Layering** | ${report.score.breakdown.layering}/100 |
276
+ | **Anti-patterns** | ${report.antiPatterns.length} |
277
+ | **Arquivos** | ${report.projectInfo.totalFiles} |
278
+ | **Linhas** | ${report.projectInfo.totalLines.toLocaleString()} |
279
+
280
+ ---
281
+
282
+ ## Integração no Workflow
283
+
284
+ ### Antes de criar PR
285
+ \`\`\`bash
286
+ # Verificar que o score não regrediu
287
+ architect score .
288
+ # Se score < ${config.scoreThreshold} → NÃO criar PR
289
+ \`\`\`
290
+
291
+ ### Após refatoração
292
+ \`\`\`bash
293
+ # Verificar melhoria
294
+ architect analyze .
295
+ # Comparar com score anterior
296
+ \`\`\`
297
+
298
+ ### Revisão de arquitetura
299
+ \`\`\`bash
300
+ # Gerar report completo para code review
301
+ architect analyze . --output-dir docs/
302
+ \`\`\`
303
+
304
+ ---
305
+
306
+ ## Quality Gates
307
+
308
+ \`\`\`
309
+ Score mínimo para PR: ${config.scoreThreshold}/100
310
+ Cobertura mínima: ${config.coverageMinimum}%
311
+ Zero anti-patterns CRITICAL: Obrigatório
312
+ Regressão de score: Proibida
313
+ \`\`\`
314
+
315
+ ---
316
+
317
+ **Gerado por Architect v5.1 · Score: ${report.score.overall}/100**
318
+ `;
319
+ }
320
+ /**
321
+ * Generates CI-PIPELINE.md skill with real toolchain data
322
+ */
323
+ export function generateCIPipelineSkill(ctx) {
324
+ const enriched = getEnriched(ctx);
325
+ const projectName = ctx.projectName;
326
+ const tc = enriched.toolchain;
327
+ const config = ctx.config;
328
+ const report = ctx.report;
329
+ const buildCmd = tc?.buildCmd || 'npm run build';
330
+ const testCmd = tc?.testCmd || 'npm test';
331
+ const lintCmd = tc?.lintCmd || 'npx eslint .';
332
+ const coverageCmd = tc?.coverageCmd || 'npm run test -- --coverage';
333
+ const installCmd = tc?.installCmd || 'npm install';
334
+ return `---
335
+ antigravity:
336
+ trigger: 'on_demand'
337
+ description: 'Integração CI/CD com verificação de arquitetura'
338
+ version: 5.1.0
339
+ ---
340
+
341
+ # 🔄 Skill: CI Pipeline — ${projectName}
342
+
343
+ > Pipeline de integração contínua com gates de qualidade arquitetural.
344
+
345
+ ---
346
+
347
+ ## GitHub Actions
348
+
349
+ \`\`\`yaml
350
+ # .github/workflows/architect-ci.yml
351
+ name: Architecture CI
352
+
353
+ on:
354
+ pull_request:
355
+ branches: [main, develop, staging]
356
+
357
+ jobs:
358
+ quality:
359
+ runs-on: ubuntu-latest
360
+ steps:
361
+ - uses: actions/checkout@v4
362
+
363
+ - uses: actions/setup-node@v4
364
+ with:
365
+ node-version: '20'
366
+ cache: 'npm'
367
+
368
+ - name: Install dependencies
369
+ run: ${installCmd}
370
+
371
+ - name: Build
372
+ run: ${buildCmd}
373
+
374
+ - name: Lint
375
+ run: ${lintCmd}
376
+
377
+ - name: Test
378
+ run: ${testCmd}
379
+
380
+ - name: Coverage
381
+ run: ${coverageCmd}
382
+
383
+ - name: Architecture Score
384
+ run: |
385
+ npm install -g @girardelli/architect
386
+ SCORE=$(architect score . --json | jq '.overall')
387
+ echo "Architecture Score: $SCORE/100"
388
+ if [ "$SCORE" -lt ${config.scoreThreshold} ]; then
389
+ echo "::error::Score ($SCORE) below threshold (${config.scoreThreshold})"
390
+ exit 1
391
+ fi
392
+
393
+ - name: No Score Regression
394
+ run: |
395
+ # Compare with main branch score
396
+ CURRENT=$(architect score . --json | jq '.overall')
397
+ echo "Current: $CURRENT/100, Minimum: ${config.scoreThreshold}/100"
398
+ \`\`\`
399
+
400
+ ---
401
+
402
+ ## Comandos do Pipeline
403
+
404
+ | Step | Comando | Gate |
405
+ |------|---------|------|
406
+ | Install | \`${installCmd}\` | — |
407
+ | Build | \`${buildCmd}\` | ❌ Bloqueia se falhar |
408
+ | Lint | \`${lintCmd}\` | ❌ Bloqueia se falhar |
409
+ | Test | \`${testCmd}\` | ❌ Bloqueia se falhar |
410
+ | Coverage | \`${coverageCmd}\` | ⚠️ Mínimo ${config.coverageMinimum}% |
411
+ | Score | \`architect score .\` | ❌ Mínimo ${config.scoreThreshold}/100 |
412
+
413
+ ---
414
+
415
+ ## GitLab CI
416
+
417
+ \`\`\`yaml
418
+ # .gitlab-ci.yml
419
+ stages:
420
+ - build
421
+ - test
422
+ - quality
423
+
424
+ build:
425
+ stage: build
426
+ script:
427
+ - ${installCmd}
428
+ - ${buildCmd}
429
+
430
+ test:
431
+ stage: test
432
+ script:
433
+ - ${testCmd}
434
+ - ${coverageCmd}
435
+
436
+ architecture:
437
+ stage: quality
438
+ script:
439
+ - npm install -g @girardelli/architect
440
+ - architect score . --json
441
+ allow_failure: false
442
+ \`\`\`
443
+
444
+ ---
445
+
446
+ **Gerado por Architect v5.1 · Score: ${report.score.overall}/100**
447
+ `;
448
+ }
449
+ /**
450
+ * Generates MONOREPO-GUIDE.md skill with real workspace data.
451
+ * Only generated when projectStructure === 'monorepo'.
452
+ */
453
+ export function generateMonorepoGuideSkill(ctx) {
454
+ const enriched = getEnriched(ctx);
455
+ if (enriched.projectStructure !== 'monorepo')
456
+ return null;
457
+ const projectName = ctx.projectName;
458
+ const modules = enriched.modules || [];
459
+ const tc = enriched.toolchain;
460
+ if (modules.length === 0)
461
+ return null;
462
+ const moduleTable = modules.map(m => `| ${m.name} | \`${m.path}\` | ${m.fileCount} | ${m.lineCount > 0 ? m.lineCount.toLocaleString() : '—'} | ${m.hasTests ? '✅' : '❌'} | ${m.layer} |`).join('\n');
463
+ return `---
464
+ antigravity:
465
+ trigger: 'on_demand'
466
+ description: 'Guia de navegação e desenvolvimento no monorepo'
467
+ version: 5.1.0
468
+ ---
469
+
470
+ # 📦 Skill: Monorepo Guide — ${projectName}
471
+
472
+ > Estrutura, convenções e fluxos de trabalho do monorepo.
473
+
474
+ ---
475
+
476
+ ## Workspace Map
477
+
478
+ | Package | Path | Arquivos | Linhas | Testes | Camada |
479
+ |---------|------|----------|--------|--------|--------|
480
+ ${moduleTable}
481
+
482
+ ---
483
+
484
+ ## Regras do Monorepo
485
+
486
+ ### Dependency Direction
487
+ \`\`\`
488
+ ╔════════════════════════════════════════════╗
489
+ ║ types → events → core → bridge → mcp ║
490
+ ║ ║
491
+ ║ Dependências SEMPRE de baixo para cima. ║
492
+ ║ NUNCA criar referência circular. ║
493
+ ╚════════════════════════════════════════════╝
494
+ \`\`\`
495
+
496
+ ### Boas Práticas
497
+
498
+ 1. **Cada package tem seu package.json** — versão independente
499
+ 2. **Types compartilhados** ficam no package \`types\`
500
+ 3. **Nunca importar de outro package via path relativo** — usar \`@scope/package\`
501
+ 4. **Testes rodam por package** — \`npm test --workspace=packages/<nome>\`
502
+ 5. **Build ordem** — respeitar dependências (types primeiro)
503
+
504
+ ### Comandos por Workspace
505
+
506
+ \`\`\`bash
507
+ # Rodar testes de um package específico
508
+ npm test --workspace=packages/<nome>
509
+
510
+ # Build de um package específico
511
+ npm run build --workspace=packages/<nome>
512
+
513
+ # Instalar deps de todos os workspaces
514
+ ${tc?.installCmd || 'npm install'}
515
+
516
+ # Build de todos
517
+ ${tc?.buildCmd || 'npm run build'}
518
+
519
+ # Testes de todos
520
+ ${tc?.testCmd || 'npm test'}
521
+ \`\`\`
522
+
523
+ ---
524
+
525
+ ## Quando Criar um Novo Package
526
+
527
+ 1. **Justificativa:** O código é reutilizável por 2+ packages?
528
+ 2. **Escopo:** O package tem responsabilidade única?
529
+ 3. **Testes:** O package pode ser testado isoladamente?
530
+ 4. **Deps:** As dependências são explícitas no package.json?
531
+
532
+ ### Template
533
+
534
+ \`\`\`bash
535
+ mkdir packages/<nome>
536
+ cd packages/<nome>
537
+ npm init -y
538
+ # Configurar tsconfig.json, jest.config, etc.
539
+ \`\`\`
540
+
541
+ ---
542
+
543
+ **Gerado por Architect v5.1 · ${modules.length} packages detectados**
544
+ `;
545
+ }
546
+ //# sourceMappingURL=skills-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills-generator.js","sourceRoot":"","sources":["../../../../src/agent-generator/templates/core/skills-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { TemplateContext } from '../../types.js';
2
+ /**
3
+ * Generates enterprise-grade fix-bug.md workflow.
4
+ * 10 steps: diagnosis → localization → root cause → RED test → fix → regression → docs.
5
+ */
6
+ export declare function generateFixBugWorkflow(ctx: TemplateContext): string;
7
+ //# sourceMappingURL=workflow-fix-bug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-fix-bug.d.ts","sourceRoot":"","sources":["../../../../src/agent-generator/templates/core/workflow-fix-bug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAwOnE"}