@keber/qa-framework 1.11.3 → 1.13.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 (109) hide show
  1. package/CHANGELOG.md +340 -0
  2. package/README.md +42 -2
  3. package/docs/architecture.md +30 -26
  4. package/docs/decisions/lane-heartbeat-caller.md +86 -0
  5. package/docs/final-report.md +23 -23
  6. package/docs/folder-structure-guide.md +100 -80
  7. package/docs/installation.md +42 -7
  8. package/docs/skills-architecture.md +23 -23
  9. package/docs/spec-driven-philosophy.md +9 -9
  10. package/docs/usage-with-agent.md +88 -9
  11. package/docs/visuals/diag-01-ejecutivo-1.png +0 -0
  12. package/docs/visuals/diag-02-tactico-1.png +0 -0
  13. package/docs/visuals/diag-03-tecnico-1.png +0 -0
  14. package/docs/visuals/info-01-ejecutivo-1.png +0 -0
  15. package/docs/visuals/info-02-tactico-1.png +0 -0
  16. package/docs/visuals/info-03-tecnico-1.png +0 -0
  17. package/docs/visuals/pres-01-ejecutivo-1.png +0 -0
  18. package/docs/visuals/pres-02-tactico-1.png +0 -0
  19. package/docs/visuals/pres-03-tecnico-1.png +0 -0
  20. package/docs/visuals/qa-01-problema-1.png +0 -0
  21. package/docs/visuals/qa-02-que-es-1.png +0 -0
  22. package/docs/visuals/qa-03-pipeline-1.png +0 -0
  23. package/docs/visuals/qa-04-6-archivos-1.png +0 -0
  24. package/docs/visuals/qa-05-humano-1.png +0 -0
  25. package/docs/visuals/qa-06-agente-1.png +0 -0
  26. package/docs/visuals/qa-07-skills-arch-1.png +0 -0
  27. package/docs/visuals/qa-08-traceability-1.png +0 -0
  28. package/docs/visuals/qa-en-01-problem-1.png +0 -0
  29. package/docs/visuals/qa-en-02-what-is-1.png +0 -0
  30. package/docs/visuals/qa-en-03-pipeline-1.png +0 -0
  31. package/docs/visuals/qa-en-04-6files-1.png +0 -0
  32. package/docs/visuals/qa-en-05-human-1.png +0 -0
  33. package/docs/visuals/qa-en-06-agent-1.png +0 -0
  34. package/docs/visuals/qa-en-07-skills-arch-1.png +0 -0
  35. package/docs/visuals/qa-en-08-traceability-1.png +0 -0
  36. package/examples/module-example/suppliers/00-inventory.md +1 -1
  37. package/examples/module-example/suppliers/suppliers-create.spec.ts +8 -8
  38. package/integrations/ado-powershell/README.md +1 -1
  39. package/integrations/ado-powershell/scripts/sync-ado-titles.ps1 +2 -2
  40. package/integrations/playwright/README.md +4 -4
  41. package/package.json +7 -3
  42. package/qa-framework.config.json +25 -3
  43. package/scripts/check-forbidden-chars.js +187 -0
  44. package/scripts/check-spanish-accents.js +159 -0
  45. package/scripts/cli.js +1 -1
  46. package/scripts/generate.js +2 -2
  47. package/scripts/init.js +101 -12
  48. package/scripts/lib/claude-agents.js +347 -0
  49. package/scripts/lib/claude-commands.js +56 -0
  50. package/scripts/lib/module-keys.js +54 -0
  51. package/scripts/sync-version.js +63 -0
  52. package/scripts/upgrade.js +369 -20
  53. package/scripts/validate.js +46 -21
  54. package/skills/qa-ado-integration/SKILL.md +19 -19
  55. package/skills/qa-ado-integration/references/scripts-and-config.md +6 -6
  56. package/skills/qa-automation/SKILL.md +49 -27
  57. package/skills/qa-automation/references/config-checklist.md +4 -4
  58. package/skills/qa-automation/references/dom-inspection-template.js +7 -7
  59. package/skills/qa-automation/references/patterns.md +20 -20
  60. package/skills/qa-automation/references/pom-template.md +161 -0
  61. package/skills/qa-maintenance/SKILL.md +11 -11
  62. package/skills/qa-maintenance/references/update-rules.md +8 -8
  63. package/skills/qa-module-analysis/SKILL.md +20 -19
  64. package/skills/qa-module-analysis/references/exploration-checklist.md +4 -4
  65. package/skills/qa-module-analysis/references/output-verification.md +69 -0
  66. package/skills/qa-module-analysis/references/spec-file-formats.md +14 -14
  67. package/skills/qa-spec-generation/SKILL.md +13 -7
  68. package/skills/qa-test-cases/SKILL.md +11 -81
  69. package/skills/qa-test-cases/references/test-case-template.md +5 -5
  70. package/skills/qa-test-plan/SKILL.md +22 -86
  71. package/skills/qa-test-plan/references/plan-de-pruebas-template.md +24 -24
  72. package/skills/qa-test-stabilization/SKILL.md +59 -30
  73. package/skills/qa-test-stabilization/references/classification-protocol.md +35 -35
  74. package/templates/agent-next-steps.md +10 -10
  75. package/templates/agents/qa-analisis.md +142 -0
  76. package/templates/agents/qa-asesoria.md +48 -0
  77. package/templates/agents/qa-informe-resultados.md +236 -0
  78. package/templates/agents/qa-investigador.md +143 -0
  79. package/templates/agents/qa-plan.md +131 -0
  80. package/templates/agents/qa-reporte-ejecucion.md +138 -0
  81. package/templates/automation-scaffold/.env.example +36 -6
  82. package/templates/automation-scaffold/fixtures/auth.ts +27 -5
  83. package/templates/automation-scaffold/fixtures/base.ts +23 -1
  84. package/templates/automation-scaffold/fixtures/test-helpers.ts +1 -1
  85. package/templates/automation-scaffold/global-setup.ts +117 -48
  86. package/templates/automation-scaffold/playwright.config.ts +72 -32
  87. package/templates/automation-scaffold/scripts/global-setup-guards.js +184 -0
  88. package/templates/automation-scaffold/scripts/lane-config.js +269 -0
  89. package/templates/automation-scaffold/scripts/lane-lock.js +589 -0
  90. package/templates/defect-report.md +17 -3
  91. package/templates/execution-report.md +9 -9
  92. package/templates/integration-scaffold/.env.example +1 -1
  93. package/templates/integration-scaffold/global-setup.ts +21 -1
  94. package/templates/integration-scaffold/playwright.config.ts +15 -1
  95. package/templates/qa-framework.instructions.md +9 -8
  96. package/templates/qa-framework.rules.md +53 -0
  97. package/templates/qa-readme.md +8 -8
  98. package/templates/session-summary.md +2 -2
  99. package/templates/specification/00-inventory.md +3 -3
  100. package/templates/specification/01-business-rules.md +6 -6
  101. package/templates/specification/02-workflows.md +1 -1
  102. package/templates/specification/03-roles-permissions.md +1 -1
  103. package/templates/specification/04-test-data.md +8 -8
  104. package/templates/specification/05-test-scenarios.md +5 -5
  105. package/templates/test-case.md +3 -3
  106. package/templates/test-data-guidelines.md +7 -7
  107. package/templates/test-plan-sprint.md +13 -13
  108. package/templates/test-plan.md +3 -3
  109. package/skills/qa-test-plan/references/priority-and-feasibility.md +0 -159
