@girardelli/architect-agents 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/dist/src/core/agent-generator/context-enricher.d.ts +17 -0
  2. package/dist/src/core/agent-generator/context-enricher.js +51 -0
  3. package/dist/src/core/agent-generator/context-enricher.js.map +1 -0
  4. package/dist/src/core/agent-generator/detectors/base-detector.d.ts +8 -0
  5. package/dist/src/core/agent-generator/detectors/base-detector.js +12 -0
  6. package/dist/src/core/agent-generator/detectors/base-detector.js.map +1 -0
  7. package/dist/src/core/agent-generator/detectors/dart-detector.d.ts +5 -0
  8. package/dist/src/core/agent-generator/detectors/dart-detector.js +16 -0
  9. package/dist/src/core/agent-generator/detectors/dart-detector.js.map +1 -0
  10. package/dist/src/core/agent-generator/detectors/framework-registry.d.ts +5 -0
  11. package/dist/src/core/agent-generator/detectors/framework-registry.js +81 -0
  12. package/dist/src/core/agent-generator/detectors/framework-registry.js.map +1 -0
  13. package/dist/src/core/agent-generator/detectors/go-detector.d.ts +5 -0
  14. package/dist/src/core/agent-generator/detectors/go-detector.js +25 -0
  15. package/dist/src/core/agent-generator/detectors/go-detector.js.map +1 -0
  16. package/dist/src/core/agent-generator/detectors/java-detector.d.ts +5 -0
  17. package/dist/src/core/agent-generator/detectors/java-detector.js +44 -0
  18. package/dist/src/core/agent-generator/detectors/java-detector.js.map +1 -0
  19. package/dist/src/core/agent-generator/detectors/node-detector.d.ts +5 -0
  20. package/dist/src/core/agent-generator/detectors/node-detector.js +28 -0
  21. package/dist/src/core/agent-generator/detectors/node-detector.js.map +1 -0
  22. package/dist/src/core/agent-generator/detectors/php-detector.d.ts +5 -0
  23. package/dist/src/core/agent-generator/detectors/php-detector.js +28 -0
  24. package/dist/src/core/agent-generator/detectors/php-detector.js.map +1 -0
  25. package/dist/src/core/agent-generator/detectors/python-detector.d.ts +7 -0
  26. package/dist/src/core/agent-generator/detectors/python-detector.js +116 -0
  27. package/dist/src/core/agent-generator/detectors/python-detector.js.map +1 -0
  28. package/dist/src/core/agent-generator/detectors/ruby-detector.d.ts +5 -0
  29. package/dist/src/core/agent-generator/detectors/ruby-detector.js +23 -0
  30. package/dist/src/core/agent-generator/detectors/ruby-detector.js.map +1 -0
  31. package/dist/src/core/agent-generator/detectors/rust-detector.d.ts +5 -0
  32. package/dist/src/core/agent-generator/detectors/rust-detector.js +18 -0
  33. package/dist/src/core/agent-generator/detectors/rust-detector.js.map +1 -0
  34. package/dist/src/core/agent-generator/detectors/structure-detector.d.ts +4 -0
  35. package/dist/src/core/agent-generator/detectors/structure-detector.js +35 -0
  36. package/dist/src/core/agent-generator/detectors/structure-detector.js.map +1 -0
  37. package/dist/src/core/agent-generator/detectors/toolchain-detector.d.ts +5 -0
  38. package/dist/src/core/agent-generator/detectors/toolchain-detector.js +164 -0
  39. package/dist/src/core/agent-generator/detectors/toolchain-detector.js.map +1 -0
  40. package/dist/src/core/agent-generator/domain-inferrer.d.ts +51 -0
  41. package/dist/src/core/agent-generator/domain-inferrer.js +585 -0
  42. package/dist/src/core/agent-generator/domain-inferrer.js.map +1 -0
  43. package/dist/src/core/agent-generator/engines/audit-engine.d.ts +8 -0
  44. package/dist/src/core/agent-generator/engines/audit-engine.js +84 -0
  45. package/dist/src/core/agent-generator/engines/audit-engine.js.map +1 -0
  46. package/dist/src/core/agent-generator/engines/context-builder.d.ts +12 -0
  47. package/dist/src/core/agent-generator/engines/context-builder.js +84 -0
  48. package/dist/src/core/agent-generator/engines/context-builder.js.map +1 -0
  49. package/dist/src/core/agent-generator/engines/generation-engine.d.ts +7 -0
  50. package/dist/src/core/agent-generator/engines/generation-engine.js +160 -0
  51. package/dist/src/core/agent-generator/engines/generation-engine.js.map +1 -0
  52. package/dist/src/core/agent-generator/engines/generation-engine_deps.d.ts +21 -0
  53. package/dist/src/core/agent-generator/engines/generation-engine_deps.js +17 -0
  54. package/dist/src/core/agent-generator/engines/generation-engine_deps.js.map +1 -0
  55. package/dist/src/core/agent-generator/engines/suggestion-engine.d.ts +13 -0
  56. package/dist/src/core/agent-generator/engines/suggestion-engine.js +171 -0
  57. package/dist/src/core/agent-generator/engines/suggestion-engine.js.map +1 -0
  58. package/dist/src/core/agent-generator/engines/suggestion-engine_deps.d.ts +8 -0
  59. package/dist/src/core/agent-generator/engines/suggestion-engine_deps.js +5 -0
  60. package/dist/src/core/agent-generator/engines/suggestion-engine_deps.js.map +1 -0
  61. package/dist/src/core/agent-generator/enrichers/analysis-helpers.d.ts +9 -0
  62. package/dist/src/core/agent-generator/enrichers/analysis-helpers.js +51 -0
  63. package/dist/src/core/agent-generator/enrichers/analysis-helpers.js.map +1 -0
  64. package/dist/src/core/agent-generator/enrichers/description-generator.d.ts +4 -0
  65. package/dist/src/core/agent-generator/enrichers/description-generator.js +82 -0
  66. package/dist/src/core/agent-generator/enrichers/description-generator.js.map +1 -0
  67. package/dist/src/core/agent-generator/enrichers/endpoint-extractor.d.ts +7 -0
  68. package/dist/src/core/agent-generator/enrichers/endpoint-extractor.js +90 -0
  69. package/dist/src/core/agent-generator/enrichers/endpoint-extractor.js.map +1 -0
  70. package/dist/src/core/agent-generator/enrichers/layer-classifier.d.ts +12 -0
  71. package/dist/src/core/agent-generator/enrichers/layer-classifier.js +152 -0
  72. package/dist/src/core/agent-generator/enrichers/layer-classifier.js.map +1 -0
  73. package/dist/src/core/agent-generator/enrichers/module-extractor.d.ts +10 -0
  74. package/dist/src/core/agent-generator/enrichers/module-extractor.js +173 -0
  75. package/dist/src/core/agent-generator/enrichers/module-extractor.js.map +1 -0
  76. package/dist/src/core/agent-generator/framework-detector.d.ts +17 -0
  77. package/dist/src/core/agent-generator/framework-detector.js +56 -0
  78. package/dist/src/core/agent-generator/framework-detector.js.map +1 -0
  79. package/dist/src/core/agent-generator/index.d.ts +25 -0
  80. package/dist/src/core/agent-generator/index.js +37 -0
  81. package/dist/src/core/agent-generator/index.js.map +1 -0
  82. package/dist/src/core/agent-generator/stack-detector.d.ts +13 -0
  83. package/dist/src/core/agent-generator/stack-detector.js +124 -0
  84. package/dist/src/core/agent-generator/stack-detector.js.map +1 -0
  85. package/dist/src/core/agent-generator/templates/core/agents.d.ts +9 -0
  86. package/dist/src/core/agent-generator/templates/core/agents.js +1127 -0
  87. package/dist/src/core/agent-generator/templates/core/agents.js.map +1 -0
  88. package/dist/src/core/agent-generator/templates/core/architecture-rules.d.ts +6 -0
  89. package/dist/src/core/agent-generator/templates/core/architecture-rules.js +275 -0
  90. package/dist/src/core/agent-generator/templates/core/architecture-rules.js.map +1 -0
  91. package/dist/src/core/agent-generator/templates/core/general-rules.d.ts +7 -0
  92. package/dist/src/core/agent-generator/templates/core/general-rules.js +301 -0
  93. package/dist/src/core/agent-generator/templates/core/general-rules.js.map +1 -0
  94. package/dist/src/core/agent-generator/templates/core/hooks-generator.d.ts +20 -0
  95. package/dist/src/core/agent-generator/templates/core/hooks-generator.js +235 -0
  96. package/dist/src/core/agent-generator/templates/core/hooks-generator.js.map +1 -0
  97. package/dist/src/core/agent-generator/templates/core/index-md.d.ts +6 -0
  98. package/dist/src/core/agent-generator/templates/core/index-md.js +247 -0
  99. package/dist/src/core/agent-generator/templates/core/index-md.js.map +1 -0
  100. package/dist/src/core/agent-generator/templates/core/orchestrator.d.ts +7 -0
  101. package/dist/src/core/agent-generator/templates/core/orchestrator.js +423 -0
  102. package/dist/src/core/agent-generator/templates/core/orchestrator.js.map +1 -0
  103. package/dist/src/core/agent-generator/templates/core/preflight.d.ts +7 -0
  104. package/dist/src/core/agent-generator/templates/core/preflight.js +213 -0
  105. package/dist/src/core/agent-generator/templates/core/preflight.js.map +1 -0
  106. package/dist/src/core/agent-generator/templates/core/quality-gates.d.ts +10 -0
  107. package/dist/src/core/agent-generator/templates/core/quality-gates.js +255 -0
  108. package/dist/src/core/agent-generator/templates/core/quality-gates.js.map +1 -0
  109. package/dist/src/core/agent-generator/templates/core/security-rules.d.ts +6 -0
  110. package/dist/src/core/agent-generator/templates/core/security-rules.js +529 -0
  111. package/dist/src/core/agent-generator/templates/core/security-rules.js.map +1 -0
  112. package/dist/src/core/agent-generator/templates/core/skills-generator.d.ts +18 -0
  113. package/dist/src/core/agent-generator/templates/core/skills-generator.js +547 -0
  114. package/dist/src/core/agent-generator/templates/core/skills-generator.js.map +1 -0
  115. package/dist/src/core/agent-generator/templates/core/workflow-fix-bug.d.ts +6 -0
  116. package/dist/src/core/agent-generator/templates/core/workflow-fix-bug.js +238 -0
  117. package/dist/src/core/agent-generator/templates/core/workflow-fix-bug.js.map +1 -0
  118. package/dist/src/core/agent-generator/templates/core/workflow-new-feature.d.ts +7 -0
  119. package/dist/src/core/agent-generator/templates/core/workflow-new-feature.js +321 -0
  120. package/dist/src/core/agent-generator/templates/core/workflow-new-feature.js.map +1 -0
  121. package/dist/src/core/agent-generator/templates/core/workflow-review.d.ts +6 -0
  122. package/dist/src/core/agent-generator/templates/core/workflow-review.js +105 -0
  123. package/dist/src/core/agent-generator/templates/core/workflow-review.js.map +1 -0
  124. package/dist/src/core/agent-generator/templates/domain/index.d.ts +21 -0
  125. package/dist/src/core/agent-generator/templates/domain/index.js +1179 -0
  126. package/dist/src/core/agent-generator/templates/domain/index.js.map +1 -0
  127. package/dist/src/core/agent-generator/templates/helpers/base-helpers.d.ts +10 -0
  128. package/dist/src/core/agent-generator/templates/helpers/base-helpers.js +20 -0
  129. package/dist/src/core/agent-generator/templates/helpers/base-helpers.js.map +1 -0
  130. package/dist/src/core/agent-generator/templates/helpers/cross-ref-helpers.d.ts +2 -0
  131. package/dist/src/core/agent-generator/templates/helpers/cross-ref-helpers.js +77 -0
  132. package/dist/src/core/agent-generator/templates/helpers/cross-ref-helpers.js.map +1 -0
  133. package/dist/src/core/agent-generator/templates/helpers/security-helpers.d.ts +2 -0
  134. package/dist/src/core/agent-generator/templates/helpers/security-helpers.js +182 -0
  135. package/dist/src/core/agent-generator/templates/helpers/security-helpers.js.map +1 -0
  136. package/dist/src/core/agent-generator/templates/helpers/stack-helpers.d.ts +4 -0
  137. package/dist/src/core/agent-generator/templates/helpers/stack-helpers.js +69 -0
  138. package/dist/src/core/agent-generator/templates/helpers/stack-helpers.js.map +1 -0
  139. package/dist/src/core/agent-generator/templates/helpers/structure-helpers.d.ts +2 -0
  140. package/dist/src/core/agent-generator/templates/helpers/structure-helpers.js +275 -0
  141. package/dist/src/core/agent-generator/templates/helpers/structure-helpers.js.map +1 -0
  142. package/dist/src/core/agent-generator/templates/helpers/summary-helpers.d.ts +6 -0
  143. package/dist/src/core/agent-generator/templates/helpers/summary-helpers.js +56 -0
  144. package/dist/src/core/agent-generator/templates/helpers/summary-helpers.js.map +1 -0
  145. package/dist/src/core/agent-generator/templates/stack/index.d.ts +7 -0
  146. package/dist/src/core/agent-generator/templates/stack/index.js +695 -0
  147. package/dist/src/core/agent-generator/templates/stack/index.js.map +1 -0
  148. package/dist/src/core/agent-generator/templates/template-helpers.d.ts +11 -0
  149. package/dist/src/core/agent-generator/templates/template-helpers.js +12 -0
  150. package/dist/src/core/agent-generator/templates/template-helpers.js.map +1 -0
  151. package/dist/src/core/agent-generator/types/agent.d.ts +39 -0
  152. package/dist/src/core/agent-generator/types/agent.js +27 -0
  153. package/dist/src/core/agent-generator/types/agent.js.map +1 -0
  154. package/dist/src/core/agent-generator/types/domain.d.ts +58 -0
  155. package/dist/src/core/agent-generator/types/domain.js +2 -0
  156. package/dist/src/core/agent-generator/types/domain.js.map +1 -0
  157. package/dist/src/core/agent-generator/types/stack.d.ts +36 -0
  158. package/dist/src/core/agent-generator/types/stack.js +2 -0
  159. package/dist/src/core/agent-generator/types/stack.js.map +1 -0
  160. package/dist/src/core/agent-generator/types/template.d.ts +29 -0
  161. package/dist/src/core/agent-generator/types/template.js +2 -0
  162. package/dist/src/core/agent-generator/types/template.js.map +1 -0
  163. package/dist/src/core/agent-runtime/ai-provider.d.ts +33 -0
  164. package/dist/src/core/agent-runtime/ai-provider.js +146 -0
  165. package/dist/src/core/agent-runtime/ai-provider.js.map +1 -0
  166. package/dist/src/core/agent-runtime/executor.d.ts +13 -0
  167. package/dist/src/core/agent-runtime/executor.js +138 -0
  168. package/dist/src/core/agent-runtime/executor.js.map +1 -0
  169. package/dist/src/core/agent-runtime/human-gate.d.ts +16 -0
  170. package/dist/src/core/agent-runtime/human-gate.js +70 -0
  171. package/dist/src/core/agent-runtime/human-gate.js.map +1 -0
  172. package/dist/tests/agent-generator.test.d.ts +1 -0
  173. package/dist/tests/agent-generator.test.js +349 -0
  174. package/dist/tests/agent-generator.test.js.map +1 -0
  175. package/dist/tests/agent-runtime.test.d.ts +1 -0
  176. package/dist/tests/agent-runtime.test.js +107 -0
  177. package/dist/tests/agent-runtime.test.js.map +1 -0
  178. package/dist/tests/context-enricher.test.d.ts +1 -0
  179. package/dist/tests/context-enricher.test.js +875 -0
  180. package/dist/tests/context-enricher.test.js.map +1 -0
  181. package/dist/tests/framework-detector.test.d.ts +1 -0
  182. package/dist/tests/framework-detector.test.js +882 -0
  183. package/dist/tests/framework-detector.test.js.map +1 -0
  184. package/dist/tests/stack-detector.test.d.ts +1 -0
  185. package/dist/tests/stack-detector.test.js +183 -0
  186. package/dist/tests/stack-detector.test.js.map +1 -0
  187. package/dist/tests/template-generation.test.d.ts +1 -0
  188. package/dist/tests/template-generation.test.js +571 -0
  189. package/dist/tests/template-generation.test.js.map +1 -0
  190. package/dist/tests/template-helpers.test.d.ts +1 -0
  191. package/dist/tests/template-helpers.test.js +967 -0
  192. package/dist/tests/template-helpers.test.js.map +1 -0
  193. package/package.json +24 -0
  194. package/src/core/agent-generator/context-enricher.ts +67 -0
  195. package/src/core/agent-generator/detectors/base-detector.ts +18 -0
  196. package/src/core/agent-generator/detectors/dart-detector.ts +17 -0
  197. package/src/core/agent-generator/detectors/framework-registry.ts +82 -0
  198. package/src/core/agent-generator/detectors/go-detector.ts +26 -0
  199. package/src/core/agent-generator/detectors/java-detector.ts +46 -0
  200. package/src/core/agent-generator/detectors/node-detector.ts +28 -0
  201. package/src/core/agent-generator/detectors/php-detector.ts +28 -0
  202. package/src/core/agent-generator/detectors/python-detector.ts +125 -0
  203. package/src/core/agent-generator/detectors/ruby-detector.ts +24 -0
  204. package/src/core/agent-generator/detectors/rust-detector.ts +19 -0
  205. package/src/core/agent-generator/detectors/structure-detector.ts +38 -0
  206. package/src/core/agent-generator/detectors/toolchain-detector.ts +181 -0
  207. package/src/core/agent-generator/domain-inferrer.ts +630 -0
  208. package/src/core/agent-generator/engines/audit-engine.ts +98 -0
  209. package/src/core/agent-generator/engines/context-builder.ts +96 -0
  210. package/src/core/agent-generator/engines/generation-engine.ts +184 -0
  211. package/src/core/agent-generator/engines/generation-engine_deps.ts +21 -0
  212. package/src/core/agent-generator/engines/suggestion-engine.ts +202 -0
  213. package/src/core/agent-generator/engines/suggestion-engine_deps.ts +8 -0
  214. package/src/core/agent-generator/enrichers/analysis-helpers.ts +58 -0
  215. package/src/core/agent-generator/enrichers/description-generator.ts +91 -0
  216. package/src/core/agent-generator/enrichers/endpoint-extractor.ts +114 -0
  217. package/src/core/agent-generator/enrichers/layer-classifier.ts +156 -0
  218. package/src/core/agent-generator/enrichers/module-extractor.ts +203 -0
  219. package/src/core/agent-generator/framework-detector.ts +66 -0
  220. package/src/core/agent-generator/index.ts +55 -0
  221. package/src/core/agent-generator/stack-detector.ts +115 -0
  222. package/src/core/agent-generator/templates/core/agents.ts +1168 -0
  223. package/src/core/agent-generator/templates/core/architecture-rules.ts +288 -0
  224. package/src/core/agent-generator/templates/core/general-rules.ts +306 -0
  225. package/src/core/agent-generator/templates/core/hooks-generator.ts +244 -0
  226. package/src/core/agent-generator/templates/core/index-md.ts +261 -0
  227. package/src/core/agent-generator/templates/core/orchestrator.ts +462 -0
  228. package/src/core/agent-generator/templates/core/preflight.ts +216 -0
  229. package/src/core/agent-generator/templates/core/quality-gates.ts +257 -0
  230. package/src/core/agent-generator/templates/core/security-rules.ts +544 -0
  231. package/src/core/agent-generator/templates/core/skills-generator.ts +586 -0
  232. package/src/core/agent-generator/templates/core/workflow-fix-bug.ts +240 -0
  233. package/src/core/agent-generator/templates/core/workflow-new-feature.ts +323 -0
  234. package/src/core/agent-generator/templates/core/workflow-review.ts +107 -0
  235. package/src/core/agent-generator/templates/domain/index.ts +1204 -0
  236. package/src/core/agent-generator/templates/helpers/base-helpers.ts +33 -0
  237. package/src/core/agent-generator/templates/helpers/cross-ref-helpers.ts +79 -0
  238. package/src/core/agent-generator/templates/helpers/security-helpers.ts +198 -0
  239. package/src/core/agent-generator/templates/helpers/stack-helpers.ts +80 -0
  240. package/src/core/agent-generator/templates/helpers/structure-helpers.ts +293 -0
  241. package/src/core/agent-generator/templates/helpers/summary-helpers.ts +67 -0
  242. package/src/core/agent-generator/templates/stack/index.ts +705 -0
  243. package/src/core/agent-generator/templates/template-helpers.ts +12 -0
  244. package/src/core/agent-generator/types/agent.ts +65 -0
  245. package/src/core/agent-generator/types/domain.ts +63 -0
  246. package/src/core/agent-generator/types/stack.ts +38 -0
  247. package/src/core/agent-generator/types/template.ts +31 -0
  248. package/src/core/agent-runtime/ai-provider.ts +178 -0
  249. package/src/core/agent-runtime/executor.ts +148 -0
  250. package/src/core/agent-runtime/human-gate.ts +69 -0
  251. package/tests/agent-generator.test.ts +428 -0
  252. package/tests/agent-runtime.test.ts +125 -0
  253. package/tests/context-enricher.test.ts +972 -0
  254. package/tests/framework-detector.test.ts +1172 -0
  255. package/tests/stack-detector.test.ts +241 -0
  256. package/tests/template-generation.test.ts +709 -0
  257. package/tests/template-helpers.test.ts +1130 -0
  258. package/tsconfig.json +14 -0
