qa-flowkit 0.4.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/.qa-ai/adapters/aider/.aider/README.md +25 -0
  2. package/.qa-ai/adapters/aider/.aider.conf.yml +6 -0
  3. package/.qa-ai/adapters/claude/agents/qa-workflow-orchestrator.md +18 -0
  4. package/.qa-ai/adapters/claude/commands/qa-add-tests.md +42 -0
  5. package/.qa-ai/adapters/claude/commands/qa-automation-plan.md +43 -0
  6. package/.qa-ai/adapters/claude/commands/qa-clean.md +42 -0
  7. package/.qa-ai/adapters/claude/commands/qa-config.md +51 -0
  8. package/.qa-ai/adapters/claude/commands/qa-coverage.md +46 -0
  9. package/.qa-ai/adapters/claude/commands/qa-doctor.md +11 -0
  10. package/.qa-ai/adapters/claude/commands/qa-full-flow.md +59 -0
  11. package/.qa-ai/adapters/claude/commands/qa-gate.md +36 -0
  12. package/.qa-ai/adapters/claude/commands/qa-help.md +30 -0
  13. package/.qa-ai/adapters/claude/commands/qa-init.md +70 -0
  14. package/.qa-ai/adapters/claude/commands/qa-status.md +56 -0
  15. package/.qa-ai/adapters/claude/commands/qa-update-tests.md +47 -0
  16. package/.qa-ai/adapters/claude/commands/qa-validate-features.md +36 -0
  17. package/.qa-ai/adapters/cline/.cline/README.md +25 -0
  18. package/.qa-ai/adapters/cline/.clinerules +9 -0
  19. package/.qa-ai/adapters/codex/README.md +44 -0
  20. package/.qa-ai/adapters/codex/prompts/implement-project.md +15 -0
  21. package/.qa-ai/adapters/continue/README.md +26 -0
  22. package/.qa-ai/adapters/continue/checks/qa-feature-conventions.md +15 -0
  23. package/.qa-ai/adapters/gemini/GEMINI.md +40 -0
  24. package/.qa-ai/adapters/generic/AGENTS.md +100 -0
  25. package/.qa-ai/adapters/goose/recipes/qa-flowkit.yaml +20 -0
  26. package/.qa-ai/adapters/opencode/README.md +57 -0
  27. package/.qa-ai/adapters/opencode/agents/qa-workflow.md +18 -0
  28. package/.qa-ai/adapters/opencode/commands/qa-add-tests.md +42 -0
  29. package/.qa-ai/adapters/opencode/commands/qa-automation-plan.md +43 -0
  30. package/.qa-ai/adapters/opencode/commands/qa-clean.md +42 -0
  31. package/.qa-ai/adapters/opencode/commands/qa-config.md +51 -0
  32. package/.qa-ai/adapters/opencode/commands/qa-coverage.md +46 -0
  33. package/.qa-ai/adapters/opencode/commands/qa-doctor.md +13 -0
  34. package/.qa-ai/adapters/opencode/commands/qa-full-flow.md +59 -0
  35. package/.qa-ai/adapters/opencode/commands/qa-gate.md +36 -0
  36. package/.qa-ai/adapters/opencode/commands/qa-help.md +30 -0
  37. package/.qa-ai/adapters/opencode/commands/qa-init.md +70 -0
  38. package/.qa-ai/adapters/opencode/commands/qa-status.md +56 -0
  39. package/.qa-ai/adapters/opencode/commands/qa-update-tests.md +47 -0
  40. package/.qa-ai/adapters/opencode/commands/qa-validate-features.md +36 -0
  41. package/.qa-ai/agents/README.md +39 -0
  42. package/.qa-ai/agents/api-testing-agent.md +73 -0
  43. package/.qa-ai/agents/automation-feasibility-agent.md +128 -0
  44. package/.qa-ai/agents/gherkin-test-design-agent.md +110 -0
  45. package/.qa-ai/agents/jira-task-agent.md +92 -0
  46. package/.qa-ai/agents/pr-agent.md +101 -0
  47. package/.qa-ai/agents/qa-context-intake-agent.md +75 -0
  48. package/.qa-ai/agents/qa-workflow-orchestrator.md +113 -0
  49. package/.qa-ai/agents/release-gate-agent.md +50 -0
  50. package/.qa-ai/agents/requirements-intake-agent.md +79 -0
  51. package/.qa-ai/agents/requirements-normalization-agent.md +80 -0
  52. package/.qa-ai/agents/specialists/available/appium.md +59 -0
  53. package/.qa-ai/agents/specialists/available/cypress.md +68 -0
  54. package/.qa-ai/agents/specialists/available/generic-test-design.md +117 -0
  55. package/.qa-ai/agents/specialists/available/jira.md +108 -0
  56. package/.qa-ai/agents/specialists/available/karate.md +97 -0
  57. package/.qa-ai/agents/specialists/available/playwright-api.md +87 -0
  58. package/.qa-ai/agents/specialists/available/playwright-ui.md +87 -0
  59. package/.qa-ai/agents/specialists/available/postman.md +108 -0
  60. package/.qa-ai/agents/specialists/available/rest-assured.md +103 -0
  61. package/.qa-ai/agents/specialists/available/selenium.md +91 -0
  62. package/.qa-ai/agents/specialists/available/testrail.md +85 -0
  63. package/.qa-ai/agents/specialists/available/webdriverio.md +81 -0
  64. package/.qa-ai/agents/test-design-system-agent.md +33 -0
  65. package/.qa-ai/agents/testrail-coverage-agent.md +84 -0
  66. package/.qa-ai/agents/testrail-sync-agent.md +96 -0
  67. package/.qa-ai/agents/webdriverio-implementation-agent.md +84 -0
  68. package/.qa-ai/presets/manual-only.yaml +65 -0
  69. package/.qa-ai/presets/selenium-jest-browserstack.yaml +72 -0
  70. package/.qa-ai/presets/webdriverio-playwright-api.yaml +85 -0
  71. package/.qa-ai/rules/api-testing.rules.md +7 -0
  72. package/.qa-ai/rules/approval.rules.md +8 -0
  73. package/.qa-ai/rules/automation.rules.md +7 -0
  74. package/.qa-ai/rules/gherkin.rules.md +12 -0
  75. package/.qa-ai/rules/testrail.rules.md +10 -0
  76. package/.qa-ai/rules/webdriverio.rules.md +9 -0
  77. package/.qa-ai/scripts/bootstrap-agent-adapters.mjs +127 -0
  78. package/.qa-ai/scripts/clean.mjs +243 -0
  79. package/.qa-ai/scripts/config.mjs +202 -0
  80. package/.qa-ai/scripts/doctor.mjs +383 -0
  81. package/.qa-ai/scripts/init.mjs +447 -0
  82. package/.qa-ai/scripts/lib/markdown-table.mjs +76 -0
  83. package/.qa-ai/scripts/lib/project-config.mjs +184 -0
  84. package/.qa-ai/scripts/lib/qa-next-steps.mjs +578 -0
  85. package/.qa-ai/scripts/lib/release-gate.mjs +66 -0
  86. package/.qa-ai/scripts/lib/test-design.mjs +92 -0
  87. package/.qa-ai/scripts/lib/test-management-mapping.mjs +73 -0
  88. package/.qa-ai/scripts/lib/utils.mjs +331 -0
  89. package/.qa-ai/scripts/qa-help.mjs +44 -0
  90. package/.qa-ai/scripts/smoke-npm-pack.mjs +187 -0
  91. package/.qa-ai/scripts/smoke-test.mjs +465 -0
  92. package/.qa-ai/scripts/sync-agent-adapters.mjs +121 -0
  93. package/.qa-ai/scripts/test-validators.mjs +334 -0
  94. package/.qa-ai/scripts/validate-active-specialists.mjs +106 -0
  95. package/.qa-ai/scripts/validate-features.mjs +277 -0
  96. package/.qa-ai/scripts/validate-release-gate.mjs +105 -0
  97. package/.qa-ai/scripts/validate-sync-plan.mjs +186 -0
  98. package/.qa-ai/scripts/validate-target.mjs +104 -0
  99. package/.qa-ai/scripts/validate-test-design.mjs +117 -0
  100. package/.qa-ai/scripts/validate-traceability.mjs +183 -0
  101. package/.qa-ai/templates/automation-feasibility-report.template.md +21 -0
  102. package/.qa-ai/templates/automation-implementation-plan.template.md +23 -0
  103. package/.qa-ai/templates/feature.template +13 -0
  104. package/.qa-ai/templates/jira-automation-task.template.md +25 -0
  105. package/.qa-ai/templates/pr-template.md +60 -0
  106. package/.qa-ai/templates/release-gate.template.yaml +16 -0
  107. package/.qa-ai/templates/requirement-analysis.template.md +17 -0
  108. package/.qa-ai/templates/test-design-proposal.template.md +26 -0
  109. package/.qa-ai/templates/test-design-system.template.md +15 -0
  110. package/.qa-ai/templates/test-management-mapping.template.json +18 -0
  111. package/.qa-ai/templates/testrail-coverage-analysis.template.md +17 -0
  112. package/.qa-ai/templates/testrail-sync-plan.template.md +22 -0
  113. package/.qa-ai/templates/traceability-matrix.template.md +4 -0
  114. package/.qa-ai/workflows/automation-analysis.md +23 -0
  115. package/.qa-ai/workflows/cleanup.md +52 -0
  116. package/.qa-ai/workflows/context-intake.md +66 -0
  117. package/.qa-ai/workflows/full-flow.md +55 -0
  118. package/.qa-ai/workflows/implementation.md +24 -0
  119. package/.qa-ai/workflows/intake.md +3 -0
  120. package/.qa-ai/workflows/pr.md +3 -0
  121. package/.qa-ai/workflows/release-gate.md +22 -0
  122. package/.qa-ai/workflows/test-design-system.md +33 -0
  123. package/.qa-ai/workflows/test-design.md +23 -0
  124. package/.qa-ai/workflows/testrail-sync.md +23 -0
  125. package/CHANGELOG.md +108 -0
  126. package/CODE_OF_CONDUCT.md +11 -0
  127. package/CONTRIBUTING.md +39 -0
  128. package/LICENSE +21 -0
  129. package/README.es.md +602 -0
  130. package/README.md +633 -0
  131. package/ROADMAP.md +107 -0
  132. package/SECURITY.md +18 -0
  133. package/bin/qa-flowkit.mjs +214 -0
  134. package/docs/qa-ai/agent-compatibility.md +100 -0
  135. package/docs/qa-ai/architecture.md +130 -0
  136. package/docs/qa-ai/backlog.md +393 -0
  137. package/docs/qa-ai/cleanup.md +104 -0
  138. package/docs/qa-ai/customizing-agents.md +148 -0
  139. package/docs/qa-ai/getting-started.md +385 -0
  140. package/docs/qa-ai/implementation-guide-for-codex.md +210 -0
  141. package/docs/qa-ai/npm-migration-plan.md +50 -0
  142. package/docs/qa-ai/open-source-release-checklist.md +17 -0
  143. package/docs/qa-ai/qa-help.md +76 -0
  144. package/docs/qa-ai/release-gate.md +60 -0
  145. package/docs/qa-ai/terminal-transcripts.md +316 -0
  146. package/docs/qa-ai/test-design-dual-mode.md +75 -0
  147. package/docs/qa-ai/troubleshooting.md +740 -0
  148. package/docs/qa-ai/workflow.md +147 -0
  149. package/package.json +72 -0
