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.
Files changed (262) hide show
  1. package/README.md +168 -0
  2. package/bin/cli.js +42 -0
  3. package/dist/agents/registry.d.ts +5 -0
  4. package/dist/agents/registry.d.ts.map +1 -0
  5. package/dist/agents/registry.js +101 -0
  6. package/dist/agents/registry.js.map +1 -0
  7. package/dist/agents/types.d.ts +9 -0
  8. package/dist/agents/types.d.ts.map +1 -0
  9. package/dist/agents/types.js +2 -0
  10. package/dist/agents/types.js.map +1 -0
  11. package/dist/dependencies.d.ts +21 -0
  12. package/dist/dependencies.d.ts.map +1 -0
  13. package/dist/dependencies.js +125 -0
  14. package/dist/dependencies.js.map +1 -0
  15. package/dist/installer.d.ts +25 -0
  16. package/dist/installer.d.ts.map +1 -0
  17. package/dist/installer.js +437 -0
  18. package/dist/installer.js.map +1 -0
  19. package/dist/scaffold.d.ts +27 -0
  20. package/dist/scaffold.d.ts.map +1 -0
  21. package/dist/scaffold.js +182 -0
  22. package/dist/scaffold.js.map +1 -0
  23. package/package.json +40 -0
  24. package/skills/qa-accessibility-test-writer/SKILL.md +127 -0
  25. package/skills/qa-accessibility-test-writer/references/axe-core-patterns.md +349 -0
  26. package/skills/qa-accessibility-test-writer/references/best-practices.md +184 -0
  27. package/skills/qa-accessibility-test-writer/references/wcag-tests.md +331 -0
  28. package/skills/qa-api-contract-curator/SKILL.md +104 -0
  29. package/skills/qa-api-contract-curator/references/breaking-changes.md +363 -0
  30. package/skills/qa-api-contract-curator/references/openapi-structure.md +404 -0
  31. package/skills/qa-browser-data-collector/SKILL.md +132 -0
  32. package/skills/qa-browser-data-collector/references/data-collection-checklist.md +91 -0
  33. package/skills/qa-browser-data-collector/references/playwright-mcp-patterns.md +113 -0
  34. package/skills/qa-bug-ticket-creator/SKILL.md +148 -0
  35. package/skills/qa-bug-ticket-creator/references/bug-report-format.md +149 -0
  36. package/skills/qa-bug-ticket-creator/references/severity-guide.md +81 -0
  37. package/skills/qa-bug-ticket-creator/templates/bug-ticket-template.md +39 -0
  38. package/skills/qa-changelog-analyzer/SKILL.md +134 -0
  39. package/skills/qa-changelog-analyzer/references/git-analysis-patterns.md +138 -0
  40. package/skills/qa-changelog-analyzer/references/impact-mapping.md +120 -0
  41. package/skills/qa-clickup-integration/SKILL.md +166 -0
  42. package/skills/qa-clickup-integration/references/api-patterns.md +102 -0
  43. package/skills/qa-clickup-integration/references/field-mapping.md +71 -0
  44. package/skills/qa-codeceptjs-writer/SKILL.md +136 -0
  45. package/skills/qa-codeceptjs-writer/references/best-practices.md +207 -0
  46. package/skills/qa-codeceptjs-writer/references/config.md +255 -0
  47. package/skills/qa-codeceptjs-writer/references/patterns.md +285 -0
  48. package/skills/qa-coverage-analyzer/SKILL.md +166 -0
  49. package/skills/qa-coverage-analyzer/references/best-practices.md +142 -0
  50. package/skills/qa-coverage-analyzer/references/coverage-dimensions.md +155 -0
  51. package/skills/qa-coverage-analyzer/references/tools.md +204 -0
  52. package/skills/qa-cypress-writer/SKILL.md +134 -0
  53. package/skills/qa-cypress-writer/references/assertions.md +121 -0
  54. package/skills/qa-cypress-writer/references/best-practices.md +82 -0
  55. package/skills/qa-cypress-writer/references/config.md +121 -0
  56. package/skills/qa-cypress-writer/references/patterns.md +170 -0
  57. package/skills/qa-data-factory/SKILL.md +126 -0
  58. package/skills/qa-data-factory/references/factory-patterns.md +164 -0
  59. package/skills/qa-data-factory/references/faker-guide.md +131 -0
  60. package/skills/qa-diagram-generator/SKILL.md +125 -0
  61. package/skills/qa-diagram-generator/references/c4-model.md +53 -0
  62. package/skills/qa-diagram-generator/references/charts.md +58 -0
  63. package/skills/qa-diagram-generator/references/class-diagram.md +85 -0
  64. package/skills/qa-diagram-generator/references/er-diagram.md +69 -0
  65. package/skills/qa-diagram-generator/references/flowchart.md +92 -0
  66. package/skills/qa-diagram-generator/references/from-screenshot.md +45 -0
  67. package/skills/qa-diagram-generator/references/gantt.md +49 -0
  68. package/skills/qa-diagram-generator/references/journey.md +50 -0
  69. package/skills/qa-diagram-generator/references/mindmap.md +75 -0
  70. package/skills/qa-diagram-generator/references/sequence.md +69 -0
  71. package/skills/qa-diagram-generator/references/state-diagram.md +56 -0
  72. package/skills/qa-discovery-interview/SKILL.md +182 -0
  73. package/skills/qa-discovery-interview/references/completeness-checklist.md +53 -0
  74. package/skills/qa-discovery-interview/references/conflict-patterns.md +101 -0
  75. package/skills/qa-discovery-interview/references/qa-categories.md +147 -0
  76. package/skills/qa-discovery-interview/templates/qa-brief-template.md +168 -0
  77. package/skills/qa-environment-checker/SKILL.md +142 -0
  78. package/skills/qa-environment-checker/references/dependency-matrix.md +101 -0
  79. package/skills/qa-environment-checker/references/health-checks.md +209 -0
  80. package/skills/qa-environment-checker/templates/env-readiness-template.md +64 -0
  81. package/skills/qa-flaky-detector/SKILL.md +153 -0
  82. package/skills/qa-flaky-detector/references/ci-analysis.md +140 -0
  83. package/skills/qa-flaky-detector/references/flaky-patterns.md +247 -0
  84. package/skills/qa-github-issues-enhanced/SKILL.md +175 -0
  85. package/skills/qa-github-issues-enhanced/references/issue-templates.md +425 -0
  86. package/skills/qa-github-issues-enhanced/references/label-taxonomy.md +130 -0
  87. package/skills/qa-github-issues-enhanced/references/workflow-patterns.md +188 -0
  88. package/skills/qa-httpx-writer/SKILL.md +138 -0
  89. package/skills/qa-httpx-writer/references/assertions.md +195 -0
  90. package/skills/qa-httpx-writer/references/best-practices.md +140 -0
  91. package/skills/qa-httpx-writer/references/config.md +212 -0
  92. package/skills/qa-httpx-writer/references/patterns.md +262 -0
  93. package/skills/qa-jest-writer/SKILL.md +131 -0
  94. package/skills/qa-jest-writer/references/assertions.md +125 -0
  95. package/skills/qa-jest-writer/references/best-practices.md +136 -0
  96. package/skills/qa-jest-writer/references/config.md +134 -0
  97. package/skills/qa-jest-writer/references/patterns.md +172 -0
  98. package/skills/qa-jira-integration/SKILL.md +135 -0
  99. package/skills/qa-jira-integration/references/api-patterns.md +143 -0
  100. package/skills/qa-jira-integration/references/field-mapping.md +79 -0
  101. package/skills/qa-jira-integration/references/xray-integration.md +85 -0
  102. package/skills/qa-jmeter-writer/SKILL.md +171 -0
  103. package/skills/qa-jmeter-writer/references/best-practices.md +157 -0
  104. package/skills/qa-jmeter-writer/references/config.md +204 -0
  105. package/skills/qa-jmeter-writer/references/patterns.md +242 -0
  106. package/skills/qa-junit5-writer/SKILL.md +157 -0
  107. package/skills/qa-junit5-writer/references/assertions.md +118 -0
  108. package/skills/qa-junit5-writer/references/config.md +97 -0
  109. package/skills/qa-junit5-writer/references/patterns.md +162 -0
  110. package/skills/qa-k6-writer/SKILL.md +155 -0
  111. package/skills/qa-k6-writer/references/best-practices.md +236 -0
  112. package/skills/qa-k6-writer/references/config.md +219 -0
  113. package/skills/qa-k6-writer/references/patterns.md +304 -0
  114. package/skills/qa-linear-integration/SKILL.md +137 -0
  115. package/skills/qa-linear-integration/references/api-patterns.md +249 -0
  116. package/skills/qa-linear-integration/references/field-mapping.md +121 -0
  117. package/skills/qa-locust-writer/SKILL.md +151 -0
  118. package/skills/qa-locust-writer/references/best-practices.md +126 -0
  119. package/skills/qa-locust-writer/references/config.md +170 -0
  120. package/skills/qa-locust-writer/references/patterns.md +235 -0
  121. package/skills/qa-manual-test-designer/SKILL.md +145 -0
  122. package/skills/qa-manual-test-designer/references/exploratory-charters.md +138 -0
  123. package/skills/qa-manual-test-designer/references/personas.md +146 -0
  124. package/skills/qa-manual-test-designer/templates/exploratory-charter-template.md +47 -0
  125. package/skills/qa-manual-test-designer/templates/test-case-template.md +31 -0
  126. package/skills/qa-mobile-test-writer/SKILL.md +144 -0
  127. package/skills/qa-mobile-test-writer/references/best-practices.md +214 -0
  128. package/skills/qa-mobile-test-writer/references/config.md +309 -0
  129. package/skills/qa-mobile-test-writer/references/patterns.md +304 -0
  130. package/skills/qa-nfr-analyst/SKILL.md +177 -0
  131. package/skills/qa-nfr-analyst/references/iso-25010-model.md +159 -0
  132. package/skills/qa-nfr-analyst/references/owasp-wstg-baseline.md +202 -0
  133. package/skills/qa-nfr-analyst/references/wcag-checklist.md +184 -0
  134. package/skills/qa-nfr-analyst/templates/owasp-checklist-template.md +89 -0
  135. package/skills/qa-nfr-analyst/templates/wcag-checklist-template.md +48 -0
  136. package/skills/qa-orchestrator/SKILL.md +132 -0
  137. package/skills/qa-orchestrator/references/handoff-chains.md +105 -0
  138. package/skills/qa-orchestrator/references/pipeline-modes.md +115 -0
  139. package/skills/qa-orchestrator/references/scheduler-rules.md +84 -0
  140. package/skills/qa-pact-writer/SKILL.md +133 -0
  141. package/skills/qa-pact-writer/references/best-practices.md +100 -0
  142. package/skills/qa-pact-writer/references/config.md +135 -0
  143. package/skills/qa-pact-writer/references/patterns.md +161 -0
  144. package/skills/qa-plan-creator/SKILL.md +139 -0
  145. package/skills/qa-plan-creator/references/introduction-plan.md +43 -0
  146. package/skills/qa-plan-creator/references/migration-plan.md +44 -0
  147. package/skills/qa-plan-creator/references/onboarding-plan.md +46 -0
  148. package/skills/qa-plan-creator/references/performance-plan.md +44 -0
  149. package/skills/qa-plan-creator/references/regression-plan.md +45 -0
  150. package/skills/qa-plan-creator/references/release-plan.md +45 -0
  151. package/skills/qa-plan-creator/references/sprint-plan.md +44 -0
  152. package/skills/qa-plan-creator/references/test-plan.md +59 -0
  153. package/skills/qa-plan-creator/references/uat-plan.md +43 -0
  154. package/skills/qa-plan-creator/templates/checklist-template.md +36 -0
  155. package/skills/qa-plan-creator/templates/regression-checklist-template.md +49 -0
  156. package/skills/qa-plan-creator/templates/release-checklist-template.md +46 -0
  157. package/skills/qa-plan-creator/templates/test-plan-template.md +74 -0
  158. package/skills/qa-playwright-py-writer/SKILL.md +156 -0
  159. package/skills/qa-playwright-py-writer/references/best-practices.md +194 -0
  160. package/skills/qa-playwright-py-writer/references/config.md +195 -0
  161. package/skills/qa-playwright-py-writer/references/patterns.md +212 -0
  162. package/skills/qa-playwright-ts-writer/SKILL.md +151 -0
  163. package/skills/qa-playwright-ts-writer/references/assertions.md +109 -0
  164. package/skills/qa-playwright-ts-writer/references/best-practices.md +191 -0
  165. package/skills/qa-playwright-ts-writer/references/config.md +144 -0
  166. package/skills/qa-playwright-ts-writer/references/patterns.md +171 -0
  167. package/skills/qa-pytest-writer/SKILL.md +145 -0
  168. package/skills/qa-pytest-writer/references/assertions.md +149 -0
  169. package/skills/qa-pytest-writer/references/best-practices.md +97 -0
  170. package/skills/qa-pytest-writer/references/config.md +176 -0
  171. package/skills/qa-pytest-writer/references/patterns.md +251 -0
  172. package/skills/qa-qase-integration/SKILL.md +149 -0
  173. package/skills/qa-qase-integration/references/api-reference.md +354 -0
  174. package/skills/qa-qase-integration/references/ci-integration.md +196 -0
  175. package/skills/qa-qase-integration/references/field-mapping.md +157 -0
  176. package/skills/qa-requirements-generator/SKILL.md +152 -0
  177. package/skills/qa-requirements-generator/references/iso-29148-structure.md +153 -0
  178. package/skills/qa-requirements-generator/references/requirement-patterns.md +278 -0
  179. package/skills/qa-rest-assured-writer/SKILL.md +137 -0
  180. package/skills/qa-rest-assured-writer/references/best-practices.md +50 -0
  181. package/skills/qa-rest-assured-writer/references/config.md +124 -0
  182. package/skills/qa-rest-assured-writer/references/patterns.md +192 -0
  183. package/skills/qa-risk-analyzer/SKILL.md +158 -0
  184. package/skills/qa-risk-analyzer/references/impact-analysis.md +133 -0
  185. package/skills/qa-risk-analyzer/references/risk-factors.md +123 -0
  186. package/skills/qa-robot-framework-writer/SKILL.md +147 -0
  187. package/skills/qa-robot-framework-writer/references/best-practices.md +249 -0
  188. package/skills/qa-robot-framework-writer/references/config.md +204 -0
  189. package/skills/qa-robot-framework-writer/references/libraries.md +273 -0
  190. package/skills/qa-robot-framework-writer/references/patterns.md +216 -0
  191. package/skills/qa-security-test-writer/SKILL.md +123 -0
  192. package/skills/qa-security-test-writer/references/best-practices.md +155 -0
  193. package/skills/qa-security-test-writer/references/owasp-top10.md +331 -0
  194. package/skills/qa-security-test-writer/references/zap-config.md +258 -0
  195. package/skills/qa-selenium-java-writer/SKILL.md +143 -0
  196. package/skills/qa-selenium-java-writer/references/best-practices.md +59 -0
  197. package/skills/qa-selenium-java-writer/references/config.md +143 -0
  198. package/skills/qa-selenium-java-writer/references/patterns.md +170 -0
  199. package/skills/qa-selenium-py-writer/SKILL.md +150 -0
  200. package/skills/qa-selenium-py-writer/references/best-practices.md +175 -0
  201. package/skills/qa-selenium-py-writer/references/config.md +224 -0
  202. package/skills/qa-selenium-py-writer/references/patterns.md +255 -0
  203. package/skills/qa-shortcut-integration/SKILL.md +143 -0
  204. package/skills/qa-shortcut-integration/references/api-patterns.md +126 -0
  205. package/skills/qa-shortcut-integration/references/field-mapping.md +66 -0
  206. package/skills/qa-spec-auditor/SKILL.md +162 -0
  207. package/skills/qa-spec-auditor/references/audit-checklist.md +144 -0
  208. package/skills/qa-spec-auditor/references/drift-patterns.md +207 -0
  209. package/skills/qa-spec-writer/SKILL.md +143 -0
  210. package/skills/qa-spec-writer/references/gherkin-guide.md +253 -0
  211. package/skills/qa-spec-writer/references/specification-patterns.md +274 -0
  212. package/skills/qa-spring-test-writer/SKILL.md +170 -0
  213. package/skills/qa-spring-test-writer/references/best-practices.md +57 -0
  214. package/skills/qa-spring-test-writer/references/config.md +179 -0
  215. package/skills/qa-spring-test-writer/references/patterns.md +235 -0
  216. package/skills/qa-supertest-writer/SKILL.md +150 -0
  217. package/skills/qa-supertest-writer/references/assertions.md +192 -0
  218. package/skills/qa-supertest-writer/references/best-practices.md +102 -0
  219. package/skills/qa-supertest-writer/references/config.md +166 -0
  220. package/skills/qa-supertest-writer/references/patterns.md +242 -0
  221. package/skills/qa-task-creator/SKILL.md +142 -0
  222. package/skills/qa-task-creator/references/linking-patterns.md +127 -0
  223. package/skills/qa-task-creator/references/task-types.md +169 -0
  224. package/skills/qa-task-creator/templates/task-template.md +24 -0
  225. package/skills/qa-test-doc-compiler/SKILL.md +114 -0
  226. package/skills/qa-test-doc-compiler/references/agile-tailoring.md +220 -0
  227. package/skills/qa-test-doc-compiler/references/iso-29119-3-documents.md +302 -0
  228. package/skills/qa-test-healer/SKILL.md +101 -0
  229. package/skills/qa-test-healer/references/diagnosis-patterns.md +142 -0
  230. package/skills/qa-test-healer/references/fix-strategies.md +177 -0
  231. package/skills/qa-test-reporter/SKILL.md +130 -0
  232. package/skills/qa-test-reporter/references/best-practices.md +162 -0
  233. package/skills/qa-test-reporter/references/iso-29119-reports.md +236 -0
  234. package/skills/qa-test-reporter/references/report-formats.md +287 -0
  235. package/skills/qa-test-reviewer/SKILL.md +142 -0
  236. package/skills/qa-test-reviewer/references/anti-patterns.md +268 -0
  237. package/skills/qa-test-reviewer/references/review-checklist.md +93 -0
  238. package/skills/qa-test-strategy/SKILL.md +133 -0
  239. package/skills/qa-test-strategy/references/entry-exit-criteria.md +176 -0
  240. package/skills/qa-test-strategy/references/risk-matrix.md +102 -0
  241. package/skills/qa-test-strategy/references/testing-types.md +143 -0
  242. package/skills/qa-testcase-from-docs/SKILL.md +161 -0
  243. package/skills/qa-testcase-from-docs/references/test-case-format.md +196 -0
  244. package/skills/qa-testcase-from-docs/references/test-design-techniques.md +126 -0
  245. package/skills/qa-testcase-from-docs/templates/test-case-template.md +31 -0
  246. package/skills/qa-testcase-from-ui/SKILL.md +109 -0
  247. package/skills/qa-testcase-from-ui/references/ui-element-patterns.md +126 -0
  248. package/skills/qa-testcase-from-ui/references/visual-analysis-guide.md +146 -0
  249. package/skills/qa-testcase-from-ui/templates/test-case-template.md +31 -0
  250. package/skills/qa-visual-regression-writer/SKILL.md +175 -0
  251. package/skills/qa-visual-regression-writer/references/best-practices.md +154 -0
  252. package/skills/qa-visual-regression-writer/references/config.md +220 -0
  253. package/skills/qa-visual-regression-writer/references/patterns.md +213 -0
  254. package/skills/qa-vitest-writer/SKILL.md +141 -0
  255. package/skills/qa-vitest-writer/references/assertions.md +105 -0
  256. package/skills/qa-vitest-writer/references/best-practices.md +62 -0
  257. package/skills/qa-vitest-writer/references/config.md +127 -0
  258. package/skills/qa-vitest-writer/references/patterns.md +141 -0
  259. package/skills/qa-webdriverio-writer/SKILL.md +145 -0
  260. package/skills/qa-webdriverio-writer/references/best-practices.md +176 -0
  261. package/skills/qa-webdriverio-writer/references/config.md +240 -0
  262. package/skills/qa-webdriverio-writer/references/patterns.md +269 -0
