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
package/README.md CHANGED
@@ -1,168 +1,39 @@
1
1
  # qa-skills
2
2
 
3
- Interactive CLI installer for the **QA Skills Ecosystem**install 56 specialized QA agent skills into Cursor, Claude Code, Codex, Cline, GitHub Copilot, Windsurf, and more.
3
+ CLI for managing QA Skills Ecosystem — add, sync, check, and maintain agent skills across Cursor, Claude Code, Codex, Copilot, Windsurf, and more.
4
4
 
5
- ## Quick Start
6
-
7
- ```bash
8
- npx qa-skills init
9
- ```
10
-
11
- Or install globally:
12
-
13
- ```bash
14
- npm install -g qa-skills
15
- qa-skills init
16
- ```
17
-
18
- Running bare `qa-skills` is equivalent to `qa-skills init`.
19
-
20
- ## Features
21
-
22
- - **Single `init` command** — one entry point for fresh machines and existing setups
23
- - **Skills bundled** — works offline, no need to clone the repo first
24
- - **Interactive prompts** — select skills with descriptions, grouped by category
25
- - **Multi-agent support** — install to 11+ coding agents simultaneously
26
- - **Dependency suggestions** — notifies when selected skills work best with companions
27
- - **Symlink / Copy** — symlink (recommended) for single source of truth, or copy for independence
28
- - **Project / Global scope** — install per-project or user-wide
29
- - **MCP configuration** — optionally configure Playwright, GitHub, Filesystem MCP servers
30
- - **Project structure rule** — maps each skill to an output directory via `AGENTS.md`
31
- - **Non-interactive mode** — CLI flags for CI/CD automation
5
+ This package is a convenience wrapper around [`create-qa-skills`](https://www.npmjs.com/package/create-qa-skills).
32
6
 
33
- ## Agent Support
34
-
35
- | Agent | `--agent` flag | Project Path | Global Path |
36
- |-------|---------------|--------------|-------------|
37
- | Cursor | `cursor` | `.cursor/skills/` | `~/.cursor/skills/` |
38
- | Claude Code | `claude-code` | `.claude/skills/` | `~/.claude/skills/` |
39
- | Codex | `codex` | `.agents/skills/` | `~/.codex/skills/` |
40
- | Cline | `cline` | `.agents/skills/` | `~/.agents/skills/` |
41
- | GitHub Copilot | `github-copilot` | `.agents/skills/` | `~/.copilot/skills/` |
42
- | Windsurf | `windsurf` | `.windsurf/skills/` | `~/.codeium/windsurf/skills/` |
43
- | Roo Code | `roo` | `.roo/skills/` | `~/.roo/skills/` |
44
- | OpenCode | `opencode` | `.agents/skills/` | `~/.config/opencode/skills/` |
45
- | Gemini CLI | `gemini-cli` | `.agents/skills/` | `~/.gemini/skills/` |
46
- | Amp | `amp` | `.agents/skills/` | `~/.config/agents/skills/` |
47
- | VS Code | `vscode` | `.agents/skills/` | — |
48
-
49
- ## CLI Options
50
-
51
- ```
52
- qa-skills init [options]
53
-
54
- Options:
55
- -a, --agent <agents...> Target specific agents (e.g., cursor claude-code)
56
- -s, --skill <skills...> Install specific skills by name
57
- -g, --global Install to user home directory instead of project
58
- --copy Copy files instead of symlinking
59
- -y, --yes Skip all confirmation prompts
60
- -l, --list List available skills without installing
61
- -V, --version Output version number
62
- -h, --help Display help
63
- ```
64
-
65
- ### Examples
7
+ ## Usage
66
8
 
67
9
  ```bash
68
- # Interactive pick skills, agents, options
69
- qa-skills init
70
-
71
- # List available skills
72
- qa-skills init --list
73
-
74
- # Install specific skills to Cursor (non-interactive)
75
- qa-skills init -a cursor -s playwright-ts-writer jest-writer -y
10
+ # Add skills to an existing project
11
+ npx qa-skills add playwright-ts-writer jest-writer
76
12
 
77
- # Install all skills to multiple agents
78
- qa-skills init -a cursor claude-code codex -y
79
-
80
- # Install globally with copy method
81
- qa-skills init -g --copy -a cursor -s orchestrator -y
82
-
83
- # Shorthand (init is the default command)
84
- qa-skills -a cursor -s jest-writer -y
85
- ```
13
+ # Check installation health
14
+ npx qa-skills doctor
86
15
 
87
- ## Skill Categories
16
+ # Sync skills to latest versions
17
+ npx qa-skills sync
88
18
 
89
- | Category | Count | Skills |
90
- |----------|-------|--------|
91
- | Documentation & Planning | 8 | requirements-generator, spec-writer, nfr-analyst, api-contract-curator, plan-creator, diagram-generator, test-strategy, test-doc-compiler |
92
- | Test Case Design | 4 | testcase-from-docs, testcase-from-ui, browser-data-collector, manual-test-designer |
93
- | TypeScript Test Writers | 7 | jest-writer, vitest-writer, playwright-ts-writer, cypress-writer, webdriverio-writer, codeceptjs-writer, supertest-writer |
94
- | Python Test Writers | 5 | pytest-writer, playwright-py-writer, selenium-py-writer, robot-framework-writer, httpx-writer |
95
- | Java Test Writers | 4 | junit5-writer, selenium-java-writer, rest-assured-writer, spring-test-writer |
96
- | Performance & Specialized | 8 | k6-writer, locust-writer, jmeter-writer, security-test-writer, accessibility-test-writer, visual-regression-writer, pact-writer, mobile-test-writer |
97
- | Reporting & Analysis | 6 | test-reporter, coverage-analyzer, bug-ticket-creator, task-creator, risk-analyzer, spec-auditor |
98
- | Orchestration | 1 | orchestrator |
99
- | Support & Maintenance | 7 | test-healer, changelog-analyzer, flaky-detector, test-reviewer, data-factory, environment-checker, discovery-interview |
100
- | Integrations | 6 | qase-integration, github-issues-enhanced, jira-integration, linear-integration, clickup-integration, shortcut-integration |
19
+ # Validate configs and dependencies
20
+ npx qa-skills check
101
21
 
102
- ## Dependency System
103
-
104
- Skills can recommend companions. After selection, the installer checks for missing recommendations:
105
-
106
- ```
107
- Some selected skills work best with additional skills:
108
-
109
- qa-task-creator recommends qa-bug-ticket-creator
110
- Paired mode: auto-create linked fix tasks from bug tickets
111
-
112
- Add recommended skills? (space to toggle, enter to confirm)
113
- [x] qa-bug-ticket-creator
114
- ```
115
-
116
- ## Project Structure Rule
117
-
118
- When enabled, the installer maps each skill to its output directory in two locations:
119
-
120
- 1. **`AGENTS.md`** (project root) — always committed to git, readable by all agents
121
- 2. **`.cursor/rules/qa-project-structure.mdc`** — only written if `.cursor/` is **not** in `.gitignore`
122
-
123
- ```
124
- docs/requirements/ <- qa-requirements-generator
125
- docs/specs/ <- qa-spec-writer
126
- docs/plans/ <- qa-plan-creator, qa-test-strategy
127
- tests/e2e/ <- qa-playwright-ts-writer, qa-cypress-writer, ...
128
- reports/test-runs/ <- qa-test-reporter
129
- ```
130
-
131
- Directories are created on-demand by skills — no empty folders are pre-created.
132
-
133
- ## Gitignore Handling
134
-
135
- Many teams gitignore `.cursor/`, `.windsurf/`, etc. The installer handles this gracefully:
136
-
137
- | Artifact | `.cursor/` gitignored | `.cursor/` committed |
138
- |----------|----------------------|---------------------|
139
- | Skills | Installed locally, each dev runs `qa-skills init` | Committed with project |
140
- | Structure rule | Written to `AGENTS.md` only | Written to both `AGENTS.md` and `.cursor/rules/` |
141
- | MCP config | Installed locally | Committed with project |
142
-
143
- When `.cursor/` is gitignored, the installer shows a notice:
144
- ```
145
- warning .cursor/skills is in .gitignore — each developer must install individually
22
+ # Initialize a new project (same as npm init qa-skills)
23
+ npx qa-skills init
146
24
  ```
147
25
 
148
- ## Source Resolution
149
-
150
- The installer finds skills in this priority order:
151
-
152
- 1. `QA_SKILLS_SOURCE` env var (explicit override)
153
- 2. Monorepo sibling: `../.cursor/skills/` (author developing locally)
154
- 3. Bundled: `skills/` inside the npm package (fresh machine via `npx`)
155
-
156
- ## skills.sh Compatibility
26
+ ## Quick Start
157
27
 
158
- This repo is also compatible with the [skills.sh](https://skills.sh) ecosystem:
28
+ For first-time setup, use the scaffolding command:
159
29
 
160
30
  ```bash
161
- npx skills add owner/qa-skills
31
+ npm init qa-skills
162
32
  ```
163
33
 
164
- The `.cursor/skills/` directory is auto-discovered by the `skills` CLI.
34
+ This runs the interactive installer that sets up skills, agents, MCP config, and project structure.
165
35
 
166
- ## License
36
+ ## Links
167
37
 
168
- GPL-3.0 — see [LICENSE](../LICENSE)
38
+ - [GitHub](https://github.com/eleonorqa/qa-skills)
39
+ - [create-qa-skills on npm](https://www.npmjs.com/package/create-qa-skills)
package/bin/cli.js CHANGED
@@ -1,42 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { program } from 'commander';
4
-
5
- const initCmd = program
6
- .name('qa-skills')
7
- .description('QA Skills Ecosystem — install agent skills into Cursor, Claude Code, Codex, and more')
8
- .version('3.0.0');
9
-
10
- initCmd
11
- .command('init', { isDefault: true })
12
- .description('Initialize QA skills in your project (default command)')
13
- .option('-a, --agent <agents...>', 'Target specific agents (e.g., cursor, claude-code)')
14
- .option('-s, --skill <skills...>', 'Install specific skills by name')
15
- .option('-g, --global', 'Install to user home directory instead of project')
16
- .option('--copy', 'Copy files instead of symlinking')
17
- .option('-y, --yes', 'Skip all confirmation prompts')
18
- .option('-l, --list', 'List available skills without installing')
19
- .action(async (opts) => {
20
- const { listSkills, runInteractive, runNonInteractive } = await import('../dist/installer.js');
21
-
22
- if (opts.list) {
23
- await listSkills();
24
- } else if (opts.yes || (opts.agent && opts.skill)) {
25
- await runNonInteractive({
26
- agents: opts.agent,
27
- skills: opts.skill,
28
- global: opts.global,
29
- copy: opts.copy,
30
- yes: opts.yes,
31
- });
32
- } else {
33
- await runInteractive({
34
- agents: opts.agent,
35
- skills: opts.skill,
36
- global: opts.global,
37
- copy: opts.copy,
38
- });
39
- }
40
- });
41
-
42
- program.parse();
3
+ import 'create-qa-skills/bin/cli.js';
package/package.json CHANGED
@@ -1,40 +1,37 @@
1
1
  {
2
2
  "name": "qa-skills",
3
- "version": "3.0.0",
4
- "description": "Interactive CLI installer for QA Skills Ecosysteminstall skills into Cursor, Claude Code, Codex, Cline, Copilot, Windsurf, and 5+ more agents",
3
+ "version": "3.1.0",
4
+ "description": "QA Skills CLImanage agent skills for Cursor, Claude Code, Codex, Copilot, Windsurf, and more",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "qa-skills": "./bin/cli.js"
8
8
  },
9
9
  "files": [
10
- "bin/",
11
- "dist/",
12
- "skills/",
13
- "README.md"
10
+ "bin/"
14
11
  ],
15
- "scripts": {
16
- "prebuild": "node scripts/bundle-skills.js",
17
- "build": "tsc",
18
- "prepare": "npm run build",
19
- "start": "node bin/cli.js"
20
- },
21
12
  "keywords": [
22
- "qa", "testing", "automation", "skills",
23
- "cursor", "copilot", "claude", "windsurf",
24
- "codex", "cline", "opencode", "gemini",
25
- "agent-skills"
13
+ "qa",
14
+ "testing",
15
+ "automation",
16
+ "skills",
17
+ "cli",
18
+ "cursor",
19
+ "copilot",
20
+ "claude",
21
+ "windsurf",
22
+ "codex"
26
23
  ],
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "https://github.com/AZANIR/qa-skills.git",
27
+ "directory": "packages/qa-skills"
28
+ },
29
+ "homepage": "https://github.com/AZANIR/qa-skills#readme",
30
+ "bugs": {
31
+ "url": "https://github.com/AZANIR/qa-skills/issues"
32
+ },
27
33
  "license": "GPL-3.0-only",
28
34
  "dependencies": {
29
- "@clack/prompts": "^0.11.0",
30
- "chalk": "^5.3.0",
31
- "commander": "^13.0.0",
32
- "fs-extra": "^11.2.0",
33
- "gray-matter": "^4.0.3"
34
- },
35
- "devDependencies": {
36
- "@types/fs-extra": "^11.0.0",
37
- "@types/node": "^22.0.0",
38
- "typescript": "^5.6.0"
35
+ "create-qa-skills": "^3.1.0"
39
36
  }
40
37
  }
@@ -1,5 +0,0 @@
1
- import type { AgentConfig } from './types.js';
2
- export declare const AGENT_REGISTRY: AgentConfig[];
3
- export declare function getAgentById(id: string): AgentConfig | undefined;
4
- export declare function resolveGlobalPath(globalPath: string): string;
5
- //# sourceMappingURL=registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,cAAc,EAAE,WAAW,EAyFvC,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEhE;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAM5D"}
@@ -1,101 +0,0 @@
1
- export const AGENT_REGISTRY = [
2
- {
3
- id: 'cursor',
4
- name: 'Cursor',
5
- projectSkillsPath: '.cursor/skills',
6
- globalSkillsPath: '~/.cursor/skills',
7
- rulesPath: '.cursor/rules',
8
- mcpPath: '.cursor/mcp.json',
9
- },
10
- {
11
- id: 'claude-code',
12
- name: 'Claude Code',
13
- projectSkillsPath: '.claude/skills',
14
- globalSkillsPath: '~/.claude/skills',
15
- rulesPath: null,
16
- mcpPath: null,
17
- },
18
- {
19
- id: 'codex',
20
- name: 'Codex',
21
- projectSkillsPath: '.agents/skills',
22
- globalSkillsPath: '~/.codex/skills',
23
- rulesPath: null,
24
- mcpPath: null,
25
- },
26
- {
27
- id: 'cline',
28
- name: 'Cline',
29
- projectSkillsPath: '.agents/skills',
30
- globalSkillsPath: '~/.agents/skills',
31
- rulesPath: null,
32
- mcpPath: null,
33
- },
34
- {
35
- id: 'github-copilot',
36
- name: 'GitHub Copilot',
37
- projectSkillsPath: '.agents/skills',
38
- globalSkillsPath: '~/.copilot/skills',
39
- rulesPath: null,
40
- mcpPath: null,
41
- },
42
- {
43
- id: 'windsurf',
44
- name: 'Windsurf',
45
- projectSkillsPath: '.windsurf/skills',
46
- globalSkillsPath: '~/.codeium/windsurf/skills',
47
- rulesPath: '.windsurf/rules',
48
- mcpPath: '.windsurf/mcp.json',
49
- },
50
- {
51
- id: 'roo',
52
- name: 'Roo Code',
53
- projectSkillsPath: '.roo/skills',
54
- globalSkillsPath: '~/.roo/skills',
55
- rulesPath: null,
56
- mcpPath: null,
57
- },
58
- {
59
- id: 'opencode',
60
- name: 'OpenCode',
61
- projectSkillsPath: '.agents/skills',
62
- globalSkillsPath: '~/.config/opencode/skills',
63
- rulesPath: null,
64
- mcpPath: null,
65
- },
66
- {
67
- id: 'gemini-cli',
68
- name: 'Gemini CLI',
69
- projectSkillsPath: '.agents/skills',
70
- globalSkillsPath: '~/.gemini/skills',
71
- rulesPath: null,
72
- mcpPath: null,
73
- },
74
- {
75
- id: 'amp',
76
- name: 'Amp',
77
- projectSkillsPath: '.agents/skills',
78
- globalSkillsPath: '~/.config/agents/skills',
79
- rulesPath: null,
80
- mcpPath: null,
81
- },
82
- {
83
- id: 'vscode',
84
- name: 'VS Code',
85
- projectSkillsPath: '.agents/skills',
86
- globalSkillsPath: null,
87
- rulesPath: null,
88
- mcpPath: null,
89
- },
90
- ];
91
- export function getAgentById(id) {
92
- return AGENT_REGISTRY.find((a) => a.id === id);
93
- }
94
- export function resolveGlobalPath(globalPath) {
95
- if (globalPath.startsWith('~/')) {
96
- const home = process.env.HOME || process.env.USERPROFILE || '';
97
- return globalPath.replace('~', home);
98
- }
99
- return globalPath;
100
- }
101
- //# sourceMappingURL=registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- export interface AgentConfig {
2
- readonly id: string;
3
- readonly name: string;
4
- readonly projectSkillsPath: string;
5
- readonly globalSkillsPath: string | null;
6
- readonly rulesPath: string | null;
7
- readonly mcpPath: string | null;
8
- }
9
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":""}
@@ -1,21 +0,0 @@
1
- export interface SkillDependency {
2
- recommended: string[];
3
- reason: string;
4
- }
5
- /**
6
- * Dependency map: skill ID (without qa- prefix) -> recommended companion skills.
7
- * Only lists strong/moderate pairings where skills genuinely enhance each other.
8
- * Pipeline-upstream skills (e.g. every writer recommending testcase-from-docs) are omitted.
9
- */
10
- export declare const SKILL_DEPENDENCIES: Record<string, SkillDependency>;
11
- export interface DependencySuggestion {
12
- requiredBy: string;
13
- skillId: string;
14
- reason: string;
15
- }
16
- /**
17
- * Given a list of selected skill IDs (without qa- prefix),
18
- * returns suggestions for missing recommended companions.
19
- */
20
- export declare function resolveDependencies(selectedIds: string[]): DependencySuggestion[];
21
- //# sourceMappingURL=dependencies.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CA6F9D,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,oBAAoB,EAAE,CAsBjF"}
@@ -1,125 +0,0 @@
1
- /**
2
- * Dependency map: skill ID (without qa- prefix) -> recommended companion skills.
3
- * Only lists strong/moderate pairings where skills genuinely enhance each other.
4
- * Pipeline-upstream skills (e.g. every writer recommending testcase-from-docs) are omitted.
5
- */
6
- export const SKILL_DEPENDENCIES = {
7
- 'requirements-generator': {
8
- recommended: ['discovery-interview'],
9
- reason: 'Auto-delegates when input is insufficient (<3 sentences)',
10
- },
11
- 'spec-writer': {
12
- recommended: ['requirements-generator'],
13
- reason: 'Transforms requirements into detailed specs',
14
- },
15
- 'plan-creator': {
16
- recommended: ['diagram-generator'],
17
- reason: 'Embeds diagrams into plans (Gantt, flowchart)',
18
- },
19
- 'test-strategy': {
20
- recommended: ['diagram-generator', 'risk-analyzer'],
21
- reason: 'Uses diagrams for visualization and risk data for prioritization',
22
- },
23
- 'test-doc-compiler': {
24
- recommended: ['test-reporter'],
25
- reason: 'Aggregates test reports into ISO 29119-3 documents',
26
- },
27
- 'testcase-from-docs': {
28
- recommended: ['requirements-generator', 'spec-writer'],
29
- reason: 'Best results when fed structured requirements/specs',
30
- },
31
- 'testcase-from-ui': {
32
- recommended: ['browser-data-collector'],
33
- reason: 'Browser data collector provides page structure for test case generation',
34
- },
35
- 'task-creator': {
36
- recommended: ['bug-ticket-creator'],
37
- reason: 'Paired mode: auto-create linked fix tasks from bug tickets',
38
- },
39
- 'bug-ticket-creator': {
40
- recommended: ['task-creator', 'github-issues-enhanced'],
41
- reason: 'Create GitHub Issues and linked fix tasks',
42
- },
43
- 'spec-auditor': {
44
- recommended: ['requirements-generator', 'spec-writer'],
45
- reason: 'Compares live behavior against requirement and spec docs',
46
- },
47
- 'risk-analyzer': {
48
- recommended: ['coverage-analyzer'],
49
- reason: 'Uses coverage data in risk formula: Risk = Complexity x ChangeFreq x (1 - Coverage)',
50
- },
51
- 'flaky-detector': {
52
- recommended: ['test-healer'],
53
- reason: 'Test healer auto-fixes issues that flaky detector identifies',
54
- },
55
- 'orchestrator': {
56
- recommended: ['diagram-generator', 'discovery-interview'],
57
- reason: 'Orchestrator chains depend on these embedded services',
58
- },
59
- 'pact-writer': {
60
- recommended: ['api-contract-curator'],
61
- reason: 'Contract tests work best with formalized API contracts',
62
- },
63
- 'supertest': {
64
- recommended: ['api-contract-curator'],
65
- reason: 'API tests benefit from structured OpenAPI contracts',
66
- },
67
- 'httpx': {
68
- recommended: ['api-contract-curator'],
69
- reason: 'API tests benefit from structured OpenAPI contracts',
70
- },
71
- 'rest-assured': {
72
- recommended: ['api-contract-curator'],
73
- reason: 'API tests benefit from structured OpenAPI contracts',
74
- },
75
- 'github-issues-enhanced': {
76
- recommended: ['bug-ticket-creator'],
77
- reason: 'Enhanced GitHub workflows work with structured bug reports',
78
- },
79
- 'jira-integration': {
80
- recommended: ['bug-ticket-creator', 'task-creator'],
81
- reason: 'Syncs bug tickets and tasks to Jira issues',
82
- },
83
- 'linear-integration': {
84
- recommended: ['bug-ticket-creator', 'task-creator'],
85
- reason: 'Syncs bug tickets and tasks to Linear issues',
86
- },
87
- 'clickup-integration': {
88
- recommended: ['bug-ticket-creator', 'task-creator'],
89
- reason: 'Syncs bug tickets and tasks to ClickUp tasks',
90
- },
91
- 'shortcut-integration': {
92
- recommended: ['bug-ticket-creator', 'task-creator'],
93
- reason: 'Syncs bug tickets and tasks to Shortcut stories',
94
- },
95
- 'qase-integration': {
96
- recommended: ['testcase-from-docs', 'test-reporter'],
97
- reason: 'Syncs test cases and results with Qase.io TMS',
98
- },
99
- };
100
- /**
101
- * Given a list of selected skill IDs (without qa- prefix),
102
- * returns suggestions for missing recommended companions.
103
- */
104
- export function resolveDependencies(selectedIds) {
105
- const selectedSet = new Set(selectedIds);
106
- const suggestions = [];
107
- const alreadySuggested = new Set();
108
- for (const id of selectedIds) {
109
- const dep = SKILL_DEPENDENCIES[id];
110
- if (!dep)
111
- continue;
112
- for (const rec of dep.recommended) {
113
- if (!selectedSet.has(rec) && !alreadySuggested.has(rec)) {
114
- suggestions.push({
115
- requiredBy: id,
116
- skillId: rec,
117
- reason: dep.reason,
118
- });
119
- alreadySuggested.add(rec);
120
- }
121
- }
122
- }
123
- return suggestions;
124
- }
125
- //# sourceMappingURL=dependencies.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- /**
2
- * qa-skills v3 — Interactive CLI for installing QA Skills into coding agents.
3
- * Single entry point: `qa-skills init` (or bare `qa-skills`).
4
- * Skills are bundled with the npm package for zero-config usage on fresh machines.
5
- */
6
- export interface SkillInfo {
7
- id: string;
8
- dirName: string;
9
- name: string;
10
- description: string;
11
- category: string;
12
- }
13
- export interface InstallerOptions {
14
- agents?: string[];
15
- skills?: string[];
16
- global?: boolean;
17
- copy?: boolean;
18
- yes?: boolean;
19
- list?: boolean;
20
- }
21
- export declare const SKILL_CATEGORIES: Record<string, string[]>;
22
- export declare function listSkills(): Promise<void>;
23
- export declare function runInteractive(opts?: InstallerOptions): Promise<void>;
24
- export declare function runNonInteractive(opts: InstallerOptions): Promise<void>;
25
- //# sourceMappingURL=installer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA6BH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAID,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAyCrD,CAAC;AA8LF,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAuBhD;AAID,wBAAsB,cAAc,CAAC,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8M/E;AAID,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoD7E"}