qa-skills 3.0.0 → 3.1.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 +20 -149
  2. package/bin/cli.js +1 -40
  3. package/package.json +23 -26
  4. package/dist/agents/registry.d.ts +0 -5
  5. package/dist/agents/registry.d.ts.map +0 -1
  6. package/dist/agents/registry.js +0 -101
  7. package/dist/agents/registry.js.map +0 -1
  8. package/dist/agents/types.d.ts +0 -9
  9. package/dist/agents/types.d.ts.map +0 -1
  10. package/dist/agents/types.js +0 -2
  11. package/dist/agents/types.js.map +0 -1
  12. package/dist/dependencies.d.ts +0 -21
  13. package/dist/dependencies.d.ts.map +0 -1
  14. package/dist/dependencies.js +0 -125
  15. package/dist/dependencies.js.map +0 -1
  16. package/dist/installer.d.ts +0 -25
  17. package/dist/installer.d.ts.map +0 -1
  18. package/dist/installer.js +0 -437
  19. package/dist/installer.js.map +0 -1
  20. package/dist/scaffold.d.ts +0 -27
  21. package/dist/scaffold.d.ts.map +0 -1
  22. package/dist/scaffold.js +0 -182
  23. package/dist/scaffold.js.map +0 -1
  24. package/skills/qa-accessibility-test-writer/SKILL.md +0 -127
  25. package/skills/qa-accessibility-test-writer/references/axe-core-patterns.md +0 -349
  26. package/skills/qa-accessibility-test-writer/references/best-practices.md +0 -184
  27. package/skills/qa-accessibility-test-writer/references/wcag-tests.md +0 -331
  28. package/skills/qa-api-contract-curator/SKILL.md +0 -104
  29. package/skills/qa-api-contract-curator/references/breaking-changes.md +0 -363
  30. package/skills/qa-api-contract-curator/references/openapi-structure.md +0 -404
  31. package/skills/qa-browser-data-collector/SKILL.md +0 -132
  32. package/skills/qa-browser-data-collector/references/data-collection-checklist.md +0 -91
  33. package/skills/qa-browser-data-collector/references/playwright-mcp-patterns.md +0 -113
  34. package/skills/qa-bug-ticket-creator/SKILL.md +0 -148
  35. package/skills/qa-bug-ticket-creator/references/bug-report-format.md +0 -149
  36. package/skills/qa-bug-ticket-creator/references/severity-guide.md +0 -81
  37. package/skills/qa-bug-ticket-creator/templates/bug-ticket-template.md +0 -39
  38. package/skills/qa-changelog-analyzer/SKILL.md +0 -134
  39. package/skills/qa-changelog-analyzer/references/git-analysis-patterns.md +0 -138
  40. package/skills/qa-changelog-analyzer/references/impact-mapping.md +0 -120
  41. package/skills/qa-clickup-integration/SKILL.md +0 -166
  42. package/skills/qa-clickup-integration/references/api-patterns.md +0 -102
  43. package/skills/qa-clickup-integration/references/field-mapping.md +0 -71
  44. package/skills/qa-codeceptjs-writer/SKILL.md +0 -136
  45. package/skills/qa-codeceptjs-writer/references/best-practices.md +0 -207
  46. package/skills/qa-codeceptjs-writer/references/config.md +0 -255
  47. package/skills/qa-codeceptjs-writer/references/patterns.md +0 -285
  48. package/skills/qa-coverage-analyzer/SKILL.md +0 -166
  49. package/skills/qa-coverage-analyzer/references/best-practices.md +0 -142
  50. package/skills/qa-coverage-analyzer/references/coverage-dimensions.md +0 -155
  51. package/skills/qa-coverage-analyzer/references/tools.md +0 -204
  52. package/skills/qa-cypress-writer/SKILL.md +0 -134
  53. package/skills/qa-cypress-writer/references/assertions.md +0 -121
  54. package/skills/qa-cypress-writer/references/best-practices.md +0 -82
  55. package/skills/qa-cypress-writer/references/config.md +0 -121
  56. package/skills/qa-cypress-writer/references/patterns.md +0 -170
  57. package/skills/qa-data-factory/SKILL.md +0 -126
  58. package/skills/qa-data-factory/references/factory-patterns.md +0 -164
  59. package/skills/qa-data-factory/references/faker-guide.md +0 -131
  60. package/skills/qa-diagram-generator/SKILL.md +0 -125
  61. package/skills/qa-diagram-generator/references/c4-model.md +0 -53
  62. package/skills/qa-diagram-generator/references/charts.md +0 -58
  63. package/skills/qa-diagram-generator/references/class-diagram.md +0 -85
  64. package/skills/qa-diagram-generator/references/er-diagram.md +0 -69
  65. package/skills/qa-diagram-generator/references/flowchart.md +0 -92
  66. package/skills/qa-diagram-generator/references/from-screenshot.md +0 -45
  67. package/skills/qa-diagram-generator/references/gantt.md +0 -49
  68. package/skills/qa-diagram-generator/references/journey.md +0 -50
  69. package/skills/qa-diagram-generator/references/mindmap.md +0 -75
  70. package/skills/qa-diagram-generator/references/sequence.md +0 -69
  71. package/skills/qa-diagram-generator/references/state-diagram.md +0 -56
  72. package/skills/qa-discovery-interview/SKILL.md +0 -182
  73. package/skills/qa-discovery-interview/references/completeness-checklist.md +0 -53
  74. package/skills/qa-discovery-interview/references/conflict-patterns.md +0 -101
  75. package/skills/qa-discovery-interview/references/qa-categories.md +0 -147
  76. package/skills/qa-discovery-interview/templates/qa-brief-template.md +0 -168
  77. package/skills/qa-environment-checker/SKILL.md +0 -142
  78. package/skills/qa-environment-checker/references/dependency-matrix.md +0 -101
  79. package/skills/qa-environment-checker/references/health-checks.md +0 -209
  80. package/skills/qa-environment-checker/templates/env-readiness-template.md +0 -64
  81. package/skills/qa-flaky-detector/SKILL.md +0 -153
  82. package/skills/qa-flaky-detector/references/ci-analysis.md +0 -140
  83. package/skills/qa-flaky-detector/references/flaky-patterns.md +0 -247
  84. package/skills/qa-github-issues-enhanced/SKILL.md +0 -175
  85. package/skills/qa-github-issues-enhanced/references/issue-templates.md +0 -425
  86. package/skills/qa-github-issues-enhanced/references/label-taxonomy.md +0 -130
  87. package/skills/qa-github-issues-enhanced/references/workflow-patterns.md +0 -188
  88. package/skills/qa-httpx-writer/SKILL.md +0 -138
  89. package/skills/qa-httpx-writer/references/assertions.md +0 -195
  90. package/skills/qa-httpx-writer/references/best-practices.md +0 -140
  91. package/skills/qa-httpx-writer/references/config.md +0 -212
  92. package/skills/qa-httpx-writer/references/patterns.md +0 -262
  93. package/skills/qa-jest-writer/SKILL.md +0 -131
  94. package/skills/qa-jest-writer/references/assertions.md +0 -125
  95. package/skills/qa-jest-writer/references/best-practices.md +0 -136
  96. package/skills/qa-jest-writer/references/config.md +0 -134
  97. package/skills/qa-jest-writer/references/patterns.md +0 -172
  98. package/skills/qa-jira-integration/SKILL.md +0 -135
  99. package/skills/qa-jira-integration/references/api-patterns.md +0 -143
  100. package/skills/qa-jira-integration/references/field-mapping.md +0 -79
  101. package/skills/qa-jira-integration/references/xray-integration.md +0 -85
  102. package/skills/qa-jmeter-writer/SKILL.md +0 -171
  103. package/skills/qa-jmeter-writer/references/best-practices.md +0 -157
  104. package/skills/qa-jmeter-writer/references/config.md +0 -204
  105. package/skills/qa-jmeter-writer/references/patterns.md +0 -242
  106. package/skills/qa-junit5-writer/SKILL.md +0 -157
  107. package/skills/qa-junit5-writer/references/assertions.md +0 -118
  108. package/skills/qa-junit5-writer/references/config.md +0 -97
  109. package/skills/qa-junit5-writer/references/patterns.md +0 -162
  110. package/skills/qa-k6-writer/SKILL.md +0 -155
  111. package/skills/qa-k6-writer/references/best-practices.md +0 -236
  112. package/skills/qa-k6-writer/references/config.md +0 -219
  113. package/skills/qa-k6-writer/references/patterns.md +0 -304
  114. package/skills/qa-linear-integration/SKILL.md +0 -137
  115. package/skills/qa-linear-integration/references/api-patterns.md +0 -249
  116. package/skills/qa-linear-integration/references/field-mapping.md +0 -121
  117. package/skills/qa-locust-writer/SKILL.md +0 -151
  118. package/skills/qa-locust-writer/references/best-practices.md +0 -126
  119. package/skills/qa-locust-writer/references/config.md +0 -170
  120. package/skills/qa-locust-writer/references/patterns.md +0 -235
  121. package/skills/qa-manual-test-designer/SKILL.md +0 -145
  122. package/skills/qa-manual-test-designer/references/exploratory-charters.md +0 -138
  123. package/skills/qa-manual-test-designer/references/personas.md +0 -146
  124. package/skills/qa-manual-test-designer/templates/exploratory-charter-template.md +0 -47
  125. package/skills/qa-manual-test-designer/templates/test-case-template.md +0 -31
  126. package/skills/qa-mobile-test-writer/SKILL.md +0 -144
  127. package/skills/qa-mobile-test-writer/references/best-practices.md +0 -214
  128. package/skills/qa-mobile-test-writer/references/config.md +0 -309
  129. package/skills/qa-mobile-test-writer/references/patterns.md +0 -304
  130. package/skills/qa-nfr-analyst/SKILL.md +0 -177
  131. package/skills/qa-nfr-analyst/references/iso-25010-model.md +0 -159
  132. package/skills/qa-nfr-analyst/references/owasp-wstg-baseline.md +0 -202
  133. package/skills/qa-nfr-analyst/references/wcag-checklist.md +0 -184
  134. package/skills/qa-nfr-analyst/templates/owasp-checklist-template.md +0 -89
  135. package/skills/qa-nfr-analyst/templates/wcag-checklist-template.md +0 -48
  136. package/skills/qa-orchestrator/SKILL.md +0 -132
  137. package/skills/qa-orchestrator/references/handoff-chains.md +0 -105
  138. package/skills/qa-orchestrator/references/pipeline-modes.md +0 -115
  139. package/skills/qa-orchestrator/references/scheduler-rules.md +0 -84
  140. package/skills/qa-pact-writer/SKILL.md +0 -133
  141. package/skills/qa-pact-writer/references/best-practices.md +0 -100
  142. package/skills/qa-pact-writer/references/config.md +0 -135
  143. package/skills/qa-pact-writer/references/patterns.md +0 -161
  144. package/skills/qa-plan-creator/SKILL.md +0 -139
  145. package/skills/qa-plan-creator/references/introduction-plan.md +0 -43
  146. package/skills/qa-plan-creator/references/migration-plan.md +0 -44
  147. package/skills/qa-plan-creator/references/onboarding-plan.md +0 -46
  148. package/skills/qa-plan-creator/references/performance-plan.md +0 -44
  149. package/skills/qa-plan-creator/references/regression-plan.md +0 -45
  150. package/skills/qa-plan-creator/references/release-plan.md +0 -45
  151. package/skills/qa-plan-creator/references/sprint-plan.md +0 -44
  152. package/skills/qa-plan-creator/references/test-plan.md +0 -59
  153. package/skills/qa-plan-creator/references/uat-plan.md +0 -43
  154. package/skills/qa-plan-creator/templates/checklist-template.md +0 -36
  155. package/skills/qa-plan-creator/templates/regression-checklist-template.md +0 -49
  156. package/skills/qa-plan-creator/templates/release-checklist-template.md +0 -46
  157. package/skills/qa-plan-creator/templates/test-plan-template.md +0 -74
  158. package/skills/qa-playwright-py-writer/SKILL.md +0 -156
  159. package/skills/qa-playwright-py-writer/references/best-practices.md +0 -194
  160. package/skills/qa-playwright-py-writer/references/config.md +0 -195
  161. package/skills/qa-playwright-py-writer/references/patterns.md +0 -212
  162. package/skills/qa-playwright-ts-writer/SKILL.md +0 -151
  163. package/skills/qa-playwright-ts-writer/references/assertions.md +0 -109
  164. package/skills/qa-playwright-ts-writer/references/best-practices.md +0 -191
  165. package/skills/qa-playwright-ts-writer/references/config.md +0 -144
  166. package/skills/qa-playwright-ts-writer/references/patterns.md +0 -171
  167. package/skills/qa-pytest-writer/SKILL.md +0 -145
  168. package/skills/qa-pytest-writer/references/assertions.md +0 -149
  169. package/skills/qa-pytest-writer/references/best-practices.md +0 -97
  170. package/skills/qa-pytest-writer/references/config.md +0 -176
  171. package/skills/qa-pytest-writer/references/patterns.md +0 -251
  172. package/skills/qa-qase-integration/SKILL.md +0 -149
  173. package/skills/qa-qase-integration/references/api-reference.md +0 -354
  174. package/skills/qa-qase-integration/references/ci-integration.md +0 -196
  175. package/skills/qa-qase-integration/references/field-mapping.md +0 -157
  176. package/skills/qa-requirements-generator/SKILL.md +0 -152
  177. package/skills/qa-requirements-generator/references/iso-29148-structure.md +0 -153
  178. package/skills/qa-requirements-generator/references/requirement-patterns.md +0 -278
  179. package/skills/qa-rest-assured-writer/SKILL.md +0 -137
  180. package/skills/qa-rest-assured-writer/references/best-practices.md +0 -50
  181. package/skills/qa-rest-assured-writer/references/config.md +0 -124
  182. package/skills/qa-rest-assured-writer/references/patterns.md +0 -192
  183. package/skills/qa-risk-analyzer/SKILL.md +0 -158
  184. package/skills/qa-risk-analyzer/references/impact-analysis.md +0 -133
  185. package/skills/qa-risk-analyzer/references/risk-factors.md +0 -123
  186. package/skills/qa-robot-framework-writer/SKILL.md +0 -147
  187. package/skills/qa-robot-framework-writer/references/best-practices.md +0 -249
  188. package/skills/qa-robot-framework-writer/references/config.md +0 -204
  189. package/skills/qa-robot-framework-writer/references/libraries.md +0 -273
  190. package/skills/qa-robot-framework-writer/references/patterns.md +0 -216
  191. package/skills/qa-security-test-writer/SKILL.md +0 -123
  192. package/skills/qa-security-test-writer/references/best-practices.md +0 -155
  193. package/skills/qa-security-test-writer/references/owasp-top10.md +0 -331
  194. package/skills/qa-security-test-writer/references/zap-config.md +0 -258
  195. package/skills/qa-selenium-java-writer/SKILL.md +0 -143
  196. package/skills/qa-selenium-java-writer/references/best-practices.md +0 -59
  197. package/skills/qa-selenium-java-writer/references/config.md +0 -143
  198. package/skills/qa-selenium-java-writer/references/patterns.md +0 -170
  199. package/skills/qa-selenium-py-writer/SKILL.md +0 -150
  200. package/skills/qa-selenium-py-writer/references/best-practices.md +0 -175
  201. package/skills/qa-selenium-py-writer/references/config.md +0 -224
  202. package/skills/qa-selenium-py-writer/references/patterns.md +0 -255
  203. package/skills/qa-shortcut-integration/SKILL.md +0 -143
  204. package/skills/qa-shortcut-integration/references/api-patterns.md +0 -126
  205. package/skills/qa-shortcut-integration/references/field-mapping.md +0 -66
  206. package/skills/qa-spec-auditor/SKILL.md +0 -162
  207. package/skills/qa-spec-auditor/references/audit-checklist.md +0 -144
  208. package/skills/qa-spec-auditor/references/drift-patterns.md +0 -207
  209. package/skills/qa-spec-writer/SKILL.md +0 -143
  210. package/skills/qa-spec-writer/references/gherkin-guide.md +0 -253
  211. package/skills/qa-spec-writer/references/specification-patterns.md +0 -274
  212. package/skills/qa-spring-test-writer/SKILL.md +0 -170
  213. package/skills/qa-spring-test-writer/references/best-practices.md +0 -57
  214. package/skills/qa-spring-test-writer/references/config.md +0 -179
  215. package/skills/qa-spring-test-writer/references/patterns.md +0 -235
  216. package/skills/qa-supertest-writer/SKILL.md +0 -150
  217. package/skills/qa-supertest-writer/references/assertions.md +0 -192
  218. package/skills/qa-supertest-writer/references/best-practices.md +0 -102
  219. package/skills/qa-supertest-writer/references/config.md +0 -166
  220. package/skills/qa-supertest-writer/references/patterns.md +0 -242
  221. package/skills/qa-task-creator/SKILL.md +0 -142
  222. package/skills/qa-task-creator/references/linking-patterns.md +0 -127
  223. package/skills/qa-task-creator/references/task-types.md +0 -169
  224. package/skills/qa-task-creator/templates/task-template.md +0 -24
  225. package/skills/qa-test-doc-compiler/SKILL.md +0 -114
  226. package/skills/qa-test-doc-compiler/references/agile-tailoring.md +0 -220
  227. package/skills/qa-test-doc-compiler/references/iso-29119-3-documents.md +0 -302
  228. package/skills/qa-test-healer/SKILL.md +0 -101
  229. package/skills/qa-test-healer/references/diagnosis-patterns.md +0 -142
  230. package/skills/qa-test-healer/references/fix-strategies.md +0 -177
  231. package/skills/qa-test-reporter/SKILL.md +0 -130
  232. package/skills/qa-test-reporter/references/best-practices.md +0 -162
  233. package/skills/qa-test-reporter/references/iso-29119-reports.md +0 -236
  234. package/skills/qa-test-reporter/references/report-formats.md +0 -287
  235. package/skills/qa-test-reviewer/SKILL.md +0 -142
  236. package/skills/qa-test-reviewer/references/anti-patterns.md +0 -268
  237. package/skills/qa-test-reviewer/references/review-checklist.md +0 -93
  238. package/skills/qa-test-strategy/SKILL.md +0 -133
  239. package/skills/qa-test-strategy/references/entry-exit-criteria.md +0 -176
  240. package/skills/qa-test-strategy/references/risk-matrix.md +0 -102
  241. package/skills/qa-test-strategy/references/testing-types.md +0 -143
  242. package/skills/qa-testcase-from-docs/SKILL.md +0 -161
  243. package/skills/qa-testcase-from-docs/references/test-case-format.md +0 -196
  244. package/skills/qa-testcase-from-docs/references/test-design-techniques.md +0 -126
  245. package/skills/qa-testcase-from-docs/templates/test-case-template.md +0 -31
  246. package/skills/qa-testcase-from-ui/SKILL.md +0 -109
  247. package/skills/qa-testcase-from-ui/references/ui-element-patterns.md +0 -126
  248. package/skills/qa-testcase-from-ui/references/visual-analysis-guide.md +0 -146
  249. package/skills/qa-testcase-from-ui/templates/test-case-template.md +0 -31
  250. package/skills/qa-visual-regression-writer/SKILL.md +0 -175
  251. package/skills/qa-visual-regression-writer/references/best-practices.md +0 -154
  252. package/skills/qa-visual-regression-writer/references/config.md +0 -220
  253. package/skills/qa-visual-regression-writer/references/patterns.md +0 -213
  254. package/skills/qa-vitest-writer/SKILL.md +0 -141
  255. package/skills/qa-vitest-writer/references/assertions.md +0 -105
  256. package/skills/qa-vitest-writer/references/best-practices.md +0 -62
  257. package/skills/qa-vitest-writer/references/config.md +0 -127
  258. package/skills/qa-vitest-writer/references/patterns.md +0 -141
  259. package/skills/qa-webdriverio-writer/SKILL.md +0 -145
  260. package/skills/qa-webdriverio-writer/references/best-practices.md +0 -176
  261. package/skills/qa-webdriverio-writer/references/config.md +0 -240
  262. package/skills/qa-webdriverio-writer/references/patterns.md +0 -269
