qa-flowkit 0.4.0-alpha.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 (149) hide show
  1. package/.qa-ai/adapters/aider/.aider/README.md +25 -0
  2. package/.qa-ai/adapters/aider/.aider.conf.yml +6 -0
  3. package/.qa-ai/adapters/claude/agents/qa-workflow-orchestrator.md +18 -0
  4. package/.qa-ai/adapters/claude/commands/qa-add-tests.md +42 -0
  5. package/.qa-ai/adapters/claude/commands/qa-automation-plan.md +43 -0
  6. package/.qa-ai/adapters/claude/commands/qa-clean.md +42 -0
  7. package/.qa-ai/adapters/claude/commands/qa-config.md +51 -0
  8. package/.qa-ai/adapters/claude/commands/qa-coverage.md +46 -0
  9. package/.qa-ai/adapters/claude/commands/qa-doctor.md +11 -0
  10. package/.qa-ai/adapters/claude/commands/qa-full-flow.md +59 -0
  11. package/.qa-ai/adapters/claude/commands/qa-gate.md +36 -0
  12. package/.qa-ai/adapters/claude/commands/qa-help.md +30 -0
  13. package/.qa-ai/adapters/claude/commands/qa-init.md +70 -0
  14. package/.qa-ai/adapters/claude/commands/qa-status.md +56 -0
  15. package/.qa-ai/adapters/claude/commands/qa-update-tests.md +47 -0
  16. package/.qa-ai/adapters/claude/commands/qa-validate-features.md +36 -0
  17. package/.qa-ai/adapters/cline/.cline/README.md +25 -0
  18. package/.qa-ai/adapters/cline/.clinerules +9 -0
  19. package/.qa-ai/adapters/codex/README.md +44 -0
  20. package/.qa-ai/adapters/codex/prompts/implement-project.md +15 -0
  21. package/.qa-ai/adapters/continue/README.md +26 -0
  22. package/.qa-ai/adapters/continue/checks/qa-feature-conventions.md +15 -0
  23. package/.qa-ai/adapters/gemini/GEMINI.md +40 -0
  24. package/.qa-ai/adapters/generic/AGENTS.md +100 -0
  25. package/.qa-ai/adapters/goose/recipes/qa-flowkit.yaml +20 -0
  26. package/.qa-ai/adapters/opencode/README.md +57 -0
  27. package/.qa-ai/adapters/opencode/agents/qa-workflow.md +18 -0
  28. package/.qa-ai/adapters/opencode/commands/qa-add-tests.md +42 -0
  29. package/.qa-ai/adapters/opencode/commands/qa-automation-plan.md +43 -0
  30. package/.qa-ai/adapters/opencode/commands/qa-clean.md +42 -0
  31. package/.qa-ai/adapters/opencode/commands/qa-config.md +51 -0
  32. package/.qa-ai/adapters/opencode/commands/qa-coverage.md +46 -0
  33. package/.qa-ai/adapters/opencode/commands/qa-doctor.md +13 -0
  34. package/.qa-ai/adapters/opencode/commands/qa-full-flow.md +59 -0
  35. package/.qa-ai/adapters/opencode/commands/qa-gate.md +36 -0
  36. package/.qa-ai/adapters/opencode/commands/qa-help.md +30 -0
  37. package/.qa-ai/adapters/opencode/commands/qa-init.md +70 -0
  38. package/.qa-ai/adapters/opencode/commands/qa-status.md +56 -0
  39. package/.qa-ai/adapters/opencode/commands/qa-update-tests.md +47 -0
  40. package/.qa-ai/adapters/opencode/commands/qa-validate-features.md +36 -0
  41. package/.qa-ai/agents/README.md +39 -0
  42. package/.qa-ai/agents/api-testing-agent.md +73 -0
  43. package/.qa-ai/agents/automation-feasibility-agent.md +128 -0
  44. package/.qa-ai/agents/gherkin-test-design-agent.md +110 -0
  45. package/.qa-ai/agents/jira-task-agent.md +92 -0
  46. package/.qa-ai/agents/pr-agent.md +101 -0
  47. package/.qa-ai/agents/qa-context-intake-agent.md +75 -0
  48. package/.qa-ai/agents/qa-workflow-orchestrator.md +113 -0
  49. package/.qa-ai/agents/release-gate-agent.md +50 -0
  50. package/.qa-ai/agents/requirements-intake-agent.md +79 -0
  51. package/.qa-ai/agents/requirements-normalization-agent.md +80 -0
  52. package/.qa-ai/agents/specialists/available/appium.md +59 -0
  53. package/.qa-ai/agents/specialists/available/cypress.md +68 -0
  54. package/.qa-ai/agents/specialists/available/generic-test-design.md +117 -0
  55. package/.qa-ai/agents/specialists/available/jira.md +108 -0
  56. package/.qa-ai/agents/specialists/available/karate.md +97 -0
  57. package/.qa-ai/agents/specialists/available/playwright-api.md +87 -0
  58. package/.qa-ai/agents/specialists/available/playwright-ui.md +87 -0
  59. package/.qa-ai/agents/specialists/available/postman.md +108 -0
  60. package/.qa-ai/agents/specialists/available/rest-assured.md +103 -0
  61. package/.qa-ai/agents/specialists/available/selenium.md +91 -0
  62. package/.qa-ai/agents/specialists/available/testrail.md +85 -0
  63. package/.qa-ai/agents/specialists/available/webdriverio.md +81 -0
  64. package/.qa-ai/agents/test-design-system-agent.md +33 -0
  65. package/.qa-ai/agents/testrail-coverage-agent.md +84 -0
  66. package/.qa-ai/agents/testrail-sync-agent.md +96 -0
  67. package/.qa-ai/agents/webdriverio-implementation-agent.md +84 -0
  68. package/.qa-ai/presets/manual-only.yaml +65 -0
  69. package/.qa-ai/presets/selenium-jest-browserstack.yaml +72 -0
  70. package/.qa-ai/presets/webdriverio-playwright-api.yaml +85 -0
  71. package/.qa-ai/rules/api-testing.rules.md +7 -0
  72. package/.qa-ai/rules/approval.rules.md +8 -0
  73. package/.qa-ai/rules/automation.rules.md +7 -0
  74. package/.qa-ai/rules/gherkin.rules.md +12 -0
  75. package/.qa-ai/rules/testrail.rules.md +10 -0
  76. package/.qa-ai/rules/webdriverio.rules.md +9 -0
  77. package/.qa-ai/scripts/bootstrap-agent-adapters.mjs +127 -0
  78. package/.qa-ai/scripts/clean.mjs +243 -0
  79. package/.qa-ai/scripts/config.mjs +202 -0
  80. package/.qa-ai/scripts/doctor.mjs +383 -0
  81. package/.qa-ai/scripts/init.mjs +447 -0
  82. package/.qa-ai/scripts/lib/markdown-table.mjs +76 -0
  83. package/.qa-ai/scripts/lib/project-config.mjs +184 -0
  84. package/.qa-ai/scripts/lib/qa-next-steps.mjs +578 -0
  85. package/.qa-ai/scripts/lib/release-gate.mjs +66 -0
  86. package/.qa-ai/scripts/lib/test-design.mjs +92 -0
  87. package/.qa-ai/scripts/lib/test-management-mapping.mjs +73 -0
  88. package/.qa-ai/scripts/lib/utils.mjs +331 -0
  89. package/.qa-ai/scripts/qa-help.mjs +44 -0
  90. package/.qa-ai/scripts/smoke-npm-pack.mjs +187 -0
  91. package/.qa-ai/scripts/smoke-test.mjs +465 -0
  92. package/.qa-ai/scripts/sync-agent-adapters.mjs +121 -0
  93. package/.qa-ai/scripts/test-validators.mjs +334 -0
  94. package/.qa-ai/scripts/validate-active-specialists.mjs +106 -0
  95. package/.qa-ai/scripts/validate-features.mjs +277 -0
  96. package/.qa-ai/scripts/validate-release-gate.mjs +105 -0
  97. package/.qa-ai/scripts/validate-sync-plan.mjs +186 -0
  98. package/.qa-ai/scripts/validate-target.mjs +104 -0
  99. package/.qa-ai/scripts/validate-test-design.mjs +117 -0
  100. package/.qa-ai/scripts/validate-traceability.mjs +183 -0
  101. package/.qa-ai/templates/automation-feasibility-report.template.md +21 -0
  102. package/.qa-ai/templates/automation-implementation-plan.template.md +23 -0
  103. package/.qa-ai/templates/feature.template +13 -0
  104. package/.qa-ai/templates/jira-automation-task.template.md +25 -0
  105. package/.qa-ai/templates/pr-template.md +60 -0
  106. package/.qa-ai/templates/release-gate.template.yaml +16 -0
  107. package/.qa-ai/templates/requirement-analysis.template.md +17 -0
  108. package/.qa-ai/templates/test-design-proposal.template.md +26 -0
  109. package/.qa-ai/templates/test-design-system.template.md +15 -0
  110. package/.qa-ai/templates/test-management-mapping.template.json +18 -0
  111. package/.qa-ai/templates/testrail-coverage-analysis.template.md +17 -0
  112. package/.qa-ai/templates/testrail-sync-plan.template.md +22 -0
  113. package/.qa-ai/templates/traceability-matrix.template.md +4 -0
  114. package/.qa-ai/workflows/automation-analysis.md +23 -0
  115. package/.qa-ai/workflows/cleanup.md +52 -0
  116. package/.qa-ai/workflows/context-intake.md +66 -0
  117. package/.qa-ai/workflows/full-flow.md +55 -0
  118. package/.qa-ai/workflows/implementation.md +24 -0
  119. package/.qa-ai/workflows/intake.md +3 -0
  120. package/.qa-ai/workflows/pr.md +3 -0
  121. package/.qa-ai/workflows/release-gate.md +22 -0
  122. package/.qa-ai/workflows/test-design-system.md +33 -0
  123. package/.qa-ai/workflows/test-design.md +23 -0
  124. package/.qa-ai/workflows/testrail-sync.md +23 -0
  125. package/CHANGELOG.md +108 -0
  126. package/CODE_OF_CONDUCT.md +11 -0
  127. package/CONTRIBUTING.md +39 -0
  128. package/LICENSE +21 -0
  129. package/README.es.md +602 -0
  130. package/README.md +633 -0
  131. package/ROADMAP.md +107 -0
  132. package/SECURITY.md +18 -0
  133. package/bin/qa-flowkit.mjs +214 -0
  134. package/docs/qa-ai/agent-compatibility.md +100 -0
  135. package/docs/qa-ai/architecture.md +130 -0
  136. package/docs/qa-ai/backlog.md +393 -0
  137. package/docs/qa-ai/cleanup.md +104 -0
  138. package/docs/qa-ai/customizing-agents.md +148 -0
  139. package/docs/qa-ai/getting-started.md +385 -0
  140. package/docs/qa-ai/implementation-guide-for-codex.md +210 -0
  141. package/docs/qa-ai/npm-migration-plan.md +50 -0
  142. package/docs/qa-ai/open-source-release-checklist.md +17 -0
  143. package/docs/qa-ai/qa-help.md +76 -0
  144. package/docs/qa-ai/release-gate.md +60 -0
  145. package/docs/qa-ai/terminal-transcripts.md +316 -0
  146. package/docs/qa-ai/test-design-dual-mode.md +75 -0
  147. package/docs/qa-ai/troubleshooting.md +740 -0
  148. package/docs/qa-ai/workflow.md +147 -0
  149. package/package.json +72 -0
