@girardelli/architect 2.2.0 → 4.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 (296) hide show
  1. package/README.md +105 -116
  2. package/__test_agent_output__/INDEX.md +1 -0
  3. package/__test_agent_output__/agents/AGENT-ORCHESTRATOR.md +1 -0
  4. package/__test_agent_output__/agents/DATABASE-ENGINEER.md +174 -0
  5. package/__test_agent_output__/agents/QA-TEST-ENGINEER.md +138 -0
  6. package/__test_agent_output__/agents/SECURITY-AUDITOR.md +106 -0
  7. package/__test_agent_output__/agents/TECH-DEBT-CONTROLLER.md +104 -0
  8. package/__test_agent_output__/agents/TYPESCRIPT-BACKEND-DEVELOPER.md +135 -0
  9. package/__test_agent_output__/guards/CODE-REVIEW-CHECKLIST.md +95 -0
  10. package/__test_agent_output__/guards/PREFLIGHT.md +200 -0
  11. package/__test_agent_output__/guards/QUALITY-GATES.md +1 -0
  12. package/__test_agent_output__/rules/00-general.md +229 -0
  13. package/__test_agent_output__/rules/01-architecture.md +191 -0
  14. package/__test_agent_output__/rules/02-security.md +402 -0
  15. package/__test_agent_output__/rules/03-nestjs.md +124 -0
  16. package/__test_agent_output__/templates/ADR.md +95 -0
  17. package/__test_agent_output__/templates/BDD.md +58 -0
  18. package/__test_agent_output__/templates/C4.md +68 -0
  19. package/__test_agent_output__/templates/TDD.md +86 -0
  20. package/__test_agent_output__/templates/THREAT-MODEL.md +82 -0
  21. package/__test_agent_output__/workflows/fix-bug.md +228 -0
  22. package/__test_agent_output__/workflows/new-feature.md +311 -0
  23. package/__test_agent_output__/workflows/review.md +95 -0
  24. package/__test_context_7RvUrO/src/modules/empty/empty.ts +0 -0
  25. package/__test_context_Rf5fNJ/src/modules/mixed/mixed.ts +5 -0
  26. package/__test_context_WRCnYH/src/modules/test/test.ts +10 -0
  27. package/__test_context_YsnVS3/src/modules/test/test.ts +10 -0
  28. package/__test_context_w7XZeH/src/modules/mixed/mixed.ts +5 -0
  29. package/__test_context_y5noh6/src/modules/empty/empty.ts +0 -0
  30. package/__test_framework__24OjAu/package.json +1 -0
  31. package/__test_framework__3ZDZsx/pyproject.toml +8 -0
  32. package/__test_framework__4T54Jn/package.json +1 -0
  33. package/__test_framework__4tlXu9/pyproject.toml +8 -0
  34. package/__test_framework__6boWqQ/Pipfile +6 -0
  35. package/__test_framework__6gygMU/pom.xml +10 -0
  36. package/__test_framework__6kxj0N/go.mod +8 -0
  37. package/__test_framework__7CEoXw/pom.xml +10 -0
  38. package/__test_framework__85DDz0/Pipfile +6 -0
  39. package/__test_framework__9WrRIr/pom.xml +7 -0
  40. package/__test_framework__ANqGKl/Gemfile +5 -0
  41. package/__test_framework__BCXTEM/go.mod +3 -0
  42. package/__test_framework__BHiPNq/setup.py +2 -0
  43. package/__test_framework__BqkiKv/package.json +1 -0
  44. package/__test_framework__C5yd8X/Pipfile.lock +1 -0
  45. package/__test_framework__C5yd8X/requirements.txt +1 -0
  46. package/__test_framework__C87d3a/manage.py +1 -0
  47. package/__test_framework__C87d3a/requirements.txt +2 -0
  48. package/__test_framework__DXNwc5/build.gradle +7 -0
  49. package/__test_framework__GhHSt3/build.gradle.kts +4 -0
  50. package/__test_framework__GzklJP/Cargo.toml +7 -0
  51. package/__test_framework__H4hd13/go.mod +8 -0
  52. package/__test_framework__HKjOXO/composer.json +1 -0
  53. package/__test_framework__HaDN45/Gemfile +3 -0
  54. package/__test_framework__IBO7YG/pyproject.toml +9 -0
  55. package/__test_framework__JwSOyF/pyproject.toml +6 -0
  56. package/__test_framework__K6HrCr/build.gradle +2 -0
  57. package/__test_framework__KzRPlh/pubspec.yaml +9 -0
  58. package/__test_framework__L6uIym/pyproject.toml +6 -0
  59. package/__test_framework__LOdoGK/requirements.txt +4 -0
  60. package/__test_framework__LgHzss/package.json +1 -0
  61. package/__test_framework__M76M6q/Gemfile +5 -0
  62. package/__test_framework__Mr9vWW/composer.json +1 -0
  63. package/__test_framework__N03Gnv/package.json +1 -0
  64. package/__test_framework__Num4UE/requirements +1 -0
  65. package/__test_framework__OAGw3Y/build.gradle +7 -0
  66. package/__test_framework__OQc8yG/pubspec.yaml +9 -0
  67. package/__test_framework__OwKZcd/requirements.txt +3 -0
  68. package/__test_framework__P0gFv7/requirements +1 -0
  69. package/__test_framework__PN55Rq/package.json +1 -0
  70. package/__test_framework__PQiqX8/pubspec.yaml +3 -0
  71. package/__test_framework__RBHsg7/composer.json +1 -0
  72. package/__test_framework__RHxif4/Cargo.toml +7 -0
  73. package/__test_framework__T0v0p1/Cargo.toml +4 -0
  74. package/__test_framework__Tu0clt/Pipfile.lock +1 -0
  75. package/__test_framework__Tu0clt/requirements.txt +1 -0
  76. package/__test_framework__TwDj9P/Cargo.toml +4 -0
  77. package/__test_framework__VQJNC4/pom.xml +7 -0
  78. package/__test_framework__W6sm05/package.json +1 -0
  79. package/__test_framework__W7vBLy/pyproject.toml +4 -0
  80. package/__test_framework__WNJOWT/setup.py +2 -0
  81. package/__test_framework__WSJs7U/package.json +1 -0
  82. package/__test_framework__YQ5VpA/build.gradle.kts +4 -0
  83. package/__test_framework__ZNEUEs/package.json +1 -0
  84. package/__test_framework__Znt922/pom.xml +7 -0
  85. package/__test_framework__azyg0h/pom.xml +7 -0
  86. package/__test_framework__c6otLr/package.json +1 -0
  87. package/__test_framework__cl9S9G/build.gradle +2 -0
  88. package/__test_framework__eilvV4/composer.json +1 -0
  89. package/__test_framework__gQZxXO/manage.py +1 -0
  90. package/__test_framework__gQZxXO/requirements.txt +2 -0
  91. package/__test_framework__ghvl26/poetry.lock +1 -0
  92. package/__test_framework__ghvl26/pyproject.toml +2 -0
  93. package/__test_framework__hR7b9U/Makefile +11 -0
  94. package/__test_framework__iESVsi/composer.json +1 -0
  95. package/__test_framework__jm6TJy/package.json +1 -0
  96. package/__test_framework__kBUpjs/pyproject.toml +9 -0
  97. package/__test_framework__kqoZrw/requirements.txt +4 -0
  98. package/__test_framework__lWkoyO/pyproject.toml +4 -0
  99. package/__test_framework__mTKnUO/package.json +1 -0
  100. package/__test_framework__nCeZwe/Makefile +11 -0
  101. package/__test_framework__oljsU0/package.json +1 -0
  102. package/__test_framework__osRG4q/go.mod +3 -0
  103. package/__test_framework__pCHH4F/package.json +1 -0
  104. package/__test_framework__pExx6E/Gemfile +3 -0
  105. package/__test_framework__pyBoGd/pyproject.toml +5 -0
  106. package/__test_framework__qw16VQ/package.json +1 -0
  107. package/__test_framework__rRayrG/package.json +1 -0
  108. package/__test_framework__s82zO5/package.json +1 -0
  109. package/__test_framework__tp8MFK/pyproject.toml +5 -0
  110. package/__test_framework__w44k4w/composer.json +1 -0
  111. package/__test_framework__yefPZY/poetry.lock +1 -0
  112. package/__test_framework__yefPZY/pyproject.toml +2 -0
  113. package/__test_framework__zCiyDT/requirements.txt +3 -0
  114. package/__test_framework__zGZN3j/pubspec.yaml +3 -0
  115. package/__test_framework__zXpnxL/package.json +1 -0
  116. package/architect-run.sh +431 -0
  117. package/assets/banner-v3.html +561 -0
  118. package/dist/agent-generator/context-enricher.d.ts +58 -0
  119. package/dist/agent-generator/context-enricher.d.ts.map +1 -0
  120. package/dist/agent-generator/context-enricher.js +581 -0
  121. package/dist/agent-generator/context-enricher.js.map +1 -0
  122. package/dist/agent-generator/domain-inferrer.d.ts +52 -0
  123. package/dist/agent-generator/domain-inferrer.d.ts.map +1 -0
  124. package/dist/agent-generator/domain-inferrer.js +575 -0
  125. package/dist/agent-generator/domain-inferrer.js.map +1 -0
  126. package/dist/agent-generator/framework-detector.d.ts +40 -0
  127. package/dist/agent-generator/framework-detector.d.ts.map +1 -0
  128. package/dist/agent-generator/framework-detector.js +611 -0
  129. package/dist/agent-generator/framework-detector.js.map +1 -0
  130. package/dist/agent-generator/index.d.ts +33 -0
  131. package/dist/agent-generator/index.d.ts.map +1 -0
  132. package/dist/agent-generator/index.js +477 -0
  133. package/dist/agent-generator/index.js.map +1 -0
  134. package/dist/agent-generator/stack-detector.d.ts +12 -0
  135. package/dist/agent-generator/stack-detector.d.ts.map +1 -0
  136. package/dist/agent-generator/stack-detector.js +128 -0
  137. package/dist/agent-generator/stack-detector.js.map +1 -0
  138. package/dist/agent-generator/templates/core/agents.d.ts +17 -0
  139. package/dist/agent-generator/templates/core/agents.d.ts.map +1 -0
  140. package/dist/agent-generator/templates/core/agents.js +1252 -0
  141. package/dist/agent-generator/templates/core/agents.js.map +1 -0
  142. package/dist/agent-generator/templates/core/architecture-rules.d.ts +7 -0
  143. package/dist/agent-generator/templates/core/architecture-rules.d.ts.map +1 -0
  144. package/dist/agent-generator/templates/core/architecture-rules.js +274 -0
  145. package/dist/agent-generator/templates/core/architecture-rules.js.map +1 -0
  146. package/dist/agent-generator/templates/core/general-rules.d.ts +8 -0
  147. package/dist/agent-generator/templates/core/general-rules.d.ts.map +1 -0
  148. package/dist/agent-generator/templates/core/general-rules.js +301 -0
  149. package/dist/agent-generator/templates/core/general-rules.js.map +1 -0
  150. package/dist/agent-generator/templates/core/index-md.d.ts +7 -0
  151. package/dist/agent-generator/templates/core/index-md.d.ts.map +1 -0
  152. package/dist/agent-generator/templates/core/index-md.js +246 -0
  153. package/dist/agent-generator/templates/core/index-md.js.map +1 -0
  154. package/dist/agent-generator/templates/core/orchestrator.d.ts +8 -0
  155. package/dist/agent-generator/templates/core/orchestrator.d.ts.map +1 -0
  156. package/dist/agent-generator/templates/core/orchestrator.js +422 -0
  157. package/dist/agent-generator/templates/core/orchestrator.js.map +1 -0
  158. package/dist/agent-generator/templates/core/preflight.d.ts +8 -0
  159. package/dist/agent-generator/templates/core/preflight.d.ts.map +1 -0
  160. package/dist/agent-generator/templates/core/preflight.js +213 -0
  161. package/dist/agent-generator/templates/core/preflight.js.map +1 -0
  162. package/dist/agent-generator/templates/core/quality-gates.d.ts +11 -0
  163. package/dist/agent-generator/templates/core/quality-gates.d.ts.map +1 -0
  164. package/dist/agent-generator/templates/core/quality-gates.js +254 -0
  165. package/dist/agent-generator/templates/core/quality-gates.js.map +1 -0
  166. package/dist/agent-generator/templates/core/security-rules.d.ts +7 -0
  167. package/dist/agent-generator/templates/core/security-rules.d.ts.map +1 -0
  168. package/dist/agent-generator/templates/core/security-rules.js +528 -0
  169. package/dist/agent-generator/templates/core/security-rules.js.map +1 -0
  170. package/dist/agent-generator/templates/core/skills-generator.d.ts +6 -0
  171. package/dist/agent-generator/templates/core/skills-generator.d.ts.map +1 -0
  172. package/dist/agent-generator/templates/core/skills-generator.js +207 -0
  173. package/dist/agent-generator/templates/core/skills-generator.js.map +1 -0
  174. package/dist/agent-generator/templates/core/workflow-fix-bug.d.ts +7 -0
  175. package/dist/agent-generator/templates/core/workflow-fix-bug.d.ts.map +1 -0
  176. package/dist/agent-generator/templates/core/workflow-fix-bug.js +237 -0
  177. package/dist/agent-generator/templates/core/workflow-fix-bug.js.map +1 -0
  178. package/dist/agent-generator/templates/core/workflow-new-feature.d.ts +8 -0
  179. package/dist/agent-generator/templates/core/workflow-new-feature.d.ts.map +1 -0
  180. package/dist/agent-generator/templates/core/workflow-new-feature.js +321 -0
  181. package/dist/agent-generator/templates/core/workflow-new-feature.js.map +1 -0
  182. package/dist/agent-generator/templates/core/workflow-review.d.ts +7 -0
  183. package/dist/agent-generator/templates/core/workflow-review.d.ts.map +1 -0
  184. package/dist/agent-generator/templates/core/workflow-review.js +104 -0
  185. package/dist/agent-generator/templates/core/workflow-review.js.map +1 -0
  186. package/dist/agent-generator/templates/domain/index.d.ts +22 -0
  187. package/dist/agent-generator/templates/domain/index.d.ts.map +1 -0
  188. package/dist/agent-generator/templates/domain/index.js +1176 -0
  189. package/dist/agent-generator/templates/domain/index.js.map +1 -0
  190. package/dist/agent-generator/templates/stack/index.d.ts +8 -0
  191. package/dist/agent-generator/templates/stack/index.d.ts.map +1 -0
  192. package/dist/agent-generator/templates/stack/index.js +695 -0
  193. package/dist/agent-generator/templates/stack/index.js.map +1 -0
  194. package/dist/agent-generator/templates/template-helpers.d.ts +75 -0
  195. package/dist/agent-generator/templates/template-helpers.d.ts.map +1 -0
  196. package/dist/agent-generator/templates/template-helpers.js +726 -0
  197. package/dist/agent-generator/templates/template-helpers.js.map +1 -0
  198. package/dist/agent-generator/types.d.ts +196 -0
  199. package/dist/agent-generator/types.d.ts.map +1 -0
  200. package/dist/agent-generator/types.js +27 -0
  201. package/dist/agent-generator/types.js.map +1 -0
  202. package/dist/analyzer.d.ts +5 -0
  203. package/dist/analyzer.d.ts.map +1 -1
  204. package/dist/analyzer.js +35 -4
  205. package/dist/analyzer.js.map +1 -1
  206. package/dist/analyzers/forecast.d.ts +85 -0
  207. package/dist/analyzers/forecast.d.ts.map +1 -0
  208. package/dist/analyzers/forecast.js +337 -0
  209. package/dist/analyzers/forecast.js.map +1 -0
  210. package/dist/analyzers/git-cache.d.ts +7 -0
  211. package/dist/analyzers/git-cache.d.ts.map +1 -0
  212. package/dist/analyzers/git-cache.js +41 -0
  213. package/dist/analyzers/git-cache.js.map +1 -0
  214. package/dist/analyzers/git-history.d.ts +113 -0
  215. package/dist/analyzers/git-history.d.ts.map +1 -0
  216. package/dist/analyzers/git-history.js +333 -0
  217. package/dist/analyzers/git-history.js.map +1 -0
  218. package/dist/analyzers/index.d.ts +10 -0
  219. package/dist/analyzers/index.d.ts.map +1 -0
  220. package/dist/analyzers/index.js +7 -0
  221. package/dist/analyzers/index.js.map +1 -0
  222. package/dist/analyzers/temporal-scorer.d.ts +72 -0
  223. package/dist/analyzers/temporal-scorer.d.ts.map +1 -0
  224. package/dist/analyzers/temporal-scorer.js +140 -0
  225. package/dist/analyzers/temporal-scorer.js.map +1 -0
  226. package/dist/cli.d.ts +2 -3
  227. package/dist/cli.d.ts.map +1 -1
  228. package/dist/cli.js +275 -113
  229. package/dist/cli.js.map +1 -1
  230. package/dist/html-reporter.d.ts +3 -1
  231. package/dist/html-reporter.d.ts.map +1 -1
  232. package/dist/html-reporter.js +248 -12
  233. package/dist/html-reporter.js.map +1 -1
  234. package/dist/index.d.ts +16 -3
  235. package/dist/index.d.ts.map +1 -1
  236. package/dist/index.js +63 -4
  237. package/dist/index.js.map +1 -1
  238. package/dist/project-summarizer.d.ts +18 -0
  239. package/dist/project-summarizer.d.ts.map +1 -0
  240. package/dist/project-summarizer.js +306 -0
  241. package/dist/project-summarizer.js.map +1 -0
  242. package/dist/refactor-reporter.js +1 -1
  243. package/dist/types.d.ts +13 -0
  244. package/dist/types.d.ts.map +1 -1
  245. package/package.json +12 -3
  246. package/src/agent-generator/context-enricher.ts +643 -0
  247. package/src/agent-generator/domain-inferrer.ts +625 -0
  248. package/src/agent-generator/framework-detector.ts +669 -0
  249. package/src/agent-generator/index.ts +555 -0
  250. package/src/agent-generator/stack-detector.ts +103 -0
  251. package/src/agent-generator/templates/core/agents.ts +1293 -0
  252. package/src/agent-generator/templates/core/architecture-rules.ts +287 -0
  253. package/src/agent-generator/templates/core/general-rules.ts +306 -0
  254. package/src/agent-generator/templates/core/index-md.ts +260 -0
  255. package/src/agent-generator/templates/core/orchestrator.ts +459 -0
  256. package/src/agent-generator/templates/core/preflight.ts +215 -0
  257. package/src/agent-generator/templates/core/quality-gates.ts +256 -0
  258. package/src/agent-generator/templates/core/security-rules.ts +543 -0
  259. package/src/agent-generator/templates/core/skills-generator.ts +236 -0
  260. package/src/agent-generator/templates/core/workflow-fix-bug.ts +239 -0
  261. package/src/agent-generator/templates/core/workflow-new-feature.ts +323 -0
  262. package/src/agent-generator/templates/core/workflow-review.ts +106 -0
  263. package/src/agent-generator/templates/domain/index.ts +1201 -0
  264. package/src/agent-generator/templates/stack/index.ts +705 -0
  265. package/src/agent-generator/templates/template-helpers.ts +776 -0
  266. package/src/agent-generator/types.ts +232 -0
  267. package/src/analyzer.ts +38 -4
  268. package/src/analyzers/forecast.ts +496 -0
  269. package/src/analyzers/git-cache.ts +52 -0
  270. package/src/analyzers/git-history.ts +488 -0
  271. package/src/analyzers/index.ts +33 -0
  272. package/src/analyzers/temporal-scorer.ts +227 -0
  273. package/src/cli.ts +316 -117
  274. package/src/html-reporter.ts +263 -13
  275. package/src/index.ts +92 -9
  276. package/src/project-summarizer.ts +347 -0
  277. package/src/refactor-reporter.ts +1 -1
  278. package/src/types.ts +10 -0
  279. package/tests/agent-generator.test.ts +411 -0
  280. package/tests/analyzers-integration.test.ts +174 -0
  281. package/tests/architect-adapter-enrichment.test.ts +9 -0
  282. package/tests/context-enricher.test.ts +971 -0
  283. package/tests/forecast.test.ts +509 -0
  284. package/tests/framework-detector.test.ts +1172 -0
  285. package/tests/git-history.test.ts +254 -0
  286. package/tests/scanner.test.ts +7 -8
  287. package/tests/scorer.test.ts +588 -0
  288. package/tests/stack-detector.test.ts +241 -0
  289. package/tests/template-generation.test.ts +706 -0
  290. package/tests/template-helpers.test.ts +1152 -0
  291. package/tests/temporal-scorer.test.ts +307 -0
  292. package/dist/agent-generator.d.ts +0 -106
  293. package/dist/agent-generator.d.ts.map +0 -1
  294. package/dist/agent-generator.js +0 -1398
  295. package/dist/agent-generator.js.map +0 -1
  296. package/src/agent-generator.ts +0 -1526
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../../src/agent-generator/templates/core/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { TemplateContext } from '../../types.js';
2
+ /**
3
+ * Generates enterprise-grade PREFLIGHT.md
4
+ * 6-phase checklist: mental prep → mandatory reads → environment → business rules →
5
+ * before-code by layer → before-done. Red flags, diagnostic template, delivery checklist.
6
+ */
7
+ export declare function generatePreflight(ctx: TemplateContext): string;
8
+ //# sourceMappingURL=preflight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../../../src/agent-generator/templates/core/preflight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA2B,MAAM,gBAAgB,CAAC;AAG1E;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA8M9D"}
@@ -0,0 +1,213 @@
1
+ import { getEnriched } from '../template-helpers.js';
2
+ /**
3
+ * Generates enterprise-grade PREFLIGHT.md
4
+ * 6-phase checklist: mental prep → mandatory reads → environment → business rules →
5
+ * before-code by layer → before-done. Red flags, diagnostic template, delivery checklist.
6
+ */
7
+ export function generatePreflight(ctx) {
8
+ const { stack, projectName, config, report } = ctx;
9
+ const enriched = getEnriched(ctx);
10
+ const tc = enriched.toolchain;
11
+ return `---
12
+ antigravity:
13
+ trigger: 'always_on'
14
+ globs: ['**/*']
15
+ description: 'PREFLIGHT — Checklist obrigatório pré-ação para ${projectName}'
16
+ priority: CRITICAL
17
+ ---
18
+
19
+ # ✈️ PREFLIGHT — Checklist Pré-Ação
20
+
21
+ > **NENHUMA ação de código é permitida antes de completar este checklist.**
22
+ > Pular qualquer fase é violação do protocolo.
23
+
24
+ ---
25
+
26
+ ## FASE 0: Preparação Mental
27
+
28
+ Antes de abrir qualquer arquivo:
29
+
30
+ \`\`\`
31
+ □ Li e entendi a requisição COMPLETAMENTE
32
+ □ Sei qual WORKFLOW estou seguindo (new-feature / fix-bug / review)
33
+ □ Identifiquei as CAMADAS envolvidas (Backend / Frontend / App / Database)
34
+ □ Tenho CLAREZA sobre o que é esperado como entrega
35
+ □ Se algo não está claro → PAREI e PERGUNTEI ao humano
36
+ \`\`\`
37
+
38
+ ---
39
+
40
+ ## FASE 1: Leitura Obrigatória
41
+
42
+ \`\`\`
43
+ □ [00-general.md](../rules/00-general.md) → Regras de Ouro do projeto
44
+ □ [QUALITY-GATES.md](./QUALITY-GATES.md) → Métricas e blockers
45
+ □ LESSONS-LEARNED.md (se existir) → Erros passados
46
+ □ ERROR-PATTERNS.md (se existir) → Padrões de erro conhecidos
47
+ □ BUSINESS-RULES.md (se existir) → Regras de negócio do domínio
48
+ \`\`\`
49
+
50
+ > **Objetivo:** Não repetir erros e entender o contexto antes de agir.
51
+
52
+ ---
53
+
54
+ ## FASE 2: Verificação de Ambiente
55
+
56
+ \`\`\`bash
57
+ # Git: verificar branch e status
58
+ git branch --show-current # NUNCA em main/develop direto
59
+ git status # Limpo antes de começar
60
+ git pull origin <branch> # Sincronizado
61
+
62
+ # Deps: verificar se está tudo instalado
63
+ ${tc?.installCmd || (stack.packageManager === 'npm' ? 'npm ci' : stack.packageManager === 'pip' ? 'pip install -r requirements.txt' : stack.packageManager === 'pub' ? 'flutter pub get' : `${stack.packageManager} install`)}
64
+
65
+ # Build: verificar se compila
66
+ ${tc?.buildCmd || (stack.packageManager === 'npm' ? 'npm run build' : stack.packageManager === 'pub' ? 'flutter build' : 'make build')}
67
+
68
+ # Tests: verificar se passam ANTES de começar
69
+ ${tc?.testCmd || (stack.testFramework === 'pytest' ? 'pytest' : stack.testFramework === 'flutter_test' ? 'flutter test' : stack.testFramework === 'go test' ? 'go test ./...' : 'npm run test')}
70
+ \`\`\`
71
+
72
+ \`\`\`
73
+ □ Branch correta (NUNCA main/develop)
74
+ □ Working tree limpa
75
+ □ Dependências instaladas
76
+ □ Build passando
77
+ □ Testes passando ANTES da minha alteração
78
+ \`\`\`
79
+
80
+ ---
81
+
82
+ ## FASE 3: Verificação de Regras de Negócio
83
+
84
+ \`\`\`
85
+ □ Entendo QUEM são os atores afetados
86
+ □ Entendo QUAL é a regra de negócio envolvida
87
+ □ Verifiquei se existe documentação do domínio
88
+ □ Se a feature envolve dinheiro/pagamento → ATENÇÃO REDOBRADA
89
+ □ Se a feature envolve dados pessoais → verificar LGPD/compliance
90
+ □ Se a feature muda um fluxo existente → verificar impacto em features dependentes
91
+ \`\`\`
92
+
93
+ ---
94
+
95
+ ## FASE 4: Before-Code Checklist (por Camada)
96
+
97
+ ### 4A: Backend ${stack.hasBackend ? '✅' : '⬜ (skip se não aplicável)'}
98
+
99
+ \`\`\`
100
+ □ Entendo a estrutura de módulos existente
101
+ □ Sei onde criar/modificar controllers, services, entities
102
+ □ Verifiquei se já existe código similar (DRY)
103
+ □ DTOs e validações planejados
104
+ □ Tratamento de erros definido
105
+ □ Sei qual padrão de teste usar (unitário + integração)
106
+ □ Migrations planejadas (se houver alteração de banco)
107
+ \`\`\`
108
+
109
+ ### 4B: Frontend ${stack.hasFrontend ? '✅' : '⬜ (skip se não aplicável)'}
110
+
111
+ \`\`\`
112
+ □ MOCKUP aprovado pelo humano
113
+ □ Entendo o state management utilizado
114
+ □ Sei onde criar/modificar componentes
115
+ □ Verificar padrão visual (cores, fontes, espaçamentos)
116
+ □ Responsividade considerada
117
+ □ Acessibilidade básica (labels, aria, contraste)
118
+ □ Documento de integração do backend disponível
119
+ \`\`\`
120
+
121
+ ### 4C: Mobile (Flutter) ${stack.hasMobile ? '✅' : '⬜ (skip se não aplicável)'}
122
+
123
+ \`\`\`
124
+ □ MOCKUP aprovado pelo humano
125
+ □ Entendo a navegação atual do app
126
+ □ Sei onde criar/modificar screens e widgets
127
+ □ Verificar padrão visual do app
128
+ □ Comportamento offline considerado
129
+ □ Documento de integração do backend disponível
130
+ \`\`\`
131
+
132
+ ### 4D: Database ${stack.hasDatabase ? '✅' : '⬜ (skip se não aplicável)'}
133
+
134
+ \`\`\`
135
+ □ Schema atual compreendido
136
+ □ Migration reversível planejada
137
+ □ Índices necessários identificados
138
+ □ Impacto em queries existentes avaliado
139
+ □ Seed data / fixtures atualizados
140
+ □ Backup strategy para dados existentes
141
+ \`\`\`
142
+
143
+ ---
144
+
145
+ ## FASE 5: Before-Commit
146
+
147
+ \`\`\`
148
+ □ Build compila sem erros
149
+ □ TODOS os testes passam (velhos + novos)
150
+ □ Cobertura ≥ ${config.coverageMinimum}%
151
+ □ Lint sem warnings
152
+ □ Sem console.log / print() em produção
153
+ □ Sem TODO / FIXME sem issue
154
+ □ Sem secrets hardcoded
155
+ □ Sem arquivos > 500 linhas sem justificativa
156
+ □ Commit message segue padrão (feat: / fix: / refactor: / docs:)
157
+ □ Branch está atualizada com base (rebase se necessário)
158
+ \`\`\`
159
+
160
+ ---
161
+
162
+ ## FASE 6: Before-Done
163
+
164
+ \`\`\`
165
+ □ TODOS os critérios de aceite estão cobertos
166
+ □ Score não regrediu: architect score ./src ≥ ${config.scoreThreshold}/100
167
+ □ Documentação atualizada (se necessário)
168
+ □ LESSONS-LEARNED atualizado (se descobri algo novo)
169
+ □ PR criado com descrição completa
170
+ □ Code review solicitado
171
+ \`\`\`
172
+
173
+ ---
174
+
175
+ ## 🚩 Red Flags — PARE IMEDIATAMENTE SE:
176
+
177
+ | Red Flag | Ação |
178
+ |----------|------|
179
+ | Não entendo a requisição | PARAR → Perguntar ao humano |
180
+ | Código que mexo tem 0% de cobertura | PARAR → Escrever testes ANTES |
181
+ | Estou modificando > 10 arquivos | PARAR → Reavaliar escopo |
182
+ | Build quebrou após minha mudança | PARAR → Reverter → Investigar |
183
+ | Estou copiando/colando código | PARAR → Extrair abstração |
184
+ | Estou trabalhando em main/develop | PARAR → Criar branch |
185
+ | Não tenho mockup e a feature tem UI | PARAR → Gate 1 primeiro |
186
+ | Estou escrevendo código sem testes | PARAR → TDD |
187
+
188
+ ---
189
+
190
+ ## 🔍 Template de Diagnóstico
191
+
192
+ Execute antes de qualquer implementação:
193
+
194
+ \`\`\`bash
195
+ # Estrutura do projeto
196
+ find . -type f -name "*.${stack.primary === 'Python' ? 'py' : stack.primary === 'Dart' ? 'dart' : 'ts'}" | head -30
197
+
198
+ # Dependências do módulo que vou modificar
199
+ grep -r "import.*${stack.primary === 'Python' ? 'from' : 'from'}" --include="*.${stack.primary === 'Python' ? 'py' : 'ts'}" [modulo]/ | head -20
200
+
201
+ # Testes existentes
202
+ find . -name "*.test.*" -o -name "*.spec.*" -o -name "*_test.*" | head -20
203
+
204
+ # Score atual
205
+ npx @girardelli/architect score .
206
+ \`\`\`
207
+
208
+ ---
209
+
210
+ **Gerado por Architect v3.1 · Score: ${report.score.overall}/100 · ${new Date().toISOString().split('T')[0]}**
211
+ `;
212
+ }
213
+ //# sourceMappingURL=preflight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../../../src/agent-generator/templates/core/preflight.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAoB;IACpD,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACnD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC;IAE9B,OAAO;;;;kEAIyD,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgD3E,EAAE,EAAE,UAAU,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,cAAc,UAAU,CAAC;;;EAG3N,EAAE,EAAE,QAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC;;;EAGpI,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,KAAK,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4B7K,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,2BAA2B;;;;;;;;;;;;mBAYnD,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,2BAA2B;;;;;;;;;;;;2BAY7C,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,2BAA2B;;;;;;;;;;;mBAW3D,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,2BAA2B;;;;;;;;;;;;;;;;;;gBAkBxD,MAAM,CAAC,eAAe;;;;;;;;;;;;;;;;gDAgBU,MAAM,CAAC,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BA8B3C,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;;;mBAGnF,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,kBAAkB,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;;;;;;;;;;;uCAWlF,MAAM,CAAC,KAAK,CAAC,OAAO,UAAU,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC1G,CAAC;AACF,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { TemplateContext, EnrichedTemplateContext } from '../../types.js';
2
+ /**
3
+ * Generates enterprise-grade QUALITY-GATES.md
4
+ * 3-level gates (CRITICAL/IMPORTANT/DESIRABLE), per-layer checklists,
5
+ * explicit blockers list, metrics table, 4-stage verification process.
6
+ *
7
+ * Context-aware: Adds compliance-specific gates, untested modules warnings,
8
+ * and domain-specific blockers when enriched data is available.
9
+ */
10
+ export declare function generateQualityGates(ctx: TemplateContext | EnrichedTemplateContext): string;
11
+ //# sourceMappingURL=quality-gates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quality-gates.d.ts","sourceRoot":"","sources":["../../../../src/agent-generator/templates/core/quality-gates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAG1E;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,GAAG,uBAAuB,GAAG,MAAM,CAoP3F"}
@@ -0,0 +1,254 @@
1
+ import { getEnriched, depthAtLeast } from '../template-helpers.js';
2
+ /**
3
+ * Generates enterprise-grade QUALITY-GATES.md
4
+ * 3-level gates (CRITICAL/IMPORTANT/DESIRABLE), per-layer checklists,
5
+ * explicit blockers list, metrics table, 4-stage verification process.
6
+ *
7
+ * Context-aware: Adds compliance-specific gates, untested modules warnings,
8
+ * and domain-specific blockers when enriched data is available.
9
+ */
10
+ export function generateQualityGates(ctx) {
11
+ const { stack, projectName, config, report } = ctx;
12
+ const enriched = getEnriched(ctx);
13
+ return `---
14
+ antigravity:
15
+ trigger: 'always_on'
16
+ globs: ['**/*']
17
+ description: 'QUALITY GATES — Critérios mínimos obrigatórios para ${projectName}'
18
+ priority: CRITICAL
19
+ ---
20
+
21
+ # 🚦 QUALITY GATES — ${projectName}
22
+
23
+ > **Sem aprovação em TODOS os gates CRITICAL, nenhuma entrega é aceita.**
24
+
25
+ ---
26
+
27
+ ## 🔴 CRITICAL (Obrigatórios — Bloqueiam Merge)
28
+
29
+ | # | Gate | Critério | Verificação |
30
+ |---|------|----------|-------------|
31
+ | C1 | **Compilação** | Build completa sem erros | \`${enriched.toolchain?.buildCmd || (stack.packageManager === 'npm' ? 'npm run build' : stack.packageManager === 'pub' ? 'flutter build' : 'make build')}\` |
32
+ | C2 | **Testes** | 100% dos testes passam | \`${enriched.toolchain?.testCmd || (stack.testFramework === 'pytest' ? 'pytest' : stack.testFramework === 'flutter_test' ? 'flutter test' : 'npm run test')}\` |
33
+ | C3 | **Lint** | Zero errors (warnings tolerados) | \`${enriched.toolchain?.lintCmd || (stack.packageManager === 'npm' ? 'npm run lint' : stack.primary === 'Python' ? 'ruff check .' : 'dart analyze')}\` |
34
+ | C4 | **Cobertura** | ≥ ${config.coverageMinimum}% | \`${enriched.toolchain?.coverageCmd || (stack.testFramework === 'pytest' ? 'pytest --cov' : 'npm run test -- --coverage')}\` |
35
+ | C5 | **Segurança** | Zero vulnerabilidades CRITICAL | SECURITY-AUDITOR review |
36
+ | C6 | **Regras de Negócio** | Todos os critérios de aceite cobertos | BDD scenarios green |
37
+
38
+ ---
39
+
40
+ ## 🟡 IMPORTANT (Esperados — Devem ser justificados se ausentes)
41
+
42
+ | # | Gate | Critério |
43
+ |---|------|----------|
44
+ | I1 | **Documentação** | API documentada, README atualizado se necessário |
45
+ | I2 | **Code Review** | Pelo menos 1 revisor aprovou |
46
+ | I3 | **UI/UX** | Mockup aprovado, padrão visual seguido |
47
+ | I4 | **Performance** | Sem degradação mensurável (benchmark se aplicável) |
48
+ | I5 | **Score** | architect score ≥ ${config.scoreThreshold}/100, sem regressão |
49
+
50
+ ---
51
+
52
+ ## 🟢 DESIRABLE (Boas práticas — Não bloqueiam, mas são monitoradas)
53
+
54
+ | # | Gate | Critério |
55
+ |---|------|----------|
56
+ | D1 | **Clean Code** | Sem code smells detectados |
57
+ | D2 | **Arquitetura** | Sem novos anti-patterns |
58
+ | D3 | **Git** | Commits semânticos, branch naming correto |
59
+ | D4 | **Observabilidade** | Logging adequado, métricas expostas |
60
+
61
+ ---
62
+
63
+ ## 📊 Tabela de Métricas
64
+
65
+ | Métrica | Mínimo | Ideal | Blocker se |
66
+ |---------|--------|-------|-----------|
67
+ | Cobertura de testes | ${config.coverageMinimum}% | 90%+ | < ${config.coverageMinimum}% |
68
+ | Complexidade ciclomática | — | < 10 | > 20 |
69
+ | Linhas por arquivo | — | < 300 | > 500 |
70
+ | Métodos por classe | — | < 10 | > 20 |
71
+ | Score Architect | ${config.scoreThreshold}/100 | 80+ | < ${config.scoreThreshold} |
72
+ | Anti-patterns CRITICAL | 0 | 0 | > 0 |
73
+ | Dependencies per file | — | < 5 | > 10 |
74
+
75
+ ${enriched.domain?.compliance?.length ? `---
76
+
77
+ ## 🔒 Compliance-Specific Gates
78
+
79
+ ${enriched.domain?.compliance?.map((comp) => {
80
+ const checks = {
81
+ 'LGPD': '□ Dados pessoais anonimizados em logs/cache\n□ Direito ao esquecimento implementado\n□ Consentimento explícito documentado',
82
+ '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',
83
+ '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',
84
+ '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',
85
+ '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',
86
+ };
87
+ return `### ${comp.name}
88
+ ${checks[comp.name] || `□ Verificar: ${comp.mandatoryChecks.join('\n□ Verificar: ')}`}`;
89
+ }).join('\n\n')}` : ''}
90
+
91
+ ${enriched.untestedModules?.length ? `---
92
+
93
+ ## ⚠️ Módulos Sem Testes
94
+
95
+ Os seguintes módulos **DEVEM TER** cobertura de testes antes de merge:
96
+
97
+ ${enriched.untestedModules.map((m) => `- ⚠️ \`${m}\``).join('\n')}
98
+
99
+ **Ação Obrigatória:** Criar testes para cada módulo listado acima. Se a cobertura for impossível, documentar no BLOCKERS.` : ''}
100
+
101
+ ---
102
+
103
+ ## ⛔ BLOCKERS — Merge PROIBIDO se:
104
+
105
+ \`\`\`
106
+ ${config.blockers.map(b => `❌ ${b}`).join('\n')}
107
+ \`\`\`
108
+
109
+ ${enriched.domain?.compliance?.length ? `
110
+
111
+ ### Domain-Specific Blockers (Compliance)
112
+
113
+ \`\`\`
114
+ ${enriched.domain?.compliance?.map((comp) => {
115
+ const blockers = {
116
+ 'LGPD': '❌ Senhas/tokens em logs (violação de privacidade)',
117
+ 'HIPAA': '❌ PHI (Protected Health Information) em texto claro',
118
+ 'PCI-DSS': '❌ Dados de cartão armazenados ou em logs',
119
+ 'SOX': '❌ Transação sem trilha de auditoria',
120
+ 'GDPR': '❌ Transferência de dados para fora da EU',
121
+ };
122
+ return blockers[comp.name] || `❌ Violação de ${comp.name}`;
123
+ }).join('\n')}
124
+ \`\`\`
125
+ ` : ''}
126
+
127
+ ---
128
+
129
+ ## ✅ Checklists por Camada
130
+
131
+ ### Backend ${stack.hasBackend ? '' : '(skip se não aplicável)'}
132
+
133
+ \`\`\`
134
+ □ Validação de entrada em TODOS os endpoints
135
+ □ Tratamento de erros com mensagens claras
136
+ □ DTOs para request e response (nunca entity direto)
137
+ □ Testes unitários para services
138
+ □ Testes de integração para controllers
139
+ □ Migrations reversíveis
140
+ □ Sem N+1 queries
141
+ □ Rate limiting em endpoints públicos
142
+ □ Logging estruturado (não console.log)
143
+ \`\`\`
144
+
145
+ ### Frontend ${stack.hasFrontend ? '' : '(skip se não aplicável)'}
146
+
147
+ \`\`\`
148
+ □ Componentes seguem padrão visual do sistema
149
+ □ Estado gerenciado corretamente (não prop drilling)
150
+ □ Loading states implementados
151
+ □ Error states implementados
152
+ □ Empty states implementados
153
+ □ Responsivo (mobile-first se web)
154
+ □ Formulários com validação client-side
155
+ □ Sem lógica de negócio em componentes (extrair para service)
156
+ □ Lazy loading onde aplicável
157
+ \`\`\`
158
+
159
+ ### Mobile (Flutter) ${stack.hasMobile ? '' : '(skip se não aplicável)'}
160
+
161
+ \`\`\`
162
+ □ Widgets seguem padrão visual do app
163
+ □ Navegação consistente (back button, deep link)
164
+ □ Loading/error/empty states implementados
165
+ □ Comportamento offline graceful
166
+ □ Sem lógica de negócio em widgets
167
+ □ Performance de scroll (ListView.builder, não Column)
168
+ □ Tamanhos de fonte acessíveis
169
+ \`\`\`
170
+
171
+ ### Database ${stack.hasDatabase ? '' : '(skip se não aplicável)'}
172
+
173
+ \`\`\`
174
+ □ Migration reversível (up + down)
175
+ □ Índices para queries frequentes
176
+ □ Foreign keys onde aplicável
177
+ □ Constraints de integridade (NOT NULL, UNIQUE, CHECK)
178
+ □ Seed data atualizado
179
+ □ Impacto em queries existentes avaliado
180
+ □ Sem ALTER TABLE em tabelas com milhões de rows sem plano
181
+ \`\`\`
182
+
183
+ ${depthAtLeast(ctx, 'large') ? `---
184
+
185
+ ## 🏢 Governance Gates (Enterprise ${depthAtLeast(ctx, 'enterprise') ? '/ Large Projects' : 'Projects'})
186
+
187
+ ${depthAtLeast(ctx, 'large') ? `\`\`\`
188
+ □ Change Advisory Board (CAB) review para temas de arquitetura
189
+ □ Aprovação do Tech Lead antes de merge em release branches
190
+ □ Documentação de decisões arquiteturais (ADR) para mudanças maiores
191
+ □ Impacto em performance/segurança avaliado formalmente
192
+ □ Backward compatibility verificado (database migrations, API versioning)
193
+ □ SLA e disponibilidade confirmados (para features críticas)
194
+ \`\`\`` : ''}
195
+ ` : ''}
196
+
197
+ ---
198
+
199
+ ## 🔄 Processo de Verificação (4 Estágios)
200
+
201
+ ### Estágio 1: Antes de Começar
202
+ \`\`\`
203
+ □ PREFLIGHT completo
204
+ □ Sei quais gates se aplicam à minha tarefa
205
+ □ Ambiente verificado (build + tests green)
206
+ \`\`\`
207
+
208
+ ### Estágio 2: Durante Desenvolvimento
209
+ \`\`\`
210
+ □ Rodo testes a cada mudança significativa
211
+ □ Verifico lint periodicamente
212
+ □ Não acumulo débito técnico
213
+ \`\`\`
214
+
215
+ ### Estágio 3: Antes de Commit
216
+ \`\`\`
217
+ □ TODOS os gates CRITICAL passam
218
+ □ Gates IMPORTANT justificados se não atendidos
219
+ □ Build + Tests + Lint + Coverage ✓
220
+ □ $ architect score ./src → sem regressão
221
+ \`\`\`
222
+
223
+ ### Estágio 4: Antes de PR
224
+ \`\`\`
225
+ □ Branch atualizada com base
226
+ □ Commit messages semânticos
227
+ □ Descrição do PR completa
228
+ □ Code review solicitado
229
+ □ Documentação atualizada
230
+ \`\`\`
231
+
232
+ ---
233
+
234
+ ## 🔌 Verificação Automatizada
235
+
236
+ Antes de qualquer PR, execute:
237
+
238
+ \`\`\`bash
239
+ # Quality gate completo
240
+ ${enriched.toolchain?.buildCmd || (stack.packageManager === 'npm' ? 'npm run build' : 'make build')} && \\
241
+ ${enriched.toolchain?.coverageCmd || (stack.testFramework === 'pytest' ? 'pytest --cov' : stack.testFramework === 'flutter_test' ? 'flutter test --coverage' : 'npm run test -- --coverage')} && \\
242
+ npx @girardelli/architect score . --format json
243
+ \`\`\`
244
+
245
+ Score mínimo: **${config.scoreThreshold}/100**
246
+ Cobertura mínima: **${config.coverageMinimum}%**
247
+ Regra: **Score não pode regredir** em relação ao último report.
248
+
249
+ ---
250
+
251
+ **Gerado por Architect v3.1 · Score: ${report.score.overall}/100 · ${new Date().toISOString().split('T')[0]}**
252
+ `;
253
+ }
254
+ //# sourceMappingURL=quality-gates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quality-gates.js","sourceRoot":"","sources":["../../../../src/agent-generator/templates/core/quality-gates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { TemplateContext } from '../../types.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;
7
+ //# sourceMappingURL=security-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-rules.d.ts","sourceRoot":"","sources":["../../../../src/agent-generator/templates/core/security-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAqTlE"}