@@ -1,363 +0,0 @@
1
- # API Breaking Changes Catalog
2
-
3
- Catalog of API changes that break backward compatibility. Use when comparing API versions and generating breaking change reports.
4
-
5
- ## Severity Levels
6
-
7
- | Severity | Description |
8
- | -------- | ----------- |
9
- | **Breaking** | Clients will fail without code changes |
10
- | **Potentially Breaking** | May break depending on client implementation |
11
- | **Additive** | Safe; no client changes required |
12
-
13
- ---
14
-
15
- ## 1. Endpoint Changes
16
-
17
- ### 1.1 Removed Endpoint
18
-
19
- **Change:** Path or HTTP method no longer exists.
20
-
21
- **Example:**
22
- - Before: `GET /api/v1/users/{id}`
23
- - After: Endpoint removed
24
-
25
- **Impact:** Clients calling this endpoint will receive 404.
26
-
27
- **Mitigation:**
28
- - Deprecate first; keep endpoint for at least one major version
29
- - Document migration path (e.g., use `GET /api/v2/users/{id}`)
30
- - Return 410 Gone with migration hint
31
-
32
- ---
33
-
34
- ### 1.2 Renamed Path
35
-
36
- **Change:** Path changed without preserving old path.
37
-
38
- **Example:**
39
- - Before: `GET /api/users`
40
- - After: `GET /api/v2/customers`
41
-
42
- **Impact:** Breaking — old path returns 404.
43
-
44
- **Mitigation:**
45
- - Keep old path as alias, redirect (301/308) to new path
46
- - Or deprecate old path with clear timeline
47
-
48
- ---
49
-
50
- ### 1.3 Changed HTTP Method
51
-
52
- **Change:** Same path now uses different method (e.g., POST → PUT).
53
-
54
- **Example:**
55
- - Before: `POST /api/orders` (create)
56
- - After: `PUT /api/orders` (create or replace)
57
-
58
- **Impact:** Breaking — clients using POST will fail.
59
-
60
- **Mitigation:**
61
- - Support both during transition
62
- - Document method change in release notes
63
-
64
- ---
65
-
66
- ## 2. Request Schema Changes
67
-
68
- ### 2.1 New Required Field
69
-
70
- **Change:** Request body schema gains a new required field.
71
-
72
- **Example:**
73
- - Before: `{ "email": "..." }`
74
- - After: `{ "email": "...", "tenantId": "..." }` (tenantId required)
75
-
76
- **Impact:** Breaking — clients not sending `tenantId` will receive 400.
77
-
78
- **Mitigation:**
79
- - Add field as optional first; make required in next major version
80
- - Provide default value if business logic allows
81
-
82
- ---
83
-
84
- ### 2.2 Removed Optional Field
85
-
86
- **Change:** Optional field removed from request schema.
87
-
88
- **Example:**
89
- - Before: `{ "email": "...", "legacyId": "..." }`
90
- - After: `{ "email": "..." }` (legacyId removed)
91
-
92
- **Impact:** Potentially breaking — clients sending `legacyId` may get 400 if server rejects unknown fields.
93
-
94
- **Mitigation:**
95
- - Ignore unknown fields (allow `additionalProperties`)
96
- - Or deprecate field first, remove later
97
-
98
- ---
99
-
100
- ### 2.3 Type Change
101
-
102
- **Change:** Field type changed (e.g., string → number, string → array).
103
-
104
- **Example:**
105
- - Before: `"tags": "a,b,c"` (string)
106
- - After: `"tags": ["a", "b", "c"]` (array)
107
-
108
- **Impact:** Breaking — clients sending string will fail validation.
109
-
110
- **Mitigation:**
111
- - Accept both formats during transition
112
- - Document migration in changelog
113
-
114
- ---
115
-
116
- ### 2.4 Enum Restriction
117
-
118
- **Change:** Field that was free-form is now an enum; or enum values removed.
119
-
120
- **Example:**
121
- - Before: `"status": "any string"`
122
- - After: `"status": "pending" | "active" | "closed"`
123
-
124
- **Impact:** Breaking — clients sending other values get 400.
125
-
126
- **Mitigation:**
127
- - Add new enum values gradually; avoid removing values
128
- - If removing: deprecate first, return clear error with migration hint
129
-
130
- ---
131
-
132
- ## 3. Response Schema Changes
133
-
134
- ### 3.1 Removed Response Field
135
-
136
- **Change:** Field removed from response body.
137
-
138
- **Example:**
139
- - Before: `{ "id": "...", "legacyCode": "..." }`
140
- - After: `{ "id": "..." }`
141
-
142
- **Impact:** Breaking — clients depending on `legacyCode` will fail.
143
-
144
- **Mitigation:**
145
- - Deprecate field (keep in response but document removal timeline)
146
- - Or add replacement field first, then remove old one
147
-
148
- ---
149
-
150
- ### 3.2 New Required Field in Response
151
-
152
- **Change:** Response schema gains a new required field.
153
-
154
- **Example:**
155
- - Before: `{ "id": "...", "name": "..." }`
156
- - After: `{ "id": "...", "name": "...", "tenantId": "..." }` (tenantId required)
157
-
158
- **Impact:** Breaking — old clients may not handle new field; strict parsers could fail.
159
-
160
- **Mitigation:**
161
- - Add as optional first
162
- - Ensure clients tolerate unknown fields
163
-
164
- ---
165
-
166
- ### 3.3 Type Change in Response
167
-
168
- **Change:** Response field type changed.
169
-
170
- **Example:**
171
- - Before: `"count": 42` (number)
172
- - After: `"count": "42"` (string)
173
-
174
- **Impact:** Breaking — clients expecting number will fail.
175
-
176
- **Mitigation:**
177
- - Avoid type changes; use new field name if necessary
178
-
179
- ---
180
-
181
- ### 3.4 Renamed Field
182
-
183
- **Change:** Field name changed in response.
184
-
185
- **Example:**
186
- - Before: `"user_id"`
187
- - After: `"userId"`
188
-
189
- **Impact:** Breaking — clients using old name will fail.
190
-
191
- **Mitigation:**
192
- - Return both names during transition
193
- - Document in deprecation notice
194
-
195
- ---
196
-
197
- ## 4. Parameter Changes
198
-
199
- ### 4.1 Removed Query/Header Parameter
200
-
201
- **Change:** Parameter no longer accepted.
202
-
203
- **Example:**
204
- - Before: `GET /users?legacyFilter=...`
205
- - After: Parameter ignored or 400
206
-
207
- **Impact:** Breaking if server rejects; additive if ignored.
208
-
209
- **Mitigation:**
210
- - Ignore unknown parameters
211
- - Or deprecate with timeline
212
-
213
- ---
214
-
215
- ### 4.2 New Required Parameter
216
-
217
- **Change:** Path, query, or header parameter now required.
218
-
219
- **Example:**
220
- - Before: `GET /users` (optional `tenantId`)
221
- - After: `GET /users` (required `X-Tenant-ID` header)
222
-
223
- **Impact:** Breaking — clients not sending it get 400.
224
-
225
- **Mitigation:**
226
- - Introduce as optional; make required in major version
227
-
228
- ---
229
-
230
- ### 4.3 Parameter Type or Enum Change
231
-
232
- **Change:** Parameter type or allowed values changed.
233
-
234
- **Example:**
235
- - Before: `?page=1` (integer)
236
- - After: `?page=1` (string "1" required)
237
-
238
- **Impact:** Breaking — depends on client validation.
239
-
240
- **Mitigation:**
241
- - Accept both formats during transition
242
-
243
- ---
244
-
245
- ## 5. Authentication & Authorization
246
-
247
- ### 5.1 New Authentication Required
248
-
249
- **Change:** Endpoint was public; now requires auth.
250
-
251
- **Example:**
252
- - Before: `GET /public/data` (no auth)
253
- - After: `GET /public/data` (Bearer token required)
254
-
255
- **Impact:** Breaking — unauthenticated clients get 401.
256
-
257
- **Mitigation:**
258
- - Introduce new authenticated path; deprecate public path
259
- - Or announce timeline for requiring auth
260
-
261
- ---
262
-
263
- ### 5.2 Changed Auth Scheme
264
-
265
- **Change:** API key → OAuth2, or different header name.
266
-
267
- **Example:**
268
- - Before: `X-API-Key: xxx`
269
- - After: `Authorization: Bearer xxx`
270
-
271
- **Impact:** Breaking — clients using old scheme get 401.
272
-
273
- **Mitigation:**
274
- - Support both during transition
275
- - Document migration steps
276
-
277
- ---
278
-
279
- ### 5.3 Scope/Permission Change
280
-
281
- **Change:** Same endpoint now requires different scope or role.
282
-
283
- **Example:**
284
- - Before: `read` scope
285
- - After: `read:users` scope required
286
-
287
- **Impact:** Breaking — clients with old scope get 403.
288
-
289
- **Mitigation:**
290
- - Expand scope gradually; avoid restricting without notice
291
-
292
- ---
293
-
294
- ## 6. Status Code Changes
295
-
296
- ### 6.1 Success Code Change
297
-
298
- **Change:** 200 → 201, or 201 → 200 for same operation.
299
-
300
- **Example:**
301
- - Before: `POST /users` → 200 OK
302
- - After: `POST /users` → 201 Created
303
-
304
- **Impact:** Potentially breaking — clients checking for 200 may fail.
305
-
306
- **Mitigation:**
307
- - Prefer 201 for creation; document change
308
- - Clients should accept 2xx range when possible
309
-
310
- ---
311
-
312
- ### 6.2 Error Code Change
313
-
314
- **Change:** 400 → 422, 404 → 410, etc.
315
-
316
- **Example:**
317
- - Before: Invalid input → 400
318
- - After: Invalid input → 422 Unprocessable Entity
319
-
320
- **Impact:** Potentially breaking — clients handling 400 specifically may miss new code.
321
-
322
- **Mitigation:**
323
- - Document all error responses in OpenAPI
324
- - Clients should handle error body, not just status code
325
-
326
- ---
327
-
328
- ### 6.3 Removed Status Code
329
-
330
- **Change:** Response that was documented no longer returned.
331
-
332
- **Example:**
333
- - Before: 202 Accepted for async processing
334
- - After: 200 OK (now synchronous)
335
-
336
- **Impact:** Breaking — clients expecting 202 may misinterpret 200.
337
-
338
- **Mitigation:**
339
- - Document behavior change clearly
340
- - Consider keeping 202 with same semantics if possible
341
-
342
- ---
343
-
344
- ## 7. Additive (Non-Breaking) Changes
345
-
346
- | Change | Example |
347
- | ------ | ------- |
348
- | New optional request field | `"metadata": {}` added, optional |
349
- | New optional response field | `"etag": "..."` added to response |
350
- | New endpoint | `GET /api/v2/reports` added |
351
- | New optional parameter | `?includeArchived=true` added |
352
- | New enum value | `"status": "archived"` added to enum |
353
- | New optional header | `X-Request-ID` supported |
354
-
355
- ---
356
-
357
- ## Versioning Strategy Recommendations
358
-
359
- 1. **Semantic versioning:** Major.Minor.Patch — breaking = major bump
360
- 2. **URL versioning:** `/v1/`, `/v2/` — keep v1 until deprecated
361
- 3. **Deprecation window:** Minimum 6–12 months for breaking changes
362
- 4. **Changelog:** Document every change with migration notes
363
- 5. **Sunset headers:** `Sunset: Sat, 01 Jan 2026 00:00:00 GMT` for deprecated endpoints