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,175 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qa-github-issues-enhanced
|
|
3
|
+
description: Enhanced GitHub Issues workflows with auto-labels, issue templates, milestone management, and structured QA workflows via GitHub MCP.
|
|
4
|
+
dependencies:
|
|
5
|
+
recommended:
|
|
6
|
+
- qa-bug-ticket-creator
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# QA GitHub Issues Enhanced
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
|
|
13
|
+
Provide enhanced GitHub Issues workflows for QA automation. Extends qa-bug-ticket-creator and qa-task-creator with auto-labeling, issue templates, milestone management, search/deduplication, bulk operations, and structured QA lifecycle workflows—all via GitHub MCP.
|
|
14
|
+
|
|
15
|
+
## Primary Target
|
|
16
|
+
|
|
17
|
+
**GitHub** via GitHub MCP. All operations (create, search, label, milestone, bulk) use GitHub MCP APIs.
|
|
18
|
+
|
|
19
|
+
## Features
|
|
20
|
+
|
|
21
|
+
### Auto-Labeling
|
|
22
|
+
|
|
23
|
+
Automatically assign labels based on:
|
|
24
|
+
|
|
25
|
+
| Signal | Labels Applied |
|
|
26
|
+
| ------ | -------------- |
|
|
27
|
+
| Bug report | `type/bug`, `priority/*`, `component/*` |
|
|
28
|
+
| Test coverage gap | `test-coverage-gap`, `component/*`, `status/needs-triage` |
|
|
29
|
+
| Flaky test | `flaky-test`, `component/*`, `status/needs-triage` |
|
|
30
|
+
| Documentation update | `docs-update`, `component/*` |
|
|
31
|
+
| Enhancement request | `type/enhancement`, `component/*` |
|
|
32
|
+
|
|
33
|
+
See `references/label-taxonomy.md` for full taxonomy and color codes.
|
|
34
|
+
|
|
35
|
+
### Issue Templates
|
|
36
|
+
|
|
37
|
+
Predefined templates for consistent structure:
|
|
38
|
+
|
|
39
|
+
| Template | Use Case |
|
|
40
|
+
| -------- | -------- |
|
|
41
|
+
| Bug report | Defects from test failures or manual findings |
|
|
42
|
+
| Test coverage gap | Gaps from qa-coverage-analyzer or spec-auditor |
|
|
43
|
+
| Flaky test | Intermittent failures from qa-flaky-detector |
|
|
44
|
+
| Documentation update | Spec drift, outdated docs from qa-spec-auditor |
|
|
45
|
+
| Enhancement request | Feature requests, improvements |
|
|
46
|
+
|
|
47
|
+
See `references/issue-templates.md` for YAML definitions.
|
|
48
|
+
|
|
49
|
+
### Milestone Management
|
|
50
|
+
|
|
51
|
+
- **Create** milestones per sprint/release (e.g., `Sprint 24`, `v2.1.0`)
|
|
52
|
+
- **Assign** issues to milestones when creating or updating
|
|
53
|
+
- **Query** issues by milestone for status reports
|
|
54
|
+
|
|
55
|
+
### Structured Workflows
|
|
56
|
+
|
|
57
|
+
| Workflow | Pattern |
|
|
58
|
+
| -------- | ------- |
|
|
59
|
+
| Bug lifecycle | bug-report → linked-PR → verification-test |
|
|
60
|
+
| Coverage gap | gap → task → PR → coverage-verified |
|
|
61
|
+
| Flaky test | flaky → investigation → fix → re-run |
|
|
62
|
+
|
|
63
|
+
See `references/workflow-patterns.md` for detailed patterns.
|
|
64
|
+
|
|
65
|
+
### Search and Deduplication
|
|
66
|
+
|
|
67
|
+
Before creating new issues:
|
|
68
|
+
|
|
69
|
+
1. **Search** by title keywords, component, error message, labels
|
|
70
|
+
2. **Compare** similarity (same failure, component, root cause)
|
|
71
|
+
3. **Link or create** — Link to duplicate or create new when no match
|
|
72
|
+
|
|
73
|
+
### Bulk Operations
|
|
74
|
+
|
|
75
|
+
Batch-create issues from:
|
|
76
|
+
|
|
77
|
+
- **qa-coverage-analyzer** — One issue per coverage gap
|
|
78
|
+
- **qa-spec-auditor** — One issue per spec drift finding
|
|
79
|
+
- **qa-flaky-detector** — One issue per flaky test
|
|
80
|
+
- **qa-changelog-analyzer** — One issue per recommended test
|
|
81
|
+
|
|
82
|
+
## Label Taxonomy
|
|
83
|
+
|
|
84
|
+
| Prefix | Purpose | Examples |
|
|
85
|
+
| ------ | ------- | -------- |
|
|
86
|
+
| `type/` | Issue type | `bug`, `enhancement`, `task` |
|
|
87
|
+
| `priority/` | Urgency | `critical`, `high`, `medium`, `low` |
|
|
88
|
+
| `component/` | Affected area | `frontend`, `backend`, `api`, `auth` |
|
|
89
|
+
| `status/` | Workflow state | `needs-triage`, `in-progress`, `ready-for-test`, `verified` |
|
|
90
|
+
| (no prefix) | Special QA | `test-coverage-gap`, `flaky-test`, `docs-update` |
|
|
91
|
+
|
|
92
|
+
Full taxonomy in `references/label-taxonomy.md`.
|
|
93
|
+
|
|
94
|
+
## Integrations
|
|
95
|
+
|
|
96
|
+
| Integration | Use |
|
|
97
|
+
| ----------- | --- |
|
|
98
|
+
| **GitHub MCP** | All create, search, label, milestone, bulk operations |
|
|
99
|
+
| **qa-bug-ticket-creator** | Consume bug reports; apply enhanced labels/templates |
|
|
100
|
+
| **qa-task-creator** | Create linked tasks; apply workflow labels |
|
|
101
|
+
| **qa-coverage-analyzer** | Bulk-create coverage gap issues |
|
|
102
|
+
| **qa-spec-auditor** | Bulk-create spec drift issues |
|
|
103
|
+
| **qa-flaky-detector** | Bulk-create flaky test issues |
|
|
104
|
+
|
|
105
|
+
## Trigger Phrases
|
|
106
|
+
|
|
107
|
+
- "Create GitHub issues with auto-labels for [bugs / coverage gaps / flaky tests]"
|
|
108
|
+
- "Apply issue template for [bug / coverage gap / flaky test / docs / enhancement]"
|
|
109
|
+
- "Create milestone for Sprint 24 / v2.1.0"
|
|
110
|
+
- "Assign issues to milestone [name]"
|
|
111
|
+
- "Search for similar issues before creating"
|
|
112
|
+
- "Bulk-create issues from coverage analyzer output"
|
|
113
|
+
- "Bulk-create issues from spec-auditor findings"
|
|
114
|
+
- "Set up structured workflow for bug #123"
|
|
115
|
+
|
|
116
|
+
## Workflow
|
|
117
|
+
|
|
118
|
+
1. **Input** — Bug report, coverage gap, flaky test, spec finding, or bulk CSV/JSON
|
|
119
|
+
2. **Template** — Select issue template (bug, coverage-gap, flaky, docs, enhancement)
|
|
120
|
+
3. **Labels** — Auto-assign per taxonomy (type, priority, component, status)
|
|
121
|
+
4. **Deduplication** — Search for similar open issues; link or create
|
|
122
|
+
5. **Milestone** — Assign to sprint/release when provided
|
|
123
|
+
6. **Create** — Create GitHub Issue via GitHub MCP
|
|
124
|
+
7. **Optional** — Create linked task, PR reference, or verification issue
|
|
125
|
+
|
|
126
|
+
## Scope
|
|
127
|
+
|
|
128
|
+
**Can do (autonomous):**
|
|
129
|
+
- Create issues with auto-labels per taxonomy
|
|
130
|
+
- Apply issue templates (bug, coverage-gap, flaky, docs, enhancement)
|
|
131
|
+
- Create and assign milestones
|
|
132
|
+
- Search for similar issues before creating
|
|
133
|
+
- Bulk-create issues from coverage/spec/flaky output
|
|
134
|
+
- Link issues (bug → task, task → PR)
|
|
135
|
+
- Update labels and milestone on existing issues
|
|
136
|
+
|
|
137
|
+
**Cannot do (requires confirmation):**
|
|
138
|
+
- Create issues in repos without write access
|
|
139
|
+
- Override user-specified labels or priority
|
|
140
|
+
- Assign assignees without configured mapping
|
|
141
|
+
- Create milestones without user approval
|
|
142
|
+
|
|
143
|
+
**Will not do (out of scope):**
|
|
144
|
+
- Modify production or test code
|
|
145
|
+
- Close or merge issues (stakeholder responsibility)
|
|
146
|
+
- Create issues in Jira/Linear/Azure DevOps (use references for adapters)
|
|
147
|
+
|
|
148
|
+
## Quality Checklist
|
|
149
|
+
|
|
150
|
+
- [ ] Labels follow taxonomy (type/, priority/, component/, status/)
|
|
151
|
+
- [ ] Issue template applied when creating
|
|
152
|
+
- [ ] Deduplication search performed before creating
|
|
153
|
+
- [ ] Milestone assigned when user provides sprint/release
|
|
154
|
+
- [ ] Bulk operations include source reference (file, analyzer output)
|
|
155
|
+
- [ ] No hardcoded secrets; repo/org from user input or env
|
|
156
|
+
- [ ] Linked issues reference each other correctly
|
|
157
|
+
|
|
158
|
+
## Troubleshooting
|
|
159
|
+
|
|
160
|
+
| Symptom | Likely Cause | Fix |
|
|
161
|
+
| ------- | ------------ | --- |
|
|
162
|
+
| GitHub MCP create fails | Token missing, no repo access | Check `GITHUB_PERSONAL_ACCESS_TOKEN`; verify repo permissions |
|
|
163
|
+
| Labels not applied | Label doesn't exist in repo | Create labels via GitHub MCP or repo settings; see label-taxonomy |
|
|
164
|
+
| Duplicate not detected | Search query too narrow | Broaden keywords; search by component + error snippet |
|
|
165
|
+
| Milestone not found | Milestone not created | Create milestone first; verify exact name |
|
|
166
|
+
| Bulk create partial fail | Rate limit or invalid data | Check GitHub API rate limits; validate input format |
|
|
167
|
+
| Wrong template applied | Misclassification of input | Ask user to confirm template; use explicit template param |
|
|
168
|
+
|
|
169
|
+
## Reference Files
|
|
170
|
+
|
|
171
|
+
| Topic | File |
|
|
172
|
+
| ----- | ---- |
|
|
173
|
+
| Label taxonomy with colors | `references/label-taxonomy.md` |
|
|
174
|
+
| Issue template YAML | `references/issue-templates.md` |
|
|
175
|
+
| Workflow patterns | `references/workflow-patterns.md` |
|
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
# Issue Templates for QA GitHub Issues
|
|
2
|
+
|
|
3
|
+
*YAML-based issue templates for Bug report, Test coverage gap, Flaky test, Documentation update, and Enhancement request.*
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Template Location
|
|
8
|
+
|
|
9
|
+
Place templates in `.github/ISSUE_TEMPLATE/` as `.yml` or `.yaml` files. GitHub will present them in the "New issue" dropdown.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 1. Bug Report
|
|
14
|
+
|
|
15
|
+
**File**: `.github/ISSUE_TEMPLATE/bug_report.yml`
|
|
16
|
+
|
|
17
|
+
```yaml
|
|
18
|
+
name: Bug Report
|
|
19
|
+
description: Report a defect or incorrect behavior
|
|
20
|
+
title: "[Bug]: "
|
|
21
|
+
labels: ["type/bug", "status/needs-triage"]
|
|
22
|
+
assignees: []
|
|
23
|
+
|
|
24
|
+
body:
|
|
25
|
+
- type: markdown
|
|
26
|
+
attributes:
|
|
27
|
+
value: |
|
|
28
|
+
## Bug Report
|
|
29
|
+
Provide a clear description of the defect.
|
|
30
|
+
|
|
31
|
+
- type: input
|
|
32
|
+
id: summary
|
|
33
|
+
attributes:
|
|
34
|
+
label: Summary
|
|
35
|
+
description: One-line summary of the bug
|
|
36
|
+
placeholder: "e.g., Login fails when password contains special characters"
|
|
37
|
+
validations:
|
|
38
|
+
required: true
|
|
39
|
+
|
|
40
|
+
- type: textarea
|
|
41
|
+
id: steps
|
|
42
|
+
attributes:
|
|
43
|
+
label: Steps to Reproduce
|
|
44
|
+
description: Numbered steps to reproduce
|
|
45
|
+
placeholder: |
|
|
46
|
+
1. Go to login page
|
|
47
|
+
2. Enter email and password with special chars
|
|
48
|
+
3. Click Login
|
|
49
|
+
validations:
|
|
50
|
+
required: true
|
|
51
|
+
|
|
52
|
+
- type: textarea
|
|
53
|
+
id: expected
|
|
54
|
+
attributes:
|
|
55
|
+
label: Expected Result
|
|
56
|
+
description: What should happen per spec
|
|
57
|
+
placeholder: User should be logged in successfully
|
|
58
|
+
validations:
|
|
59
|
+
required: true
|
|
60
|
+
|
|
61
|
+
- type: textarea
|
|
62
|
+
id: actual
|
|
63
|
+
attributes:
|
|
64
|
+
label: Actual Result
|
|
65
|
+
description: What actually happens
|
|
66
|
+
placeholder: Error message "Invalid credentials" appears
|
|
67
|
+
validations:
|
|
68
|
+
required: true
|
|
69
|
+
|
|
70
|
+
- type: input
|
|
71
|
+
id: environment
|
|
72
|
+
attributes:
|
|
73
|
+
label: Environment
|
|
74
|
+
description: OS, browser, app version
|
|
75
|
+
placeholder: "Windows 11, Chrome 120, app v2.1.0"
|
|
76
|
+
validations:
|
|
77
|
+
required: false
|
|
78
|
+
|
|
79
|
+
- type: dropdown
|
|
80
|
+
id: severity
|
|
81
|
+
attributes:
|
|
82
|
+
label: Severity
|
|
83
|
+
description: Impact of the defect
|
|
84
|
+
options:
|
|
85
|
+
- Blocker
|
|
86
|
+
- Critical
|
|
87
|
+
- Major
|
|
88
|
+
- Minor
|
|
89
|
+
- Trivial
|
|
90
|
+
validations:
|
|
91
|
+
required: true
|
|
92
|
+
|
|
93
|
+
- type: dropdown
|
|
94
|
+
id: component
|
|
95
|
+
attributes:
|
|
96
|
+
label: Component
|
|
97
|
+
description: Affected area
|
|
98
|
+
options:
|
|
99
|
+
- frontend
|
|
100
|
+
- backend
|
|
101
|
+
- api
|
|
102
|
+
- auth
|
|
103
|
+
- database
|
|
104
|
+
- mobile
|
|
105
|
+
- other
|
|
106
|
+
validations:
|
|
107
|
+
required: true
|
|
108
|
+
|
|
109
|
+
- type: textarea
|
|
110
|
+
id: evidence
|
|
111
|
+
attributes:
|
|
112
|
+
label: Evidence (optional)
|
|
113
|
+
description: Screenshots, logs, stack traces
|
|
114
|
+
render: shell
|
|
115
|
+
validations:
|
|
116
|
+
required: false
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## 2. Test Coverage Gap
|
|
122
|
+
|
|
123
|
+
**File**: `.github/ISSUE_TEMPLATE/test_coverage_gap.yml`
|
|
124
|
+
|
|
125
|
+
```yaml
|
|
126
|
+
name: Test Coverage Gap
|
|
127
|
+
description: Report missing or insufficient test coverage
|
|
128
|
+
title: "[Coverage]: "
|
|
129
|
+
labels: ["type/test-coverage-gap", "status/needs-triage"]
|
|
130
|
+
assignees: []
|
|
131
|
+
|
|
132
|
+
body:
|
|
133
|
+
- type: markdown
|
|
134
|
+
attributes:
|
|
135
|
+
value: |
|
|
136
|
+
## Test Coverage Gap
|
|
137
|
+
Identify uncovered or under-tested code.
|
|
138
|
+
|
|
139
|
+
- type: input
|
|
140
|
+
id: summary
|
|
141
|
+
attributes:
|
|
142
|
+
label: Summary
|
|
143
|
+
description: What is not covered
|
|
144
|
+
placeholder: "e.g., AuthService.login() has 0% coverage"
|
|
145
|
+
validations:
|
|
146
|
+
required: true
|
|
147
|
+
|
|
148
|
+
- type: input
|
|
149
|
+
id: location
|
|
150
|
+
attributes:
|
|
151
|
+
label: Location
|
|
152
|
+
description: File and line or module
|
|
153
|
+
placeholder: "src/auth/AuthService.ts:42-58"
|
|
154
|
+
validations:
|
|
155
|
+
required: true
|
|
156
|
+
|
|
157
|
+
- type: dropdown
|
|
158
|
+
id: coverage_type
|
|
159
|
+
attributes:
|
|
160
|
+
label: Coverage Type
|
|
161
|
+
description: Dimension of coverage
|
|
162
|
+
options:
|
|
163
|
+
- code
|
|
164
|
+
- requirement
|
|
165
|
+
- technique
|
|
166
|
+
validations:
|
|
167
|
+
required: true
|
|
168
|
+
|
|
169
|
+
- type: textarea
|
|
170
|
+
id: rationale
|
|
171
|
+
attributes:
|
|
172
|
+
label: Rationale
|
|
173
|
+
description: Why this gap matters (risk, complexity)
|
|
174
|
+
placeholder: "High-risk payment flow; no integration tests"
|
|
175
|
+
validations:
|
|
176
|
+
required: true
|
|
177
|
+
|
|
178
|
+
- type: dropdown
|
|
179
|
+
id: component
|
|
180
|
+
attributes:
|
|
181
|
+
label: Component
|
|
182
|
+
options:
|
|
183
|
+
- frontend
|
|
184
|
+
- backend
|
|
185
|
+
- api
|
|
186
|
+
- auth
|
|
187
|
+
- database
|
|
188
|
+
- e2e
|
|
189
|
+
- unit
|
|
190
|
+
- other
|
|
191
|
+
validations:
|
|
192
|
+
required: true
|
|
193
|
+
|
|
194
|
+
- type: textarea
|
|
195
|
+
id: suggested_tests
|
|
196
|
+
attributes:
|
|
197
|
+
label: Suggested Tests (optional)
|
|
198
|
+
description: Test scenarios or techniques to add
|
|
199
|
+
render: shell
|
|
200
|
+
validations:
|
|
201
|
+
required: false
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## 3. Flaky Test
|
|
207
|
+
|
|
208
|
+
**File**: `.github/ISSUE_TEMPLATE/flaky_test.yml`
|
|
209
|
+
|
|
210
|
+
```yaml
|
|
211
|
+
name: Flaky Test
|
|
212
|
+
description: Report an intermittent or unreliable test
|
|
213
|
+
title: "[Flaky]: "
|
|
214
|
+
labels: ["type/flaky-test", "status/needs-triage"]
|
|
215
|
+
assignees: []
|
|
216
|
+
|
|
217
|
+
body:
|
|
218
|
+
- type: markdown
|
|
219
|
+
attributes:
|
|
220
|
+
value: |
|
|
221
|
+
## Flaky Test Report
|
|
222
|
+
Document a test that fails intermittently.
|
|
223
|
+
|
|
224
|
+
- type: input
|
|
225
|
+
id: test_name
|
|
226
|
+
attributes:
|
|
227
|
+
label: Test Name / Path
|
|
228
|
+
description: Full test identifier
|
|
229
|
+
placeholder: "tests/e2e/login.spec.ts:42 - should login with valid credentials"
|
|
230
|
+
validations:
|
|
231
|
+
required: true
|
|
232
|
+
|
|
233
|
+
- type: dropdown
|
|
234
|
+
id: flaky_pattern
|
|
235
|
+
attributes:
|
|
236
|
+
label: Suspected Pattern
|
|
237
|
+
description: Common flaky test patterns
|
|
238
|
+
options:
|
|
239
|
+
- race-condition
|
|
240
|
+
- shared-state
|
|
241
|
+
- time-dependency
|
|
242
|
+
- external-dependency
|
|
243
|
+
- unknown
|
|
244
|
+
validations:
|
|
245
|
+
required: true
|
|
246
|
+
|
|
247
|
+
- type: input
|
|
248
|
+
id: failure_rate
|
|
249
|
+
attributes:
|
|
250
|
+
label: Failure Rate (optional)
|
|
251
|
+
description: Approximate % of runs that fail
|
|
252
|
+
placeholder: "~30%"
|
|
253
|
+
validations:
|
|
254
|
+
required: false
|
|
255
|
+
|
|
256
|
+
- type: textarea
|
|
257
|
+
id: error_message
|
|
258
|
+
attributes:
|
|
259
|
+
label: Error Message
|
|
260
|
+
description: Typical failure output
|
|
261
|
+
render: shell
|
|
262
|
+
validations:
|
|
263
|
+
required: true
|
|
264
|
+
|
|
265
|
+
- type: textarea
|
|
266
|
+
id: context
|
|
267
|
+
attributes:
|
|
268
|
+
label: Additional Context
|
|
269
|
+
description: CI logs, environment, recent changes
|
|
270
|
+
validations:
|
|
271
|
+
required: false
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## 4. Documentation Update
|
|
277
|
+
|
|
278
|
+
**File**: `.github/ISSUE_TEMPLATE/documentation_update.yml`
|
|
279
|
+
|
|
280
|
+
```yaml
|
|
281
|
+
name: Documentation Update
|
|
282
|
+
description: Request or report documentation changes
|
|
283
|
+
title: "[Docs]: "
|
|
284
|
+
labels: ["type/documentation", "status/needs-triage"]
|
|
285
|
+
assignees: []
|
|
286
|
+
|
|
287
|
+
body:
|
|
288
|
+
- type: markdown
|
|
289
|
+
attributes:
|
|
290
|
+
value: |
|
|
291
|
+
## Documentation Update
|
|
292
|
+
Specify what documentation needs to be added or updated.
|
|
293
|
+
|
|
294
|
+
- type: input
|
|
295
|
+
id: summary
|
|
296
|
+
attributes:
|
|
297
|
+
label: Summary
|
|
298
|
+
description: What docs need updating
|
|
299
|
+
placeholder: "e.g., API spec section 4.2 is outdated"
|
|
300
|
+
validations:
|
|
301
|
+
required: true
|
|
302
|
+
|
|
303
|
+
- type: dropdown
|
|
304
|
+
id: doc_type
|
|
305
|
+
attributes:
|
|
306
|
+
label: Document Type
|
|
307
|
+
options:
|
|
308
|
+
- requirements
|
|
309
|
+
- specification
|
|
310
|
+
- api-contract
|
|
311
|
+
- test-plan
|
|
312
|
+
- readme
|
|
313
|
+
- runbook
|
|
314
|
+
- other
|
|
315
|
+
validations:
|
|
316
|
+
required: true
|
|
317
|
+
|
|
318
|
+
- type: textarea
|
|
319
|
+
id: description
|
|
320
|
+
attributes:
|
|
321
|
+
label: Description
|
|
322
|
+
description: What is wrong or missing
|
|
323
|
+
placeholder: "Describe the gap or inaccuracy"
|
|
324
|
+
validations:
|
|
325
|
+
required: true
|
|
326
|
+
|
|
327
|
+
- type: input
|
|
328
|
+
id: source
|
|
329
|
+
attributes:
|
|
330
|
+
label: Source (optional)
|
|
331
|
+
description: Link to spec, Figma, or requirement
|
|
332
|
+
placeholder: "URL or file path"
|
|
333
|
+
validations:
|
|
334
|
+
required: false
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
## 5. Enhancement Request
|
|
340
|
+
|
|
341
|
+
**File**: `.github/ISSUE_TEMPLATE/enhancement_request.yml`
|
|
342
|
+
|
|
343
|
+
```yaml
|
|
344
|
+
name: Enhancement Request
|
|
345
|
+
description: Propose a new feature or improvement
|
|
346
|
+
title: "[Enhancement]: "
|
|
347
|
+
labels: ["type/enhancement", "status/needs-triage"]
|
|
348
|
+
assignees: []
|
|
349
|
+
|
|
350
|
+
body:
|
|
351
|
+
- type: markdown
|
|
352
|
+
attributes:
|
|
353
|
+
value: |
|
|
354
|
+
## Enhancement Request
|
|
355
|
+
Describe the proposed improvement.
|
|
356
|
+
|
|
357
|
+
- type: input
|
|
358
|
+
id: summary
|
|
359
|
+
attributes:
|
|
360
|
+
label: Summary
|
|
361
|
+
description: One-line description
|
|
362
|
+
placeholder: "e.g., Add retry logic for flaky API calls"
|
|
363
|
+
validations:
|
|
364
|
+
required: true
|
|
365
|
+
|
|
366
|
+
- type: textarea
|
|
367
|
+
id: problem
|
|
368
|
+
attributes:
|
|
369
|
+
label: Problem / Motivation
|
|
370
|
+
description: What problem does this solve?
|
|
371
|
+
validations:
|
|
372
|
+
required: true
|
|
373
|
+
|
|
374
|
+
- type: textarea
|
|
375
|
+
id: solution
|
|
376
|
+
attributes:
|
|
377
|
+
label: Proposed Solution
|
|
378
|
+
description: How should it work?
|
|
379
|
+
validations:
|
|
380
|
+
required: true
|
|
381
|
+
|
|
382
|
+
- type: dropdown
|
|
383
|
+
id: component
|
|
384
|
+
attributes:
|
|
385
|
+
label: Component
|
|
386
|
+
options:
|
|
387
|
+
- frontend
|
|
388
|
+
- backend
|
|
389
|
+
- api
|
|
390
|
+
- auth
|
|
391
|
+
- tests
|
|
392
|
+
- docs
|
|
393
|
+
- other
|
|
394
|
+
validations:
|
|
395
|
+
required: true
|
|
396
|
+
|
|
397
|
+
- type: textarea
|
|
398
|
+
id: alternatives
|
|
399
|
+
attributes:
|
|
400
|
+
label: Alternatives Considered (optional)
|
|
401
|
+
validations:
|
|
402
|
+
required: false
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
---
|
|
406
|
+
|
|
407
|
+
## Config File (Optional)
|
|
408
|
+
|
|
409
|
+
**File**: `.github/ISSUE_TEMPLATE/config.yml`
|
|
410
|
+
|
|
411
|
+
Use to customize the issue template chooser:
|
|
412
|
+
|
|
413
|
+
```yaml
|
|
414
|
+
blank_issues_enabled: true
|
|
415
|
+
contact_links:
|
|
416
|
+
- name: QA Skills Documentation
|
|
417
|
+
url: https://github.com/your-org/qa-skills
|
|
418
|
+
about: Learn about QA automation skills
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
---
|
|
422
|
+
|
|
423
|
+
## Usage with GitHub MCP
|
|
424
|
+
|
|
425
|
+
When creating issues via GitHub MCP, populate the body to match the template structure. Use the template's field IDs as keys when constructing the issue body programmatically.
|