qa-skills 3.0.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/README.md +168 -0
- package/bin/cli.js +42 -0
- package/dist/agents/registry.d.ts +5 -0
- package/dist/agents/registry.d.ts.map +1 -0
- package/dist/agents/registry.js +101 -0
- package/dist/agents/registry.js.map +1 -0
- package/dist/agents/types.d.ts +9 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +2 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/dependencies.d.ts +21 -0
- package/dist/dependencies.d.ts.map +1 -0
- package/dist/dependencies.js +125 -0
- package/dist/dependencies.js.map +1 -0
- package/dist/installer.d.ts +25 -0
- package/dist/installer.d.ts.map +1 -0
- package/dist/installer.js +437 -0
- package/dist/installer.js.map +1 -0
- package/dist/scaffold.d.ts +27 -0
- package/dist/scaffold.d.ts.map +1 -0
- package/dist/scaffold.js +182 -0
- package/dist/scaffold.js.map +1 -0
- package/package.json +40 -0
- package/skills/qa-accessibility-test-writer/SKILL.md +127 -0
- package/skills/qa-accessibility-test-writer/references/axe-core-patterns.md +349 -0
- package/skills/qa-accessibility-test-writer/references/best-practices.md +184 -0
- package/skills/qa-accessibility-test-writer/references/wcag-tests.md +331 -0
- package/skills/qa-api-contract-curator/SKILL.md +104 -0
- package/skills/qa-api-contract-curator/references/breaking-changes.md +363 -0
- package/skills/qa-api-contract-curator/references/openapi-structure.md +404 -0
- package/skills/qa-browser-data-collector/SKILL.md +132 -0
- package/skills/qa-browser-data-collector/references/data-collection-checklist.md +91 -0
- package/skills/qa-browser-data-collector/references/playwright-mcp-patterns.md +113 -0
- package/skills/qa-bug-ticket-creator/SKILL.md +148 -0
- package/skills/qa-bug-ticket-creator/references/bug-report-format.md +149 -0
- package/skills/qa-bug-ticket-creator/references/severity-guide.md +81 -0
- package/skills/qa-bug-ticket-creator/templates/bug-ticket-template.md +39 -0
- package/skills/qa-changelog-analyzer/SKILL.md +134 -0
- package/skills/qa-changelog-analyzer/references/git-analysis-patterns.md +138 -0
- package/skills/qa-changelog-analyzer/references/impact-mapping.md +120 -0
- package/skills/qa-clickup-integration/SKILL.md +166 -0
- package/skills/qa-clickup-integration/references/api-patterns.md +102 -0
- package/skills/qa-clickup-integration/references/field-mapping.md +71 -0
- package/skills/qa-codeceptjs-writer/SKILL.md +136 -0
- package/skills/qa-codeceptjs-writer/references/best-practices.md +207 -0
- package/skills/qa-codeceptjs-writer/references/config.md +255 -0
- package/skills/qa-codeceptjs-writer/references/patterns.md +285 -0
- package/skills/qa-coverage-analyzer/SKILL.md +166 -0
- package/skills/qa-coverage-analyzer/references/best-practices.md +142 -0
- package/skills/qa-coverage-analyzer/references/coverage-dimensions.md +155 -0
- package/skills/qa-coverage-analyzer/references/tools.md +204 -0
- package/skills/qa-cypress-writer/SKILL.md +134 -0
- package/skills/qa-cypress-writer/references/assertions.md +121 -0
- package/skills/qa-cypress-writer/references/best-practices.md +82 -0
- package/skills/qa-cypress-writer/references/config.md +121 -0
- package/skills/qa-cypress-writer/references/patterns.md +170 -0
- package/skills/qa-data-factory/SKILL.md +126 -0
- package/skills/qa-data-factory/references/factory-patterns.md +164 -0
- package/skills/qa-data-factory/references/faker-guide.md +131 -0
- package/skills/qa-diagram-generator/SKILL.md +125 -0
- package/skills/qa-diagram-generator/references/c4-model.md +53 -0
- package/skills/qa-diagram-generator/references/charts.md +58 -0
- package/skills/qa-diagram-generator/references/class-diagram.md +85 -0
- package/skills/qa-diagram-generator/references/er-diagram.md +69 -0
- package/skills/qa-diagram-generator/references/flowchart.md +92 -0
- package/skills/qa-diagram-generator/references/from-screenshot.md +45 -0
- package/skills/qa-diagram-generator/references/gantt.md +49 -0
- package/skills/qa-diagram-generator/references/journey.md +50 -0
- package/skills/qa-diagram-generator/references/mindmap.md +75 -0
- package/skills/qa-diagram-generator/references/sequence.md +69 -0
- package/skills/qa-diagram-generator/references/state-diagram.md +56 -0
- package/skills/qa-discovery-interview/SKILL.md +182 -0
- package/skills/qa-discovery-interview/references/completeness-checklist.md +53 -0
- package/skills/qa-discovery-interview/references/conflict-patterns.md +101 -0
- package/skills/qa-discovery-interview/references/qa-categories.md +147 -0
- package/skills/qa-discovery-interview/templates/qa-brief-template.md +168 -0
- package/skills/qa-environment-checker/SKILL.md +142 -0
- package/skills/qa-environment-checker/references/dependency-matrix.md +101 -0
- package/skills/qa-environment-checker/references/health-checks.md +209 -0
- package/skills/qa-environment-checker/templates/env-readiness-template.md +64 -0
- package/skills/qa-flaky-detector/SKILL.md +153 -0
- package/skills/qa-flaky-detector/references/ci-analysis.md +140 -0
- package/skills/qa-flaky-detector/references/flaky-patterns.md +247 -0
- package/skills/qa-github-issues-enhanced/SKILL.md +175 -0
- package/skills/qa-github-issues-enhanced/references/issue-templates.md +425 -0
- package/skills/qa-github-issues-enhanced/references/label-taxonomy.md +130 -0
- package/skills/qa-github-issues-enhanced/references/workflow-patterns.md +188 -0
- package/skills/qa-httpx-writer/SKILL.md +138 -0
- package/skills/qa-httpx-writer/references/assertions.md +195 -0
- package/skills/qa-httpx-writer/references/best-practices.md +140 -0
- package/skills/qa-httpx-writer/references/config.md +212 -0
- package/skills/qa-httpx-writer/references/patterns.md +262 -0
- package/skills/qa-jest-writer/SKILL.md +131 -0
- package/skills/qa-jest-writer/references/assertions.md +125 -0
- package/skills/qa-jest-writer/references/best-practices.md +136 -0
- package/skills/qa-jest-writer/references/config.md +134 -0
- package/skills/qa-jest-writer/references/patterns.md +172 -0
- package/skills/qa-jira-integration/SKILL.md +135 -0
- package/skills/qa-jira-integration/references/api-patterns.md +143 -0
- package/skills/qa-jira-integration/references/field-mapping.md +79 -0
- package/skills/qa-jira-integration/references/xray-integration.md +85 -0
- package/skills/qa-jmeter-writer/SKILL.md +171 -0
- package/skills/qa-jmeter-writer/references/best-practices.md +157 -0
- package/skills/qa-jmeter-writer/references/config.md +204 -0
- package/skills/qa-jmeter-writer/references/patterns.md +242 -0
- package/skills/qa-junit5-writer/SKILL.md +157 -0
- package/skills/qa-junit5-writer/references/assertions.md +118 -0
- package/skills/qa-junit5-writer/references/config.md +97 -0
- package/skills/qa-junit5-writer/references/patterns.md +162 -0
- package/skills/qa-k6-writer/SKILL.md +155 -0
- package/skills/qa-k6-writer/references/best-practices.md +236 -0
- package/skills/qa-k6-writer/references/config.md +219 -0
- package/skills/qa-k6-writer/references/patterns.md +304 -0
- package/skills/qa-linear-integration/SKILL.md +137 -0
- package/skills/qa-linear-integration/references/api-patterns.md +249 -0
- package/skills/qa-linear-integration/references/field-mapping.md +121 -0
- package/skills/qa-locust-writer/SKILL.md +151 -0
- package/skills/qa-locust-writer/references/best-practices.md +126 -0
- package/skills/qa-locust-writer/references/config.md +170 -0
- package/skills/qa-locust-writer/references/patterns.md +235 -0
- package/skills/qa-manual-test-designer/SKILL.md +145 -0
- package/skills/qa-manual-test-designer/references/exploratory-charters.md +138 -0
- package/skills/qa-manual-test-designer/references/personas.md +146 -0
- package/skills/qa-manual-test-designer/templates/exploratory-charter-template.md +47 -0
- package/skills/qa-manual-test-designer/templates/test-case-template.md +31 -0
- package/skills/qa-mobile-test-writer/SKILL.md +144 -0
- package/skills/qa-mobile-test-writer/references/best-practices.md +214 -0
- package/skills/qa-mobile-test-writer/references/config.md +309 -0
- package/skills/qa-mobile-test-writer/references/patterns.md +304 -0
- package/skills/qa-nfr-analyst/SKILL.md +177 -0
- package/skills/qa-nfr-analyst/references/iso-25010-model.md +159 -0
- package/skills/qa-nfr-analyst/references/owasp-wstg-baseline.md +202 -0
- package/skills/qa-nfr-analyst/references/wcag-checklist.md +184 -0
- package/skills/qa-nfr-analyst/templates/owasp-checklist-template.md +89 -0
- package/skills/qa-nfr-analyst/templates/wcag-checklist-template.md +48 -0
- package/skills/qa-orchestrator/SKILL.md +132 -0
- package/skills/qa-orchestrator/references/handoff-chains.md +105 -0
- package/skills/qa-orchestrator/references/pipeline-modes.md +115 -0
- package/skills/qa-orchestrator/references/scheduler-rules.md +84 -0
- package/skills/qa-pact-writer/SKILL.md +133 -0
- package/skills/qa-pact-writer/references/best-practices.md +100 -0
- package/skills/qa-pact-writer/references/config.md +135 -0
- package/skills/qa-pact-writer/references/patterns.md +161 -0
- package/skills/qa-plan-creator/SKILL.md +139 -0
- package/skills/qa-plan-creator/references/introduction-plan.md +43 -0
- package/skills/qa-plan-creator/references/migration-plan.md +44 -0
- package/skills/qa-plan-creator/references/onboarding-plan.md +46 -0
- package/skills/qa-plan-creator/references/performance-plan.md +44 -0
- package/skills/qa-plan-creator/references/regression-plan.md +45 -0
- package/skills/qa-plan-creator/references/release-plan.md +45 -0
- package/skills/qa-plan-creator/references/sprint-plan.md +44 -0
- package/skills/qa-plan-creator/references/test-plan.md +59 -0
- package/skills/qa-plan-creator/references/uat-plan.md +43 -0
- package/skills/qa-plan-creator/templates/checklist-template.md +36 -0
- package/skills/qa-plan-creator/templates/regression-checklist-template.md +49 -0
- package/skills/qa-plan-creator/templates/release-checklist-template.md +46 -0
- package/skills/qa-plan-creator/templates/test-plan-template.md +74 -0
- package/skills/qa-playwright-py-writer/SKILL.md +156 -0
- package/skills/qa-playwright-py-writer/references/best-practices.md +194 -0
- package/skills/qa-playwright-py-writer/references/config.md +195 -0
- package/skills/qa-playwright-py-writer/references/patterns.md +212 -0
- package/skills/qa-playwright-ts-writer/SKILL.md +151 -0
- package/skills/qa-playwright-ts-writer/references/assertions.md +109 -0
- package/skills/qa-playwright-ts-writer/references/best-practices.md +191 -0
- package/skills/qa-playwright-ts-writer/references/config.md +144 -0
- package/skills/qa-playwright-ts-writer/references/patterns.md +171 -0
- package/skills/qa-pytest-writer/SKILL.md +145 -0
- package/skills/qa-pytest-writer/references/assertions.md +149 -0
- package/skills/qa-pytest-writer/references/best-practices.md +97 -0
- package/skills/qa-pytest-writer/references/config.md +176 -0
- package/skills/qa-pytest-writer/references/patterns.md +251 -0
- package/skills/qa-qase-integration/SKILL.md +149 -0
- package/skills/qa-qase-integration/references/api-reference.md +354 -0
- package/skills/qa-qase-integration/references/ci-integration.md +196 -0
- package/skills/qa-qase-integration/references/field-mapping.md +157 -0
- package/skills/qa-requirements-generator/SKILL.md +152 -0
- package/skills/qa-requirements-generator/references/iso-29148-structure.md +153 -0
- package/skills/qa-requirements-generator/references/requirement-patterns.md +278 -0
- package/skills/qa-rest-assured-writer/SKILL.md +137 -0
- package/skills/qa-rest-assured-writer/references/best-practices.md +50 -0
- package/skills/qa-rest-assured-writer/references/config.md +124 -0
- package/skills/qa-rest-assured-writer/references/patterns.md +192 -0
- package/skills/qa-risk-analyzer/SKILL.md +158 -0
- package/skills/qa-risk-analyzer/references/impact-analysis.md +133 -0
- package/skills/qa-risk-analyzer/references/risk-factors.md +123 -0
- package/skills/qa-robot-framework-writer/SKILL.md +147 -0
- package/skills/qa-robot-framework-writer/references/best-practices.md +249 -0
- package/skills/qa-robot-framework-writer/references/config.md +204 -0
- package/skills/qa-robot-framework-writer/references/libraries.md +273 -0
- package/skills/qa-robot-framework-writer/references/patterns.md +216 -0
- package/skills/qa-security-test-writer/SKILL.md +123 -0
- package/skills/qa-security-test-writer/references/best-practices.md +155 -0
- package/skills/qa-security-test-writer/references/owasp-top10.md +331 -0
- package/skills/qa-security-test-writer/references/zap-config.md +258 -0
- package/skills/qa-selenium-java-writer/SKILL.md +143 -0
- package/skills/qa-selenium-java-writer/references/best-practices.md +59 -0
- package/skills/qa-selenium-java-writer/references/config.md +143 -0
- package/skills/qa-selenium-java-writer/references/patterns.md +170 -0
- package/skills/qa-selenium-py-writer/SKILL.md +150 -0
- package/skills/qa-selenium-py-writer/references/best-practices.md +175 -0
- package/skills/qa-selenium-py-writer/references/config.md +224 -0
- package/skills/qa-selenium-py-writer/references/patterns.md +255 -0
- package/skills/qa-shortcut-integration/SKILL.md +143 -0
- package/skills/qa-shortcut-integration/references/api-patterns.md +126 -0
- package/skills/qa-shortcut-integration/references/field-mapping.md +66 -0
- package/skills/qa-spec-auditor/SKILL.md +162 -0
- package/skills/qa-spec-auditor/references/audit-checklist.md +144 -0
- package/skills/qa-spec-auditor/references/drift-patterns.md +207 -0
- package/skills/qa-spec-writer/SKILL.md +143 -0
- package/skills/qa-spec-writer/references/gherkin-guide.md +253 -0
- package/skills/qa-spec-writer/references/specification-patterns.md +274 -0
- package/skills/qa-spring-test-writer/SKILL.md +170 -0
- package/skills/qa-spring-test-writer/references/best-practices.md +57 -0
- package/skills/qa-spring-test-writer/references/config.md +179 -0
- package/skills/qa-spring-test-writer/references/patterns.md +235 -0
- package/skills/qa-supertest-writer/SKILL.md +150 -0
- package/skills/qa-supertest-writer/references/assertions.md +192 -0
- package/skills/qa-supertest-writer/references/best-practices.md +102 -0
- package/skills/qa-supertest-writer/references/config.md +166 -0
- package/skills/qa-supertest-writer/references/patterns.md +242 -0
- package/skills/qa-task-creator/SKILL.md +142 -0
- package/skills/qa-task-creator/references/linking-patterns.md +127 -0
- package/skills/qa-task-creator/references/task-types.md +169 -0
- package/skills/qa-task-creator/templates/task-template.md +24 -0
- package/skills/qa-test-doc-compiler/SKILL.md +114 -0
- package/skills/qa-test-doc-compiler/references/agile-tailoring.md +220 -0
- package/skills/qa-test-doc-compiler/references/iso-29119-3-documents.md +302 -0
- package/skills/qa-test-healer/SKILL.md +101 -0
- package/skills/qa-test-healer/references/diagnosis-patterns.md +142 -0
- package/skills/qa-test-healer/references/fix-strategies.md +177 -0
- package/skills/qa-test-reporter/SKILL.md +130 -0
- package/skills/qa-test-reporter/references/best-practices.md +162 -0
- package/skills/qa-test-reporter/references/iso-29119-reports.md +236 -0
- package/skills/qa-test-reporter/references/report-formats.md +287 -0
- package/skills/qa-test-reviewer/SKILL.md +142 -0
- package/skills/qa-test-reviewer/references/anti-patterns.md +268 -0
- package/skills/qa-test-reviewer/references/review-checklist.md +93 -0
- package/skills/qa-test-strategy/SKILL.md +133 -0
- package/skills/qa-test-strategy/references/entry-exit-criteria.md +176 -0
- package/skills/qa-test-strategy/references/risk-matrix.md +102 -0
- package/skills/qa-test-strategy/references/testing-types.md +143 -0
- package/skills/qa-testcase-from-docs/SKILL.md +161 -0
- package/skills/qa-testcase-from-docs/references/test-case-format.md +196 -0
- package/skills/qa-testcase-from-docs/references/test-design-techniques.md +126 -0
- package/skills/qa-testcase-from-docs/templates/test-case-template.md +31 -0
- package/skills/qa-testcase-from-ui/SKILL.md +109 -0
- package/skills/qa-testcase-from-ui/references/ui-element-patterns.md +126 -0
- package/skills/qa-testcase-from-ui/references/visual-analysis-guide.md +146 -0
- package/skills/qa-testcase-from-ui/templates/test-case-template.md +31 -0
- package/skills/qa-visual-regression-writer/SKILL.md +175 -0
- package/skills/qa-visual-regression-writer/references/best-practices.md +154 -0
- package/skills/qa-visual-regression-writer/references/config.md +220 -0
- package/skills/qa-visual-regression-writer/references/patterns.md +213 -0
- package/skills/qa-vitest-writer/SKILL.md +141 -0
- package/skills/qa-vitest-writer/references/assertions.md +105 -0
- package/skills/qa-vitest-writer/references/best-practices.md +62 -0
- package/skills/qa-vitest-writer/references/config.md +127 -0
- package/skills/qa-vitest-writer/references/patterns.md +141 -0
- package/skills/qa-webdriverio-writer/SKILL.md +145 -0
- package/skills/qa-webdriverio-writer/references/best-practices.md +176 -0
- package/skills/qa-webdriverio-writer/references/config.md +240 -0
- package/skills/qa-webdriverio-writer/references/patterns.md +269 -0
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
# OpenAPI 3.x Specification Structure Reference
|
|
2
|
+
|
|
3
|
+
Reference for building and validating OpenAPI 3.x specifications. Use when generating or curating API contracts.
|
|
4
|
+
|
|
5
|
+
## Document Root
|
|
6
|
+
|
|
7
|
+
```yaml
|
|
8
|
+
openapi: 3.0.3
|
|
9
|
+
info:
|
|
10
|
+
title: API Title
|
|
11
|
+
description: API description
|
|
12
|
+
version: 1.0.0
|
|
13
|
+
contact:
|
|
14
|
+
name: API Support
|
|
15
|
+
email: support@example.com
|
|
16
|
+
servers:
|
|
17
|
+
- url: https://api.example.com/v1
|
|
18
|
+
description: Production
|
|
19
|
+
- url: https://staging-api.example.com/v1
|
|
20
|
+
description: Staging
|
|
21
|
+
paths: {}
|
|
22
|
+
components: {}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Paths
|
|
26
|
+
|
|
27
|
+
### Basic Path Structure
|
|
28
|
+
|
|
29
|
+
```yaml
|
|
30
|
+
paths:
|
|
31
|
+
/users:
|
|
32
|
+
get:
|
|
33
|
+
summary: List users
|
|
34
|
+
operationId: listUsers
|
|
35
|
+
tags:
|
|
36
|
+
- Users
|
|
37
|
+
parameters: []
|
|
38
|
+
responses:
|
|
39
|
+
'200':
|
|
40
|
+
description: Success
|
|
41
|
+
content:
|
|
42
|
+
application/json:
|
|
43
|
+
schema:
|
|
44
|
+
$ref: '#/components/schemas/UserList'
|
|
45
|
+
post:
|
|
46
|
+
summary: Create user
|
|
47
|
+
operationId: createUser
|
|
48
|
+
tags:
|
|
49
|
+
- Users
|
|
50
|
+
requestBody:
|
|
51
|
+
required: true
|
|
52
|
+
content:
|
|
53
|
+
application/json:
|
|
54
|
+
schema:
|
|
55
|
+
$ref: '#/components/schemas/UserCreate'
|
|
56
|
+
responses:
|
|
57
|
+
'201':
|
|
58
|
+
description: Created
|
|
59
|
+
content:
|
|
60
|
+
application/json:
|
|
61
|
+
schema:
|
|
62
|
+
$ref: '#/components/schemas/User'
|
|
63
|
+
'400':
|
|
64
|
+
description: Validation error
|
|
65
|
+
content:
|
|
66
|
+
application/json:
|
|
67
|
+
schema:
|
|
68
|
+
$ref: '#/components/schemas/Error'
|
|
69
|
+
|
|
70
|
+
/users/{userId}:
|
|
71
|
+
parameters:
|
|
72
|
+
- $ref: '#/components/parameters/UserId'
|
|
73
|
+
get:
|
|
74
|
+
summary: Get user by ID
|
|
75
|
+
operationId: getUserById
|
|
76
|
+
responses:
|
|
77
|
+
'200':
|
|
78
|
+
description: Success
|
|
79
|
+
content:
|
|
80
|
+
application/json:
|
|
81
|
+
schema:
|
|
82
|
+
$ref: '#/components/schemas/User'
|
|
83
|
+
'404':
|
|
84
|
+
description: Not found
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Path Parameters
|
|
88
|
+
|
|
89
|
+
```yaml
|
|
90
|
+
/users/{userId}/orders/{orderId}:
|
|
91
|
+
parameters:
|
|
92
|
+
- name: userId
|
|
93
|
+
in: path
|
|
94
|
+
required: true
|
|
95
|
+
schema:
|
|
96
|
+
type: string
|
|
97
|
+
format: uuid
|
|
98
|
+
- name: orderId
|
|
99
|
+
in: path
|
|
100
|
+
required: true
|
|
101
|
+
schema:
|
|
102
|
+
type: string
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Parameters
|
|
106
|
+
|
|
107
|
+
### Query Parameters
|
|
108
|
+
|
|
109
|
+
```yaml
|
|
110
|
+
parameters:
|
|
111
|
+
- name: page
|
|
112
|
+
in: query
|
|
113
|
+
description: Page number (1-based)
|
|
114
|
+
schema:
|
|
115
|
+
type: integer
|
|
116
|
+
minimum: 1
|
|
117
|
+
default: 1
|
|
118
|
+
- name: limit
|
|
119
|
+
in: query
|
|
120
|
+
description: Items per page
|
|
121
|
+
schema:
|
|
122
|
+
type: integer
|
|
123
|
+
minimum: 1
|
|
124
|
+
maximum: 100
|
|
125
|
+
default: 20
|
|
126
|
+
- name: sort
|
|
127
|
+
in: query
|
|
128
|
+
schema:
|
|
129
|
+
type: string
|
|
130
|
+
enum: [createdAt, updatedAt, name]
|
|
131
|
+
- name: filter
|
|
132
|
+
in: query
|
|
133
|
+
description: JSON filter expression
|
|
134
|
+
schema:
|
|
135
|
+
type: string
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Header Parameters
|
|
139
|
+
|
|
140
|
+
```yaml
|
|
141
|
+
parameters:
|
|
142
|
+
- name: X-Request-ID
|
|
143
|
+
in: header
|
|
144
|
+
description: Idempotency key
|
|
145
|
+
schema:
|
|
146
|
+
type: string
|
|
147
|
+
format: uuid
|
|
148
|
+
- name: X-Correlation-ID
|
|
149
|
+
in: header
|
|
150
|
+
schema:
|
|
151
|
+
type: string
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Schemas (Components)
|
|
155
|
+
|
|
156
|
+
### Basic Schema
|
|
157
|
+
|
|
158
|
+
```yaml
|
|
159
|
+
components:
|
|
160
|
+
schemas:
|
|
161
|
+
User:
|
|
162
|
+
type: object
|
|
163
|
+
required:
|
|
164
|
+
- id
|
|
165
|
+
- email
|
|
166
|
+
properties:
|
|
167
|
+
id:
|
|
168
|
+
type: string
|
|
169
|
+
format: uuid
|
|
170
|
+
readOnly: true
|
|
171
|
+
email:
|
|
172
|
+
type: string
|
|
173
|
+
format: email
|
|
174
|
+
name:
|
|
175
|
+
type: string
|
|
176
|
+
nullable: true
|
|
177
|
+
createdAt:
|
|
178
|
+
type: string
|
|
179
|
+
format: date-time
|
|
180
|
+
readOnly: true
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Schema with Examples
|
|
184
|
+
|
|
185
|
+
```yaml
|
|
186
|
+
User:
|
|
187
|
+
type: object
|
|
188
|
+
properties:
|
|
189
|
+
id:
|
|
190
|
+
type: string
|
|
191
|
+
format: uuid
|
|
192
|
+
example: "550e8400-e29b-41d4-a716-446655440000"
|
|
193
|
+
email:
|
|
194
|
+
type: string
|
|
195
|
+
format: email
|
|
196
|
+
example: "user@example.com"
|
|
197
|
+
example:
|
|
198
|
+
id: "550e8400-e29b-41d4-a716-446655440000"
|
|
199
|
+
email: "user@example.com"
|
|
200
|
+
name: "Jane Doe"
|
|
201
|
+
createdAt: "2024-01-15T10:30:00Z"
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Array Schema
|
|
205
|
+
|
|
206
|
+
```yaml
|
|
207
|
+
UserList:
|
|
208
|
+
type: object
|
|
209
|
+
properties:
|
|
210
|
+
items:
|
|
211
|
+
type: array
|
|
212
|
+
items:
|
|
213
|
+
$ref: '#/components/schemas/User'
|
|
214
|
+
total:
|
|
215
|
+
type: integer
|
|
216
|
+
description: Total count
|
|
217
|
+
page:
|
|
218
|
+
type: integer
|
|
219
|
+
limit:
|
|
220
|
+
type: integer
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### Enum and OneOf
|
|
224
|
+
|
|
225
|
+
```yaml
|
|
226
|
+
OrderStatus:
|
|
227
|
+
type: string
|
|
228
|
+
enum: [pending, confirmed, shipped, delivered, cancelled]
|
|
229
|
+
|
|
230
|
+
PaymentMethod:
|
|
231
|
+
oneOf:
|
|
232
|
+
- $ref: '#/components/schemas/CardPayment'
|
|
233
|
+
- $ref: '#/components/schemas/BankTransfer'
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Error Schema
|
|
237
|
+
|
|
238
|
+
```yaml
|
|
239
|
+
Error:
|
|
240
|
+
type: object
|
|
241
|
+
required:
|
|
242
|
+
- code
|
|
243
|
+
- message
|
|
244
|
+
properties:
|
|
245
|
+
code:
|
|
246
|
+
type: string
|
|
247
|
+
example: "VALIDATION_ERROR"
|
|
248
|
+
message:
|
|
249
|
+
type: string
|
|
250
|
+
example: "Invalid input"
|
|
251
|
+
details:
|
|
252
|
+
type: array
|
|
253
|
+
items:
|
|
254
|
+
type: object
|
|
255
|
+
properties:
|
|
256
|
+
field:
|
|
257
|
+
type: string
|
|
258
|
+
reason:
|
|
259
|
+
type: string
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
## Security Schemes
|
|
263
|
+
|
|
264
|
+
### API Key (Header)
|
|
265
|
+
|
|
266
|
+
```yaml
|
|
267
|
+
components:
|
|
268
|
+
securitySchemes:
|
|
269
|
+
ApiKeyAuth:
|
|
270
|
+
type: apiKey
|
|
271
|
+
in: header
|
|
272
|
+
name: X-API-Key
|
|
273
|
+
description: API key for authentication
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### Bearer JWT
|
|
277
|
+
|
|
278
|
+
```yaml
|
|
279
|
+
BearerAuth:
|
|
280
|
+
type: http
|
|
281
|
+
scheme: bearer
|
|
282
|
+
bearerFormat: JWT
|
|
283
|
+
description: JWT token from /auth/login
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### OAuth2
|
|
287
|
+
|
|
288
|
+
```yaml
|
|
289
|
+
OAuth2:
|
|
290
|
+
type: oauth2
|
|
291
|
+
flows:
|
|
292
|
+
authorizationCode:
|
|
293
|
+
authorizationUrl: https://auth.example.com/oauth/authorize
|
|
294
|
+
tokenUrl: https://auth.example.com/oauth/token
|
|
295
|
+
scopes:
|
|
296
|
+
read: Read access
|
|
297
|
+
write: Write access
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
### Applying Security
|
|
301
|
+
|
|
302
|
+
```yaml
|
|
303
|
+
# Global (all operations)
|
|
304
|
+
security:
|
|
305
|
+
- ApiKeyAuth: []
|
|
306
|
+
|
|
307
|
+
# Per-operation override
|
|
308
|
+
paths:
|
|
309
|
+
/users:
|
|
310
|
+
get:
|
|
311
|
+
security: [] # Public
|
|
312
|
+
post:
|
|
313
|
+
security:
|
|
314
|
+
- BearerAuth: [write]
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
## Responses
|
|
318
|
+
|
|
319
|
+
### Success and Error Responses
|
|
320
|
+
|
|
321
|
+
```yaml
|
|
322
|
+
responses:
|
|
323
|
+
'200':
|
|
324
|
+
description: Success
|
|
325
|
+
content:
|
|
326
|
+
application/json:
|
|
327
|
+
schema:
|
|
328
|
+
$ref: '#/components/schemas/User'
|
|
329
|
+
examples:
|
|
330
|
+
default:
|
|
331
|
+
value:
|
|
332
|
+
id: "550e8400-e29b-41d4-a716-446655440000"
|
|
333
|
+
email: "user@example.com"
|
|
334
|
+
'400':
|
|
335
|
+
description: Bad request
|
|
336
|
+
content:
|
|
337
|
+
application/json:
|
|
338
|
+
schema:
|
|
339
|
+
$ref: '#/components/schemas/Error'
|
|
340
|
+
'401':
|
|
341
|
+
description: Unauthorized
|
|
342
|
+
'404':
|
|
343
|
+
description: Not found
|
|
344
|
+
'500':
|
|
345
|
+
description: Internal server error
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
## Reusable Components
|
|
349
|
+
|
|
350
|
+
### Parameters
|
|
351
|
+
|
|
352
|
+
```yaml
|
|
353
|
+
components:
|
|
354
|
+
parameters:
|
|
355
|
+
UserId:
|
|
356
|
+
name: userId
|
|
357
|
+
in: path
|
|
358
|
+
required: true
|
|
359
|
+
schema:
|
|
360
|
+
type: string
|
|
361
|
+
format: uuid
|
|
362
|
+
PageSize:
|
|
363
|
+
name: limit
|
|
364
|
+
in: query
|
|
365
|
+
schema:
|
|
366
|
+
type: integer
|
|
367
|
+
default: 20
|
|
368
|
+
maximum: 100
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
### Examples
|
|
372
|
+
|
|
373
|
+
```yaml
|
|
374
|
+
components:
|
|
375
|
+
examples:
|
|
376
|
+
UserExample:
|
|
377
|
+
summary: Sample user
|
|
378
|
+
value:
|
|
379
|
+
id: "550e8400-e29b-41d4-a716-446655440000"
|
|
380
|
+
email: "jane@example.com"
|
|
381
|
+
name: "Jane Doe"
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
## Tags
|
|
385
|
+
|
|
386
|
+
```yaml
|
|
387
|
+
tags:
|
|
388
|
+
- name: Users
|
|
389
|
+
description: User management operations
|
|
390
|
+
- name: Orders
|
|
391
|
+
description: Order lifecycle operations
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
## Deprecation
|
|
395
|
+
|
|
396
|
+
```yaml
|
|
397
|
+
paths:
|
|
398
|
+
/v1/legacy/users:
|
|
399
|
+
deprecated: true
|
|
400
|
+
get:
|
|
401
|
+
summary: List users (deprecated)
|
|
402
|
+
deprecated: true
|
|
403
|
+
description: Use GET /v2/users instead. Will be removed in v3.
|
|
404
|
+
```
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qa-browser-data-collector
|
|
3
|
+
description: Autonomously explore live web applications using Playwright MCP to collect page structure, form fields, validation rules, API endpoints, and user flows for test case generation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# QA Browser Data Collector
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
Use Playwright MCP to autonomously explore live web applications and collect structured data for test generation. The skill navigates URLs, captures accessibility snapshots, inspects forms, records network traffic, and maps navigation paths—producing a "UI spec" that feeds into test case generators (e.g., qa-testcase-from-docs, qa-playwright-ts-writer).
|
|
11
|
+
|
|
12
|
+
## Trigger Phrases
|
|
13
|
+
|
|
14
|
+
- "Collect data from [URL]" / "Explore [app URL] and gather UI spec"
|
|
15
|
+
- "Capture form fields and validation from [URL]"
|
|
16
|
+
- "Map navigation and API calls for [application]"
|
|
17
|
+
- "Generate UI spec from live app at [URL]"
|
|
18
|
+
- "Browser data collection for test generation"
|
|
19
|
+
- "Explore [URL] and extract page structure, forms, and endpoints"
|
|
20
|
+
|
|
21
|
+
## Data Collection Workflow
|
|
22
|
+
|
|
23
|
+
1. **Navigate URLs** — Open target URLs via Playwright MCP; support multiple entry points (home, login, key flows).
|
|
24
|
+
2. **Capture accessibility snapshots** — Use snapshot tools to extract DOM structure, headings, landmarks, interactive elements.
|
|
25
|
+
3. **Collect form fields & validation rules** — Identify inputs, selects, textareas; infer types, required/optional, placeholders, validation patterns.
|
|
26
|
+
4. **Record error messages** — Trigger validation (e.g., submit empty), capture error text, fallback pages, toast/alert messages.
|
|
27
|
+
5. **Capture API endpoints from network** — Intercept or record XHR/fetch requests: endpoints, methods, status codes, payloads.
|
|
28
|
+
6. **Map navigation paths** — Extract links, menus, breadcrumbs, routing patterns; document user flow sequences.
|
|
29
|
+
7. **Screenshot pages** — Capture key screens for visual reference and test traceability.
|
|
30
|
+
8. **Extract state transitions** — Document login/logout, modal open/close, tab switches, conditional visibility.
|
|
31
|
+
|
|
32
|
+
## Collected Data Types
|
|
33
|
+
|
|
34
|
+
| Category | Examples |
|
|
35
|
+
|----------|----------|
|
|
36
|
+
| **Page structure** | DOM tree, headings (h1–h6), landmarks (main, nav, aside), ARIA roles |
|
|
37
|
+
| **Forms** | Fields (name, type, placeholder, required/optional), validation rules, submit targets |
|
|
38
|
+
| **Navigation** | Links (href, text), menus, breadcrumbs, routing patterns |
|
|
39
|
+
| **API calls** | Endpoints, HTTP methods, status codes, request/response payloads |
|
|
40
|
+
| **Error handling** | Validation messages, error pages, fallbacks, console errors |
|
|
41
|
+
| **Authentication flows** | Login form, session indicators, token storage, logout paths |
|
|
42
|
+
|
|
43
|
+
## Output Format
|
|
44
|
+
|
|
45
|
+
Structured "UI spec" suitable for test case generators:
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"url": "https://example.com/login",
|
|
50
|
+
"collectedAt": "ISO8601",
|
|
51
|
+
"pages": [
|
|
52
|
+
{
|
|
53
|
+
"path": "/login",
|
|
54
|
+
"title": "Sign In",
|
|
55
|
+
"headings": ["Sign In", "Forgot password?"],
|
|
56
|
+
"forms": [
|
|
57
|
+
{
|
|
58
|
+
"id": "login-form",
|
|
59
|
+
"fields": [
|
|
60
|
+
{ "name": "email", "type": "email", "required": true },
|
|
61
|
+
{ "name": "password", "type": "password", "required": true }
|
|
62
|
+
],
|
|
63
|
+
"submitButton": "Sign In",
|
|
64
|
+
"validationMessages": ["Email is required", "Invalid email format"]
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
"links": [...],
|
|
68
|
+
"apiCalls": [...]
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
"navigationPaths": [...],
|
|
72
|
+
"authFlow": { "login": "/login", "logout": "/logout" }
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Markdown output is also supported for human-readable specs. See `references/data-collection-checklist.md` for a full checklist.
|
|
77
|
+
|
|
78
|
+
## Scope
|
|
79
|
+
|
|
80
|
+
**Can do (autonomous):**
|
|
81
|
+
- Navigate to provided URLs and follow links within scope
|
|
82
|
+
- Capture accessibility snapshots and extract structure
|
|
83
|
+
- Inspect forms (fields, types, validation) without submitting real data
|
|
84
|
+
- Record network requests (endpoints, methods, status codes)
|
|
85
|
+
- Map navigation paths and document user flows
|
|
86
|
+
- Take screenshots for reference
|
|
87
|
+
- Produce structured JSON/markdown UI spec
|
|
88
|
+
- Reference `references/data-collection-checklist.md` and `references/playwright-mcp-patterns.md`
|
|
89
|
+
|
|
90
|
+
**Cannot do (requires confirmation):**
|
|
91
|
+
- Navigate to URLs not explicitly provided
|
|
92
|
+
- Submit forms with real user data (use placeholders/test data only)
|
|
93
|
+
- Access authenticated areas without credentials provided by user
|
|
94
|
+
- Modify app state beyond read-only exploration
|
|
95
|
+
|
|
96
|
+
**Will not do (out of scope):**
|
|
97
|
+
- **Modify any data in the application** — No form submissions with real data, no create/update/delete actions
|
|
98
|
+
- Execute tests or assertions
|
|
99
|
+
- Generate test code (hand off to qa-playwright-ts-writer or similar)
|
|
100
|
+
- Bypass security or access restricted areas without permission
|
|
101
|
+
|
|
102
|
+
## Quality Checklist
|
|
103
|
+
|
|
104
|
+
Before delivering a UI spec:
|
|
105
|
+
|
|
106
|
+
- [ ] All target URLs explored per user scope
|
|
107
|
+
- [ ] Page structure captured (headings, landmarks, key elements)
|
|
108
|
+
- [ ] Forms documented with field types, required/optional, validation
|
|
109
|
+
- [ ] API endpoints recorded with method, path, and status
|
|
110
|
+
- [ ] Navigation paths mapped (links, menus, flows)
|
|
111
|
+
- [ ] Error/validation messages captured where applicable
|
|
112
|
+
- [ ] Screenshots taken for key pages
|
|
113
|
+
- [ ] Output format valid (JSON or markdown)
|
|
114
|
+
- [ ] No real user data submitted or stored
|
|
115
|
+
- [ ] Scope boundaries respected (no unintended modifications)
|
|
116
|
+
|
|
117
|
+
## Troubleshooting
|
|
118
|
+
|
|
119
|
+
| Symptom | Likely Cause | Fix |
|
|
120
|
+
|---------|--------------|-----|
|
|
121
|
+
| Snapshot empty or incomplete | Page not fully loaded, SPA hydration | Use wait patterns; retry snapshot after load |
|
|
122
|
+
| Forms not detected | Dynamic forms, iframes | Check for iframes; wait for form visibility |
|
|
123
|
+
| API calls not captured | Network interception not active | Ensure network recording started before navigation |
|
|
124
|
+
| Login required | Protected area | Ask user for test credentials or skip authenticated routes |
|
|
125
|
+
| Rate limiting / blocking | Bot detection | Reduce request frequency; use realistic delays |
|
|
126
|
+
| CORS or mixed content | Cross-origin restrictions | Document observed behavior; note limitations |
|
|
127
|
+
| Element refs stale | DOM changed between snapshot and action | Re-snapshot before interaction |
|
|
128
|
+
|
|
129
|
+
## References
|
|
130
|
+
|
|
131
|
+
- `references/data-collection-checklist.md` — Checklist of data points to collect per page
|
|
132
|
+
- `references/playwright-mcp-patterns.md` — Common Playwright MCP patterns for data collection
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Data Collection Checklist
|
|
2
|
+
|
|
3
|
+
Use this checklist when collecting data from each page during browser exploration. Tick items as they are captured.
|
|
4
|
+
|
|
5
|
+
## Page Metadata
|
|
6
|
+
|
|
7
|
+
- [ ] **URL** — Full URL of the page
|
|
8
|
+
- [ ] **Title** — Document title (`<title>`)
|
|
9
|
+
- [ ] **Timestamp** — When the page was captured
|
|
10
|
+
|
|
11
|
+
## Page Structure
|
|
12
|
+
|
|
13
|
+
- [ ] **Headings** — h1, h2, h3, h4, h5, h6 (text and hierarchy)
|
|
14
|
+
- [ ] **Landmarks** — main, nav, aside, header, footer, section
|
|
15
|
+
- [ ] **ARIA roles** — role attributes on key containers
|
|
16
|
+
- [ ] **DOM depth** — Notable nesting for key interactive areas
|
|
17
|
+
|
|
18
|
+
## Forms
|
|
19
|
+
|
|
20
|
+
- [ ] **Form ID/name** — Form identifier
|
|
21
|
+
- [ ] **Action URL** — Form action (if present)
|
|
22
|
+
- [ ] **Method** — GET or POST
|
|
23
|
+
- [ ] **Fields:**
|
|
24
|
+
- [ ] Name/label
|
|
25
|
+
- [ ] Input type (text, email, password, number, checkbox, radio, select, textarea)
|
|
26
|
+
- [ ] Required vs optional
|
|
27
|
+
- [ ] Placeholder text
|
|
28
|
+
- [ ] Validation attributes (min, max, pattern, maxlength)
|
|
29
|
+
- [ ] Autocomplete hints
|
|
30
|
+
- [ ] **Submit button** — Text and selector
|
|
31
|
+
- [ ] **Validation messages** — Trigger validation and capture error text
|
|
32
|
+
|
|
33
|
+
## Links
|
|
34
|
+
|
|
35
|
+
- [ ] **Internal links** — href, link text, destination
|
|
36
|
+
- [ ] **External links** — href, link text (for documentation)
|
|
37
|
+
- [ ] **Navigation menu items** — Structure and labels
|
|
38
|
+
- [ ] **Breadcrumbs** — If present, full path
|
|
39
|
+
|
|
40
|
+
## Buttons
|
|
41
|
+
|
|
42
|
+
- [ ] **Primary actions** — Text, type (button/submit), associated form
|
|
43
|
+
- [ ] **Secondary actions** — Cancel, back, etc.
|
|
44
|
+
- [ ] **Icon buttons** — aria-label or title for accessibility
|
|
45
|
+
|
|
46
|
+
## Images
|
|
47
|
+
|
|
48
|
+
- [ ] **Decorative images** — Count and context
|
|
49
|
+
- [ ] **Content images** — alt text, src (for traceability)
|
|
50
|
+
- [ ] **Lazy-loaded images** — Note loading behavior
|
|
51
|
+
|
|
52
|
+
## Tables
|
|
53
|
+
|
|
54
|
+
- [ ] **Table structure** — Headers, rows, columns
|
|
55
|
+
- [ ] **Sortable columns** — If applicable
|
|
56
|
+
- [ ] **Row actions** — Edit, delete, view links
|
|
57
|
+
- [ ] **Pagination** — Controls and behavior
|
|
58
|
+
|
|
59
|
+
## Modals & Dialogs
|
|
60
|
+
|
|
61
|
+
- [ ] **Modal triggers** — Buttons/links that open modals
|
|
62
|
+
- [ ] **Modal content** — Title, body, form fields
|
|
63
|
+
- [ ] **Close behavior** — Close button, overlay click, Escape
|
|
64
|
+
- [ ] **Confirm/Cancel** — Button labels and actions
|
|
65
|
+
|
|
66
|
+
## Network Requests
|
|
67
|
+
|
|
68
|
+
- [ ] **XHR/Fetch** — Endpoint, method, status code
|
|
69
|
+
- [ ] **Request payload** — Structure (not sensitive values)
|
|
70
|
+
- [ ] **Response structure** — Key fields for assertions
|
|
71
|
+
- [ ] **WebSocket** — If applicable, connection URL and message types
|
|
72
|
+
|
|
73
|
+
## Console & Errors
|
|
74
|
+
|
|
75
|
+
- [ ] **Console errors** — JavaScript errors on load
|
|
76
|
+
- [ ] **Console warnings** — Notable warnings
|
|
77
|
+
- [ ] **404 or error pages** — Structure of error fallbacks
|
|
78
|
+
|
|
79
|
+
## State & Transitions
|
|
80
|
+
|
|
81
|
+
- [ ] **Authentication state** — Logged in vs logged out indicators
|
|
82
|
+
- [ ] **Conditional visibility** — Elements that appear based on state
|
|
83
|
+
- [ ] **Tab/accordion state** — Default open/closed
|
|
84
|
+
- [ ] **Loading states** — Spinners, skeletons, disabled buttons
|
|
85
|
+
|
|
86
|
+
## Screenshots
|
|
87
|
+
|
|
88
|
+
- [ ] **Full page** — For key pages
|
|
89
|
+
- [ ] **Above-the-fold** — Initial viewport
|
|
90
|
+
- [ ] **Modals** — When open (if applicable)
|
|
91
|
+
- [ ] **Error states** — Validation or error page captures
|