@@ -1,4 +1,4 @@
1
- # Phase 6 — Final Report: keber/qa-framework
1
+ # Phase 6 - Final Report: keber/qa-framework
2
2
 
3
3
  **Date**: 2025-01-15
4
4
  **Version analyzed**: 1.0.0
@@ -26,29 +26,29 @@ procedures documented in `MIGRATION-NOTES.md`.
26
26
 
27
27
  ## 2. Source Repository Findings
28
28
 
29
- ### Repo A — redacted-repo-web
29
+ ### Repo A - redacted-repo-web
30
30
 
31
31
  | Category | Finding |
32
32
  |----------|---------|
33
33
  | Stack | ASP.NET MVC 5 + Web API 2 + SQL Server |
34
34
  | Frontend | jQuery + Select2 + toastr + SweetAlert2 + Metronic |
35
35
  | Auth | RUT-based login (`#m_login_signin_submit`) |
36
- | QA maturity | Medium — spec files present, standards missing |
36
+ | QA maturity | Medium - spec files present, standards missing |
37
37
  | Automation | Sprint 40: 26 P0 tests (24 pass, 2 skip via DEF-001/DEF-002) |
38
38
  | ADO | Referenced (Plan 21992/Suite 21993) but not reporter-integrated |
39
39
  | Modules | 7 submodules documented (~160 TCs across 82 QA files) |
40
40
  | Strengths | EXEC_IDX pattern, POM structure, multi-role auth, skip+DEF |
41
41
  | Gaps | No `00-standards/`, no `08-azure-integration/`, no session summaries |
42
42
 
43
- ### Repo B — redacted-repo
43
+ ### Repo B - redacted-repo
44
44
 
45
45
  | Category | Finding |
46
46
  |----------|---------|
47
47
  | Stack | Blazor WebAssembly + .NET + Radzen components |
48
48
  | Auth | Email-based (`#email-input` / `#password-input`) |
49
- | QA maturity | High — complete standards folder, ADO fully integrated |
49
+ | QA maturity | High - complete standards folder, ADO fully integrated |
50
50
  | Automation | 67 automated TCs (53 pass / 2 fail / 12 skip) |
51
- | ADO | Full: Plans 22304/22794/22875, WI IDs 22957–23034, bi-directional sync |
51
+ | ADO | Full: Plans 22304/22794/22875, WI IDs 22957-23034, bi-directional sync |
52
52
  | Modules | 4 modules × 17+ submodules (~894 TCs) |
53
53
  | Strengths | `00-standards/`, `08-azure-integration/`, module-registry, ado reporter |
54
54
  | Gaps | No EXEC_IDX pattern, no POM convention, no session summaries |
@@ -61,9 +61,9 @@ procedures documented in `MIGRATION-NOTES.md`.
61
61
  |---------|--------|----------|
62
62
  | 6-file submodule spec pattern | Both | Core framework pattern |
63
63
  | Playwright `@playwright/test` | Both | Standard automation library |
64
- | Priority levels P0–P3 | Both | Universal tagging via `@PX` |
64
+ | Priority levels P0-P3 | Both | Universal tagging via `@PX` |
65
65
  | `test.skip()` + DEF reference | Repo A | Adopted as standard skip convention |
66
- | `06-defects/` folder | Repo A | Optional — recommended without ADO |
66
+ | `06-defects/` folder | Repo A | Optional - recommended without ADO |
67
67
  | `00-standards/` folder | Repo B | Adopted; templates included |
