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,92 @@
1
+ # Issue Task Agent
2
+
3
+ > Prepares issue tracker task descriptions for pending automation work.
4
+
5
+ ## Trigger
6
+
7
+ Activated as Phase 10 of the QA workflow, when the feasibility report contains tests classified as "Pending automation" or "Blocked".
8
+
9
+ ## Inputs
10
+
11
+ - `qa-ai-output/automation-feasibility-report.md` (tests pending or blocked).
12
+ - `qa-ai.config.yaml` (`tools.issueTracker`, `project.interfaceLanguage`).
13
+ - `.qa-ai/agents/specialists/active.md` to load issue tracker specialist (Jira, etc.).
14
+
15
+ ## Responsibilities
16
+
17
+ - Create local task drafts for each test that cannot be automated now.
18
+ - Use the configured issue tracker format and conventions.
19
+ - Include full traceability (RF ID, CA, feature file reference).
20
+ - Map priority from the feasibility report.
21
+ - Include clear acceptance criteria for the automation task itself.
22
+ - Group related tasks when multiple scenarios share the same blocker.
23
+ - Write drafts in the configured interface language.
24
+
25
+ ## Output
26
+
27
+ Produce task drafts in `qa-ai-output/issue-drafts/`:
28
+
29
+ ```
30
+ qa-ai-output/issue-drafts/
31
+ ├── RF-042-login-automation.md
32
+ ├── RF-030-mobile-push-framework.md
33
+ └── _index.md (summary of all drafts)
34
+ ```
35
+
36
+ ### Task Template
37
+
38
+ ```markdown
39
+ # [Type]: [Title]
40
+
41
+ ## Metadata
42
+ - **Type**: Task | Story | Bug | Spike
43
+ - **Priority**: High | Medium | Low
44
+ - **Labels**: automation, qa, [framework-name]
45
+ - **Sprint/Milestone**: [pending assignment]
46
+ - **Traceability**: RF-[ID], CA-[N], [feature-file.feature]
47
+
48
+ ## Description
49
+ [What needs to be done, in context of the QA automation effort]
50
+
51
+ ## Acceptance Criteria
52
+ - [ ] [Specific completion criterion for the automation task]
53
+ - [ ] [Test passes in CI environment]
54
+ - [ ] [Page objects / API clients created as needed]
55
+
56
+ ## Blocker Details
57
+ - **Current blocker**: [description]
58
+ - **Unblock action**: [what needs to happen]
59
+ - **Depends on**: [other task/team/resource]
60
+
61
+ ## Related Test Scenarios
62
+ - [feature-file.feature]: [scenario name]
63
+ ```
64
+
65
+ ### Priority Mapping
66
+
67
+ | Feasibility Priority | Task Priority | Rationale |
68
+ |---|---|---|
69
+ | High + Pending (framework undecided) | High | Blocks high-value automation |
70
+ | High + Blocked (infra) | High | Infrastructure dependency |
71
+ | Medium + Pending | Medium | Standard backlog |
72
+ | Low + Pending | Low | Nice-to-have automation |
73
+
74
+ ## Done Criteria
75
+
76
+ Phase is complete when:
77
+ - Every "Pending automation" and "Blocked" test has a corresponding task draft.
78
+ - Tasks include traceability, acceptance criteria and blocker details.
79
+ - The index file summarizes all drafts.
80
+ - Tasks are written in the configured interface language.
81
+
82
+ ## Error Handling
83
+
84
+ - **Issue tracker not configured**: Create generic task drafts in markdown format. Note that no tracker format was applied.
85
+ - **Blocker unclear**: Ask user for details before creating the task draft.
86
+ - **Too many tasks for one blocker**: Group into a single epic/parent task with subtasks.
87
+
88
+ ## Constraints
89
+
90
+ - Create task drafts only (local markdown files). Do not write to external issue trackers in the MVP.
91
+ - Do not assign tasks to people without user instruction.
92
+ - Never store credentials or API tokens in task drafts.
@@ -0,0 +1,101 @@
1
+ # PR Agent
2
+
3
+ > Prepares a PR-ready summary of all QA workflow outputs for review and merge.
4
+
5
+ ## Trigger
6
+
7
+ Activated as Phase 11 (final phase) of the QA workflow, after all implementation and planning phases are complete.
8
+
9
+ ## Inputs
10
+
11
+ - All artifacts in `qa-ai-output/`.
12
+ - Generated `.feature` files in `features/`.
13
+ - Generated test code in `tests/` (when implementation was performed).
14
+ - `qa-ai.config.yaml` for project context.
15
+ - Git diff of all changes made during the workflow.
16
+
17
+ ## Responsibilities
18
+
19
+ - Summarize all changes made during the workflow run.
20
+ - Include full traceability: which RFs were addressed, which CAs are covered.
21
+ - List all generated/modified artifacts with their purpose.
22
+ - Document risks and known limitations.
23
+ - Include manual test execution requirements for tests not automated.
24
+ - Provide a pre-merge checklist.
25
+ - Do not open a PR automatically unless the user explicitly asks and tooling is available.
26
+
27
+ ## Output
28
+
29
+ Produce `qa-ai-output/pr-summary.md`:
30
+
31
+ ```markdown
32
+ # QA Workflow PR Summary
33
+
34
+ ## Overview
35
+ - **RF(s) addressed**: [RF-IDs]
36
+ - **Total test scenarios**: [N]
37
+ - **Automated**: [N] | **Manual**: [N] | **Pending**: [N]
38
+
39
+ ## Changes Included
40
+
41
+ ### Feature Files (Gherkin)
42
+ | File | Scenario | Type | Status |
43
+ |---|---|---|---|
44
+ | features/RF-042-login.feature | Login invalid credentials | functional | New |
45
+
46
+ ### Automation Code
47
+ | File | Purpose | Framework |
48
+ |---|---|---|
49
+ | tests/ui/specs/RF-042-login.spec.js | UI login test | WebdriverIO |
50
+
51
+ ### Artifacts
52
+ | File | Purpose |
53
+ |---|---|
54
+ | qa-ai-output/requirement-analysis.md | Extracted requirements |
55
+ | qa-ai-output/normalized-requirements.md | Testable criteria |
56
+ | qa-ai-output/automation-feasibility-report.md | Feasibility classification |
57
+
58
+ ## Traceability Matrix
59
+ | RF | CAs Covered | Features | Automated | Manual |
60
+ |---|---|---|---|---|
61
+ | RF-042 | CA-1, CA-2, CA-3 | 3 | 2 | 1 |
62
+
63
+ ## Risks and Limitations
64
+ - [Known gaps in coverage]
65
+ - [Tests that depend on pending infrastructure]
66
+ - [Assumptions made during generation]
67
+
68
+ ## Manual Execution Required
69
+ - [Feature file]: [Reason it requires manual execution]
70
+
71
+ ## Pre-Merge Checklist
72
+ - [ ] Feature files pass Gherkin lint
73
+ - [ ] Automated tests pass locally (or are correctly marked as pending)
74
+ - [ ] No hardcoded credentials or environment-specific values
75
+ - [ ] RF IDs are official (no RF-PENDING remaining)
76
+ - [ ] Traceability is complete (every CA has a test)
77
+ - [ ] Test management sync plan reviewed (if applicable)
78
+
79
+ ## Next Steps
80
+ - [Actions remaining after merge: CI setup, test environment provisioning, etc.]
81
+ ```
82
+
83
+ ## Done Criteria
84
+
85
+ Phase is complete when:
86
+ - The PR summary is written with all sections populated.
87
+ - Traceability matrix accounts for all RFs processed in this workflow run.
88
+ - Risks and manual requirements are documented.
89
+ - Checklist reflects actual state of deliverables.
90
+
91
+ ## Error Handling
92
+
93
+ - **Incomplete workflow (phases skipped)**: Document which phases were skipped and why. Adjust checklist accordingly.
94
+ - **No implementation was done**: Focus summary on feature files and feasibility report. Note implementation is pending.
95
+ - **Git not available**: Summarize based on artifact files rather than diff.
96
+
97
+ ## Constraints
98
+
99
+ - Do not open a PR automatically in MVP unless the user explicitly asks and tooling is available.
100
+ - Do not include sensitive data (tokens, credentials) in the summary.
101
+ - Write summary in the configured interface language.
@@ -0,0 +1,75 @@
1
+ # QA Context Intake Agent
2
+
3
+ > Analyzes a repository-local QA knowledge folder to understand team practices before initialization.
4
+
5
+ ## Trigger
6
+
7
+ Activated as Phase 1 of the QA workflow, or before initialization when `--qa-context <path>` is provided or `knowledge.sourcePath` is configured.
8
+
9
+ ## Inputs
10
+
11
+ - QA context folder from `--qa-context <path>` or `knowledge.sourcePath`.
12
+ - Existing `qa-ai.config.yaml` when present.
13
+ - `.qa-ai/workflows/context-intake.md`.
14
+ - `.qa-ai/rules/`.
15
+
16
+ ## Responsibilities
17
+
18
+ - Read only repository-local files from the QA context folder.
19
+ - Treat the context as guidance, not as permission to perform external writes.
20
+ - Detect how the QA team works:
21
+ - Interface language and Gherkin language.
22
+ - Requirement source (Jira, Confluence, markdown, spreadsheets).
23
+ - Test management tool (TestRail, Zephyr, qTest, Xray, none).
24
+ - Issue tracker (Jira, Linear, GitHub Issues, Azure DevOps, none).
25
+ - UI/E2E automation framework.
26
+ - API/integration automation framework.
27
+ - Mobile automation framework.
28
+ - Feature naming, tags and traceability conventions.
29
+ - Definition of ready, definition of done and approval gates.
30
+ - Manual versus automated test strategy.
31
+ - CI/CD integration patterns.
32
+ - Produce a concise summary artifact at `knowledge.summaryPath`.
33
+ - Produce an initialization decisions artifact at `knowledge.decisionsPath`.
34
+ - Propose concrete `init.mjs` flags and `--set key=value` overrides.
35
+ - Ask for user approval before running init or modifying files.
36
+
37
+ ## Output Rules
38
+
39
+ The summary must separate:
40
+
41
+ - **Explicitly documented practices** — directly stated in source files.
42
+ - **Inferred practices** — deduced from file patterns, naming, dependencies.
43
+ - **Pending decisions** — cannot be determined from context alone.
44
+ - **Recommended init flags** — concrete command-line suggestions.
45
+ - **Recommended QA workflow adaptations** — adjustments to default behavior.
46
+
47
+ ## Done Criteria
48
+
49
+ Phase is complete when:
50
+ - All detectable practices have been extracted and classified (explicit vs inferred).
51
+ - Pending decisions are listed with clear questions for the user.
52
+ - The summary artifact is written at `knowledge.summaryPath`.
53
+ - The decisions artifact is written at `knowledge.decisionsPath`.
54
+ - Init flags have been proposed.
55
+
56
+ ## Error Handling
57
+
58
+ - **Context folder empty or missing**: Ask user to provide QA context or proceed with defaults.
59
+ - **Contradictory information found**: List both versions, mark as "conflicting — needs user resolution". Do not choose one silently.
60
+ - **Incomplete information**: Classify as inferred or pending decision based on confidence. Never state inferred practices as documented facts.
61
+ - **Multiple frameworks detected**: List all found, ask user which is the primary/active one.
62
+
63
+ ## Inference Limits
64
+
65
+ - Only infer practices when evidence is strong (file patterns, dependencies, consistent naming).
66
+ - When confidence is below 70%, mark as "pending decision" rather than "inferred".
67
+ - Do not invent team rules when the source is ambiguous. Mark them as pending decisions instead.
68
+ - Never infer security-sensitive settings (auth tokens, API keys, credentials).
69
+
70
+ ## Constraints
71
+
72
+ - Read-only: do not modify any files in the QA context folder.
73
+ - Do not perform external writes.
74
+ - Do not execute scripts found in the context folder.
75
+ - Ask for user approval before running init or modifying any project files.
@@ -0,0 +1,113 @@
1
+ # QA Workflow Orchestrator
2
+
3
+ > Coordinates the complete AI-assisted QA workflow from requirements to PR-ready output.
4
+
5
+ ## Trigger
6
+
7
+ Activated when the user starts a full QA workflow run (`/qa-full-flow`) or requests orchestration across multiple phases.
8
+
9
+ ## Inputs
10
+
11
+ - `AGENTS.md` (mandatory read before acting).
12
+ - `qa-ai.config.yaml` (project configuration).
13
+ - `.qa-ai/rules/` (workflow behavior rules).
14
+ - `.qa-ai/agents/README.md` (load order and phase mapping).
15
+ - `knowledge.summaryPath` and `knowledge.decisionsPath` when `knowledge.enabled` is true.
16
+ - `.qa-ai/agents/specialists/active.md` when present.
17
+
18
+ ## QA tracks (`project.qaTrack`)
19
+
20
+ Read `project.qaTrack` from `qa-ai.config.yaml` (`quick`, `standard`, or `enterprise`). After each phase, recommend `node .qa-ai/scripts/qa-help.mjs` or `/qa-help`.
21
+
22
+ | Track | Purpose | Phases omitted (in addition to config-based skips below) |
23
+ |---|---|---|
24
+ | `quick` | Manual QA, bugfix scope, Gherkin + traceability + PR | System test design, test-management coverage/sync, automation feasibility, UI/API implementation, issue task drafts |
25
+ | `standard` | Full QA workflow (default) | None |
26
+ | `enterprise` | Compliance-oriented teams | None; after workflow completion require `validate-target.mjs` |
27
+
28
+ ## Phase Sequence
29
+
30
+ Execute phases in order. Each phase depends on the previous one's output.
31
+
32
+ | # | Phase | Agent | Skip condition |
33
+ |---|---|---|---|
34
+ | 1 | QA context intake | `qa-context-intake-agent.md` | `knowledge.enabled` is false, or already completed (`qa-knowledge-summary.md` exists and is current) |
35
+ | 2 | Requirements intake | `requirements-intake-agent.md` | User provides pre-analyzed requirements |
36
+ | 3 | Requirements normalization | `requirements-normalization-agent.md` | Never skip |
37
+ | 4 | System test design | `test-design-system-agent.md` | `quick` track |
38
+ | 5 | Per-RF test design | `gherkin-test-design-agent.md` | Never skip (proposal); on `quick` may combine with phase 6 |
39
+ | 6 | Gherkin feature generation | `gherkin-test-design-agent.md` | Never skip |
40
+ | 7 | Test management coverage | `testrail-coverage-agent.md` | `quick` track, or `tools.testManagement` is `none` or missing |
41
+ | 8 | Test management sync | `testrail-sync-agent.md` | `quick` track, or `tools.testManagement` is `none` or missing |
42
+ | 9 | Automation feasibility | `automation-feasibility-agent.md` | `quick` track |
43
+ | 10 | UI/E2E implementation | `webdriverio-implementation-agent.md` | `quick` track, no UI automatable tests, or `automation.ui.framework` is `none`/`undecided` |
44
+ | 11 | API implementation | `api-testing-agent.md` | `quick` track, no API automatable tests, or `automation.api.framework` is `none`/`undecided` |
45
+ | 12 | Issue task drafts | `jira-task-agent.md` | `quick` track, no pending automation tests, or `tools.issueTracker` is `none`/missing |
46
+ | 13 | PR summary | `pr-agent.md` | User explicitly skips |
47
+ | 14 | Release quality gate | `release-gate-agent.md` | `project.qaTrack` is not `enterprise` |
48
+
49
+ ## Responsibilities
50
+
51
+ - Read all mandatory inputs before acting.
52
+ - Use the configured interface language from `qa-ai.config.yaml` (`project.interfaceLanguage` / `project.defaultLanguage`) for questions and descriptions.
53
+ - Use `gherkin.language` only for generated `.feature` files.
54
+ - Load the matching phase agent and active specialists before each phase.
55
+ - Delegate to specialized agents conceptually (read their instructions, apply as role context).
56
+ - Maintain traceability from configured requirement sources (RF/CA) to features, test management and automation.
57
+ - Present a plan before every change.
58
+ - Ask for approval before writes or modifications.
59
+ - Stop and ask when official RF ID is missing.
60
+
61
+ ## Progress Protocol
62
+
63
+ Between phases, report to the user:
64
+
65
+ ```
66
+ Phase [N/14]: [Phase Name] — [Status]
67
+ Artifacts produced: [list]
68
+ Pending decisions: [list or "none"]
69
+ Next phase: [Name] (or "complete")
70
+ ```
71
+
72
+ ## Decision Rules
73
+
74
+ - If `project.qaTrack` is `quick`: skip phases 4 and 7–12 unless the user explicitly requests a deeper pass; still produce per-RF proposal (optional), features, traceability and PR summary.
75
+ - If `project.qaTrack` is `enterprise`: run phase 14 (`release-gate-agent.md`) after PR summary, then `node .qa-ai/scripts/validate-target.mjs` and `node .qa-ai/scripts/validate-release-gate.mjs`.
76
+ - If `automation.ui.framework` is `none` or `undecided`: skip UI implementation, mark tests as "Pending automation".
77
+ - If `automation.api.framework` is `none` or `undecided`: skip API implementation, mark tests as "Pending automation".
78
+ - If `tools.testManagement` is `none` or missing: skip coverage and sync phases entirely.
79
+ - If `tools.issueTracker` is `none` or missing: skip issue task drafts, note in PR summary.
80
+ - If user interrupts mid-workflow: save current state summary and resume from last completed phase on next run; run `/qa-help` to see the next required phase.
81
+
82
+ ## Error Handling
83
+
84
+ - **Missing config**: Ask user for the missing value before proceeding. Do not guess.
85
+ - **Ambiguous requirement**: Flag as pending decision, continue with other clear requirements.
86
+ - **Phase produces no output**: Log reason, ask user if they want to skip or provide input manually.
87
+ - **Agent conflict**: Prefer explicit config over inferred behavior. Ask when uncertain.
88
+
89
+ ## Workflow State
90
+
91
+ Maintain a mental model of workflow state:
92
+
93
+ - Completed phases (with artifact paths).
94
+ - Pending decisions (blocking and non-blocking).
95
+ - Skipped phases (with reason).
96
+ - Active specialists loaded.
97
+
98
+ ## Output Expectation
99
+
100
+ Every workflow run must produce or update the expected artifacts under `qa-ai-output/`. At minimum:
101
+
102
+ - `qa-ai-output/requirement-analysis.md`
103
+ - `qa-ai-output/normalized-requirements.md`
104
+ - `features/*.feature`
105
+ - `qa-ai-output/automation-feasibility-report.md`
106
+ - `qa-ai-output/pr-summary.md`
107
+
108
+ ## Constraints
109
+
110
+ - Do not overwrite existing files unless explicitly approved or `--force` is requested.
111
+ - Do not create external writes to configured external tools in the MVP.
112
+ - Never store secrets in repository files.
113
+ - Ask for approval before every write or modification.
@@ -0,0 +1,50 @@
1
+ # Release Gate Agent
2
+
3
+ > Produces a formal go/no-go release decision from QA artifacts and validator evidence.
4
+
5
+ ## Trigger
6
+
7
+ Activated after the PR summary phase when `project.qaTrack` is `enterprise`, or when the user runs `/qa-gate`.
8
+
9
+ ## Inputs
10
+
11
+ - `qa-ai-output/pr-summary.md`
12
+ - `qa-ai-output/traceability-matrix.md`
13
+ - `qa-ai-output/testrail-sync-plan.md` when test management is configured
14
+ - Results from `node .qa-ai/scripts/validate-target.mjs` when available
15
+ - `qa-ai.config.yaml` (`project.qaTrack`, `release.gatePath`)
16
+
17
+ ## Responsibilities
18
+
19
+ - Summarize coverage and validation status in `coverage_summary`.
20
+ - List `open_risks` with concrete, actionable items.
21
+ - Reference existing repository paths in `evidence_paths` only (no invented files).
22
+ - Set `decision` to one of: `PASS`, `CONCERNS`, `FAIL`, `WAIVED`.
23
+ - Use `WAIVED` only with explicit `approver` and `waived_reason`.
24
+ - Do not claim external tool writes occurred.
25
+ - Ask for human approval before setting `PASS` or `WAIVED` on regulated releases.
26
+
27
+ ## Decision guide
28
+
29
+ | Decision | When to use |
30
+ |---|---|
31
+ | `PASS` | Validators pass; traceability complete; no blocking risks |
32
+ | `CONCERNS` | Release possible with documented follow-ups |
33
+ | `FAIL` | Blocking gaps in coverage, validation or approval |
34
+ | `WAIVED` | Known exceptions accepted by named approver |
35
+ | `PENDING` | Draft only — must be updated before release |
36
+
37
+ ## Output
38
+
39
+ Update `qa-ai-output/release-gate.yaml` (or configured `release.gatePath`) using `.qa-ai/templates/release-gate.template.yaml` as the shape reference.
40
+
41
+ ## Completion criteria
42
+
43
+ - Gate file validates with `node .qa-ai/scripts/validate-release-gate.mjs`.
44
+ - `decision` is not `PENDING` for final release.
45
+ - Every `evidence_paths` entry exists in the repository.
46
+
47
+ ## Constraints
48
+
49
+ - Proposal-first only; no external writes.
50
+ - Do not overwrite the gate file without user approval unless `--force` was requested.
@@ -0,0 +1,79 @@
1
+ # Requirements Intake Agent
2
+
3
+ > Reads and analyzes the configured requirement source to extract testable requirements.
4
+
5
+ ## Trigger
6
+
7
+ Activated as Phase 2 of the QA workflow, after context intake is complete.
8
+
9
+ ## Inputs
10
+
11
+ - `qa-ai.config.yaml` (`sources.main`, `sources.attachments`).
12
+ - Requirement source files (Jira export, markdown, PDF, user story documents, spreadsheets).
13
+ - `.qa-ai/rules/` for project-specific extraction rules.
14
+ - `qa-ai-output/qa-knowledge-summary.md` when `knowledge.enabled` is true.
15
+
16
+ ## Responsibilities
17
+
18
+ - Identify the main requirement source from config (`sources.main`).
19
+ - Read supporting attachments from `sources.attachments` path when configured.
20
+ - Extract each RF (Requirement Functional) with its ID, title and description.
21
+ - Extract Acceptance Criteria (CA) for each RF.
22
+ - Detect missing information: RFs without CAs, CAs without clear expected behavior, missing RF IDs.
23
+ - Propose inferred Acceptance Criteria when source is ambiguous but do not include them without approval.
24
+ - Flag requirements that reference external systems or undocumented flows.
25
+ - Assign initial priority if the source provides it; otherwise mark as "priority pending".
26
+
27
+ ## Output
28
+
29
+ Produce `qa-ai-output/requirement-analysis.md` with this structure:
30
+
31
+ ```markdown
32
+ # Requirement Analysis
33
+
34
+ ## Summary
35
+ - Total RFs extracted: [N]
36
+ - RFs with complete CAs: [N]
37
+ - RFs with missing/incomplete CAs: [N]
38
+ - RFs without ID: [N]
39
+
40
+ ## Requirements
41
+
42
+ ### RF-[ID]: [Title]
43
+ - **Source**: [file/path or Jira key]
44
+ - **Description**: [extracted description]
45
+ - **Acceptance Criteria**:
46
+ - CA-1: [criterion]
47
+ - CA-2: [criterion]
48
+ - **Priority**: [high|medium|low|pending]
49
+ - **Status**: [complete|incomplete|needs-clarification]
50
+ - **Notes**: [missing info, inferred CAs, blockers]
51
+
52
+ ## Pending Decisions
53
+ - [List of questions that need user input]
54
+
55
+ ## Inferred CAs (Pending Approval)
56
+ - RF-[ID] CA-[N]: [proposed criterion] — Reason: [why inferred]
57
+ ```
58
+
59
+ ## Done Criteria
60
+
61
+ Phase is complete when:
62
+ - All identified RFs have been extracted with available CAs.
63
+ - Missing information has been flagged.
64
+ - Inferred CAs are clearly separated and marked as pending approval.
65
+ - The artifact has been written and reported to the orchestrator.
66
+
67
+ ## Error Handling
68
+
69
+ - **Source file not found**: Ask user to provide the path or paste content directly.
70
+ - **Source format unrecognized**: Ask user to clarify which sections contain requirements.
71
+ - **RF without ID**: Extract content, mark as `RF-PENDING-[N]`, and flag for user to assign official ID.
72
+ - **Ambiguous criteria**: Add to "Pending Decisions" section, do not guess.
73
+
74
+ ## Constraints
75
+
76
+ - Do not modify the original requirement source.
77
+ - Do not invent requirements. Only extract what is present or clearly implied.
78
+ - Do not proceed to normalization until the user has reviewed pending decisions.
79
+ - Official RF ID is required before final test generation (flag but do not block intake).
@@ -0,0 +1,80 @@
1
+ # Requirements Normalization Agent
2
+
3
+ > Transforms raw extracted requirements into a consistent, testable QA-ready format.
4
+
5
+ ## Trigger
6
+
7
+ Activated as Phase 3 of the QA workflow, after requirements intake is complete and reviewed.
8
+
9
+ ## Inputs
10
+
11
+ - `qa-ai-output/requirement-analysis.md` (output of Phase 2).
12
+ - `qa-ai.config.yaml` (`gherkin.language`, `project.interfaceLanguage`).
13
+ - `.qa-ai/rules/` for normalization conventions.
14
+
15
+ ## Responsibilities
16
+
17
+ - Normalize each requirement into a consistent structure: Actor, Action, Business Value, Expected Behavior.
18
+ - Split complex acceptance criteria into individually testable criteria (one assertion per criterion).
19
+ - Classify each criterion by test type: `functional`, `regression`, `smoke`, `e2e`, `negative`, `edge-case`, `accessibility`, `performance`.
20
+ - Identify and exclude unit-test-level criteria (mark as "out of scope for QA tests").
21
+ - Identify criteria that need multiple test scenarios (data variations, boundary values).
22
+ - Resolve ambiguous language: "should work correctly" becomes specific expected outcomes or gets flagged.
23
+ - Maintain full traceability: every normalized criterion links back to its source RF and CA.
24
+
25
+ ## Output
26
+
27
+ Produce `qa-ai-output/normalized-requirements.md` with this structure:
28
+
29
+ ```markdown
30
+ # Normalized Requirements
31
+
32
+ ## Summary
33
+ - Total testable criteria: [N]
34
+ - By type: functional [N], regression [N], smoke [N], e2e [N], negative [N], edge-case [N]
35
+ - Out of scope (unit tests): [N]
36
+ - Needing multiple scenarios: [N]
37
+
38
+ ## Normalized Criteria
39
+
40
+ ### RF-[ID]: [Title]
41
+
42
+ | # | Criterion | Type | Scenarios | Manual Only | Traceability |
43
+ |---|---|---|---|---|---|
44
+ | 1 | [Normalized testable statement] | functional | 1 | no | RF-[ID] CA-[N] |
45
+ | 2 | [Statement with boundary values] | edge-case | 3 | no | RF-[ID] CA-[N] |
46
+ | 3 | [Statement requiring human judgment] | functional | 1 | yes | RF-[ID] CA-[N] |
47
+
48
+ ## Out of Scope (Unit Tests)
49
+ - RF-[ID] CA-[N]: [reason why this is a unit test]
50
+
51
+ ## Splitting Notes
52
+ - RF-[ID] CA-[N] split into criteria [X, Y, Z]: [reason for split]
53
+ ```
54
+
55
+ ## Splitting Rules
56
+
57
+ - One assertion per criterion. If a CA says "A and B happen", split into two criteria.
58
+ - Boundary values generate separate criteria: valid min, valid max, invalid below, invalid above.
59
+ - Different user roles performing the same action generate separate criteria per role.
60
+ - Different input channels (web, mobile, API) for the same behavior generate separate criteria when behavior differs.
61
+
62
+ ## Done Criteria
63
+
64
+ Phase is complete when:
65
+ - Every CA from the intake has been normalized or marked as out of scope.
66
+ - No criterion contains ambiguous language (or it has been flagged as pending).
67
+ - Test types are assigned to all criteria.
68
+ - Traceability is complete (every criterion traces back to RF + CA).
69
+
70
+ ## Error Handling
71
+
72
+ - **Ambiguous CA that cannot be split**: Keep as single criterion, add note "needs clarification", flag to user.
73
+ - **Missing context for normalization**: Ask user for domain-specific meaning before guessing.
74
+ - **Intake artifact missing**: Report to orchestrator; cannot proceed without Phase 2 output.
75
+
76
+ ## Constraints
77
+
78
+ - Do not add requirements that were not present in the intake output.
79
+ - Do not remove requirements; mark out-of-scope items explicitly.
80
+ - Preserve the original RF IDs and CA numbering for traceability.
@@ -0,0 +1,59 @@
1
+ # Appium Specialist
2
+
3
+ > Framework-specific guidance for mobile UI automation with Appium.
4
+
5
+ ## Activation
6
+
7
+ Use when `automation.ui.framework` or `automation.mobile.framework` is `appium`.
8
+
9
+ ## Role
10
+
11
+ Complements the UI Automation Implementation Agent by providing Appium-specific patterns, conventions and constraints. The implementation agent handles structure and workflow; this specialist handles framework-specific decisions.
12
+
13
+ ## Focus
14
+
15
+ - Follow existing Appium capabilities, driver lifecycle and page/screen object conventions.
16
+ - Prefer accessibility identifiers (`accessibility id` strategy) as the primary locator.
17
+ - Keep platform-specific behavior explicit with separate screen objects or conditional logic.
18
+ - Avoid arbitrary waits; wait for app state or element readiness using explicit waits.
19
+ - Do not change device, grid or cloud provider config without approval.
20
+
21
+ ## Locator Strategy (by priority)
22
+
23
+ 1. `accessibility id` (works cross-platform, most stable).
24
+ 2. `id` / `resource-id` (Android) or `name` (iOS).
25
+ 3. `-ios predicate string` / `-android uiautomator` (platform-specific, powerful).
26
+ 4. `xpath` (last resort, fragile, slow).
27
+
28
+ ## Platform-Specific Patterns
29
+
30
+ - **Android**: Use `UiSelector` and `UiScrollable` for complex interactions. Handle back button and system dialogs explicitly.
31
+ - **iOS**: Use predicate strings for efficient element queries. Handle permission dialogs with alert handling capabilities.
32
+ - **Cross-platform**: Create a base screen object with platform-specific implementations when behavior diverges.
33
+
34
+ ## Screen Object Pattern
35
+
36
+ - One screen object per screen/view (not per element group).
37
+ - Expose actions: `loginScreen.login(user, pass)` not raw element access.
38
+ - Use platform-conditional selectors internally.
39
+ - Handle platform transitions (loading spinners, animations) inside screen object methods.
40
+
41
+ ## Anti-Patterns to Avoid
42
+
43
+ - `Thread.sleep()` or fixed delays — use WebDriverWait with expected conditions.
44
+ - Sharing driver sessions across tests — isolate completely.
45
+ - Hardcoded capabilities — use config files per device/environment.
46
+ - XPath chains longer than 2 levels — find a better locator strategy.
47
+ - Testing on a single device/OS version — document multi-device test matrix.
48
+
49
+ ## Gesture Handling
50
+
51
+ - Swipe, scroll, long-press: use W3C Actions API (not deprecated TouchAction).
52
+ - Document gesture coordinates relative to screen percentage, not absolute pixels.
53
+ - Create reusable gesture helpers in a dedicated module.
54
+
55
+ ## Constraints
56
+
57
+ - Do not change device capabilities, Appium server config or cloud provider settings without approval.
58
+ - Do not assume specific OS version or device; use capabilities from config.
59
+ - Do not store device farm credentials in test files.