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,168 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "{{brief_id}}"
|
|
3
|
+
title: "QA Discovery Brief — {{project_name}}"
|
|
4
|
+
project: "{{project_name}}"
|
|
5
|
+
version: "{{document_version}}"
|
|
6
|
+
date: "{{YYYY-MM-DD}}"
|
|
7
|
+
interviewer: "{{interviewer}}"
|
|
8
|
+
interviewee: "{{interviewee}}"
|
|
9
|
+
status: "{{Draft | Reviewed | Approved}}"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# QA Discovery Brief — {{project_name}}
|
|
13
|
+
|
|
14
|
+
## 1. Product Overview
|
|
15
|
+
|
|
16
|
+
### 1.1 What We're Testing
|
|
17
|
+
{{Brief description of the product/feature, its purpose, and core value proposition.}}
|
|
18
|
+
|
|
19
|
+
### 1.2 Business Context
|
|
20
|
+
- **Impact of defects:** {{What happens if this ships with bugs?}}
|
|
21
|
+
- **User base:** {{Who uses it, how many, technical proficiency}}
|
|
22
|
+
- **Project type:** {{New / Existing / Migration / Redesign}}
|
|
23
|
+
|
|
24
|
+
## 2. Testing Scope & Objectives
|
|
25
|
+
|
|
26
|
+
### 2.1 In Scope
|
|
27
|
+
| Testing Type | Priority | Rationale |
|
|
28
|
+
|-------------|----------|-----------|
|
|
29
|
+
| {{Functional}} | {{P0}} | {{Core user flows}} |
|
|
30
|
+
| {{Performance}} | {{P1}} | {{SLA requirements}} |
|
|
31
|
+
| {{Security}} | {{P1}} | {{Handles PII}} |
|
|
32
|
+
| {{Accessibility}} | {{P2}} | {{WCAG AA target}} |
|
|
33
|
+
|
|
34
|
+
### 2.2 Out of Scope
|
|
35
|
+
| Area | Reason |
|
|
36
|
+
|------|--------|
|
|
37
|
+
| {{area}} | {{rationale}} |
|
|
38
|
+
|
|
39
|
+
### 2.3 Exit Criteria
|
|
40
|
+
- [ ] {{exit_criterion_1}}
|
|
41
|
+
- [ ] {{exit_criterion_2}}
|
|
42
|
+
- [ ] {{exit_criterion_3}}
|
|
43
|
+
|
|
44
|
+
## 3. Critical User Flows
|
|
45
|
+
|
|
46
|
+
### Flow 1: {{flow_name}}
|
|
47
|
+
{{Step-by-step description of the primary happy path.}}
|
|
48
|
+
|
|
49
|
+
### Flow 2: {{flow_name}}
|
|
50
|
+
{{Step-by-step description of the second critical flow.}}
|
|
51
|
+
|
|
52
|
+
### Flow 3: {{flow_name}}
|
|
53
|
+
{{Step-by-step description of the third critical flow.}}
|
|
54
|
+
|
|
55
|
+
### Edge Cases & Negative Scenarios
|
|
56
|
+
- {{edge_case_1}}
|
|
57
|
+
- {{edge_case_2}}
|
|
58
|
+
- {{negative_scenario_1}}
|
|
59
|
+
|
|
60
|
+
## 4. Technical Landscape
|
|
61
|
+
|
|
62
|
+
### 4.1 Technology Stack
|
|
63
|
+
| Layer | Technology |
|
|
64
|
+
|-------|-----------|
|
|
65
|
+
| Frontend | {{framework, language}} |
|
|
66
|
+
| Backend | {{framework, language}} |
|
|
67
|
+
| Database | {{type, engine}} |
|
|
68
|
+
| Infrastructure | {{cloud, hosting}} |
|
|
69
|
+
|
|
70
|
+
### 4.2 Architecture
|
|
71
|
+
{{Monolith / Microservices / Serverless / Hybrid — brief description.}}
|
|
72
|
+
|
|
73
|
+
### 4.3 External Integrations
|
|
74
|
+
| Service | Type | Mock Available? |
|
|
75
|
+
|---------|------|-----------------|
|
|
76
|
+
| {{service}} | {{API / webhook / SDK}} | {{Yes / No / Partial}} |
|
|
77
|
+
|
|
78
|
+
### 4.4 Technical Constraints
|
|
79
|
+
- {{constraint_1}}
|
|
80
|
+
- {{constraint_2}}
|
|
81
|
+
|
|
82
|
+
## 5. Risk Assessment
|
|
83
|
+
|
|
84
|
+
| Risk | Probability | Impact | Mitigation |
|
|
85
|
+
|------|-------------|--------|------------|
|
|
86
|
+
| {{risk_1}} | {{High/Med/Low}} | {{High/Med/Low}} | {{action}} |
|
|
87
|
+
| {{risk_2}} | {{High/Med/Low}} | {{High/Med/Low}} | {{action}} |
|
|
88
|
+
| {{risk_3}} | {{High/Med/Low}} | {{High/Med/Low}} | {{action}} |
|
|
89
|
+
|
|
90
|
+
### Defect History / Known Problem Areas
|
|
91
|
+
- {{known_issue_1}}
|
|
92
|
+
- {{known_issue_2}}
|
|
93
|
+
|
|
94
|
+
## 6. Existing QA State
|
|
95
|
+
|
|
96
|
+
### 6.1 Current Testing
|
|
97
|
+
| Type | Coverage | Tools |
|
|
98
|
+
|------|----------|-------|
|
|
99
|
+
| {{Manual}} | {{areas}} | {{tool}} |
|
|
100
|
+
| {{Automated}} | {{areas}} | {{framework}} |
|
|
101
|
+
|
|
102
|
+
### 6.2 CI/CD Pipeline
|
|
103
|
+
{{Description of current pipeline, what runs automatically, deployment process.}}
|
|
104
|
+
|
|
105
|
+
### 6.3 Test Management
|
|
106
|
+
{{Tools used: Jira, Qase, TestRail, spreadsheets, none.}}
|
|
107
|
+
|
|
108
|
+
## 7. Team & Infrastructure
|
|
109
|
+
|
|
110
|
+
### 7.1 Team
|
|
111
|
+
| Role | Count | Automation Experience |
|
|
112
|
+
|------|-------|----------------------|
|
|
113
|
+
| {{QA}} | {{N}} | {{Junior/Mid/Senior}} |
|
|
114
|
+
| {{Dev}} | {{N}} | {{unit test writing}} |
|
|
115
|
+
|
|
116
|
+
### 7.2 Environments
|
|
117
|
+
| Environment | Purpose | Status |
|
|
118
|
+
|-------------|---------|--------|
|
|
119
|
+
| {{dev}} | {{development}} | {{Active}} |
|
|
120
|
+
| {{staging}} | {{pre-production}} | {{Active / Missing}} |
|
|
121
|
+
|
|
122
|
+
### 7.3 Browser / Device Matrix
|
|
123
|
+
| Browser/Device | Version | Priority |
|
|
124
|
+
|---------------|---------|----------|
|
|
125
|
+
| {{Chrome}} | {{latest}} | {{P0}} |
|
|
126
|
+
| {{Safari/iOS}} | {{latest}} | {{P1}} |
|
|
127
|
+
|
|
128
|
+
## 8. Compliance & Standards
|
|
129
|
+
|
|
130
|
+
| Standard | Applicability | Level/Scope |
|
|
131
|
+
|----------|--------------|-------------|
|
|
132
|
+
| {{WCAG 2.2}} | {{Yes / No / TBD}} | {{Level AA}} |
|
|
133
|
+
| {{OWASP}} | {{Yes / No / TBD}} | {{Top 10}} |
|
|
134
|
+
| {{GDPR}} | {{Yes / No / TBD}} | {{EU users}} |
|
|
135
|
+
| {{Industry-specific}} | {{Yes / No / TBD}} | {{scope}} |
|
|
136
|
+
|
|
137
|
+
## 9. Recommendations
|
|
138
|
+
|
|
139
|
+
### 9.1 Recommended Testing Approach
|
|
140
|
+
{{Summary of recommended testing types, frameworks, and strategy.}}
|
|
141
|
+
|
|
142
|
+
### 9.2 Recommended QA Skills Pipeline
|
|
143
|
+
```
|
|
144
|
+
{{skill_1}} → {{skill_2}} → {{skill_3}} → {{skill_4}}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### 9.3 Estimated Timeline
|
|
148
|
+
| Phase | Duration | Activities |
|
|
149
|
+
|-------|----------|------------|
|
|
150
|
+
| {{Setup}} | {{X days}} | {{environment, tools, framework}} |
|
|
151
|
+
| {{Test Design}} | {{X days}} | {{test cases, test data}} |
|
|
152
|
+
| {{Automation}} | {{X days}} | {{test writing, CI integration}} |
|
|
153
|
+
| {{Execution}} | {{X days}} | {{test runs, bug filing}} |
|
|
154
|
+
|
|
155
|
+
## 10. Open Questions & Assumptions
|
|
156
|
+
|
|
157
|
+
### Open Questions
|
|
158
|
+
1. {{question_needing_follow_up}}
|
|
159
|
+
2. {{question_needing_follow_up}}
|
|
160
|
+
|
|
161
|
+
### Assumptions
|
|
162
|
+
1. {{assumption_made_during_interview}}
|
|
163
|
+
2. {{assumption_made_during_interview}}
|
|
164
|
+
|
|
165
|
+
### Conflicts Resolved
|
|
166
|
+
| Conflict | Resolution | Decided By |
|
|
167
|
+
|----------|------------|------------|
|
|
168
|
+
| {{conflict}} | {{resolution}} | {{stakeholder}} |
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qa-environment-checker
|
|
3
|
+
description: Verify test environment readiness by checking services, databases, required accounts, configurations, dependencies, and tool availability before test execution.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# QA Environment Checker
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
Verify that the test environment is ready for test execution. Checks service health, database connectivity, required accounts, configuration files, dependencies, and tool availability. Produces an environment readiness report with pass/fail per check, setup instructions for failures, and automated fix suggestions.
|
|
11
|
+
|
|
12
|
+
## Trigger Phrases
|
|
13
|
+
|
|
14
|
+
- "Check test environment" / "Environment readiness"
|
|
15
|
+
- "Verify environment before tests" / "Pre-test environment check"
|
|
16
|
+
- "Is my test env ready?" / "Environment validation"
|
|
17
|
+
- "Check services, DB, config before running tests"
|
|
18
|
+
- "Environment setup verification"
|
|
19
|
+
- "Dependency check for tests"
|
|
20
|
+
- "Health check for test environment"
|
|
21
|
+
|
|
22
|
+
## Checks Performed
|
|
23
|
+
|
|
24
|
+
| Category | Checks |
|
|
25
|
+
|----------|--------|
|
|
26
|
+
| **Service health** | API endpoints responding (HTTP 2xx), health endpoints |
|
|
27
|
+
| **Database** | Connectivity, schema state, migrations applied |
|
|
28
|
+
| **Accounts/credentials** | Required test accounts exist; credentials valid |
|
|
29
|
+
| **Configuration** | Config files present and valid (JSON, YAML, .env) |
|
|
30
|
+
| **Dependencies** | Node.js, Python, Playwright browsers, npm/pnpm packages |
|
|
31
|
+
| **Tools** | git, npm/pnpm/yarn, docker, CLI tools available |
|
|
32
|
+
| **Environment variables** | .env validation; required vars set |
|
|
33
|
+
| **Port availability** | Required ports free (e.g., 3000, 5432, 8080) |
|
|
34
|
+
| **Disk space** | Sufficient space for test artifacts |
|
|
35
|
+
| **Network** | Connectivity to external services if needed |
|
|
36
|
+
|
|
37
|
+
See `references/health-checks.md` for service health patterns and `references/dependency-matrix.md` for dependency requirements by test type.
|
|
38
|
+
|
|
39
|
+
## Output Format
|
|
40
|
+
|
|
41
|
+
### Environment Readiness Report Template
|
|
42
|
+
|
|
43
|
+
```markdown
|
|
44
|
+
# Environment Readiness Report
|
|
45
|
+
|
|
46
|
+
**Generated:** [timestamp]
|
|
47
|
+
**Target:** [project/env name]
|
|
48
|
+
|
|
49
|
+
## Summary
|
|
50
|
+
| Status | Count |
|
|
51
|
+
|--------|-------|
|
|
52
|
+
| Pass | X |
|
|
53
|
+
| Fail | Y |
|
|
54
|
+
| Skip | Z |
|
|
55
|
+
|
|
56
|
+
**Overall:** Ready / Not ready
|
|
57
|
+
|
|
58
|
+
## Checks
|
|
59
|
+
|
|
60
|
+
### [Category]: [Check name]
|
|
61
|
+
- **Status:** Pass / Fail / Skip
|
|
62
|
+
- **Details:** [output or error message]
|
|
63
|
+
- **Fix (if failed):** [setup instructions or command]
|
|
64
|
+
- **Auto-fix available:** Yes / No
|
|
65
|
+
|
|
66
|
+
## Failed Checks Summary
|
|
67
|
+
1. [Check] — [Brief fix]
|
|
68
|
+
2. [Check] — [Brief fix]
|
|
69
|
+
|
|
70
|
+
## Setup Instructions
|
|
71
|
+
[Step-by-step for failed checks]
|
|
72
|
+
|
|
73
|
+
## References
|
|
74
|
+
- Health checks: references/health-checks.md
|
|
75
|
+
- Dependency matrix: references/dependency-matrix.md
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Workflow
|
|
79
|
+
|
|
80
|
+
1. **Identify scope** — User specifies project, test type (E2E, API, unit), or config path
|
|
81
|
+
2. **Load dependency matrix** — Use `references/dependency-matrix.md` for required tools per test type
|
|
82
|
+
3. **Run checks** — Execute health checks, connectivity tests, config validation
|
|
83
|
+
4. **Collect results** — Pass/fail per check with details
|
|
84
|
+
5. **Generate report** — Structured output per template
|
|
85
|
+
6. **Provide fix suggestions** — Setup instructions, commands, or automated fix scripts for failures
|
|
86
|
+
|
|
87
|
+
## Integration with Other Skills
|
|
88
|
+
|
|
89
|
+
| Need | Skill | Usage |
|
|
90
|
+
|------|-------|-------|
|
|
91
|
+
| Run tests after env ready | qa-playwright-ts-writer, qa-pytest-writer | Environment checker runs first |
|
|
92
|
+
| API contract for health | qa-api-contract-curator | Health endpoint specs |
|
|
93
|
+
| Test data setup | qa-data-factory | Seed data after DB check passes |
|
|
94
|
+
|
|
95
|
+
## Scope
|
|
96
|
+
|
|
97
|
+
**Can do (autonomous):**
|
|
98
|
+
- Check service health (HTTP requests to health endpoints)
|
|
99
|
+
- Validate config files (syntax, required keys)
|
|
100
|
+
- Verify tool availability (which, version commands)
|
|
101
|
+
- Check env vars from .env (without exposing secrets)
|
|
102
|
+
- Produce readiness report with fix suggestions
|
|
103
|
+
- Reference health-checks and dependency-matrix
|
|
104
|
+
|
|
105
|
+
**Cannot do (requires confirmation):**
|
|
106
|
+
- Install dependencies or modify system (suggest only)
|
|
107
|
+
- Create accounts or credentials
|
|
108
|
+
- Run migrations (suggest commands only)
|
|
109
|
+
- Modify production or shared environments
|
|
110
|
+
|
|
111
|
+
**Will not do (out of scope):**
|
|
112
|
+
- Execute actual tests (only verify environment)
|
|
113
|
+
- Deploy or provision infrastructure
|
|
114
|
+
- Access restricted systems without permission
|
|
115
|
+
- Expose secrets in reports
|
|
116
|
+
|
|
117
|
+
## References
|
|
118
|
+
|
|
119
|
+
| Topic | File |
|
|
120
|
+
|-------|------|
|
|
121
|
+
| Service health check patterns | `references/health-checks.md` |
|
|
122
|
+
| Dependency matrix by test type | `references/dependency-matrix.md` |
|
|
123
|
+
|
|
124
|
+
## Quality Checklist
|
|
125
|
+
|
|
126
|
+
- [ ] All relevant checks run per test type (see dependency-matrix)
|
|
127
|
+
- [ ] Report includes pass/fail and fix suggestions for failures
|
|
128
|
+
- [ ] No secrets exposed in report output
|
|
129
|
+
- [ ] Setup instructions are actionable (commands, steps)
|
|
130
|
+
- [ ] Skip reason documented when check skipped
|
|
131
|
+
- [ ] References to health-checks and dependency-matrix correct
|
|
132
|
+
|
|
133
|
+
## Troubleshooting
|
|
134
|
+
|
|
135
|
+
| Symptom | Likely Cause | Fix |
|
|
136
|
+
|---------|--------------|-----|
|
|
137
|
+
| Health check fails but service works | Wrong URL, auth, or timeout | Verify health endpoint in config; check health-checks.md |
|
|
138
|
+
| Dependency check reports missing | Wrong version or path | Update dependency-matrix for project stack |
|
|
139
|
+
| Config validation fails | Schema mismatch | Compare expected vs actual schema; document in report |
|
|
140
|
+
| Port check false positive | Process bound to different interface | Check 127.0.0.1 vs 0.0.0.0; document in health-checks |
|
|
141
|
+
| Report too noisy | Too many checks | Scope to test type; use dependency-matrix to filter |
|
|
142
|
+
| Auto-fix suggested but risky | Modifies system state | Mark as manual; require user confirmation |
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Dependency Matrix for Test Types
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This reference defines which dependencies and tools are required for different test types. Use this to scope environment checks and avoid running irrelevant checks.
|
|
6
|
+
|
|
7
|
+
## Test Type → Dependencies
|
|
8
|
+
|
|
9
|
+
| Test Type | Runtime | Tools | Services | Config |
|
|
10
|
+
|-----------|---------|-------|----------|--------|
|
|
11
|
+
| **Unit (Jest/Vitest)** | Node.js | npm/pnpm, jest/vitest | None | package.json, jest.config |
|
|
12
|
+
| **Unit (pytest)** | Python | pip, pytest | None | pyproject.toml, pytest.ini |
|
|
13
|
+
| **E2E (Playwright TS)** | Node.js | npm/pnpm, Playwright, browsers | Optional API | playwright.config.ts |
|
|
14
|
+
| **E2E (Playwright Py)** | Python | pip, Playwright, browsers | Optional API | pytest.ini, playwright |
|
|
15
|
+
| **E2E (Cypress)** | Node.js | npm/pnpm, Cypress | Optional API | cypress.config.ts |
|
|
16
|
+
| **API (Supertest/httpx)** | Node/Python | Runtime + HTTP client | API under test | BASE_URL, .env |
|
|
17
|
+
| **API (Postman/k6)** | Node/standalone | Postman/k6 CLI | API under test | Collection, env vars |
|
|
18
|
+
| **DB integration** | Runtime | DB client | Database | DATABASE_URL, migrations |
|
|
19
|
+
| **Visual regression** | Node.js | Playwright/Percy/Backstop | App server | Screenshot config |
|
|
20
|
+
| **Performance (k6)** | Standalone | k6 binary | Target URL | k6 script |
|
|
21
|
+
| **Performance (JMeter)** | JVM | Java, JMeter | Target URL | .jmx plan |
|
|
22
|
+
| **Security (ZAP)** | Java | Java, ZAP | Target URL | ZAP config |
|
|
23
|
+
| **Mobile (Appium)** | Node/Python | Appium, drivers | Device/emulator | Appium config |
|
|
24
|
+
|
|
25
|
+
## Runtime Version Requirements
|
|
26
|
+
|
|
27
|
+
| Runtime | Minimum | Recommended |
|
|
28
|
+
|---------|---------|-------------|
|
|
29
|
+
| Node.js | 18.x | 20.x LTS |
|
|
30
|
+
| Python | 3.10 | 3.12 |
|
|
31
|
+
| Java (JMeter) | 11 | 17 |
|
|
32
|
+
| Java (ZAP) | 11 | 17 |
|
|
33
|
+
|
|
34
|
+
## Package Manager Checks
|
|
35
|
+
|
|
36
|
+
| Manager | Check Command |
|
|
37
|
+
|---------|---------------|
|
|
38
|
+
| npm | `npm --version` |
|
|
39
|
+
| pnpm | `pnpm --version` |
|
|
40
|
+
| yarn | `yarn --version` |
|
|
41
|
+
| pip | `pip --version` |
|
|
42
|
+
| poetry | `poetry --version` |
|
|
43
|
+
|
|
44
|
+
## Browser/Driver Checks
|
|
45
|
+
|
|
46
|
+
| Tool | Check |
|
|
47
|
+
|------|-------|
|
|
48
|
+
| Playwright | `npx playwright install chromium` (or verify browsers exist) |
|
|
49
|
+
| Cypress | `npx cypress verify` |
|
|
50
|
+
| Chrome/Chromium | Path in PATH or known location |
|
|
51
|
+
| WebDriver | chromedriver/geckodriver version |
|
|
52
|
+
|
|
53
|
+
## Database Clients
|
|
54
|
+
|
|
55
|
+
| DB | Package/Driver |
|
|
56
|
+
|----|----------------|
|
|
57
|
+
| PostgreSQL | psycopg2, pg, postgres.js |
|
|
58
|
+
| MySQL | mysql-connector, mysql2 |
|
|
59
|
+
| MongoDB | pymongo, mongodb |
|
|
60
|
+
| SQLite | built-in (sqlite3) |
|
|
61
|
+
| Redis | redis, ioredis |
|
|
62
|
+
|
|
63
|
+
## Environment Variables by Test Type
|
|
64
|
+
|
|
65
|
+
| Test Type | Typical Required Vars |
|
|
66
|
+
|-----------|------------------------|
|
|
67
|
+
| E2E | BASE_URL, (optional) TEST_USER, TEST_PASSWORD |
|
|
68
|
+
| API | BASE_URL, API_KEY (if auth) |
|
|
69
|
+
| DB | DATABASE_URL |
|
|
70
|
+
| Auth tests | TEST_USER, TEST_PASSWORD, ADMIN_USER |
|
|
71
|
+
| External services | MOCK_SERVER_URL, WEBHOOK_URL |
|
|
72
|
+
|
|
73
|
+
## Config File Locations
|
|
74
|
+
|
|
75
|
+
| Stack | Config Files |
|
|
76
|
+
|-------|--------------|
|
|
77
|
+
| Node/TS | package.json, tsconfig.json, .env |
|
|
78
|
+
| Jest | jest.config.js, jest.config.ts |
|
|
79
|
+
| Vitest | vitest.config.ts |
|
|
80
|
+
| Playwright | playwright.config.ts |
|
|
81
|
+
| Cypress | cypress.config.ts |
|
|
82
|
+
| pytest | pyproject.toml, pytest.ini, conftest.py |
|
|
83
|
+
| Robot | robot.yaml, variables.py |
|
|
84
|
+
|
|
85
|
+
## Check Order Recommendation
|
|
86
|
+
|
|
87
|
+
1. **Runtime** (Node/Python/Java) — Fail fast if missing
|
|
88
|
+
2. **Package manager** — Required for install
|
|
89
|
+
3. **Config files** — Present and valid
|
|
90
|
+
4. **Dependencies installed** — node_modules, venv, etc.
|
|
91
|
+
5. **Tools** (Playwright, Cypress) — If E2E
|
|
92
|
+
6. **Services** (API, DB) — If integration/E2E
|
|
93
|
+
7. **Env vars** — Required vars set
|
|
94
|
+
8. **Ports** — If binding local server
|
|
95
|
+
|
|
96
|
+
## Skipping Checks
|
|
97
|
+
|
|
98
|
+
- **Unit-only:** Skip API, DB, browser checks
|
|
99
|
+
- **API-only:** Skip browser, DB (unless API uses DB)
|
|
100
|
+
- **E2E:** Run full matrix
|
|
101
|
+
- **CI vs local:** CI may have different env (e.g., no browsers in headless runner)
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# Service Health Check Patterns
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This reference documents patterns for verifying service health before test execution. Use these patterns when implementing environment checks for APIs, databases, and external services.
|
|
6
|
+
|
|
7
|
+
## HTTP Health Endpoints
|
|
8
|
+
|
|
9
|
+
### Basic GET Check
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# Simple health check
|
|
13
|
+
curl -s -o /dev/null -w "%{http_code}" http://localhost:3000/health
|
|
14
|
+
# Expected: 200
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### With Timeout
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
curl -s -o /dev/null -w "%{http_code}" --max-time 5 http://localhost:3000/health
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### TypeScript/Node (fetch)
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
async function checkHealth(url: string, timeoutMs = 5000): Promise<boolean> {
|
|
27
|
+
const controller = new AbortController();
|
|
28
|
+
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
29
|
+
try {
|
|
30
|
+
const res = await fetch(url, { signal: controller.signal });
|
|
31
|
+
clearTimeout(timeout);
|
|
32
|
+
return res.ok; // 2xx
|
|
33
|
+
} catch {
|
|
34
|
+
clearTimeout(timeout);
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Python (httpx/requests)
|
|
41
|
+
|
|
42
|
+
```python
|
|
43
|
+
def check_health(url: str, timeout: float = 5.0) -> bool:
|
|
44
|
+
try:
|
|
45
|
+
r = httpx.get(url, timeout=timeout)
|
|
46
|
+
return 200 <= r.status_code < 300
|
|
47
|
+
except Exception:
|
|
48
|
+
return False
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Common Health Endpoint Paths
|
|
52
|
+
|
|
53
|
+
| Framework/Stack | Typical Path | Notes |
|
|
54
|
+
|-----------------|--------------|-------|
|
|
55
|
+
| Express/Koa | `/health`, `/healthz`, `/ready` | Often custom |
|
|
56
|
+
| Spring Boot | `/actuator/health` | JSON with status |
|
|
57
|
+
| FastAPI | `/health`, `/docs` | OpenAPI at /docs |
|
|
58
|
+
| Django | `/health/` | May need django-health-check |
|
|
59
|
+
| Kubernetes | `/healthz`, `/readyz` | Liveness vs readiness |
|
|
60
|
+
|
|
61
|
+
## Database Connectivity
|
|
62
|
+
|
|
63
|
+
### PostgreSQL
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
pg_isready -h localhost -p 5432 -U testuser
|
|
67
|
+
# Exit 0 = ready
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
```python
|
|
71
|
+
# Python
|
|
72
|
+
def check_postgres(conn_str: str) -> bool:
|
|
73
|
+
try:
|
|
74
|
+
with psycopg2.connect(conn_str) as conn:
|
|
75
|
+
conn.execute("SELECT 1")
|
|
76
|
+
return True
|
|
77
|
+
except Exception:
|
|
78
|
+
return False
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### MySQL/MariaDB
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
mysqladmin ping -h localhost -u testuser -p
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### MongoDB
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
mongosh --eval "db.adminCommand('ping')" --quiet
|
|
91
|
+
# Exit 0 = ok
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### SQLite
|
|
95
|
+
|
|
96
|
+
```python
|
|
97
|
+
def check_sqlite(path: str) -> bool:
|
|
98
|
+
try:
|
|
99
|
+
conn = sqlite3.connect(path, timeout=2)
|
|
100
|
+
conn.execute("SELECT 1")
|
|
101
|
+
conn.close()
|
|
102
|
+
return True
|
|
103
|
+
except Exception:
|
|
104
|
+
return False
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Redis
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
redis-cli ping
|
|
111
|
+
# Expected: PONG
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Docker Services
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# Check container running
|
|
118
|
+
docker ps --filter "name=postgres" --format "{{.Status}}"
|
|
119
|
+
# Expected: Up X minutes/hours
|
|
120
|
+
|
|
121
|
+
# Check container health (if healthcheck defined)
|
|
122
|
+
docker inspect --format='{{.State.Health.Status}}' postgres
|
|
123
|
+
# Expected: healthy
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Port Availability
|
|
127
|
+
|
|
128
|
+
### Check if port is in use
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
# Linux/macOS
|
|
132
|
+
lsof -i :3000
|
|
133
|
+
# Or
|
|
134
|
+
netstat -tuln | grep 3000
|
|
135
|
+
|
|
136
|
+
# Windows
|
|
137
|
+
netstat -ano | findstr :3000
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Check if port is free (for binding)
|
|
141
|
+
|
|
142
|
+
```python
|
|
143
|
+
import socket
|
|
144
|
+
def is_port_free(host: str, port: int) -> bool:
|
|
145
|
+
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
|
146
|
+
try:
|
|
147
|
+
s.bind((host, port))
|
|
148
|
+
return True
|
|
149
|
+
except OSError:
|
|
150
|
+
return False
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Environment Variables
|
|
154
|
+
|
|
155
|
+
### Required vars validation
|
|
156
|
+
|
|
157
|
+
```python
|
|
158
|
+
REQUIRED_VARS = ["DATABASE_URL", "API_KEY", "BASE_URL"]
|
|
159
|
+
|
|
160
|
+
def check_env_vars() -> list[str]:
|
|
161
|
+
missing = [v for v in REQUIRED_VARS if not os.environ.get(v)]
|
|
162
|
+
return missing
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### .env file presence and format
|
|
166
|
+
|
|
167
|
+
- Check file exists
|
|
168
|
+
- Parse and validate (no secrets in output)
|
|
169
|
+
- Report missing required keys
|
|
170
|
+
|
|
171
|
+
## Tool Availability
|
|
172
|
+
|
|
173
|
+
### Version checks
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
node --version # v18.x, v20.x
|
|
177
|
+
python --version # 3.10+
|
|
178
|
+
pnpm --version
|
|
179
|
+
docker --version
|
|
180
|
+
git --version
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Playwright browsers
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
npx playwright install --dry-run
|
|
187
|
+
# Or
|
|
188
|
+
npx playwright install chromium
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## Retry and Backoff
|
|
192
|
+
|
|
193
|
+
For flaky services, use retry with exponential backoff:
|
|
194
|
+
|
|
195
|
+
```python
|
|
196
|
+
def check_with_retry(check_fn, max_attempts=3, delay=2):
|
|
197
|
+
for i in range(max_attempts):
|
|
198
|
+
if check_fn():
|
|
199
|
+
return True
|
|
200
|
+
if i < max_attempts - 1:
|
|
201
|
+
time.sleep(delay * (2 ** i))
|
|
202
|
+
return False
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## Security Notes
|
|
206
|
+
|
|
207
|
+
- Never log or report full connection strings or secrets
|
|
208
|
+
- Use masked values in reports (e.g., `DATABASE_URL=***@localhost`)
|
|
209
|
+
- Prefer health endpoints over raw DB checks when available
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Environment Readiness Checklist
|
|
2
|
+
|
|
3
|
+
**Environment:** {staging | UAT | production | local}
|
|
4
|
+
**Date:** {YYYY-MM-DD}
|
|
5
|
+
**Checked by:** {name}
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Services
|
|
10
|
+
|
|
11
|
+
| Service | URL | Status | Notes |
|
|
12
|
+
|---------|-----|--------|-------|
|
|
13
|
+
| {service name} | {URL} | ☐ Up ☐ Down ☐ Unknown | |
|
|
14
|
+
| {service name} | {URL} | ☐ Up ☐ Down ☐ Unknown | |
|
|
15
|
+
| {service name} | {URL} | ☐ Up ☐ Down ☐ Unknown | |
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Database
|
|
20
|
+
|
|
21
|
+
| Check | Status | Notes |
|
|
22
|
+
|-------|--------|-------|
|
|
23
|
+
| Connection | ☐ OK ☐ Fail | {connection string or host} |
|
|
24
|
+
| Migrations applied | ☐ Yes ☐ No ☐ N/A | {version if applicable} |
|
|
25
|
+
| Test data seeded | ☐ Yes ☐ No ☐ N/A | |
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Accounts
|
|
30
|
+
|
|
31
|
+
| Account | Purpose | Status |
|
|
32
|
+
|---------|---------|--------|
|
|
33
|
+
| {user/role} | {purpose} | ☐ Ready ☐ Missing |
|
|
34
|
+
| {user/role} | {purpose} | ☐ Ready ☐ Missing |
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Configuration
|
|
39
|
+
|
|
40
|
+
- ☐ Config files present: {path}
|
|
41
|
+
- ☐ Environment variables set: {list or N/A}
|
|
42
|
+
- ☐ Feature flags: {enabled/disabled as expected}
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Dependencies & Tools
|
|
47
|
+
|
|
48
|
+
| Tool | Required Version | Installed | Status |
|
|
49
|
+
|------|------------------|-----------|--------|
|
|
50
|
+
| {tool} | {version} | {version} | ☐ OK ☐ Missing |
|
|
51
|
+
| {tool} | {version} | {version} | ☐ OK ☐ Missing |
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Ports & Network
|
|
56
|
+
|
|
57
|
+
| Port | Service | Status |
|
|
58
|
+
|------|---------|--------|
|
|
59
|
+
| {port} | {service} | ☐ Open ☐ Blocked |
|
|
60
|
+
| {port} | {service} | ☐ Open ☐ Blocked |
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
**Overall:** ☐ Ready for testing ☐ Not ready — blockers: {list}
|