siesa-agents 2.1.67 → 2.1.70
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/bmad/bmm/data/git-flow-siesa.md +24 -4
- package/claude/commands/bmad/bmm/workflows/code-review.md +6 -5
- package/claude/commands/bmad/bmm/workflows/quality-process.md +5 -0
- package/claude/commands/jira_sync/sync-epics-stories.md +5 -0
- package/claude/commands/sa-jira-sync.md +11 -0
- package/gemini/commands/bmad-workflow-bmm-code-review.toml +6 -5
- package/gemini/commands/bmad-workflow-bmm-quality-process.toml +4 -0
- package/gemini/commands/sa-jira-sync.toml +9 -0
- package/gemini/commands/sa-workflow-sync-epics-stories.toml +4 -0
- package/package.json +1 -1
- package/siesa-agents/bmm/workflows/2-plan-workflows/prd/workflow_ext.md +21 -2
- package/siesa-agents/bmm/workflows/3-solutioning/create-epics-and-stories/workflow_ext.md +6 -0
- package/siesa-agents/bmm/workflows/3-solutioning/quality-process/prompts/prompt_test_plan.md +340 -0
- package/siesa-agents/bmm/workflows/3-solutioning/quality-process/workflow.md +604 -0
- package/siesa-agents/bmm/workflows/4-implementation/code-review/workflow_ext.md +141 -0
- package/siesa-agents/bmm/workflows/4-implementation/create-story/workflow_ext.md +17 -2
- package/siesa-agents/bmm/workflows/4-implementation/dev-story/workflow_ext.md +79 -1
- package/siesa-agents/sa/sa-jira-sync-api/jira-sync-api.md +246 -0
- package/siesa-agents/sa/sync-epics-stories/data/templates/subtask-template.json +18 -0
- package/{bmad/bmm/workflows → siesa-agents/sa}/sync-epics-stories/steps/step-01-init.md +12 -7
- package/{bmad/bmm/workflows → siesa-agents/sa}/sync-epics-stories/steps/step-01b-continue.md +1 -1
- package/siesa-agents/sa/sync-epics-stories/steps/step-02-setup.md +174 -0
- package/siesa-agents/sa/sync-epics-stories/steps/step-03-scope.md +113 -0
- package/siesa-agents/sa/sync-epics-stories/steps/step-04-epics.md +226 -0
- package/siesa-agents/sa/sync-epics-stories/steps/step-05-stories.md +383 -0
- package/siesa-agents/sa/sync-epics-stories/workflow.md +91 -0
- package/siesa-agents/scripts/jira/README.md +76 -0
- package/siesa-agents/scripts/jira/add-comment.js +31 -0
- package/siesa-agents/scripts/jira/batch-create.js +68 -0
- package/siesa-agents/scripts/jira/create-issue.js +44 -0
- package/siesa-agents/scripts/jira/edit-issue.js +39 -0
- package/siesa-agents/scripts/jira/get-issue.js +39 -0
- package/siesa-agents/scripts/jira/lib/adf.js +88 -0
- package/siesa-agents/scripts/jira/lib/args.js +44 -0
- package/siesa-agents/scripts/jira/lib/jira-client.js +165 -0
- package/siesa-agents/scripts/jira/refresh-token.js +50 -0
- package/siesa-agents/scripts/jira/search.js +47 -0
- package/siesa-agents/scripts/jira/transition.js +80 -0
- package/bmad/bmm/workflows/4-implementation/traceability-and-testing/README.md +0 -635
- package/bmad/bmm/workflows/4-implementation/traceability-and-testing/data/excel-structure-guide.md +0 -255
- package/bmad/bmm/workflows/4-implementation/traceability-and-testing/steps/step-01-init.md +0 -1149
- package/bmad/bmm/workflows/4-implementation/traceability-and-testing/steps/step-01b-continue.md +0 -333
- package/bmad/bmm/workflows/4-implementation/traceability-and-testing/steps/step-02-build-traceability.md +0 -488
- package/bmad/bmm/workflows/4-implementation/traceability-and-testing/steps/step-03-interpret-tests.md +0 -1047
- package/bmad/bmm/workflows/4-implementation/traceability-and-testing/steps/step-04-generate-plans.md +0 -936
- package/bmad/bmm/workflows/4-implementation/traceability-and-testing/steps/step-05-export.md +0 -265
- package/bmad/bmm/workflows/4-implementation/traceability-and-testing/templates/README.md +0 -256
- package/bmad/bmm/workflows/4-implementation/traceability-and-testing/templates/epic-test-plan-template.md +0 -215
- package/bmad/bmm/workflows/4-implementation/traceability-and-testing/templates/test-cases-reference.csv +0 -11
- package/bmad/bmm/workflows/4-implementation/traceability-and-testing/templates/test-cases-structure.md +0 -568
- package/bmad/bmm/workflows/4-implementation/traceability-and-testing/templates/test-cases-summary-template.md +0 -74
- package/bmad/bmm/workflows/4-implementation/traceability-and-testing/templates/test-cases-template.csv +0 -11
- package/bmad/bmm/workflows/4-implementation/traceability-and-testing/templates/traceability-map-template.md +0 -59
- package/bmad/bmm/workflows/4-implementation/traceability-and-testing/workflow.md +0 -564
- package/bmad/bmm/workflows/4-implementation/traceability-and-testing/workflow.yaml +0 -138
- package/bmad/bmm/workflows/sync-epics-stories/data/templates/subtask-template.json +0 -4
- package/bmad/bmm/workflows/sync-epics-stories/steps/step-02-setup.md +0 -117
- package/bmad/bmm/workflows/sync-epics-stories/steps/step-03-scope.md +0 -70
- package/bmad/bmm/workflows/sync-epics-stories/steps/step-04-epics.md +0 -107
- package/bmad/bmm/workflows/sync-epics-stories/steps/step-05-stories.md +0 -163
- package/bmad/bmm/workflows/sync-epics-stories/workflow.md +0 -54
- package/claude/commands/bmad/bmm/workflows/sync-epics-stories.md +0 -5
- package/claude/commands/bmad/bmm/workflows/traceability-and-testing.md +0 -5
- package/claude/commands/jira_sync/feature_sync.md +0 -131
- package/gemini/commands/bmad-workflow-bmm-sync-epics-stories.toml +0 -4
- package/gemini/commands/bmad-workflow-bmm-traceability-and-testing.toml +0 -4
- /package/{bmad/bmm/workflows/4-implementation/traceability-and-testing → siesa-agents/bmm/workflows/3-solutioning/quality-process}/prompts/prompt_design_test.md +0 -0
- /package/{bmad/bmm/workflows → siesa-agents/sa}/sync-epics-stories/completion-summary-sync-epics-stories.md +0 -0
- /package/{bmad/bmm/workflows → siesa-agents/sa}/sync-epics-stories/data/templates/epic-template.json +0 -0
- /package/{bmad/bmm/workflows → siesa-agents/sa}/sync-epics-stories/data/templates/story-template.json +0 -0
- /package/{bmad/bmm/workflows → siesa-agents/sa}/sync-epics-stories/data/templates/task-template.json +0 -0
- /package/{bmad/bmm/workflows → siesa-agents/sa}/sync-epics-stories/workflow-plan-sync-epics-stories.md +0 -0
|
@@ -14,10 +14,13 @@ Para cualquier desarrollo de funcionalidad (**feature**), la rama de origen debe
|
|
|
14
14
|
|
|
15
15
|
---
|
|
16
16
|
|
|
17
|
-
## 2. Nomenclatura de la Rama
|
|
17
|
+
## 2. Nomenclatura de la Rama y worktree
|
|
18
18
|
La estructura del nombre debe seguir el formato:
|
|
19
19
|
`rama-padre-team-owner-rq-descripcion`.
|
|
20
20
|
|
|
21
|
+
Identificar el folder actual para usarlo en la generacion del worktree de la siguiente manera:
|
|
22
|
+
`git worktree add ../wt-{folder-name}/{folder-name}-{branch-name} -b {branch-name}`
|
|
23
|
+
|
|
21
24
|
**Parámetros Sugeridos:**
|
|
22
25
|
* **Rama Padre:** `develop`.
|
|
23
26
|
* **Team:** (Debe coincidir con un prefijo válido, ej: `legacy-erp-nomina`).
|
|
@@ -26,7 +29,7 @@ La estructura del nombre debe seguir el formato:
|
|
|
26
29
|
* **Descripción:** Breve, en minúsculas y con guiones.
|
|
27
30
|
|
|
28
31
|
**Ejemplo de comando:**
|
|
29
|
-
`git
|
|
32
|
+
`git worktree ../wt-erp-nomina/erp-nomina-develop-legacy-erp-nomina-gaduranb-rq1234-nueva-interfaz -b develop-legacy-erp-nomina-gaduranb-rq1234-nueva-interfaz`.
|
|
30
33
|
|
|
31
34
|
---
|
|
32
35
|
|
|
@@ -43,8 +46,25 @@ Se adopta el formato de **Conventional Commits** para mejorar la legibilidad y a
|
|
|
43
46
|
* `git commit -m "fix: corregir cálculo de nómina en rama legacy"`.
|
|
44
47
|
|
|
45
48
|
---
|
|
49
|
+
## 4. Cambio de ramas
|
|
50
|
+
Para cambiar de rama se debe rastrear primero la ruta de la misma usando el listado del worktree `git worktree list`, una vez obtenida la ruta se cambia a la carpeta especifica de la rama que se necesita.
|
|
51
|
+
|
|
52
|
+
**Ejemplo de comando:**
|
|
53
|
+
comando:
|
|
54
|
+
`git worktree list`
|
|
46
55
|
|
|
47
|
-
|
|
56
|
+
resultado:
|
|
57
|
+
`C:/labs/siesaAgentsAlpha/siesaAgentsAlpha 7136248 [develop]`
|
|
58
|
+
`C:/labs/siesaAgentsAlpha/wt-erp-nomina/erp-nomina-develop-legacy-erp-nomina-gaduranb-rq1234-nueva-interfaz 86ed4a7 [develop-legacy-erp-nomina-gaduranb-rq1234-nueva-interfaz]`
|
|
59
|
+
`C:/labs/siesaAgentsAlpha/wt-erp-nomina/erp-nomina-develop-legacy-gaduranb-rq1235-metodos d0ddac7 [develop-legacy-gaduranb-rq1235-metodos]`
|
|
60
|
+
|
|
61
|
+
cambio de rama:
|
|
62
|
+
`cd ../wt-erp-nomina/erp-nomina-develop-legacy-gaduranb-rq1235-metodos`
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
## 5. Reglas de Oro de Gobernanza
|
|
48
66
|
* **Todo en Minúsculas:** Los nombres de ramas y repositorios no deben contener mayúsculas.
|
|
49
67
|
* **Protección de Ramas:** `main` y `develop` están protegidas; el push directo está prohibido.
|
|
50
|
-
* **
|
|
68
|
+
* **Cuando realizar commit** Los commits deberan hacerce por historia en el code review, especificamente cuando este en status done la historia.
|
|
69
|
+
* **Generacion de ramas** Las ramas se deben generar por epicas o por features nunca por historia.
|
|
70
|
+
* **Nota:** Esta automatización solo podrá crear las ramas como se indica y realizar push a las mismas en caso de ser necesario.
|
|
@@ -5,9 +5,10 @@ description: 'Perform an ADVERSARIAL Senior Developer code review that finds 3-1
|
|
|
5
5
|
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
|
|
6
6
|
|
|
7
7
|
<steps CRITICAL="TRUE">
|
|
8
|
-
1.
|
|
9
|
-
2.
|
|
10
|
-
3.
|
|
11
|
-
4.
|
|
12
|
-
5.
|
|
8
|
+
1. FIRST, LOAD and READ the FULL contents of the custom extension file at: `_siesa-agents/bmm/workflows/4-implementation/code-review/workflow_ext.md`. You MUST assimilate these pre-requisites before doing anything else.
|
|
9
|
+
2. Always LOAD the FULL @_bmad/core/tasks/workflow.xml
|
|
10
|
+
3. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @_bmad/bmm/workflows/4-implementation/code-review/workflow.md
|
|
11
|
+
4. Pass the yaml path _bmad/bmm/workflows/4-implementation/code-review/workflow.md as 'workflow-config' parameter to the workflow.xml instructions
|
|
12
|
+
5. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
|
|
13
|
+
6. Save outputs after EACH section when generating any documents from templates
|
|
13
14
|
</steps>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 'QA Quality Process — Phase 1 Planning or Phase 2 Design (QA Test Plan & Strategy). Asks at startup which phase to execute.'
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @_siesa-agents/bmm/workflows/3-solutioning/quality-process/workflow.md, READ its entire contents and follow its directions exactly!
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sa-jira-sync
|
|
3
|
+
description: Query Jira and return a minimal hierarchy of Epics → Stories → Subtasks for a given project and epic status. Returns only id, key, name, and status for each level. Use when the user needs to inspect or export the epic/story/subtask structure from siesa-team or siesa-test-sandbox.
|
|
4
|
+
argument-hint: [PROJECT-KEY] [--status "Epic Status"]
|
|
5
|
+
user-invocable: true
|
|
6
|
+
allowed-tools: Bash, Read, Write
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
Handle the Jira sync request: **$ARGUMENTS**
|
|
10
|
+
|
|
11
|
+
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @_siesa-agents/sa/sa-jira-sync-api/jira-sync-api.md, READ its entire contents and follow its directions exactly!
|
|
@@ -3,10 +3,11 @@ prompt = """
|
|
|
3
3
|
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
|
|
4
4
|
|
|
5
5
|
<steps CRITICAL="TRUE">
|
|
6
|
-
1.
|
|
7
|
-
2.
|
|
8
|
-
3.
|
|
9
|
-
4.
|
|
10
|
-
5.
|
|
6
|
+
1. FIRST, LOAD and READ the FULL contents of the custom extension file at: `_siesa-agents/bmm/workflows/4-implementation/code-review/workflow_ext.md`. You MUST assimilate these pre-requisites before doing anything else.
|
|
7
|
+
2. Always LOAD the FULL @_bmad/core/tasks/workflow.xml
|
|
8
|
+
3. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml
|
|
9
|
+
4. Pass the yaml path _bmad/bmm/workflows/4-implementation/code-review/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
|
|
10
|
+
5. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
|
|
11
|
+
6. Save outputs after EACH section when generating any documents from templates
|
|
11
12
|
</steps>
|
|
12
13
|
"""
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
description = "BMAD BMM Workflow: quality — QA Quality Process (Phase 1 Planning or Phase 2 Design)"
|
|
2
|
+
prompt = """
|
|
3
|
+
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @_siesa-agents/bmm/workflows/3-solutioning/quality-process/workflow.md, READ its entire contents and follow its directions exactly!
|
|
4
|
+
"""
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
description = "SA: Query Jira and return a minimal hierarchy of Epics → Stories → Subtasks for a given project and epic status. Returns only id, key, name, and status for each level."
|
|
2
|
+
prompt = """
|
|
3
|
+
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @_siesa-agents/sa/sa-jira-sync-api/jira-sync-api.md, READ its entire contents and follow its directions exactly!
|
|
4
|
+
|
|
5
|
+
Parse the user arguments: **$ARGUMENTS**
|
|
6
|
+
- First positional arg → PROJECT_KEY (e.g. PPS)
|
|
7
|
+
- --status "..." → filter epics by this status name (default: En curso)
|
|
8
|
+
- If no PROJECT_KEY is provided, prompt the user for one.
|
|
9
|
+
"""
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
description = "SA Workflow: sync-epics-stories — Sync Epics and Stories with Jira"
|
|
2
|
+
prompt = """
|
|
3
|
+
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @_siesa-agents/sa/sync-epics-stories/workflow.md, READ its entire contents and follow its directions exactly!
|
|
4
|
+
"""
|
package/package.json
CHANGED
|
@@ -16,11 +16,30 @@ Cuando el workflow llegue a la fase de descubrimiento, presentar al usuario este
|
|
|
16
16
|
> **2. Proporcionarlos manualmente** — Puedes pegarlos aquí, compartir un archivo `.txt` o `.md`, o describirlos en texto libre."
|
|
17
17
|
|
|
18
18
|
<!-- INSTRUCCIONES DE WORKFLOW — NO mostrar al usuario -->
|
|
19
|
-
- Si el usuario elige **opción 1 (Jira):** Invocar el skill `get-features` (UBICADO EN .claude\commands\get-features\SKILL.md) usando el Skill tool con `skill: "get-features"`. El skill se encargará de autenticarse con Jira, seleccionar instancia y proyecto, y generar el árbol de features en `_bmad-output/planning-artifacts/jira-trees/`. Una vez generado, leer ese archivo y extraer la lista de features del resultado para usarla como estructura del PRD.
|
|
20
|
-
-
|
|
19
|
+
- Si el usuario elige **opción 1 (Jira):** Invocar el skill `get-features` (UBICADO EN .claude\commands\get-features\SKILL.md) usando el Skill tool con `skill: "get-features"`. El skill se encargará de autenticarse con Jira, seleccionar instancia y proyecto, y generar el árbol de features en `_bmad-output/planning-artifacts/jira-trees/`. Una vez generado, leer ese archivo y extraer la lista de features del resultado para usarla como estructura del PRD. Por cada feature extraído de Jira, **incluir obligatoriamente** el marcador `FEATURE_CODE_JIRA={ISSUE_KEY}` en su sección del PRD (donde `{ISSUE_KEY}` es el ID del issue en Jira, ej: `PROY-123`). Este marcador es crítico para la sincronización posterior con Jira:
|
|
20
|
+
- Los shards del PRD (`prd/f{N}-*.md`) y los shards de épicas (`epics/f{N}-*.md`) deben contener este marcador.
|
|
21
|
+
- Al sincronizar, el workflow resuelve el ID con este orden de prioridad: (1) busca `FEATURE_CODE_JIRA=` en el shard de la épica; (2) si no lo encuentra, lo busca en el shard del PRD correspondiente.
|
|
22
|
+
- ⚠️ Si ninguno de los dos shards contiene el marcador, la sincronización fallará para ese feature. Es responsabilidad del ingeniero asegurar que el marcador exista en al menos uno de los dos shards antes de ejecutar la sincronización.
|
|
23
|
+
- Si el usuario elige **opción 2 (Manual):** Aceptar la lista de features que el usuario proporcione en cualquier formato (texto libre, `.txt`, `.md` o copia-pegado) y procesarla directamente. Por cada feature creado manualmente, incluir el marcador `FEATURE_CODE_JIRA=PENDING:{feature-slug}` (donde `{feature-slug}` es el nombre del feature en kebab-case, ej: `FEATURE_CODE_JIRA=PENDING:gestion-de-clientes`). Este valor temporal indica que el feature aún no existe en Jira y será creado automáticamente cuando el ingeniero ejecute `jira_sync`.
|
|
21
24
|
|
|
22
25
|
Inyectar los features confirmados como estructura del PRD: cada feature debe quedar como una sección `### feature — {Name}` dentro del documento.
|
|
23
26
|
|
|
27
|
+
<!-- INSTRUCCIONES DE WORKFLOW — NO mostrar al usuario -->
|
|
28
|
+
**Si el PRD ya fue shardeado (existe la carpeta `prd/` con archivos `f{N}-*.md`):**
|
|
29
|
+
- **NO modificar** el PRD maestro original.
|
|
30
|
+
- Por cada nuevo feature que el ingeniero quiera agregar, ejecutar el siguiente flujo de resolución **antes de crear el shard**:
|
|
31
|
+
|
|
32
|
+
1. Invocar el skill `get-features` (usando el Skill tool con `skill: "get-features"`) para traer el árbol actualizado de features desde Jira.
|
|
33
|
+
2. Leer el árbol generado en `_bmad-output/planning-artifacts/jira-trees/` y filtrar los features que **no tienen shard local** (cuyo `ISSUE_KEY` no aparece en ningún `prd/f{N}-*.md` existente).
|
|
34
|
+
3. Mostrar al ingeniero la lista filtrada y preguntar:
|
|
35
|
+
> *"Se encontraron los siguientes features en Jira sin shard local. ¿Alguno corresponde al feature que acabas de describir?"*
|
|
36
|
+
- Listar cada feature con su KEY y nombre (ej: `PROY-89 — Gestión de Clientes`).
|
|
37
|
+
- Incluir siempre la opción: **"Ninguno — es un feature completamente nuevo, no existe en Jira"**.
|
|
38
|
+
4. **Si el ingeniero selecciona un feature de Jira** → crear el shard `f{N}-{feature-name}.md` con `FEATURE_CODE_JIRA={ISSUE_KEY}` del feature seleccionado.
|
|
39
|
+
5. **Si el ingeniero elige "Ninguno"** → crear el shard `f{N}-{feature-name}.md` con `FEATURE_CODE_JIRA=PENDING:{feature-slug}`.
|
|
40
|
+
|
|
41
|
+
- Informar al ingeniero qué archivo shard fue creado y que puede enriquecerlo con detalle adicional de forma independiente.
|
|
42
|
+
|
|
24
43
|
## 2. Naturaleza del PRD Generado
|
|
25
44
|
|
|
26
45
|
El PRD que produce este workflow es un **documento maestro general**. Contiene la definición base de cada feature a nivel de alcance, objetivos y requisitos generales — NO el detalle profundo de implementación de cada uno.
|
|
@@ -63,5 +63,11 @@ Una vez confirmada la lista de features, inyectar las siguientes reglas de estru
|
|
|
63
63
|
|
|
64
64
|
6. **Step 3 (Stories)**: Al generar épicas y stories, escribir cada feature como sección `##`, con sus épicas como `###` y stories como `####`. La numeración de stories sigue el patrón `{epic_num}.{story_num}` (ej: Story 3.1, Story 3.2 para Epic 3).
|
|
65
65
|
|
|
66
|
+
7. **Marcador `FEATURE_CODE_JIRA`**: Cada archivo shard de épica debe comenzar con la siguiente línea como **primera línea del archivo**, antes de cualquier heading:
|
|
67
|
+
```
|
|
68
|
+
<!-- FEATURE_CODE_JIRA=PENDING:{slug} -->
|
|
69
|
+
```
|
|
70
|
+
donde `{slug}` es el mismo slug kebab-case del feature correspondiente en el PRD shard (ej: `gestion-de-clientes`, `asociacion-cliente-contacto`). Este marcador es requerido por el workflow `sync-epics-stories` para asociar el shard con su issue en Jira.
|
|
71
|
+
|
|
66
72
|
**PASO 3: CONTINUAR CON WORKFLOW ESTÁNDAR**
|
|
67
73
|
Después de inyectar el contexto, continuar con el flujo normal del workflow `create-epics-and-stories` (step-01 → step-02 → step-03 → step-04), aplicando las reglas de estructura en cada paso.
|
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
# 🧠 PROMPT: GENERADOR DE PLAN & ESTRATEGIA DE PRUEBAS QA — BMAD Human–AI (v3.0)
|
|
2
|
+
# METODOLOGÍA: BMAD v6.0 | Zero-Bureaucracy | Spec-Driven Quality
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## ROL Y PERSPECTIVA
|
|
7
|
+
|
|
8
|
+
Eres un **QA Architect Senior** con 10+ años de experiencia en sistemas empresariales
|
|
9
|
+
complejos (ERP, HCM, CRM, plataformas financieras, compliance regulatorio).
|
|
10
|
+
Tu criterio de priorización combina **riesgo técnico**, **impacto de negocio** y
|
|
11
|
+
**exposición regulatoria/legal** según el dominio del producto.
|
|
12
|
+
Piensas como **defensor del negocio**, no solo como técnico de pruebas.
|
|
13
|
+
Trabajas bajo la metodología **BMAD v6.0 (Spec-Driven Quality)**.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 📥 FUENTES DE VERDAD
|
|
18
|
+
|
|
19
|
+
> Adjunta uno o más documentos fuente. El agente detecta automáticamente el dominio
|
|
20
|
+
> e infiere riesgos técnicos, funcionales y regulatorios relevantes.
|
|
21
|
+
|
|
22
|
+
| # | Tipo de Documento Fuente |
|
|
23
|
+
|---|---------------------------------------|
|
|
24
|
+
| 1 | PRD / Documento de Requerimientos |
|
|
25
|
+
| 2 | Documento de Arquitectura / ADR |
|
|
26
|
+
| 3 | User Stories / Épicas (Jira/Markdown) |
|
|
27
|
+
| 4 | Pull Request / Diff técnico |
|
|
28
|
+
| 5 | Contexto normativo / Regulatorio |
|
|
29
|
+
| 6 | Documento de diseño UX / Wireframes |
|
|
30
|
+
|
|
31
|
+
**Detección automática de dominio:**
|
|
32
|
+
- Nómina, HCM, liquidaciones → contexto laboral/contable
|
|
33
|
+
- APIs, microservicios, contratos → validación de integración y contratos
|
|
34
|
+
- Facturación, DIAN, tributario → contexto fiscal
|
|
35
|
+
- Autenticación, roles, permisos → contexto de seguridad RBAC
|
|
36
|
+
- En cualquier caso: aplicar estándar SIESA ERP/HCM si corresponde.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 🧠 ANÁLISIS INTERNO OBLIGATORIO (Chain-of-Thought)
|
|
41
|
+
|
|
42
|
+
Antes de generar el output, ejecuta estos 4 pasos internamente:
|
|
43
|
+
|
|
44
|
+
### PASO 1 — Impact Analysis (Blast Radius)
|
|
45
|
+
- ¿Qué módulos, servicios o entidades se ven afectados?
|
|
46
|
+
- ¿El cambio es aislado (feature) o cross-módulo (épica/plataforma)?
|
|
47
|
+
- ¿Afecta flujos críticos de negocio: liquidación, facturación, reportes legales, POS?
|
|
48
|
+
|
|
49
|
+
### PASO 2 — Technical Debt & Compliance Assessment
|
|
50
|
+
- ¿El cambio introduce complejidad nueva o modifica lógica certificada?
|
|
51
|
+
- ¿Hay dependencias con normativas vigentes (laborales, fiscales, contables)?
|
|
52
|
+
- ¿Existe riesgo de regresión en features ya en producción?
|
|
53
|
+
|
|
54
|
+
### PASO 3 — Risk Matrix Calculation
|
|
55
|
+
```
|
|
56
|
+
Riesgo = Impacto (1–5) × Probabilidad de Fallo (1–5)
|
|
57
|
+
```
|
|
58
|
+
- R > 15 🔴 → Regresión completa + Agentes de Seguridad activados
|
|
59
|
+
- R 8–15 🟡 → Integración + validación de contratos + concurrencia
|
|
60
|
+
- R < 8 🟢 → Unitarias + smoke test
|
|
61
|
+
|
|
62
|
+
### PASO 4 — Synergy Mapping (Agentes BMAD)
|
|
63
|
+
Identificar qué sub-agentes activar según las features detectadas:
|
|
64
|
+
- **Analizador Funcional** → cobertura de criterios de aceptación
|
|
65
|
+
- **Generador de Casos de Prueba** → escenarios positivos, negativos, borde
|
|
66
|
+
- **Analizador Predictivo de Riesgo** → zonas de mayor probabilidad de fallo
|
|
67
|
+
- **Validador Inteligente de Datos (Alquimista)** → Data Buckets por feature
|
|
68
|
+
- **Explorador Inteligente** → arquetipos de usuario y sesiones exploratorias
|
|
69
|
+
- **Clasificador Automático de Defectos** → taxonomía de bugs esperados
|
|
70
|
+
- **Analizador Post-Sprint** → métricas de cierre y aprendizaje continuo
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## 📦 OUTPUT REQUERIDO: PLAN DE PRUEBAS BMAD v3.0
|
|
75
|
+
|
|
76
|
+
Genera el plan completo en Markdown. Sé preciso, técnico y directo.
|
|
77
|
+
Omite secciones que no aporten valor al sprint si el stack ya está definido.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
### 📋 SECCIÓN 1 — INFORMACIÓN GENERAL
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
Proyecto: [Inferido del documento fuente]
|
|
85
|
+
Microservicio/Módulo: [Inferido]
|
|
86
|
+
Sprint / Ciclo: [Inferido o PENDIENTE]
|
|
87
|
+
Fecha del Plan: @currentDate
|
|
88
|
+
Autor: @currentUser — asistido por IA (BMAD)
|
|
89
|
+
Stack (solo si cambia respecto al sprint anterior o es primera vez):
|
|
90
|
+
Backend: [Inferir del documento de arquitectura]
|
|
91
|
+
Frontend: [Inferir]
|
|
92
|
+
Testing: [Inferir]
|
|
93
|
+
CI/CD: GitHub Actions, GitFlow
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
> ⚠️ Si el stack del microservicio ya está documentado en sprints previos,
|
|
97
|
+
> omitir detalle técnico y referenciar: "Stack vigente — ver Plan Sprint [N-1]".
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
### 🎯 SECCIÓN 2 — OBJETIVO & DoR / DoD
|
|
102
|
+
|
|
103
|
+
#### 2.1 Objetivos de Negocio
|
|
104
|
+
Listar en bullets concretos las metas de negocio que este plan protege.
|
|
105
|
+
Máximo 5 objetivos priorizados por impacto.
|
|
106
|
+
|
|
107
|
+
#### 2.2 Criterios de Calidad
|
|
108
|
+
| Criterio | Meta |
|
|
109
|
+
|----------|------|
|
|
110
|
+
| Cobertura backend | ≥ 80% |
|
|
111
|
+
| Cobertura frontend | ≥ 75% |
|
|
112
|
+
| Defectos P1 en producción | 0 |
|
|
113
|
+
| [Métricas NFR específicas del feature] | [Umbral] |
|
|
114
|
+
|
|
115
|
+
#### 2.3 Checklist DoR — Definition of Ready
|
|
116
|
+
> ✅ = Cumple | ⚠️ = Parcial (indicar qué falta) | ❌ = Bloquea inicio de QA
|
|
117
|
+
|
|
118
|
+
- [ ] Historias con criterios de aceptación definidos y revisados
|
|
119
|
+
- [ ] Arquitectura técnica aprobada para la feature
|
|
120
|
+
- [ ] Endpoints documentados en Scalar/OpenAPI
|
|
121
|
+
- [ ] Datos de prueba identificados y disponibles
|
|
122
|
+
- [ ] Dependencias inter-servicio mapeadas
|
|
123
|
+
- [ ] Permisos RBAC definidos en la matriz de permisos
|
|
124
|
+
- [ ] Análisis IA preliminar ejecutado (BMAD)
|
|
125
|
+
- [ ] [Criterios adicionales inferidos del dominio]
|
|
126
|
+
|
|
127
|
+
#### 2.4 Checklist DoD — Definition of Done
|
|
128
|
+
- [ ] Código implementado con code review aprobado
|
|
129
|
+
- [ ] Tests unitarios ≥ 80% cobertura pasando
|
|
130
|
+
- [ ] Tests de integración (TestContainers) pasando
|
|
131
|
+
- [ ] Sin defectos P1/bloqueantes abiertos
|
|
132
|
+
- [ ] Endpoints documentados en Scalar
|
|
133
|
+
- [ ] Pipeline CI/CD verde en `develop`
|
|
134
|
+
- [ ] Validación funcional en ambiente QA completada
|
|
135
|
+
- [ ] Métricas NFR verificadas (latencia, cache, concurrencia)
|
|
136
|
+
- [ ] Análisis IA post-sprint ejecutado (BMAD)
|
|
137
|
+
- [ ] [Criterios específicos del dominio: legal, contable, fiscal]
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
### 📐 SECCIÓN 3 — ALCANCE DE PRUEBAS
|
|
142
|
+
|
|
143
|
+
> Se incluyen **todas** las features y épicas disponibles en los documentos fuente. No se excluye ninguna.
|
|
144
|
+
|
|
145
|
+
#### 3.1 Features Incluidas
|
|
146
|
+
| # | Feature | Dominio | Mutabilidad | Riesgo | Prioridad QA |
|
|
147
|
+
|---|---------|---------|-------------|--------|-------------|
|
|
148
|
+
| F1 | [Feature inferida] | | | Alto/Medio/Bajo | P1/P2/P3 |
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
### 🛠️ SECCIÓN 4 — ESTRATEGIA DE PRUEBAS
|
|
153
|
+
|
|
154
|
+
#### 4.1 Tipos de Prueba
|
|
155
|
+
| Tipo | Alcance | Cobertura Objetivo | Automatización |
|
|
156
|
+
|------|---------|-------------------|---------------|
|
|
157
|
+
| Unitarias Backend | Validators, Handlers, Domain | ≥ 80% | 100% |
|
|
158
|
+
| Unitarias Frontend | Hooks, Stores, Componentes | ≥ 75% | 100% |
|
|
159
|
+
| Integración Backend | Repos, Endpoints, EF Core | ≥ 70% | 100% |
|
|
160
|
+
| Integración Frontend | API calls, TanStack Query | ≥ 60% | 100% |
|
|
161
|
+
| Contract Tests | Contratos entre microservicios | 100% endpoints | 100% |
|
|
162
|
+
| Smoke Tests | Endpoints críticos post-deploy | Todos los críticos | 100% |
|
|
163
|
+
| Regresión | Pre-release | 100% | 100% |
|
|
164
|
+
| Performance | Endpoints críticos (POS, cache) | P95 < umbral | Semi-auto |
|
|
165
|
+
| Seguridad RBAC | Permisos × endpoints | 100% endpoints | 100% |
|
|
166
|
+
| Seguridad SAST | Código fuente + dependencias | 100% PRs | 100% |
|
|
167
|
+
| Exploratoria | Flujos complejos, edge cases | Features P1 y P2 | Manual |
|
|
168
|
+
|
|
169
|
+
#### 4.2 Técnicas de Diseño Aplicadas
|
|
170
|
+
| Técnica | Features Objetivo | Observación |
|
|
171
|
+
|---------|-----------------|-------------|
|
|
172
|
+
| Partición de Equivalencia | [Inferir] | |
|
|
173
|
+
| Valores Límite | [Inferir] | |
|
|
174
|
+
| Tabla de Decisión | [Inferir] | |
|
|
175
|
+
| Transición de Estados | [Inferir] | |
|
|
176
|
+
| Error Guessing / Análisis de Riesgo | Todas | Race conditions, cache stale, inyección |
|
|
177
|
+
|
|
178
|
+
#### 4.3 Integración Human–AI (BMAD)
|
|
179
|
+
|
|
180
|
+
**Nivel de uso de IA en el sprint:**
|
|
181
|
+
| Nivel | % Ref. | Aplica | Justificación | Responsable Validación |
|
|
182
|
+
|-------|--------|--------|---------------|----------------------|
|
|
183
|
+
| Manual | 0% | | | |
|
|
184
|
+
| Asistido | 30% | | | |
|
|
185
|
+
| Diseño IA validado por QA | 60% | | | |
|
|
186
|
+
| IA + análisis predictivo | 90% | | | |
|
|
187
|
+
|
|
188
|
+
**Agentes IA activados:**
|
|
189
|
+
| Agente IA | Utilizado | Fase | Impacto | Observaciones |
|
|
190
|
+
|-----------|----------|------|---------|---------------|
|
|
191
|
+
| Analizador Funcional | | Pre-construcción | | |
|
|
192
|
+
| Generador de Casos de Prueba | | Pre-construcción | | |
|
|
193
|
+
| Analizador Predictivo de Riesgo | | Pre-construcción | | |
|
|
194
|
+
| Validador Inteligente de Datos | | Ejecución | | |
|
|
195
|
+
| Explorador Inteligente | | Ejecución | | |
|
|
196
|
+
| Clasificador Automático de Defectos | | Ejecución | | |
|
|
197
|
+
| Analizador Post-Sprint | | Certificación / Seguimiento | | |
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
### 🌐 SECCIÓN 5 — AMBIENTE & DATOS DE PRUEBA
|
|
202
|
+
|
|
203
|
+
> ⚠️ Si el microservicio ya tiene stack y ambientes documentados, indicar solo
|
|
204
|
+
> el ambiente requerido para este sprint y los datos específicos necesarios.
|
|
205
|
+
> No repetir configuración estática de infraestructura sprint a sprint.
|
|
206
|
+
|
|
207
|
+
#### 5.1 Ambiente Requerido para el Sprint
|
|
208
|
+
|
|
209
|
+
| Ambiente | Estado Requerido | Responsable | Observación |
|
|
210
|
+
|----------|-----------------|-------------|-------------|
|
|
211
|
+
| QA | Disponible con seeds cargados | DevOps | [Condición específica si aplica] |
|
|
212
|
+
| STAGING | Disponible para smoke pre-release | DevOps | |
|
|
213
|
+
|
|
214
|
+
#### 5.2 Data Buckets por Feature (Agente Alquimista)
|
|
215
|
+
|
|
216
|
+
> Definir los conjuntos de datos específicos para validar los FRs críticos.
|
|
217
|
+
> Usar nomenclatura: `[FEATURE_ABREV]-[ESCENARIO]`
|
|
218
|
+
|
|
219
|
+
**[F1 — Nombre Feature]**
|
|
220
|
+
| Bucket | Descripción | Datos / Valores Ejemplo |
|
|
221
|
+
|--------|-------------|------------------------|
|
|
222
|
+
| `F1-VALID` | Caso nominal válido | [Valores inferidos del PRD] |
|
|
223
|
+
| `F1-BOUNDARY` | Valores límite | [Inferir] |
|
|
224
|
+
| `F1-NEGATIVE` | Datos inválidos / negativos | [Inferir] |
|
|
225
|
+
| `F1-CONCURRENT` | Concurrencia (si riesgo > 15) | [N threads, misma entidad] |
|
|
226
|
+
| `F1-SECURITY` | RBAC / inyección (si aplica) | [Payloads de seguridad] |
|
|
227
|
+
|
|
228
|
+
> Repetir estructura por cada feature de riesgo Alto o Crítico.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
### ⚠️ SECCIÓN 6 — MATRIZ DE RIESGO PREDICTIVO
|
|
233
|
+
|
|
234
|
+
#### Escala de Evaluación
|
|
235
|
+
| Valor | Probabilidad (P) | Impacto (I) |
|
|
236
|
+
|-------|-----------------|-------------|
|
|
237
|
+
| 1 | Muy baja (< 5%) | Cosmético |
|
|
238
|
+
| 2 | Baja (5-15%) | Menor / workaround disponible |
|
|
239
|
+
| 3 | Media (15-40%) | Moderado / funcionalidad degradada |
|
|
240
|
+
| 4 | Alta (40-70%) | Mayor / funcionalidad bloqueada |
|
|
241
|
+
| 5 | Muy alta (> 70%) | Crítico / pérdida financiera o datos |
|
|
242
|
+
|
|
243
|
+
#### Matriz por Feature
|
|
244
|
+
| ID | Feature | Riesgo Identificado | P | I | R=P×I | Nivel | Mitigación |
|
|
245
|
+
|----|---------|--------------------|----|---|-------|-------|-----------|
|
|
246
|
+
| R-F1-01 | [Feature] | [Riesgo inferido del análisis] | | | | 🔴/🟡/🟢 | |
|
|
247
|
+
|
|
248
|
+
#### Resumen Riesgos Críticos (R > 15)
|
|
249
|
+
| ID | Feature | Riesgo | R | Acción Inmediata |
|
|
250
|
+
|----|---------|--------|---|-----------------|
|
|
251
|
+
| [Solo los R > 15] | | | | |
|
|
252
|
+
|
|
253
|
+
> Regla automática: Si R > 15 → Suite de Regresión Completa + Agentes de Seguridad activados.
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
### ✅ SECCIÓN 7 — CRITERIOS DE ENTRADA / SALIDA
|
|
258
|
+
|
|
259
|
+
#### 7.1 Entry Criteria — Checklist DoR Sprint
|
|
260
|
+
| # | Criterio | Responsable | Estado |
|
|
261
|
+
|---|---------|-------------|--------|
|
|
262
|
+
| CE-01 | Build en `develop` compilando sin errores | Dev Lead | ⬜ |
|
|
263
|
+
| CE-02 | Tests unitarios del desarrollador ≥ 80% | Desarrollador | ⬜ |
|
|
264
|
+
| CE-03 | Endpoints documentados en Scalar/OpenAPI | Desarrollador | ⬜ |
|
|
265
|
+
| CE-04 | Migraciones aplicadas en ambiente QA | DevOps | ⬜ |
|
|
266
|
+
| CE-05 | Seeds y datos de prueba disponibles en QA | QA + Dev | ⬜ |
|
|
267
|
+
| CE-06 | Usuarios RBAC configurados | DevOps | ⬜ |
|
|
268
|
+
| CE-07 | Ambiente QA estable (health check OK) | DevOps | ⬜ |
|
|
269
|
+
| CE-08 | Historias con criterios de aceptación aprobados | PO | ⬜ |
|
|
270
|
+
| CE-09 | Análisis IA preliminar ejecutado (BMAD) | QA Lead | ⬜ |
|
|
271
|
+
| [CE-N] | [Criterio específico inferido del dominio] | | ⬜ |
|
|
272
|
+
|
|
273
|
+
#### 7.2 Exit Criteria — Checklist DoD Sprint (Go / No-Go)
|
|
274
|
+
|
|
275
|
+
**✅ GO — Aprobado para Release si:**
|
|
276
|
+
- Todos los criterios marcados "Bloquea = Sí" cumplidos
|
|
277
|
+
- 0 defectos P1 abiertos
|
|
278
|
+
- Defectos P2 ≤ 2 con workaround documentado y aprobación del PO
|
|
279
|
+
- Smoke tests en STAGING pasando al 100%
|
|
280
|
+
- Todos los riesgos R > 15 con tests de mitigación pasando
|
|
281
|
+
|
|
282
|
+
**❌ NO-GO — Bloqueado si:**
|
|
283
|
+
| Condición No-Go | Acción Requerida |
|
|
284
|
+
|----------------|-----------------|
|
|
285
|
+
| ≥ 1 defecto P1 abierto | Hotfix inmediato + re-validación |
|
|
286
|
+
| Cobertura backend < 75% | Completar tests faltantes |
|
|
287
|
+
| Tests de concurrencia fallando (features con R > 15) | Revisión de mecanismo de locking |
|
|
288
|
+
| RBAC bypass detectado en cualquier endpoint | Fix de seguridad obligatorio |
|
|
289
|
+
| Smoke tests STAGING < 100% | Diagnóstico y fix antes de deploy |
|
|
290
|
+
| [Condición específica del dominio] | [Acción] |
|
|
291
|
+
|
|
292
|
+
**Criterios de salida por feature:**
|
|
293
|
+
| # | Criterio | Meta | Tolerancia | Bloquea Release |
|
|
294
|
+
|---|---------|------|-----------|----------------|
|
|
295
|
+
| CS-01 | Tests unitarios pasando | 100% | 0 fallos | Sí |
|
|
296
|
+
| CS-02 | Tests de integración pasando | 100% | 0 fallos | Sí |
|
|
297
|
+
| CS-03 | Cobertura backend | ≥ 80% | Mínimo 75% | Sí (< 75%) |
|
|
298
|
+
| CS-04 | Cobertura frontend | ≥ 75% | Mínimo 70% | Sí (< 70%) |
|
|
299
|
+
| CS-05 | Defectos P1 abiertos | 0 | 0 | Sí |
|
|
300
|
+
| CS-06 | Defectos P2 abiertos | 0 | ≤ 2 con workaround | No (con aprobación PO) |
|
|
301
|
+
| CS-07 | Performance P95 endpoints críticos | < umbral definido | Ver Sección 4.1 | Sí |
|
|
302
|
+
| CS-08 | RBAC validation suite | 100% | 0 bypass | Sí |
|
|
303
|
+
| CS-09 | Smoke tests en QA | 100% | 0 fallos | Sí |
|
|
304
|
+
| CS-10 | Contract tests | 100% | 0 breaking changes | Sí |
|
|
305
|
+
| CS-11 | Riesgos R > 15 mitigados | 100% | Tests específicos pasando | Sí |
|
|
306
|
+
| [CS-N] | [Criterio específico del dominio] | | | |
|
|
307
|
+
|
|
308
|
+
**Definición técnica de "Certificado":**
|
|
309
|
+
> [El agente redacta aquí la condición exacta de aprobación para este requerimiento
|
|
310
|
+
> específico, incluyendo umbrales de cobertura, ausencia de defectos críticos
|
|
311
|
+
> y validaciones de negocio derivadas del documento fuente]
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
|
|
315
|
+
## ⚠️ RESTRICCIONES DEL AGENTE
|
|
316
|
+
|
|
317
|
+
1. **Zero-Bureaucracy**: Resultados técnicos sobre documentación estática.
|
|
318
|
+
No repetir información de stack o infraestructura que no haya cambiado.
|
|
319
|
+
2. **Automatización primero**: No proponer pruebas manuales a menos que sea
|
|
320
|
+
técnicamente imposible automatizarlas. Justificar toda excepción.
|
|
321
|
+
3. **Sin estimaciones de esfuerzo**: La IA no conoce la capacidad real del equipo,
|
|
322
|
+
las interrupciones del sprint ni la deuda técnica no documentada.
|
|
323
|
+
Las horas viven en el sistema de planificación del equipo, no aquí.
|
|
324
|
+
4. **Sin historial de revisiones**: El historial vive en Git. Este documento es un
|
|
325
|
+
artefacto vivo; las versiones se gestionan en el repositorio.
|
|
326
|
+
5. **Compliance obligatorio**: Si el dominio es contable, fiscal o laboral,
|
|
327
|
+
incluir validaciones regulatorias específicas y vigentes al momento del sprint.
|
|
328
|
+
6. **Trazabilidad total**: Cada caso debe ser trazable a un criterio de aceptación
|
|
329
|
+
del documento fuente. Sin FR documentado → sin caso de prueba.
|
|
330
|
+
7. **Alineación SIESA**: Si el sistema host es SIESA ERP/HCM, garantizar
|
|
331
|
+
el estándar contable/legal vigente.
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
> **Nota:** Documento vivo. Actualizar al finalizar cada feature o al identificar nuevos riesgos.
|
|
336
|
+
> El historial de versiones vive en el repositorio Git — no se replica aquí.
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
**[ADJUNTA AQUÍ TU DOCUMENTO FUENTE: PRD / ARQUITECTURA / USER STORIES / PR / CONTEXTO NORMATIVO]**
|