jarvis-ai-framework 1.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 (240) hide show
  1. package/AGENTS.md +416 -0
  2. package/LICENSE +21 -0
  3. package/README.md +190 -0
  4. package/agents/AGENTS.md +234 -0
  5. package/agents/README.md +309 -0
  6. package/agents/engineering/data/eng.data-engineer.agent.md +309 -0
  7. package/agents/engineering/eng.agent.md +303 -0
  8. package/agents/engineering/eng.bug-hunter.md +386 -0
  9. package/agents/engineering/eng.cybersecurity.agent.md +503 -0
  10. package/agents/engineering/eng.dev-code-reviewer.md +148 -0
  11. package/agents/engineering/eng.docs-writer.md +152 -0
  12. package/agents/engineering/eng.frontend.agent.md +117 -0
  13. package/agents/engineering/eng.rpa.agent.md +215 -0
  14. package/agents/engineering/eng.tech-analyst.agent.md +102 -0
  15. package/agents/engineering/eng.ux-designer.agent.md +193 -0
  16. package/agents/engineering/qa/eng.qa.cypress-specialist.md +109 -0
  17. package/agents/engineering/qa/eng.qa.quality-champion-task-agent.md +85 -0
  18. package/agents/engineering/qa/eng.qa.quality-strategist.md +111 -0
  19. package/agents/engineering/qa/eng.qa.test-architect.md +400 -0
  20. package/agents/engineering/qa/eng.qa.test-planner.md +477 -0
  21. package/agents/engineering/qa/eng.qa.testing-engineer.md +339 -0
  22. package/agents/product/prod.pm-checker.md +52 -0
  23. package/bin/commands/docs-publish.js +184 -0
  24. package/bin/commands/docs-sync.js +139 -0
  25. package/bin/commands/info.js +87 -0
  26. package/bin/commands/init.js +237 -0
  27. package/bin/commands/install-rtk.js +90 -0
  28. package/bin/commands/list.js +48 -0
  29. package/bin/commands/qa-signoff.js +112 -0
  30. package/bin/commands/whoami.js +43 -0
  31. package/bin/jarvis.js +159 -0
  32. package/bin/lib/auth/session.js +56 -0
  33. package/bin/lib/config/constants.js +123 -0
  34. package/bin/lib/config/ide-config.js +233 -0
  35. package/bin/lib/core/scanner.js +124 -0
  36. package/bin/lib/core/sync-engine.js +551 -0
  37. package/bin/lib/docs/fetch-file.sh +41 -0
  38. package/bin/lib/docs/publish-file.sh +284 -0
  39. package/bin/lib/docs/validate-frontmatter.js +157 -0
  40. package/bin/lib/env-loader.js +198 -0
  41. package/bin/lib/tasks/comment.js +131 -0
  42. package/bin/lib/utils/git-parser.js +145 -0
  43. package/bin/lib/utils/logger.js +104 -0
  44. package/bin/lib/utils/npmrc-parser.js +106 -0
  45. package/bin/lib/utils/paths.js +55 -0
  46. package/bin/lib/utils/ui.js +59 -0
  47. package/bin/lib/vcs/api.js +312 -0
  48. package/bin/lib/vcs/create-issue.js +43 -0
  49. package/bin/lib/vcs/create-merge.js +43 -0
  50. package/bin/lib/vcs/fetch-raw.js +30 -0
  51. package/bin/postinstall.js +41 -0
  52. package/members.md +25 -0
  53. package/package.json +55 -0
  54. package/rules/AGENTS.md +205 -0
  55. package/rules/engineering/data/data-rules.md +200 -0
  56. package/rules/engineering/eng-rules.md +243 -0
  57. package/rules/engineering/eng-security-rules.md +186 -0
  58. package/rules/engineering/eng.breakdown-subtasks-rules.md +585 -0
  59. package/rules/engineering/eng.bump-rules.md +27 -0
  60. package/rules/engineering/eng.docs-scraping-rules.md +64 -0
  61. package/rules/engineering/eng.downstream-flow-rules.md +297 -0
  62. package/rules/engineering/eng.integrations-rules.md +73 -0
  63. package/rules/engineering/eng.plan-rules.md +333 -0
  64. package/rules/engineering/eng.pr-rules.md +359 -0
  65. package/rules/engineering/eng.pre-pr-rules.md +103 -0
  66. package/rules/engineering/eng.start-rules.md +246 -0
  67. package/rules/engineering/eng.tech-spec-rules.md +968 -0
  68. package/rules/engineering/eng.work-rules.md +312 -0
  69. package/rules/engineering/frontend/eng.frontend-rules.md +147 -0
  70. package/rules/engineering/qa/eng.qa.cypress-standards-rules.md +259 -0
  71. package/rules/engineering/qa/eng.qa.exploratory-session-rules.md +137 -0
  72. package/rules/engineering/qa/eng.qa.quality-gate-scoring-rules.md +181 -0
  73. package/rules/engineering/qa/eng.qa.tech-spec-validation-criteria-rules.md +120 -0
  74. package/rules/engineering/rpa/eng.rpa-rules.md +230 -0
  75. package/rules/product/README.md +24 -0
  76. package/rules/product/prod-rules.md +151 -0
  77. package/rules/rtk-rules.md +68 -0
  78. package/skills/AGENTS.md +290 -0
  79. package/skills/SKILLS-ROADMAP.md +333 -0
  80. package/skills/churn-audit/SKILL.md +385 -0
  81. package/skills/context-detect/SKILL.md +399 -0
  82. package/skills/context-detect/assets/context-profile-template.md +127 -0
  83. package/skills/docs-central/README.md +310 -0
  84. package/skills/docs-central/SKILL.md +423 -0
  85. package/skills/docs-index/SKILL.md +377 -0
  86. package/skills/eng-ai-engineer/SKILL.md +296 -0
  87. package/skills/eng-arch-c4/SKILL.md +358 -0
  88. package/skills/eng-arch-c4/assets/example-code.md +189 -0
  89. package/skills/eng-arch-c4/assets/example-component.md +105 -0
  90. package/skills/eng-arch-c4/assets/example-container.md +104 -0
  91. package/skills/eng-arch-c4/assets/example-context.md +81 -0
  92. package/skills/eng-backend/SKILL.md +776 -0
  93. package/skills/eng-browser-extension-builder/SKILL.md +385 -0
  94. package/skills/eng-cybersecurity/SKILL.md +645 -0
  95. package/skills/eng-data-bi/SKILL.md +199 -0
  96. package/skills/eng-data-debug/SKILL.md +307 -0
  97. package/skills/eng-data-engineer/SKILL.md +256 -0
  98. package/skills/eng-data-onboard/SKILL.md +310 -0
  99. package/skills/eng-data-orchestrator/SKILL.md +426 -0
  100. package/skills/eng-design-system/SKILL.md +619 -0
  101. package/skills/eng-docs-write/SKILL.md +312 -0
  102. package/skills/eng-frontend/SKILL.md +913 -0
  103. package/skills/eng-jira-comment/SKILL.md +17 -0
  104. package/skills/eng-microfrontend/SKILL.md +602 -0
  105. package/skills/eng-ms-trace/SKILL.md +469 -0
  106. package/skills/eng-nestjs/SKILL.md +791 -0
  107. package/skills/eng-performance-engineer/SKILL.md +312 -0
  108. package/skills/eng-pr/SKILL.md +339 -0
  109. package/skills/eng-qa-a11y-audit/SKILL.md +269 -0
  110. package/skills/eng-qa-bug-report/SKILL.md +1088 -0
  111. package/skills/eng-qa-bug-report/TASK_MANAGERS.md +138 -0
  112. package/skills/eng-qa-cypress-e2e/SKILL.md +177 -0
  113. package/skills/eng-qa-dev-guide/SKILL.md +164 -0
  114. package/skills/eng-qa-e2e/SKILL.md +400 -0
  115. package/skills/eng-qa-e2e-spec-writer/SKILL.md +322 -0
  116. package/skills/eng-qa-exploratory/SKILL.md +188 -0
  117. package/skills/eng-qa-gate/SKILL.md +370 -0
  118. package/skills/eng-qa-gate/assets/checklist-validacao.md +291 -0
  119. package/skills/eng-qa-graphql-contract/SKILL.md +256 -0
  120. package/skills/eng-qa-quality-report/SKILL.md +412 -0
  121. package/skills/eng-qa-test-plan/SKILL.md +466 -0
  122. package/skills/eng-qa-test-plan/assets/test-coverage-template.md +92 -0
  123. package/skills/eng-qa-test-plan/assets/test-patterns.md +178 -0
  124. package/skills/eng-qa-testsprite/SKILL.md +325 -0
  125. package/skills/eng-qa-testsprite/references/testsprite-mcp.md +224 -0
  126. package/skills/eng-qa-unit-test/SKILL.md +471 -0
  127. package/skills/eng-rabbitmq/SKILL.md +661 -0
  128. package/skills/eng-scraper/SKILL.md +683 -0
  129. package/skills/eng-scraper-robot-builder/SKILL.md +370 -0
  130. package/skills/eng-security-patch/SKILL.md +378 -0
  131. package/skills/eng-security-triage/SKILL.md +266 -0
  132. package/skills/eng-task-comment/SKILL.md +60 -0
  133. package/skills/eng-tech-analyst/SKILL.md +529 -0
  134. package/skills/eng-threat-model/SKILL.md +161 -0
  135. package/skills/init-jarvis/SKILL.md +1304 -0
  136. package/skills/init-jarvis/assets/mcp-configs.md +389 -0
  137. package/skills/init-jarvis/assets/onboarding-checklist.md +104 -0
  138. package/skills/init-jarvis/assets/setup-guide.md +360 -0
  139. package/skills/lovable-prompt-generator/SKILL.md +304 -0
  140. package/skills/prod-roadmap-report/README.md +303 -0
  141. package/skills/prod-roadmap-report/SKILL.md +198 -0
  142. package/skills/prod-roadmap-report/commands/status.compiled.single.team.md +23 -0
  143. package/skills/prod-roadmap-report/commands/status.list.projects.md +17 -0
  144. package/skills/prod-roadmap-report/commands/status.memory.md +192 -0
  145. package/skills/prod-roadmap-report/commands/status.roadmap.preview.md +94 -0
  146. package/skills/prod-roadmap-report/references/detailed-guide.md +236 -0
  147. package/skills/prod-roadmap-report/rules/detailed-guide.md +237 -0
  148. package/skills/prod-roadmap-report/rules/status-report-rules.md +44 -0
  149. package/skills/prod-roadmap-report/templates/template-multiple-teams-compiled-status.md +53 -0
  150. package/skills/prod-roadmap-report/templates/template-projects-list.md +23 -0
  151. package/skills/prod-roadmap-report/templates/template-single-team-compiled-status.md +60 -0
  152. package/skills/prod-roadmap-report/templates/template-single-team-status.md +49 -0
  153. package/skills/prod-specs/SKILL.md +108 -0
  154. package/skills/prod-specs/references/prod.spec.clarify.md +176 -0
  155. package/skills/prod-specs/references/prod.spec.epic.md +107 -0
  156. package/skills/prod-specs/references/prod.spec.frd.md +135 -0
  157. package/skills/prod-specs/references/prod.spec.issue.md +145 -0
  158. package/skills/prod-specs/references/prod.spec.prd.md +118 -0
  159. package/skills/prod-specs/rules/prod-spec-rules.md +186 -0
  160. package/skills/prod-specs/templates/prod-breakdown-template.md +136 -0
  161. package/skills/prod-specs/templates/prod-epic-template.md +76 -0
  162. package/skills/prod-specs/templates/prod-frd-template.md +172 -0
  163. package/skills/prod-specs/templates/prod-issue-template.md +68 -0
  164. package/skills/prod-specs/templates/prod-prd-full-template.md +159 -0
  165. package/skills/prod-specs/templates/prod-prd-template.md +173 -0
  166. package/skills/prod-specs-update/SKILL.md +272 -0
  167. package/skills/report-issue/SKILL.md +156 -0
  168. package/taxonomy.md +270 -0
  169. package/templates/AGENTS.md +189 -0
  170. package/templates/CDD aplicado a Prompts.md +182 -0
  171. package/templates/ENV-template.md +187 -0
  172. package/templates/engineering/AGENTS-template.md +71 -0
  173. package/templates/engineering/ARD-template.md +193 -0
  174. package/templates/engineering/CONTACTS-template.md +135 -0
  175. package/templates/engineering/PR-template.md +40 -0
  176. package/templates/engineering/RFC-Playbook.md +325 -0
  177. package/templates/engineering/RFC-template.md +199 -0
  178. package/templates/engineering/architecture-template.md +277 -0
  179. package/templates/engineering/breakdown-subtasks-template.md +582 -0
  180. package/templates/engineering/c4-model-template.md +516 -0
  181. package/templates/engineering/data-contract-template.md +135 -0
  182. package/templates/engineering/data-pipeline-template.md +163 -0
  183. package/templates/engineering/plan-template.md +255 -0
  184. package/templates/engineering/qa/eng.qa.quality-gate-examples-template.md +311 -0
  185. package/templates/engineering/qa/eng.qa.quality-gate-report-template.md +249 -0
  186. package/templates/engineering/qa/qa.cypress-test-template.md +172 -0
  187. package/templates/engineering/qa/qa.exploratory-session-template.md +148 -0
  188. package/templates/engineering/qa/qa.quality-report-template.md +130 -0
  189. package/templates/engineering/qa/qa.release-signoff-template.md +54 -0
  190. package/templates/engineering/qa/qa.sprint-plan-template.md +49 -0
  191. package/templates/engineering/swagger-template.md +145 -0
  192. package/templates/engineering/tech-spec-template.md +497 -0
  193. package/templates/engineering/work-progress-template.md +155 -0
  194. package/workflows/AGENTS.md +240 -0
  195. package/workflows/README.md +160 -0
  196. package/workflows/all-tools.md +11 -0
  197. package/workflows/engineering/data/data.contract.md +202 -0
  198. package/workflows/engineering/data/data.new-pipeline.md +234 -0
  199. package/workflows/engineering/eng.breakdown-subtasks.md +420 -0
  200. package/workflows/engineering/eng.bug-audit.md +591 -0
  201. package/workflows/engineering/eng.build-tech-spec.md +1116 -0
  202. package/workflows/engineering/eng.create-ard-from-code.md +259 -0
  203. package/workflows/engineering/eng.create-ard.md +382 -0
  204. package/workflows/engineering/eng.create-rfc.md +245 -0
  205. package/workflows/engineering/eng.debug.md +479 -0
  206. package/workflows/engineering/eng.docs.md +40 -0
  207. package/workflows/engineering/eng.light-arch.md +84 -0
  208. package/workflows/engineering/eng.plan.md +213 -0
  209. package/workflows/engineering/eng.pr.md +466 -0
  210. package/workflows/engineering/eng.pre-pr.md +167 -0
  211. package/workflows/engineering/eng.review.md +185 -0
  212. package/workflows/engineering/eng.rpa.robot.md +342 -0
  213. package/workflows/engineering/eng.security-audit.md +312 -0
  214. package/workflows/engineering/eng.security-incident.md +275 -0
  215. package/workflows/engineering/eng.security-pipeline.md +210 -0
  216. package/workflows/engineering/eng.security-review.md +235 -0
  217. package/workflows/engineering/eng.start.md +494 -0
  218. package/workflows/engineering/eng.work.md +558 -0
  219. package/workflows/engineering/frontend/eng.frontend-component.md +190 -0
  220. package/workflows/engineering/frontend/eng.frontend-perf-audit.md +375 -0
  221. package/workflows/engineering/frontend/eng.frontend-review.md +185 -0
  222. package/workflows/engineering/qa/eng.qa-dev-quality-guide.md +51 -0
  223. package/workflows/engineering/qa/eng.qa-e2e-test-generation.md +51 -0
  224. package/workflows/engineering/qa/eng.qa-exploratory-session.md +60 -0
  225. package/workflows/engineering/qa/eng.qa-quality-gate-validation.md +202 -0
  226. package/workflows/engineering/qa/eng.qa-quality-report.md +83 -0
  227. package/workflows/engineering/qa/eng.qa-refinement-entry.md +83 -0
  228. package/workflows/engineering/qa/eng.qa-release-signoff.md +170 -0
  229. package/workflows/engineering/qa/eng.qa-sprint-planning.md +100 -0
  230. package/workflows/engineering/ta/eng.ta.atendimento.md +93 -0
  231. package/workflows/product/prod.roadmap.preview.md +110 -0
  232. package/workflows/product/prod.spec.breakdown.md +163 -0
  233. package/workflows/product/prod.spec.clarify.md +178 -0
  234. package/workflows/product/prod.spec.epic.md +154 -0
  235. package/workflows/product/prod.spec.frd.md +96 -0
  236. package/workflows/product/prod.spec.issue.md +145 -0
  237. package/workflows/product/prod.spec.md +60 -0
  238. package/workflows/product/prod.spec.prd.md +100 -0
  239. package/workflows/taxonomy.md +92 -0
  240. package/workflows/warm-up.md +574 -0
