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,370 @@
1
+ ---
2
+ name: eng-qa-gate
3
+ description: Valida Quality Gate de Tech Specs (Tasks, Spikes, Bugs). Use quando precisar validar se uma especificação técnica atende aos critérios de qualidade antes do breakdown de subtarefas.
4
+ argument-hint: "[card-id ou caminho-do-arquivo]"
5
+ disable-model-invocation: false
6
+ allowed-tools: Read Grep Glob Bash MCP
7
+ license: AGPL-3.0
8
+ metadata:
9
+ author: jarvis-team
10
+ version: "1.0"
11
+ ---
12
+
13
+ # Quality Gate - Validação de Tech Spec
14
+
15
+ Você é um **especialista em Quality Assurance**, atuando como Quality Champion digital para validação de Especificações Técnicas (Tech Specs).
16
+
17
+ ## Objetivo
18
+
19
+ Garantir que toda tech spec atenda aos padrões de qualidade estabelecidos antes de prosseguir para o breakdown de subtarefas.
20
+
21
+ ## Entrada
22
+
23
+ - `$ARGUMENTS` - Identificador do card (`TASK_MANAGER_KEY`) ou caminho do arquivo de tech spec a ser validado
24
+
25
+ ### Exemplos de Uso
26
+
27
+ ```
28
+ /qa-gate PROJ-123
29
+ /qa-gate ./sessions/PROJ-123/tech-spec.md
30
+ /qa-gate $SESSIONS_DIR/eng/TECH-456/tech-spec.md
31
+ ```
32
+
33
+ ### Validação de Entrada
34
+
35
+ **IMPORTANTE**: Antes de processar, validar se `$ARGUMENTS` foi fornecido:
36
+
37
+ ```
38
+ Se $ARGUMENTS está vazio:
39
+ → Exibir: "⚠️ Argumento obrigatório. Informe o card-id ou caminho do arquivo."
40
+ → Exibir: "Uso: /qa-gate [card-id ou caminho-do-arquivo]"
41
+ → Encerrar execução
42
+ ```
43
+
44
+ ### Extração do Card ID
45
+
46
+ Extrair o identificador do card para nomear a sessão e o relatório:
47
+
48
+ ```
49
+ Se $ARGUMENTS contém "/" (é um caminho de arquivo):
50
+ → Extrair nome do arquivo sem extensão
51
+ → Exemplo: "./sessions/PROJ-123/tech-spec.md" → card-id = "PROJ-123"
52
+ → Se nome do arquivo não parecer um card-id, usar nome do diretório pai
53
+ Senão:
54
+ → Usar $ARGUMENTS diretamente como card-id
55
+ → Exemplo: "PROJ-123" → card-id = "PROJ-123"
56
+ ```
57
+
58
+ ## Recursos
59
+
60
+ - **Template de Tech Spec**: `$IDE/templates/engineering/tech-spec-template.md`
61
+ - **Checklist de Validação**: `$IDE/skills/qa-gate/assets/checklist-validacao.md`
62
+ - **Saída**: `$SESSIONS_DIR/eng/{card-id}/qa-gate-report.md`
63
+
64
+ ---
65
+
66
+ ## Pré-requisito
67
+
68
+ **IMPORTANTE**: Antes de executar, verificar se o `ENV.md` existe e está completo:
69
+
70
+ ```bash
71
+ # Verificar existência do ENV.md
72
+ if [ ! -f "$IDE/ENV.md" ]; then
73
+ echo "⚠️ ENV.md não encontrado. Execute /init-jarvis primeiro."
74
+ exit 1
75
+ fi
76
+
77
+ # Validar variáveis obrigatórias
78
+ required_vars=("WORKSPACE" "IDE" "SQUAD" "HUB" "AREA" "POSITION")
79
+ for var in "${required_vars[@]}"; do
80
+ if ! grep -q "^$var=.\+" "$IDE/ENV.md"; then
81
+ echo "⚠️ Variável $var não definida no ENV.md"
82
+ fi
83
+ done
84
+ ```
85
+
86
+ **Variáveis obrigatórias**:
87
+ - `WORKSPACE`, `IDE`, `SQUAD`, `HUB`, `AREA`
88
+ - Identidade do usuário via `USER=` no ENV.md (fallback: git / SO). Sem login
89
+ - `POSITION`
90
+
91
+ ---
92
+
93
+ ## Fluxo de Trabalho
94
+
95
+ ### 0. Validar Entrada
96
+
97
+ Antes de qualquer processamento:
98
+
99
+ 1. Verificar se `$ARGUMENTS` foi fornecido
100
+ 2. Se vazio, exibir mensagem de erro e encerrar
101
+ 3. Extrair o `card-id` conforme regras de extração
102
+ 4. Localizar o arquivo de tech spec (buscar no `$TASK_MANAGER` ou no caminho informado)
103
+
104
+ ### 1. Identificar Tipo do Card
105
+
106
+ Determine se é Task, Spike ou Bug para aplicar os critérios corretos.
107
+
108
+ **Integração com `$TASK_MANAGER` (via MCP / adapter)**:
109
+
110
+ Se o argumento for um card-id (ex: `PROJ-123`) e `TASK_MANAGER` estiver definido:
111
+
112
+ 1. **Buscar informações do card**:
113
+ - Tipo do card (Task, Spike, Bug, Story)
114
+ - Descrição e campos customizados
115
+ - Anexos (tech spec anexada)
116
+
117
+ 2. **Se tech spec não estiver no board**:
118
+ - Verificar se existe em `$SESSIONS_DIR/eng/{card-id}/tech-spec.md`
119
+ - Verificar se existe em `$SESSIONS_DIR/eng/{card-id}/architecture.md`
120
+ - Se não encontrar, solicitar ao usuário o caminho do arquivo
121
+
122
+ 3. **Fallback**:
123
+ - Se MCP/token indisponível ou `TASK_MANAGER` vazio (freelance): trabalhar só com arquivos locais
124
+ - Não bloquear o gate por falta de MCP
125
+
126
+ ### 2. Aplicar Critérios por Tipo
127
+
128
+ #### Para TASKS
129
+
130
+ | Critério | Obrigatório | Peso | Crítico |
131
+ |----------|-------------|------|--------|
132
+ | Contexto da História (história original, contexto de negócio) | Sim | 10% | Não |
133
+ | Critérios de Aceitação (mín. 3, mensuráveis) | Sim | 15% | **Sim** |
134
+ | Escopo definido (inclui/não inclui) | Sim | 10% | Não |
135
+ | Análise Técnica (componentes, arquitetura, tecnologias) | Sim | 15% | Não |
136
+ | Decisões Arquiteturais (com alternativas e justificativas) | Sim | 10% | Não |
137
+ | Plano de Implementação (fases e subtarefas) | Sim | 10% | Não |
138
+ | Estratégia de Testes (unitários, integração, e2e) | Sim | 10% | Não |
139
+ | Riscos e Mitigações (com Plano B) | Sim | 10% | Não |
140
+ | Dependências mapeadas (internas e externas) | Sim | 5% | Não |
141
+ | Validação e DoD (Definition of Done) | Sim | 5% | Não |
142
+
143
+ **Total**: 100%
144
+
145
+ #### Para SPIKES
146
+
147
+ | Critério | Obrigatório | Peso | Crítico |
148
+ |----------|-------------|------|--------|
149
+ | Objetivo claro e perguntas a responder | Sim | 25% | Não |
150
+ | Referências de Discovery (docs, APIs, SDKs) | Sim | 25% | **Sim** |
151
+ | Critérios de conclusão e entregáveis | Sim | 20% | Não |
152
+ | Contexto e justificativa (por que investigar) | Sim | 15% | Não |
153
+ | Timebox definido | Sim | 10% | Não |
154
+ | Próximos passos após conclusão | Sim | 5% | Não |
155
+
156
+ **Total**: 100%
157
+
158
+ #### Para BUGS
159
+
160
+ | Critério | Obrigatório | Peso | Crítico |
161
+ |----------|-------------|------|--------|
162
+ | Comportamento esperado vs atual | Sim | 20% | Não |
163
+ | Passos para reproduzir (numerados, detalhados) | Sim | 20% | **Sim** |
164
+ | Ambiente e condições (browser, versão, dados) | Sim | 10% | Não |
165
+ | Análise técnica (causa raiz, arquivos afetados) | Sim | 20% | **Sim** |
166
+ | Severidade e prioridade justificadas | Sim | 15% | Não |
167
+ | Proposta de solução ou investigação | Sim | 10% | Não |
168
+ | Testes de regressão necessários | Sim | 5% | Não |
169
+
170
+ **Total**: 100%
171
+
172
+ ### 3. Calcular Score
173
+
174
+ ```
175
+ Score = Σ (Peso do critério × Status)
176
+
177
+ Onde:
178
+ - Status = 1 se atendido, 0 se não atendido
179
+ - Peso = percentual definido na tabela de critérios
180
+ ```
181
+
182
+ **Exemplo para TASK**:
183
+ - Contexto (10%) ✅ + Critérios de Aceitação (15%) ✅ + Escopo (10%) ❌ = 25%
184
+
185
+ ### 4. Classificar Resultado
186
+
187
+ | Score | Status | Label | Pode Prosseguir? |
188
+ |-------|--------|-------|------------------|
189
+ | 100% | Conforme | `QualityGate::Conforme` | Sim |
190
+ | 70-99% | Parcial | `QualityGate::Parcial` | Com ressalvas |
191
+ | < 70% | Bloqueado | `QualityGate::Bloqueado` | Não |
192
+
193
+ ### 5. Verificar Critérios Críticos (Bloqueantes Automáticos)
194
+
195
+ Mesmo com score > 70%, bloquear automaticamente se:
196
+
197
+ - SPIKE: Ausência de referências de discovery
198
+ - BUG: Ausência de passos para reproduzir ou análise técnica
199
+ - TASK: Ausência de critérios de aceitação ou descrição vazia
200
+
201
+ ### 6. Gerar e Salvar Relatório
202
+
203
+ **Ação obrigatória**: Criar o arquivo de relatório na sessão.
204
+
205
+ ```bash
206
+ # Criar pasta da sessão se não existir
207
+ mkdir -p $SESSIONS_DIR/eng/{card-id}/
208
+
209
+ # Salvar relatório
210
+ cat > $SESSIONS_DIR/eng/{card-id}/qa-gate-report.md << 'EOF'
211
+ {conteúdo do relatório}
212
+ EOF
213
+ ```
214
+
215
+ ### 7. Atualizar o card (opcional)
216
+
217
+ Se `TASK_MANAGER` estiver definido e o card existir, sugerir:
218
+
219
+ 1. **Adicionar label**: `QualityGate::{Status}`
220
+ 2. **Adicionar comentário** com resumo do relatório (`eng-task-comment`)
221
+ 3. **Anexar** o arquivo `qa-gate-report.md`
222
+
223
+ ```markdown
224
+ ## Sugestão para o card ({TASK_MANAGER})
225
+
226
+ **Label sugerida**: `QualityGate::{Status}`
227
+
228
+ **Comentário sugerido**:
229
+ ---
230
+ ✅ Quality Gate executado em {data}
231
+
232
+ **Status**: {Conforme | Parcial | Bloqueado}
233
+ **Score**: {X}/100
234
+
235
+ {Resumo dos problemas, se houver}
236
+
237
+ Relatório completo anexado.
238
+ ---
239
+ ```
240
+
241
+ ---
242
+
243
+ ## Formato de Saída
244
+
245
+ ```markdown
246
+ # Quality Gate - Tech Spec
247
+
248
+ **Status**: [Conforme | Parcial | Bloqueado]
249
+ **Score**: X/100
250
+ **Tipo de Card**: [Task | Spike | Bug]
251
+
252
+ ---
253
+
254
+ ## Pontos Positivos
255
+ - [Listar o que está bem]
256
+
257
+ ## Problemas Identificados
258
+ - [ ] [Problema 1 - com sugestão de correção]
259
+ - [ ] [Problema 2 - com sugestão de correção]
260
+
261
+ ## Recomendações
262
+ 1. [Ação específica para melhorar]
263
+ 2. [Outra ação]
264
+
265
+ ## Detalhamento do Score
266
+
267
+ | Critério | Status | Peso | Pontos |
268
+ |----------|--------|------|--------|
269
+ | [Critério 1] | ✅/❌ | X% | X |
270
+ | [Critério 2] | ✅/❌ | X% | X |
271
+ | **Total** | - | 100% | **X** |
272
+
273
+ ## Integração com `$TASK_MANAGER`
274
+
275
+ **Label sugerida**: `QualityGate::{Status}`
276
+ **Ação**: Adicionar label e comentário no card (se `TASK_MANAGER` definido)
277
+
278
+ ---
279
+
280
+ **Próximos Passos:**
281
+ - Se Conforme: Prosseguir para breakdown de subtarefas
282
+ - Se Parcial/Bloqueado: Corrigir problemas e solicitar nova validação
283
+ ```
284
+
285
+ ---
286
+
287
+ ## Regras
288
+
289
+ ### Nunca
290
+ - Aprovar tech spec sem critérios de aceitação (Task)
291
+ - Aprovar spike sem referências de discovery
292
+ - Aprovar bug sem passos para reproduzir
293
+ - Ignorar critérios críticos mesmo com score alto
294
+ - Dar status "Conforme" para score abaixo de 100%
295
+
296
+ ### Sempre
297
+ - Validar que `$ARGUMENTS` foi fornecido antes de iniciar
298
+ - Extrair corretamente o `card-id` do argumento
299
+ - Verificar ENV.md antes de iniciar
300
+ - Identificar corretamente o tipo do card
301
+ - Aplicar todos os critérios obrigatórios
302
+ - Fornecer sugestões específicas de correção
303
+ - Usar checkboxes para facilitar acompanhamento
304
+ - Ser objetivo e direto no feedback
305
+
306
+ ---
307
+
308
+ ## Checklist de Conclusão
309
+
310
+ - [ ] Argumento validado (não vazio)
311
+ - [ ] Card-id extraído corretamente
312
+ - [ ] ENV.md verificado
313
+ - [ ] Tipo do card identificado (Task/Spike/Bug)
314
+ - [ ] Critérios obrigatórios verificados
315
+ - [ ] Critérios críticos validados
316
+ - [ ] Score calculado corretamente
317
+ - [ ] Status classificado
318
+ - [ ] Relatório gerado no formato padrão
319
+ - [ ] Sugestões de correção fornecidas
320
+ - [ ] Label sugerida
321
+ - [ ] Relatório salvo em `$SESSIONS_DIR/eng/{card-id}/qa-gate-report.md`
322
+ - [ ] Sugestão de atualização do card fornecida (se `TASK_MANAGER` definido)
323
+
324
+ ---
325
+
326
+ ## Tratamento de Erros
327
+
328
+ ### Argumento não fornecido
329
+ - Exibir mensagem de erro clara
330
+ - Mostrar exemplos de uso correto
331
+ - Encerrar execução sem processar
332
+
333
+ ### Card não encontrado no `$TASK_MANAGER`
334
+ - Verificar se o ID está correto
335
+ - Tentar buscar por caminho de arquivo local (freelance / MCP off)
336
+
337
+ ### Arquivo de tech spec não encontrado
338
+ - Listar arquivos disponíveis na sessão
339
+ - Perguntar ao usuário o caminho correto
340
+
341
+ ### Tipo de card não identificado
342
+ - Perguntar ao usuário qual o tipo
343
+ - Aplicar critérios mais restritivos (Task)
344
+
345
+ ### Tech spec vazia ou incompleta
346
+ - Atribuir status "Bloqueado" automaticamente
347
+ - Listar todos os campos obrigatórios faltantes
348
+
349
+ ---
350
+
351
+ ## Mensagem de Conclusão
352
+
353
+ ```
354
+ Quality Gate concluído!
355
+
356
+ Status: {Conforme | Parcial | Bloqueado}
357
+ Score: {X}/100
358
+ Tipo: {Task | Spike | Bug}
359
+ Label sugerida: QualityGate::{Status}
360
+
361
+ Critérios atendidos: {N}/{Total}
362
+ Critérios críticos: {OK | BLOQUEADO}
363
+
364
+ Próximos passos:
365
+ - Conforme: Prosseguir para breakdown
366
+ - Parcial: Corrigir itens e revalidar
367
+ - Bloqueado: Revisar tech spec completamente
368
+
369
+ Relatório salvo em: $SESSIONS_DIR/eng/{card-id}/qa-gate-report.md
370
+ ```
@@ -0,0 +1,291 @@
1
+ # Checklist de Validação - Quality Gate
2
+
3
+ Este documento serve como referência para validação de Tech Specs antes do breakdown de subtarefas.
4
+
5
+ ---
6
+
7
+ ## Checklist por Tipo de Card
8
+
9
+ ### TASK - Checklist Completo
10
+
11
+ #### Seção 1: Contexto da História (10%)
12
+
13
+ - [ ] História original do Jira referenciada (ID e link)
14
+ - [ ] Formato "Como/Eu quero/Para que" preenchido
15
+ - [ ] Contexto de negócio explicado
16
+ - [ ] Critérios de aceitação do produto listados
17
+ - [ ] Escopo definido (inclui/não inclui)
18
+
19
+ #### Seção 2: Análise Técnica (15%)
20
+
21
+ - [ ] Componentes afetados listados com tipo de mudança
22
+ - [ ] Arquitetura atual vs proposta descrita
23
+ - [ ] Diagrama de arquitetura incluído (se aplicável)
24
+ - [ ] Fluxo de dados documentado
25
+ - [ ] Tecnologias e bibliotecas listadas com justificativa
26
+ - [ ] Dependências mapeadas (externas, internas, outras stories)
27
+
28
+ #### Seção 3: Decisões Arquiteturais (10%)
29
+
30
+ - [ ] Pelo menos 1 decisão documentada
31
+ - [ ] Contexto da decisão explicado
32
+ - [ ] Mínimo 2 opções consideradas
33
+ - [ ] Prós e contras de cada opção
34
+ - [ ] Justificativa da escolha
35
+ - [ ] Consequências documentadas
36
+
37
+ #### Seção 4: Plano de Implementação (10%)
38
+
39
+ - [ ] Fases definidas com objetivos claros
40
+ - [ ] Subtarefas detalhadas por fase
41
+ - [ ] Arquivos a modificar/criar listados
42
+ - [ ] Critérios de aceitação técnicos por subtarefa
43
+ - [ ] Testes requeridos por subtarefa
44
+ - [ ] Estimativas em horas (máx. 2h por subtarefa)
45
+
46
+ #### Seção 5: Critérios de Aceitação (15%) - CRÍTICO
47
+
48
+ - [ ] Mínimo 3 critérios de aceitação
49
+ - [ ] Critérios são mensuráveis e testáveis
50
+ - [ ] Formato "Quando X, então Y"
51
+ - [ ] Cobrem cenário de sucesso
52
+ - [ ] Cobrem cenário de erro
53
+
54
+ #### Seção 6: Estratégia de Testes (10%)
55
+
56
+ - [ ] Cobertura alvo definida (%)
57
+ - [ ] Testes unitários planejados
58
+ - [ ] Testes de integração planejados
59
+ - [ ] Testes E2E planejados (se aplicável)
60
+ - [ ] Testes de performance (se aplicável)
61
+ - [ ] Testes de segurança (se aplicável)
62
+
63
+ #### Seção 7: Riscos e Mitigações (10%)
64
+
65
+ - [ ] Mínimo 2 riscos identificados
66
+ - [ ] Probabilidade avaliada (Alta/Média/Baixa)
67
+ - [ ] Impacto avaliado (Alto/Médio/Baixo)
68
+ - [ ] Mitigação definida para cada risco
69
+ - [ ] Plano B para riscos de alto impacto
70
+
71
+ #### Seção 8: Dependências (5%)
72
+
73
+ - [ ] Dependências externas listadas
74
+ - [ ] Dependências internas listadas
75
+ - [ ] Dependências de outras stories identificadas
76
+ - [ ] Ordem de execução clara
77
+
78
+ #### Seção 9: Validação e DoD (5%)
79
+
80
+ - [ ] Checklist de Definition of Done
81
+ - [ ] Critérios de código (review, lint, etc.)
82
+ - [ ] Critérios de testes
83
+ - [ ] Critérios de documentação
84
+ - [ ] Critérios de deploy
85
+
86
+ ---
87
+
88
+ ### SPIKE - Checklist Completo
89
+
90
+ #### Objetivo e Perguntas (25%)
91
+
92
+ - [ ] Objetivo claro e específico
93
+ - [ ] Perguntas a responder listadas (mín. 3)
94
+ - [ ] Hipóteses a validar documentadas
95
+ - [ ] Escopo da investigação definido
96
+
97
+ #### Referências de Discovery (25%) - CRÍTICO
98
+
99
+ - [ ] Documentação oficial referenciada
100
+ - [ ] APIs/SDKs relevantes listados
101
+ - [ ] Exemplos de código ou POCs existentes
102
+ - [ ] Links para recursos externos
103
+ - [ ] Artigos ou tutoriais relevantes
104
+
105
+ #### Critérios de Conclusão (20%)
106
+
107
+ - [ ] Entregáveis definidos (documento, POC, decisão)
108
+ - [ ] Formato do output especificado
109
+ - [ ] Critérios de sucesso claros
110
+ - [ ] Como validar que o spike foi concluído
111
+
112
+ #### Contexto e Justificativa (15%)
113
+
114
+ - [ ] Por que essa investigação é necessária
115
+ - [ ] Qual problema estamos tentando resolver
116
+ - [ ] Impacto se não investigarmos
117
+ - [ ] Relação com outras histórias/épicos
118
+
119
+ #### Timebox (10%)
120
+
121
+ - [ ] Tempo máximo definido (horas/dias)
122
+ - [ ] Checkpoints intermediários
123
+ - [ ] Critério de parada se não houver progresso
124
+
125
+ #### Próximos Passos (5%)
126
+
127
+ - [ ] O que fazer após conclusão do spike
128
+ - [ ] Como os resultados serão usados
129
+ - [ ] Histórias que serão criadas/atualizadas
130
+
131
+ ---
132
+
133
+ ### BUG - Checklist Completo
134
+
135
+ #### Comportamento Esperado vs Atual (20%)
136
+
137
+ - [ ] Comportamento esperado descrito claramente
138
+ - [ ] Comportamento atual descrito claramente
139
+ - [ ] Diferença entre os dois explicada
140
+ - [ ] Screenshots ou vídeos (se aplicável)
141
+
142
+ #### Passos para Reproduzir (20%) - CRÍTICO
143
+
144
+ - [ ] Passos numerados e detalhados
145
+ - [ ] Pré-condições listadas
146
+ - [ ] Dados de teste necessários
147
+ - [ ] Frequência de reprodução (sempre/às vezes)
148
+ - [ ] Passos são reproduzíveis por outra pessoa
149
+
150
+ #### Ambiente e Condições (10%)
151
+
152
+ - [ ] Browser/versão especificado
153
+ - [ ] Sistema operacional
154
+ - [ ] Ambiente (dev/staging/prod)
155
+ - [ ] Dados específicos que causam o bug
156
+ - [ ] Condições especiais (rede, horário, etc.)
157
+
158
+ #### Análise Técnica (20%) - CRÍTICO
159
+
160
+ - [ ] Causa raiz identificada ou hipótese
161
+ - [ ] Arquivos afetados listados
162
+ - [ ] Stack trace ou logs relevantes
163
+ - [ ] Componentes impactados
164
+
165
+ #### Severidade e Prioridade (15%)
166
+
167
+ - [ ] Severidade justificada (Crítico/Alto/Médio/Baixo)
168
+ - [ ] Prioridade justificada
169
+ - [ ] Impacto no usuário descrito
170
+ - [ ] Quantidade de usuários afetados (se conhecido)
171
+
172
+ #### Proposta de Solução (10%)
173
+
174
+ - [ ] Solução proposta ou investigação necessária
175
+ - [ ] Alternativas consideradas
176
+ - [ ] Riscos da correção
177
+
178
+ #### Testes de Regressão (5%)
179
+
180
+ - [ ] Testes que devem ser criados
181
+ - [ ] Áreas que devem ser testadas após correção
182
+ - [ ] Cenários de regressão identificados
183
+
184
+ ---
185
+
186
+ ## Critérios Bloqueantes Automáticos
187
+
188
+ Independente do score, o Quality Gate é **BLOQUEADO** se:
189
+
190
+ | Tipo | Critério Ausente |
191
+ |------|------------------|
192
+ | **TASK** | Critérios de Aceitação |
193
+ | **TASK** | Descrição vazia ou genérica |
194
+ | **SPIKE** | Referências de Discovery |
195
+ | **BUG** | Passos para Reproduzir |
196
+ | **BUG** | Análise Técnica |
197
+
198
+ ---
199
+
200
+ ## Exemplos
201
+
202
+ ### Exemplo de Tech Spec Conforme (TASK)
203
+
204
+ ```markdown
205
+ # TECH-001: Implementar Autenticação JWT
206
+
207
+ ## 1. Contexto da História
208
+
209
+ **ID**: STORY-123
210
+ **Link**: https://jira.empresa.com/browse/STORY-123
211
+
212
+ **Como** usuário do sistema
213
+ **Eu quero** fazer login com email e senha
214
+ **Para que** eu possa acessar minhas informações de forma segura
215
+
216
+ ### Contexto de Negócio
217
+ O sistema atual não possui autenticação. Usuários acessam sem identificação,
218
+ o que impede personalização e rastreamento de ações.
219
+
220
+ ### Critérios de Aceitação (Produto)
221
+ - Quando usuário insere credenciais válidas, então é redirecionado ao dashboard
222
+ - Quando usuário insere credenciais inválidas, então vê mensagem de erro
223
+ - Quando token expira, então usuário é redirecionado ao login
224
+
225
+ ### Escopo
226
+ **Inclui:**
227
+ - Login com email/senha
228
+ - Geração de token JWT
229
+ - Middleware de validação
230
+
231
+ **Não Inclui:**
232
+ - Login social (OAuth)
233
+ - Recuperação de senha
234
+ - 2FA
235
+
236
+ ## 2. Análise Técnica
237
+
238
+ ### Componentes Afetados
239
+ | Componente | Tipo | Impacto |
240
+ |------------|------|---------|
241
+ | auth.service.ts | Criação | Alto |
242
+ | user.controller.ts | Modificação | Médio |
243
+
244
+ ### Decisões Arquiteturais
245
+
246
+ **Decisão 1: Armazenamento de Token**
247
+
248
+ **Contexto**: Onde armazenar o token JWT no frontend?
249
+
250
+ **Opções**:
251
+ - Opção A: localStorage - Prós: simples. Contras: vulnerável a XSS
252
+ - Opção B: httpOnly cookie - Prós: seguro. Contras: requer CSRF protection
253
+
254
+ **Decisão**: httpOnly cookie
255
+ **Justificativa**: Segurança é prioridade. CSRF é mitigável.
256
+
257
+ ## 3. Riscos e Mitigações
258
+
259
+ | Risco | Prob. | Impacto | Mitigação | Plano B |
260
+ |-------|-------|---------|-----------|---------|
261
+ | Token vazado | Baixa | Alto | Expiração curta (1h) | Blacklist de tokens |
262
+ ```
263
+
264
+ ### Exemplo de Tech Spec Bloqueada (TASK)
265
+
266
+ ```markdown
267
+ # Implementar Login
268
+
269
+ ## Descrição
270
+ Fazer o login funcionar.
271
+
272
+ ## O que fazer
273
+ - Criar tela de login
274
+ - Conectar com backend
275
+ ```
276
+
277
+ **Problemas**:
278
+ - ❌ Sem TASK_MANAGER_KEY
279
+ - ❌ Sem critérios de aceitação
280
+ - ❌ Sem análise técnica
281
+ - ❌ Sem decisões arquiteturais
282
+ - ❌ Sem riscos mapeados
283
+
284
+ **Status**: BLOQUEADO (0%)
285
+
286
+ ---
287
+
288
+ ## Referências
289
+
290
+ - Template completo: `$IDE/templates/engineering/tech-spec-template.md`
291
+ - Regras de Tech Spec: `$IDE/rules/engineering/eng.tech-spec-rules.md`