68
68
  | `08-azure-integration/` folder | Repo B | Optional; fully documented |
69
69
  | `module-registry.json` | Repo B | Included in ADO integration |
@@ -85,7 +85,7 @@ procedures documented in `MIGRATION-NOTES.md`.
85
85
  | RUT-based username field | Repo A | Parameterized via `QA_LOGIN_EMAIL_SELECTOR` |
86
86
  | `#email-input` / `#password-input` | Repo B | Parameterized via env vars |
87
87
  | ADO Plan IDs (21992, 22304, etc.) | Both | Parameterized via `QA_ADO_PLAN_ID` |
88
- | ADO WI IDs (22957–23034) | Repo B | Injected per-project via inject-ado-ids.ps1 |
88
+ | ADO WI IDs (22957-23034) | Repo B | Injected per-project via inject-ado-ids.ps1 |
89
89
  | Specific module names/selectors | Both | Remain in project-specific spec files |
90
90
  | Sprint numbers | Both | Remain in project-specific test plans |
91
91
  | Metronic theme selectors | Repo A | Project-specific; documented in Repo A specs |
@@ -110,7 +110,7 @@ Fifteen formal decisions were made and documented in `docs/generalization-decisi
110
110
  | §8 | POM pattern | Recommended (Repo A); inline acceptable |
111
111
  | §9 | Standards folder | Adopted from Repo B (more complete) |
112
112
  | §10 | Session summaries | New addition to both repos' patterns |
113
- | §11 | Priority levels | P0–P3 universal; `@P0` grep-tag convention |
113
+ | §11 | Priority levels | P0-P3 universal; `@P0` grep-tag convention |
114
114
  | §12 | `08-azure-integration/` | Optional; fully documented scripts |
115
115
  | §13 | CI pipeline | Parameterized `azure-pipeline-qa.yml` |
116
116
  | §14 | Framework distribution | npm package (`keber/qa-framework`) |
@@ -122,23 +122,23 @@ Fifteen formal decisions were made and documented in `docs/generalization-decisi
122
122
 
123
123
  ```
124
124
  qa-framework/
125
- ├── package.json ← npm package, CLI entry
126
- ├── qa-framework.config.json ← example project config
125
+ ├── package.json <- npm package, CLI entry
126
+ ├── qa-framework.config.json <- example project config
127
127
  ├── README.md
128
128
  ├── CHANGELOG.md
129
129
  ├── MIGRATION-NOTES.md
130
130
  │
131
131
  ├── docs/
132
- │ ├── architecture.md ← 4-layer component map
133
- │ ├── comparison-matrix.md ← Phase 1 artifact
134
- │ ├── generalization-decisions.md ← Phase 2 artifact (15 decisions)
135
- │ ├── installation.md ← 3 install options
136
- │ ├── spec-driven-philosophy.md ← Core methodology
137
- │ ├── folder-structure-guide.md ← Full folder reference
138
- │ ├── usage-with-agent.md ← Agent prompt patterns
139
- │ └── final-report.md ← This file
132
+ │ ├── architecture.md <- 4-layer component map
133
+ │ ├── comparison-matrix.md <- Phase 1 artifact
134
+ │ ├── generalization-decisions.md <- Phase 2 artifact (15 decisions)
135
+ │ ├── installation.md <- 3 install options
136
+ │ ├── spec-driven-philosophy.md <- Core methodology
137
+ │ ├── folder-structure-guide.md <- Full folder reference
138
+ │ ├── usage-with-agent.md <- Agent prompt patterns
139
+ │ └── final-report.md <- This file
140
140
  │
141
- ├── agent-instructions/ ← Consumed by Copilot agent
141
+ ├── agent-instructions/ <- Consumed by Copilot agent
142
142
  │ ├── 00-module-analysis.md
143
143
  │ ├── 01-spec-generation.md
144
144
  │ ├── 02-test-plan-generation.md
@@ -148,7 +148,7 @@ qa-framework/
148
148
  │ └── 06-maintenance.md
149
149
  │
150
150
  ├── templates/
151
- │ ├── specification/ ← 6-file submodule template set
151
+ │ ├── specification/ <- 6-file submodule template set
152
152
  │ │ ├── 00-inventory.md
153
153
  │ │ ├── 01-business-rules.md
154
154
  │ │ ├── 02-workflows.md
@@ -188,7 +188,7 @@ qa-framework/
188
188
  │ ├── 00-inventory.md
189
189
  │ └── suppliers-create.spec.ts
190
190
  │
191
- └── scripts/ ← CLI implementation
191
+ └── scripts/ <- CLI implementation
192
192
  ├── cli.js
193
193
  ├── init.js
194
194
  ├── generate.js
@@ -1,6 +1,6 @@
1
1
  # docs/folder-structure-guide.md
2
2
 
3
- ## `qa/` Directory Structure — Full Reference Guide
3
+ ## `qa/` Directory Structure - Full Reference Guide
4
4
 
5
5
  This document explains the purpose, contents, and conventions for every folder in the `qa/` directory.
6
6
 
@@ -10,25 +10,28 @@ This document explains the purpose, contents, and conventions for every folder i
10
10
 
11
11
  ```
12
12
  qa/
