@girardelli/architect-agents 8.1.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 (258) hide show
  1. package/dist/src/core/agent-generator/context-enricher.d.ts +17 -0
  2. package/dist/src/core/agent-generator/context-enricher.js +51 -0
  3. package/dist/src/core/agent-generator/context-enricher.js.map +1 -0
  4. package/dist/src/core/agent-generator/detectors/base-detector.d.ts +8 -0
  5. package/dist/src/core/agent-generator/detectors/base-detector.js +12 -0
  6. package/dist/src/core/agent-generator/detectors/base-detector.js.map +1 -0
  7. package/dist/src/core/agent-generator/detectors/dart-detector.d.ts +5 -0
  8. package/dist/src/core/agent-generator/detectors/dart-detector.js +16 -0
  9. package/dist/src/core/agent-generator/detectors/dart-detector.js.map +1 -0
  10. package/dist/src/core/agent-generator/detectors/framework-registry.d.ts +5 -0
  11. package/dist/src/core/agent-generator/detectors/framework-registry.js +81 -0
  12. package/dist/src/core/agent-generator/detectors/framework-registry.js.map +1 -0
  13. package/dist/src/core/agent-generator/detectors/go-detector.d.ts +5 -0
  14. package/dist/src/core/agent-generator/detectors/go-detector.js +25 -0
  15. package/dist/src/core/agent-generator/detectors/go-detector.js.map +1 -0
  16. package/dist/src/core/agent-generator/detectors/java-detector.d.ts +5 -0
  17. package/dist/src/core/agent-generator/detectors/java-detector.js +44 -0
  18. package/dist/src/core/agent-generator/detectors/java-detector.js.map +1 -0
  19. package/dist/src/core/agent-generator/detectors/node-detector.d.ts +5 -0
  20. package/dist/src/core/agent-generator/detectors/node-detector.js +28 -0
  21. package/dist/src/core/agent-generator/detectors/node-detector.js.map +1 -0
  22. package/dist/src/core/agent-generator/detectors/php-detector.d.ts +5 -0
  23. package/dist/src/core/agent-generator/detectors/php-detector.js +28 -0
  24. package/dist/src/core/agent-generator/detectors/php-detector.js.map +1 -0
  25. package/dist/src/core/agent-generator/detectors/python-detector.d.ts +7 -0
  26. package/dist/src/core/agent-generator/detectors/python-detector.js +116 -0
  27. package/dist/src/core/agent-generator/detectors/python-detector.js.map +1 -0
  28. package/dist/src/core/agent-generator/detectors/ruby-detector.d.ts +5 -0
  29. package/dist/src/core/agent-generator/detectors/ruby-detector.js +23 -0
  30. package/dist/src/core/agent-generator/detectors/ruby-detector.js.map +1 -0
  31. package/dist/src/core/agent-generator/detectors/rust-detector.d.ts +5 -0
  32. package/dist/src/core/agent-generator/detectors/rust-detector.js +18 -0
  33. package/dist/src/core/agent-generator/detectors/rust-detector.js.map +1 -0
  34. package/dist/src/core/agent-generator/detectors/structure-detector.d.ts +4 -0
  35. package/dist/src/core/agent-generator/detectors/structure-detector.js +35 -0
  36. package/dist/src/core/agent-generator/detectors/structure-detector.js.map +1 -0
  37. package/dist/src/core/agent-generator/detectors/toolchain-detector.d.ts +5 -0
  38. package/dist/src/core/agent-generator/detectors/toolchain-detector.js +164 -0
  39. package/dist/src/core/agent-generator/detectors/toolchain-detector.js.map +1 -0
  40. package/dist/src/core/agent-generator/domain-inferrer.d.ts +51 -0
  41. package/dist/src/core/agent-generator/domain-inferrer.js +585 -0
  42. package/dist/src/core/agent-generator/domain-inferrer.js.map +1 -0
  43. package/dist/src/core/agent-generator/engines/audit-engine.d.ts +8 -0
  44. package/dist/src/core/agent-generator/engines/audit-engine.js +84 -0
  45. package/dist/src/core/agent-generator/engines/audit-engine.js.map +1 -0
  46. package/dist/src/core/agent-generator/engines/context-builder.d.ts +12 -0
  47. package/dist/src/core/agent-generator/engines/context-builder.js +84 -0
  48. package/dist/src/core/agent-generator/engines/context-builder.js.map +1 -0
  49. package/dist/src/core/agent-generator/engines/generation-engine.d.ts +7 -0
  50. package/dist/src/core/agent-generator/engines/generation-engine.js +160 -0
  51. package/dist/src/core/agent-generator/engines/generation-engine.js.map +1 -0
  52. package/dist/src/core/agent-generator/engines/generation-engine_deps.d.ts +21 -0
  53. package/dist/src/core/agent-generator/engines/generation-engine_deps.js +17 -0
  54. package/dist/src/core/agent-generator/engines/generation-engine_deps.js.map +1 -0
  55. package/dist/src/core/agent-generator/engines/suggestion-engine.d.ts +13 -0
  56. package/dist/src/core/agent-generator/engines/suggestion-engine.js +171 -0
  57. package/dist/src/core/agent-generator/engines/suggestion-engine.js.map +1 -0
  58. package/dist/src/core/agent-generator/engines/suggestion-engine_deps.d.ts +8 -0
  59. package/dist/src/core/agent-generator/engines/suggestion-engine_deps.js +5 -0
  60. package/dist/src/core/agent-generator/engines/suggestion-engine_deps.js.map +1 -0
  61. package/dist/src/core/agent-generator/enrichers/analysis-helpers.d.ts +9 -0
  62. package/dist/src/core/agent-generator/enrichers/analysis-helpers.js +51 -0
  63. package/dist/src/core/agent-generator/enrichers/analysis-helpers.js.map +1 -0
  64. package/dist/src/core/agent-generator/enrichers/description-generator.d.ts +4 -0
  65. package/dist/src/core/agent-generator/enrichers/description-generator.js +82 -0
  66. package/dist/src/core/agent-generator/enrichers/description-generator.js.map +1 -0
  67. package/dist/src/core/agent-generator/enrichers/endpoint-extractor.d.ts +7 -0
  68. package/dist/src/core/agent-generator/enrichers/endpoint-extractor.js +90 -0
  69. package/dist/src/core/agent-generator/enrichers/endpoint-extractor.js.map +1 -0
  70. package/dist/src/core/agent-generator/enrichers/layer-classifier.d.ts +12 -0
  71. package/dist/src/core/agent-generator/enrichers/layer-classifier.js +152 -0
  72. package/dist/src/core/agent-generator/enrichers/layer-classifier.js.map +1 -0
  73. package/dist/src/core/agent-generator/enrichers/module-extractor.d.ts +10 -0
  74. package/dist/src/core/agent-generator/enrichers/module-extractor.js +173 -0
  75. package/dist/src/core/agent-generator/enrichers/module-extractor.js.map +1 -0
  76. package/dist/src/core/agent-generator/framework-detector.d.ts +17 -0
  77. package/dist/src/core/agent-generator/framework-detector.js +56 -0
  78. package/dist/src/core/agent-generator/framework-detector.js.map +1 -0
  79. package/dist/src/core/agent-generator/index.d.ts +25 -0
  80. package/dist/src/core/agent-generator/index.js +37 -0
  81. package/dist/src/core/agent-generator/index.js.map +1 -0
  82. package/dist/src/core/agent-generator/stack-detector.d.ts +13 -0
  83. package/dist/src/core/agent-generator/stack-detector.js +124 -0
  84. package/dist/src/core/agent-generator/stack-detector.js.map +1 -0
  85. package/dist/src/core/agent-generator/templates/core/agents.d.ts +9 -0
  86. package/dist/src/core/agent-generator/templates/core/agents.js +1127 -0
  87. package/dist/src/core/agent-generator/templates/core/agents.js.map +1 -0
  88. package/dist/src/core/agent-generator/templates/core/architecture-rules.d.ts +6 -0
  89. package/dist/src/core/agent-generator/templates/core/architecture-rules.js +275 -0
  90. package/dist/src/core/agent-generator/templates/core/architecture-rules.js.map +1 -0
  91. package/dist/src/core/agent-generator/templates/core/general-rules.d.ts +7 -0
  92. package/dist/src/core/agent-generator/templates/core/general-rules.js +301 -0
  93. package/dist/src/core/agent-generator/templates/core/general-rules.js.map +1 -0
  94. package/dist/src/core/agent-generator/templates/core/hooks-generator.d.ts +20 -0
  95. package/dist/src/core/agent-generator/templates/core/hooks-generator.js +235 -0
  96. package/dist/src/core/agent-generator/templates/core/hooks-generator.js.map +1 -0
  97. package/dist/src/core/agent-generator/templates/core/index-md.d.ts +6 -0
  98. package/dist/src/core/agent-generator/templates/core/index-md.js +247 -0
  99. package/dist/src/core/agent-generator/templates/core/index-md.js.map +1 -0
  100. package/dist/src/core/agent-generator/templates/core/orchestrator.d.ts +7 -0
  101. package/dist/src/core/agent-generator/templates/core/orchestrator.js +423 -0
  102. package/dist/src/core/agent-generator/templates/core/orchestrator.js.map +1 -0
  103. package/dist/src/core/agent-generator/templates/core/preflight.d.ts +7 -0
  104. package/dist/src/core/agent-generator/templates/core/preflight.js +213 -0
  105. package/dist/src/core/agent-generator/templates/core/preflight.js.map +1 -0
  106. package/dist/src/core/agent-generator/templates/core/quality-gates.d.ts +10 -0
  107. package/dist/src/core/agent-generator/templates/core/quality-gates.js +255 -0
  108. package/dist/src/core/agent-generator/templates/core/quality-gates.js.map +1 -0
  109. package/dist/src/core/agent-generator/templates/core/security-rules.d.ts +6 -0
  110. package/dist/src/core/agent-generator/templates/core/security-rules.js +529 -0
  111. package/dist/src/core/agent-generator/templates/core/security-rules.js.map +1 -0
  112. package/dist/src/core/agent-generator/templates/core/skills-generator.d.ts +18 -0
  113. package/dist/src/core/agent-generator/templates/core/skills-generator.js +547 -0
  114. package/dist/src/core/agent-generator/templates/core/skills-generator.js.map +1 -0
  115. package/dist/src/core/agent-generator/templates/core/workflow-fix-bug.d.ts +6 -0
  116. package/dist/src/core/agent-generator/templates/core/workflow-fix-bug.js +238 -0
  117. package/dist/src/core/agent-generator/templates/core/workflow-fix-bug.js.map +1 -0
  118. package/dist/src/core/agent-generator/templates/core/workflow-new-feature.d.ts +7 -0
  119. package/dist/src/core/agent-generator/templates/core/workflow-new-feature.js +321 -0
  120. package/dist/src/core/agent-generator/templates/core/workflow-new-feature.js.map +1 -0
  121. package/dist/src/core/agent-generator/templates/core/workflow-review.d.ts +6 -0
  122. package/dist/src/core/agent-generator/templates/core/workflow-review.js +105 -0
  123. package/dist/src/core/agent-generator/templates/core/workflow-review.js.map +1 -0
  124. package/dist/src/core/agent-generator/templates/domain/index.d.ts +21 -0
  125. package/dist/src/core/agent-generator/templates/domain/index.js +1179 -0
  126. package/dist/src/core/agent-generator/templates/domain/index.js.map +1 -0
  127. package/dist/src/core/agent-generator/templates/helpers/base-helpers.d.ts +10 -0
  128. package/dist/src/core/agent-generator/templates/helpers/base-helpers.js +20 -0
  129. package/dist/src/core/agent-generator/templates/helpers/base-helpers.js.map +1 -0
  130. package/dist/src/core/agent-generator/templates/helpers/cross-ref-helpers.d.ts +2 -0
  131. package/dist/src/core/agent-generator/templates/helpers/cross-ref-helpers.js +77 -0
  132. package/dist/src/core/agent-generator/templates/helpers/cross-ref-helpers.js.map +1 -0
  133. package/dist/src/core/agent-generator/templates/helpers/security-helpers.d.ts +2 -0
  134. package/dist/src/core/agent-generator/templates/helpers/security-helpers.js +182 -0
  135. package/dist/src/core/agent-generator/templates/helpers/security-helpers.js.map +1 -0
  136. package/dist/src/core/agent-generator/templates/helpers/stack-helpers.d.ts +4 -0
  137. package/dist/src/core/agent-generator/templates/helpers/stack-helpers.js +69 -0
  138. package/dist/src/core/agent-generator/templates/helpers/stack-helpers.js.map +1 -0
  139. package/dist/src/core/agent-generator/templates/helpers/structure-helpers.d.ts +2 -0
  140. package/dist/src/core/agent-generator/templates/helpers/structure-helpers.js +275 -0
  141. package/dist/src/core/agent-generator/templates/helpers/structure-helpers.js.map +1 -0
  142. package/dist/src/core/agent-generator/templates/helpers/summary-helpers.d.ts +6 -0
  143. package/dist/src/core/agent-generator/templates/helpers/summary-helpers.js +56 -0
  144. package/dist/src/core/agent-generator/templates/helpers/summary-helpers.js.map +1 -0
  145. package/dist/src/core/agent-generator/templates/stack/index.d.ts +7 -0
  146. package/dist/src/core/agent-generator/templates/stack/index.js +695 -0
  147. package/dist/src/core/agent-generator/templates/stack/index.js.map +1 -0
  148. package/dist/src/core/agent-generator/templates/template-helpers.d.ts +11 -0
  149. package/dist/src/core/agent-generator/templates/template-helpers.js +12 -0
  150. package/dist/src/core/agent-generator/templates/template-helpers.js.map +1 -0
  151. package/dist/src/core/agent-generator/types/agent.d.ts +39 -0
  152. package/dist/src/core/agent-generator/types/agent.js +27 -0
  153. package/dist/src/core/agent-generator/types/agent.js.map +1 -0
  154. package/dist/src/core/agent-generator/types/domain.d.ts +58 -0
  155. package/dist/src/core/agent-generator/types/domain.js +2 -0
  156. package/dist/src/core/agent-generator/types/domain.js.map +1 -0
  157. package/dist/src/core/agent-generator/types/stack.d.ts +36 -0
  158. package/dist/src/core/agent-generator/types/stack.js +2 -0
  159. package/dist/src/core/agent-generator/types/stack.js.map +1 -0
  160. package/dist/src/core/agent-generator/types/template.d.ts +29 -0
  161. package/dist/src/core/agent-generator/types/template.js +2 -0
  162. package/dist/src/core/agent-generator/types/template.js.map +1 -0
  163. package/dist/src/core/agent-runtime/ai-provider.d.ts +33 -0
  164. package/dist/src/core/agent-runtime/ai-provider.js +146 -0
  165. package/dist/src/core/agent-runtime/ai-provider.js.map +1 -0
  166. package/dist/src/core/agent-runtime/executor.d.ts +13 -0
  167. package/dist/src/core/agent-runtime/executor.js +138 -0
  168. package/dist/src/core/agent-runtime/executor.js.map +1 -0
  169. package/dist/src/core/agent-runtime/human-gate.d.ts +16 -0
  170. package/dist/src/core/agent-runtime/human-gate.js +70 -0
  171. package/dist/src/core/agent-runtime/human-gate.js.map +1 -0
  172. package/dist/tests/agent-generator.test.d.ts +1 -0
  173. package/dist/tests/agent-generator.test.js +349 -0
  174. package/dist/tests/agent-generator.test.js.map +1 -0
  175. package/dist/tests/agent-runtime.test.d.ts +1 -0
  176. package/dist/tests/agent-runtime.test.js +107 -0
  177. package/dist/tests/agent-runtime.test.js.map +1 -0
  178. package/dist/tests/context-enricher.test.d.ts +1 -0
  179. package/dist/tests/context-enricher.test.js +875 -0
  180. package/dist/tests/context-enricher.test.js.map +1 -0
  181. package/dist/tests/framework-detector.test.d.ts +1 -0
  182. package/dist/tests/framework-detector.test.js +882 -0
  183. package/dist/tests/framework-detector.test.js.map +1 -0
  184. package/dist/tests/stack-detector.test.d.ts +1 -0
  185. package/dist/tests/stack-detector.test.js +183 -0
  186. package/dist/tests/stack-detector.test.js.map +1 -0
  187. package/dist/tests/template-generation.test.d.ts +1 -0
  188. package/dist/tests/template-generation.test.js +571 -0
  189. package/dist/tests/template-generation.test.js.map +1 -0
  190. package/dist/tests/template-helpers.test.d.ts +1 -0
  191. package/dist/tests/template-helpers.test.js +967 -0
  192. package/dist/tests/template-helpers.test.js.map +1 -0
  193. package/package.json +24 -0
  194. package/src/core/agent-generator/context-enricher.ts +67 -0
  195. package/src/core/agent-generator/detectors/base-detector.ts +18 -0
  196. package/src/core/agent-generator/detectors/dart-detector.ts +17 -0
  197. package/src/core/agent-generator/detectors/framework-registry.ts +82 -0
  198. package/src/core/agent-generator/detectors/go-detector.ts +26 -0
  199. package/src/core/agent-generator/detectors/java-detector.ts +46 -0
  200. package/src/core/agent-generator/detectors/node-detector.ts +28 -0
  201. package/src/core/agent-generator/detectors/php-detector.ts +28 -0
  202. package/src/core/agent-generator/detectors/python-detector.ts +125 -0
  203. package/src/core/agent-generator/detectors/ruby-detector.ts +24 -0
  204. package/src/core/agent-generator/detectors/rust-detector.ts +19 -0
  205. package/src/core/agent-generator/detectors/structure-detector.ts +38 -0
  206. package/src/core/agent-generator/detectors/toolchain-detector.ts +181 -0
  207. package/src/core/agent-generator/domain-inferrer.ts +630 -0
  208. package/src/core/agent-generator/engines/audit-engine.ts +98 -0
  209. package/src/core/agent-generator/engines/context-builder.ts +96 -0
  210. package/src/core/agent-generator/engines/generation-engine.ts +184 -0
  211. package/src/core/agent-generator/engines/generation-engine_deps.ts +21 -0
  212. package/src/core/agent-generator/engines/suggestion-engine.ts +202 -0
  213. package/src/core/agent-generator/engines/suggestion-engine_deps.ts +8 -0
  214. package/src/core/agent-generator/enrichers/analysis-helpers.ts +58 -0
  215. package/src/core/agent-generator/enrichers/description-generator.ts +91 -0
  216. package/src/core/agent-generator/enrichers/endpoint-extractor.ts +114 -0
  217. package/src/core/agent-generator/enrichers/layer-classifier.ts +156 -0
  218. package/src/core/agent-generator/enrichers/module-extractor.ts +203 -0
  219. package/src/core/agent-generator/framework-detector.ts +66 -0
  220. package/src/core/agent-generator/index.ts +55 -0
  221. package/src/core/agent-generator/stack-detector.ts +115 -0
  222. package/src/core/agent-generator/templates/core/agents.ts +1168 -0
  223. package/src/core/agent-generator/templates/core/architecture-rules.ts +288 -0
  224. package/src/core/agent-generator/templates/core/general-rules.ts +306 -0
  225. package/src/core/agent-generator/templates/core/hooks-generator.ts +244 -0
  226. package/src/core/agent-generator/templates/core/index-md.ts +261 -0
  227. package/src/core/agent-generator/templates/core/orchestrator.ts +462 -0
  228. package/src/core/agent-generator/templates/core/preflight.ts +216 -0
  229. package/src/core/agent-generator/templates/core/quality-gates.ts +257 -0
  230. package/src/core/agent-generator/templates/core/security-rules.ts +544 -0
  231. package/src/core/agent-generator/templates/core/skills-generator.ts +586 -0
  232. package/src/core/agent-generator/templates/core/workflow-fix-bug.ts +240 -0
  233. package/src/core/agent-generator/templates/core/workflow-new-feature.ts +323 -0
  234. package/src/core/agent-generator/templates/core/workflow-review.ts +107 -0
  235. package/src/core/agent-generator/templates/domain/index.ts +1204 -0
  236. package/src/core/agent-generator/templates/helpers/base-helpers.ts +33 -0
  237. package/src/core/agent-generator/templates/helpers/cross-ref-helpers.ts +79 -0
  238. package/src/core/agent-generator/templates/helpers/security-helpers.ts +198 -0
  239. package/src/core/agent-generator/templates/helpers/stack-helpers.ts +80 -0
  240. package/src/core/agent-generator/templates/helpers/structure-helpers.ts +293 -0
  241. package/src/core/agent-generator/templates/helpers/summary-helpers.ts +67 -0
  242. package/src/core/agent-generator/templates/stack/index.ts +705 -0
  243. package/src/core/agent-generator/templates/template-helpers.ts +12 -0
  244. package/src/core/agent-generator/types/agent.ts +65 -0
  245. package/src/core/agent-generator/types/domain.ts +63 -0
  246. package/src/core/agent-generator/types/stack.ts +38 -0
  247. package/src/core/agent-generator/types/template.ts +31 -0
  248. package/src/core/agent-runtime/ai-provider.ts +178 -0
  249. package/src/core/agent-runtime/executor.ts +148 -0
  250. package/src/core/agent-runtime/human-gate.ts +69 -0
  251. package/tests/agent-generator.test.ts +428 -0
  252. package/tests/agent-runtime.test.ts +125 -0
  253. package/tests/context-enricher.test.ts +972 -0
  254. package/tests/framework-detector.test.ts +1172 -0
  255. package/tests/stack-detector.test.ts +241 -0
  256. package/tests/template-generation.test.ts +709 -0
  257. package/tests/template-helpers.test.ts +1130 -0
  258. package/tsconfig.json +14 -0