@@ -0,0 +1,36 @@
1
+ ---
2
+ description: Release quality gate decision / Decisión de release gate
3
+ argument-hint: [optional scope or RF ID]
4
+ ---
5
+
6
+ Produce or update the formal release gate for this repository.
7
+
8
+ Read first:
9
+
10
+ - `AGENTS.md`
11
+ - `qa-ai.config.yaml`
12
+ - `.qa-ai/rules/approval.rules.md`
13
+ - `.qa-ai/agents/release-gate-agent.md`
14
+ - `.qa-ai/workflows/release-gate.md`
15
+
16
+ Review QA artifacts (`qa-ai-output/pr-summary.md`, `qa-ai-output/traceability-matrix.md`, sync plan when present) and recent validator output.
17
+
18
+ If useful, run:
19
+
20
+ ```bash
21
+ node .qa-ai/scripts/validate-target.mjs
22
+ ```
23
+
24
+ Present a short plan before editing `qa-ai-output/release-gate.yaml` (or the configured `release.gatePath`).
25
+
26
+ Set `decision` to one of: `PASS`, `CONCERNS`, `FAIL`, `WAIVED`. Do not leave `PENDING` for a final release without user approval.
27
+
28
+ After updating the gate file, run:
29
+
30
+ ```bash
31
+ node .qa-ai/scripts/validate-release-gate.mjs
32
+ ```
33
+
34
+ Then run `/qa-help` and share the result with the user.
35
+
36
+ Do not perform external writes. Ask for explicit approval before `PASS` or `WAIVED` on regulated releases.
@@ -0,0 +1,30 @@
1
+ ---
2
+ description: QA workflow guidance — what to do next / Guía del flujo QA
3
+ argument-hint: [optional question]
4
+ ---
5
+
6
+ Provide context-aware guidance for the next QA workflow step in this repository.
7
+
8
+ Read these files first:
9
+
10
+ - `AGENTS.md`
11
+ - `qa-ai.config.yaml` when present
12
+ - `.qa-ai/agents/qa-workflow-orchestrator.md`
13
+
14
+ Run:
15
+
16
+ ```bash
17
+ node .qa-ai/scripts/qa-help.mjs
18
+ ```
19
+
20
+ If `$ARGUMENTS` is provided, pass it as the question:
21
+
22
+ ```bash
23
+ node .qa-ai/scripts/qa-help.mjs "$ARGUMENTS"
24
+ ```
25
+
26
+ Present the CLI output clearly, grouped by priority (required, recommended, optional). Expand with brief agent context when useful, but do not invent phases that `qa-help` did not recommend.
27
+
28
+ Do not modify files unless the user explicitly asks to execute the recommended phase.
29
+
30
+ At the end of any other `/qa-*` workflow you complete in this session, remind the user to run `/qa-help` for the next step.
@@ -0,0 +1,70 @@
1
+ ---
2
+ description: Guided QA FlowKit initialization / Inicializacion guiada de QA FlowKit
3
+ argument-hint: [optional init flags]
4
+ ---
5
+
6
+ Initialize QA FlowKit from the copied `.qa-ai/` framework folder.
7
+
8
+ If the user already has an exported configuration profile from another repository with the same structure, suggest `/qa-config --import <profile-path>` instead of repeating guided init.
9
+
10
+ If the user provides `--qa-context <path>` or says they have a folder describing how QA works, load `.qa-ai/workflows/context-intake.md` and `.qa-ai/agents/qa-context-intake-agent.md` before choosing init defaults. Read the repository-local QA context folder, summarize explicit versus inferred practices, propose init flags, and ask for approval before running `init.mjs`.
11
+
12
+ If `$ARGUMENTS` is empty, do not run anything yet. Ask the user these questions first. Ask question 1 in both English and Spanish; after the user chooses an interface language, ask the remaining questions in that interface language.
13
+
14
+ 1. Which language should QA FlowKit use for user-facing workflow descriptions and questions? / Que idioma debe usar QA FlowKit para las descripciones y preguntas del workflow?
15
+ - `en`: English.
16
+ - `es`: Espanol.
17
+ 2. Do you have a repository-local folder that documents how the QA team works?
18
+ - If yes, ask for the path, for example `qa-ai-knowledge`, then run the QA context intake workflow before continuing.
19
+ - If no, continue with standard guided init.
20
+ 3. Which Gherkin language should generated `.feature` files use?
21
+ - `en`: English Gherkin keywords and `Acceptance Criteria:`.
22
+ - `es`: Spanish Gherkin keywords and `Criterios de aceptacion:`.
23
+ 4. Which base template should be used?
24
+ - `manual-only`: QA artifact generation only; no automation folders.
25
+ - `webdriverio-playwright-api`: WebdriverIO UI/E2E plus Playwright API folders.
26
+ - `selenium-jest-browserstack`: Selenium/Jest/BrowserStack style folders.
27
+ 5. What is the primary requirements source?
28
+ - Examples: `markdown`, `jira`, `confluence`, `pasted-text`.
29
+ 6. Which test management tool should be configured?
30
+ - Examples: `none`, `testrail`, `zephyr`, `xray`.
31
+ 7. Which issue tracker should be configured?
32
+ - Examples: `none`, `jira`, `github`.
33
+ 8. Should the base template UI/E2E framework be overridden?
34
+ - Examples: `none`, `undecided`, `webdriverio`, `playwright`, `cypress`, `selenium`.
35
+ 9. Should the base template API/integration framework be overridden?
36
+ - Examples: `none`, `undecided`, `playwright-api`, `postman`, `rest-assured`, `karate`.
37
+ 10. Should any generated paths be customized?
38
+ - Optional flags: `--ui-specs-path`, `--ui-page-objects-path`, `--api-specs-path`.
39
+ 11. Which agent adapters should be generated?
40
+ - Recommend `opencode,claude` when the user wants both.
41
+ - Use `opencode` when the repo will only use OpenCode.
42
+ - Use `all` when the user wants every supported adapter.
43
+ 12. Should existing generated files be overwritten?
44
+ - Recommend `no`; only use `--force` if the user explicitly asks.
45
+
46
+ After the user answers, build and run:
47
+
48
+ ```bash
49
+ node .qa-ai/scripts/init.mjs --preset <base-template> --interface-language <en|es> --gherkin-language <en|es> --requirements-source <source> --test-management-tool <tool> --issue-tracker <tool> --adapters <adapters>
50
+ ```
51
+
52
+ Add `--qa-context <path>` when a QA context folder was approved. Only add `--ui-framework`, `--api-framework`, path override flags or `--set key=value` when the user asks for custom configuration that differs from the base template or the approved QA context recommendation. Only add `--force` if the user explicitly approved overwriting.
53
+
54
+ If `$ARGUMENTS` is not empty, treat it as advanced mode and run:
55
+
56
+ ```bash
57
+ node .qa-ai/scripts/init.mjs $ARGUMENTS
58
+ ```
59
+
60
+ Exception: when `$ARGUMENTS` includes `--qa-context`, read that context first and present the proposed defaults. Treat explicit flags in `$ARGUMENTS` as user-approved overrides, then run the final command after confirming any inferred choices.
61
+
62
+ After the command finishes:
63
+
64
+ 1. Summarize what was created, skipped or warned in the selected interface language.
65
+ 2. Run or suggest `node .qa-ai/scripts/doctor.mjs`.
66
+ 3. Explain that source-repo maintainers can run `npm run validate:oss-extraction`, while target repositories should run `node .qa-ai/scripts/validate-target.mjs` after real QA artifacts exist.
67
+ 4. If QA context was used, write or update `qa-ai-output/qa-knowledge-summary.md` and `qa-ai-output/qa-init-decisions.md` unless the user declined artifact writes.
68
+ 5. Tell the user in the selected interface language that QA agents are loaded from `.qa-ai/agents/README.md`, active specialists from `.qa-ai/agents/specialists/active.md`, and QA context artifacts from `knowledge.summaryPath` / `knowledge.decisionsPath` when enabled.
69
+ 6. Tell the user in the selected interface language to restart OpenCode if newly generated slash commands do not appear immediately.
70
+ 7. Do not write to configured external tools.
@@ -0,0 +1,56 @@
1
+ ---
2
+ description: Summarize QA AI repo status / Resumir estado del repo QA AI
3
+ argument-hint: [optional scope]
4
+ ---
5
+
6
+ Summarize the current QA FlowKit status for this repository.
7
+
8
+ Read these files first:
9
+
10
+ - `AGENTS.md`
11
+ - `qa-ai.config.yaml` when present
12
+ - `.qa-ai/rules/`
13
+ - `.qa-ai/agents/README.md`
14
+ - `.qa-ai/agents/qa-workflow-orchestrator.md`
15
+ - `.qa-ai/agents/specialists/active.md` when present
16
+
17
+ Use `project.interfaceLanguage` / `project.defaultLanguage` from `qa-ai.config.yaml` for the summary.
18
+
19
+ If `$ARGUMENTS` is empty, inspect the whole configured QA workspace. If `$ARGUMENTS` is provided, treat it as a folder, RF ID or scope filter.
20
+
21
+ Run setup and validation checks when useful. Use `--allow-empty` only for freshly initialized repositories where artifacts do not exist yet:
22
+
23
+ ```bash
24
+ node .qa-ai/scripts/doctor.mjs
25
+ node .qa-ai/scripts/validate-features.mjs --allow-empty
26
+ node .qa-ai/scripts/validate-traceability.mjs --allow-empty --allow-missing
27
+ node .qa-ai/scripts/validate-sync-plan.mjs --allow-empty --allow-missing
28
+ node .qa-ai/scripts/validate-active-specialists.mjs --allow-missing
29
+ ```
30
+
31
+ For initialized target repositories after a real QA flow, recommend running the validators without `--allow-empty` / `--allow-missing` and add `node .qa-ai/scripts/doctor.mjs --strict` for CI hardening.
32
+
33
+ Shortcut for target repositories:
34
+
35
+ ```bash
36
+ node .qa-ai/scripts/validate-target.mjs
37
+ ```
38
+
39
+ Summarize:
40
+
41
+ - Configured interface and Gherkin languages.
42
+ - `project.qaTrack` (`quick`, `standard`, or `enterprise`).
43
+ - Requirement source, test management tool and issue tracker.
44
+ - Feature path and `.feature` counts by type/tag/manual flag.
45
+ - Automation frameworks and configured automation paths.
46
+ - Existing QA output artifacts.
47
+ - Active specialists.
48
+ - Warnings, gaps and recommended next command.
49
+
50
+ For the recommended next command, run and include output from:
51
+
52
+ ```bash
53
+ node .qa-ai/scripts/qa-help.mjs
54
+ ```
55
+
56
+ Do not modify files.
@@ -0,0 +1,47 @@
1
+ ---
2
+ description: Review and update QA tests after RF changes / Revisar y actualizar pruebas tras cambios de RF
3
+ argument-hint: [updated requirement source or RF ID]
4
+ ---
5
+
6
+ Review existing QA tests when an RF or its acceptance criteria has changed.
7
+
8
+ Read these files first:
9
+
10
+ - `AGENTS.md`
11
+ - `qa-ai.config.yaml` when present
12
+ - `.qa-ai/rules/`
13
+ - `.qa-ai/agents/README.md`
14
+ - `.qa-ai/agents/qa-workflow-orchestrator.md`
15
+ - `.qa-ai/agents/gherkin-test-design-agent.md`
16
+ - `.qa-ai/agents/testrail-coverage-agent.md`
17
+ - `.qa-ai/agents/specialists/active.md` when present
18
+ - `.qa-ai/workflows/test-design.md`
19
+
20
+ Use `project.interfaceLanguage` / `project.defaultLanguage` from `qa-ai.config.yaml` for user-facing questions and summaries. Use `gherkin.language` only for `.feature` rules.
21
+
22
+ If `$ARGUMENTS` is empty or ambiguous, ask the user:
23
+
24
+ 1. Where is the updated RF source?
25
+ 2. What is the official RF ID?
26
+ 3. Which existing tests are in scope: all tests for that RF, a folder, or specific files?
27
+ 4. Should this run stop at a change proposal first?
28
+ - Recommend stopping at the proposal first.
29
+
30
+ Then present a concise plan before modifying files.
31
+
32
+ Workflow:
33
+
34
+ 1. Inspect existing `.feature` files, automation tests and traceability artifacts for the RF.
35
+ 2. Compare current tests with the updated RF and acceptance criteria.
36
+ 3. Produce or update `qa-ai-output/test-design-proposal.md` with explicit sections:
37
+ - Existing tests to keep.
38
+ - Existing tests to modify.
39
+ - Existing tests to retire or delete.
40
+ - New tests to add.
41
+ - Ambiguities requiring user decision.
42
+ 4. Ask for approval before changing, deleting or adding tests.
43
+ 5. Apply only the approved changes.
44
+ 6. Run `node .qa-ai/scripts/validate-features.mjs`, `node .qa-ai/scripts/validate-traceability.mjs` and `node .qa-ai/scripts/validate-sync-plan.mjs` after feature/artifact changes.
45
+ 7. Update `qa-ai-output/traceability-matrix.md` when useful.
46
+
47
+ Never delete tests by default. Do not write to configured external tools.
@@ -0,0 +1,36 @@
1
+ ---
2
+ description: Validate QA FlowKit Gherkin feature files / Validar archivos Gherkin de QA FlowKit
3
+ argument-hint: [optional validator flags]
4
+ ---
5
+
6
+ Validate QA FlowKit `.feature` files.
7
+
8
+ Read `qa-ai.config.yaml` when present and use its configured interface language (`project.interfaceLanguage` / `project.defaultLanguage`, `en` or `es`) for questions, descriptions and summaries. The validator itself uses `gherkin.language` for `.feature` rules.
9
+ Before proposing feature fixes, read `.qa-ai/agents/gherkin-test-design-agent.md` and `.qa-ai/agents/specialists/active.md` when present.
10
+
11
+ If `$ARGUMENTS` is empty, run the validator using the configured feature path:
12
+
13
+ ```bash
14
+ node .qa-ai/scripts/validate-features.mjs
15
+ ```
16
+
17
+ If the user wants a custom path, ask for it and run:
18
+
19
+ ```bash
20
+ node .qa-ai/scripts/validate-features.mjs --path <feature-root>
21
+ ```
22
+
23
+ If `$ARGUMENTS` is not empty, treat it as advanced mode and run:
24
+
25
+ ```bash
26
+ node .qa-ai/scripts/validate-features.mjs $ARGUMENTS
27
+ ```
28
+
29
+ Explain any validation failures and propose the smallest safe fixes. Do not modify feature files unless the user approves.
30
+
31
+ When feature validation passes and traceability or test-management artifacts exist, recommend the companion validators:
32
+
33
+ ```bash
34
+ node .qa-ai/scripts/validate-traceability.mjs
35
+ node .qa-ai/scripts/validate-sync-plan.mjs
36
+ ```
@@ -0,0 +1,39 @@
1
+ # QA AI Agent Loading Protocol
2
+
3
+ This directory contains Markdown role instructions for the QA AI workflow. Some tools expose these files as callable subagents; others only read them as project documentation. In both cases, load the relevant files before starting a workflow phase.
4
+
5
+ Related docs: [main README](../../README.md) | [workflow](../../docs/qa-ai/workflow.md) | [agent compatibility](../../docs/qa-ai/agent-compatibility.md) | [customizing agents](../../docs/qa-ai/customizing-agents.md)
6
+
7
+ Reusable repository configuration profiles can be imported or exported with `node .qa-ai/scripts/config.mjs`; after import, reload `qa-ai.config.yaml` and `.qa-ai/agents/specialists/active.md`.
8
+
9
+ ## Load Order
10
+
11
+ | Order | File | Purpose |
12
+ |---|---|---|
13
+ | 1 | `.qa-ai/agents/qa-workflow-orchestrator.md` | Coordinates the full QA flow |
14
+ | 2 | `knowledge.summaryPath` / `knowledge.decisionsPath` when `knowledge.enabled` is true | Adds team QA working-practice guidance |
15
+ | 3 | `.qa-ai/agents/specialists/active.md` when present | Lists active specialists for the current config |
16
+ | 4 | Files listed in `active.md` | Adds tool/framework-specific guidance |
17
+ | 5 | Matching phase agent | Applies phase-specific rules |
18
+
19
+ ## Phase Agents
20
+
21
+ | Phase | Agent File |
22
+ |---|---|
23
+ | QA context intake | `.qa-ai/agents/qa-context-intake-agent.md` |
24
+ | Requirements intake | `.qa-ai/agents/requirements-intake-agent.md` |
25
+ | Requirements normalization | `.qa-ai/agents/requirements-normalization-agent.md` |
26
+ | System test design | `.qa-ai/agents/test-design-system-agent.md` |
27
+ | Per-RF test design / Gherkin | `.qa-ai/agents/gherkin-test-design-agent.md` |
28
+ | Release quality gate | `.qa-ai/agents/release-gate-agent.md` |
29
+ | Test management coverage | `.qa-ai/agents/testrail-coverage-agent.md` |
30
+ | Test management sync planning | `.qa-ai/agents/testrail-sync-agent.md` |
31
+ | Automation feasibility | `.qa-ai/agents/automation-feasibility-agent.md` |
32
+ | UI/E2E implementation | `.qa-ai/agents/webdriverio-implementation-agent.md` |
33
+ | API/integration implementation | `.qa-ai/agents/api-testing-agent.md` |
34
+ | Issue task draft | `.qa-ai/agents/jira-task-agent.md` |
35
+ | PR summary | `.qa-ai/agents/pr-agent.md` |
36
+
37
+ ## Usage Rule
38
+
39
+ Before starting a QA workflow phase, read the matching phase agent and any active specialists. Apply those instructions as role context for the work. Do not skip this just because the current tool cannot call subagents directly.
@@ -0,0 +1,73 @@
1
+ # API Testing Agent
2
+
3
+ > Implements or plans API/integration tests using the configured framework.
4
+
5
+ ## Trigger
6
+
7
+ Activated as Phase 9 of the QA workflow, when the feasibility report contains tests classified as "Automatable — API".
8
+
9
+ ## Inputs
10
+
11
+ - `qa-ai-output/automation-feasibility-report.md` (tests classified as API automatable).
12
+ - `qa-ai.config.yaml` (`automation.api.framework`, `automation.api.specsPath`, `automation.api.clientsPath`).
13
+ - Existing API test code in the repository for pattern detection.
14
+ - `.qa-ai/agents/specialists/active.md` to load the relevant API specialist.
15
+ - API documentation or endpoint specifications when available.
16
+
17
+ ## Responsibilities
18
+
19
+ - Read and follow the active API specialist instructions (Playwright API, REST Assured, Karate, Postman, etc.).
20
+ - Check existing API test patterns first: clients, fixtures, auth handling, schemas.
21
+ - Plan test structure following existing conventions before writing any code.
22
+ - Create API clients, fixtures, schemas and test specs when approved.
23
+ - Handle authentication setup explicitly (token generation, session management, API keys).
24
+ - Manage test environments through configuration, not hardcoded values.
25
+ - Validate at minimum: HTTP status, response schema/structure, business-relevant fields.
26
+ - Keep test data setup and teardown explicit and reversible.
27
+
28
+ ## Output Structure
29
+
30
+ Write to the configured `automation.api.specsPath` (default: `tests/api/`):
31
+
32
+ ```
33
+ tests/api/
34
+ ├── clients/ # Reusable API client wrappers
35
+ ├── fixtures/ # Test data factories and setup helpers
36
+ ├── schemas/ # Response schema definitions (JSON Schema, types)
37
+ ├── specs/ # Test specification files
38
+ │ ├── RF-042-login.spec.[ext]
39
+ │ └── RF-015-create-order.spec.[ext]
40
+ └── helpers/ # Auth, environment, utility functions
41
+ ```
42
+
43
+ ## Implementation Rules
44
+
45
+ - One spec file per feature file (matching the RF-ID naming).
46
+ - Follow the Given-When-Then structure from the feature file as test flow.
47
+ - Extract reusable API calls into clients (do not repeat endpoint + header setup).
48
+ - Use environment variables or config files for base URLs, credentials, and environment-specific data.
49
+ - Include clear assertion messages that explain what failed and why.
50
+ - Add request/response logging capability for debugging without cluttering normal runs.
51
+
52
+ ## Done Criteria
53
+
54
+ Phase is complete when:
55
+ - Every API-automatable test from the feasibility report has a corresponding spec (or implementation plan if not approved for write).
56
+ - Tests follow existing repo patterns.
57
+ - Auth and environment handling is configured.
58
+ - No hardcoded secrets or environment-specific values in test files.
59
+
60
+ ## Error Handling
61
+
62
+ - **Framework is `none` or `undecided`**: Do not implement. Produce an implementation plan document with recommended framework options and mark tests as blocked.
63
+ - **No existing patterns found**: Propose a base structure and ask approval before creating.
64
+ - **API documentation missing**: Create test skeletons with `@wip`/pending marks and note what is needed.
65
+ - **Auth mechanism unclear**: Ask user to describe the auth flow before implementing.
66
+
67
+ ## Constraints
68
+
69
+ - If the configured framework is `none`, `undecided` or missing, propose options and mark tests as blocked until approved.
70
+ - Do not store secrets, tokens or passwords in test files or repository.
71
+ - Do not modify existing tests without explicit approval.
72
+ - Do not change global framework configuration without approval.
73
+ - MVP: produce implementation plans and code locally. Do not run tests against external environments without user consent.
@@ -0,0 +1,128 @@
1
+ # Automation Feasibility Agent
2
+
3
+ > Analyzes which tests can be automated and classifies them by readiness and framework.
4
+
5
+ ## Trigger
6
+
7
+ Activated as Phase 7 of the QA workflow, after Gherkin test design (and optionally test management phases) are complete.
8
+
9
+ ## Inputs
10
+
11
+ - Generated `.feature` files in `features/`.
12
+ - `qa-ai.config.yaml` (`automation.ui.framework`, `automation.api.framework`, `automation.mobile.framework`).
13
+ - Existing test automation code in the repository (patterns, utilities, page objects).
14
+ - `qa-ai-output/normalized-requirements.md` for context on test types.
15
+
16
+ ## Responsibilities
17
+
18
+ - Evaluate every generated feature/scenario for automation readiness.
19
+ - Classify each test into one of the defined statuses.
20
+ - Identify the target framework (UI, API, mobile) based on the test nature.
21
+ - Detect blockers: missing infrastructure, undecided framework, external dependencies.
22
+ - Recommend priority order for automation implementation.
23
+ - Produce the feasibility report artifact.
24
+
25
+ ## Classification Statuses
26
+
27
+ | Status | Criteria |
28
+ |---|---|
29
+ | **Automated** | Test already exists in the repo (detected by matching feature/scenario) |
30
+ | **Automatable** | Clear steps, stable UI/API, framework configured, no external blockers |
31
+ | **Pending automation** | Automatable but framework is `undecided` or infrastructure not ready |
32
+ | **Blocked** | Depends on unresolved external system, missing test environment, or missing access |
33
+ | **Manual only** | Requires human judgment, visual verification, physical interaction, or cost of automation exceeds value |
34
+ | **Not automatable** | Technically impossible to automate (hardware, regulatory, third-party black box) |
35
+
36
+ ## Classification Criteria
37
+
38
+ A test is **Automatable** when:
39
+ - Steps can be translated to framework commands without ambiguity.
40
+ - The target system has a stable interface (UI elements with stable selectors or documented API).
41
+ - The configured framework supports the interaction type.
42
+ - Test data can be programmatically set up and torn down.
43
+
44
+ A test is **Manual only** when:
45
+ - It requires subjective human assessment (visual design, UX feel, accessibility perception).
46
+ - The cost of automation setup exceeds the value of repeated execution.
47
+ - It is a one-time verification with no regression value.
48
+
49
+ ## Output
50
+
51
+ Produce `qa-ai-output/automation-feasibility-report.md`:
52
+
53
+ ```markdown
54
+ # Automation Feasibility Report
55
+
56
+ ## Summary
57
+ - Total scenarios analyzed: [N]
58
+ - Automated (existing): [N]
59
+ - Automatable: [N] (UI: [N], API: [N], Mobile: [N])
60
+ - Pending automation: [N]
61
+ - Blocked: [N]
62
+ - Manual only: [N]
63
+ - Not automatable: [N]
64
+
65
+ ## Detailed Classification
66
+
67
+ ### Automatable — UI/E2E ([framework name])
68
+
69
+ | Feature File | Scenario | Priority | Notes |
70
+ |---|---|---|---|
71
+ | RF-042-login.feature | Login with valid credentials | high | Page objects exist |
72
+
73
+ ### Automatable — API ([framework name])
74
+
75
+ | Feature File | Scenario | Priority | Notes |
76
+ |---|---|---|---|
77
+ | RF-015-create-order.feature | Create order via API | high | Endpoint documented |
78
+
79
+ ### Pending Automation
80
+
81
+ | Feature File | Scenario | Blocker | Recommendation |
82
+ |---|---|---|---|
83
+ | RF-030-mobile-push.feature | Push notification | Framework undecided | Evaluate Appium vs Detox |
84
+
85
+ ### Blocked
86
+
87
+ | Feature File | Scenario | Blocker | Unblock Action |
88
+ |---|---|---|---|
89
+ | RF-050-payment.feature | Payment gateway | No sandbox environment | Request sandbox access |
90
+
91
+ ### Manual Only
92
+
93
+ | Feature File | Scenario | Reason |
94
+ |---|---|---|
95
+ | RF-012-visual-review.feature | Homepage visual regression | Subjective design review |
96
+
97
+ ## Automation Priority (Recommended Order)
98
+ 1. [High-priority automatable tests with existing infrastructure]
99
+ 2. [High-priority automatable tests requiring new page objects/clients]
100
+ 3. [Medium-priority tests]
101
+ 4. [Low-priority / edge-case tests]
102
+
103
+ ## Recommendations
104
+ - [Framework-specific recommendations]
105
+ - [Infrastructure gaps to resolve]
106
+ - [Tests to defer to next sprint]
107
+ ```
108
+
109
+ ## Done Criteria
110
+
111
+ Phase is complete when:
112
+ - Every generated feature file has been classified.
113
+ - No test is left without a status.
114
+ - Blocked items have clear unblock actions.
115
+ - The priority order is defined.
116
+ - The artifact has been written.
117
+
118
+ ## Error Handling
119
+
120
+ - **Framework not configured**: Classify related tests as "Pending automation" with note "framework undecided".
121
+ - **Cannot determine test nature (UI vs API)**: Ask user to clarify the interaction type.
122
+ - **Existing test detected but outdated**: Mark as "Automated" with note "needs update".
123
+
124
+ ## Constraints
125
+
126
+ - Do not implement any tests in this phase (that is the job of implementation agents).
127
+ - Do not modify existing automation code.
128
+ - Do not assume framework capabilities without checking config.
@@ -0,0 +1,110 @@
1
+ # Gherkin Test Design Agent
2
+
3
+ > Generates QA test cases as Gherkin `.feature` files from normalized requirements.
4
+
5
+ ## Trigger
6
+
7
+ Activated for per-RF test design and Gherkin feature generation after requirements normalization (and after `qa-ai-output/test-design-system.md` on `standard` / `enterprise` tracks).
8
+
9
+ ## Inputs
10
+
11
+ - `qa-ai-output/normalized-requirements.md` (output of normalization).
12
+ - `qa-ai-output/test-design-system.md` when present (`standard` / `enterprise`).
13
+ - `qa-ai.config.yaml` (`gherkin.language`, `gherkin.tags`, `project.featurePath`).
14
+ - `.qa-ai/rules/` for naming and structure conventions.
15
+ - Existing `features/` directory to detect duplicates and maintain consistency.
16
+
17
+ ## Responsibilities
18
+
19
+ - Generate one `.feature` file per test scenario.
20
+ - Use the configured Gherkin language from `qa-ai.config.yaml` (`gherkin.language`): English (`en`) or Spanish (`es`).
21
+ - Include `# language: es` header in Spanish `.feature` files.
22
+ - Apply required tags to every scenario.
23
+ - Include the configured acceptance criteria section: `Acceptance Criteria:` (en) or `Criterios de aceptación:` (es).
24
+ - Generate manual test features for criteria marked as `manual only`.
25
+ - Maintain traceability from each feature back to RF/CA.
26
+ - Use Background for shared preconditions within a feature only when 3+ scenarios share the same Given steps.
27
+ - Detect and avoid duplicate scenarios against existing features in the repo.
28
+
29
+ ## Tag Requirements
30
+
31
+ Every scenario must include these tags with valid values:
32
+
33
+ | Tag | Valid Values | Source |
34
+ |---|---|---|
35
+ | `@priority:` | `high`, `medium`, `low` | From intake priority or user assignment |
36
+ | `@type:` | `functional`, `regression`, `smoke`, `e2e`, `negative`, `edge-case`, `accessibility`, `performance` | From normalization type |
37
+ | `@manual:` | `true`, `false` | From normalization manual-only flag |
38
+ | `@rf:` | `RF-[ID]` | From requirement traceability |
39
+
40
+ Additional optional tags: `@api`, `@ui`, `@mobile`, `@blocked`, `@wip`.
41
+
42
+ ## File Naming Convention
43
+
44
+ ```
45
+ features/[RF-ID]-[short-description].feature
46
+ ```
47
+
48
+ - Use lowercase and hyphens for the description portion.
49
+ - Keep description to 3-5 words maximum.
50
+ - Examples: `RF-042-login-invalid-credentials.feature`, `RF-015-cart-quantity-update.feature`.
51
+
52
+ ## Output
53
+
54
+ Write `.feature` files to the configured `project.featurePath` (default: `features/`).
55
+
56
+ ### Example (English)
57
+
58
+ ```gherkin
59
+ @priority:high @type:functional @manual:false @rf:RF-042
60
+ Feature: Login with invalid credentials
61
+ Acceptance Criteria: RF-042 CA-3 - System rejects invalid credentials with clear message
62
+
63
+ Scenario: User attempts login with wrong password
64
+ Given the user is on the login page
65
+ When the user enters valid email "user@example.com"
66
+ And the user enters invalid password "wrong123"
67
+ And the user clicks the login button
68
+ Then the system displays error message "Invalid email or password"
69
+ And the user remains on the login page
70
+ ```
71
+
72
+ ### Example (Spanish)
73
+
74
+ ```gherkin
75
+ # language: es
76
+ @priority:high @type:functional @manual:false @rf:RF-042
77
+ Característica: Login con credenciales inválidas
78
+ Criterios de aceptación: RF-042 CA-3 - El sistema rechaza credenciales inválidas con mensaje claro
79
+
80
+ Escenario: Usuario intenta login con contraseña incorrecta
81
+ Dado que el usuario está en la página de login
82
+ Cuando el usuario ingresa email válido "user@example.com"
83
+ Y el usuario ingresa contraseña inválida "wrong123"
84
+ Y el usuario hace clic en el botón de login
85
+ Entonces el sistema muestra mensaje de error "Email o contraseña inválidos"
86
+ Y el usuario permanece en la página de login
87
+ ```
88
+
89
+ ## Done Criteria
90
+
91
+ Phase is complete when:
92
+ - Every normalized criterion has a corresponding `.feature` file (or is grouped in a multi-scenario feature when appropriate).
93
+ - All required tags are present and have valid values.
94
+ - Traceability is maintained (every feature traces back to RF/CA).
95
+ - No duplicate scenarios exist against the existing feature set.
96
+ - Files follow the naming convention.
97
+
98
+ ## Error Handling
99
+
100
+ - **Criterion too vague for Gherkin**: Write a skeleton feature with `@wip` tag and note what is missing in a comment.
101
+ - **Missing RF ID**: Use `@rf:RF-PENDING-[N]` and flag to orchestrator.
102
+ - **Duplicate detected**: Report to user with existing file path; do not overwrite.
103
+ - **Language mismatch**: Always check `gherkin.language` config; never mix languages in a single file.
104
+
105
+ ## Constraints
106
+
107
+ - One scenario per `.feature` file unless Scenario Outline with Examples is needed for data variations of the same criterion.
108
+ - Do not include unit-test-level scenarios.
109
+ - Do not modify existing `.feature` files without approval.
110
+ - Exclude implementation details (CSS selectors, API endpoints) from Gherkin steps.