@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,311 @@
1
+ ---
2
+ antigravity:
3
+ trigger: 'on_demand'
4
+ description: 'Workflow completo para nova feature em test-project'
5
+ ---
6
+
7
+ # 🚀 Workflow: Nova Feature
8
+
9
+ > **Este workflow é OBRIGATÓRIO para qualquer nova funcionalidade.**
10
+ > Cada step tem um gate de aprovação. Pular steps é violação do protocolo.
11
+
12
+ ---
13
+
14
+ ## Pré-requisitos
15
+
16
+ ```
17
+ □ Li INDEX.md e entendi a estrutura do framework
18
+ □ Li 00-general.md (Regras de Ouro)
19
+ □ Li PREFLIGHT.md e completei TODAS as fases
20
+ □ Li QUALITY-GATES.md e sei quais métricas atender
21
+ □ Estou em uma branch feature/ (NUNCA main/develop)
22
+ ```
23
+
24
+ ---
25
+
26
+ ## FASE 0: AÇÃO ZERO — Diagnóstico
27
+
28
+ > **ANTES de qualquer coisa, fazer diagnóstico do estado atual.**
29
+
30
+ ```bash
31
+ # Estado do projeto
32
+ git branch --show-current
33
+ git status
34
+
35
+ # Build e testes ANTES de começar
36
+ npm run build && npm run test
37
+
38
+ # Score atual
39
+ npx @girardelli/architect score .
40
+
41
+ # Ler lições aprendidas (se existir)
42
+ cat LESSONS-LEARNED.md 2>/dev/null || echo "Sem lessons learned"
43
+
44
+ # Regras de negócio (se existir)
45
+ cat BUSINESS-RULES.md 2>/dev/null || echo "Sem business rules"
46
+ ```
47
+
48
+ ```
49
+ □ Build passando ✓
50
+ □ Testes passando ✓
51
+ □ Score anotado: ___/100 (não pode regredir)
52
+ □ Lessons learned lidos
53
+ ```
54
+
55
+ ---
56
+
57
+ ## FASE 1: Diagnóstico da Feature
58
+
59
+ ```
60
+ Quero implementar [NOME DA FEATURE].
61
+
62
+ Contexto:
63
+ - Quem usa: [usuário / admin / sistema externo / ...]
64
+ - Tem UI: [sim/não]
65
+ - Tem API: [sim/não]
66
+ - Tem banco: [sim/não]
67
+ - Repo: [test-project / monorepo path / ...]
68
+
69
+ Descrição:
70
+ [2-3 frases do ponto de vista do usuário]
71
+
72
+ Critérios de aceite:
73
+ - CA1: [critério mensurável]
74
+ - CA2: [critério mensurável]
75
+ - CA3: [critério mensurável]
76
+ ```
77
+
78
+ ---
79
+
80
+ ## Step 1: MOCKUP (se tem UI)
81
+
82
+ > **Gate 1 — Primeiro artefato. Nada começa sem mockup aprovado (quando tem UI).**
83
+
84
+ ```
85
+ ╔══════════════════════════════════════════════════════╗
86
+ ║ O MOCKUP DEVE CONTER: ║
87
+ ║ ║
88
+ ║ ✓ TODAS as telas/páginas envolvidas ║
89
+ ║ ✓ Estado: com dados (normal) ║
90
+ ║ ✓ Estado: vazio (empty state) ║
91
+ ║ ✓ Estado: carregando (loading) ║
92
+ ║ ✓ Estado: erro (error state) ║
93
+ ║ ✓ TODOS os modais / dialogs ║
94
+ ║ ✓ Mensagens de sucesso ║
95
+ ║ ✓ Mensagens de erro ║
96
+ ║ ✓ Fluxo completo (passo a passo) ║
97
+ ║ ✓ Padrão visual do sistema (cores, fontes, layout) ║
98
+ ║ ║
99
+ ║ Formato: HTML interativo ou imagens anotadas ║
100
+ ╚══════════════════════════════════════════════════════╝
101
+ ```
102
+
103
+ **Apresentar ao humano → Aguardar `/approved`**
104
+
105
+ ---
106
+
107
+ ## Step 2: User Stories
108
+
109
+ > **Gate 2 — Histórias de usuário com critérios de aceite mensuráveis.**
110
+
111
+ Formato:
112
+
113
+ ```markdown
114
+ ## US-001: [Título]
115
+
116
+ **Como** [ator],
117
+ **Quero** [ação],
118
+ **Para** [benefício].
119
+
120
+ ### Critérios de Aceite
121
+ - CA1: [critério mensurável]
122
+ - CA2: [critério mensurável]
123
+
124
+ ### Regras de Negócio
125
+ - RN1: [regra]
126
+
127
+ ### Exceções
128
+ - E1: Se [condição], então [comportamento]
129
+ ```
130
+
131
+ **Apresentar ao humano → Aguardar `/approved`**
132
+
133
+ ---
134
+
135
+ ## Step 3: Arquitetura (C4)
136
+
137
+ > **Gate 3 — Visão técnica da implementação.**
138
+
139
+ Usar template [C4.md](../templates/C4.md):
140
+
141
+ ```
142
+ Nível 1 — Contexto: Quem são os atores e sistemas externos?
143
+ Nível 2 — Container: Quais serviços/apps são afetados?
144
+ Nível 3 — Componente: Quais módulos/classes são criados/modificados?
145
+ Nível 4 — Código: Interfaces, DTOs, entidades (se complexo)
146
+ ```
147
+
148
+ Se a decisão é significativa → criar ADR (template [ADR.md](../templates/ADR.md))
149
+
150
+ **Apresentar ao humano → Aguardar `/approved`**
151
+
152
+ ---
153
+
154
+ ## Step 4: Task Breakdown
155
+
156
+ > **Gate 4 — Lista de tarefas com estimativa.**
157
+
158
+ Formato:
159
+
160
+ ```markdown
161
+ ## TASK-001: [Título]
162
+ - **US:** US-001
163
+ - **Camada:** Backend / Frontend / App / Database
164
+ - **Estimativa:** XS / S / M / L / XL
165
+ - **Agente:** [quem executa]
166
+ - **Deps:** [depende de TASK-XXX, se houver]
167
+ ```
168
+
169
+ Ordenar por dependência. Backend SEMPRE primeiro.
170
+
171
+ **Apresentar ao humano → Aguardar `/approved`**
172
+
173
+ ---
174
+
175
+ ## Step 5: BDD (Cenários)
176
+
177
+ > **Gate 5 — Cenários de comportamento para cada critério de aceite.**
178
+
179
+ Formato (Gherkin):
180
+
181
+ ```gherkin
182
+ Feature: [Nome da Feature]
183
+
184
+ Scenario: [cenário happy path]
185
+ Given [contexto]
186
+ When [ação do usuário]
187
+ Then [resultado esperado]
188
+
189
+ Scenario: [cenário de erro]
190
+ Given [contexto]
191
+ When [ação inválida]
192
+ Then [mensagem de erro esperada]
193
+
194
+ Scenario: [cenário edge case]
195
+ Given [contexto específico]
196
+ When [ação]
197
+ Then [comportamento esperado]
198
+ ```
199
+
200
+ **Apresentar ao humano → Aguardar `/approved`**
201
+
202
+ ---
203
+
204
+ ## Step 6: TDD (Casos de Teste)
205
+
206
+ > **Gate 6 — Casos de teste ANTES do código.**
207
+
208
+ ```
209
+ Para cada TASK:
210
+ 1. Listar os testes que serão escritos
211
+ 2. Descrever input → output esperado
212
+ 3. Incluir testes de erro/exceção
213
+ 4. Incluir testes de boundary
214
+
215
+ Meta: Cobertura ≥ 80% (INEGOCIÁVEL)
216
+ ```
217
+
218
+ **Apresentar ao humano → Aguardar `/approved`**
219
+
220
+ ---
221
+
222
+ ## Step 7: Implementação — Backend
223
+
224
+ > **SOMENTE após TODOS os 6 gates aprovados.**
225
+
226
+ ```
227
+ □ Criar/modificar entities e DTOs
228
+ □ Criar/modificar services (lógica de negócio)
229
+ □ Criar/modificar controllers (endpoints)
230
+ □ Criar migrations (se houver alteração de banco)
231
+ □ Escrever testes (RED → GREEN → REFACTOR)
232
+ □ Rodar: build ✓ + tests ✓ + coverage ≥ 80% ✓
233
+ ```
234
+
235
+ ---
236
+
237
+ ## Step 8: Documento de Integração
238
+
239
+ > **OBRIGATÓRIO se tem frontend/app. Gerado APÓS backend completo.**
240
+
241
+ ```markdown
242
+ # Documento de Integração: [Feature]
243
+
244
+ ## Endpoints
245
+
246
+ ### [METHOD] /api/v1/[recurso]
247
+
248
+ **Request:**
249
+ \`\`\`json
250
+ {
251
+ "campo": "tipo — descrição"
252
+ }
253
+ \`\`\`
254
+
255
+ **Response (200):**
256
+ \`\`\`json
257
+ {
258
+ "campo": "tipo — descrição"
259
+ }
260
+ \`\`\`
261
+
262
+ **Erros:**
263
+ | Código | Mensagem | Quando |
264
+ |--------|----------|--------|
265
+ | 400 | Validation error | Input inválido |
266
+ | 404 | Not found | Recurso inexistente |
267
+
268
+ ## Regras
269
+ - [regra 1]
270
+ - [regra 2]
271
+ ```
272
+
273
+ ---
274
+
275
+ ## Step 9: Implementação — Frontend / App
276
+
277
+ > **Baseado no Documento de Integração.**
278
+
279
+ ```
280
+ □ Criar/modificar componentes (seguir mockup)
281
+ □ Implementar state management
282
+ □ Integrar com endpoints (conforme doc de integração)
283
+ □ Implementar TODOS os estados (loading, error, empty, data)
284
+ □ Escrever testes (unitários + e2e se aplicável)
285
+ □ Rodar: build ✓ + tests ✓ + coverage ≥ 80% ✓
286
+ ```
287
+
288
+ ---
289
+
290
+ ## Step 10: Verificação Final
291
+
292
+ ```
293
+ ╔════════════════════════════════════════════════╗
294
+ ║ CHECKLIST FINAL — TODOS devem ser ✓ ║
295
+ ║ ║
296
+ ║ □ Build compila sem erros ║
297
+ ║ □ TODOS os testes passam ║
298
+ ║ □ Cobertura ≥ 80 % ║
299
+ ║ □ Score ≥ 70 /100 (sem regressão) ║
300
+ ║ □ Lint sem errors ║
301
+ ║ □ Zero anti-patterns CRITICAL novos ║
302
+ ║ □ Todos os critérios de aceite cobertos ║
303
+ ║ □ Documentação atualizada ║
304
+ ║ □ LESSONS-LEARNED atualizado (se aplicável) ║
305
+ ║ □ PR criado com descrição completa ║
306
+ ╚════════════════════════════════════════════════╝
307
+ ```
308
+
309
+ ---
310
+
311
+ **Gerado por Architect v3.1 · Score: 72/100 · 2026-03-25**
@@ -0,0 +1,95 @@
1
+ ---
2
+ antigravity:
3
+ trigger: 'on_demand'
4
+ description: 'Workflow de code review estruturado para test-project'
5
+ ---
6
+
7
+ # 🔍 Workflow: Code Review
8
+
9
+ > **Code review não é "LGTM".**
10
+ > É uma verificação sistemática em 6 dimensões.
11
+
12
+ ---
13
+
14
+ ## Dimensão 1: Correção Funcional
15
+
16
+ ```
17
+ □ O código faz o que a US/task pede?
18
+ □ Todos os critérios de aceite estão cobertos?
19
+ □ Edge cases foram tratados?
20
+ □ Erros são tratados adequadamente?
21
+ □ Regras de negócio estão corretas?
22
+ ```
23
+
24
+ ## Dimensão 2: Qualidade de Código
25
+
26
+ ```
27
+ □ Código legível sem comentários explicativos?
28
+ □ Naming é descritivo e consistente?
29
+ □ Sem duplicação (DRY)?
30
+ □ Funções/métodos com responsabilidade única?
31
+ □ Sem magic numbers (extrair para constantes)?
32
+ □ Tipos corretos (sem `any` / `type: ignore` injustificado)?
33
+ □ Sem código morto / comentado?
34
+ ```
35
+
36
+ ## Dimensão 3: Testes
37
+
38
+ ```
39
+ □ Testes existem para o novo código?
40
+ □ Cobertura ≥ 80%?
41
+ □ Testes são significativos (não apenas `expect(true).toBe(true)`)?
42
+ □ Happy path coberto?
43
+ □ Error path coberto?
44
+ □ Edge cases cobertos?
45
+ □ Nenhum teste com .skip() injustificado?
46
+ ```
47
+
48
+ ## Dimensão 4: Segurança
49
+
50
+ ```
51
+ □ Sem secrets hardcoded?
52
+ □ Input validado e sanitizado?
53
+ □ SQL injection prevenido (parameterized queries)?
54
+ □ XSS prevenido (output encoding)?
55
+ □ Autenticação/autorização verificada?
56
+ □ Dados sensíveis não logados?
57
+ □ Rate limiting em endpoints novos?
58
+ ```
59
+
60
+ ## Dimensão 5: Performance
61
+
62
+ ```
63
+ □ Sem N+1 queries?
64
+ □ Queries com índice adequado?
65
+ □ Sem loops desnecessários sobre coleções grandes?
66
+ □ Lazy loading onde aplicável?
67
+ □ Sem memory leaks óbvios (subscriptions, listeners)?
68
+ □ Caching considerado onde faz sentido?
69
+ ```
70
+
71
+ ## Dimensão 6: Arquitetura
72
+
73
+ ```
74
+ □ Segue os padrões do projeto (rules/)?
75
+ □ Camada correta (controller ≠ service ≠ entity)?
76
+ □ Sem violações de layer (data layer acessando UI)?
77
+ □ Score não regrediu: architect score ≥ 70/100
78
+ □ Sem novos anti-patterns CRITICAL?
79
+ □ Imports organizados, sem circulares?
80
+ ```
81
+
82
+ ---
83
+
84
+ ## Resultado do Review
85
+
86
+ | Resultado | Ação |
87
+ |-----------|------|
88
+ | ✅ Aprovado | Merge permitido |
89
+ | ⚠️ Aprovado com observações | Merge permitido, fix no próximo PR |
90
+ | ❌ Mudanças necessárias | Bloquear merge até resolver |
91
+ | 🔴 Bloqueado | Issue de segurança ou regressão — resolver imediatamente |
92
+
93
+ ---
94
+
95
+ **Gerado por Architect v3.1 · Score: 72/100 · 2026-03-25**
@@ -0,0 +1,5 @@
1
+ line1
2
+ line2
3
+ line3
4
+ line4
5
+ line5
@@ -0,0 +1,10 @@
1
+ console.log("test");
2
+ console.log("test");
3
+ console.log("test");
4
+ console.log("test");
5
+ console.log("test");
6
+ console.log("test");
7
+ console.log("test");
8
+ console.log("test");
9
+ console.log("test");
10
+ console.log("test");
@@ -0,0 +1,10 @@
1
+ console.log("test");
2
+ console.log("test");
3
+ console.log("test");
4
+ console.log("test");
5
+ console.log("test");
6
+ console.log("test");
7
+ console.log("test");
8
+ console.log("test");
9
+ console.log("test");
10
+ console.log("test");
@@ -0,0 +1,5 @@
1
+ line1
2
+ line2
3
+ line3
4
+ line4
5
+ line5
@@ -0,0 +1 @@
1
+ {"name":"test","dependencies":{"jest":"^29.0.0","express":"^4.18.0"},"devDependencies":{"jest":"^29.0.0"}}
@@ -0,0 +1,8 @@
1
+ [project]
2
+ dependencies = [
3
+ "fastapi>=0.109.0",
4
+ "uvicorn[standard]>=0.27.0"
5
+ ]
6
+
7
+ [project.optional-dependencies]
8
+ dev = ["pytest>=7.0", "ruff>=0.1.0"]
@@ -0,0 +1 @@
1
+ {"name":"test","dependencies":{"jest":"^29.0.0","express":"^4.18.0"},"devDependencies":{"jest":"^29.0.0"}}
@@ -0,0 +1,8 @@
1
+ [project]
2
+ dependencies = [
3
+ "fastapi>=0.109.0",
4
+ "uvicorn[standard]>=0.27.0"
5
+ ]
6
+
7
+ [project.optional-dependencies]
8
+ dev = ["pytest>=7.0", "ruff>=0.1.0"]
@@ -0,0 +1,6 @@
1
+ [packages]
2
+ tornado = "*"
3
+ peewee = ">=3.0"
4
+
5
+ [dev-packages]
6
+ pytest = "*"
@@ -0,0 +1,10 @@
1
+ <project>
2
+ <dependencies>
3
+ <dependency>
4
+ <artifactId>spring-boot-starter-web</artifactId>
5
+ </dependency>
6
+ <dependency>
7
+ <artifactId>spring-boot-starter-data-jpa</artifactId>
8
+ </dependency>
9
+ </dependencies>
10
+ </project>
@@ -0,0 +1,8 @@
1
+ module myapp
2
+
3
+ go 1.21
4
+
5
+ require (
6
+ github.com/gin-gonic/gin v1.9.0
7
+ github.com/labstack/echo v3.3.0
8
+ )
@@ -0,0 +1,10 @@
1
+ <project>
2
+ <dependencies>
3
+ <dependency>
4
+ <artifactId>spring-boot-starter-web</artifactId>
5
+ </dependency>
6
+ <dependency>
7
+ <artifactId>spring-boot-starter-data-jpa</artifactId>
8
+ </dependency>
9
+ </dependencies>
10
+ </project>
@@ -0,0 +1,6 @@
1
+ [packages]
2
+ tornado = "*"
3
+ peewee = ">=3.0"
4
+
5
+ [dev-packages]
6
+ pytest = "*"
@@ -0,0 +1,7 @@
1
+ <project>
2
+ <dependencies>
3
+ <dependency>
4
+ <artifactId>spring-boot-starter-web</artifactId>
5
+ </dependency>
6
+ </dependencies>
7
+ </project>
@@ -0,0 +1,5 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "rails", "~> 7.0.0"
4
+ gem "sinatra"
5
+ gem "rspec"
@@ -0,0 +1,3 @@
1
+ module myapp
2
+ go 1.21
3
+ require github.com/gin-gonic/gin v1.9.0
@@ -0,0 +1,2 @@
1
+ flask>=2.0
2
+ sqlalchemy>=2.0
@@ -0,0 +1 @@
1
+ {"name":"test-app","dependencies":{"express":"^4.18.0","@nestjs/core":"^10.0.0"},"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0"}}
@@ -0,0 +1 @@
1
+ {}
@@ -0,0 +1 @@
1
+ flask>=2.0
@@ -0,0 +1 @@
1
+ import django
@@ -0,0 +1,2 @@
1
+ django>=4.0
2
+ pytest>=7.0
@@ -0,0 +1,7 @@
1
+ plugins {
2
+ id 'java'
3
+ }
4
+
5
+ dependencies {
6
+ implementation 'io.quarkus:quarkus-core'
7
+ }
@@ -0,0 +1,4 @@
1
+ dependencies {
2
+ implementation("io.micronaut:micronaut-core")
3
+ implementation("io.ktor:ktor-server-core")
4
+ }
@@ -0,0 +1,7 @@
1
+ [package]
2
+ name = "myapp"
3
+ version = "0.1.0"
4
+
5
+ [dependencies]
6
+ actix-web = "4.4"
7
+ axum = "0.7"
@@ -0,0 +1,8 @@
1
+ module myapp
2
+
3
+ go 1.21
4
+
5
+ require (
6
+ github.com/gin-gonic/gin v1.9.0
7
+ github.com/labstack/echo v3.3.0
8
+ )
@@ -0,0 +1 @@
1
+ {"require":{"laravel/framework":"^10.0"}}
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+ gem "rails", "~> 7.0.0"
3
+ gem "rspec"
@@ -0,0 +1,9 @@
1
+ [project]
2
+ dependencies = [
3
+ "fastapi>=0.109.0",
4
+ "sqlalchemy>=2.0",
5
+ "uvicorn[standard]>=0.27"
6
+ ]
7
+
8
+ [project.optional-dependencies]
9
+ dev = ["pytest>=7.0", "ruff>=0.1.0"]
@@ -0,0 +1,6 @@
1
+ [project]
2
+ dependencies = ["fastapi>=0.109.0"]
3
+
4
+ [project.optional-dependencies]
5
+ dev = ["pytest>=7.0", "ruff>=0.1.0"]
6
+ test = ["hypothesis>=6.0"]
@@ -0,0 +1,2 @@
1
+ plugins { id 'java' }
2
+ dependencies { implementation 'org.springframework.boot:spring-boot' }
@@ -0,0 +1,9 @@
1
+ name: myapp
2
+ description: A Flutter app
3
+
4
+ flutter:
5
+ uses-material-design: true
6
+
7
+ dev_dependencies:
8
+ flutter_test:
9
+ sdk: flutter
@@ -0,0 +1,6 @@
1
+ [project]
2
+ dependencies = ["fastapi>=0.109.0"]
3
+
4
+ [project.optional-dependencies]
5
+ dev = ["pytest>=7.0", "ruff>=0.1.0"]
6
+ test = ["hypothesis>=6.0"]
@@ -0,0 +1,4 @@
1
+ pytest>=7.0
2
+ fastapi>=0.100.0
3
+ flask>=2.0
4
+ black>=23.0
@@ -0,0 +1 @@
1
+ {}
@@ -0,0 +1,5 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "rails", "~> 7.0.0"
4
+ gem "sinatra"
5
+ gem "rspec"
@@ -0,0 +1 @@
1
+ {"name":"myapp","require":{"laravel/framework":"^10.0","php":"^8.1"}}
@@ -0,0 +1 @@
1
+ {"name":"test","dependencies":{"express":"^4.18.0"},"devDependencies":{"jest":"^29.0.0"}}
@@ -0,0 +1 @@
1
+ placeholder