@@ -0,0 +1,547 @@
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
+ // @ts-ignore - Audit cleanup unused variable
212
+ const enriched = getEnriched(ctx);
213
+ const projectName = ctx.projectName;
214
+ const report = ctx.report;
215
+ const config = ctx.config;
216
+ return `---
217
+ antigravity:
218
+ trigger: 'on_demand'
219
+ description: 'Como usar o Architect para análise contínua de arquitetura'
220
+ version: 5.1.0
221
+ ---
222
+
223
+ # 🏗️ Skill: Architect Integration — ${projectName}
224
+
225
+ > Como usar \`@girardelli/architect\` para manter a qualidade arquitetural.
226
+
227
+ ---
228
+
229
+ ## Instalação
230
+
231
+ \`\`\`bash
232
+ npm install -g @girardelli/architect
233
+ \`\`\`
234
+
235
+ ---
236
+
237
+ ## Comandos Disponíveis
238
+
239
+ ### Análise completa
240
+ \`\`\`bash
241
+ # Gera HTML report + JSON + .agent/ framework
242
+ architect analyze .
243
+
244
+ # Output:
245
+ # → architect-report.html (visual)
246
+ # → architect-report.json (dados)
247
+ # → .agent/ (framework de agentes)
248
+ \`\`\`
249
+
250
+ ### Score rápido
251
+ \`\`\`bash
252
+ # Verificação rápida do score
253
+ architect score .
254
+
255
+ # JSON output (para CI)
256
+ architect score . --json
257
+ \`\`\`
258
+
259
+ ### Regenerar agentes
260
+ \`\`\`bash
261
+ # Regenera .agent/ com dados atualizados
262
+ architect agents .
263
+ \`\`\`
264
+
265
+ ---
266
+
267
+ ## Estado Atual — ${projectName}
268
+
269
+ | Métrica | Valor |
270
+ |---------|-------|
271
+ | **Score** | ${report.score.overall}/100 |
272
+ | **Meta** | ${config.scoreThreshold}/100 (mínimo) |
273
+ | **Score Modularity** | ${report.score.breakdown.modularity}/100 |
274
+ | **Score Coupling** | ${report.score.breakdown.coupling}/100 |
275
+ | **Score Cohesion** | ${report.score.breakdown.cohesion}/100 |
276
+ | **Score Layering** | ${report.score.breakdown.layering}/100 |
277
+ | **Anti-patterns** | ${report.antiPatterns.length} |
278
+ | **Arquivos** | ${report.projectInfo.totalFiles} |
279
+ | **Linhas** | ${report.projectInfo.totalLines.toLocaleString()} |
280
+
281
+ ---
282
+
283
+ ## Integração no Workflow
284
+
285
+ ### Antes de criar PR
286
+ \`\`\`bash
287
+ # Verificar que o score não regrediu
288
+ architect score .
289
+ # Se score < ${config.scoreThreshold} → NÃO criar PR
290
+ \`\`\`
291
+
292
+ ### Após refatoração
293
+ \`\`\`bash
294
+ # Verificar melhoria
295
+ architect analyze .
296
+ # Comparar com score anterior
297
+ \`\`\`
298
+
299
+ ### Revisão de arquitetura
300
+ \`\`\`bash
301
+ # Gerar report completo para code review
302
+ architect analyze . --output-dir docs/
303
+ \`\`\`
304
+
305
+ ---
306
+
307
+ ## Quality Gates
308
+
309
+ \`\`\`
310
+ Score mínimo para PR: ${config.scoreThreshold}/100
311
+ Cobertura mínima: ${config.coverageMinimum}%
312
+ Zero anti-patterns CRITICAL: Obrigatório
313
+ Regressão de score: Proibida
314
+ \`\`\`
315
+
316
+ ---
317
+
318
+ **Gerado por Architect v5.1 · Score: ${report.score.overall}/100**
319
+ `;
320
+ }
321
+ /**
322
+ * Generates CI-PIPELINE.md skill with real toolchain data
323
+ */
324
+ export function generateCIPipelineSkill(ctx) {
325
+ const enriched = getEnriched(ctx);
326
+ const projectName = ctx.projectName;
327
+ const tc = enriched.toolchain;
328
+ const config = ctx.config;
329
+ const report = ctx.report;
330
+ const buildCmd = tc?.buildCmd || 'npm run build';
331
+ const testCmd = tc?.testCmd || 'npm test';
332
+ const lintCmd = tc?.lintCmd || 'npx eslint .';
333
+ const coverageCmd = tc?.coverageCmd || 'npm run test -- --coverage';
334
+ const installCmd = tc?.installCmd || 'npm install';
335
+ return `---
336
+ antigravity:
337
+ trigger: 'on_demand'
338
+ description: 'Integração CI/CD com verificação de arquitetura'
339
+ version: 5.1.0
340
+ ---
341
+
342
+ # 🔄 Skill: CI Pipeline — ${projectName}
343
+
344
+ > Pipeline de integração contínua com gates de qualidade arquitetural.
345
+
346
+ ---
347
+
348
+ ## GitHub Actions
349
+
350
+ \`\`\`yaml
351
+ # .github/workflows/architect-ci.yml
352
+ name: Architecture CI
353
+
354
+ on:
355
+ pull_request:
356
+ branches: [main, develop, staging]
357
+
358
+ jobs:
359
+ quality:
360
+ runs-on: ubuntu-latest
361
+ steps:
362
+ - uses: actions/checkout@v4
363
+
364
+ - uses: actions/setup-node@v4
365
+ with:
366
+ node-version: '20'
367
+ cache: 'npm'
368
+
369
+ - name: Install dependencies
370
+ run: ${installCmd}
371
+
372
+ - name: Build
373
+ run: ${buildCmd}
374
+
375
+ - name: Lint
376
+ run: ${lintCmd}
377
+
378
+ - name: Test
379
+ run: ${testCmd}
380
+
381
+ - name: Coverage
382
+ run: ${coverageCmd}
383
+
384
+ - name: Architecture Score
385
+ run: |
386
+ npm install -g @girardelli/architect
387
+ SCORE=$(architect score . --json | jq '.overall')
388
+ echo "Architecture Score: $SCORE/100"
389
+ if [ "$SCORE" -lt ${config.scoreThreshold} ]; then
390
+ echo "::error::Score ($SCORE) below threshold (${config.scoreThreshold})"
391
+ exit 1
392
+ fi
393
+
394
+ - name: No Score Regression
395
+ run: |
396
+ # Compare with main branch score
397
+ CURRENT=$(architect score . --json | jq '.overall')
398
+ echo "Current: $CURRENT/100, Minimum: ${config.scoreThreshold}/100"
399
+ \`\`\`
400
+
401
+ ---
402
+
403
+ ## Comandos do Pipeline
404
+
405
+ | Step | Comando | Gate |
406
+ |------|---------|------|
407
+ | Install | \`${installCmd}\` | — |
408
+ | Build | \`${buildCmd}\` | ❌ Bloqueia se falhar |
409
+ | Lint | \`${lintCmd}\` | ❌ Bloqueia se falhar |
410
+ | Test | \`${testCmd}\` | ❌ Bloqueia se falhar |
411
+ | Coverage | \`${coverageCmd}\` | ⚠️ Mínimo ${config.coverageMinimum}% |
412
+ | Score | \`architect score .\` | ❌ Mínimo ${config.scoreThreshold}/100 |
413
+
414
+ ---
415
+
416
+ ## GitLab CI
417
+
418
+ \`\`\`yaml
419
+ # .gitlab-ci.yml
420
+ stages:
421
+ - build
422
+ - test
423
+ - quality
424
+
425
+ build:
426
+ stage: build
427
+ script:
428
+ - ${installCmd}
429
+ - ${buildCmd}
430
+
431
+ test:
432
+ stage: test
433
+ script:
434
+ - ${testCmd}
435
+ - ${coverageCmd}
436
+
437
+ architecture:
438
+ stage: quality
439
+ script:
440
+ - npm install -g @girardelli/architect
441
+ - architect score . --json
442
+ allow_failure: false
443
+ \`\`\`
444
+
445
+ ---
446
+
447
+ **Gerado por Architect v5.1 · Score: ${report.score.overall}/100**
448
+ `;
449
+ }
450
+ /**
451
+ * Generates MONOREPO-GUIDE.md skill with real workspace data.
452
+ * Only generated when projectStructure === 'monorepo'.
453
+ */
454
+ export function generateMonorepoGuideSkill(ctx) {
455
+ const enriched = getEnriched(ctx);
456
+ if (enriched.projectStructure !== 'monorepo')
457
+ return null;
458
+ const projectName = ctx.projectName;
459
+ const modules = enriched.modules || [];
460
+ const tc = enriched.toolchain;
461
+ if (modules.length === 0)
462
+ return null;
463
+ const moduleTable = modules.map(m => `| ${m.name} | \`${m.path}\` | ${m.fileCount} | ${m.lineCount > 0 ? m.lineCount.toLocaleString() : '—'} | ${m.hasTests ? '✅' : '❌'} | ${m.layer} |`).join('\n');
464
+ return `---
465
+ antigravity:
466
+ trigger: 'on_demand'
467
+ description: 'Guia de navegação e desenvolvimento no monorepo'
468
+ version: 5.1.0
469
+ ---
470
+
471
+ # 📦 Skill: Monorepo Guide — ${projectName}
472
+
473
+ > Estrutura, convenções e fluxos de trabalho do monorepo.
474
+
475
+ ---
476
+
477
+ ## Workspace Map
478
+
479
+ | Package | Path | Arquivos | Linhas | Testes | Camada |
480
+ |---------|------|----------|--------|--------|--------|
481
+ ${moduleTable}
482
+
483
+ ---
484
+
485
+ ## Regras do Monorepo
486
+
487
+ ### Dependency Direction
488
+ \`\`\`
489
+ ╔════════════════════════════════════════════╗
490
+ ║ types → events → core → bridge → mcp ║
491
+ ║ ║
492
+ ║ Dependências SEMPRE de baixo para cima. ║
493
+ ║ NUNCA criar referência circular. ║
494
+ ╚════════════════════════════════════════════╝
495
+ \`\`\`
496
+
497
+ ### Boas Práticas
498
+
499
+ 1. **Cada package tem seu package.json** — versão independente
500
+ 2. **Types compartilhados** ficam no package \`types\`
501
+ 3. **Nunca importar de outro package via path relativo** — usar \`@scope/package\`
502
+ 4. **Testes rodam por package** — \`npm test --workspace=packages/<nome>\`
503
+ 5. **Build ordem** — respeitar dependências (types primeiro)
504
+
505
+ ### Comandos por Workspace
506
+
507
+ \`\`\`bash
508
+ # Rodar testes de um package específico
509
+ npm test --workspace=packages/<nome>
510
+
511
+ # Build de um package específico
512
+ npm run build --workspace=packages/<nome>
513
+
514
+ # Instalar deps de todos os workspaces
515
+ ${tc?.installCmd || 'npm install'}
516
+
517
+ # Build de todos
518
+ ${tc?.buildCmd || 'npm run build'}
519
+
520
+ # Testes de todos
521
+ ${tc?.testCmd || 'npm test'}
522
+ \`\`\`
523
+
524
+ ---
525
+
526
+ ## Quando Criar um Novo Package
527
+
528
+ 1. **Justificativa:** O código é reutilizável por 2+ packages?
529
+ 2. **Escopo:** O package tem responsabilidade única?
530
+ 3. **Testes:** O package pode ser testado isoladamente?
531
+ 4. **Deps:** As dependências são explícitas no package.json?
532
+
533
+ ### Template
534
+
535
+ \`\`\`bash
536
+ mkdir packages/<nome>
537
+ cd packages/<nome>
538
+ npm init -y
539
+ # Configurar tsconfig.json, jest.config, etc.
540
+ \`\`\`
541
+
542
+ ---
543
+
544
+ **Gerado por Architect v5.1 · ${modules.length} packages detectados**
545
+ `;
546
+ }
547
+ //# sourceMappingURL=skills-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills-generator.js","sourceRoot":"","sources":["../../../../../../src/core/agent-generator/templates/core/skills-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { TemplateContext } from '@girardelli/architect-agents/src/core/agent-generator/types/template.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;