@@ -0,0 +1,210 @@
1
+ ---
2
+ description: Orquestrador do pipeline defensivo de segurança — encadeia threat-model, audit, triage e patch em um único fluxo guiado
3
+ globs:
4
+ alwaysApply: false
5
+ recommended_model: claude-opus-4-6-20250529
6
+ model_tier: very_high
7
+ model_justification: Orquestração do pipeline completo exige raciocínio profundo para avaliar estado, decidir fases e interpretar outputs encadeados
8
+ ---
9
+
10
+ # Workflow de Engenharia – Security Pipeline (Orquestrador)
11
+
12
+ ## Objetivo
13
+
14
+ Guiar o SENTINEL pelo pipeline defensivo completo de segurança, encadeando os 4 estágios em um fluxo único. Elimina a necessidade de lembrar a sequência de comandos — o usuário informa onde quer começar e o orquestrador conduz.
15
+
16
+ ---
17
+
18
+ ## Quando Usar Este Workflow
19
+
20
+ - Auditoria de segurança completa de um projeto ou feature
21
+ - Retomada de pipeline interrompido em sessão anterior
22
+ - Onboarding de segurança em projeto sem histórico de audit
23
+ - Quando o usuário pede "auditar segurança", "pipeline completo" ou "fechar o loop"
24
+
25
+ ---
26
+
27
+ ## Passo 0 — Detectar estado do pipeline
28
+
29
+ Antes de perguntar qualquer coisa, verificar o que já existe:
30
+
31
+ ```bash
32
+ # Artefatos de output
33
+ ls .security/outputs/ 2>/dev/null
34
+ # State de sessões anteriores
35
+ ls .security/state/ 2>/dev/null
36
+ ```
37
+
38
+ | Artefato encontrado | Fase concluída |
39
+ |---------------------|----------------|
40
+ | `THREAT_MODEL.md` | Estágio 1 feito |
41
+ | `security-findings.json` | Estágio 2 feito |
42
+ | `triage.json` | Estágio 3 feito |
43
+ | `PATCHES/` com conteúdo | Estágio 4 feito |
44
+
45
+ Exibir o estado detectado antes de mostrar o menu.
46
+
47
+ ---
48
+
49
+ ## Passo 1 — Menu de entrada
50
+
51
+ ```
52
+ Pipeline de Segurança — SENTINEL
53
+
54
+ Estado atual:
55
+ [✓/–] Estágio 1: Threat Model (.security/outputs/THREAT_MODEL.md)
56
+ [✓/–] Estágio 2: Audit (.security/outputs/security-findings.json)
57
+ [✓/–] Estágio 3: Triage (.security/outputs/triage.json)
58
+ [✓/–] Estágio 4: Patch (.security/outputs/PATCHES/)
59
+
60
+ Onde iniciar?
61
+
62
+ 1. Completo — estágio 1 → 2 → 3 → 4
63
+ 2. Audit+ — estágio 2 → 3 → 4 (já tenho ou pulo threat model)
64
+ 3. Triage+ — estágio 3 → 4 (já tenho security-findings.json)
65
+ 4. Só patch — estágio 4 (já tenho triage.json)
66
+ 5. Retomar — continuar de onde parou (detectar pelo state/)
67
+ ```
68
+
69
+ > Se todos os artefatos existem, perguntar: "Pipeline completo encontrado. Reexecutar do início (--fresh) ou revisar outputs existentes?"
70
+
71
+ ---
72
+
73
+ ## Passo 2 — Executar os estágios selecionados
74
+
75
+ Executar cada estágio em sequência. Ao final de cada um, confirmar com o usuário antes de prosseguir para o próximo.
76
+
77
+ ---
78
+
79
+ ### Estágio 1 — Threat Model (`/eng-threat-model`)
80
+
81
+ **Skill**: `$IDE/skills/eng-threat-model/SKILL.md`
82
+
83
+ Perguntar modo de operação:
84
+ ```
85
+ Modo do threat model:
86
+ 1. bootstrap — deriva o modelo do código automaticamente
87
+ 2. interview — walk interativo com você como owner do sistema
88
+ 3. bootstrap-then-interview — bootstrap primeiro, entrevista refinadora depois
89
+ ```
90
+
91
+ Invocar o skill com o modo escolhido. Output esperado: `.security/outputs/THREAT_MODEL.md`.
92
+
93
+ Ao concluir:
94
+ ```
95
+ ✓ Threat model gerado em .security/outputs/THREAT_MODEL.md
96
+ Ameaças identificadas: {N}
97
+ Areas priorizadas para audit: {lista de focus-areas}
98
+
99
+ Prosseguir para Estágio 2 (Audit)? [s/n]
100
+ ```
101
+
102
+ ---
103
+
104
+ ### Estágio 2 — Security Audit (`/eng.security-audit`)
105
+
106
+ **Workflow**: `$IDE/workflows/engineering/eng.security-audit.md`
107
+
108
+ Passar `THREAT_MODEL.md` como contexto se existir (Fase 0.5 do audit).
109
+
110
+ Perguntar escopo se não informado:
111
+ ```
112
+ Escopo do audit:
113
+ 1. Projeto completo (--all)
114
+ 2. Pasta específica (ex: ./src/auth/)
115
+ 3. Focus específico (owasp | secrets | supply-chain | headers | compliance)
116
+ ```
117
+
118
+ Output esperado: `.security/outputs/security-findings.json` + `security-audit-report.md`.
119
+
120
+ Ao concluir:
121
+ ```
122
+ ✓ Audit concluído
123
+ Achados brutos: {N}
124
+ Distribuição: CRITICAL {n} | HIGH {n} | MEDIUM {n} | LOW {n}
125
+ Output: .security/outputs/security-findings.json
126
+
127
+ Prosseguir para Estágio 3 (Triage)? [s/n]
128
+ ```
129
+
130
+ > Se N == 0: informar "Nenhum achado encontrado. Pipeline encerrado." e parar.
131
+
132
+ ---
133
+
134
+ ### Estágio 3 — Triage (`/eng-security-triage`)
135
+
136
+ **Skill**: `$IDE/skills/eng-security-triage/SKILL.md`
137
+
138
+ Input: `.security/outputs/security-findings.json`
139
+
140
+ Perguntar modo:
141
+ ```
142
+ Modo de triage:
143
+ 1. --auto — sem perguntas interativas (recomendado para pipelines CI)
144
+ 2. interativo — coleta contexto de trust boundary e tolerância a ruído
145
+ ```
146
+
147
+ Output esperado: `.security/outputs/triage.json`
148
+
149
+ Ao concluir:
150
+ ```
151
+ ✓ Triage concluído
152
+ Achados confirmados: {N} | Falsos positivos descartados: {N}
153
+ Top 3 por exploitabilidade: {lista}
154
+ Output: .security/outputs/triage.json
155
+
156
+ Prosseguir para Estágio 4 (Patch)? [s/n]
157
+ ```
158
+
159
+ > Se N confirmados == 0: informar "Nenhum achado confirmado após triage. Pipeline encerrado." e parar.
160
+
161
+ ---
162
+
163
+ ### Estágio 4 — Patch (`/eng-security-patch`)
164
+
165
+ **Skill**: `$IDE/skills/eng-security-patch/SKILL.md`
166
+
167
+ Input: `.security/outputs/triage.json`
168
+
169
+ Perguntar escopo:
170
+ ```
171
+ Gerar patches para:
172
+ 1. Todos os achados confirmados
173
+ 2. Apenas top N (ex: top 3 por severidade)
174
+ 3. Achado específico (ID F-NNN)
175
+ ```
176
+
177
+ Output esperado: `.security/outputs/PATCHES/bug_NN/{patch.diff, patch_result.json}` + `PATCHES.md`
178
+
179
+ Ao concluir:
180
+ ```
181
+ ✓ Pipeline de segurança concluído
182
+
183
+ Resumo:
184
+ Threat model : .security/outputs/THREAT_MODEL.md
185
+ Achados audit: .security/outputs/security-findings.json ({N} achados)
186
+ Triage : .security/outputs/triage.json ({N} confirmados)
187
+ Patches : .security/outputs/PATCHES/ ({N} diffs gerados)
188
+ Relatório : .security/outputs/security-audit-report.md
189
+
190
+ Próximos passos para o TL:
191
+ 1. Revisar diffs em .security/outputs/PATCHES/
192
+ 2. Aplicar patches aprovados: git apply .security/outputs/PATCHES/bug_NN/patch.diff
193
+ 3. Criar cards no $TASK_MANAGER para achados sem patch (no_patch)
194
+ 4. Commitar .security/outputs/ (excluir .security/state/ via .gitignore)
195
+ ```
196
+
197
+ ---
198
+
199
+ ## Regras
200
+
201
+ ### Nunca
202
+ - Pular a confirmação do usuário entre estágios sem `--auto` explícito
203
+ - Avançar para Estágio 4 sem triage (patches gerados de achados não verificados têm alta taxa de erro)
204
+ - Aplicar diffs automaticamente — output é sempre texto inerte para revisão humana
205
+
206
+ ### Sempre
207
+ - Detectar estado existente antes de mostrar o menu
208
+ - Informar quantos achados passaram de cada estágio
209
+ - Parar o pipeline se nenhum achado sobreviver a um estágio (audit vazio ou triage sem confirmados)
210
+ - Sugerir `.gitignore` para `.security/state/` se não estiver ignorado
@@ -0,0 +1,235 @@
1
+ ---
2
+ description: Workflow de Engenharia para Review de Seguranca em PRs/MRs (gate pre-merge)
3
+ globs:
4
+ alwaysApply: false
5
+ recommended_model: claude-sonnet-4-6-20250514
6
+ model_tier: high
7
+ model_justification: Security review de PRs requer analise focada de mudancas especificas — nao exige raciocinio tao profundo quanto audit completo, mas precisa de precisao
8
+ ---
9
+
10
+ # Workflow de Engenharia – Security Review (Gate Pre-Merge)
11
+
12
+ ## Objetivo
13
+
14
+ Guiar o SENTINEL (ENG) na revisao de seguranca de PRs/MRs que tocam areas sensiveis do codigo — autenticacao, autorizacao, inputs, APIs, configs e permissoes. Funciona como gate de seguranca complementar ao code review normal.
15
+
16
+ ---
17
+
18
+ ## Quando Usar Este Workflow
19
+
20
+ - PR modifica fluxos de autenticacao ou autorizacao
21
+ - PR adiciona ou modifica endpoints publicos
22
+ - PR toca em processamento de inputs (forms, uploads, parsing)
23
+ - PR modifica configs de seguranca (CORS, CSP, headers)
24
+ - PR adiciona dependencias novas
25
+ - PR toca em dados sensiveis (PII, financeiro)
26
+ - PR modifica permissoes ou roles (RBAC, guards)
27
+ - Tech Lead solicita security review explicito
28
+
29
+ ---
30
+
31
+ ## Pre-requisitos
32
+
33
+ ### Entrada
34
+
35
+ ```
36
+ /eng.security-review [referencia-do-pr]
37
+
38
+ Onde [referencia-do-pr] pode ser:
39
+ - Numero do PR/MR: #123
40
+ - URL: https://gitlab.com/org/repo/-/merge_requests/123
41
+ - Branch: feature/nova-auth
42
+ ```
43
+
44
+ ---
45
+
46
+ ## Fase 1 – Scope
47
+
48
+ ### 1.1 Identificar arquivos alterados
49
+
50
+ ```bash
51
+ # Listar arquivos alterados no PR/branch
52
+ git diff --name-only main...HEAD 2>/dev/null || git diff --name-only origin/main...HEAD
53
+
54
+ # Filtrar arquivos sensiveis
55
+ git diff --name-only main...HEAD | grep -E "(auth|guard|middleware|session|login|permission|role|token|secret|password|cors|csp|helmet|security|\.env)" 2>/dev/null
56
+ ```
57
+
58
+ ### 1.2 Classificar risco do PR
59
+
60
+ | Indicador | Risco | Motivo |
61
+ |-----------|-------|--------|
62
+ | Toca em auth/guard/session | **ALTO** | Bypass pode dar acesso total |
63
+ | Adiciona endpoint publico | **ALTO** | Nova superficie de ataque |
64
+ | Modifica CORS/CSP/headers | **ALTO** | Misconfiguration afeta toda app |
65
+ | Processa input do usuario | **MEDIO** | Injection, XSS |
66
+ | Adiciona dependencia nova | **MEDIO** | Supply chain |
67
+ | Modifica roles/permissoes | **ALTO** | Escalacao de privilegio |
68
+ | Toca em dados sensiveis | **ALTO** | Data exposure |
69
+ | Refactoring sem mudanca de API | **BAIXO** | Risco minimo |
70
+
71
+ ---
72
+
73
+ ## Fase 2 – Analysis
74
+
75
+ ### 2.1 Checklist de seguranca por area
76
+
77
+ #### Auth e Sessions
78
+ - [ ] Tokens JWT: expiracao curta para access, refresh com rotacao
79
+ - [ ] Sessions: `httpOnly`, `secure`, `sameSite: strict`
80
+ - [ ] Password hashing: bcrypt/argon2 (nunca MD5/SHA1)
81
+ - [ ] Rate limiting em login/registro
82
+ - [ ] Logout invalida session/token no backend
83
+
84
+ #### Inputs e Validation
85
+ - [ ] Todos os inputs validados com schema (Zod, Joi, class-validator)
86
+ - [ ] Queries parametrizadas (nunca concatenacao SQL)
87
+ - [ ] Uploads: validar tipo, tamanho, nome de arquivo
88
+ - [ ] Rich text: sanitizado com allowlist (DOMPurify)
89
+ - [ ] URLs dinamicas: validadas contra allowlist (prevenir SSRF)
90
+
91
+ #### APIs e Endpoints
92
+ - [ ] Endpoints protegidos com auth guard (exceto os intencionalmente publicos)
93
+ - [ ] Autorizacao verificada (RBAC/permissions, nao apenas autenticacao)
94
+ - [ ] IDOR prevenido (usuario so acessa seus dados ou tem permissao)
95
+ - [ ] Rate limiting em endpoints sensiveis
96
+ - [ ] Erros nao vazam detalhes internos (stack traces, queries)
97
+
98
+ #### Configs e Headers
99
+ - [ ] CORS: origins especificas (nunca `*` em producao)
100
+ - [ ] CSP: configurado e restritivo
101
+ - [ ] HSTS: habilitado com `includeSubDomains`
102
+ - [ ] X-Frame-Options: `DENY` ou `SAMEORIGIN`
103
+ - [ ] Sem debug mode em producao
104
+
105
+ #### Dependencias
106
+ - [ ] `npm audit` sem vulnerabilidades HIGH/CRITICAL
107
+ - [ ] Lockfile atualizado e commitado
108
+ - [ ] Dependencia nova: verificar manutencao, downloads, issues
109
+
110
+ #### Dados Sensiveis
111
+ - [ ] PII criptografada em repouso
112
+ - [ ] Logs nao contem dados sensiveis (senhas, tokens, PII)
113
+ - [ ] Dados sensiveis nao expostos em respostas de API desnecessariamente
114
+
115
+ ---
116
+
117
+ ## Fase 2.5 — Verificacao Multi-Voto
118
+
119
+ Para cada achado identificado no checklist (Fase 2), spawnar **3 subagentes de voto** independentes.
120
+
121
+ > Subagentes de voto rodam **sem MCP** — apenas o texto do achado como contexto. Menos tool = veredicto mais deterministico e barato.
122
+
123
+ **Brief por subagente de voto:**
124
+
125
+ ```
126
+ Voce e um revisor de seguranca independente. Avaliar este achado:
127
+
128
+ ACHADO: {titulo} em {arquivo}:{linha}
129
+ EVIDENCIA: {codigo ou config vulneravel}
130
+ CONTEXTO: PR #{referencia}, area {categoria}
131
+
132
+ Este e um achado real e exploravel no contexto deste PR?
133
+
134
+ Responda exatamente:
135
+ verdict: confirmed | rejected | inconclusive
136
+ reasoning: <uma linha explicando o veredicto>
137
+ confidence: <0.0-1.0>
138
+ ```
139
+
140
+ **Consolidacao dos votos:**
141
+
142
+ | Resultado | Criterio | Acao |
143
+ |---|---|---|
144
+ | Confirmado | >= 2/3 votos `confirmed` | Incluir no report com severidade original |
145
+ | Falso positivo | >= 2/3 votos `rejected` | Descartar — nao incluir |
146
+ | Inconcluso | Divergencia | Incluir com flag `[REVISAR]` para humano |
147
+
148
+ ---
149
+
150
+ ## Fase 3 – Verdict
151
+
152
+ ### 3.1 Classificar resultado
153
+
154
+ | Verdict | Criterio | Acao |
155
+ |---------|----------|------|
156
+ | **APPROVED** | Nenhum achado HIGH/CRITICAL | Aprovar merge |
157
+ | **CHANGES REQUESTED** | Achados MEDIUM ou HIGH corrigiveis | Solicitar correcoes com evidencia |
158
+ | **BLOCKED** | Achado CRITICAL ou HIGH nao corrigivel trivialmente | Bloquear merge, escalar para TL |
159
+
160
+ ### 3.2 Feedback estruturado
161
+
162
+ Para cada achado, comentar no PR com:
163
+
164
+ ```markdown
165
+ **[SECURITY - {SEVERIDADE}]** {titulo}
166
+
167
+ **Arquivo**: `path/to/file.ts:line`
168
+ **Vetor**: {tipo de vulnerabilidade}
169
+ **Evidencia**:
170
+ \`\`\`typescript
171
+ // codigo vulneravel
172
+ \`\`\`
173
+
174
+ **Correcao sugerida**:
175
+ \`\`\`typescript
176
+ // codigo seguro
177
+ \`\`\`
178
+ ```
179
+
180
+ ---
181
+
182
+ ## Fase 4 – Documentation
183
+
184
+ ### 4.1 Registrar decisao
185
+
186
+ ```markdown
187
+ ## Security Review Summary
188
+
189
+ **PR/MR**: {referencia}
190
+ **Reviewer**: SENTINEL (AI-assisted)
191
+ **Data**: {ISO-8601}
192
+ **Verdict**: APPROVED | CHANGES REQUESTED | BLOCKED
193
+
194
+ ### Areas revisadas
195
+ - [ ] Auth e Sessions
196
+ - [ ] Inputs e Validation
197
+ - [ ] APIs e Endpoints
198
+ - [ ] Configs e Headers
199
+ - [ ] Dependencias
200
+ - [ ] Dados Sensiveis
201
+
202
+ ### Achados
203
+ | # | Severidade | Descricao | Status |
204
+ |---|-----------|-----------|--------|
205
+ | 1 | {sev} | {descricao} | {aberto|corrigido} |
206
+
207
+ ### Notas
208
+ {observacoes adicionais relevantes}
209
+ ```
210
+
211
+ ---
212
+
213
+ ## Fase 4.2 — Output JSON (security-findings.json)
214
+
215
+ Alem do summary markdown (Fase 4.1), escrever `security-findings.json` conforme `docs/SECURITY-ARTIFACTS-SCHEMA.md` secao 2.
216
+
217
+ Incluir apenas achados com `vote_result.verdict != rejected` (confirmed + inconclusive).
218
+ Este arquivo pode ser consumido por `eng-security-triage` para dedup e re-rank caso o PR faca parte de um audit maior.
219
+
220
+ ---
221
+
222
+ ## Regras
223
+
224
+ ### Nunca
225
+ - Aprovar um PR com achado CRITICAL sem correcao
226
+ - Bloquear um PR sem evidencia tecnica (nao bloquear por "sensacao")
227
+ - Fazer review de seguranca superficial (checklist mecanico sem analise)
228
+ - Ignorar dependencias novas adicionadas ao projeto
229
+
230
+ ### Sempre
231
+ - Analisar o diff completo, nao apenas os arquivos marcados como "sensiveis"
232
+ - Fornecer correcao sugerida para cada achado (nao apenas apontar o problema)
233
+ - Considerar o contexto: um endpoint interno tem risco diferente de um publico
234
+ - Comunicar achados CRITICAL ao TL imediatamente (nao esperar o review terminar)
235
+ - Verificar se testes de seguranca foram adicionados para mudancas em auth