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.
- package/.qa-ai/adapters/aider/.aider/README.md +25 -0
- package/.qa-ai/adapters/aider/.aider.conf.yml +6 -0
- package/.qa-ai/adapters/claude/agents/qa-workflow-orchestrator.md +18 -0
- package/.qa-ai/adapters/claude/commands/qa-add-tests.md +42 -0
- package/.qa-ai/adapters/claude/commands/qa-automation-plan.md +43 -0
- package/.qa-ai/adapters/claude/commands/qa-clean.md +42 -0
- package/.qa-ai/adapters/claude/commands/qa-config.md +51 -0
- package/.qa-ai/adapters/claude/commands/qa-coverage.md +46 -0
- package/.qa-ai/adapters/claude/commands/qa-doctor.md +11 -0
- package/.qa-ai/adapters/claude/commands/qa-full-flow.md +59 -0
- package/.qa-ai/adapters/claude/commands/qa-gate.md +36 -0
- package/.qa-ai/adapters/claude/commands/qa-help.md +30 -0
- package/.qa-ai/adapters/claude/commands/qa-init.md +70 -0
- package/.qa-ai/adapters/claude/commands/qa-status.md +56 -0
- package/.qa-ai/adapters/claude/commands/qa-update-tests.md +47 -0
- package/.qa-ai/adapters/claude/commands/qa-validate-features.md +36 -0
- package/.qa-ai/adapters/cline/.cline/README.md +25 -0
- package/.qa-ai/adapters/cline/.clinerules +9 -0
- package/.qa-ai/adapters/codex/README.md +44 -0
- package/.qa-ai/adapters/codex/prompts/implement-project.md +15 -0
- package/.qa-ai/adapters/continue/README.md +26 -0
- package/.qa-ai/adapters/continue/checks/qa-feature-conventions.md +15 -0
- package/.qa-ai/adapters/gemini/GEMINI.md +40 -0
- package/.qa-ai/adapters/generic/AGENTS.md +100 -0
- package/.qa-ai/adapters/goose/recipes/qa-flowkit.yaml +20 -0
- package/.qa-ai/adapters/opencode/README.md +57 -0
- package/.qa-ai/adapters/opencode/agents/qa-workflow.md +18 -0
- package/.qa-ai/adapters/opencode/commands/qa-add-tests.md +42 -0
- package/.qa-ai/adapters/opencode/commands/qa-automation-plan.md +43 -0
- package/.qa-ai/adapters/opencode/commands/qa-clean.md +42 -0
- package/.qa-ai/adapters/opencode/commands/qa-config.md +51 -0
- package/.qa-ai/adapters/opencode/commands/qa-coverage.md +46 -0
- package/.qa-ai/adapters/opencode/commands/qa-doctor.md +13 -0
- package/.qa-ai/adapters/opencode/commands/qa-full-flow.md +59 -0
- package/.qa-ai/adapters/opencode/commands/qa-gate.md +36 -0
- package/.qa-ai/adapters/opencode/commands/qa-help.md +30 -0
- package/.qa-ai/adapters/opencode/commands/qa-init.md +70 -0
- package/.qa-ai/adapters/opencode/commands/qa-status.md +56 -0
- package/.qa-ai/adapters/opencode/commands/qa-update-tests.md +47 -0
- package/.qa-ai/adapters/opencode/commands/qa-validate-features.md +36 -0
- package/.qa-ai/agents/README.md +39 -0
- package/.qa-ai/agents/api-testing-agent.md +73 -0
- package/.qa-ai/agents/automation-feasibility-agent.md +128 -0
- package/.qa-ai/agents/gherkin-test-design-agent.md +110 -0
- package/.qa-ai/agents/jira-task-agent.md +92 -0
- package/.qa-ai/agents/pr-agent.md +101 -0
- package/.qa-ai/agents/qa-context-intake-agent.md +75 -0
- package/.qa-ai/agents/qa-workflow-orchestrator.md +113 -0
- package/.qa-ai/agents/release-gate-agent.md +50 -0
- package/.qa-ai/agents/requirements-intake-agent.md +79 -0
- package/.qa-ai/agents/requirements-normalization-agent.md +80 -0
- package/.qa-ai/agents/specialists/available/appium.md +59 -0
- package/.qa-ai/agents/specialists/available/cypress.md +68 -0
- package/.qa-ai/agents/specialists/available/generic-test-design.md +117 -0
- package/.qa-ai/agents/specialists/available/jira.md +108 -0
- package/.qa-ai/agents/specialists/available/karate.md +97 -0
- package/.qa-ai/agents/specialists/available/playwright-api.md +87 -0
- package/.qa-ai/agents/specialists/available/playwright-ui.md +87 -0
- package/.qa-ai/agents/specialists/available/postman.md +108 -0
- package/.qa-ai/agents/specialists/available/rest-assured.md +103 -0
- package/.qa-ai/agents/specialists/available/selenium.md +91 -0
- package/.qa-ai/agents/specialists/available/testrail.md +85 -0
- package/.qa-ai/agents/specialists/available/webdriverio.md +81 -0
- package/.qa-ai/agents/test-design-system-agent.md +33 -0
- package/.qa-ai/agents/testrail-coverage-agent.md +84 -0
- package/.qa-ai/agents/testrail-sync-agent.md +96 -0
- package/.qa-ai/agents/webdriverio-implementation-agent.md +84 -0
- package/.qa-ai/presets/manual-only.yaml +65 -0
- package/.qa-ai/presets/selenium-jest-browserstack.yaml +72 -0
- package/.qa-ai/presets/webdriverio-playwright-api.yaml +85 -0
- package/.qa-ai/rules/api-testing.rules.md +7 -0
- package/.qa-ai/rules/approval.rules.md +8 -0
- package/.qa-ai/rules/automation.rules.md +7 -0
- package/.qa-ai/rules/gherkin.rules.md +12 -0
- package/.qa-ai/rules/testrail.rules.md +10 -0
- package/.qa-ai/rules/webdriverio.rules.md +9 -0
- package/.qa-ai/scripts/bootstrap-agent-adapters.mjs +127 -0
- package/.qa-ai/scripts/clean.mjs +243 -0
- package/.qa-ai/scripts/config.mjs +202 -0
- package/.qa-ai/scripts/doctor.mjs +383 -0
- package/.qa-ai/scripts/init.mjs +447 -0
- package/.qa-ai/scripts/lib/markdown-table.mjs +76 -0
- package/.qa-ai/scripts/lib/project-config.mjs +184 -0
- package/.qa-ai/scripts/lib/qa-next-steps.mjs +578 -0
- package/.qa-ai/scripts/lib/release-gate.mjs +66 -0
- package/.qa-ai/scripts/lib/test-design.mjs +92 -0
- package/.qa-ai/scripts/lib/test-management-mapping.mjs +73 -0
- package/.qa-ai/scripts/lib/utils.mjs +331 -0
- package/.qa-ai/scripts/qa-help.mjs +44 -0
- package/.qa-ai/scripts/smoke-npm-pack.mjs +187 -0
- package/.qa-ai/scripts/smoke-test.mjs +465 -0
- package/.qa-ai/scripts/sync-agent-adapters.mjs +121 -0
- package/.qa-ai/scripts/test-validators.mjs +334 -0
- package/.qa-ai/scripts/validate-active-specialists.mjs +106 -0
- package/.qa-ai/scripts/validate-features.mjs +277 -0
- package/.qa-ai/scripts/validate-release-gate.mjs +105 -0
- package/.qa-ai/scripts/validate-sync-plan.mjs +186 -0
- package/.qa-ai/scripts/validate-target.mjs +104 -0
- package/.qa-ai/scripts/validate-test-design.mjs +117 -0
- package/.qa-ai/scripts/validate-traceability.mjs +183 -0
- package/.qa-ai/templates/automation-feasibility-report.template.md +21 -0
- package/.qa-ai/templates/automation-implementation-plan.template.md +23 -0
- package/.qa-ai/templates/feature.template +13 -0
- package/.qa-ai/templates/jira-automation-task.template.md +25 -0
- package/.qa-ai/templates/pr-template.md +60 -0
- package/.qa-ai/templates/release-gate.template.yaml +16 -0
- package/.qa-ai/templates/requirement-analysis.template.md +17 -0
- package/.qa-ai/templates/test-design-proposal.template.md +26 -0
- package/.qa-ai/templates/test-design-system.template.md +15 -0
- package/.qa-ai/templates/test-management-mapping.template.json +18 -0
- package/.qa-ai/templates/testrail-coverage-analysis.template.md +17 -0
- package/.qa-ai/templates/testrail-sync-plan.template.md +22 -0
- package/.qa-ai/templates/traceability-matrix.template.md +4 -0
- package/.qa-ai/workflows/automation-analysis.md +23 -0
- package/.qa-ai/workflows/cleanup.md +52 -0
- package/.qa-ai/workflows/context-intake.md +66 -0
- package/.qa-ai/workflows/full-flow.md +55 -0
- package/.qa-ai/workflows/implementation.md +24 -0
- package/.qa-ai/workflows/intake.md +3 -0
- package/.qa-ai/workflows/pr.md +3 -0
- package/.qa-ai/workflows/release-gate.md +22 -0
- package/.qa-ai/workflows/test-design-system.md +33 -0
- package/.qa-ai/workflows/test-design.md +23 -0
- package/.qa-ai/workflows/testrail-sync.md +23 -0
- package/CHANGELOG.md +108 -0
- package/CODE_OF_CONDUCT.md +11 -0
- package/CONTRIBUTING.md +39 -0
- package/LICENSE +21 -0
- package/README.es.md +602 -0
- package/README.md +633 -0
- package/ROADMAP.md +107 -0
- package/SECURITY.md +18 -0
- package/bin/qa-flowkit.mjs +214 -0
- package/docs/qa-ai/agent-compatibility.md +100 -0
- package/docs/qa-ai/architecture.md +130 -0
- package/docs/qa-ai/backlog.md +393 -0
- package/docs/qa-ai/cleanup.md +104 -0
- package/docs/qa-ai/customizing-agents.md +148 -0
- package/docs/qa-ai/getting-started.md +385 -0
- package/docs/qa-ai/implementation-guide-for-codex.md +210 -0
- package/docs/qa-ai/npm-migration-plan.md +50 -0
- package/docs/qa-ai/open-source-release-checklist.md +17 -0
- package/docs/qa-ai/qa-help.md +76 -0
- package/docs/qa-ai/release-gate.md +60 -0
- package/docs/qa-ai/terminal-transcripts.md +316 -0
- package/docs/qa-ai/test-design-dual-mode.md +75 -0
- package/docs/qa-ai/troubleshooting.md +740 -0
- package/docs/qa-ai/workflow.md +147 -0
- package/package.json +72 -0
package/README.es.md
ADDED
|
@@ -0,0 +1,602 @@
|
|
|
1
|
+
# QA FlowKit
|
|
2
|
+
|
|
3
|
+
[](LICENSE)
|
|
4
|
+
[](package.json)
|
|
5
|
+
[](ROADMAP.md)
|
|
6
|
+
[](docs/qa-ai/workflow.md)
|
|
7
|
+
[](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).
|