@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,255 @@
1
+ // @ts-ignore - Audit cleanup unused variable
2
+ import { getEnriched, depthAtLeast } from '../template-helpers.js';
3
+ /**
4
+ * Generates enterprise-grade QUALITY-GATES.md
5
+ * 3-level gates (CRITICAL/IMPORTANT/DESIRABLE), per-layer checklists,
6
+ * explicit blockers list, metrics table, 4-stage verification process.
7
+ *
8
+ * Context-aware: Adds compliance-specific gates, untested modules warnings,
9
+ * and domain-specific blockers when enriched data is available.
10
+ */
11
+ export function generateQualityGates(ctx) {
12
+ const { stack, projectName, config, report } = ctx;
13
+ const enriched = getEnriched(ctx);
14
+ return `---
15
+ antigravity:
16
+ trigger: 'always_on'
17
+ globs: ['**/*']
18
+ description: 'QUALITY GATES — Critérios mínimos obrigatórios para ${projectName}'
19
+ priority: CRITICAL
20
+ ---
21
+
22
+ # 🚦 QUALITY GATES — ${projectName}
23
+
24
+ > **Sem aprovação em TODOS os gates CRITICAL, nenhuma entrega é aceita.**
25
+
26
+ ---
27
+
28
+ ## 🔴 CRITICAL (Obrigatórios — Bloqueiam Merge)
29
+
30
+ | # | Gate | Critério | Verificação |
31
+ |---|------|----------|-------------|
32
+ | C1 | **Compilação** | Build completa sem erros | \`${enriched.toolchain?.buildCmd || (stack.packageManager === 'npm' ? 'npm run build' : stack.packageManager === 'pub' ? 'flutter build' : 'make build')}\` |
33
+ | C2 | **Testes** | 100% dos testes passam | \`${enriched.toolchain?.testCmd || (stack.testFramework === 'pytest' ? 'pytest' : stack.testFramework === 'flutter_test' ? 'flutter test' : 'npm run test')}\` |
34
+ | C3 | **Lint** | Zero errors (warnings tolerados) | \`${enriched.toolchain?.lintCmd || (stack.packageManager === 'npm' ? 'npm run lint' : stack.primary === 'Python' ? 'ruff check .' : 'dart analyze')}\` |
35
+ | C4 | **Cobertura** | ≥ ${config.coverageMinimum}% | \`${enriched.toolchain?.coverageCmd || (stack.testFramework === 'pytest' ? 'pytest --cov' : 'npm run test -- --coverage')}\` |
36
+ | C5 | **Segurança** | Zero vulnerabilidades CRITICAL | SECURITY-AUDITOR review |
37
+ | C6 | **Regras de Negócio** | Todos os critérios de aceite cobertos | BDD scenarios green |
38
+
39
+ ---
40
+
41
+ ## 🟡 IMPORTANT (Esperados — Devem ser justificados se ausentes)
42
+
43
+ | # | Gate | Critério |
44
+ |---|------|----------|
45
+ | I1 | **Documentação** | API documentada, README atualizado se necessário |
46
+ | I2 | **Code Review** | Pelo menos 1 revisor aprovou |
47
+ | I3 | **UI/UX** | Mockup aprovado, padrão visual seguido |
48
+ | I4 | **Performance** | Sem degradação mensurável (benchmark se aplicável) |
49
+ | I5 | **Score** | architect score ≥ ${config.scoreThreshold}/100, sem regressão |
50
+
51
+ ---
52
+
53
+ ## 🟢 DESIRABLE (Boas práticas — Não bloqueiam, mas são monitoradas)
54
+
55
+ | # | Gate | Critério |
56
+ |---|------|----------|
57
+ | D1 | **Clean Code** | Sem code smells detectados |
58
+ | D2 | **Arquitetura** | Sem novos anti-patterns |
59
+ | D3 | **Git** | Commits semânticos, branch naming correto |
60
+ | D4 | **Observabilidade** | Logging adequado, métricas expostas |
61
+
62
+ ---
63
+
64
+ ## 📊 Tabela de Métricas
65
+
66
+ | Métrica | Mínimo | Ideal | Blocker se |
67
+ |---------|--------|-------|-----------|
68
+ | Cobertura de testes | ${config.coverageMinimum}% | 90%+ | < ${config.coverageMinimum}% |
69
+ | Complexidade ciclomática | — | < 10 | > 20 |
70
+ | Linhas por arquivo | — | < 300 | > 500 |
71
+ | Métodos por classe | — | < 10 | > 20 |
72
+ | Score Architect | ${config.scoreThreshold}/100 | 80+ | < ${config.scoreThreshold} |
73
+ | Anti-patterns CRITICAL | 0 | 0 | > 0 |
74
+ | Dependencies per file | — | < 5 | > 10 |
75
+
76
+ ${enriched.domain?.compliance?.length ? `---
77
+
78
+ ## 🔒 Compliance-Specific Gates
79
+
80
+ ${enriched.domain?.compliance?.map((comp) => {
81
+ const checks = {
82
+ 'LGPD': '□ Dados pessoais anonimizados em logs/cache\n□ Direito ao esquecimento implementado\n□ Consentimento explícito documentado',
83
+ 'HIPAA': '□ Criptografia AES-256 para PHI em repouso\n□ TLS 1.2+ para PHI em trânsito\n□ Auditoria de acesso a PHI registrada\n□ Business Associate Agreement (BAA) em vigor',
84
+ 'PCI-DSS': '□ Criptografia de dados de cartão (nunca armazenar)\n□ WAF ativo em endpoints de pagamento\n□ Segmentation: rede de cartões isolada\n□ Logs de acesso retidos por 1+ ano\n□ Penetration testing anual documentado',
85
+ 'SOX': '□ Trilha de auditoria completa para transações\n□ Controles de segregação de funções implementados\n□ Change management process documentado\n□ Acesso de usuário revogado em < 24h',
86
+ 'GDPR': '□ DPIA (Data Protection Impact Assessment) completada\n□ Processamento baseado em legal basis documentado\n□ Data residency (EU) garantido\n□ DPO nomeado se aplicável',
87
+ };
88
+ return `### ${comp.name}
89
+ ${checks[comp.name] || `□ Verificar: ${comp.mandatoryChecks.join('\n□ Verificar: ')}`}`;
90
+ }).join('\n\n')}` : ''}
91
+
92
+ ${enriched.untestedModules?.length ? `---
93
+
94
+ ## ⚠️ Módulos Sem Testes
95
+
96
+ Os seguintes módulos **DEVEM TER** cobertura de testes antes de merge:
97
+
98
+ ${enriched.untestedModules.map((m) => `- ⚠️ \`${m}\``).join('\n')}
99
+
100
+ **Ação Obrigatória:** Criar testes para cada módulo listado acima. Se a cobertura for impossível, documentar no BLOCKERS.` : ''}
101
+
102
+ ---
103
+
104
+ ## ⛔ BLOCKERS — Merge PROIBIDO se:
105
+
106
+ \`\`\`
107
+ ${config.blockers.map(b => `❌ ${b}`).join('\n')}
108
+ \`\`\`
109
+
110
+ ${enriched.domain?.compliance?.length ? `
111
+
112
+ ### Domain-Specific Blockers (Compliance)
113
+
114
+ \`\`\`
115
+ ${enriched.domain?.compliance?.map((comp) => {
116
+ const blockers = {
117
+ 'LGPD': '❌ Senhas/tokens em logs (violação de privacidade)',
118
+ 'HIPAA': '❌ PHI (Protected Health Information) em texto claro',
119
+ 'PCI-DSS': '❌ Dados de cartão armazenados ou em logs',
120
+ 'SOX': '❌ Transação sem trilha de auditoria',
121
+ 'GDPR': '❌ Transferência de dados para fora da EU',
122
+ };
123
+ return blockers[comp.name] || `❌ Violação de ${comp.name}`;
124
+ }).join('\n')}
125
+ \`\`\`
126
+ ` : ''}
127
+
128
+ ---
129
+
130
+ ## ✅ Checklists por Camada
131
+
132
+ ### Backend ${stack.hasBackend ? '' : '(skip se não aplicável)'}
133
+
134
+ \`\`\`
135
+ □ Validação de entrada em TODOS os endpoints
136
+ □ Tratamento de erros com mensagens claras
137
+ □ DTOs para request e response (nunca entity direto)
138
+ □ Testes unitários para services
139
+ □ Testes de integração para controllers
140
+ □ Migrations reversíveis
141
+ □ Sem N+1 queries
142
+ □ Rate limiting em endpoints públicos
143
+ □ Logging estruturado (não console.log)
144
+ \`\`\`
145
+
146
+ ### Frontend ${stack.hasFrontend ? '' : '(skip se não aplicável)'}
147
+
148
+ \`\`\`
149
+ □ Componentes seguem padrão visual do sistema
150
+ □ Estado gerenciado corretamente (não prop drilling)
151
+ □ Loading states implementados
152
+ □ Error states implementados
153
+ □ Empty states implementados
154
+ □ Responsivo (mobile-first se web)
155
+ □ Formulários com validação client-side
156
+ □ Sem lógica de negócio em componentes (extrair para service)
157
+ □ Lazy loading onde aplicável
158
+ \`\`\`
159
+
160
+ ### Mobile (Flutter) ${stack.hasMobile ? '' : '(skip se não aplicável)'}
161
+
162
+ \`\`\`
163
+ □ Widgets seguem padrão visual do app
164
+ □ Navegação consistente (back button, deep link)
165
+ □ Loading/error/empty states implementados
166
+ □ Comportamento offline graceful
167
+ □ Sem lógica de negócio em widgets
168
+ □ Performance de scroll (ListView.builder, não Column)
169
+ □ Tamanhos de fonte acessíveis
170
+ \`\`\`
171
+
172
+ ### Database ${stack.hasDatabase ? '' : '(skip se não aplicável)'}
173
+
174
+ \`\`\`
175
+ □ Migration reversível (up + down)
176
+ □ Índices para queries frequentes
177
+ □ Foreign keys onde aplicável
178
+ □ Constraints de integridade (NOT NULL, UNIQUE, CHECK)
179
+ □ Seed data atualizado
180
+ □ Impacto em queries existentes avaliado
181
+ □ Sem ALTER TABLE em tabelas com milhões de rows sem plano
182
+ \`\`\`
183
+
184
+ ${depthAtLeast(ctx, 'large') ? `---
185
+
186
+ ## 🏢 Governance Gates (Enterprise ${depthAtLeast(ctx, 'enterprise') ? '/ Large Projects' : 'Projects'})
187
+
188
+ ${depthAtLeast(ctx, 'large') ? `\`\`\`
189
+ □ Change Advisory Board (CAB) review para temas de arquitetura
190
+ □ Aprovação do Tech Lead antes de merge em release branches
191
+ □ Documentação de decisões arquiteturais (ADR) para mudanças maiores
192
+ □ Impacto em performance/segurança avaliado formalmente
193
+ □ Backward compatibility verificado (database migrations, API versioning)
194
+ □ SLA e disponibilidade confirmados (para features críticas)
195
+ \`\`\`` : ''}
196
+ ` : ''}
197
+
198
+ ---
199
+
200
+ ## 🔄 Processo de Verificação (4 Estágios)
201
+
202
+ ### Estágio 1: Antes de Começar
203
+ \`\`\`
204
+ □ PREFLIGHT completo
205
+ □ Sei quais gates se aplicam à minha tarefa
206
+ □ Ambiente verificado (build + tests green)
207
+ \`\`\`
208
+
209
+ ### Estágio 2: Durante Desenvolvimento
210
+ \`\`\`
211
+ □ Rodo testes a cada mudança significativa
212
+ □ Verifico lint periodicamente
213
+ □ Não acumulo débito técnico
214
+ \`\`\`
215
+
216
+ ### Estágio 3: Antes de Commit
217
+ \`\`\`
218
+ □ TODOS os gates CRITICAL passam
219
+ □ Gates IMPORTANT justificados se não atendidos
220
+ □ Build + Tests + Lint + Coverage ✓
221
+ □ $ architect score ./src → sem regressão
222
+ \`\`\`
223
+
224
+ ### Estágio 4: Antes de PR
225
+ \`\`\`
226
+ □ Branch atualizada com base
227
+ □ Commit messages semânticos
228
+ □ Descrição do PR completa
229
+ □ Code review solicitado
230
+ □ Documentação atualizada
231
+ \`\`\`
232
+
233
+ ---
234
+
235
+ ## 🔌 Verificação Automatizada
236
+
237
+ Antes de qualquer PR, execute:
238
+
239
+ \`\`\`bash
240
+ # Quality gate completo
241
+ ${enriched.toolchain?.buildCmd || (stack.packageManager === 'npm' ? 'npm run build' : 'make build')} && \\
242
+ ${enriched.toolchain?.coverageCmd || (stack.testFramework === 'pytest' ? 'pytest --cov' : stack.testFramework === 'flutter_test' ? 'flutter test --coverage' : 'npm run test -- --coverage')} && \\
243
+ npx @girardelli/architect score . --format json
244
+ \`\`\`
245
+
246
+ Score mínimo: **${config.scoreThreshold}/100**
247
+ Cobertura mínima: **${config.coverageMinimum}%**
248
+ Regra: **Score não pode regredir** em relação ao último report.
249
+
250
+ ---
251
+
252
+ **Gerado por Architect v8.1 · Score: ${report.score.overall}/100 · ${new Date().toISOString().split('T')[0]}**
253
+ `;
254
+ }
255
+ //# sourceMappingURL=quality-gates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quality-gates.js","sourceRoot":"","sources":["../../../../../../src/core/agent-generator/templates/core/quality-gates.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 02-security.md — OWASP rules, input validation, secrets management,
4
+ * auth/authz patterns, and security anti-patterns.
5
+ */
6
+ export declare function generateSecurityRules(ctx: TemplateContext): string;