qa-flowkit 0.4.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.qa-ai/adapters/aider/.aider/README.md +25 -0
- package/.qa-ai/adapters/aider/.aider.conf.yml +6 -0
- package/.qa-ai/adapters/claude/agents/qa-workflow-orchestrator.md +18 -0
- package/.qa-ai/adapters/claude/commands/qa-add-tests.md +42 -0
- package/.qa-ai/adapters/claude/commands/qa-automation-plan.md +43 -0
- package/.qa-ai/adapters/claude/commands/qa-clean.md +42 -0
- package/.qa-ai/adapters/claude/commands/qa-config.md +51 -0
- package/.qa-ai/adapters/claude/commands/qa-coverage.md +46 -0
- package/.qa-ai/adapters/claude/commands/qa-doctor.md +11 -0
- package/.qa-ai/adapters/claude/commands/qa-full-flow.md +59 -0
- package/.qa-ai/adapters/claude/commands/qa-gate.md +36 -0
- package/.qa-ai/adapters/claude/commands/qa-help.md +30 -0
- package/.qa-ai/adapters/claude/commands/qa-init.md +70 -0
- package/.qa-ai/adapters/claude/commands/qa-status.md +56 -0
- package/.qa-ai/adapters/claude/commands/qa-update-tests.md +47 -0
- package/.qa-ai/adapters/claude/commands/qa-validate-features.md +36 -0
- package/.qa-ai/adapters/cline/.cline/README.md +25 -0
- package/.qa-ai/adapters/cline/.clinerules +9 -0
- package/.qa-ai/adapters/codex/README.md +44 -0
- package/.qa-ai/adapters/codex/prompts/implement-project.md +15 -0
- package/.qa-ai/adapters/continue/README.md +26 -0
- package/.qa-ai/adapters/continue/checks/qa-feature-conventions.md +15 -0
- package/.qa-ai/adapters/gemini/GEMINI.md +40 -0
- package/.qa-ai/adapters/generic/AGENTS.md +100 -0
- package/.qa-ai/adapters/goose/recipes/qa-flowkit.yaml +20 -0
- package/.qa-ai/adapters/opencode/README.md +57 -0
- package/.qa-ai/adapters/opencode/agents/qa-workflow.md +18 -0
- package/.qa-ai/adapters/opencode/commands/qa-add-tests.md +42 -0
- package/.qa-ai/adapters/opencode/commands/qa-automation-plan.md +43 -0
- package/.qa-ai/adapters/opencode/commands/qa-clean.md +42 -0
- package/.qa-ai/adapters/opencode/commands/qa-config.md +51 -0
- package/.qa-ai/adapters/opencode/commands/qa-coverage.md +46 -0
- package/.qa-ai/adapters/opencode/commands/qa-doctor.md +13 -0
- package/.qa-ai/adapters/opencode/commands/qa-full-flow.md +59 -0
- package/.qa-ai/adapters/opencode/commands/qa-gate.md +36 -0
- package/.qa-ai/adapters/opencode/commands/qa-help.md +30 -0
- package/.qa-ai/adapters/opencode/commands/qa-init.md +70 -0
- package/.qa-ai/adapters/opencode/commands/qa-status.md +56 -0
- package/.qa-ai/adapters/opencode/commands/qa-update-tests.md +47 -0
- package/.qa-ai/adapters/opencode/commands/qa-validate-features.md +36 -0
- package/.qa-ai/agents/README.md +39 -0
- package/.qa-ai/agents/api-testing-agent.md +73 -0
- package/.qa-ai/agents/automation-feasibility-agent.md +128 -0
- package/.qa-ai/agents/gherkin-test-design-agent.md +110 -0
- package/.qa-ai/agents/jira-task-agent.md +92 -0
- package/.qa-ai/agents/pr-agent.md +101 -0
- package/.qa-ai/agents/qa-context-intake-agent.md +75 -0
- package/.qa-ai/agents/qa-workflow-orchestrator.md +113 -0
- package/.qa-ai/agents/release-gate-agent.md +50 -0
- package/.qa-ai/agents/requirements-intake-agent.md +79 -0
- package/.qa-ai/agents/requirements-normalization-agent.md +80 -0
- package/.qa-ai/agents/specialists/available/appium.md +59 -0
- package/.qa-ai/agents/specialists/available/cypress.md +68 -0
- package/.qa-ai/agents/specialists/available/generic-test-design.md +117 -0
- package/.qa-ai/agents/specialists/available/jira.md +108 -0
- package/.qa-ai/agents/specialists/available/karate.md +97 -0
- package/.qa-ai/agents/specialists/available/playwright-api.md +87 -0
- package/.qa-ai/agents/specialists/available/playwright-ui.md +87 -0
- package/.qa-ai/agents/specialists/available/postman.md +108 -0
- package/.qa-ai/agents/specialists/available/rest-assured.md +103 -0
- package/.qa-ai/agents/specialists/available/selenium.md +91 -0
- package/.qa-ai/agents/specialists/available/testrail.md +85 -0
- package/.qa-ai/agents/specialists/available/webdriverio.md +81 -0
- package/.qa-ai/agents/test-design-system-agent.md +33 -0
- package/.qa-ai/agents/testrail-coverage-agent.md +84 -0
- package/.qa-ai/agents/testrail-sync-agent.md +96 -0
- package/.qa-ai/agents/webdriverio-implementation-agent.md +84 -0
- package/.qa-ai/presets/manual-only.yaml +65 -0
- package/.qa-ai/presets/selenium-jest-browserstack.yaml +72 -0
- package/.qa-ai/presets/webdriverio-playwright-api.yaml +85 -0
- package/.qa-ai/rules/api-testing.rules.md +7 -0
- package/.qa-ai/rules/approval.rules.md +8 -0
- package/.qa-ai/rules/automation.rules.md +7 -0
- package/.qa-ai/rules/gherkin.rules.md +12 -0
- package/.qa-ai/rules/testrail.rules.md +10 -0
- package/.qa-ai/rules/webdriverio.rules.md +9 -0
- package/.qa-ai/scripts/bootstrap-agent-adapters.mjs +127 -0
- package/.qa-ai/scripts/clean.mjs +243 -0
- package/.qa-ai/scripts/config.mjs +202 -0
- package/.qa-ai/scripts/doctor.mjs +383 -0
- package/.qa-ai/scripts/init.mjs +447 -0
- package/.qa-ai/scripts/lib/markdown-table.mjs +76 -0
- package/.qa-ai/scripts/lib/project-config.mjs +184 -0
- package/.qa-ai/scripts/lib/qa-next-steps.mjs +578 -0
- package/.qa-ai/scripts/lib/release-gate.mjs +66 -0
- package/.qa-ai/scripts/lib/test-design.mjs +92 -0
- package/.qa-ai/scripts/lib/test-management-mapping.mjs +73 -0
- package/.qa-ai/scripts/lib/utils.mjs +331 -0
- package/.qa-ai/scripts/qa-help.mjs +44 -0
- package/.qa-ai/scripts/smoke-npm-pack.mjs +187 -0
- package/.qa-ai/scripts/smoke-test.mjs +465 -0
- package/.qa-ai/scripts/sync-agent-adapters.mjs +121 -0
- package/.qa-ai/scripts/test-validators.mjs +334 -0
- package/.qa-ai/scripts/validate-active-specialists.mjs +106 -0
- package/.qa-ai/scripts/validate-features.mjs +277 -0
- package/.qa-ai/scripts/validate-release-gate.mjs +105 -0
- package/.qa-ai/scripts/validate-sync-plan.mjs +186 -0
- package/.qa-ai/scripts/validate-target.mjs +104 -0
- package/.qa-ai/scripts/validate-test-design.mjs +117 -0
- package/.qa-ai/scripts/validate-traceability.mjs +183 -0
- package/.qa-ai/templates/automation-feasibility-report.template.md +21 -0
- package/.qa-ai/templates/automation-implementation-plan.template.md +23 -0
- package/.qa-ai/templates/feature.template +13 -0
- package/.qa-ai/templates/jira-automation-task.template.md +25 -0
- package/.qa-ai/templates/pr-template.md +60 -0
- package/.qa-ai/templates/release-gate.template.yaml +16 -0
- package/.qa-ai/templates/requirement-analysis.template.md +17 -0
- package/.qa-ai/templates/test-design-proposal.template.md +26 -0
- package/.qa-ai/templates/test-design-system.template.md +15 -0
- package/.qa-ai/templates/test-management-mapping.template.json +18 -0
- package/.qa-ai/templates/testrail-coverage-analysis.template.md +17 -0
- package/.qa-ai/templates/testrail-sync-plan.template.md +22 -0
- package/.qa-ai/templates/traceability-matrix.template.md +4 -0
- package/.qa-ai/workflows/automation-analysis.md +23 -0
- package/.qa-ai/workflows/cleanup.md +52 -0
- package/.qa-ai/workflows/context-intake.md +66 -0
- package/.qa-ai/workflows/full-flow.md +55 -0
- package/.qa-ai/workflows/implementation.md +24 -0
- package/.qa-ai/workflows/intake.md +3 -0
- package/.qa-ai/workflows/pr.md +3 -0
- package/.qa-ai/workflows/release-gate.md +22 -0
- package/.qa-ai/workflows/test-design-system.md +33 -0
- package/.qa-ai/workflows/test-design.md +23 -0
- package/.qa-ai/workflows/testrail-sync.md +23 -0
- package/CHANGELOG.md +108 -0
- package/CODE_OF_CONDUCT.md +11 -0
- package/CONTRIBUTING.md +39 -0
- package/LICENSE +21 -0
- package/README.es.md +602 -0
- package/README.md +633 -0
- package/ROADMAP.md +107 -0
- package/SECURITY.md +18 -0
- package/bin/qa-flowkit.mjs +214 -0
- package/docs/qa-ai/agent-compatibility.md +100 -0
- package/docs/qa-ai/architecture.md +130 -0
- package/docs/qa-ai/backlog.md +393 -0
- package/docs/qa-ai/cleanup.md +104 -0
- package/docs/qa-ai/customizing-agents.md +148 -0
- package/docs/qa-ai/getting-started.md +385 -0
- package/docs/qa-ai/implementation-guide-for-codex.md +210 -0
- package/docs/qa-ai/npm-migration-plan.md +50 -0
- package/docs/qa-ai/open-source-release-checklist.md +17 -0
- package/docs/qa-ai/qa-help.md +76 -0
- package/docs/qa-ai/release-gate.md +60 -0
- package/docs/qa-ai/terminal-transcripts.md +316 -0
- package/docs/qa-ai/test-design-dual-mode.md +75 -0
- package/docs/qa-ai/troubleshooting.md +740 -0
- package/docs/qa-ai/workflow.md +147 -0
- package/package.json +72 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# QA AI Workflow
|
|
2
|
+
|
|
3
|
+
## Optional - QA context intake
|
|
4
|
+
|
|
5
|
+
Use this before Step 1 when `knowledge.enabled` is true or when the user provides `--qa-context <path>`.
|
|
6
|
+
|
|
7
|
+
Inputs:
|
|
8
|
+
|
|
9
|
+
- Repository-local QA context folder.
|
|
10
|
+
- `.qa-ai/workflows/context-intake.md`.
|
|
11
|
+
- `.qa-ai/agents/qa-context-intake-agent.md`.
|
|
12
|
+
|
|
13
|
+
Outputs:
|
|
14
|
+
|
|
15
|
+
- `qa-ai-output/qa-knowledge-summary.md`
|
|
16
|
+
- `qa-ai-output/qa-init-decisions.md`
|
|
17
|
+
|
|
18
|
+
Requirements:
|
|
19
|
+
|
|
20
|
+
- Separate documented practices from inferred practices.
|
|
21
|
+
- Ask approval before applying inferred init defaults.
|
|
22
|
+
- Do not write to external tools.
|
|
23
|
+
- Future workflow steps must follow the approved QA context decisions unless they conflict with `.qa-ai/rules/`.
|
|
24
|
+
|
|
25
|
+
## Step 1 - Requirement intake and normalization
|
|
26
|
+
|
|
27
|
+
Inputs:
|
|
28
|
+
|
|
29
|
+
- Configured requirement source.
|
|
30
|
+
- Configured documentation source.
|
|
31
|
+
- Markdown PRD/RF.
|
|
32
|
+
- Requirement attachments.
|
|
33
|
+
|
|
34
|
+
Outputs:
|
|
35
|
+
|
|
36
|
+
- `qa-ai-output/requirement-analysis.md`
|
|
37
|
+
|
|
38
|
+
Requirements:
|
|
39
|
+
|
|
40
|
+
- The configured requirement source is the main source when available.
|
|
41
|
+
- Extract RFs and Acceptance Criteria.
|
|
42
|
+
- Detect ambiguity.
|
|
43
|
+
- Proposed inferred CA must be approved before use.
|
|
44
|
+
|
|
45
|
+
## Step 2 - Official RF ID validation
|
|
46
|
+
|
|
47
|
+
Requirements:
|
|
48
|
+
|
|
49
|
+
- An official RF ID is required.
|
|
50
|
+
- If missing, ask the user.
|
|
51
|
+
- Do not generate final tests without the official ID.
|
|
52
|
+
|
|
53
|
+
## Step 3 - Test management coverage analysis
|
|
54
|
+
|
|
55
|
+
Outputs:
|
|
56
|
+
|
|
57
|
+
- `qa-ai-output/testrail-coverage-analysis.md`
|
|
58
|
+
|
|
59
|
+
Requirements:
|
|
60
|
+
|
|
61
|
+
- Ask for the configured test management project/suite.
|
|
62
|
+
- Search existing tests.
|
|
63
|
+
- Detect duplicates.
|
|
64
|
+
- Compare existing coverage against RF/CA.
|
|
65
|
+
- Do not update existing cases without approval.
|
|
66
|
+
|
|
67
|
+
## Step 4 - Gherkin test design
|
|
68
|
+
|
|
69
|
+
Outputs:
|
|
70
|
+
|
|
71
|
+
- `.feature` files under `features/`.
|
|
72
|
+
|
|
73
|
+
Requirements:
|
|
74
|
+
|
|
75
|
+
- Use the configured Gherkin language: English (`en`) or Spanish (`es`).
|
|
76
|
+
- Spanish `.feature` files include `# language: es`.
|
|
77
|
+
- One scenario per file.
|
|
78
|
+
- Configured acceptance criteria label after the Feature narrative.
|
|
79
|
+
- Manual tests also have feature files.
|
|
80
|
+
- Unit tests are excluded.
|
|
81
|
+
|
|
82
|
+
## Step 5 - Test management sync plan
|
|
83
|
+
|
|
84
|
+
Outputs:
|
|
85
|
+
|
|
86
|
+
- `qa-ai-output/testrail-sync-plan.md`
|
|
87
|
+
|
|
88
|
+
Requirements:
|
|
89
|
+
|
|
90
|
+
- Show sections to create.
|
|
91
|
+
- Show cases to create.
|
|
92
|
+
- Show cases requiring update.
|
|
93
|
+
- Ask approval before external writes.
|
|
94
|
+
|
|
95
|
+
## Step 6 - Traceability and prioritization
|
|
96
|
+
|
|
97
|
+
Outputs:
|
|
98
|
+
|
|
99
|
+
- `qa-ai-output/traceability-matrix.md`
|
|
100
|
+
|
|
101
|
+
Required mapping:
|
|
102
|
+
|
|
103
|
+
```text
|
|
104
|
+
Requirement Source -> RF -> CA -> Feature -> Test Management Case ID -> Automation Status -> Automation File
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Step 7 - Automation feasibility
|
|
108
|
+
|
|
109
|
+
Outputs:
|
|
110
|
+
|
|
111
|
+
- `qa-ai-output/automation-feasibility-report.md`
|
|
112
|
+
|
|
113
|
+
Requirements:
|
|
114
|
+
|
|
115
|
+
- Analyze repo conventions.
|
|
116
|
+
- Decide what is automatable.
|
|
117
|
+
- UI/E2E framework: use `automation.ui.framework` from `qa-ai.config.yaml`.
|
|
118
|
+
- API/integration framework: use `automation.api.framework` from `qa-ai.config.yaml`.
|
|
119
|
+
- Provide technical proposal before coding.
|
|
120
|
+
|
|
121
|
+
## Step 8 - Implementation and validation
|
|
122
|
+
|
|
123
|
+
Requirements:
|
|
124
|
+
|
|
125
|
+
- Create new specs, page objects, helpers and fixtures when approved.
|
|
126
|
+
- Do not modify existing tests without approval.
|
|
127
|
+
- Execute tests if possible.
|
|
128
|
+
- If not executable, mark first execution as manual.
|
|
129
|
+
|
|
130
|
+
## Step 9 - Issue task and PR
|
|
131
|
+
|
|
132
|
+
Requirements:
|
|
133
|
+
|
|
134
|
+
- Create configured issue tracker task draft if automation is pending and cannot be completed.
|
|
135
|
+
- Open PR or prepare PR-ready branch.
|
|
136
|
+
- Include traceability and execution status.
|
|
137
|
+
|
|
138
|
+
## Maintenance - cleanup
|
|
139
|
+
|
|
140
|
+
Use `node .qa-ai/scripts/clean.mjs` to preview cleanup of generated files tracked in `.qa-ai/state/init-manifest.json`.
|
|
141
|
+
|
|
142
|
+
Requirements:
|
|
143
|
+
|
|
144
|
+
- Dry-run first.
|
|
145
|
+
- Use `--force` only after reviewing the plan.
|
|
146
|
+
- Do not delete modified generated files unless the user explicitly asks for `--include-modified`.
|
|
147
|
+
- Do not remove the copied `.qa-ai/` framework folder as part of normal cleanup.
|
package/package.json
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "qa-flowkit",
|
|
3
|
+
"version": "0.4.0-alpha.0",
|
|
4
|
+
"description": "Portable open-source framework and npm CLI for AI-assisted QA workflows.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"qa-flowkit": "./bin/qa-flowkit.mjs"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"bin/",
|
|
11
|
+
".qa-ai/",
|
|
12
|
+
"!.qa-ai/state/",
|
|
13
|
+
"!.qa-ai/agents/specialists/active.md",
|
|
14
|
+
"docs/qa-ai/",
|
|
15
|
+
"README.md",
|
|
16
|
+
"README.es.md",
|
|
17
|
+
"CHANGELOG.md",
|
|
18
|
+
"ROADMAP.md",
|
|
19
|
+
"CONTRIBUTING.md",
|
|
20
|
+
"CODE_OF_CONDUCT.md",
|
|
21
|
+
"SECURITY.md",
|
|
22
|
+
"LICENSE"
|
|
23
|
+
],
|
|
24
|
+
"scripts": {
|
|
25
|
+
"qa:init": "node .qa-ai/scripts/init.mjs",
|
|
26
|
+
"qa:config": "node .qa-ai/scripts/config.mjs",
|
|
27
|
+
"qa:bootstrap": "node .qa-ai/scripts/bootstrap-agent-adapters.mjs",
|
|
28
|
+
"qa:doctor": "node .qa-ai/scripts/doctor.mjs",
|
|
29
|
+
"qa:clean": "node .qa-ai/scripts/clean.mjs",
|
|
30
|
+
"qa:validate-features": "node .qa-ai/scripts/validate-features.mjs",
|
|
31
|
+
"qa:validate-traceability": "node .qa-ai/scripts/validate-traceability.mjs",
|
|
32
|
+
"qa:validate-sync-plan": "node .qa-ai/scripts/validate-sync-plan.mjs",
|
|
33
|
+
"qa:validate-active-specialists": "node .qa-ai/scripts/validate-active-specialists.mjs",
|
|
34
|
+
"qa:validate-target": "node .qa-ai/scripts/validate-target.mjs",
|
|
35
|
+
"qa:help": "node .qa-ai/scripts/qa-help.mjs",
|
|
36
|
+
"qa:validate-release-gate": "node .qa-ai/scripts/validate-release-gate.mjs",
|
|
37
|
+
"qa:validate-test-design": "node .qa-ai/scripts/validate-test-design.mjs",
|
|
38
|
+
"qa:sync-adapters": "node .qa-ai/scripts/sync-agent-adapters.mjs",
|
|
39
|
+
"qa:test-validators": "node .qa-ai/scripts/test-validators.mjs",
|
|
40
|
+
"qa:smoke": "node .qa-ai/scripts/smoke-test.mjs",
|
|
41
|
+
"qa:smoke-npm": "node .qa-ai/scripts/smoke-npm-pack.mjs",
|
|
42
|
+
"validate:oss-extraction": "node .qa-ai/scripts/doctor.mjs && node .qa-ai/scripts/validate-features.mjs --allow-empty && node .qa-ai/scripts/validate-traceability.mjs --allow-empty --allow-missing && node .qa-ai/scripts/validate-sync-plan.mjs --allow-empty --allow-missing && node .qa-ai/scripts/validate-active-specialists.mjs --allow-missing && node .qa-ai/scripts/test-validators.mjs && node .qa-ai/scripts/smoke-test.mjs && node .qa-ai/scripts/smoke-npm-pack.mjs"
|
|
43
|
+
},
|
|
44
|
+
"keywords": [
|
|
45
|
+
"qa",
|
|
46
|
+
"testing",
|
|
47
|
+
"ai-agents",
|
|
48
|
+
"gherkin",
|
|
49
|
+
"testrail",
|
|
50
|
+
"webdriverio",
|
|
51
|
+
"playwright",
|
|
52
|
+
"codex",
|
|
53
|
+
"claude-code",
|
|
54
|
+
"gemini-cli",
|
|
55
|
+
"qa-flowkit"
|
|
56
|
+
],
|
|
57
|
+
"homepage": "https://github.com/warante/QA_FlowKit#readme",
|
|
58
|
+
"repository": {
|
|
59
|
+
"type": "git",
|
|
60
|
+
"url": "git+https://github.com/warante/QA_FlowKit.git"
|
|
61
|
+
},
|
|
62
|
+
"bugs": {
|
|
63
|
+
"url": "https://github.com/warante/QA_FlowKit/issues"
|
|
64
|
+
},
|
|
65
|
+
"publishConfig": {
|
|
66
|
+
"access": "public"
|
|
67
|
+
},
|
|
68
|
+
"license": "MIT",
|
|
69
|
+
"engines": {
|
|
70
|
+
"node": ">=20"
|
|
71
|
+
}
|
|
72
|
+
}
|