@@ -0,0 +1,529 @@
1
+ /**
2
+ * Generates 02-security.md — OWASP rules, input validation, secrets management,
3
+ * auth/authz patterns, and security anti-patterns.
4
+ */
5
+ export function generateSecurityRules(ctx) {
6
+ // @ts-ignore - Audit cleanup unused variable
7
+ const { stack, projectName, report, config } = ctx;
8
+ const validationPatterns = buildValidationPatterns(ctx);
9
+ const authPatterns = buildAuthPatterns(ctx);
10
+ const secretsRules = buildSecretsRules(ctx);
11
+ return `---
12
+ antigravity:
13
+ trigger: 'always_on'
14
+ globs: ['**/*']
15
+ description: 'Regras de segurança para ${projectName}'
16
+ priority: CRITICAL
17
+ ---
18
+
19
+ # 🛡️ Regras de Segurança — ${projectName}
20
+
21
+ > **Segurança NÃO é feature — é requisito. Toda linha de código é superfície de ataque.**
22
+
23
+ ---
24
+
25
+ ## ⚠️ REGRA ZERO DE SEGURANÇA
26
+
27
+ \`\`\`
28
+ ╔══════════════════════════════════════════════════════════════╗
29
+ ║ NUNCA confiar em input do usuário. ║
30
+ ║ NUNCA expor detalhes internos em respostas de erro. ║
31
+ ║ NUNCA armazenar secrets em código. ║
32
+ ║ NUNCA desabilitar validação "temporariamente". ║
33
+ ║ NUNCA commitar com security warnings ignorados. ║
34
+ ╚══════════════════════════════════════════════════════════════╝
35
+ \`\`\`
36
+
37
+ ---
38
+
39
+ ## 🔐 OWASP Top 10 — Checklist Obrigatório
40
+
41
+ ### A01: Broken Access Control
42
+ \`\`\`
43
+ ❌ PROIBIDO: Endpoint sem verificação de autorização
44
+ ❌ PROIBIDO: IDOR (Insecure Direct Object Reference) — acessar recurso de outro usuário via ID
45
+ ✅ CORRETO: RBAC (Role-Based Access Control) em TODOS os endpoints
46
+ ✅ CORRETO: Verificar ownership do recurso antes de retornar
47
+
48
+ Padrão:
49
+ 1. Autenticar (quem é?)
50
+ 2. Autorizar (pode fazer isso?)
51
+ 3. Verificar ownership (esse recurso é dele?)
52
+ 4. Executar ação
53
+ \`\`\`
54
+
55
+ ### A02: Cryptographic Failures
56
+ \`\`\`
57
+ ❌ PROIBIDO: Senhas em plain text
58
+ ❌ PROIBIDO: HTTP para dados sensíveis
59
+ ❌ PROIBIDO: Algoritmos fracos (MD5, SHA1 para passwords)
60
+ ✅ CORRETO: bcrypt/argon2 para passwords (cost ≥ 12)
61
+ ✅ CORRETO: HTTPS everywhere (HSTS)
62
+ ✅ CORRETO: AES-256-GCM para dados em repouso
63
+ ✅ CORRETO: TLS 1.2+ para dados em trânsito
64
+ \`\`\`
65
+
66
+ ### A03: Injection
67
+ \`\`\`
68
+ ❌ PROIBIDO: Concatenação de strings em queries SQL
69
+ ❌ PROIBIDO: Template strings com input de usuário
70
+ ❌ PROIBIDO: eval(), exec(), Function() com input externo
71
+ ✅ CORRETO: Queries parametrizadas SEMPRE
72
+ ✅ CORRETO: ORM com bindings
73
+ ✅ CORRETO: Input sanitization na borda (controller/pipe)
74
+
75
+ Exemplos:
76
+ ❌ \`SELECT * FROM users WHERE id = '\${userId}'\`
77
+ ✅ \`SELECT * FROM users WHERE id = $1\` + [userId]
78
+ ❌ \`db.query(\`...WHERE name = '\${name}'\`)\`
79
+ ✅ \`db.query('...WHERE name = ?', [name])\`
80
+ \`\`\`
81
+
82
+ ### A04: Insecure Design
83
+ \`\`\`
84
+ ❌ PROIBIDO: Endpoints sem rate limiting
85
+ ❌ PROIBIDO: Reset de senha via link sem expiração
86
+ ❌ PROIBIDO: Lógica de negócio sem threat model
87
+ ✅ CORRETO: STRIDE analysis antes de implementar features sensíveis
88
+ ✅ CORRETO: Rate limiting em auth endpoints (≤ 5 tentativas/minuto)
89
+ ✅ CORRETO: Tokens com expiração curta (15min access, 7d refresh)
90
+ \`\`\`
91
+
92
+ ### A05: Security Misconfiguration
93
+ \`\`\`
94
+ ❌ PROIBIDO: CORS com origin: '*' em produção
95
+ ❌ PROIBIDO: Debug mode em produção
96
+ ❌ PROIBIDO: Default credentials
97
+ ❌ PROIBIDO: Stack traces em respostas de erro
98
+ ✅ CORRETO: CORS restritivo (origins explícitos)
99
+ ✅ CORRETO: Headers de segurança (X-Frame-Options, CSP, X-Content-Type-Options)
100
+ ✅ CORRETO: Error handling que retorna apenas mensagem genérica ao usuário
101
+
102
+ Headers obrigatórios:
103
+ X-Content-Type-Options: nosniff
104
+ X-Frame-Options: DENY
105
+ X-XSS-Protection: 0 (CSP substitui)
106
+ Content-Security-Policy: default-src 'self'
107
+ Strict-Transport-Security: max-age=31536000; includeSubDomains
108
+ Referrer-Policy: strict-origin-when-cross-origin
109
+ \`\`\`
110
+
111
+ ### A06: Vulnerable and Outdated Components
112
+ \`\`\`
113
+ ❌ PROIBIDO: Dependências com vulnerabilidades conhecidas
114
+ ❌ PROIBIDO: Ignorar security advisories
115
+ ✅ CORRETO: Audit regular (npm audit / pip audit / safety check)
116
+ ✅ CORRETO: Renovate/Dependabot configurado
117
+ ✅ CORRETO: Lock files commitados (package-lock.json, poetry.lock)
118
+
119
+ Comandos de verificação:
120
+ ${stack.primary === 'Python'
121
+ ? ' $ pip audit\n $ safety check\n $ bandit -r src/'
122
+ : stack.primary === 'Dart'
123
+ ? ' $ flutter pub outdated\n $ dart analyze --fatal-warnings'
124
+ : ' $ npm audit\n $ npx audit-ci --critical\n $ npx snyk test'}
125
+ \`\`\`
126
+
127
+ ### A07: Identification and Authentication Failures
128
+ \`\`\`
129
+ ❌ PROIBIDO: Sessions sem expiração
130
+ ❌ PROIBIDO: Tokens previsíveis
131
+ ❌ PROIBIDO: Brute force sem proteção
132
+ ✅ CORRETO: JWT com algoritmo explícito (RS256 ou ES256)
133
+ ✅ CORRETO: Refresh token rotation
134
+ ✅ CORRETO: Account lockout após N tentativas
135
+ ✅ CORRETO: MFA para operações sensíveis
136
+
137
+ JWT Checklist:
138
+ □ Algoritmo explícito (nunca 'none')
139
+ □ Audience (aud) verificado
140
+ □ Issuer (iss) verificado
141
+ □ Expiração (exp) curta
142
+ □ Secret key ≥ 256 bits
143
+ □ Stored em httpOnly cookie (não localStorage)
144
+ \`\`\`
145
+
146
+ ### A08: Software and Data Integrity Failures
147
+ \`\`\`
148
+ ❌ PROIBIDO: CI/CD sem verificação de integridade
149
+ ❌ PROIBIDO: Deserialização de dados não confiáveis
150
+ ✅ CORRETO: Subresource Integrity (SRI) para CDN scripts
151
+ ✅ CORRETO: Signed commits
152
+ ✅ CORRETO: Pipeline protegido (branch protection rules)
153
+ \`\`\`
154
+
155
+ ### A09: Security Logging and Monitoring Failures
156
+ \`\`\`
157
+ ❌ PROIBIDO: Ações sensíveis sem log
158
+ ❌ PROIBIDO: Logs com dados sensíveis (passwords, tokens, PII)
159
+ ✅ CORRETO: Audit log para: login, logout, password change, permission change
160
+ ✅ CORRETO: Log level adequado (WARN/ERROR para falhas de auth)
161
+ ✅ CORRETO: Alertas para atividades anômalas
162
+
163
+ O que logar:
164
+ ✅ Quem (user ID)
165
+ ✅ O quê (ação)
166
+ ✅ Quando (timestamp UTC)
167
+ ✅ Onde (IP, user-agent)
168
+ ✅ Resultado (sucesso/falha)
169
+
170
+ O que NUNCA logar:
171
+ ❌ Passwords (nem em debug)
172
+ ❌ Tokens de autenticação
173
+ ❌ Dados de cartão de crédito
174
+ ❌ PII sem necessidade
175
+ \`\`\`
176
+
177
+ ### A10: Server-Side Request Forgery (SSRF)
178
+ \`\`\`
179
+ ❌ PROIBIDO: Fetch de URL fornecida pelo usuário sem validação
180
+ ❌ PROIBIDO: Acesso a metadata endpoints (169.254.169.254)
181
+ ✅ CORRETO: Allowlist de domínios para requests externos
182
+ ✅ CORRETO: Validação de schema (https only)
183
+ ✅ CORRETO: Block de IPs internos/privados
184
+ \`\`\`
185
+
186
+ ---
187
+
188
+ ## 🔑 Validação de Input
189
+
190
+ ${validationPatterns}
191
+
192
+ ---
193
+
194
+ ## 🔒 Autenticação & Autorização
195
+
196
+ ${authPatterns}
197
+
198
+ ---
199
+
200
+ ## 🗝️ Gestão de Secrets
201
+
202
+ ${secretsRules}
203
+
204
+ ---
205
+
206
+ ## 🚨 Security Anti-Patterns Detectados
207
+
208
+ ${report.antiPatterns.filter(a => a.name.toLowerCase().includes('security') ||
209
+ a.name.toLowerCase().includes('secret') ||
210
+ a.name.toLowerCase().includes('hardcoded') ||
211
+ a.name.toLowerCase().includes('injection') ||
212
+ a.name.toLowerCase().includes('validation')).length > 0
213
+ ? report.antiPatterns
214
+ .filter(a => a.name.toLowerCase().includes('security') ||
215
+ a.name.toLowerCase().includes('secret') ||
216
+ a.name.toLowerCase().includes('hardcoded') ||
217
+ a.name.toLowerCase().includes('injection') ||
218
+ a.name.toLowerCase().includes('validation'))
219
+ .map(a => `- **${a.name}** (${a.severity}) em \`${a.location}\` — ${a.suggestion}`)
220
+ .join('\\n')
221
+ : '✅ Nenhum anti-pattern de segurança detectado no scan automático.\\n> ⚠️ Isso NÃO significa que o projeto está seguro. Análise manual é necessária.'}
222
+
223
+ ---
224
+
225
+ ## ✅ Checklist de Segurança por Camada
226
+
227
+ ### Controller / API Layer
228
+ \`\`\`
229
+ □ Input validado com DTO/Schema
230
+ □ Rate limiting configurado
231
+ □ Auth guard aplicado
232
+ □ CORS configurado corretamente
233
+ □ Response não expõe dados internos
234
+ □ Error handling sem stack trace
235
+ \`\`\`
236
+
237
+ ### Service / Business Layer
238
+ \`\`\`
239
+ □ Autorização verificada (ownership)
240
+ □ Dados sensíveis criptografados
241
+ □ Lógica de negócio com audit log
242
+ □ Sem eval/exec com input externo
243
+ □ Timeout em operações externas
244
+ \`\`\`
245
+
246
+ ### Data / Repository Layer
247
+ \`\`\`
248
+ □ Queries parametrizadas (NUNCA concatenação)
249
+ □ Connection pooling com limits
250
+ □ Migrations reversíveis
251
+ □ Dados sensíveis com encryption at rest
252
+ □ Backup policy definida
253
+ \`\`\`
254
+
255
+ ### Frontend / Mobile Layer
256
+ \`\`\`
257
+ □ XSS prevenido (sanitization)
258
+ □ CSRF token em formulários
259
+ □ Tokens em httpOnly cookies (não localStorage)
260
+ □ Content Security Policy
261
+ □ Sem secrets no bundle (NUNCA)
262
+ □ Validação client-side + server-side
263
+ \`\`\`
264
+
265
+ ---
266
+
267
+ ## 🛡️ Threat Model (STRIDE)
268
+
269
+ Antes de implementar features sensíveis, usar template STRIDE:
270
+
271
+ \`\`\`
272
+ | Ameaça | Descrição | Mitigação |
273
+ |---------------------|------------------------------------|-----------|
274
+ | Spoofing | Alguém se passando por outro | Auth forte, MFA |
275
+ | Tampering | Dados alterados em trânsito | TLS, HMAC, checksums |
276
+ | Repudiation | Negar ação realizada | Audit logs |
277
+ | Info Disclosure | Vazamento de dados | Encryption, access control |
278
+ | Denial of Service | Indisponibilidade | Rate limiting, CDN, autoscaling |
279
+ | Elevation of Priv. | Escalar permissões | Least privilege, RBAC |
280
+ \`\`\`
281
+
282
+ > Template completo disponível em: \`templates/THREAT-MODEL.md\`
283
+
284
+ ---
285
+
286
+ ## 📊 Verificação Automatizada
287
+
288
+ \`\`\`bash
289
+ # Scan de vulnerabilidades em dependências
290
+ ${stack.primary === 'Python'
291
+ ? 'pip audit\nsafety check\nbandit -r src/'
292
+ : stack.primary === 'Dart'
293
+ ? 'dart analyze --fatal-warnings'
294
+ : 'npm audit\nnpx audit-ci --critical'}
295
+
296
+ # Scan de secrets no código
297
+ # (configure pre-commit hook)
298
+ git secrets --scan
299
+ gitleaks detect
300
+
301
+ # Score de arquitetura (inclui métricas de segurança)
302
+ architect score ./src
303
+ architect anti-patterns ./src
304
+ \`\`\`
305
+
306
+ ---
307
+
308
+ **Gerado por Architect v8.1 · Score: ${report.score.overall}/100**
309
+ `;
310
+ }
311
+ function buildValidationPatterns(ctx) {
312
+ const { stack } = ctx;
313
+ if (stack.frameworks.includes('NestJS')) {
314
+ return `### NestJS — class-validator + class-transformer
315
+
316
+ \`\`\`typescript
317
+ // ✅ CORRETO: DTO com validação
318
+ import { IsString, IsEmail, MinLength, MaxLength, IsOptional } from 'class-validator';
319
+
320
+ export class CreateUserDto {
321
+ @IsString()
322
+ @MinLength(2)
323
+ @MaxLength(100)
324
+ name: string;
325
+
326
+ @IsEmail()
327
+ email: string;
328
+
329
+ @IsString()
330
+ @MinLength(8)
331
+ @MaxLength(128)
332
+ password: string;
333
+ }
334
+
335
+ // Controller com ValidationPipe
336
+ @Post()
337
+ @UsePipes(new ValidationPipe({ whitelist: true, forbidNonWhitelisted: true }))
338
+ async create(@Body() dto: CreateUserDto) { ... }
339
+ \`\`\`
340
+
341
+ **Regras:**
342
+ - \`whitelist: true\` — remove campos não declarados no DTO
343
+ - \`forbidNonWhitelisted: true\` — retorna 400 se campo extra enviado
344
+ - \`transform: true\` — converte tipos automaticamente
345
+ - NUNCA usar \`@Body()\` sem DTO validado`;
346
+ }
347
+ if (stack.primary === 'Python') {
348
+ return `### Python — Pydantic / marshmallow
349
+
350
+ \`\`\`python
351
+ # ✅ CORRETO: Schema com validação
352
+ from pydantic import BaseModel, EmailStr, Field, validator
353
+
354
+ class CreateUserSchema(BaseModel):
355
+ name: str = Field(min_length=2, max_length=100)
356
+ email: EmailStr
357
+ password: str = Field(min_length=8, max_length=128)
358
+
359
+ @validator('name')
360
+ def name_must_be_alphanumeric(cls, v):
361
+ if not v.replace(' ', '').isalnum():
362
+ raise ValueError('Name must be alphanumeric')
363
+ return v.strip()
364
+ \`\`\`
365
+
366
+ **Regras:**
367
+ - Pydantic \`BaseModel\` ou marshmallow \`Schema\` para TODOS os inputs
368
+ - \`Field()\` com min/max constraints
369
+ - Custom validators para regras de negócio
370
+ - NUNCA usar \`request.json\` diretamente sem validação`;
371
+ }
372
+ // Generic
373
+ return `### Validação de Input — Padrão Geral
374
+
375
+ \`\`\`
376
+ Regras de validação:
377
+ 1. TODOS os inputs passam por schema validation
378
+ 2. Tipos verificados (string, number, email, etc.)
379
+ 3. Limites definidos (min/max length, ranges)
380
+ 4. Whitelist de campos aceitos
381
+ 5. Sanitização de caracteres especiais
382
+ 6. Encoding correto (UTF-8)
383
+
384
+ Pipeline:
385
+ Request → Schema Validation → Sanitization → Business Logic
386
+
387
+ NUNCA:
388
+ ❌ request.body direto na lógica
389
+ ❌ Confiar em validação client-side apenas
390
+ ❌ Aceitar campos não declarados
391
+ \`\`\``;
392
+ }
393
+ function buildAuthPatterns(ctx) {
394
+ const { stack } = ctx;
395
+ if (stack.frameworks.includes('NestJS')) {
396
+ return `### NestJS Auth Pattern
397
+
398
+ \`\`\`
399
+ Implementação padrão:
400
+ 1. AuthGuard global para rotas protegidas
401
+ 2. @Public() decorator para rotas abertas
402
+ 3. RolesGuard para autorização
403
+ 4. CurrentUser decorator para extrair user do token
404
+
405
+ Hierarquia:
406
+ @Public() → Sem autenticação
407
+ @UseGuards(AuthGuard) → Autenticado
408
+ @Roles('admin') → Autenticado + Role específica
409
+ @OwnerGuard() → Autenticado + Dono do recurso
410
+
411
+ Fluxo de token:
412
+ Login → Access Token (15min) + Refresh Token (7d, httpOnly cookie)
413
+ Request → AuthGuard verifica Access Token
414
+ Expired → Refresh endpoint gera novo par
415
+ Logout → Invalidar Refresh Token no banco
416
+ \`\`\``;
417
+ }
418
+ // Generic
419
+ return `### Padrão de Autenticação/Autorização
420
+
421
+ \`\`\`
422
+ Fluxo obrigatório:
423
+ 1. Autenticar: Verificar identidade (JWT/session)
424
+ 2. Autorizar: Verificar permissões (roles/policies)
425
+ 3. Ownership: Verificar se recurso pertence ao usuário
426
+ 4. Executar: Somente após passos 1-3
427
+
428
+ Token management:
429
+ - Access Token: curta duração (15min)
430
+ - Refresh Token: longa duração (7d), httpOnly, secure
431
+ - Rotation: novo refresh token a cada uso
432
+ - Blacklist: invalidar tokens no logout
433
+
434
+ RBAC mínimo:
435
+ - admin: tudo
436
+ - user: próprios recursos
437
+ - public: endpoints marcados explicitamente
438
+ \`\`\``;
439
+ }
440
+ function buildSecretsRules(ctx) {
441
+ const { stack } = ctx;
442
+ return `### Regras de Secrets
443
+
444
+ \`\`\`
445
+ ╔══════════════════════════════════════════════════════════════╗
446
+ ║ SECRETS NUNCA NO CÓDIGO. NUNCA. SEM EXCEÇÃO. ║
447
+ ╚══════════════════════════════════════════════════════════════╝
448
+
449
+ ❌ PROIBIDO:
450
+ - API keys hardcoded
451
+ - Passwords em arquivos de config
452
+ - Tokens em constantes
453
+ - Connection strings com credenciais no código
454
+ - .env commitado no repositório
455
+
456
+ ✅ CORRETO:
457
+ - Environment variables
458
+ - Secret manager (AWS SSM, Vault, GCP Secret Manager)
459
+ - .env.example com placeholders (sem valores reais)
460
+ - .gitignore com: .env, .env.local, .env.*.local
461
+ \`\`\`
462
+
463
+ ### .gitignore obrigatório
464
+
465
+ \`\`\`
466
+ # Secrets — NUNCA commitar
467
+ .env
468
+ .env.local
469
+ .env.*.local
470
+ *.pem
471
+ *.key
472
+ *.p12
473
+ credentials.json
474
+ service-account.json
475
+ \`\`\`
476
+
477
+ ### Detecção de secrets no CI
478
+
479
+ \`\`\`bash
480
+ # Pre-commit hook (recomendado)
481
+ # .pre-commit-config.yaml
482
+ repos:
483
+ - repo: https://github.com/gitleaks/gitleaks
484
+ rev: v8.18.0
485
+ hooks:
486
+ - id: gitleaks
487
+
488
+ # Ou manualmente:
489
+ gitleaks detect --source . --verbose
490
+ git secrets --scan
491
+ \`\`\`
492
+
493
+ ### Padrão de configuração
494
+
495
+ \`\`\`${stack.primary === 'Python' ? 'python' : 'typescript'}
496
+ ${stack.primary === 'Python'
497
+ ? `# ✅ CORRETO
498
+ import os
499
+ from pydantic_settings import BaseSettings
500
+
501
+ class Settings(BaseSettings):
502
+ database_url: str
503
+ jwt_secret: str
504
+ redis_url: str = "redis://localhost:6379"
505
+
506
+ class Config:
507
+ env_file = ".env"
508
+
509
+ settings = Settings() # Carrega de environment variables`
510
+ : `// ✅ CORRETO
511
+ const config = {
512
+ database: {
513
+ url: process.env.DATABASE_URL, // De environment variable
514
+ ssl: process.env.DB_SSL === 'true',
515
+ },
516
+ jwt: {
517
+ secret: process.env.JWT_SECRET, // NUNCA hardcoded
518
+ expiresIn: '15m',
519
+ },
520
+ };
521
+
522
+ // Validação no startup — falha rápido se falta secret
523
+ const required = ['DATABASE_URL', 'JWT_SECRET'];
524
+ for (const key of required) {
525
+ if (!process.env[key]) throw new Error(\\\`Missing env: \\\${key}\\\`);
526
+ }`}
527
+ \`\`\``;
528
+ }
529
+ //# sourceMappingURL=security-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-rules.js","sourceRoot":"","sources":["../../../../../../src/core/agent-generator/templates/core/security-rules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { EnrichedTemplateContext, TemplateContext } from '@girardelli/architect-agents/src/core/agent-generator/types/template.js';
2
+ /**
3
+ * Gera conteúdo do skill principal do projeto
4
+ */
5
+ export declare function generateProjectSkills(ctx: TemplateContext | EnrichedTemplateContext): string | null;
6
+ /**
7
+ * Generates ARCHITECT-INTEGRATION.md skill with real project data
8
+ */
9
+ export declare function generateArchitectIntegrationSkill(ctx: TemplateContext | EnrichedTemplateContext): string;
10
+ /**
11
+ * Generates CI-PIPELINE.md skill with real toolchain data
12
+ */
13
+ export declare function generateCIPipelineSkill(ctx: TemplateContext | EnrichedTemplateContext): string;
14
+ /**
15
+ * Generates MONOREPO-GUIDE.md skill with real workspace data.
16
+ * Only generated when projectStructure === 'monorepo'.
17
+ */
18
+ export declare function generateMonorepoGuideSkill(ctx: TemplateContext | EnrichedTemplateContext): string | null;