13
- ├── README.md ← Living master index (project-maintained)
14
- ├── AGENT-NEXT-STEPS.md ← Active sprint queue for the agent (project-maintained)
15
- ├── QA-STRUCTURE-GUIDE.md ← Copy of this guide (installed by framework)
16
- ├── qa-framework.config.json ← Project configuration
13
+ ├── README.md <- Living master index (project-maintained)
14
+ ├── AGENT-NEXT-STEPS.md <- Active sprint queue for the agent (project-maintained)
15
+ ├── QA-STRUCTURE-GUIDE.md <- Copy of this guide (installed by framework)
16
+ ├── qa-framework.config.json <- Project configuration
17
17
  │
18
- ├── 00-standards/ ← Naming conventions and artifact templates
19
- ├── 01-specifications/ ← Functional specifications per module
20
- ├── 02-test-plans/ ← Plan de Pruebas per sprint/module (plan + TC table + steps)
21
- ├── 03-test-cases/ ← Standalone test case documents
22
- ├── 04-test-data/ ← Test data definitions and factories
23
- ├── 05-test-execution/ ← Execution reports and results
24
- ├── 06-defects/ ← Defect tracking (optional)
25
- ├── 07-automation/ ← Automation code (Playwright, etc.)
26
- ├── 08-azure-integration/ ← Azure DevOps integration (optional)
27
- └── memory/ ← Project QA learnings (project-maintained)
18
+ ├── 00-standards/ <- Naming conventions and artifact templates
19
+ ├── 01-specifications/ <- Functional specifications per module
20
+ ├── 02-test-plans/ <- Plan de Pruebas per sprint/module (plan + TC table + steps)
21
+ ├── 03-test-cases/ <- Standalone test case documents
22
+ ├── 04-test-data/ <- Test data definitions and factories
23
+ ├── 05-test-execution/ <- Execution reports and results
24
+ ├── 06-defects/ <- Defect tracking (optional)
25
+ ├── 07-automation/ <- Automation code (Playwright, etc.)
26
+ ├── 08-azure-integration/ <- Azure DevOps integration (optional)
27
+ └── memory/ <- Project QA learnings (project-maintained)
28
28
  ```
29
29
 
30
30
  Agent skills live in `.github/skills/` (not inside `qa/`). See the `.github/skills/` section below.
31
31
 
32
+ `init`/`upgrade` also generate `.claude/rules/qa-framework.md` and `.claude/commands/qa-*.md`
33
+ (Claude Code equivalents of the Copilot instructions/skills - see the section below).
34
+
32
35
  ---
33
36
 
34
37
  ## Dual-Track Pipeline
@@ -37,35 +40,35 @@ All pipeline paths share the same input: `01-specifications/`. From there, work
37
40
  two tracks that can run in parallel or independently depending on team maturity.
38
41
 
39
42
  ```
40
- 01-specifications/ (source of truth — what the app does and what must be tested)
43
+ 01-specifications/ (source of truth - what the app does and what must be tested)
41
44
  │
42
45
  ├─── Automation track ──────────────────────────────────────────────────
43
46
  │ │
44
47
  │ ▼
45
- │ 02-test-plans/sprints/Sprint-{N}/ ← Plan de Pruebas (plan + TC table + steps)
48
+ │ 02-test-plans/sprints/Sprint-{N}/ <- Plan de Pruebas (plan + TC table + steps)
46
49
  │ │ Stage 4 expands steps if needed
47
50
  │ ▼
48
- │ 07-automation/e2e/tests/ ← Playwright .spec.ts files
51
+ │ 07-automation/e2e/tests/ <- Playwright .spec.ts files
49
52
  │ │
50
53
  │ ▼
51
- │ 05-test-execution/automated/ ← execution reports
54
+ │ 05-test-execution/automated/ <- execution reports
52
55
  │ │
53
56
  │ ▼
54
- │ 08-azure-integration/ ← ADO sync via playwright-azure-reporter
57
+ │ 08-azure-integration/ <- ADO sync via playwright-azure-reporter
55
58
  │
56
59
  └─── Manual track ──────────────────────────────────────────────────────
57
60
  │
58
61
  ▼
59
- 02-test-plans/sprints/Sprint-{N}/ ← same Plan de Pruebas (shared artifact)
62
+ 02-test-plans/sprints/Sprint-{N}/ <- same Plan de Pruebas (shared artifact)
60
63
  │
61
64
  ▼
62
- 03-test-cases/ (optional) ← standalone TC-*.md for complex/reusable TCs
65
+ 03-test-cases/ (optional) <- standalone TC-*.md for complex/reusable TCs
63
66
  │
64
67
  ▼
65
- 05-test-execution/manual/ ← manual run evidence
68
+ 05-test-execution/manual/ <- manual run evidence
66
69
  │
67
70
  ▼
68
- 08-azure-integration/ ← ADO sync via ado-integration skill
71
+ 08-azure-integration/ <- ADO sync via ado-integration skill
69
72
  (reads Plan de Pruebas, creates TCs with steps)