@@ -0,0 +1,138 @@
1
+ # Git Diff Parsing Patterns
2
+
3
+ ## Overview
4
+
5
+ Parse git diff output to extract changed files, classify change types, and map to modules. Used by qa-changelog-analyzer for impact analysis.
6
+
7
+ ---
8
+
9
+ ## 1. Git Diff Commands
10
+
11
+ ### Staged Changes (Pre-Commit)
12
+
13
+ ```bash
14
+ git diff --name-only --cached
15
+ git diff --stat --cached
16
+ ```
17
+
18
+ ### Committed Changes
19
+
20
+ ```bash
21
+ # Last commit
22
+ git diff --name-only HEAD~1..HEAD
23
+
24
+ # Last N commits
25
+ git diff --name-only HEAD~5..HEAD
26
+
27
+ # Specific commit range
28
+ git diff --name-only abc123..def456
29
+ ```
30
+
31
+ ### Branch Comparison
32
+
33
+ ```bash
34
+ # PR: feature branch vs main
35
+ git diff --name-only origin/main...HEAD
36
+
37
+ # Branch vs branch
38
+ git diff --name-only base_branch..feature_branch
39
+ ```
40
+
41
+ ### With Rename Detection
42
+
43
+ ```bash
44
+ git diff --name-only -M50% base..HEAD
45
+ git diff --find-renames base..HEAD
46
+ ```
47
+
48
+ ---
49
+
50
+ ## 2. Parsing Output
51
+
52
+ ### Name-Only Format
53
+
54
+ ```
55
+ src/auth/login.ts
56
+ src/auth/session.ts
57
+ tests/auth/login.spec.ts
58
+ config/env.example
59
+ ```
60
+
61
+ - One path per line
62
+ - Use `git status -s` for staged + unstaged with status prefix (`A`, `M`, `D`, `R`)
63
+
64
+ ### Stat Format
65
+
66
+ ```
67
+ src/auth/login.ts | 12 +++++----
68
+ src/auth/session.ts | 5 +++++
69
+ 2 files changed, 17 insertions(+), 4 deletions(-)
70
+ ```
71
+
72
+ - Parse for file paths and change magnitude
73
+ - Useful for prioritization (more changes = higher impact)
74
+
75
+ ### Change Type Detection
76
+
77
+ | Git Status | Meaning | Action |
78
+ |------------|---------|--------|
79
+ | `A` or `??` (new) | Added | Need new tests |
80
+ | `M` | Modified | Run existing; check for updates |
81
+ | `D` | Deleted | Remove/update related tests |
82
+ | `R` or `R100` | Renamed | Update imports in tests |
83
+
84
+ ---
85
+
86
+ ## 3. File-to-Module Mapping
87
+
88
+ ### Directory-Based
89
+
90
+ ```
91
+ src/auth/login.ts → auth
92
+ src/auth/session.ts → auth
93
+ src/api/users.ts → api
94
+ packages/core/utils.ts → core
95
+ ```
96
+
97
+ - Use first path segment after `src/`, `packages/`, `lib/`, etc.
98
+ - Configurable per project
99
+
100
+ ### Package/Import-Based (JS/TS)
101
+
102
+ - Parse `package.json` name
103
+ - Use import path: `@/auth` → auth
104
+ - Monorepo: `packages/auth` → auth
105
+
106
+ ### Python
107
+
108
+ - `src.auth.login` → auth
109
+ - Directory: `src/auth/` → auth
110
+
111
+ ### Config Override
112
+
113
+ - `impact-mapping.json` or `.qa-mapping` for custom mappings
114
+ - Override automatic detection when structure is non-standard
115
+
116
+ ---
117
+
118
+ ## 4. Exclusions
119
+
120
+ Common exclusions from impact analysis:
121
+
122
+ - `node_modules/`, `vendor/`, `__pycache__/`
123
+ - Generated files: `*.generated.ts`, `dist/`, `build/`
124
+ - Lock files: `package-lock.json`, `yarn.lock` (optional; may affect env)
125
+ - Docs only: `*.md`, `docs/` (optional; no test impact)
126
+ - Test files themselves: include in "tests to run" but not "modules affected"
127
+
128
+ ---
129
+
130
+ ## 5. Edge Cases
131
+
132
+ | Case | Handling |
133
+ |------|----------|
134
+ | Binary files | Skip or flag; no line-level analysis |
135
+ | Submodule changes | Treat as config; may need integration tests |
136
+ | Merge commits | Use `-m` or first parent; avoid duplicate counting |
137
+ | Large diff | Summarize by module; avoid listing every file |
138
+ | No git repo | Return error; require valid git context |
@@ -0,0 +1,120 @@
1
+ # Mapping Code Changes to Test Recommendations
2
+
3
+ ## Overview
4
+
5
+ Map code changes to concrete test recommendations: tests to run, tests to update, and tests to add. Used by qa-changelog-analyzer to produce actionable output.
6
+
7
+ ---
8
+
9
+ ## 1. Tests to Run (Regression Scope)
10
+
11
+ ### Direct Mapping
12
+
13
+ Changed file → tests that cover it:
14
+
15
+ | Source | Method | Example |
16
+ |--------|--------|---------|
17
+ | Coverage report | Istanbul, JaCoCo, coverage.py | `auth/login.ts` → `login.spec.ts` |
18
+ | Path convention | `tests/<module>/` or `*.spec.ts` | `auth/` → `tests/auth/*` |
19
+ | Import grep | `import.*from.*auth` in tests | Find test files importing changed module |
20
+
21
+ ### Priority Levels
22
+
23
+ - **Must run:** Direct unit/integration tests for changed modules
24
+ - **Should run:** Integration tests that use changed APIs/components
25
+ - **Optional:** Full suite, E2E, smoke (if risk threshold exceeded)
26
+
27
+ ### Downstream Impact
28
+
29
+ - If `auth/session.ts` changed → check who imports it
30
+ - API changes → integration tests for API consumers
31
+ - DB schema → migration tests, repository tests
32
+
33
+ ---
34
+
35
+ ## 2. Tests to Update
36
+
37
+ ### When Source Diverged
38
+
39
+ - Assertions expect old behavior
40
+ - Selectors target removed/changed elements
41
+ - Mocks no longer match API shape
42
+
43
+ ### Detection Hints
44
+
45
+ - Test file in same module as changed source
46
+ - Test imports changed file
47
+ - Test name suggests coverage of changed functionality
48
+
49
+ ### Recommendation Format
50
+
51
+ ```markdown
52
+ - **tests/auth/login.spec.ts** — `login.ts` changed; verify assertions match new validation logic
53
+ - **tests/api/users.integration.spec.ts** — `users.ts` response shape changed; update expectations
54
+ ```
55
+
56
+ ---
57
+
58
+ ## 3. Tests to Add
59
+
60
+ ### New Files
61
+
62
+ - New source file with no corresponding test
63
+ - New module/component
64
+ - New API endpoint
65
+
66
+ ### Uncovered Code Paths
67
+
68
+ - New branches, error handlers, edge cases in modified files
69
+ - Use coverage report: new lines with 0% coverage
70
+
71
+ ### Recommendation Format
72
+
73
+ ```markdown
74
+ - **Add unit tests for** `src/auth/oauth.ts` — new file, no coverage
75
+ - **Add integration test for** `POST /api/v2/users` — new endpoint
76
+ ```
77
+
78
+ ---
79
+
80
+ ## 4. Tests to Remove
81
+
82
+ ### Deleted Source
83
+
84
+ - Source file deleted → tests that only cover it are obsolete
85
+ - Remove or repurpose tests
86
+
87
+ ### Deprecated Features
88
+
89
+ - Feature removed → remove feature-specific tests
90
+ - Keep shared setup/utilities if still used
91
+
92
+ ---
93
+
94
+ ## 5. Config and Environment Changes
95
+
96
+ | Change | Recommendation |
97
+ |--------|----------------|
98
+ | `.env`, `config/*` | Run env-specific tests; validate config loading |
99
+ | `package.json`, `requirements.txt` | Run install + smoke; may affect dependencies |
100
+ | CI config (`.github/`, `Jenkinsfile`) | Validate pipeline; run full suite once |
101
+ | Dockerfile, k8s | Integration/E2E in target environment |
102
+
103
+ ---
104
+
105
+ ## 6. Task Handoff to qa-task-creator
106
+
107
+ Format suggestions for qa-task-creator:
108
+
109
+ ```markdown
110
+ ## Tasks
111
+
112
+ 1. **Add:** Unit tests for `src/auth/oauth.ts` (new file)
113
+ 2. **Update:** `tests/auth/login.spec.ts` — assertions for new validation
114
+ 3. **Remove:** `tests/legacy/deprecated.spec.ts` — source deleted
115
+ 4. **Run:** Regression scope (see Must Run list above)
116
+ ```
117
+
118
+ - Each task is self-contained with file/module reference
119
+ - Link to change impact report for context
120
+ - Use labels: `qa`, `development`, `test-coverage`
@@ -0,0 +1,166 @@
1
+ ---
2
+ name: qa-clickup-integration
3
+ description: ClickUp integration for creating tasks, managing lists/spaces, and tracking QA workflows via REST API.
4
+ dependencies:
5
+ recommended:
6
+ - qa-bug-ticket-creator
7
+ - qa-task-creator
8
+ ---
9
+
10
+ # QA ClickUp Integration
11
+
12
+ ## Purpose
13
+
14
+ Integrate QA workflow with ClickUp for task management. Create and manage tasks, lists, folders, and spaces; attach QA metadata via custom fields; and sync bug reports and work tasks from qa-bug-ticket-creator and qa-task-creator into ClickUp.
15
+
16
+ ## Primary Target
17
+
18
+ **ClickUp** via REST API. Base URL: `https://api.clickup.com/api/v2`.
19
+
20
+ ## Features
21
+
22
+ ### Task Management
23
+
24
+ | Feature | Description |
25
+ | ------- | ----------- |
26
+ | **Create tasks** | POST to list; set name, description, assignees, status, priority |
27
+ | **Update tasks** | PUT to modify existing tasks |
28
+ | **Get task** | GET task by ID for status checks |
29
+ | **Subtasks** | Create subtasks for test steps or breakdown |
30
+ | **Checklists** | Add checklist items for acceptance criteria |
31
+ | **Attachments** | Attach screenshots, logs, HAR files |
32
+
33
+ ### Hierarchy
34
+
35
+ | Level | API | Use |
36
+ | ----- | --- | --- |
37
+ | **Space** | GET /api/v2/team/{team_id}/space | QA workspace or project |
38
+ | **Folder** | GET /api/v2/space/{space_id}/folder | Feature or module grouping |
39
+ | **List** | GET /api/v2/folder/{folder_id}/list | Sprint, release, or backlog |
40
+ | **Task** | POST /api/v2/list/{list_id}/task | Individual work item |
41
+
42
+ ### QA Metadata
43
+
44
+ | Custom Field | Purpose |
45
+ | ------------ | ------- |
46
+ | **Severity** | Blocker / Critical / Major / Minor / Trivial |
47
+ | **Test Type** | Unit / Integration / E2E / Performance / Security |
48
+ | **Coverage** | Requirement or module coverage reference |
49
+ | **Environment** | OS, browser, app version |
50
+ | **Component** | Affected area (auth, checkout, API) |
51
+
52
+ ### Relationships
53
+
54
+ - **Blocking** — Task A blocks Task B
55
+ - **Waiting on** — Task A waits on Task B
56
+ - **Linked** — Related tasks for traceability
57
+
58
+ ### Tags and Priorities
59
+
60
+ - **Tags** — `bug`, `test-coverage`, `flaky`, `docs`, component tags
61
+ - **Priority** — Urgent (1), High (2), Normal (3), Low (4)
62
+
63
+ ## Authentication
64
+
65
+ | Variable | Description |
66
+ | -------- | ----------- |
67
+ | `CLICKUP_API_TOKEN` | Personal API token (starts with `pk_`) from .env |
68
+
69
+ **Header:** `Authorization: <token>`
70
+
71
+ Generate tokens at: ClickUp Settings → Apps → API Token.
72
+
73
+ ## Key API Endpoints
74
+
75
+ | Method | Endpoint | Use |
76
+ | ------ | -------- | --- |
77
+ | POST | `/api/v2/list/{list_id}/task` | Create task |
78
+ | GET | `/api/v2/task/{task_id}` | Get task details |
79
+ | PUT | `/api/v2/task/{task_id}` | Update task |
80
+ | GET | `/api/v2/team/{team_id}/space` | List spaces |
81
+ | GET | `/api/v2/space/{space_id}/folder` | List folders |
82
+ | GET | `/api/v2/folder/{folder_id}/list` | List lists |
83
+ | POST | `/api/v2/task/{task_id}/attachment` | Add attachment |
84
+
85
+ See `references/api-patterns.md` for request/response examples.
86
+
87
+ ## Integration with QA Skills
88
+
89
+ | Skill | Integration |
90
+ | ----- | ----------- |
91
+ | **qa-bug-ticket-creator** | Create ClickUp tasks from bug reports; map severity, component, evidence |
92
+ | **qa-task-creator** | Create ClickUp tasks from coverage gaps, spec findings, fix tasks |
93
+ | **qa-test-reporter** | Attach test reports as task attachments; link failures to tasks |
94
+
95
+ ### Handoff Flow
96
+
97
+ 1. **Bug report** → qa-bug-ticket-creator structures report → qa-clickup-integration creates task in target list
98
+ 2. **Fix task** → qa-task-creator generates task → qa-clickup-integration creates task, links to bug task
99
+ 3. **Coverage gap** → qa-coverage-analyzer output → qa-task-creator → qa-clickup-integration
100
+
101
+ ## Trigger Phrases
102
+
103
+ - "Create ClickUp task from [bug report / test failure]"
104
+ - "Add task to ClickUp list [name]"
105
+ - "Sync bug to ClickUp with severity and evidence"
106
+ - "Create ClickUp task from coverage gap"
107
+ - "Link fix task to bug in ClickUp"
108
+ - "Attach screenshot to ClickUp task [id]"
109
+ - "Get ClickUp task status for [id]"
110
+
111
+ ## Workflow
112
+
113
+ 1. **Input** — Bug report, task description, coverage gap, or user request
114
+ 2. **Resolve target** — Team ID, Space, Folder, List (from user or config)
115
+ 3. **Map fields** — Map QA fields to ClickUp task fields per `references/field-mapping.md`
116
+ 4. **Create/update** — POST or PUT via REST API
117
+ 5. **Attach** — Add screenshots, logs when provided
118
+ 6. **Link** — Set blocking/waiting-on when paired with bug or fix task
119
+
120
+ ## Scope
121
+
122
+ **Can do (autonomous):**
123
+ - Create and update tasks in specified lists
124
+ - Map severity, priority, component, test type to ClickUp fields
125
+ - Add subtasks, checklists, attachments
126
+ - Set task relationships (blocking, waiting on)
127
+ - Resolve space/folder/list from user input or config
128
+ - Integrate with qa-bug-ticket-creator and qa-task-creator output
129
+
130
+ **Cannot do (requires confirmation):**
131
+ - Create spaces, folders, or lists (assume they exist)
132
+ - Override user-specified list or assignee
133
+ - Set custom fields without workspace configuration
134
+
135
+ **Will not do (out of scope):**
136
+ - Modify production or test code
137
+ - Delete tasks or archives (user responsibility)
138
+ - Create ClickUp workspaces or teams
139
+
140
+ ## Quality Checklist
141
+
142
+ - [ ] Task includes name, description, and appropriate priority
143
+ - [ ] QA metadata (severity, test type, component) mapped per field-mapping
144
+ - [ ] Attachments added when evidence provided
145
+ - [ ] No hardcoded secrets; token from .env
146
+ - [ ] List ID resolved before create; task ID validated before update
147
+ - [ ] Relationships set when linking bug to fix task
148
+ - [ ] Error handling for 401, 404, 429 (rate limit)
149
+
150
+ ## Troubleshooting
151
+
152
+ | Symptom | Likely Cause | Fix |
153
+ | ------- | ------------ | --- |
154
+ | 401 Unauthorized | Token missing or invalid | Check `CLICKUP_API_TOKEN` in .env; regenerate if expired |
155
+ | 404 Not Found | Invalid list_id or task_id | Verify IDs; use GET to list spaces/folders/lists |
156
+ | 429 Rate limit | Too many requests | Implement backoff; batch operations |
157
+ | Custom field not applied | Field ID wrong or not configured | Check workspace custom fields; use correct field ID |
158
+ | Attachment fails | File size or format | ClickUp limits; use supported formats (png, jpg, txt, etc.) |
159
+ | Wrong list | List ID from wrong folder | Resolve full hierarchy: team → space → folder → list |
160
+
161
+ ## Reference Files
162
+
163
+ | Topic | File |
164
+ | ----- | ---- |
165
+ | API patterns: tasks, lists, spaces, custom fields | `references/api-patterns.md` |
166
+ | Mapping QA fields to ClickUp task fields | `references/field-mapping.md` |
@@ -0,0 +1,102 @@
1
+ # ClickUp API Patterns
2
+
3
+ ## Base URL and Auth
4
+
5
+ ```
6
+ Base: https://api.clickup.com/api/v2
7
+ Header: Authorization: <CLICKUP_API_TOKEN>
8
+ Content-Type: application/json
9
+ ```
10
+
11
+ ## Hierarchy Resolution
12
+
13
+ 1. **Team** — `GET /api/v2/team` returns teams; use `team_id` for spaces
14
+ 2. **Space** — `GET /api/v2/team/{team_id}/space` returns spaces
15
+ 3. **Folder** — `GET /api/v2/space/{space_id}/folder` returns folders (archived: false)
16
+ 4. **List** — `GET /api/v2/folder/{folder_id}/list` returns lists
17
+
18
+ ## Create Task
19
+
20
+ **POST** `/api/v2/list/{list_id}/task`
21
+
22
+ ```json
23
+ {
24
+ "name": "Login fails when password contains special chars",
25
+ "description": "**Expected:** User can log in with special chars in password.\n**Actual:** 500 error.\n**Steps:** 1. Go to /login 2. Enter user@test.com + pass!@# 3. Submit",
26
+ "assignees": [12345],
27
+ "tags": ["bug", "auth"],
28
+ "status": "to do",
29
+ "priority": 2,
30
+ "due_date": 1709856000000,
31
+ "custom_task_ids": false,
32
+ "notify_all": false
33
+ }
34
+ ```
35
+
36
+ **Response:** Task object with `id`, `url`, `status`, etc.
37
+
38
+ ## Get Task
39
+
40
+ **GET** `/api/v2/task/{task_id}`
41
+
42
+ Returns full task including custom fields, subtasks, checklists.
43
+
44
+ ## Update Task
45
+
46
+ **PUT** `/api/v2/task/{task_id}`
47
+
48
+ Same body shape as create; only include fields to update.
49
+
50
+ ## Custom Fields
51
+
52
+ Custom fields are workspace-specific. Use `GET /api/v2/list/{list_id}/field` to list available fields.
53
+
54
+ Example custom field in task:
55
+ ```json
56
+ {
57
+ "custom_fields": [
58
+ {
59
+ "id": "abc123",
60
+ "value": "Critical"
61
+ }
62
+ ]
63
+ }
64
+ ```
65
+
66
+ ## Subtasks
67
+
68
+ Create subtask: **POST** `/api/v2/list/{list_id}/task` with `parent` set to parent task ID.
69
+
70
+ Or add via task update with subtasks array.
71
+
72
+ ## Checklists
73
+
74
+ **POST** `/api/v2/task/{task_id}/checklist`
75
+
76
+ ```json
77
+ {
78
+ "name": "Acceptance Criteria",
79
+ "items": [
80
+ { "name": "User can log in with special chars" },
81
+ { "name": "Error message is user-friendly" }
82
+ ]
83
+ }
84
+ ```
85
+
86
+ ## Attachments
87
+
88
+ **POST** `/api/v2/task/{task_id}/attachment`
89
+
90
+ `Content-Type: multipart/form-data` with file.
91
+
92
+ Supported: png, jpg, gif, pdf, txt, log, har, etc.
93
+
94
+ ## Task Relationships
95
+
96
+ - **Linked tasks** — Use `linking` in task body or separate linking API
97
+ - **Blocking** — Set via custom workflow or dependency field if configured
98
+
99
+ ## Rate Limits
100
+
101
+ - Typical: 100 requests per minute per token
102
+ - 429 response: retry with exponential backoff
@@ -0,0 +1,71 @@
1
+ # QA Field to ClickUp Mapping
2
+
3
+ ## Standard Task Fields
4
+
5
+ | QA Field | ClickUp Field | Notes |
6
+ | -------- | ------------- | ----- |
7
+ | Title | `name` | Direct mapping |
8
+ | Description | `description` | Markdown supported |
9
+ | Severity | `priority` or custom | 1=Urgent, 2=High, 3=Normal, 4=Low |
10
+ | Priority (P1–P5) | `priority` | P1→1, P2→2, P3→3, P4/P5→4 |
11
+ | Component | `tags` | Add as tag, e.g. `auth`, `checkout` |
12
+ | Assignee | `assignees` | Array of member IDs |
13
+ | Due date | `due_date` | Unix ms |
14
+ | Status | `status` | Must match list status names |
15
+
16
+ ## QA-Specific → ClickUp Custom Fields
17
+
18
+ Configure these custom fields in your ClickUp workspace, then map by field ID:
19
+
20
+ | QA Field | Custom Field Type | Example Value |
21
+ | -------- | ----------------- | ------------- |
22
+ | Severity (ISO) | Dropdown | Blocker, Critical, Major, Minor, Trivial |
23
+ | Test Type | Dropdown | Unit, Integration, E2E, Performance, Security |
24
+ | Coverage | Text/URL | Requirement ID or module path |
25
+ | Environment | Text | "Chrome 120, Windows 11, v2.1.0" |
26
+ | Expected Result | Long text | From bug report template |
27
+ | Actual Result | Long text | From bug report template |
28
+ | Steps to Reproduce | Long text | Numbered steps |
29
+ | Evidence | Attachment | Screenshots, logs via attachment API |
30
+
31
+ ## Bug Report Template Mapping
32
+
33
+ | Bug Report Field | ClickUp Target |
34
+ | ---------------- | -------------- |
35
+ | Title | `name` |
36
+ | Expected Result | `description` or custom field |
37
+ | Actual Result | `description` or custom field |
38
+ | Steps to Reproduce | `description` or checklist |
39
+ | Environment | Custom field or `description` |
40
+ | Evidence | Attachments |
41
+ | Severity | `priority` + custom field |
42
+ | Priority | `priority` |
43
+ | Component/Module | `tags` |
44
+
45
+ ## Task Creator Output Mapping
46
+
47
+ | Task Field | ClickUp Target |
48
+ | ---------- | -------------- |
49
+ | Title | `name` |
50
+ | Description | `description` |
51
+ | Acceptance criteria | Checklist |
52
+ | Labels (task, qa, component) | `tags` |
53
+ | Links (Fixes #N) | `description` (inline) or custom URL field |
54
+ | Task type | `tags` (e.g. `development`, `qa`, `documentation`) |
55
+
56
+ ## Tag Conventions
57
+
58
+ | QA Source | Suggested Tags |
59
+ | --------- | --------------- |
60
+ | Bug | `bug`, `{component}` |
61
+ | Coverage gap | `test-coverage`, `{component}` |
62
+ | Flaky test | `flaky`, `{component}` |
63
+ | Fix task | `fix`, `development` |
64
+ | QA task | `qa`, `testing` |
65
+ | Documentation | `docs`, `documentation` |
66
+
67
+ ## Resolving Field IDs
68
+
69
+ 1. Use ClickUp API: `GET /api/v2/list/{list_id}/field`
70
+ 2. Or: Workspace Settings → Custom Fields → copy field ID from URL or API
71
+ 3. Store mapping in config or pass via user input for workspace-specific setups