package/README.es.md ADDED
@@ -0,0 +1,602 @@
1
+ # QA FlowKit
2
+
3
+ [![Licencia: MIT](https://img.shields.io/badge/licencia-MIT-green.svg)](LICENSE)
4
+ [![Node.js 20+](https://img.shields.io/badge/node.js-20%2B-339933.svg)](package.json)
5
+ [![Estado: Early Product](https://img.shields.io/badge/estado-Early%20Product-blue.svg)](ROADMAP.md)
6
+ [![Workflow: QA AI](https://img.shields.io/badge/workflow-QA%20AI-6f42c1.svg)](docs/qa-ai/workflow.md)
7
+ [![CI](https://github.com/warante/QA_FlowKit/actions/workflows/ci.yml/badge.svg)](https://github.com/warante/QA_FlowKit/actions/workflows/ci.yml)
8
+
9
+ Framework open-source portable y CLI npm para añadir un flujo de QA asistido por IA a un repositorio existente de QA o automatización.
10
+
11
+ Idioma: [English](README.md) | **Español**
12
+
13
+ ## Tabla de Contenidos
14
+
15
+ - [Qué Hace](#qué-hace)
16
+ - [Inicio Rápido](#inicio-rápido)
17
+ - [Actualizar el framework](#actualizar-el-framework)
18
+ - [Rutas de Uso Guiadas](#rutas-de-uso-guiadas)
19
+ - [Bootstrap Desde Agente](#bootstrap-desde-agente)
20
+ - [Carpeta de Contexto QA](#carpeta-de-contexto-qa)
21
+ - [Tramos de workflow QA y ayuda guiada](#tramos-de-workflow-qa-y-ayuda-guiada)
22
+ - [Comandos](#comandos)
23
+ - [Validación](#validación)
24
+ - [Opciones de Init](#opciones-de-init)
25
+ - [Plantillas Base](#plantillas-base)
26
+ - [Adaptadores](#adaptadores)
27
+ - [Estructura Generada](#estructura-generada)
28
+ - [Reglas Gherkin](#reglas-gherkin)
29
+ - [Limpieza](#limpieza)
30
+ - [Documentación](#documentación)
31
+ - [Licencia](#licencia)
32
+
33
+ ## Qué Hace
34
+
35
+ QA FlowKit está en fase **Early Product**: el flujo portable por copia de carpeta está implementado, validado en CI y ahora suma una CLI npm. Ejecutas `npx qa-flowkit init` en un repositorio objetivo y el repositorio recibe configuración, instrucciones para agentes, documentación de workflow, scripts de validación, plantillas y adaptadores para herramientas comunes de coding agents.
36
+
37
+ El starter **no** realiza escrituras externas en herramientas configuradas. Solo crea artefactos locales y propuestas antes de cualquier sincronización externa.
38
+
39
+ | Área | Incluye |
40
+ |---|---|
41
+ | Framework | Carpeta portable `.qa-ai/` |
42
+ | Scripts | `bootstrap-agent-adapters`, `init`, `config`, `doctor`, `clean`, `qa-help`, validadores reforzados, `validate-target`, `validate-release-gate`, `validate-test-design`, `smoke-test`, `sync-agent-adapters` |
43
+ | Reglas | Aprobación, Gherkin, gestión de pruebas, automatización, UI automation y API testing |
44
+ | Agentes | Agentes por fase y especialistas activos desde `.qa-ai/agents/specialists/active.md` |
45
+ | Plantillas | Análisis de requisitos, diseño de pruebas, trazabilidad, planificación de automatización y resumen de PR |
46
+ | Contexto QA | Carpeta local opcional con prácticas del equipo para defaults asistidos por agente |
47
+ | Adaptadores | AGENTS.md, Claude Code, Codex, OpenCode, Cline, Continue, Aider, Goose y Gemini CLI |
48
+
49
+ ```text
50
+ Requisitos
51
+ -> intake de requisitos
52
+ -> validación de RF oficial y criterios de aceptación
53
+ -> análisis de cobertura en gestión de pruebas
54
+ -> diseño de pruebas Gherkin
55
+ -> plan de sincronización con gestión de pruebas
56
+ -> matriz de trazabilidad
57
+ -> viabilidad de automatización
58
+ -> plan de implementación con el framework configurado
59
+ -> resumen listo para PR
60
+ ```
61
+
62
+ ## Inicio Rápido
63
+
64
+ Ejecuta esto desde el repositorio objetivo donde quieres instalar QA FlowKit:
65
+
66
+ ```bash
67
+ npx qa-flowkit init
68
+ ```
69
+
70
+ Después abre el repositorio con tu herramienta de IA y empieza con:
71
+
72
+ ```text
73
+ Lee AGENTS.md, qa-ai.config.yaml y .qa-ai/workflows/full-flow.md. Sigue .qa-ai/rules/ antes de modificar archivos.
74
+ ```
75
+
76
+ Por defecto, init usa la plantilla base `webdriverio-playwright-api`, interfaz en inglés, Gherkin en inglés y solo el adaptador OpenCode. Crea primero la estructura mínima usable; los documentos QA iniciales y adaptadores extra son opt-in.
77
+
78
+ Fallback manual cuando npm no está disponible:
79
+
80
+ ```bash
81
+ cp -R /path/to/QA_FlowKit/.qa-ai .qa-ai
82
+ node .qa-ai/scripts/init.mjs
83
+ node .qa-ai/scripts/doctor.mjs
84
+ ```
85
+
86
+ ## Actualizar el framework
87
+
88
+ Si ya copiaste una versión anterior de `.qa-ai/` en tu repositorio, actualiza el **framework portable** con la CLI npm o desde una release reciente de [QA FlowKit](https://github.com/warante/QA_FlowKit). Tus artefactos de trabajo (`qa-ai.config.yaml`, `qa-ai-output/`, `features/`, `tests/`, cambios propios en `AGENTS.md`) están **fuera** de `.qa-ai/` y no se borran al reemplazar esa carpeta.
89
+
90
+ ### Antes de empezar
91
+
92
+ 1. Haz commit o copia de seguridad del repositorio (sobre todo `qa-ai.config.yaml` y `qa-ai-output/`).
93
+ 2. Anota qué adaptadores usas (Claude Code, OpenCode, Codex, etc.).
94
+ 3. Revisa las notas de la release o el [CHANGELOG](CHANGELOG.md) por claves nuevas de config (por ejemplo `project.qaTrack`, `testDesign.*`, `release.gatePath`).
95
+
96
+ ### Pasos recomendados de actualización
97
+
98
+ **1. Recomendado: actualiza con npm**:
99
+
100
+ ```bash
101
+ npx qa-flowkit update
102
+ ```
103
+
104
+ Esto reemplaza solo `.qa-ai/`, preserva `.qa-ai/state/` y `.qa-ai/config-profiles/`, actualiza especialistas activos, sincroniza adaptadores existentes sin sobrescribirlos y ejecuta `doctor`.
105
+
106
+ **Fallback manual: sustituye la carpeta `.qa-ai/`** por la de la última versión de QA FlowKit (clone o tag):
107
+
108
+ ```bash
109
+ # Unix / macOS (desde la raíz del repo objetivo)
110
+ rm -rf .qa-ai
111
+ cp -R /path/to/QA_FlowKit/.qa-ai .qa-ai
112
+ ```
113
+
114
+ ```powershell
115
+ # Windows PowerShell (desde la raíz del repo objetivo)
116
+ Remove-Item -Recurse -Force .\.qa-ai
117
+ Copy-Item -Recurse -LiteralPath C:\path\to\QA_FlowKit\.qa-ai -Destination .\.qa-ai
118
+ ```
119
+
120
+ **2. Actualiza comandos slash y adaptadores** (no modifica `qa-ai.config.yaml`):
121
+
122
+ ```bash
123
+ node .qa-ai/scripts/sync-agent-adapters.mjs --adapters claude,opencode --force
124
+ ```
125
+
126
+ Incluye todos los adaptadores que uses (`generic`, `codex`, `cline`, `continue`, `aider`, `goose`, `gemini`) o usa `--adapters all`.
127
+
128
+ **3. Vuelve a ejecutar init sin sobrescribir tu config** (crea carpetas que falten y regenera `.qa-ai/agents/specialists/active.md`; no toca `qa-ai.config.yaml` salvo que uses `--force`):
129
+
130
+ ```bash
131
+ node .qa-ai/scripts/init.mjs --no-adapters
132
+ ```
133
+
134
+ **4. Incorpora a mano las claves nuevas en `qa-ai.config.yaml`** comparando con el preset en `.qa-ai/presets/`. No ejecutes `init.mjs --force` si no quieres reemplazar toda la config. Añadidos habituales en versiones recientes:
135
+
136
+ | Clave | Uso |
137
+ |---|---|
138
+ | `project.qaTrack` | Profundidad del flujo: `quick`, `standard`, `enterprise` |
139
+ | `testDesign.systemPath` | Documento de diseño de pruebas de sistema |
140
+ | `testDesign.proposalPath` | Propuesta de diseño por RF |
141
+ | `release.gatePath` | YAML de release gate (enterprise) |
142
+
143
+ Para guardar tu config antes de editar:
144
+
145
+ ```bash
146
+ node .qa-ai/scripts/config.mjs --export .qa-ai/config-profiles/backup-antes-de-actualizar.yaml
147
+ ```
148
+
149
+ **5. Añade plantillas que falten en `qa-ai-output/`** (opcional; solo crea archivos que no existan):
150
+
151
+ ```bash
152
+ node .qa-ai/scripts/init.mjs --with-doc-templates --no-adapters
153
+ ```
154
+
155
+ Usa `--force` solo si quieres resetear plantillas ya generadas bajo `qa-ai-output/`.
156
+
157
+ **6. Comprueba la actualización:**
158
+
159
+ ```bash
160
+ node .qa-ai/scripts/doctor.mjs
161
+ node .qa-ai/scripts/qa-help.mjs
162
+ npm run qa:validate-target -- --allow-empty --allow-missing --no-strict-doctor
163
+ ```
164
+
165
+ Ajusta los flags cuando el repo ya tenga `.feature` y artefactos reales del flujo QA.
166
+
167
+ ### Qué sobrescribe init y qué no
168
+
169
+ | Ruta | Por defecto al re-ejecutar init | Con `--force` |
170
+ |---|---|---|
171
+ | `.qa-ai/` | Sustitución manual (paso 1) | Igual |
172
+ | `qa-ai.config.yaml` | No se toca si existe | Se reemplaza desde el preset |
173
+ | `qa-ai-output/*.md` (plantillas) | No se toca si existe | Se reemplaza con `--with-doc-templates` |
174
+ | `.claude/`, `.opencode/`, etc. | No se toca | Se actualiza con `sync-agent-adapters --force` |
175
+ | `.qa-ai/agents/specialists/active.md` | Siempre se regenera | Siempre se regenera |
176
+ | `features/`, `tests/` | Init no los modifica | Init no los modifica |
177
+
178
+ ### Actualización mínima agent-first
179
+
180
+ Si solo usas `/qa-init` en Claude Code u OpenCode:
181
+
182
+ ```bash
183
+ rm -rf .qa-ai
184
+ cp -R /path/to/QA_FlowKit/.qa-ai .qa-ai
185
+ node .qa-ai/scripts/bootstrap-agent-adapters.mjs --agents claude,opencode --force
186
+ node .qa-ai/scripts/doctor.mjs
187
+ ```
188
+
189
+ Después fusiona las claves nuevas en `qa-ai.config.yaml` y ejecuta `/qa-help` para ver las fases actualizadas.
190
+
191
+ ## Rutas de Uso Guiadas
192
+
193
+ ### Probar QA FlowKit en un repositorio nuevo
194
+
195
+ Usa el setup por defecto cuando quieras llegar rápido a un flujo QA AI funcional:
196
+
197
+ ```bash
198
+ npx qa-flowkit init
199
+ ```
200
+
201
+ ### QA manual solamente
202
+
203
+ Usa esta opción cuando quieras flujo de requisitos a Gherkin y trazabilidad sin carpetas de automatización:
204
+
205
+ ```bash
206
+ npx qa-flowkit init --preset manual-only --interface-language es --gherkin-language es
207
+ ```
208
+
209
+ ### Repositorio de automatización
210
+
211
+ Usa la plantilla por defecto para planificación WebdriverIO UI/E2E más Playwright API:
212
+
213
+ ```bash
214
+ npx qa-flowkit init --preset webdriverio-playwright-api
215
+ npx qa-flowkit validate-features --allow-empty
216
+ ```
217
+
218
+ ### Setup desde agente
219
+
220
+ Usa esto cuando Claude Code u OpenCode deban guiar la inicialización mediante `/qa-init`:
221
+
222
+ ```bash
223
+ node .qa-ai/scripts/bootstrap-agent-adapters.mjs --agents claude,opencode
224
+ ```
225
+
226
+ Después abre el agente y ejecuta:
227
+
228
+ ```text
229
+ /qa-init
230
+ ```
231
+
232
+ ## Bootstrap Desde Agente
233
+
234
+ Usa este flujo cuando Claude Code u OpenCode deban inicializar el repo mediante `/qa-init`.
235
+
236
+ | Plataforma | Comando |
237
+ |---|---|
238
+ | Unix/macOS | `cp -R /path/to/qa-flowkit/.qa-ai .qa-ai` |
239
+ | PowerShell | `Copy-Item -Recurse -LiteralPath C:\path\to\qa-flowkit\.qa-ai -Destination .\.qa-ai` |
240
+
241
+ Después ejecuta:
242
+
243
+ ```bash
244
+ node .qa-ai/scripts/bootstrap-agent-adapters.mjs --agents claude,opencode
245
+ ```
246
+
247
+ Abre Claude Code u OpenCode en el repositorio objetivo y ejecuta:
248
+
249
+ ```text
250
+ /qa-init
251
+ ```
252
+
253
+ Usa `/qa-init` en vez de `/init`; Claude Code y OpenCode ya tienen comandos internos llamados `/init`. El comando guiado pregunta idioma, plantilla base, adaptadores, overrides opcionales de framework y comportamiento de sobrescritura.
254
+
255
+ Forma directa avanzada:
256
+
257
+ ```text
258
+ /qa-init --preset webdriverio-playwright-api --interface-language es --gherkin-language es --adapters claude,opencode
259
+ ```
260
+
261
+ ## Carpeta de Contexto QA
262
+
263
+ Para un setup más adaptado, añade una carpeta local al repo con documentación sobre cómo trabaja QA en tu equipo y lanza el init desde un agente:
264
+
265
+ ```text
266
+ /qa-init --qa-context qa-ai-knowledge
267
+ ```
268
+
269
+ El agente lee `.qa-ai/workflows/context-intake.md`, resume el contexto QA, propone flags de init por defecto, pide aprobación y después ejecuta `init.mjs` con `--qa-context <path>`. El script Node registra la carpeta aprobada en `qa-ai.config.yaml`; no interpreta los documentos por sí mismo.
270
+
271
+ Cuando esté activo, los workflows QA futuros deben leer primero estos artefactos configurados:
272
+
273
+ ```text
274
+ qa-ai-output/qa-knowledge-summary.md
275
+ qa-ai-output/qa-init-decisions.md
276
+ ```
277
+
278
+ Usa `node .qa-ai/scripts/init.mjs --qa-context qa-ai-knowledge` para registrar una carpeta de contexto QA después de que el agente la haya revisado.
279
+
280
+ Cuando no sepas qué ejecutar a continuación:
281
+
282
+ ```bash
283
+ node .qa-ai/scripts/qa-help.mjs
284
+ ```
285
+
286
+ O usa `/qa-help` en Claude Code u OpenCode tras sincronizar adaptadores.
287
+
288
+ ## Tramos de workflow QA y ayuda guiada
289
+
290
+ QA FlowKit adapta la profundidad del flujo con `project.qaTrack` en `qa-ai.config.yaml` (inspirado en tramos de BMAD Method y decisiones TEA).
291
+
292
+ ### Tramos de workflow
293
+
294
+ | Tramo | Preset por defecto | Fases activas (resumen) | Ideal para |
295
+ |---|---|---|---|
296
+ | `quick` | `manual-only` | Intake, normalización, Gherkin, trazabilidad, PR | QA manual, alcance acotado |
297
+ | `standard` | `webdriverio-playwright-api` | Flujo completo con diseño de pruebas sistema + RF, gestión de pruebas y automatización cuando aplique | Repos de automatización |
298
+ | `enterprise` | con `--qa-track enterprise` | Igual que `standard` más **release gate** y `validate-target` más estricto | Cumplimiento y auditoría |
299
+
300
+ Ejemplos en init:
301
+
302
+ ```bash
303
+ node .qa-ai/scripts/init.mjs --preset manual-only --qa-track quick
304
+ node .qa-ai/scripts/init.mjs --preset webdriverio-playwright-api --qa-track standard
305
+ node .qa-ai/scripts/init.mjs --qa-track enterprise --with-doc-templates
306
+ ```
307
+
308
+ Detalle: [QA help y tramos](docs/qa-ai/qa-help.md).
309
+
310
+ ### Ayuda guiada (`qa-help`)
311
+
312
+ ```bash
313
+ npm run qa:help
314
+ node .qa-ai/scripts/qa-help.mjs --json
315
+ ```
316
+
317
+ ### Release gate (enterprise)
318
+
319
+ ```bash
320
+ npm run qa:validate-release-gate
321
+ ```
322
+
323
+ Comando `/qa-gate`. Detalle: [Release gate](docs/qa-ai/release-gate.md).
324
+
325
+ ### Diseño de pruebas dual-mode (standard / enterprise)
326
+
327
+ 1. `qa-ai-output/test-design-system.md` → estrategia transversal.
328
+ 2. `qa-ai-output/test-design-proposal.md` → casos del RF activo (aprobación antes de `.feature`).
329
+
330
+ El tramo `quick` omite el documento de sistema. Detalle: [Test design dual-mode](docs/qa-ai/test-design-dual-mode.md).
331
+
332
+ ## Comandos
333
+
334
+ | Comando | Propósito |
335
+ |---|---|
336
+ | `npx qa-flowkit init` | Instala `.qa-ai/`, genera config, carpetas y el adaptador OpenCode por defecto |
337
+ | `npx qa-flowkit update` | Actualiza `.qa-ai/` desde el paquete npm preservando artefactos del repo destino |
338
+ | `npx qa-flowkit doctor` | Revisa salud del setup desde la CLI npm |
339
+ | `npx qa-flowkit validate-target --allow-empty --allow-missing --no-strict-doctor` | Ejecuta validación del repo destino desde la CLI npm |
340
+ | `node .qa-ai/scripts/bootstrap-agent-adapters.mjs --agents claude,opencode` | Copia comandos slash mínimos para setup desde agente |
341
+ | `node .qa-ai/scripts/init.mjs` | Genera la config mínima, carpetas y adaptador OpenCode |
342
+ | `node .qa-ai/scripts/config.mjs --export .qa-ai/config-profiles/team.yaml` | Exporta la config actual como perfil reutilizable |
343
+ | `node .qa-ai/scripts/config.mjs --import .qa-ai/config-profiles/team.yaml` | Importa un perfil de config reutilizable |
344
+ | `node .qa-ai/scripts/sync-agent-adapters.mjs --adapters all` | Sincroniza adaptadores seleccionados |
345
+ | `node .qa-ai/scripts/doctor.mjs` | Revisa salud del setup |
346
+ | `node .qa-ai/scripts/doctor.mjs --strict` | Falla checks tipo CI para repositorios destino inicializados |
347
+ | `node .qa-ai/scripts/validate-features.mjs` | Valida archivos `.feature` generados |
348
+ | `node .qa-ai/scripts/validate-traceability.mjs` | Valida cobertura de IDs en la matriz de trazabilidad |
349
+ | `node .qa-ai/scripts/validate-sync-plan.mjs` | Valida planes de sincronización proposal-first |
350
+ | `node .qa-ai/scripts/validate-active-specialists.mjs` | Valida especialistas activos contra la config |
351
+ | `node .qa-ai/scripts/validate-target.mjs` | Ejecuta validación estricta de repos destino tras artefactos QA reales |
352
+ | `node .qa-ai/scripts/qa-help.mjs` | Recomienda la siguiente fase QA segun artefactos y `project.qaTrack` |
353
+ | `node .qa-ai/scripts/validate-release-gate.mjs` | Valida el YAML del release gate enterprise |
354
+ | `node .qa-ai/scripts/validate-test-design.mjs` | Valida estructura de diseno de pruebas sistema y por RF |
355
+ | `npm run qa:help` | Igual que `qa-help.mjs` |
356
+ | `npm run qa:validate-release-gate` | Igual que `validate-release-gate.mjs` |
357
+ | `npm run qa:validate-test-design` | Igual que `validate-test-design.mjs` |
358
+ | `node .qa-ai/scripts/test-validators.mjs` | Ejecuta tests unitarios nativos de helpers compartidos de validadores |
359
+ | `node .qa-ai/scripts/smoke-test.mjs` | Ejecuta smoke checks de mantenimiento |
360
+ | `node .qa-ai/scripts/smoke-npm-pack.mjs` | Ejecuta smoke checks de empaquetado e instalación npm |
361
+ | `npm run validate:oss-extraction` | Ejecuta doctor, validadores reforzados, tests unitarios de validadores y smoke tests (igual que CI) |
362
+ | `node .qa-ai/scripts/clean.mjs` | Previsualiza limpieza de artefactos generados |
363
+
364
+ Los adaptadores de Claude Code y OpenCode también incluyen comandos slash guiados:
365
+
366
+ | Comando Slash | Propósito |
367
+ |---|---|
368
+ | `/qa-init` | Inicialización guiada |
369
+ | `/qa-config` | Importa o exporta perfiles reutilizables de config QA AI |
370
+ | `/qa-full-flow` | Flujo QA end-to-end de requisitos a PR |
371
+ | `/qa-add-tests` | Añade pruebas para un RF nuevo sin alterar pruebas existentes |
372
+ | `/qa-update-tests` | Revisa pruebas existentes tras cambios de RF y aplica cambios aprobados |
373
+ | `/qa-automation-plan` | Clasifica `.feature` existentes y planifica automatización |
374
+ | `/qa-coverage` | Analiza cobertura funcional de RFs, pruebas manuales y automatizadas |
375
+ | `/qa-help` | Guia contextual para el siguiente paso del flujo QA |
376
+ | `/qa-status` | Resume configuración, artefactos, salud de features y siguientes pasos |
377
+ | `/qa-gate` | Registra decision de release gate enterprise |
378
+ | `/qa-doctor` | Checks de salud del setup |
379
+ | `/qa-clean` | Preview/ejecución de limpieza basada en manifiesto |
380
+ | `/qa-validate-features` | Validación de convenciones Gherkin |
381
+
382
+ `init.mjs` y `config.mjs --import` nunca sobrescriben archivos existentes salvo que se pase `--force`. `validate-features.mjs` falla si no encuentra archivos `.feature`; usa `--allow-empty` solo para smoke checks del repo fuente u otros casos donde una carpeta vacía sea esperada.
383
+
384
+ ## Validación
385
+
386
+ QA FlowKit usa validadores locales más fuertes sin dependencias externas:
387
+
388
+ | Validador | Comprueba |
389
+ |---|---|
390
+ | `doctor.mjs` | Assets del framework, scripts, reglas, plantillas, agentes, presets, adaptadores y rutas configuradas; `--strict` convierte artefactos de workflow y configs de framework de repos destino de warnings a fallos |
391
+ | `validate-features.mjs` | Estructura Gherkin parseada, directiva de idioma, un Feature, un Scenario, criterios de aceptación, tags requeridos, RF IDs e IDs explícitos de test duplicados |
392
+ | `validate-traceability.mjs` | Los identificadores RF/test de features aparecen en la matriz de trazabilidad configurada, con validación de forma de tabla Markdown y duplicados de caso/archivo |
393
+ | `validate-sync-plan.mjs` | Los planes de sincronización de gestión de pruebas siguen siendo proposal-first, mencionan aprobación, cubren IDs de features y pasan checks de tabla Markdown, IDs duplicados y mapping |
394
+ | `validate-active-specialists.mjs` | `.qa-ai/agents/specialists/active.md` coincide con `qa-ai.config.yaml` y existen los especialistas referenciados |
395
+ | `validate-release-gate.mjs` | Forma del YAML de release gate, reglas de decision y rutas de evidencia |
396
+ | `validate-test-design.mjs` | Estructura de secciones en diseño de pruebas sistema y por RF |
397
+ | `smoke-test.mjs` | Instalación por copia de carpeta, import/export de config, adaptadores, no-overwrite, rechazo de rutas inseguras y comportamiento de validadores |
398
+
399
+ Para el CI del repo fuente:
400
+
401
+ ```bash
402
+ npm run validate:oss-extraction
403
+ ```
404
+
405
+ En un repositorio objetivo ya configurado, ejecuta los validadores sin `--allow-empty` / `--allow-missing` cuando los `.feature` y artefactos correspondientes deban existir.
406
+
407
+ Usa el modo estricto de doctor en la CI del repositorio destino después de inicializar y de que al menos un flujo QA real haya generado los artefactos configurados:
408
+
409
+ ```bash
410
+ node .qa-ai/scripts/validate-target.mjs
411
+ ```
412
+
413
+ Para repositorios destino incompletos, usa `node .qa-ai/scripts/validate-target.mjs --allow-empty --allow-missing --no-strict-doctor`.
414
+
415
+ ### Mapping de gestión de pruebas
416
+
417
+ Cuando se usa `--with-test-management-mapping`, init crea el archivo de mapping configurado como un objeto JSON vacío (`{}`) para que los repositorios nuevos no empiecen con IDs externos ficticios.
418
+
419
+ Usa [.qa-ai/templates/test-management-mapping.template.json](.qa-ai/templates/test-management-mapping.template.json) como referencia documentada. Las claves del mapping deben ser IDs RF/test como `RF-101` o `TC-001`, o rutas `.feature`. Los valores deben ser objetos solo con campos soportados: `externalId`, `section`, `suite`, `status`, `lastReviewedAt` y `notes`. No guardes secretos, tokens ni credenciales en archivos de mapping.
420
+
421
+ Para reutilizar el mismo setup en repositorios con la misma estructura, exporta un perfil desde el repo configurado e impórtalo en el siguiente:
422
+
423
+ ```bash
424
+ node .qa-ai/scripts/config.mjs --export .qa-ai/config-profiles/team.yaml
425
+ node .qa-ai/scripts/config.mjs --import .qa-ai/config-profiles/team.yaml
426
+ ```
427
+
428
+ Importar un perfil escribe `qa-ai.config.yaml`, crea las carpetas configuradas y refresca `.qa-ai/agents/specialists/active.md`. Usa `--no-structure` cuando solo quieras copiar el YAML.
429
+
430
+ ## Opciones de Init
431
+
432
+ `init.mjs` funciona sin flags. Usa flags solo cuando la plantilla base o los idiomas por defecto no sean lo que necesitas.
433
+
434
+ | Opción | Valores | Default | Propósito |
435
+ |---|---|---|---|
436
+ | `--preset <name>` | `webdriverio-playwright-api`, `selenium-jest-browserstack`, `manual-only` | `webdriverio-playwright-api` | Selecciona la plantilla base para generar `qa-ai.config.yaml` |
437
+ | `--interface-language <lang>` | `en`, `es` | `en` | Idioma de encabezados de artefactos QA y texto guiado del workflow |
438
+ | `--gherkin-language <lang>` | `en`, `es` | `en` | Idioma de los archivos `.feature` generados |
439
+ | `--requirements-source <name>` | `markdown`, `jira`, `confluence`, `pasted-text`, valor custom | Valor de la plantilla base | Define la fuente principal de requisitos |
440
+ | `--test-management-tool <name>` | `none`, `testrail`, `zephyr`, `xray`, valor custom | Valor de la plantilla base | Define la herramienta de gestión de pruebas |
441
+ | `--issue-tracker <name>` | `none`, `jira`, `github`, valor custom | Valor de la plantilla base | Define el issue tracker configurado |
442
+ | `--qa-context <path>` | carpeta local del repo | off | Activa contexto QA para init asistido por agente |
443
+ | `--adapters <list>` | `all`, `generic`, `codex`, `claude`, `opencode`, `cline`, `continue`, `aider`, `goose`, `gemini` | `opencode` | Selecciona adaptadores de agentes generados |
444
+ | `--no-adapters` | flag | off | Omite generación de adaptadores |
445
+ | `--with-doc-templates` | flag | off | Genera artefactos Markdown iniciales bajo `qa-ai-output/` |
446
+ | `--with-test-management-mapping` | flag | off | Crea el archivo configurado de mapping de gestión de pruebas |
447
+ | `--force` | flag | off | Permite sobrescribir archivos generados |
448
+
449
+ Overrides avanzados de framework y rutas:
450
+
451
+ | Opción | Valores de Ejemplo | Propósito |
452
+ |---|---|---|
453
+ | `--ui-framework <name>` | `none`, `undecided`, `webdriverio`, `playwright`, `cypress`, `selenium` | Sobrescribe el framework UI/E2E de la plantilla base |
454
+ | `--api-framework <name>` | `none`, `undecided`, `playwright-api`, `postman`, `rest-assured`, `karate` | Sobrescribe el framework API/integration de la plantilla base |
455
+ | `--ui-specs-path <path>` | `tests/wdio/specs` | Sobrescribe la ruta de specs UI |
456
+ | `--ui-page-objects-path <path>` | `tests/wdio/pageobjects` | Sobrescribe la ruta de page objects UI |
457
+ | `--api-specs-path <path>` | `tests/api/specs` | Sobrescribe la ruta de specs API |
458
+ | `--specialist-mode <mode>` | `auto`, `off`, `required` | Controla activación de especialistas |
459
+ | `--set <key=value>` | `automation.ui.framework=cypress` | Define directamente un valor escalar de config |
460
+
461
+ Ejemplos:
462
+
463
+ ```bash
464
+ # Setup por defecto
465
+ node .qa-ai/scripts/init.mjs
466
+
467
+ # Interfaz en español y Gherkin en español, sin carpetas de automatización
468
+ npx qa-flowkit init --preset manual-only --interface-language es --gherkin-language es
469
+
470
+ # Generar solo adaptadores generic y Codex
471
+ node .qa-ai/scripts/init.mjs --adapters generic,codex
472
+
473
+ # Generar también plantillas iniciales de artefactos QA
474
+ node .qa-ai/scripts/init.mjs --with-doc-templates
475
+
476
+ # Registrar una carpeta de contexto QA tras la revision del agente
477
+ node .qa-ai/scripts/init.mjs --qa-context qa-ai-knowledge
478
+
479
+ # Generar todos los adaptadores soportados
480
+ node .qa-ai/scripts/init.mjs --adapters all
481
+ ```
482
+
483
+ Los flags de framework y rutas son overrides avanzados. Si una plantilla base ya define los frameworks que quieres, omite esos flags para conservar las rutas de la plantilla.
484
+
485
+ ## Plantillas Base
486
+
487
+ El flag se sigue llamando `--preset` por compatibilidad con la CLI, pero conceptualmente son plantillas base: aportan una configuración inicial completa que tus flags pueden sobrescribir.
488
+
489
+ | Plantilla Base (`--preset`) | Mejor Para | Automatización Por Defecto |
490
+ |---|---|---|
491
+ | `webdriverio-playwright-api` | Repositorios de QA + automatización | WebdriverIO UI/E2E y Playwright API |
492
+ | `selenium-jest-browserstack` | Automatización UI estilo Selenium | Carpetas Selenium/Jest/BrowserStack |
493
+ | `manual-only` | Diseño QA sin carpetas de automatización | Ninguna |
494
+
495
+ ## Adaptadores
496
+
497
+ | Adaptador | Ruta Generada | Notas |
498
+ |---|---|---|
499
+ | Genérico | `AGENTS.md` | Reglas de seguridad y comportamiento cross-agent |
500
+ | Claude Code | `.claude/` | Slash commands, incluido `/qa-init` |
501
+ | Codex | `.codex/` | Prompts de onboarding para Codex |
502
+ | OpenCode | `.opencode/` | Slash commands, incluido `/qa-init` |
503
+ | Cline | `.clinerules`, `.cline/` | Reglas y documentación para Cline |
504
+ | Continue | `.continue/` | Guía de revisión y checks |
505
+ | Aider | `.aider.conf.yml`, `.aider/` | Lista de lectura y notas de comandos |
506
+ | Goose | `.goose/` | Receta reutilizable de workflow |
507
+ | Gemini CLI | `GEMINI.md` | Contexto de proyecto para Gemini CLI |
508
+
509
+ ## Estructura Generada
510
+
511
+ ```text
512
+ qa-ai.config.yaml
513
+ .opencode/
514
+ qa-ai-output/
515
+ qa-ai-output/qa-knowledge-summary.md # Opcional, escrito por intake de contexto QA asistido por agente
516
+ qa-ai-output/qa-init-decisions.md # Opcional, escrito por intake de contexto QA asistido por agente
517
+ features/
518
+ tests/
519
+
520
+ # Opcional, solo cuando se pide mediante --adapters
521
+ AGENTS.md
522
+ .claude/
523
+ .codex/
524
+ .cline/
525
+ .clinerules
526
+ .continue/
527
+ .aider.conf.yml
528
+ .aider/
529
+ .goose/
530
+ GEMINI.md
531
+ ```
532
+
533
+ El init por defecto crea solo los archivos y carpetas mínimos. No crea artefactos iniciales `qa-ai-output/*.md` salvo que pases `--with-doc-templates`, y solo genera el adaptador OpenCode salvo que `--adapters` pida más.
534
+
535
+ Las subcarpetas exactas de `tests/` dependen de la configuración. Init crea rutas UI/API cuando hay frameworks configurados, y omite carpetas de automatización cuando los frameworks son `none` o `undecided`.
536
+
537
+ Cuando `project.interfaceLanguage` es `es`, init localiza los encabezados de los artefactos Markdown de QA. El idioma de Gherkin se controla por separado con `gherkin.language`.
538
+
539
+ ## Reglas Gherkin
540
+
541
+ | Regla | Requisito |
542
+ |---|---|
543
+ | Idioma | Inglés (`en`) o español (`es`) desde `qa-ai.config.yaml` |
544
+ | Directiva en español | Los `.feature` en español deben incluir `# language: es` |
545
+ | Modelo de archivo | Un `.feature` por caso de prueba |
546
+ | Modelo de escenario | Una keyword de escenario configurada por archivo |
547
+ | Criterios de aceptación | `Acceptance Criteria:` en inglés o `Criterios de aceptación:` en español |
548
+ | Tags requeridos | `@priority:<valor>`, `@type:<valor>`, `@manual:<valor>` |
549
+ | Alcance | Las pruebas manuales tienen `.feature`; unit tests quedan fuera de alcance |
550
+
551
+ ## Limpieza
552
+
553
+ `init.mjs` y `sync-agent-adapters.mjs` mantienen un manifiesto en:
554
+
555
+ ```text
556
+ .qa-ai/state/init-manifest.json
557
+ ```
558
+
559
+ La limpieza es dry-run por defecto:
560
+
561
+ ```bash
562
+ node .qa-ai/scripts/clean.mjs
563
+ ```
564
+
565
+ Para ejecutar limpieza, pasa `--force` y el alcance:
566
+
567
+ ```bash
568
+ node .qa-ai/scripts/clean.mjs --generated --force
569
+ node .qa-ai/scripts/clean.mjs --adapters --empty-dirs --force
570
+ node .qa-ai/scripts/clean.mjs --all --force
571
+ ```
572
+
573
+ Reglas de seguridad:
574
+
575
+ - Solo se eliminan archivos rastreados en el manifiesto.
576
+ - Los archivos modificados desde init se omiten por defecto.
577
+ - `--include-modified` es obligatorio para borrar archivos rastreados modificados.
578
+ - Las carpetas se eliminan solo si están rastreadas y vacías.
579
+ - La carpeta copiada `.qa-ai/` no se elimina con `clean`.
580
+
581
+ ## Documentación
582
+
583
+ | Documento | Propósito |
584
+ |---|---|
585
+ | [Primeros pasos](docs/qa-ai/getting-started.md) | Flujos de configuración paso a paso por tipo de usuario |
586
+ | [QA help y tracks](docs/qa-ai/qa-help.md) | Siguiente paso contextual y profundidad del flujo (`quick` / `standard` / `enterprise`) |
587
+ | [Release gate](docs/qa-ai/release-gate.md) | Decisión go/no-go enterprise (`PASS` / `CONCERNS` / `FAIL` / `WAIVED`) |
588
+ | [Test design dual-mode](docs/qa-ai/test-design-dual-mode.md) | Diseno de pruebas a nivel sistema y por RF (inspirado en BMAD TEA) |
589
+ | [Solución de problemas](docs/qa-ai/troubleshooting.md) | Fallos comunes y cómo resolverlos |
590
+ | [Transcripts de terminal](docs/qa-ai/terminal-transcripts.md) | Salida real de comandos para flujos comunes |
591
+ | [Arquitectura](docs/qa-ai/architecture.md) | Estructura del framework y modelo de seguridad |
592
+ | [Workflow](docs/qa-ai/workflow.md) | Flujo QA end-to-end |
593
+ | [Compatibilidad de agentes](docs/qa-ai/agent-compatibility.md) | Adaptadores y discovery de comandos |
594
+ | [Personalización de agentes](docs/qa-ai/customizing-agents.md) | Cómo adaptar agentes, especialistas y adaptadores de forma segura |
595
+ | [Limpieza](docs/qa-ai/cleanup.md) | Detalles de limpieza basada en manifiesto |
596
+ | [Roadmap](ROADMAP.md) | Dirección del producto |
597
+ | [Contribuir](CONTRIBUTING.md) | Guía de contribución |
598
+ | [Seguridad](SECURITY.md) | Política de vulnerabilidades y secretos |
599
+
600
+ ## Licencia
601
+
602
+ MIT. Ver [LICENSE](LICENSE).