70
73
  ```
71
74
 
@@ -73,21 +76,21 @@ two tracks that can run in parallel or independently depending on team maturity.
73
76
 
74
77
  | Scenario | Entry point | Tracks active |
75
78
  |---|---|---|
76
- | New system, no prior QA | Module analysis → spec generation | Automation (primary), Manual (as needed) |
77
- | Sprint with ADO stories | Stories → spec generation → test plan | Both, driven by sprint scope |
78
- | Maintenance/continuous improvement | Changed module → maintenance skill | Automation (update existing tests) |
79
+ | New system, no prior QA | Module analysis -> spec generation | Automation (primary), Manual (as needed) |
80
+ | Sprint with ADO stories | Stories -> spec generation -> test plan | Both, driven by sprint scope |
81
+ | Maintenance/continuous improvement | Changed module -> maintenance skill | Automation (update existing tests) |
79
82
 
80
83
  **Track selection guidance:**
81
84
  - Use **automation track** when the goal is regression coverage and CI integration.
82
85
  - Use **manual track** when: (a) team has manual testers who need step-by-step documents; (b) auditability or traceability to external standards is required; (c) features are not yet automatable.
83
- - Both tracks use the same TC-IDs from `01-specifications/*/05-test-scenarios.md` — traceability is preserved regardless of which track executes a given TC.
86
+ - Both tracks use the same TC-IDs from `01-specifications/*/05-test-scenarios.md` - traceability is preserved regardless of which track executes a given TC.
84
87
  - `04-test-data/` is optional in both tracks. Use it when test data factories or seeders are shared across multiple modules. Per-submodule data belongs in `01-specifications/*/04-test-data.md`.
85
88
 
86
89
  ---
87
90
 
88
91
  ## .github/skills/
89
92
 
90
- **Purpose**: 3-layer QA pipeline skills installed by the framework. Loaded by the agent on demand — only the relevant skill for the current task is loaded, not all skills at once.
93
+ **Purpose**: 3-layer QA pipeline skills installed by the framework. Loaded by the agent on demand - only the relevant skill for the current task is loaded, not all skills at once.
91
94
 
92
95
  **Installed by framework** via `npm install @keber/qa-framework`:
93
96
 
@@ -103,8 +106,25 @@ two tracks that can run in parallel or independently depending on team maturity.
103
106
  | `qa-maintenance/` | 6 | Updating specs and tests after app changes |
104
107
 
105
108
  Each skill folder contains:
106
- - `SKILL.md` — process outline (~400-600 tokens, always loaded when skill applies)
107
- - `references/` — detailed templates and code patterns (loaded on demand)
109
+ - `SKILL.md` - process outline (~400-600 tokens, always loaded when skill applies)
110
+ - `references/` - detailed templates and code patterns (loaded on demand)
111
+
112
+ ---
113
+
114
+ ## .claude/commands/ and .claude/rules/
115
+
116
+ **Purpose**: Claude Code native equivalents of `.github/instructions/qa-framework.instructions.md`
117
+ and `.github/skills/`, generated by `init`/`upgrade` in parallel with the Copilot artifacts
118
+ (no agent detection - both are always generated).
119
+
120
+ | File | Role |
121
+ |---|---|
122
+ | `.claude/rules/qa-framework.md` | Same 11 agent behavior rules + pipeline table as the Copilot instructions file. No frontmatter, so it loads unconditionally in every Claude Code session (equivalent to `applyTo: '**'`). |
123
+ | `.claude/commands/qa-{name}.md` | One thin wrapper per skill folder under `.github/skills/`, discovered dynamically (not hardcoded). Each wrapper reads: `Read the full skill at .github/skills/qa-{name}/SKILL.md FIRST, then follow its instructions exactly`, plus the stage prerequisite. Invoked as `/qa-{name}` in a Claude Code session. |
124
+
125
+ This is a "thin wrapper" pattern: the command never duplicates skill content, it only
126
+ points back at `SKILL.md` as the single source of truth. Updating a skill automatically
127
+ updates every command that references it - no regeneration needed, zero drift possible.
108
128
 
109
129
  ---
110
130
 
@@ -126,25 +146,25 @@ Each skill folder contains:
126
146
 
127
147
  ## 01-specifications/
128
148
 
129
- **Purpose**: Functional specifications — the primary source of truth for what the application does and what must be tested.
149
+ **Purpose**: Functional specifications - the primary source of truth for what the application does and what must be tested.
130
150
 
131
151
  **Structure**:
132
152
  ```
133
153
  01-specifications/
134
- ├── README.md ← Index of all modules
135
- ├── shared/ ← Shared artifacts (sitemap, shared templates)
136
- │ ├── ui-menu-map.md ← Auto-generated from playwright session
137
- │ └── Instrucciones-analisis.md ← Checklist template for module analysis
154
+ ├── README.md <- Index of all modules
155
+ ├── shared/ <- Shared artifacts (sitemap, shared templates)
156
+ │ ├── ui-menu-map.md <- Auto-generated from playwright session
157
+ │ └── Instrucciones-analisis.md <- Checklist template for module analysis
138
158
  │
139
159
  └── module-{module-name}/
140
- ├── README.md ← Module index (submodule table + E2E flow)
160
+ ├── README.md <- Module index (submodule table + E2E flow)
141
161
  └── submodule-{name}/
142
- ├── 00-inventory.md ← UI elements, routes, APIs, fields
143
- ├── 01-business-rules.md ← RN-* rules the system enforces
144
- ├── 02-workflows.md ← FL-* user flow diagrams (Mermaid/ASCII)
145
- ├── 03-roles-permissions.md ← Role matrix
146
- ├── 04-test-data.md ← Data shapes and prerequisites
147
- └── 05-test-scenarios.md ← TC-* test cases with priority and steps
162
+ ├── 00-inventory.md <- UI elements, routes, APIs, fields
163
+ ├── 01-business-rules.md <- RN-* rules the system enforces
164
+ ├── 02-workflows.md <- FL-* user flow diagrams (Mermaid/ASCII)
165
+ ├── 03-roles-permissions.md <- Role matrix
166
+ ├── 04-test-data.md <- Data shapes and prerequisites
167
+ └── 05-test-scenarios.md <- TC-* test cases with priority and steps
148
168
  ```
149
169
 
150
170
  **Naming rules**:
@@ -153,7 +173,7 @@ Each skill folder contains:
153
173
  - Module code: 2-6 uppercase letters (e.g., `OPER`, `PERS`, `ARCF`)
154
174
  - TC ID: `TC-{MODULE}-{SUBMODULE}-{3-digit}` (e.g., `TC-OPER-CAT-001`)
155
175
 
156
- **TC target per submodule**: 50–85 test cases is considered a well-analyzed submodule.
176
+ **TC target per submodule**: 50-85 test cases is considered a well-analyzed submodule.
157
177
 
158
178
  ---
159
179
 
@@ -166,8 +186,8 @@ Each skill folder contains:
166
186
  ├── README.md
167
187
  └── sprints/
168
188
  └── Sprint-{NNN}/
169
- ├── Plan-de-Pruebas-{proyecto}-Sprint-{NNN}-{modulo}.md ← one per module
170
- └── Plan-de-Pruebas-{proyecto}-Sprint-{NNN}.md ← consolidado (generated by @keber/ado-qa, not by agent)
189
+ ├── Plan-de-Pruebas-{proyecto}-Sprint-{NNN}-{modulo}.md <- one per module
190
+ └── Plan-de-Pruebas-{proyecto}-Sprint-{NNN}.md <- consolidado (generated by @keber/ado-qa, not by agent)
171
191
  ```
172
192
 
173
193
  **Naming convention**: `Plan-de-Pruebas-{proyecto}-Sprint-{NNN}-{modulo}.md`
@@ -179,7 +199,7 @@ Each skill folder contains:
179
199
  - Header (project, sprint, dates, ADO Test Plan link)
180
200
  - Scope, strategy, preconditions, test data
181
201
  - **Tabla de Pruebas**: TC-ID | Suite | Título | Descripción | Steps (numbered `<br>`-separated) | Resultado Esperado | Confirma (Task ID or N/A) | Tipo | Prioridad
182
- - Matriz de trazabilidad (Task ↔ N)
202
+ - Matriz de trazabilidad (Task <-> N)
183
203
  - Automation notes
184
204
 
185
205
  **Legacy migration**: `upgrade` Section 6 moves `automated/` and `manual/` subdirectories to `sprints/legacy-*` non-destructively.
@@ -194,7 +214,7 @@ Each skill folder contains:
194
214
 
195
215
  ```
196
216
  03-test-cases/
197
- ├── README.md ← explains optional/legacy status
217
+ ├── README.md <- explains optional/legacy status
198
218
  └── TC-{ID}-{title}.md
199
219
  ```
200
220
 
@@ -212,10 +232,10 @@ Each skill folder contains:
212
232
  ```
213
233
  04-test-data/
214
234
  ├── README.md
215
- ├── users.md ← Test user definitions (roles, env var references, NOT passwords)
216
- ├── fixtures/ ← Static data files (JSON/Markdown)
217
- ├── factories/ ← Dynamic data generation patterns (Markdown or TS files)
218
- └── seeders/ ← DB/API seed scripts for complex test setup
235
+ ├── users.md <- Test user definitions (roles, env var references, NOT passwords)
236
+ ├── fixtures/ <- Static data files (JSON/Markdown)
237
+ ├── factories/ <- Dynamic data generation patterns (Markdown or TS files)
238
+ └── seeders/ <- DB/API seed scripts for complex test setup
219
239
  ```
220
240
 
221
241
  **Critical rules**:
@@ -228,14 +248,14 @@ Each skill folder contains:
228
248
 
229
249
  ## 05-test-execution/
230
250
 
231
- **Purpose**: Evidence of test runs — reports, results, and screenshots.
251
+ **Purpose**: Evidence of test runs - reports, results, and screenshots.
232
252
 
233
253
  ```
234
254
  05-test-execution/
235
255
  ├── README.md
236
256
  ├── automated/
237
- │ ├── {YYYY-MM-DD_HH-MM-SS_desc}.md ← Execution report (human-readable summary)
238
- │ └── test-results/ ← Playwright output (gitignored if large)
257
+ │ ├── {YYYY-MM-DD_HH-MM-SS_desc}.md <- Execution report (human-readable summary)
258
+ │ └── test-results/ <- Playwright output (gitignored if large)
239
259
  │ └── .last-run.json
240
260
  └── manual/
241
261
  ├── exploratory/
@@ -271,8 +291,8 @@ Each skill folder contains:
271
291
  - `resolved/` - closed by fix or formal decision
272
292
 
273
293
  **Decision guide**:
274
- - ADO enabled → use ADO Work Items. `06-defects/` contains lightweight references only
275
- - ADO disabled → use this folder as primary defect tracker
294
+ - ADO enabled -> use ADO Work Items. `06-defects/` contains lightweight references only
295
+ - ADO disabled -> use this folder as primary defect tracker
276
296
  - Either way: `test.skip()` references a defect ID so the skip is traceable
277
297
 
278
298
  See `docs/generalization-decisions.md §7` for the full evaluation of this folder.
@@ -325,21 +345,21 @@ See `docs/generalization-decisions.md §7` for the full evaluation of this folde
325
345
  ```
326
346
  08-azure-integration/
327
347
  ├── README.md
328
- ├── AGENT-ADO-INTEGRATION.md ← Agent instructions for ADO operations
329
- ├── PLAYWRIGHT-AZURE-REPORTER-PLAN.md ← Reporter setup and migration log
330
- ├── module-registry.json ← Module → spec path → ADO plan/suite IDs
331
- ├── ado-ids-mapping-{project}.json ← Complete TC → ADO WI ID registry
348
+ ├── AGENT-ADO-INTEGRATION.md <- Agent instructions for ADO operations
349
+ ├── PLAYWRIGHT-AZURE-REPORTER-PLAN.md <- Reporter setup and migration log
350
+ ├── module-registry.json <- Module -> spec path -> ADO plan/suite IDs
351
+ ├── ado-ids-mapping-{project}.json <- Complete TC -> ADO WI ID registry
332
352
  ├── pipelines/
333
- │ └── azure-pipeline-qa.yml ← CI/CD pipeline definition
353
+ │ └── azure-pipeline-qa.yml <- CI/CD pipeline definition
334
354
  └── scripts/
335
- ├── inject-ado-ids.ps1 ← Injects [ID] prefix into spec files
336
- ├── create-testplan-from-mapping.ps1 ← Creates ADO plan from mapping JSON
337
- └── sync-ado-titles.ps1 ← Syncs spec titles with ADO TC titles
355
+ ├── inject-ado-ids.ps1 <- Injects [ID] prefix into spec files
356
+ ├── create-testplan-from-mapping.ps1 <- Creates ADO plan from mapping JSON
357
+ └── sync-ado-titles.ps1 <- Syncs spec titles with ADO TC titles
338
358
  ```
339
359
 
340
360
  ---
341
361
 
342
- ## `qa/README.md` — The Living Index
362
+ ## `qa/README.md` - The Living Index
343
363
 
344
364
  The `qa/README.md` is the primary human-readable project status document. It should be updated whenever:
345
365
  - A new module is analyzed
@@ -352,46 +372,46 @@ Minimum contents:
352
372
  - Quick-start commands for common tasks
353
373
  - Active blockers section
354
374
  - Last execution results summary
355
- - **`## Sprint History`** section — completed sprint checklists moved here from `AGENT-NEXT-STEPS.md`
375
+ - **`## Sprint History`** section - completed sprint checklists moved here from `AGENT-NEXT-STEPS.md`
356
376
 
357
377
  Template: `templates/qa-readme.md`
358
378
 
359
379
  ---
360
380
 
361
- ## `qa/AGENT-NEXT-STEPS.md` — Sprint Queue
381
+ ## `qa/AGENT-NEXT-STEPS.md` - Sprint Queue
362
382
 
363
383
  The `AGENT-NEXT-STEPS.md` is the agent's task queue for the current sprint. It is read by the agent at the start of every conversation.
364
384
 
365
385
  **Design principles (SRP + KISS)**:
366
- - Contains **one active sprint only** — no history, no completed checklists
386
+ - Contains **one active sprint only** - no history, no completed checklists
367
387
  - Three sections maximum: module status table, active sprint checklist, context references
368
- - Does not repeat standing instructions already in `copilot-instructions.md`
388
+ - Does not repeat standing instructions already in `qa-framework.instructions.md`
369
389
  - Detailed environment notes and patterns belong in `qa/memory/`, referenced from here
370
390
 
371
- When a sprint completes, the agent **moves** the completed checklist to `qa/README.md → ## Sprint History` and **deletes** that section from this file.
391
+ When a sprint completes, the agent **moves** the completed checklist to `qa/README.md -> ## Sprint History` and **deletes** that section from this file.
372
392
 
373
393
  Template: `templates/agent-next-steps.md`
374
394
 
375
395
  ---
376
396
 
377
- ## `qa/memory/` — Project QA Learnings
397
+ ## `qa/memory/` - Project QA Learnings
378
398
 
379
399
  Project-maintained folder for accumulated knowledge about the application under test: environment quirks, DOM patterns, Playwright gotchas, sprint-specific discoveries.
380
400
 
381
401
  ```
382
402
  qa/memory/
383
- ├── INDEX.md ← Required entry point — index of all files
384
- ├── {technology}-patterns.md ← Framework/stack-specific patterns (e.g., playwright-blazor-wasm-patterns.md)
385
- ├── {sprint-name}-discovery.md ← DOM/UI findings for an in-progress sprint
386
- └── {sprint-name}-lessons.md ← Retrospective patterns after a sprint completes
403
+ ├── INDEX.md <- Required entry point - index of all files
404
+ ├── {technology}-patterns.md <- Framework/stack-specific patterns (e.g., playwright-blazor-wasm-patterns.md)
405
+ ├── {sprint-name}-discovery.md <- DOM/UI findings for an in-progress sprint
406
+ └── {sprint-name}-lessons.md <- Retrospective patterns after a sprint completes
387
407
  ```
388
408
 
389
- ### `qa/memory/INDEX.md` — Required
409
+ ### `qa/memory/INDEX.md` - Required
390
410
 
391
411
  The `INDEX.md` is the **gate** that the agent reads before loading any other memory file. Its purpose is to let the agent load only what is relevant to the current task, rather than loading all files.
392
412
 
393
413
  ```markdown
394
- # Memory Index — {PROJECT_NAME}
414
+ # Memory Index - {PROJECT_NAME}
395
415
 
396
416
  | File | Topic | When to load |
397
417
  |---|---|---|
@@ -403,7 +423,7 @@ The `INDEX.md` is the **gate** that the agent reads before loading any other mem
403
423
  **Rules for `qa/memory/`**:
404
424
  - Always update `INDEX.md` when adding or modifying a memory file
405
425
  - Sprint-specific discovery files (`sprint-N-discovery.md`) are for the duration of that sprint; consolidate long-term patterns into a technology-specific file afterwards
406
- - Never load all memory files unconditionally — always read `INDEX.md` first and select by relevance
426
+ - Never load all memory files unconditionally - always read `INDEX.md` first and select by relevance
407
427
 
408
428
  ---
409
429
 
@@ -414,4 +434,4 @@ Optionally, place `SESSION-SUMMARY-YYYY-MM-DD.md` at the `qa/` root after each m
414
434
  - Record any blockers encountered
415
435
  - Provide the starting point for the next session
416
436
 
417
- This is especially valuable for agents — a session summary provides continuity across multiple chat sessions.
437
+ This is especially valuable for agents - a session summary provides continuity across multiple chat sessions.
@@ -13,7 +13,7 @@
13
13
 
14
14
  ---
15
15
 
16
- ## Option A — npm install (recommended)
16
+ ## Option A - npm install (recommended)
17
17
 
18
18
  ```bash
19
19
  npm install --save-dev @keber/qa-framework
@@ -57,7 +57,7 @@ qa/
57
57
 
58
58
  ---
59
59
 
60
- ## Option B — Clone or copy (no npm registry)
60
+ ## Option B - Clone or copy (no npm registry)
61
61
 
62
62
  ```bash
63
63
  # From your project root
@@ -69,7 +69,7 @@ node tools/qa-framework/scripts/cli.js init
69
69
 
70
70
  ---
71
71
 
72
- ## Option C — Manual scaffold (advanced)
72
+ ## Option C - Manual scaffold (advanced)
73
73
 
74
74
  If you prefer to control exactly what gets created:
75
75
 
@@ -156,9 +156,44 @@ Edit `qa/qa-framework.config.json` (or `qa-framework.config.json` at project roo
156
156
  **Never** put `testPlanId`, `suiteId`, or `ADO_PAT` in the config file directly.
157
157
  Use environment variables:
158
158
 
159
- - `ADO_PAT` — Personal Access Token
160
- - `ADO_PLAN_ID` — Test Plan ID (can also go in `module-registry.json`)
161
- - `ADO_SUITE_ID` — Suite ID
159
+ - `ADO_PAT` - Personal Access Token
160
+
161
+ #### Optional: ANALISIS/PLAN agent mode (Claude Code only)
162
+
163
+ Gated by `integrations.azureDevOps.sprintCycle.enabled`. When `true`, `init`/`upgrade`
164
+ generate six Claude Code subagents (`.claude/agents/qa-analisis.md`, `qa-plan.md`,
165
+ `qa-asesoria.md`, `qa-reporte-ejecucion.md`, `qa-informe-resultados.md`,
166
+ `qa-investigador.md`) for a sprint-centric manual testing
167
+ workflow parallel to the 6-stage pipeline. See
168
+ [docs/usage-with-agent.md](usage-with-agent.md) for details.
169
+
170
+ ```json
171
+ {
172
+ "integrations": {
173
+ "azureDevOps": {
174
+ "enabled": true,
175
+ "sprintCycle": {
176
+ "enabled": true,
177
+ "sprintDurationDays": 8,
178
+ "manualTestingTimeboxDays": 2,
179
+ "dateFormat": "dd-mm-aaaa",
180
+ "timezone": "America/Santiago",
181
+ "approvalThresholdPercent": 85
182
+ }
183
+ }
184
+ }
185
+ }
186
+ ```
187
+
188
+ All `sprintCycle` fields are optional; omitted fields fall back to neutral framework
189
+ defaults (8-day sprint, 2-day manual testing timebox, `dd-mm-aaaa`, `America/Santiago`,
190
+ 85% approval threshold over executed cases). Optional overrides under `conventions`:
191
+ `decimalSeparator` (`","` or `"."`, otherwise derived from the locale) and
192
+ `defectIdPrefix` (e.g. `"ACME"`, otherwise derived from `project.name`).
193
+ `qa-investigador` gets Playwright MCP browser tools only for `parallelLanes.lanes[]`
194
+ entries with an `mcpNamespace` (pattern `^mcp__[A-Za-z0-9_-]+__$`).
195
+ - `ADO_PLAN_ID` - Test Plan ID (can also go in `module-registry.json`)
196
+ - `ADO_SUITE_ID` - Suite ID
162
197
 
163
198
  ---
164
199
 
@@ -244,6 +279,6 @@ The `upgrade` command:
244
279
  1. Checks the current framework version in your project
245
280
  2. Shows a diff of changed template and instruction files
246
281
  3. Prompts before overwriting any file that has local modifications
247
- 4. Never touches `01-specifications/`, `02-test-plans/`, `03-test-cases/`, `04-test-data/`, `05-test-execution/`, `06-defects/` — only framework-owned files are updated
282
+ 4. Never touches `01-specifications/`, `02-test-plans/`, `03-test-cases/`, `04-test-data/`, `05-test-execution/`, `06-defects/` - only framework-owned files are updated
248
283
 
249
284
  See `MIGRATION-NOTES.md` for version-specific migration instructions.