@girardelli/architect 2.1.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 +287 -82
  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 +594 -100
  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 +336 -83
  274. package/src/html-reporter.ts +616 -108
  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 -95
  293. package/dist/agent-generator.d.ts.map +0 -1
  294. package/dist/agent-generator.js +0 -1295
  295. package/dist/agent-generator.js.map +0 -1
  296. package/src/agent-generator.ts +0 -1401
@@ -0,0 +1,229 @@
1
+ ---
2
+ antigravity:
3
+ trigger: 'always_on'
4
+ globs: ['**/*']
5
+ description: 'Regras gerais invioláveis para test-project'
6
+ priority: CRITICAL
7
+ ---
8
+
9
+ # 📜 Regras Gerais — test-project
10
+
11
+ > **Estas regras são INVIOLÁVEIS. Não há exceção.**
12
+
13
+ ---
14
+
15
+ ## 🏆 Regras de Ouro
16
+
17
+ ```
18
+ ╔══════════════════════════════════════════════════════════════╗
19
+ ║ 9 REGRAS DE OURO ║
20
+ ║ ║
21
+ ║ 1. Git Flow completo (branch → PR → review → merge) ║
22
+ ║ 2. Arquitetura C4 (4 níveis de documentação) ║
23
+ ║ 3. BDD antes de código ║
24
+ ║ 4. TDD — Red → Green → Refactor ║
25
+ ║ 5. Diagnóstico obrigatório antes de codar ║
26
+ ║ 6. Mockup antes de qualquer UI ║
27
+ ║ 7. Nunca decidir sozinho — perguntar ao humano ║
28
+ ║ 8. Qualidade > Velocidade ║
29
+ ║ 9. Não abrir browser, não tirar screenshot — apenas código║
30
+ ║ ║
31
+ ║ ⚠️ Violar qualquer regra = PARAR e RECOMEÇAR ║
32
+ ╚══════════════════════════════════════════════════════════════╝
33
+ ```
34
+
35
+ ---
36
+
37
+ ## 🏢 Identidade do Projeto
38
+
39
+ | Item | Valor |
40
+ |------|-------|
41
+ | **Nome** | test-project |
42
+ | **Stack** | TypeScript + NestJS |
43
+ | **Score** | 72/100 |
44
+ | **Linguagens** | TypeScript |
45
+ | **Frameworks** | NestJS |
46
+ | **Cobertura Mínima** | 80% |
47
+ | **Score Mínimo** | 70/100 |
48
+
49
+ ---
50
+
51
+ ## 🔄 Fluxo Completo (Qualquer Ação)
52
+
53
+ ```
54
+ REQUISIÇÃO
55
+
56
+
57
+ LEITURA OBRIGATÓRIA (INDEX.md → 00-general → PREFLIGHT)
58
+
59
+
60
+ DIAGNÓSTICO (entender ANTES de agir)
61
+
62
+
63
+ ARTEFATOS (mockup → user story → arch → tasks → BDD → TDD)
64
+
65
+
66
+ APROVAÇÃO HUMANA (/approved)
67
+
68
+
69
+ IMPLEMENTAÇÃO (Backend → Integration Doc → Frontend/App)
70
+
71
+
72
+ QUALITY GATES (build + test + coverage + score)
73
+
74
+
75
+ CODE REVIEW
76
+
77
+
78
+ MERGE (via PR, nunca direto)
79
+ ```
80
+
81
+ ---
82
+
83
+ ## 🌿 Git Flow
84
+
85
+ ### Branch Naming
86
+
87
+ | Tipo | Padrão | Exemplo |
88
+ |------|--------|---------|
89
+ | Feature | `feature/[ticket]-[descricao]` | `feature/PROJ-123-cancelled-tab` |
90
+ | Bug fix | `fix/[ticket]-[descricao]` | `fix/PROJ-456-null-balance` |
91
+ | Hotfix | `hotfix/[descricao]` | `hotfix/payment-crash` |
92
+ | Refactor | `refactor/[descricao]` | `refactor/extract-auth-service` |
93
+
94
+ ### Commit Messages (Conventional Commits)
95
+
96
+ ```
97
+ feat: add cancelled refuelings tab
98
+ fix: prevent null balance on payment
99
+ refactor: extract auth service from user module
100
+ docs: update API documentation for v2
101
+ test: add integration tests for payment flow
102
+ chore: upgrade dependencies
103
+ ```
104
+
105
+ ### Cenários de Git Flow
106
+
107
+ **Cenário A: Feature nova**
108
+ ```
109
+ git checkout develop
110
+ git pull origin develop
111
+ git checkout -b feature/PROJ-XXX-nome
112
+ # ... implementar ...
113
+ git add [arquivos específicos]
114
+ git commit -m "feat: [descrição]"
115
+ git push -u origin feature/PROJ-XXX-nome
116
+ # Criar PR para develop
117
+ ```
118
+
119
+ **Cenário B: Bug fix**
120
+ ```
121
+ git checkout develop
122
+ git pull origin develop
123
+ git checkout -b fix/PROJ-XXX-descricao
124
+ # ... corrigir ...
125
+ git add [arquivos específicos]
126
+ git commit -m "fix: [descrição]"
127
+ git push -u origin fix/PROJ-XXX-descricao
128
+ # Criar PR para develop
129
+ ```
130
+
131
+ **Cenário C: Hotfix em produção**
132
+ ```
133
+ git checkout main
134
+ git pull origin main
135
+ git checkout -b hotfix/descricao
136
+ # ... corrigir ...
137
+ git add [arquivos específicos]
138
+ git commit -m "fix: [descrição] (hotfix)"
139
+ git push -u origin hotfix/descricao
140
+ # Criar PR para main E develop
141
+ ```
142
+
143
+ ---
144
+
145
+ ## 📝 Naming Conventions
146
+
147
+ | Item | Padrão | Exemplo |
148
+ |------|--------|---------|
149
+ | Classes | PascalCase | `UserService` |
150
+ | Interfaces | PascalCase (sem I prefix) | `UserPayload` |
151
+ | Funções | camelCase | `getActiveUsers` |
152
+ | Variáveis | camelCase | `userCount` |
153
+ | Constantes | UPPER_SNAKE | `MAX_RETRIES` |
154
+ | Enums | PascalCase | `UserStatus` |
155
+ | Arquivos | kebab-case | `user-service.ts` |
156
+ | Módulos (diretório) | kebab-case | `user-management/` |
157
+ | Testes | kebab-case + .spec/.test | `user-service.spec.ts` |
158
+ | Entities | PascalCase + .entity | `User.entity.ts` |
159
+ | DTOs | PascalCase + .dto | `CreateUserDto` |
160
+ | Controllers | PascalCase + .controller | `user.controller.ts` |
161
+ | Services | PascalCase + .service | `user.service.ts` |
162
+
163
+ ---
164
+
165
+ ## 🔍 Diagnóstico Obrigatório
166
+
167
+ > **Antes de QUALQUER implementação, execute este diagnóstico.**
168
+
169
+ ```bash
170
+ # 1. Entender a estrutura
171
+ ls -la src/
172
+ find src/ -name "*.ts" | head -30
173
+
174
+ # 2. Entender as dependências do módulo
175
+ grep -rn "import" --include="*.ts" src/[modulo]/ | head -20
176
+
177
+ # 3. Testes existentes
178
+ find . -name "*.test.*" -o -name "*.spec.*" -o -name "*_test.*" | wc -l
179
+
180
+ # 4. Score atual
181
+ npx @girardelli/architect score .
182
+
183
+ # 5. Anti-patterns
184
+ npx @girardelli/architect anti-patterns .
185
+ ```
186
+
187
+ ---
188
+
189
+ ## ❌ Ações PROIBIDAS
190
+
191
+ ```
192
+ ❌ Commitar direto em main ou develop
193
+ ❌ Push --force sem aprovação explícita
194
+ ❌ Merge sem code review
195
+ ❌ Código sem testes
196
+ ❌ Ignorar falhas de build/test
197
+ ❌ Hardcodar secrets, tokens, senhas
198
+ ❌ console.log / print() em produção
199
+ ❌ any (TypeScript) sem justificativa em comentário
200
+ ❌ @ts-ignore / type: ignore sem justificativa
201
+ ❌ Testes com .skip() permanente
202
+ ❌ Copiar/colar código (extrair abstração)
203
+ ❌ Alterar mais de 10 arquivos sem reavaliar escopo
204
+ ❌ Implementar sem artefatos aprovados (mockup, US, BDD, TDD)
205
+ ❌ Decidir arquitetura sem consultar o humano
206
+ ❌ Refatorar código alheio ao escopo da task
207
+ ```
208
+
209
+ ---
210
+
211
+ ## ✅ Checklist de Compliance (Regras de Ouro)
212
+
213
+ Antes de marcar QUALQUER tarefa como "done":
214
+
215
+ ```
216
+ □ Regra 1: Git Flow completo (branch + PR + review)?
217
+ □ Regra 2: Arquitetura documentada (C4 se nova feature)?
218
+ □ Regra 3: BDD escrito antes do código?
219
+ □ Regra 4: TDD aplicado (RED → GREEN → REFACTOR)?
220
+ □ Regra 5: Diagnóstico feito antes de codar?
221
+ □ Regra 6: Mockup aprovado (se tem UI)?
222
+ □ Regra 7: Decisões validadas com humano?
223
+ □ Regra 8: Qualidade > Velocidade (sem atalhos)?
224
+ □ Regra 9: Apenas código (sem abrir browser, sem screenshots)?
225
+ ```
226
+
227
+ ---
228
+
229
+ **Gerado por Architect v3.1 · Score: 72/100 · 2026-03-25**
@@ -0,0 +1,191 @@
1
+ ---
2
+ antigravity:
3
+ trigger: 'always_on'
4
+ globs: ['**/*']
5
+ description: 'Regras de arquitetura para test-project'
6
+ priority: HIGH
7
+ ---
8
+
9
+ # 🏗️ Regras de Arquitetura — test-project
10
+
11
+ > **Separação de camadas, direção de dependências, e padrões de módulo.**
12
+
13
+ ---
14
+
15
+ ## 📐 Camadas Arquiteturais
16
+
17
+ | Camada | Responsabilidade | Padrão NestJS |
18
+ |--------|-----------------|---------------|
19
+ | **API** (Controllers) | Routing, validação de request, response shaping | `*.controller.ts` + `@Controller()` |
20
+ | **Service** | Lógica de negócio, orquestração | `*.service.ts` + `@Injectable()` |
21
+ | **Data** (Repository) | Acesso a dados, queries | `*.repository.ts` ou TypeORM Repository |
22
+ | **Entity** | Modelo de domínio | `*.entity.ts` + `@Entity()` |
23
+ | **DTO** | Contratos de request/response | `*.dto.ts` + class-validator |
24
+ | **Guard** | Autenticação/Autorização | `*.guard.ts` + `@UseGuards()` |
25
+ | **Pipe** | Validação/transformação | `*.pipe.ts` + `@UsePipes()` |
26
+
27
+ ### Direção de Dependência (OBRIGATÓRIA)
28
+
29
+ ```
30
+ UI / Controllers → Services → Repositories / Data → Entities
31
+ ↓ ↓ ↓
32
+ (pode usar) (pode usar) (pode usar)
33
+ Services Repositories Entities
34
+ DTOs Entities Value Objects
35
+ DTOs
36
+
37
+ ⚠️ NUNCA:
38
+ Entity → Controller
39
+ Repository → Controller
40
+ Service → Controller
41
+ Data Layer → UI Layer
42
+ ```
43
+
44
+ ### Regra de Ouro das Camadas
45
+
46
+ ```
47
+ ╔══════════════════════════════════════════════════════╗
48
+ ║ Uma camada SÓ pode depender de camadas ABAIXO. ║
49
+ ║ NUNCA de camadas acima ou da mesma camada lateral. ║
50
+ ╚══════════════════════════════════════════════════════╝
51
+ ```
52
+
53
+ ---
54
+
55
+ ## 📦 Padrão de Módulo
56
+
57
+ ```
58
+ src/modules/[nome-do-modulo]/
59
+ ├── [nome].module.ts → NestJS Module (imports, providers, exports)
60
+ ├── [nome].controller.ts → HTTP endpoints
61
+ ├── [nome].controller.spec.ts → Testes do controller
62
+ ├── [nome].service.ts → Lógica de negócio
63
+ ├── [nome].service.spec.ts → Testes do service
64
+ ├── dto/
65
+ │ ├── create-[nome].dto.ts → Request de criação
66
+ │ ├── update-[nome].dto.ts → Request de atualização
67
+ │ └── [nome]-response.dto.ts → Response shape
68
+ ├── entities/
69
+ │ └── [nome].entity.ts → TypeORM entity
70
+ ├── guards/ → Guards específicos (se houver)
71
+ └── interfaces/ → Interfaces/types do módulo
72
+ ```
73
+
74
+ ---
75
+
76
+ ## 🚫 Anti-Patterns a Prevenir
77
+
78
+ ### God Class (> 500 linhas ou > 10 métodos)
79
+ ```
80
+ ❌ PROIBIDO: Classe com múltiplas responsabilidades
81
+ ✅ CORRETO: Extrair em classes menores com responsabilidade única
82
+
83
+ Se um arquivo ultrapassar 500 linhas:
84
+ 1. PARAR
85
+ 2. Identificar responsabilidades distintas
86
+ 3. Extrair em módulos separados
87
+ 4. Atualizar imports
88
+ ```
89
+
90
+ ### Circular Dependencies
91
+ ```
92
+ ❌ PROIBIDO: A importa B, B importa A
93
+ ✅ CORRETO: Extrair interface comum ou usar event/mediator
94
+
95
+ Detecção:
96
+ $ npx madge --circular src/
97
+ $ architect anti-patterns .
98
+ ```
99
+
100
+ ### Leaky Abstractions
101
+ ```
102
+ ❌ PROIBIDO: Service expondo detalhes de implementação
103
+ ✅ CORRETO: Interface define contrato, implementação é encapsulada
104
+
105
+ Exemplos:
106
+ - Service retornando QueryBuilder → ERRADO (vaza ORM)
107
+ - Service retornando DTO → CORRETO (abstrai)
108
+ - Controller acessando Entity → ERRADO (vaza modelo)
109
+ - Controller acessando DTO → CORRETO (contrato)
110
+ ```
111
+
112
+ ### Feature Envy
113
+ ```
114
+ ❌ PROIBIDO: Método que usa mais atributos de outra classe que da própria
115
+ ✅ CORRETO: Mover método para a classe que possui os dados
116
+ ```
117
+
118
+ ### Shotgun Surgery
119
+ ```
120
+ ❌ PROIBIDO: Mudança em 1 feature exige alterar 10+ arquivos
121
+ ✅ CORRETO: Agrupar código relacionado no mesmo módulo
122
+
123
+ Se uma mudança toca > 5 arquivos:
124
+ 1. PARAR
125
+ 2. Reavaliar se o código está no lugar certo
126
+ 3. Considerar refatoração preventiva
127
+ ```
128
+
129
+ ---
130
+
131
+ ## 🏛️ Princípios Arquiteturais
132
+
133
+ ### DDD (Domain-Driven Design) — Quando Aplicável
134
+ ```
135
+ Entities: Objetos com identidade (ID único)
136
+ Value Objects: Objetos sem identidade (imutáveis)
137
+ Aggregates: Cluster de entidades com root
138
+ Repositories: Acesso a dados de Aggregates
139
+ Services: Lógica que não pertence a nenhuma entidade
140
+ ```
141
+
142
+ ### Clean Architecture
143
+ ```
144
+ Camada mais interna: Entities (regras de negócio)
145
+ Camada média: Use Cases / Services (lógica de aplicação)
146
+ Camada externa: Controllers, Gateways, Presenters (I/O)
147
+
148
+ Dependência: SEMPRE de fora para dentro, NUNCA o contrário.
149
+ ```
150
+
151
+ ### Event-Driven — Quando Aplicável
152
+ ```
153
+ Usar eventos quando:
154
+ - Desacoplamento entre módulos é necessário
155
+ - Processamento assíncrono é aceitável
156
+ - Múltiplos handlers para um mesmo trigger
157
+
158
+ NÃO usar eventos quando:
159
+ - Resposta síncrona é necessária
160
+ - Transação atômica é obrigatória
161
+ - Ordem de execução importa
162
+ ```
163
+
164
+ ---
165
+
166
+ ## 📊 Anti-Patterns Atuais do Projeto
167
+
168
+ - **God Class** (CRITICAL) em `src/AppService.ts` — Split into smaller services
169
+
170
+ Score atual: **72/100** | Meta: **82/100**
171
+
172
+ ---
173
+
174
+ ## ✅ Checklist de Arquitetura
175
+
176
+ Antes de criar qualquer módulo novo:
177
+
178
+ ```
179
+ □ Camada correta? (Controller vs Service vs Repository vs Entity)
180
+ □ Direção de dependência respeitada? (nunca de baixo para cima)
181
+ □ Módulo coeso? (tudo relacionado junto)
182
+ □ Sem circular dependency?
183
+ □ Sem God Class? (< 500 linhas, < 10 métodos)
184
+ □ Interface/abstração antes de implementação?
185
+ □ DTOs para comunicação entre camadas?
186
+ □ Testes por camada? (unit para service, integration para controller)
187
+ ```
188
+
189
+ ---
190
+
191
+ **Gerado por Architect v3.1 · Score: 72/100**