gkt-node 3.3.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 (758) hide show
  1. package/README.md +89 -0
  2. package/assets/.agent/brain/agent_index.json +208 -0
  3. package/assets/.agent/brain/project_context.json +31 -0
  4. package/assets/.agent/skills/ab-test-setup/SKILL.md +232 -0
  5. package/assets/.agent/skills/agent-evaluation/SKILL.md +64 -0
  6. package/assets/.agent/skills/agent-memory-mcp/SKILL.md +82 -0
  7. package/assets/.agent/skills/agent-memory-systems/SKILL.md +67 -0
  8. package/assets/.agent/skills/agent-orchestration-multi-agent-optimize/SKILL.md +239 -0
  9. package/assets/.agent/skills/agent-tool-builder/SKILL.md +53 -0
  10. package/assets/.agent/skills/ai-agents-architect/SKILL.md +90 -0
  11. package/assets/.agent/skills/ai-engineer/SKILL.md +171 -0
  12. package/assets/.agent/skills/ai-product/SKILL.md +54 -0
  13. package/assets/.agent/skills/ai-wrapper-product/SKILL.md +273 -0
  14. package/assets/.agent/skills/airflow-dag-patterns/SKILL.md +41 -0
  15. package/assets/.agent/skills/airflow-dag-patterns/resources/implementation-playbook.md +509 -0
  16. package/assets/.agent/skills/airtable-automation/SKILL.md +170 -0
  17. package/assets/.agent/skills/analytics-tracking/SKILL.md +404 -0
  18. package/assets/.agent/skills/api-design-principles/SKILL.md +37 -0
  19. package/assets/.agent/skills/api-design-principles/assets/__pycache__/rest-api-template.cpython-314.pyc +0 -0
  20. package/assets/.agent/skills/api-design-principles/assets/api-design-checklist.md +155 -0
  21. package/assets/.agent/skills/api-design-principles/assets/rest-api-template.py +182 -0
  22. package/assets/.agent/skills/api-design-principles/references/graphql-schema-design.md +583 -0
  23. package/assets/.agent/skills/api-design-principles/references/rest-best-practices.md +408 -0
  24. package/assets/.agent/skills/api-design-principles/resources/implementation-playbook.md +513 -0
  25. package/assets/.agent/skills/api-designer/SKILL.md +22 -0
  26. package/assets/.agent/skills/api-designer/data/api_patterns.json +107 -0
  27. package/assets/.agent/skills/api-designer/scripts/__pycache__/api_gen.cpython-314.pyc +0 -0
  28. package/assets/.agent/skills/api-designer/scripts/api_gen.py +80 -0
  29. package/assets/.agent/skills/api-documentation-generator/SKILL.md +484 -0
  30. package/assets/.agent/skills/api-documenter/SKILL.md +184 -0
  31. package/assets/.agent/skills/api-fuzzing-bug-bounty/SKILL.md +433 -0
  32. package/assets/.agent/skills/api-patterns/SKILL.md +81 -0
  33. package/assets/.agent/skills/api-patterns/api-style.md +42 -0
  34. package/assets/.agent/skills/api-patterns/auth.md +24 -0
  35. package/assets/.agent/skills/api-patterns/documentation.md +26 -0
  36. package/assets/.agent/skills/api-patterns/graphql.md +41 -0
  37. package/assets/.agent/skills/api-patterns/rate-limiting.md +31 -0
  38. package/assets/.agent/skills/api-patterns/response.md +37 -0
  39. package/assets/.agent/skills/api-patterns/rest.md +40 -0
  40. package/assets/.agent/skills/api-patterns/scripts/__pycache__/api_validator.cpython-314.pyc +0 -0
  41. package/assets/.agent/skills/api-patterns/scripts/api_validator.py +211 -0
  42. package/assets/.agent/skills/api-patterns/security-testing.md +122 -0
  43. package/assets/.agent/skills/api-patterns/trpc.md +41 -0
  44. package/assets/.agent/skills/api-patterns/versioning.md +22 -0
  45. package/assets/.agent/skills/api-security-best-practices/SKILL.md +907 -0
  46. package/assets/.agent/skills/api-testing-observability-api-mock/SKILL.md +46 -0
  47. package/assets/.agent/skills/api-testing-observability-api-mock/resources/implementation-playbook.md +1327 -0
  48. package/assets/.agent/skills/app-store-optimization/HOW_TO_USE.md +281 -0
  49. package/assets/.agent/skills/app-store-optimization/README.md +430 -0
  50. package/assets/.agent/skills/app-store-optimization/SKILL.md +403 -0
  51. package/assets/.agent/skills/app-store-optimization/__pycache__/ab_test_planner.cpython-314.pyc +0 -0
  52. package/assets/.agent/skills/app-store-optimization/__pycache__/aso_scorer.cpython-314.pyc +0 -0
  53. package/assets/.agent/skills/app-store-optimization/__pycache__/competitor_analyzer.cpython-314.pyc +0 -0
  54. package/assets/.agent/skills/app-store-optimization/__pycache__/keyword_analyzer.cpython-314.pyc +0 -0
  55. package/assets/.agent/skills/app-store-optimization/__pycache__/launch_checklist.cpython-314.pyc +0 -0
  56. package/assets/.agent/skills/app-store-optimization/__pycache__/localization_helper.cpython-314.pyc +0 -0
  57. package/assets/.agent/skills/app-store-optimization/__pycache__/metadata_optimizer.cpython-314.pyc +0 -0
  58. package/assets/.agent/skills/app-store-optimization/__pycache__/review_analyzer.cpython-314.pyc +0 -0
  59. package/assets/.agent/skills/app-store-optimization/ab_test_planner.py +662 -0
  60. package/assets/.agent/skills/app-store-optimization/aso_scorer.py +482 -0
  61. package/assets/.agent/skills/app-store-optimization/competitor_analyzer.py +577 -0
  62. package/assets/.agent/skills/app-store-optimization/expected_output.json +170 -0
  63. package/assets/.agent/skills/app-store-optimization/keyword_analyzer.py +406 -0
  64. package/assets/.agent/skills/app-store-optimization/launch_checklist.py +739 -0
  65. package/assets/.agent/skills/app-store-optimization/localization_helper.py +588 -0
  66. package/assets/.agent/skills/app-store-optimization/metadata_optimizer.py +581 -0
  67. package/assets/.agent/skills/app-store-optimization/review_analyzer.py +714 -0
  68. package/assets/.agent/skills/app-store-optimization/sample_input.json +30 -0
  69. package/assets/.agent/skills/architecture-auditor/SKILL.md +35 -0
  70. package/assets/.agent/skills/architecture-auditor/data/standards.json +45 -0
  71. package/assets/.agent/skills/architecture-auditor/scripts/__pycache__/auditor.cpython-314.pyc +0 -0
  72. package/assets/.agent/skills/architecture-auditor/scripts/auditor.py +69 -0
  73. package/assets/.agent/skills/architecture-decision-records/SKILL.md +441 -0
  74. package/assets/.agent/skills/architecture-patterns/SKILL.md +37 -0
  75. package/assets/.agent/skills/architecture-patterns/resources/implementation-playbook.md +479 -0
  76. package/assets/.agent/skills/asana-automation/SKILL.md +171 -0
  77. package/assets/.agent/skills/attack-tree-construction/SKILL.md +38 -0
  78. package/assets/.agent/skills/attack-tree-construction/resources/implementation-playbook.md +671 -0
  79. package/assets/.agent/skills/auth-implementation-patterns/SKILL.md +39 -0
  80. package/assets/.agent/skills/auth-implementation-patterns/resources/implementation-playbook.md +618 -0
  81. package/assets/.agent/skills/autonomous-agent-patterns/SKILL.md +761 -0
  82. package/assets/.agent/skills/aws-penetration-testing/SKILL.md +405 -0
  83. package/assets/.agent/skills/aws-penetration-testing/references/advanced-aws-pentesting.md +469 -0
  84. package/assets/.agent/skills/aws-serverless/SKILL.md +323 -0
  85. package/assets/.agent/skills/backend-architect/SKILL.md +333 -0
  86. package/assets/.agent/skills/billing-automation/SKILL.md +42 -0
  87. package/assets/.agent/skills/billing-automation/resources/implementation-playbook.md +544 -0
  88. package/assets/.agent/skills/broken-authentication/SKILL.md +476 -0
  89. package/assets/.agent/skills/bullmq-specialist/SKILL.md +57 -0
  90. package/assets/.agent/skills/business-analyst/SKILL.md +182 -0
  91. package/assets/.agent/skills/cc-skill-backend-patterns/SKILL.md +584 -0
  92. package/assets/.agent/skills/cc-skill-clickhouse-io/SKILL.md +431 -0
  93. package/assets/.agent/skills/cc-skill-coding-standards/SKILL.md +522 -0
  94. package/assets/.agent/skills/cc-skill-continuous-learning/SKILL.md +10 -0
  95. package/assets/.agent/skills/cc-skill-continuous-learning/config.json +18 -0
  96. package/assets/.agent/skills/cc-skill-continuous-learning/evaluate-session.sh +60 -0
  97. package/assets/.agent/skills/cc-skill-frontend-patterns/SKILL.md +633 -0
  98. package/assets/.agent/skills/cc-skill-project-guidelines-example/SKILL.md +352 -0
  99. package/assets/.agent/skills/cc-skill-security-review/SKILL.md +496 -0
  100. package/assets/.agent/skills/cc-skill-strategic-compact/SKILL.md +10 -0
  101. package/assets/.agent/skills/cc-skill-strategic-compact/suggest-compact.sh +52 -0
  102. package/assets/.agent/skills/ci-cd-setup/SKILL.md +14 -0
  103. package/assets/.agent/skills/ci-cd-setup/data/pipeline_templates.json +42 -0
  104. package/assets/.agent/skills/ci-cd-setup/scripts/__pycache__/ci_gen.cpython-314.pyc +0 -0
  105. package/assets/.agent/skills/ci-cd-setup/scripts/ci_gen.py +75 -0
  106. package/assets/.agent/skills/claude-code-guide/SKILL.md +68 -0
  107. package/assets/.agent/skills/clean-code/SKILL.md +94 -0
  108. package/assets/.agent/skills/clickup-automation/SKILL.md +234 -0
  109. package/assets/.agent/skills/cloud-architect/SKILL.md +135 -0
  110. package/assets/.agent/skills/cloud-penetration-testing/SKILL.md +501 -0
  111. package/assets/.agent/skills/cloud-penetration-testing/references/advanced-cloud-scripts.md +318 -0
  112. package/assets/.agent/skills/code-reviewer/SKILL.md +31 -0
  113. package/assets/.agent/skills/code-reviewer/data/review_rules.json +172 -0
  114. package/assets/.agent/skills/code-reviewer/scripts/__pycache__/reviewer.cpython-314.pyc +0 -0
  115. package/assets/.agent/skills/code-reviewer/scripts/reviewer.py +192 -0
  116. package/assets/.agent/skills/codebase-navigator/SKILL.md +37 -0
  117. package/assets/.agent/skills/codebase-navigator/data/codebase_index.json +577 -0
  118. package/assets/.agent/skills/codebase-navigator/scripts/__pycache__/navigator.cpython-314.pyc +0 -0
  119. package/assets/.agent/skills/codebase-navigator/scripts/navigator.py +240 -0
  120. package/assets/.agent/skills/color-palette-generator/SKILL.md +26 -0
  121. package/assets/.agent/skills/color-palette-generator/data/palettes.json +37 -0
  122. package/assets/.agent/skills/color-palette-generator/scripts/__pycache__/palette.cpython-314.pyc +0 -0
  123. package/assets/.agent/skills/color-palette-generator/scripts/palette.py +57 -0
  124. package/assets/.agent/skills/competitive-landscape/SKILL.md +34 -0
  125. package/assets/.agent/skills/competitive-landscape/resources/implementation-playbook.md +494 -0
  126. package/assets/.agent/skills/competitor-alternatives/SKILL.md +750 -0
  127. package/assets/.agent/skills/computer-use-agents/SKILL.md +315 -0
  128. package/assets/.agent/skills/content-creator/SKILL.md +248 -0
  129. package/assets/.agent/skills/content-creator/assets/content_calendar_template.md +99 -0
  130. package/assets/.agent/skills/content-creator/references/brand_guidelines.md +199 -0
  131. package/assets/.agent/skills/content-creator/references/content_frameworks.md +534 -0
  132. package/assets/.agent/skills/content-creator/references/social_media_optimization.md +317 -0
  133. package/assets/.agent/skills/content-creator/scripts/__pycache__/brand_voice_analyzer.cpython-314.pyc +0 -0
  134. package/assets/.agent/skills/content-creator/scripts/__pycache__/seo_optimizer.cpython-314.pyc +0 -0
  135. package/assets/.agent/skills/content-creator/scripts/brand_voice_analyzer.py +185 -0
  136. package/assets/.agent/skills/content-creator/scripts/seo_optimizer.py +419 -0
  137. package/assets/.agent/skills/content-marketer/SKILL.md +170 -0
  138. package/assets/.agent/skills/context-compression/SKILL.md +266 -0
  139. package/assets/.agent/skills/context-degradation/SKILL.md +238 -0
  140. package/assets/.agent/skills/context-driven-development/SKILL.md +400 -0
  141. package/assets/.agent/skills/context-fundamentals/SKILL.md +192 -0
  142. package/assets/.agent/skills/context-manager/SKILL.md +26 -0
  143. package/assets/.agent/skills/context-manager/scripts/__pycache__/minify.cpython-314.pyc +0 -0
  144. package/assets/.agent/skills/context-manager/scripts/minify.py +82 -0
  145. package/assets/.agent/skills/context-optimization/SKILL.md +186 -0
  146. package/assets/.agent/skills/context-router/SKILL.md +42 -0
  147. package/assets/.agent/skills/context-router/scripts/__pycache__/context_router.cpython-314.pyc +0 -0
  148. package/assets/.agent/skills/context-router/scripts/context_router.py +185 -0
  149. package/assets/.agent/skills/context-window-management/SKILL.md +53 -0
  150. package/assets/.agent/skills/conversation-memory/SKILL.md +61 -0
  151. package/assets/.agent/skills/copywriting/SKILL.md +225 -0
  152. package/assets/.agent/skills/cost-optimization/SKILL.md +286 -0
  153. package/assets/.agent/skills/cqrs-implementation/SKILL.md +35 -0
  154. package/assets/.agent/skills/cqrs-implementation/resources/implementation-playbook.md +540 -0
  155. package/assets/.agent/skills/crewai/SKILL.md +243 -0
  156. package/assets/.agent/skills/daily-news-report/SKILL.md +356 -0
  157. package/assets/.agent/skills/daily-news-report/cache.json +41 -0
  158. package/assets/.agent/skills/daily-news-report/sources.json +183 -0
  159. package/assets/.agent/skills/data-engineer/SKILL.md +224 -0
  160. package/assets/.agent/skills/data-engineering-data-driven-feature/SKILL.md +182 -0
  161. package/assets/.agent/skills/data-engineering-data-pipeline/SKILL.md +201 -0
  162. package/assets/.agent/skills/data-quality-frameworks/SKILL.md +40 -0
  163. package/assets/.agent/skills/data-quality-frameworks/resources/implementation-playbook.md +573 -0
  164. package/assets/.agent/skills/data-scientist/SKILL.md +199 -0
  165. package/assets/.agent/skills/data-storytelling/SKILL.md +465 -0
  166. package/assets/.agent/skills/database-admin/SKILL.md +165 -0
  167. package/assets/.agent/skills/database-architect/SKILL.md +268 -0
  168. package/assets/.agent/skills/database-cloud-optimization-cost-optimize/SKILL.md +44 -0
  169. package/assets/.agent/skills/database-cloud-optimization-cost-optimize/resources/implementation-playbook.md +1441 -0
  170. package/assets/.agent/skills/database-design/SKILL.md +52 -0
  171. package/assets/.agent/skills/database-design/database-selection.md +43 -0
  172. package/assets/.agent/skills/database-design/indexing.md +39 -0
  173. package/assets/.agent/skills/database-design/migrations.md +48 -0
  174. package/assets/.agent/skills/database-design/optimization.md +36 -0
  175. package/assets/.agent/skills/database-design/orm-selection.md +30 -0
  176. package/assets/.agent/skills/database-design/schema-design.md +56 -0
  177. package/assets/.agent/skills/database-design/scripts/__pycache__/schema_validator.cpython-314.pyc +0 -0
  178. package/assets/.agent/skills/database-design/scripts/schema_validator.py +172 -0
  179. package/assets/.agent/skills/database-migration/SKILL.md +436 -0
  180. package/assets/.agent/skills/database-migrations-migration-observability/SKILL.md +420 -0
  181. package/assets/.agent/skills/database-migrations-sql-migrations/SKILL.md +53 -0
  182. package/assets/.agent/skills/database-migrations-sql-migrations/resources/implementation-playbook.md +499 -0
  183. package/assets/.agent/skills/database-optimizer/SKILL.md +167 -0
  184. package/assets/.agent/skills/datadog-automation/SKILL.md +235 -0
  185. package/assets/.agent/skills/db-designer/SKILL.md +22 -0
  186. package/assets/.agent/skills/db-designer/data/schema_patterns.json +156 -0
  187. package/assets/.agent/skills/db-designer/scripts/__pycache__/sql_gen.cpython-314.pyc +0 -0
  188. package/assets/.agent/skills/db-designer/scripts/sql_gen.py +90 -0
  189. package/assets/.agent/skills/dbt-transformation-patterns/SKILL.md +34 -0
  190. package/assets/.agent/skills/dbt-transformation-patterns/resources/implementation-playbook.md +547 -0
  191. package/assets/.agent/skills/debugger/SKILL.md +49 -0
  192. package/assets/.agent/skills/debugging-strategies/SKILL.md +34 -0
  193. package/assets/.agent/skills/debugging-strategies/resources/implementation-playbook.md +511 -0
  194. package/assets/.agent/skills/deep-research/SKILL.md +114 -0
  195. package/assets/.agent/skills/deployment-engineer/SKILL.md +170 -0
  196. package/assets/.agent/skills/deployment-pipeline-design/SKILL.md +371 -0
  197. package/assets/.agent/skills/deployment-procedures/SKILL.md +241 -0
  198. package/assets/.agent/skills/diff-applier/SKILL.md +34 -0
  199. package/assets/.agent/skills/diff-applier/scripts/__pycache__/apply_patch.cpython-314.pyc +0 -0
  200. package/assets/.agent/skills/diff-applier/scripts/apply_patch.py +137 -0
  201. package/assets/.agent/skills/discord-automation/SKILL.md +187 -0
  202. package/assets/.agent/skills/distributed-debugging-debug-trace/SKILL.md +44 -0
  203. package/assets/.agent/skills/distributed-debugging-debug-trace/resources/implementation-playbook.md +1307 -0
  204. package/assets/.agent/skills/distributed-tracing/SKILL.md +450 -0
  205. package/assets/.agent/skills/doc-generator/SKILL.md +14 -0
  206. package/assets/.agent/skills/doc-generator/data/doc_templates.json +40 -0
  207. package/assets/.agent/skills/doc-generator/scripts/__pycache__/doc_gen.cpython-314.pyc +0 -0
  208. package/assets/.agent/skills/doc-generator/scripts/doc_gen.py +48 -0
  209. package/assets/.agent/skills/docker-expert/SKILL.md +409 -0
  210. package/assets/.agent/skills/docker-wizard/SKILL.md +14 -0
  211. package/assets/.agent/skills/docker-wizard/data/docker_templates.json +93 -0
  212. package/assets/.agent/skills/docker-wizard/scripts/__pycache__/docker_gen.cpython-314.pyc +0 -0
  213. package/assets/.agent/skills/docker-wizard/scripts/docker_gen.py +86 -0
  214. package/assets/.agent/skills/docs-architect/SKILL.md +98 -0
  215. package/assets/.agent/skills/e2e-testing-patterns/SKILL.md +41 -0
  216. package/assets/.agent/skills/e2e-testing-patterns/resources/implementation-playbook.md +531 -0
  217. package/assets/.agent/skills/email-sequence/SKILL.md +925 -0
  218. package/assets/.agent/skills/embedding-strategies/SKILL.md +491 -0
  219. package/assets/.agent/skills/employment-contract-templates/SKILL.md +39 -0
  220. package/assets/.agent/skills/employment-contract-templates/resources/implementation-playbook.md +493 -0
  221. package/assets/.agent/skills/env-manager/SKILL.md +33 -0
  222. package/assets/.agent/skills/env-manager/scripts/__pycache__/env_scanner.cpython-314.pyc +0 -0
  223. package/assets/.agent/skills/env-manager/scripts/env_scanner.py +181 -0
  224. package/assets/.agent/skills/error-detective/SKILL.md +53 -0
  225. package/assets/.agent/skills/error-diagnostics-error-analysis/SKILL.md +47 -0
  226. package/assets/.agent/skills/error-diagnostics-error-analysis/resources/implementation-playbook.md +1143 -0
  227. package/assets/.agent/skills/error-diagnostics-error-trace/SKILL.md +48 -0
  228. package/assets/.agent/skills/error-diagnostics-error-trace/resources/implementation-playbook.md +1371 -0
  229. package/assets/.agent/skills/error-handling-patterns/SKILL.md +35 -0
  230. package/assets/.agent/skills/error-handling-patterns/resources/implementation-playbook.md +635 -0
  231. package/assets/.agent/skills/ethical-hacking-methodology/SKILL.md +466 -0
  232. package/assets/.agent/skills/event-sourcing-architect/SKILL.md +58 -0
  233. package/assets/.agent/skills/event-store-design/SKILL.md +449 -0
  234. package/assets/.agent/skills/exa-search/SKILL.md +36 -0
  235. package/assets/.agent/skills/fastapi-pro/SKILL.md +192 -0
  236. package/assets/.agent/skills/fastapi-router-py/SKILL.md +52 -0
  237. package/assets/.agent/skills/fastapi-templates/SKILL.md +32 -0
  238. package/assets/.agent/skills/fastapi-templates/resources/implementation-playbook.md +566 -0
  239. package/assets/.agent/skills/free-tool-strategy/SKILL.md +576 -0
  240. package/assets/.agent/skills/freshdesk-automation/SKILL.md +219 -0
  241. package/assets/.agent/skills/frontend-developer/SKILL.md +171 -0
  242. package/assets/.agent/skills/gcp-cloud-run/SKILL.md +288 -0
  243. package/assets/.agent/skills/gemini-api-dev/SKILL.md +127 -0
  244. package/assets/.agent/skills/geo-fundamentals/SKILL.md +156 -0
  245. package/assets/.agent/skills/geo-fundamentals/scripts/__pycache__/geo_checker.cpython-314.pyc +0 -0
  246. package/assets/.agent/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
  247. package/assets/.agent/skills/git-advanced-workflows/SKILL.md +412 -0
  248. package/assets/.agent/skills/git-manager/SKILL.md +22 -0
  249. package/assets/.agent/skills/git-manager/data/git_conventions.json +84 -0
  250. package/assets/.agent/skills/git-manager/scripts/__pycache__/commit.cpython-314.pyc +0 -0
  251. package/assets/.agent/skills/git-manager/scripts/__pycache__/log.cpython-314.pyc +0 -0
  252. package/assets/.agent/skills/git-manager/scripts/commit.py +70 -0
  253. package/assets/.agent/skills/git-manager/scripts/log.py +29 -0
  254. package/assets/.agent/skills/github-actions-templates/SKILL.md +345 -0
  255. package/assets/.agent/skills/github-automation/SKILL.md +227 -0
  256. package/assets/.agent/skills/gitlab-ci-patterns/SKILL.md +283 -0
  257. package/assets/.agent/skills/gitops-workflow/SKILL.md +303 -0
  258. package/assets/.agent/skills/gitops-workflow/references/argocd-setup.md +134 -0
  259. package/assets/.agent/skills/gitops-workflow/references/sync-policies.md +131 -0
  260. package/assets/.agent/skills/gmail-automation/SKILL.md +270 -0
  261. package/assets/.agent/skills/google-calendar-automation/SKILL.md +176 -0
  262. package/assets/.agent/skills/google-drive-automation/SKILL.md +193 -0
  263. package/assets/.agent/skills/googlesheets-automation/SKILL.md +197 -0
  264. package/assets/.agent/skills/grafana-dashboards/SKILL.md +381 -0
  265. package/assets/.agent/skills/graphql/SKILL.md +68 -0
  266. package/assets/.agent/skills/graphql-architect/SKILL.md +182 -0
  267. package/assets/.agent/skills/helm-chart-scaffolding/SKILL.md +34 -0
  268. package/assets/.agent/skills/helm-chart-scaffolding/assets/Chart.yaml.template +42 -0
  269. package/assets/.agent/skills/helm-chart-scaffolding/assets/values.yaml.template +185 -0
  270. package/assets/.agent/skills/helm-chart-scaffolding/references/chart-structure.md +500 -0
  271. package/assets/.agent/skills/helm-chart-scaffolding/resources/implementation-playbook.md +543 -0
  272. package/assets/.agent/skills/helm-chart-scaffolding/scripts/validate-chart.sh +244 -0
  273. package/assets/.agent/skills/hr-pro/SKILL.md +126 -0
  274. package/assets/.agent/skills/hubspot-automation/SKILL.md +178 -0
  275. package/assets/.agent/skills/hubspot-integration/SKILL.md +42 -0
  276. package/assets/.agent/skills/hybrid-search-implementation/SKILL.md +32 -0
  277. package/assets/.agent/skills/hybrid-search-implementation/resources/implementation-playbook.md +567 -0
  278. package/assets/.agent/skills/incident-responder/SKILL.md +213 -0
  279. package/assets/.agent/skills/incident-response-incident-response/SKILL.md +168 -0
  280. package/assets/.agent/skills/incident-response-smart-fix/SKILL.md +29 -0
  281. package/assets/.agent/skills/incident-response-smart-fix/resources/implementation-playbook.md +838 -0
  282. package/assets/.agent/skills/incident-runbook-templates/SKILL.md +395 -0
  283. package/assets/.agent/skills/infinite-gratitude/SKILL.md +26 -0
  284. package/assets/.agent/skills/inngest/SKILL.md +55 -0
  285. package/assets/.agent/skills/instagram-automation/SKILL.md +192 -0
  286. package/assets/.agent/skills/intercom-automation/SKILL.md +248 -0
  287. package/assets/.agent/skills/javascript-mastery/SKILL.md +645 -0
  288. package/assets/.agent/skills/javascript-testing-patterns/SKILL.md +35 -0
  289. package/assets/.agent/skills/javascript-testing-patterns/resources/implementation-playbook.md +1024 -0
  290. package/assets/.agent/skills/jira-automation/SKILL.md +185 -0
  291. package/assets/.agent/skills/k8s-manifest-generator/SKILL.md +35 -0
  292. package/assets/.agent/skills/k8s-manifest-generator/assets/configmap-template.yaml +296 -0
  293. package/assets/.agent/skills/k8s-manifest-generator/assets/deployment-template.yaml +203 -0
  294. package/assets/.agent/skills/k8s-manifest-generator/assets/service-template.yaml +171 -0
  295. package/assets/.agent/skills/k8s-manifest-generator/references/deployment-spec.md +753 -0
  296. package/assets/.agent/skills/k8s-manifest-generator/references/service-spec.md +724 -0
  297. package/assets/.agent/skills/k8s-manifest-generator/resources/implementation-playbook.md +510 -0
  298. package/assets/.agent/skills/k8s-security-policies/SKILL.md +346 -0
  299. package/assets/.agent/skills/k8s-security-policies/assets/network-policy-template.yaml +177 -0
  300. package/assets/.agent/skills/k8s-security-policies/references/rbac-patterns.md +187 -0
  301. package/assets/.agent/skills/knowledge-guide/SKILL.md +34 -0
  302. package/assets/.agent/skills/knowledge-guide/scripts/__pycache__/note_taker.cpython-314.pyc +0 -0
  303. package/assets/.agent/skills/knowledge-guide/scripts/note_taker.py +50 -0
  304. package/assets/.agent/skills/kpi-dashboard-design/SKILL.md +440 -0
  305. package/assets/.agent/skills/kubernetes-architect/SKILL.md +170 -0
  306. package/assets/.agent/skills/langchain-architecture/SKILL.md +350 -0
  307. package/assets/.agent/skills/langfuse/SKILL.md +238 -0
  308. package/assets/.agent/skills/langgraph/SKILL.md +287 -0
  309. package/assets/.agent/skills/launch-strategy/SKILL.md +344 -0
  310. package/assets/.agent/skills/legal-advisor/SKILL.md +70 -0
  311. package/assets/.agent/skills/linkedin-automation/SKILL.md +175 -0
  312. package/assets/.agent/skills/linux-privilege-escalation/SKILL.md +504 -0
  313. package/assets/.agent/skills/llm-app-patterns/SKILL.md +760 -0
  314. package/assets/.agent/skills/llm-evaluation/SKILL.md +483 -0
  315. package/assets/.agent/skills/mailchimp-automation/SKILL.md +231 -0
  316. package/assets/.agent/skills/market-sizing-analysis/SKILL.md +425 -0
  317. package/assets/.agent/skills/market-sizing-analysis/examples/saas-market-sizing.md +349 -0
  318. package/assets/.agent/skills/market-sizing-analysis/references/data-sources.md +360 -0
  319. package/assets/.agent/skills/marketing-ideas/SKILL.md +221 -0
  320. package/assets/.agent/skills/marketing-psychology/SKILL.md +255 -0
  321. package/assets/.agent/skills/mcp-builder/LICENSE.txt +202 -0
  322. package/assets/.agent/skills/mcp-builder/SKILL.md +236 -0
  323. package/assets/.agent/skills/mcp-builder/reference/evaluation.md +602 -0
  324. package/assets/.agent/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
  325. package/assets/.agent/skills/mcp-builder/reference/node_mcp_server.md +970 -0
  326. package/assets/.agent/skills/mcp-builder/reference/python_mcp_server.md +719 -0
  327. package/assets/.agent/skills/mcp-builder/scripts/__pycache__/connections.cpython-314.pyc +0 -0
  328. package/assets/.agent/skills/mcp-builder/scripts/__pycache__/evaluation.cpython-314.pyc +0 -0
  329. package/assets/.agent/skills/mcp-builder/scripts/connections.py +151 -0
  330. package/assets/.agent/skills/mcp-builder/scripts/evaluation.py +373 -0
  331. package/assets/.agent/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  332. package/assets/.agent/skills/mcp-builder/scripts/requirements.txt +2 -0
  333. package/assets/.agent/skills/mermaid-expert/SKILL.md +59 -0
  334. package/assets/.agent/skills/meta-thinker/SKILL.md +41 -0
  335. package/assets/.agent/skills/meta-thinker/data/brainstorm_frameworks.json +614 -0
  336. package/assets/.agent/skills/meta-thinker/data/feature_ideas.json +352 -0
  337. package/assets/.agent/skills/meta-thinker/data/industry_database.json +1693 -0
  338. package/assets/.agent/skills/meta-thinker/data/monetization_models.json +570 -0
  339. package/assets/.agent/skills/meta-thinker/data/platform_guide.json +361 -0
  340. package/assets/.agent/skills/meta-thinker/data/product_archetypes.json +998 -0
  341. package/assets/.agent/skills/meta-thinker/scripts/__pycache__/idea_engine.cpython-314.pyc +0 -0
  342. package/assets/.agent/skills/meta-thinker/scripts/idea_engine.py +246 -0
  343. package/assets/.agent/skills/metasploit-framework/SKILL.md +478 -0
  344. package/assets/.agent/skills/micro-saas-launcher/SKILL.md +212 -0
  345. package/assets/.agent/skills/monday-automation/SKILL.md +233 -0
  346. package/assets/.agent/skills/multi-agent-patterns/SKILL.md +262 -0
  347. package/assets/.agent/skills/n8n-code-python/SKILL.md +750 -0
  348. package/assets/.agent/skills/n8n-mcp-tools-expert/SKILL.md +654 -0
  349. package/assets/.agent/skills/n8n-node-configuration/SKILL.md +796 -0
  350. package/assets/.agent/skills/neon-postgres/SKILL.md +56 -0
  351. package/assets/.agent/skills/nestjs-expert/SKILL.md +552 -0
  352. package/assets/.agent/skills/nextjs-best-practices/SKILL.md +203 -0
  353. package/assets/.agent/skills/nocobase-plugin-developer/SKILL.md +1289 -0
  354. package/assets/.agent/skills/nodejs-backend-patterns/SKILL.md +35 -0
  355. package/assets/.agent/skills/nodejs-backend-patterns/resources/implementation-playbook.md +1019 -0
  356. package/assets/.agent/skills/nodejs-best-practices/SKILL.md +333 -0
  357. package/assets/.agent/skills/nosql-expert/SKILL.md +111 -0
  358. package/assets/.agent/skills/notion-automation/SKILL.md +215 -0
  359. package/assets/.agent/skills/observability-engineer/SKILL.md +237 -0
  360. package/assets/.agent/skills/observability-monitoring-monitor-setup/SKILL.md +48 -0
  361. package/assets/.agent/skills/observability-monitoring-monitor-setup/resources/implementation-playbook.md +505 -0
  362. package/assets/.agent/skills/observability-monitoring-slo-implement/SKILL.md +43 -0
  363. package/assets/.agent/skills/observability-monitoring-slo-implement/resources/implementation-playbook.md +1077 -0
  364. package/assets/.agent/skills/on-call-handoff-patterns/SKILL.md +453 -0
  365. package/assets/.agent/skills/onboarding-cro/SKILL.md +433 -0
  366. package/assets/.agent/skills/openapi-spec-generation/SKILL.md +33 -0
  367. package/assets/.agent/skills/openapi-spec-generation/resources/implementation-playbook.md +1027 -0
  368. package/assets/.agent/skills/page-cro/SKILL.md +343 -0
  369. package/assets/.agent/skills/paid-ads/SKILL.md +551 -0
  370. package/assets/.agent/skills/payment-integration/SKILL.md +77 -0
  371. package/assets/.agent/skills/paypal-integration/SKILL.md +479 -0
  372. package/assets/.agent/skills/paywall-upgrade-cro/SKILL.md +570 -0
  373. package/assets/.agent/skills/pentest-checklist/SKILL.md +334 -0
  374. package/assets/.agent/skills/pentest-commands/SKILL.md +438 -0
  375. package/assets/.agent/skills/pipedrive-automation/SKILL.md +224 -0
  376. package/assets/.agent/skills/plaid-fintech/SKILL.md +50 -0
  377. package/assets/.agent/skills/popup-cro/SKILL.md +346 -0
  378. package/assets/.agent/skills/postgresql/SKILL.md +230 -0
  379. package/assets/.agent/skills/postmortem-writing/SKILL.md +386 -0
  380. package/assets/.agent/skills/pricing-strategy/SKILL.md +356 -0
  381. package/assets/.agent/skills/prisma-expert/SKILL.md +355 -0
  382. package/assets/.agent/skills/product-manager-toolkit/SKILL.md +351 -0
  383. package/assets/.agent/skills/product-manager-toolkit/references/prd_templates.md +317 -0
  384. package/assets/.agent/skills/product-manager-toolkit/scripts/__pycache__/customer_interview_analyzer.cpython-314.pyc +0 -0
  385. package/assets/.agent/skills/product-manager-toolkit/scripts/__pycache__/rice_prioritizer.cpython-314.pyc +0 -0
  386. package/assets/.agent/skills/product-manager-toolkit/scripts/customer_interview_analyzer.py +441 -0
  387. package/assets/.agent/skills/product-manager-toolkit/scripts/rice_prioritizer.py +296 -0
  388. package/assets/.agent/skills/programmatic-seo/SKILL.md +351 -0
  389. package/assets/.agent/skills/project-scaffolder/SKILL.md +26 -0
  390. package/assets/.agent/skills/project-scaffolder/data/scaffold_templates.json +150 -0
  391. package/assets/.agent/skills/project-scaffolder/scripts/__pycache__/scaffold.cpython-314.pyc +0 -0
  392. package/assets/.agent/skills/project-scaffolder/scripts/scaffold.py +249 -0
  393. package/assets/.agent/skills/projection-patterns/SKILL.md +33 -0
  394. package/assets/.agent/skills/projection-patterns/resources/implementation-playbook.md +501 -0
  395. package/assets/.agent/skills/prometheus-configuration/SKILL.md +404 -0
  396. package/assets/.agent/skills/prompt-caching/SKILL.md +61 -0
  397. package/assets/.agent/skills/prompt-engineer/README.md +659 -0
  398. package/assets/.agent/skills/prompt-engineer/SKILL.md +252 -0
  399. package/assets/.agent/skills/prompt-engineering/SKILL.md +171 -0
  400. package/assets/.agent/skills/prompt-engineering-patterns/SKILL.md +213 -0
  401. package/assets/.agent/skills/prompt-engineering-patterns/assets/few-shot-examples.json +106 -0
  402. package/assets/.agent/skills/prompt-engineering-patterns/assets/prompt-template-library.md +246 -0
  403. package/assets/.agent/skills/prompt-engineering-patterns/references/chain-of-thought.md +399 -0
  404. package/assets/.agent/skills/prompt-engineering-patterns/references/few-shot-learning.md +369 -0
  405. package/assets/.agent/skills/prompt-engineering-patterns/references/prompt-optimization.md +414 -0
  406. package/assets/.agent/skills/prompt-engineering-patterns/references/prompt-templates.md +470 -0
  407. package/assets/.agent/skills/prompt-engineering-patterns/references/system-prompts.md +189 -0
  408. package/assets/.agent/skills/prompt-engineering-patterns/scripts/__pycache__/optimize-prompt.cpython-314.pyc +0 -0
  409. package/assets/.agent/skills/prompt-engineering-patterns/scripts/optimize-prompt.py +279 -0
  410. package/assets/.agent/skills/prompt-library/SKILL.md +322 -0
  411. package/assets/.agent/skills/rag-engineer/SKILL.md +90 -0
  412. package/assets/.agent/skills/rag-implementation/SKILL.md +421 -0
  413. package/assets/.agent/skills/react-patterns/SKILL.md +198 -0
  414. package/assets/.agent/skills/react-state-management/SKILL.md +441 -0
  415. package/assets/.agent/skills/react-ui-patterns/SKILL.md +289 -0
  416. package/assets/.agent/skills/readme-generator/SKILL.md +14 -0
  417. package/assets/.agent/skills/readme-generator/data/readme_templates.json +22 -0
  418. package/assets/.agent/skills/readme-generator/scripts/__pycache__/readme_gen.cpython-314.pyc +0 -0
  419. package/assets/.agent/skills/readme-generator/scripts/readme_gen.py +81 -0
  420. package/assets/.agent/skills/red-team-tactics/SKILL.md +199 -0
  421. package/assets/.agent/skills/red-team-tools/SKILL.md +310 -0
  422. package/assets/.agent/skills/reference-builder/SKILL.md +188 -0
  423. package/assets/.agent/skills/referral-program/SKILL.md +602 -0
  424. package/assets/.agent/skills/release-manager/SKILL.md +30 -0
  425. package/assets/.agent/skills/release-manager/scripts/__pycache__/release.cpython-314.pyc +0 -0
  426. package/assets/.agent/skills/release-manager/scripts/release.py +210 -0
  427. package/assets/.agent/skills/reliability-engineer/SKILL.md +30 -0
  428. package/assets/.agent/skills/reliability-engineer/data/reliability.json +57 -0
  429. package/assets/.agent/skills/reliability-engineer/scripts/__pycache__/sre.cpython-314.pyc +0 -0
  430. package/assets/.agent/skills/reliability-engineer/scripts/sre.py +94 -0
  431. package/assets/.agent/skills/saga-orchestration/SKILL.md +496 -0
  432. package/assets/.agent/skills/sales-automator/SKILL.md +55 -0
  433. package/assets/.agent/skills/salesforce-automation/SKILL.md +190 -0
  434. package/assets/.agent/skills/sast-configuration/SKILL.md +212 -0
  435. package/assets/.agent/skills/scanning-tools/SKILL.md +589 -0
  436. package/assets/.agent/skills/schema-markup/SKILL.md +360 -0
  437. package/assets/.agent/skills/search-specialist/SKILL.md +80 -0
  438. package/assets/.agent/skills/secrets-management/SKILL.md +364 -0
  439. package/assets/.agent/skills/security-auditor/SKILL.md +169 -0
  440. package/assets/.agent/skills/security-bluebook-builder/SKILL.md +22 -0
  441. package/assets/.agent/skills/security-requirement-extraction/SKILL.md +33 -0
  442. package/assets/.agent/skills/security-requirement-extraction/resources/implementation-playbook.md +676 -0
  443. package/assets/.agent/skills/security-scanner/SKILL.md +21 -0
  444. package/assets/.agent/skills/security-scanner/data/security_patterns.json +101 -0
  445. package/assets/.agent/skills/security-scanner/scripts/__pycache__/checklist_gen.cpython-314.pyc +0 -0
  446. package/assets/.agent/skills/security-scanner/scripts/__pycache__/vuln_scan.cpython-314.pyc +0 -0
  447. package/assets/.agent/skills/security-scanner/scripts/checklist_gen.py +49 -0
  448. package/assets/.agent/skills/security-scanner/scripts/vuln_scan.py +81 -0
  449. package/assets/.agent/skills/sendgrid-automation/SKILL.md +228 -0
  450. package/assets/.agent/skills/seo-audit/SKILL.md +487 -0
  451. package/assets/.agent/skills/seo-authority-builder/SKILL.md +136 -0
  452. package/assets/.agent/skills/seo-cannibalization-detector/SKILL.md +123 -0
  453. package/assets/.agent/skills/seo-content-auditor/SKILL.md +83 -0
  454. package/assets/.agent/skills/seo-content-planner/SKILL.md +108 -0
  455. package/assets/.agent/skills/seo-content-refresher/SKILL.md +118 -0
  456. package/assets/.agent/skills/seo-content-writer/SKILL.md +96 -0
  457. package/assets/.agent/skills/seo-fundamentals/SKILL.md +173 -0
  458. package/assets/.agent/skills/seo-fundamentals/scripts/__pycache__/seo_checker.cpython-314.pyc +0 -0
  459. package/assets/.agent/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
  460. package/assets/.agent/skills/seo-keyword-strategist/SKILL.md +95 -0
  461. package/assets/.agent/skills/seo-meta-optimizer/SKILL.md +92 -0
  462. package/assets/.agent/skills/seo-snippet-hunter/SKILL.md +114 -0
  463. package/assets/.agent/skills/seo-structure-architect/SKILL.md +108 -0
  464. package/assets/.agent/skills/service-mesh-observability/SKILL.md +395 -0
  465. package/assets/.agent/skills/shodan-reconnaissance/SKILL.md +503 -0
  466. package/assets/.agent/skills/shopify-apps/SKILL.md +42 -0
  467. package/assets/.agent/skills/shopify-automation/SKILL.md +168 -0
  468. package/assets/.agent/skills/signup-flow-cro/SKILL.md +355 -0
  469. package/assets/.agent/skills/similarity-search-patterns/SKILL.md +33 -0
  470. package/assets/.agent/skills/similarity-search-patterns/resources/implementation-playbook.md +557 -0
  471. package/assets/.agent/skills/skill-creator/LICENSE.txt +202 -0
  472. package/assets/.agent/skills/skill-creator/README.md +270 -0
  473. package/assets/.agent/skills/skill-creator/SKILL.md +593 -0
  474. package/assets/.agent/skills/skill-creator/references/output-patterns.md +82 -0
  475. package/assets/.agent/skills/skill-creator/references/workflows.md +28 -0
  476. package/assets/.agent/skills/skill-creator/scripts/__pycache__/init_skill.cpython-314.pyc +0 -0
  477. package/assets/.agent/skills/skill-creator/scripts/__pycache__/package_skill.cpython-314.pyc +0 -0
  478. package/assets/.agent/skills/skill-creator/scripts/__pycache__/quick_validate.cpython-314.pyc +0 -0
  479. package/assets/.agent/skills/skill-creator/scripts/init_skill.py +303 -0
  480. package/assets/.agent/skills/skill-creator/scripts/package_skill.py +110 -0
  481. package/assets/.agent/skills/skill-creator/scripts/quick_validate.py +95 -0
  482. package/assets/.agent/skills/skill-developer/ADVANCED.md +197 -0
  483. package/assets/.agent/skills/skill-developer/HOOK_MECHANISMS.md +306 -0
  484. package/assets/.agent/skills/skill-developer/PATTERNS_LIBRARY.md +152 -0
  485. package/assets/.agent/skills/skill-developer/SKILL.md +426 -0
  486. package/assets/.agent/skills/skill-developer/SKILL_RULES_REFERENCE.md +315 -0
  487. package/assets/.agent/skills/skill-developer/TRIGGER_TYPES.md +305 -0
  488. package/assets/.agent/skills/skill-developer/TROUBLESHOOTING.md +514 -0
  489. package/assets/.agent/skills/slack-automation/SKILL.md +189 -0
  490. package/assets/.agent/skills/slo-implementation/SKILL.md +341 -0
  491. package/assets/.agent/skills/social-content/SKILL.md +807 -0
  492. package/assets/.agent/skills/spark-optimization/SKILL.md +427 -0
  493. package/assets/.agent/skills/sql-injection-testing/SKILL.md +448 -0
  494. package/assets/.agent/skills/sql-optimization-patterns/SKILL.md +35 -0
  495. package/assets/.agent/skills/sql-optimization-patterns/resources/implementation-playbook.md +504 -0
  496. package/assets/.agent/skills/sql-pro/SKILL.md +173 -0
  497. package/assets/.agent/skills/ssh-penetration-testing/SKILL.md +488 -0
  498. package/assets/.agent/skills/startup-analyst/SKILL.md +328 -0
  499. package/assets/.agent/skills/startup-business-analyst-business-case/SKILL.md +487 -0
  500. package/assets/.agent/skills/startup-business-analyst-financial-projections/SKILL.md +353 -0
  501. package/assets/.agent/skills/startup-business-analyst-market-opportunity/SKILL.md +240 -0
  502. package/assets/.agent/skills/startup-financial-modeling/SKILL.md +467 -0
  503. package/assets/.agent/skills/startup-metrics-framework/SKILL.md +34 -0
  504. package/assets/.agent/skills/startup-metrics-framework/resources/implementation-playbook.md +500 -0
  505. package/assets/.agent/skills/stride-analysis-patterns/SKILL.md +33 -0
  506. package/assets/.agent/skills/stride-analysis-patterns/resources/implementation-playbook.md +655 -0
  507. package/assets/.agent/skills/stripe-automation/SKILL.md +198 -0
  508. package/assets/.agent/skills/stripe-integration/SKILL.md +454 -0
  509. package/assets/.agent/skills/supabase-postgres-best-practices/AGENTS.md +1490 -0
  510. package/assets/.agent/skills/supabase-postgres-best-practices/README.md +119 -0
  511. package/assets/.agent/skills/supabase-postgres-best-practices/SKILL.md +57 -0
  512. package/assets/.agent/skills/supabase-postgres-best-practices/metadata.json +13 -0
  513. package/assets/.agent/skills/supabase-postgres-best-practices/rules/_contributing.md +171 -0
  514. package/assets/.agent/skills/supabase-postgres-best-practices/rules/_sections.md +39 -0
  515. package/assets/.agent/skills/supabase-postgres-best-practices/rules/_template.md +34 -0
  516. package/assets/.agent/skills/supabase-postgres-best-practices/rules/advanced-full-text-search.md +55 -0
  517. package/assets/.agent/skills/supabase-postgres-best-practices/rules/advanced-jsonb-indexing.md +49 -0
  518. package/assets/.agent/skills/supabase-postgres-best-practices/rules/conn-idle-timeout.md +46 -0
  519. package/assets/.agent/skills/supabase-postgres-best-practices/rules/conn-limits.md +44 -0
  520. package/assets/.agent/skills/supabase-postgres-best-practices/rules/conn-pooling.md +41 -0
  521. package/assets/.agent/skills/supabase-postgres-best-practices/rules/conn-prepared-statements.md +46 -0
  522. package/assets/.agent/skills/supabase-postgres-best-practices/rules/data-batch-inserts.md +54 -0
  523. package/assets/.agent/skills/supabase-postgres-best-practices/rules/data-n-plus-one.md +53 -0
  524. package/assets/.agent/skills/supabase-postgres-best-practices/rules/data-pagination.md +50 -0
  525. package/assets/.agent/skills/supabase-postgres-best-practices/rules/data-upsert.md +50 -0
  526. package/assets/.agent/skills/supabase-postgres-best-practices/rules/lock-advisory.md +56 -0
  527. package/assets/.agent/skills/supabase-postgres-best-practices/rules/lock-deadlock-prevention.md +68 -0
  528. package/assets/.agent/skills/supabase-postgres-best-practices/rules/lock-short-transactions.md +50 -0
  529. package/assets/.agent/skills/supabase-postgres-best-practices/rules/lock-skip-locked.md +54 -0
  530. package/assets/.agent/skills/supabase-postgres-best-practices/rules/monitor-explain-analyze.md +45 -0
  531. package/assets/.agent/skills/supabase-postgres-best-practices/rules/monitor-pg-stat-statements.md +55 -0
  532. package/assets/.agent/skills/supabase-postgres-best-practices/rules/monitor-vacuum-analyze.md +55 -0
  533. package/assets/.agent/skills/supabase-postgres-best-practices/rules/query-composite-indexes.md +44 -0
  534. package/assets/.agent/skills/supabase-postgres-best-practices/rules/query-covering-indexes.md +40 -0
  535. package/assets/.agent/skills/supabase-postgres-best-practices/rules/query-index-types.md +45 -0
  536. package/assets/.agent/skills/supabase-postgres-best-practices/rules/query-missing-indexes.md +43 -0
  537. package/assets/.agent/skills/supabase-postgres-best-practices/rules/query-partial-indexes.md +45 -0
  538. package/assets/.agent/skills/supabase-postgres-best-practices/rules/schema-data-types.md +46 -0
  539. package/assets/.agent/skills/supabase-postgres-best-practices/rules/schema-foreign-key-indexes.md +59 -0
  540. package/assets/.agent/skills/supabase-postgres-best-practices/rules/schema-lowercase-identifiers.md +55 -0
  541. package/assets/.agent/skills/supabase-postgres-best-practices/rules/schema-partitioning.md +55 -0
  542. package/assets/.agent/skills/supabase-postgres-best-practices/rules/schema-primary-keys.md +61 -0
  543. package/assets/.agent/skills/supabase-postgres-best-practices/rules/security-privileges.md +54 -0
  544. package/assets/.agent/skills/supabase-postgres-best-practices/rules/security-rls-basics.md +50 -0
  545. package/assets/.agent/skills/supabase-postgres-best-practices/rules/security-rls-performance.md +57 -0
  546. package/assets/.agent/skills/system-diagrammer/SKILL.md +25 -0
  547. package/assets/.agent/skills/system-diagrammer/data/diagram_templates.json +69 -0
  548. package/assets/.agent/skills/system-diagrammer/scripts/__pycache__/diagram.cpython-314.pyc +0 -0
  549. package/assets/.agent/skills/system-diagrammer/scripts/diagram.py +81 -0
  550. package/assets/.agent/skills/system-strategist/SKILL.md +35 -0
  551. package/assets/.agent/skills/system-strategist/data/strategy_patterns.json +170 -0
  552. package/assets/.agent/skills/system-strategist/scripts/__pycache__/strategist.cpython-314.pyc +0 -0
  553. package/assets/.agent/skills/system-strategist/scripts/strategist.py +136 -0
  554. package/assets/.agent/skills/tavily-web/SKILL.md +36 -0
  555. package/assets/.agent/skills/team-composition-analysis/SKILL.md +413 -0
  556. package/assets/.agent/skills/tech-stack-advisor/SKILL.md +59 -0
  557. package/assets/.agent/skills/tech-stack-advisor/data/stacks.json +727 -0
  558. package/assets/.agent/skills/tech-stack-advisor/data/tech_data.json +1297 -0
  559. package/assets/.agent/skills/tech-stack-advisor/scripts/__pycache__/advisor.cpython-314.pyc +0 -0
  560. package/assets/.agent/skills/tech-stack-advisor/scripts/__pycache__/scanner.cpython-314.pyc +0 -0
  561. package/assets/.agent/skills/tech-stack-advisor/scripts/advisor.py +211 -0
  562. package/assets/.agent/skills/tech-stack-advisor/scripts/scanner.py +102 -0
  563. package/assets/.agent/skills/terraform-module-library/SKILL.md +261 -0
  564. package/assets/.agent/skills/terraform-module-library/references/aws-modules.md +63 -0
  565. package/assets/.agent/skills/terraform-skill/SKILL.md +517 -0
  566. package/assets/.agent/skills/terraform-specialist/SKILL.md +166 -0
  567. package/assets/.agent/skills/test-generator/SKILL.md +14 -0
  568. package/assets/.agent/skills/test-generator/data/test_patterns.json +39 -0
  569. package/assets/.agent/skills/test-generator/scripts/__pycache__/gen_skeleton.cpython-314.pyc +0 -0
  570. package/assets/.agent/skills/test-generator/scripts/gen_skeleton.py +61 -0
  571. package/assets/.agent/skills/testing-patterns/SKILL.md +259 -0
  572. package/assets/.agent/skills/threat-mitigation-mapping/SKILL.md +33 -0
  573. package/assets/.agent/skills/threat-mitigation-mapping/resources/implementation-playbook.md +744 -0
  574. package/assets/.agent/skills/threat-modeling-expert/SKILL.md +60 -0
  575. package/assets/.agent/skills/tool-design/SKILL.md +318 -0
  576. package/assets/.agent/skills/top-web-vulnerabilities/SKILL.md +543 -0
  577. package/assets/.agent/skills/trello-automation/SKILL.md +181 -0
  578. package/assets/.agent/skills/trigger-dev/SKILL.md +67 -0
  579. package/assets/.agent/skills/tutorial-engineer/SKILL.md +139 -0
  580. package/assets/.agent/skills/twitter-automation/SKILL.md +231 -0
  581. package/assets/.agent/skills/typescript-pro/SKILL.md +55 -0
  582. package/assets/.agent/skills/ui-ux-pro-max/SKILL.md +30 -0
  583. package/assets/.agent/skills/ui-ux-pro-max/data/charts.csv +26 -0
  584. package/assets/.agent/skills/ui-ux-pro-max/data/colors.csv +97 -0
  585. package/assets/.agent/skills/ui-ux-pro-max/data/icons.csv +101 -0
  586. package/assets/.agent/skills/ui-ux-pro-max/data/landing.csv +31 -0
  587. package/assets/.agent/skills/ui-ux-pro-max/data/products.csv +97 -0
  588. package/assets/.agent/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
  589. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  590. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  591. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  592. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  593. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  594. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  595. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  596. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  597. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
  598. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  599. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  600. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  601. package/assets/.agent/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  602. package/assets/.agent/skills/ui-ux-pro-max/data/styles.csv +68 -0
  603. package/assets/.agent/skills/ui-ux-pro-max/data/typography.csv +58 -0
  604. package/assets/.agent/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  605. package/assets/.agent/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  606. package/assets/.agent/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
  607. package/assets/.agent/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
  608. package/assets/.agent/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
  609. package/assets/.agent/skills/ui-ux-pro-max/scripts/__pycache__/search.cpython-314.pyc +0 -0
  610. package/assets/.agent/skills/ui-ux-pro-max/scripts/core.py +253 -0
  611. package/assets/.agent/skills/ui-ux-pro-max/scripts/design_system.py +1110 -0
  612. package/assets/.agent/skills/ui-ux-pro-max/scripts/search.py +162 -0
  613. package/assets/.agent/skills/using-neon/SKILL.md +84 -0
  614. package/assets/.agent/skills/vector-database-engineer/SKILL.md +60 -0
  615. package/assets/.agent/skills/vector-index-tuning/SKILL.md +42 -0
  616. package/assets/.agent/skills/vector-index-tuning/resources/implementation-playbook.md +507 -0
  617. package/assets/.agent/skills/vercel-deployment/SKILL.md +79 -0
  618. package/assets/.agent/skills/voice-agents/SKILL.md +68 -0
  619. package/assets/.agent/skills/vulnerability-scanner/SKILL.md +276 -0
  620. package/assets/.agent/skills/vulnerability-scanner/checklists.md +121 -0
  621. package/assets/.agent/skills/vulnerability-scanner/scripts/__pycache__/security_scan.cpython-314.pyc +0 -0
  622. package/assets/.agent/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
  623. package/assets/.agent/skills/whatsapp-automation/SKILL.md +214 -0
  624. package/assets/.agent/skills/wiki-architect/SKILL.md +60 -0
  625. package/assets/.agent/skills/wiki-onboarding/SKILL.md +77 -0
  626. package/assets/.agent/skills/wiki-page-writer/SKILL.md +65 -0
  627. package/assets/.agent/skills/wiki-researcher/SKILL.md +65 -0
  628. package/assets/.agent/skills/windows-privilege-escalation/SKILL.md +496 -0
  629. package/assets/.agent/skills/wireshark-analysis/SKILL.md +497 -0
  630. package/assets/.agent/skills/wordpress-penetration-testing/SKILL.md +485 -0
  631. package/assets/.agent/skills/workflow-automation/SKILL.md +68 -0
  632. package/assets/.agent/skills/xss-html-injection/SKILL.md +499 -0
  633. package/assets/.agent/skills/zapier-make-patterns/SKILL.md +67 -0
  634. package/assets/.agent/skills/zendesk-automation/SKILL.md +215 -0
  635. package/assets/.agent/workflows/ai-agent-builder.md +93 -0
  636. package/assets/.agent/workflows/api-graphql-dev.md +45 -0
  637. package/assets/.agent/workflows/architect.md +43 -0
  638. package/assets/.agent/workflows/backend-dev.md +43 -0
  639. package/assets/.agent/workflows/claude-code-dev.md +51 -0
  640. package/assets/.agent/workflows/cloud-deployer.md +422 -0
  641. package/assets/.agent/workflows/code-reviewer.md +62 -0
  642. package/assets/.agent/workflows/context-data-eng.md +58 -0
  643. package/assets/.agent/workflows/database-eng.md +60 -0
  644. package/assets/.agent/workflows/deep-researcher.md +175 -0
  645. package/assets/.agent/workflows/designer.md +36 -0
  646. package/assets/.agent/workflows/devops.md +37 -0
  647. package/assets/.agent/workflows/doc-writer.md +211 -0
  648. package/assets/.agent/workflows/frontend-dev.md +63 -0
  649. package/assets/.agent/workflows/fullstack-coder.md +141 -0
  650. package/assets/.agent/workflows/image-creator.md +186 -0
  651. package/assets/.agent/workflows/knowledge-guide.md +48 -0
  652. package/assets/.agent/workflows/leader.md +238 -0
  653. package/assets/.agent/workflows/meta-thinker.md +204 -0
  654. package/assets/.agent/workflows/mobile-dev.md +26 -0
  655. package/assets/.agent/workflows/n8n-automator.md +114 -0
  656. package/assets/.agent/workflows/nocobase-plugin-build.md +291 -0
  657. package/assets/.agent/workflows/nocobase-plugin-expert.md +250 -0
  658. package/assets/.agent/workflows/observability-eng.md +54 -0
  659. package/assets/.agent/workflows/planner.md +48 -0
  660. package/assets/.agent/workflows/prompt-engineer.md +303 -0
  661. package/assets/.agent/workflows/qa-engineer.md +65 -0
  662. package/assets/.agent/workflows/quality-guardian.md +126 -0
  663. package/assets/.agent/workflows/quickstart.md +107 -0
  664. package/assets/.agent/workflows/release-manager.md +56 -0
  665. package/assets/.agent/workflows/research-analyst.md +483 -0
  666. package/assets/.agent/workflows/researcher.md +98 -0
  667. package/assets/.agent/workflows/saas-connector.md +86 -0
  668. package/assets/.agent/workflows/security-auditor.md +82 -0
  669. package/assets/.agent/workflows/security-engineer.md +48 -0
  670. package/assets/.agent/workflows/seo-marketer.md +91 -0
  671. package/assets/.agent/workflows/seo-specialist.md +27 -0
  672. package/assets/.agent/workflows/solution-architect.md +164 -0
  673. package/assets/.agent/workflows/startup-advisor.md +94 -0
  674. package/assets/.agent/workflows/tech-writer.md +43 -0
  675. package/assets/ide-adapters/cline/architect.md +43 -0
  676. package/assets/ide-adapters/cline/backend-dev.md +43 -0
  677. package/assets/ide-adapters/cline/designer.md +36 -0
  678. package/assets/ide-adapters/cline/devops.md +37 -0
  679. package/assets/ide-adapters/cline/frontend-dev.md +63 -0
  680. package/assets/ide-adapters/cline/knowledge-guide.md +48 -0
  681. package/assets/ide-adapters/cline/leader.md +88 -0
  682. package/assets/ide-adapters/cline/meta-thinker.md +87 -0
  683. package/assets/ide-adapters/cline/mobile-dev.md +26 -0
  684. package/assets/ide-adapters/cline/planner.md +48 -0
  685. package/assets/ide-adapters/cline/qa-engineer.md +65 -0
  686. package/assets/ide-adapters/cline/security-engineer.md +48 -0
  687. package/assets/ide-adapters/cline/seo-specialist.md +27 -0
  688. package/assets/ide-adapters/cline/tech-writer.md +43 -0
  689. package/assets/ide-adapters/copilot/architect.instructions.md +43 -0
  690. package/assets/ide-adapters/copilot/backend-dev.instructions.md +43 -0
  691. package/assets/ide-adapters/copilot/designer.instructions.md +36 -0
  692. package/assets/ide-adapters/copilot/devops.instructions.md +37 -0
  693. package/assets/ide-adapters/copilot/frontend-dev.instructions.md +63 -0
  694. package/assets/ide-adapters/copilot/knowledge-guide.instructions.md +48 -0
  695. package/assets/ide-adapters/copilot/leader.instructions.md +88 -0
  696. package/assets/ide-adapters/copilot/meta-thinker.instructions.md +87 -0
  697. package/assets/ide-adapters/copilot/mobile-dev.instructions.md +26 -0
  698. package/assets/ide-adapters/copilot/planner.instructions.md +48 -0
  699. package/assets/ide-adapters/copilot/qa-engineer.instructions.md +65 -0
  700. package/assets/ide-adapters/copilot/security-engineer.instructions.md +48 -0
  701. package/assets/ide-adapters/copilot/seo-specialist.instructions.md +27 -0
  702. package/assets/ide-adapters/copilot/tech-writer.instructions.md +43 -0
  703. package/assets/ide-adapters/cursor/architect.mdc +44 -0
  704. package/assets/ide-adapters/cursor/backend-dev.mdc +44 -0
  705. package/assets/ide-adapters/cursor/designer.mdc +37 -0
  706. package/assets/ide-adapters/cursor/devops.mdc +38 -0
  707. package/assets/ide-adapters/cursor/frontend-dev.mdc +64 -0
  708. package/assets/ide-adapters/cursor/knowledge-guide.mdc +49 -0
  709. package/assets/ide-adapters/cursor/leader.mdc +89 -0
  710. package/assets/ide-adapters/cursor/meta-thinker.mdc +88 -0
  711. package/assets/ide-adapters/cursor/mobile-dev.mdc +27 -0
  712. package/assets/ide-adapters/cursor/planner.mdc +49 -0
  713. package/assets/ide-adapters/cursor/qa-engineer.mdc +66 -0
  714. package/assets/ide-adapters/cursor/security-engineer.mdc +49 -0
  715. package/assets/ide-adapters/cursor/seo-specialist.mdc +28 -0
  716. package/assets/ide-adapters/cursor/tech-writer.mdc +44 -0
  717. package/assets/ide-adapters/kilocode/architect.md +43 -0
  718. package/assets/ide-adapters/kilocode/backend-dev.md +43 -0
  719. package/assets/ide-adapters/kilocode/designer.md +36 -0
  720. package/assets/ide-adapters/kilocode/devops.md +37 -0
  721. package/assets/ide-adapters/kilocode/frontend-dev.md +63 -0
  722. package/assets/ide-adapters/kilocode/knowledge-guide.md +48 -0
  723. package/assets/ide-adapters/kilocode/leader.md +88 -0
  724. package/assets/ide-adapters/kilocode/meta-thinker.md +87 -0
  725. package/assets/ide-adapters/kilocode/mobile-dev.md +26 -0
  726. package/assets/ide-adapters/kilocode/planner.md +48 -0
  727. package/assets/ide-adapters/kilocode/qa-engineer.md +65 -0
  728. package/assets/ide-adapters/kilocode/security-engineer.md +48 -0
  729. package/assets/ide-adapters/kilocode/seo-specialist.md +27 -0
  730. package/assets/ide-adapters/kilocode/tech-writer.md +43 -0
  731. package/assets/ide-adapters/kiro/hooks/auto-lint.json +8 -0
  732. package/assets/ide-adapters/kiro/hooks/auto-test.json +8 -0
  733. package/assets/ide-adapters/kiro/specs/.gitkeep +0 -0
  734. package/assets/ide-adapters/kiro/steering/product.md +23 -0
  735. package/assets/ide-adapters/kiro/steering/structure.md +23 -0
  736. package/assets/ide-adapters/kiro/steering/tech.md +27 -0
  737. package/assets/ide-adapters/windsurf/architect.md +41 -0
  738. package/assets/ide-adapters/windsurf/backend-dev.md +41 -0
  739. package/assets/ide-adapters/windsurf/designer.md +34 -0
  740. package/assets/ide-adapters/windsurf/devops.md +35 -0
  741. package/assets/ide-adapters/windsurf/frontend-dev.md +61 -0
  742. package/assets/ide-adapters/windsurf/knowledge-guide.md +46 -0
  743. package/assets/ide-adapters/windsurf/leader.md +86 -0
  744. package/assets/ide-adapters/windsurf/meta-thinker.md +85 -0
  745. package/assets/ide-adapters/windsurf/mobile-dev.md +24 -0
  746. package/assets/ide-adapters/windsurf/planner.md +46 -0
  747. package/assets/ide-adapters/windsurf/qa-engineer.md +63 -0
  748. package/assets/ide-adapters/windsurf/security-engineer.md +46 -0
  749. package/assets/ide-adapters/windsurf/seo-specialist.md +25 -0
  750. package/assets/ide-adapters/windsurf/tech-writer.md +41 -0
  751. package/assets/skill_groups.json +574 -0
  752. package/bin/cli.js +101 -0
  753. package/lib/commands.js +133 -0
  754. package/lib/constants.js +76 -0
  755. package/lib/download.js +165 -0
  756. package/lib/init.js +294 -0
  757. package/package.json +45 -0
  758. package/scripts/build-assets.js +177 -0
@@ -0,0 +1,714 @@
1
+ """
2
+ Review analysis module for App Store Optimization.
3
+ Analyzes user reviews for sentiment, issues, and feature requests.
4
+ """
5
+
6
+ from typing import Dict, List, Any, Optional, Tuple
7
+ from collections import Counter
8
+ import re
9
+
10
+
11
+ class ReviewAnalyzer:
12
+ """Analyzes user reviews for actionable insights."""
13
+
14
+ # Sentiment keywords
15
+ POSITIVE_KEYWORDS = [
16
+ 'great', 'awesome', 'excellent', 'amazing', 'love', 'best', 'perfect',
17
+ 'fantastic', 'wonderful', 'brilliant', 'outstanding', 'superb'
18
+ ]
19
+
20
+ NEGATIVE_KEYWORDS = [
21
+ 'bad', 'terrible', 'awful', 'horrible', 'hate', 'worst', 'useless',
22
+ 'broken', 'crash', 'bug', 'slow', 'disappointing', 'frustrating'
23
+ ]
24
+
25
+ # Issue indicators
26
+ ISSUE_KEYWORDS = [
27
+ 'crash', 'bug', 'error', 'broken', 'not working', 'doesnt work',
28
+ 'freezes', 'slow', 'laggy', 'glitch', 'problem', 'issue', 'fail'
29
+ ]
30
+
31
+ # Feature request indicators
32
+ FEATURE_REQUEST_KEYWORDS = [
33
+ 'wish', 'would be nice', 'should add', 'need', 'want', 'hope',
34
+ 'please add', 'missing', 'lacks', 'feature request'
35
+ ]
36
+
37
+ def __init__(self, app_name: str):
38
+ """
39
+ Initialize review analyzer.
40
+
41
+ Args:
42
+ app_name: Name of the app
43
+ """
44
+ self.app_name = app_name
45
+ self.reviews = []
46
+ self.analysis_cache = {}
47
+
48
+ def analyze_sentiment(
49
+ self,
50
+ reviews: List[Dict[str, Any]]
51
+ ) -> Dict[str, Any]:
52
+ """
53
+ Analyze sentiment across reviews.
54
+
55
+ Args:
56
+ reviews: List of review dicts with 'text', 'rating', 'date'
57
+
58
+ Returns:
59
+ Sentiment analysis summary
60
+ """
61
+ self.reviews = reviews
62
+
63
+ sentiment_counts = {
64
+ 'positive': 0,
65
+ 'neutral': 0,
66
+ 'negative': 0
67
+ }
68
+
69
+ detailed_sentiments = []
70
+
71
+ for review in reviews:
72
+ text = review.get('text', '').lower()
73
+ rating = review.get('rating', 3)
74
+
75
+ # Calculate sentiment score
76
+ sentiment_score = self._calculate_sentiment_score(text, rating)
77
+ sentiment_category = self._categorize_sentiment(sentiment_score)
78
+
79
+ sentiment_counts[sentiment_category] += 1
80
+
81
+ detailed_sentiments.append({
82
+ 'review_id': review.get('id', ''),
83
+ 'rating': rating,
84
+ 'sentiment_score': sentiment_score,
85
+ 'sentiment': sentiment_category,
86
+ 'text_preview': text[:100] + '...' if len(text) > 100 else text
87
+ })
88
+
89
+ # Calculate percentages
90
+ total = len(reviews)
91
+ sentiment_distribution = {
92
+ 'positive': round((sentiment_counts['positive'] / total) * 100, 1) if total > 0 else 0,
93
+ 'neutral': round((sentiment_counts['neutral'] / total) * 100, 1) if total > 0 else 0,
94
+ 'negative': round((sentiment_counts['negative'] / total) * 100, 1) if total > 0 else 0
95
+ }
96
+
97
+ # Calculate average rating
98
+ avg_rating = sum(r.get('rating', 0) for r in reviews) / total if total > 0 else 0
99
+
100
+ return {
101
+ 'total_reviews_analyzed': total,
102
+ 'average_rating': round(avg_rating, 2),
103
+ 'sentiment_distribution': sentiment_distribution,
104
+ 'sentiment_counts': sentiment_counts,
105
+ 'sentiment_trend': self._assess_sentiment_trend(sentiment_distribution),
106
+ 'detailed_sentiments': detailed_sentiments[:50] # Limit output
107
+ }
108
+
109
+ def extract_common_themes(
110
+ self,
111
+ reviews: List[Dict[str, Any]],
112
+ min_mentions: int = 3
113
+ ) -> Dict[str, Any]:
114
+ """
115
+ Extract frequently mentioned themes and topics.
116
+
117
+ Args:
118
+ reviews: List of review dicts
119
+ min_mentions: Minimum mentions to be considered common
120
+
121
+ Returns:
122
+ Common themes analysis
123
+ """
124
+ # Extract all words from reviews
125
+ all_words = []
126
+ all_phrases = []
127
+
128
+ for review in reviews:
129
+ text = review.get('text', '').lower()
130
+ # Clean text
131
+ text = re.sub(r'[^\w\s]', ' ', text)
132
+ words = text.split()
133
+
134
+ # Filter out common words
135
+ stop_words = {
136
+ 'the', 'and', 'for', 'with', 'this', 'that', 'from', 'have',
137
+ 'app', 'apps', 'very', 'really', 'just', 'but', 'not', 'you'
138
+ }
139
+ words = [w for w in words if w not in stop_words and len(w) > 3]
140
+
141
+ all_words.extend(words)
142
+
143
+ # Extract 2-3 word phrases
144
+ for i in range(len(words) - 1):
145
+ phrase = f"{words[i]} {words[i+1]}"
146
+ all_phrases.append(phrase)
147
+
148
+ # Count frequency
149
+ word_freq = Counter(all_words)
150
+ phrase_freq = Counter(all_phrases)
151
+
152
+ # Filter by min_mentions
153
+ common_words = [
154
+ {'word': word, 'mentions': count}
155
+ for word, count in word_freq.most_common(30)
156
+ if count >= min_mentions
157
+ ]
158
+
159
+ common_phrases = [
160
+ {'phrase': phrase, 'mentions': count}
161
+ for phrase, count in phrase_freq.most_common(20)
162
+ if count >= min_mentions
163
+ ]
164
+
165
+ # Categorize themes
166
+ themes = self._categorize_themes(common_words, common_phrases)
167
+
168
+ return {
169
+ 'common_words': common_words,
170
+ 'common_phrases': common_phrases,
171
+ 'identified_themes': themes,
172
+ 'insights': self._generate_theme_insights(themes)
173
+ }
174
+
175
+ def identify_issues(
176
+ self,
177
+ reviews: List[Dict[str, Any]],
178
+ rating_threshold: int = 3
179
+ ) -> Dict[str, Any]:
180
+ """
181
+ Identify bugs, crashes, and other issues from reviews.
182
+
183
+ Args:
184
+ reviews: List of review dicts
185
+ rating_threshold: Only analyze reviews at or below this rating
186
+
187
+ Returns:
188
+ Issue identification report
189
+ """
190
+ issues = []
191
+
192
+ for review in reviews:
193
+ rating = review.get('rating', 5)
194
+ if rating > rating_threshold:
195
+ continue
196
+
197
+ text = review.get('text', '').lower()
198
+
199
+ # Check for issue keywords
200
+ mentioned_issues = []
201
+ for keyword in self.ISSUE_KEYWORDS:
202
+ if keyword in text:
203
+ mentioned_issues.append(keyword)
204
+
205
+ if mentioned_issues:
206
+ issues.append({
207
+ 'review_id': review.get('id', ''),
208
+ 'rating': rating,
209
+ 'date': review.get('date', ''),
210
+ 'issue_keywords': mentioned_issues,
211
+ 'text': text[:200] + '...' if len(text) > 200 else text
212
+ })
213
+
214
+ # Group by issue type
215
+ issue_frequency = Counter()
216
+ for issue in issues:
217
+ for keyword in issue['issue_keywords']:
218
+ issue_frequency[keyword] += 1
219
+
220
+ # Categorize issues
221
+ categorized_issues = self._categorize_issues(issues)
222
+
223
+ # Calculate issue severity
224
+ severity_scores = self._calculate_issue_severity(
225
+ categorized_issues,
226
+ len(reviews)
227
+ )
228
+
229
+ return {
230
+ 'total_issues_found': len(issues),
231
+ 'issue_frequency': dict(issue_frequency.most_common(15)),
232
+ 'categorized_issues': categorized_issues,
233
+ 'severity_scores': severity_scores,
234
+ 'top_issues': self._rank_issues_by_severity(severity_scores),
235
+ 'recommendations': self._generate_issue_recommendations(
236
+ categorized_issues,
237
+ severity_scores
238
+ )
239
+ }
240
+
241
+ def find_feature_requests(
242
+ self,
243
+ reviews: List[Dict[str, Any]]
244
+ ) -> Dict[str, Any]:
245
+ """
246
+ Extract feature requests and desired improvements.
247
+
248
+ Args:
249
+ reviews: List of review dicts
250
+
251
+ Returns:
252
+ Feature request analysis
253
+ """
254
+ feature_requests = []
255
+
256
+ for review in reviews:
257
+ text = review.get('text', '').lower()
258
+ rating = review.get('rating', 3)
259
+
260
+ # Check for feature request indicators
261
+ is_feature_request = any(
262
+ keyword in text
263
+ for keyword in self.FEATURE_REQUEST_KEYWORDS
264
+ )
265
+
266
+ if is_feature_request:
267
+ # Extract the specific request
268
+ request_text = self._extract_feature_request_text(text)
269
+
270
+ feature_requests.append({
271
+ 'review_id': review.get('id', ''),
272
+ 'rating': rating,
273
+ 'date': review.get('date', ''),
274
+ 'request_text': request_text,
275
+ 'full_review': text[:200] + '...' if len(text) > 200 else text
276
+ })
277
+
278
+ # Cluster similar requests
279
+ clustered_requests = self._cluster_feature_requests(feature_requests)
280
+
281
+ # Prioritize based on frequency and rating context
282
+ prioritized_requests = self._prioritize_feature_requests(clustered_requests)
283
+
284
+ return {
285
+ 'total_feature_requests': len(feature_requests),
286
+ 'clustered_requests': clustered_requests,
287
+ 'prioritized_requests': prioritized_requests,
288
+ 'implementation_recommendations': self._generate_feature_recommendations(
289
+ prioritized_requests
290
+ )
291
+ }
292
+
293
+ def track_sentiment_trends(
294
+ self,
295
+ reviews_by_period: Dict[str, List[Dict[str, Any]]]
296
+ ) -> Dict[str, Any]:
297
+ """
298
+ Track sentiment changes over time.
299
+
300
+ Args:
301
+ reviews_by_period: Dict of period_name: reviews
302
+
303
+ Returns:
304
+ Trend analysis
305
+ """
306
+ trends = []
307
+
308
+ for period, reviews in reviews_by_period.items():
309
+ sentiment = self.analyze_sentiment(reviews)
310
+
311
+ trends.append({
312
+ 'period': period,
313
+ 'total_reviews': len(reviews),
314
+ 'average_rating': sentiment['average_rating'],
315
+ 'positive_percentage': sentiment['sentiment_distribution']['positive'],
316
+ 'negative_percentage': sentiment['sentiment_distribution']['negative']
317
+ })
318
+
319
+ # Calculate trend direction
320
+ if len(trends) >= 2:
321
+ first_period = trends[0]
322
+ last_period = trends[-1]
323
+
324
+ rating_change = last_period['average_rating'] - first_period['average_rating']
325
+ sentiment_change = last_period['positive_percentage'] - first_period['positive_percentage']
326
+
327
+ trend_direction = self._determine_trend_direction(
328
+ rating_change,
329
+ sentiment_change
330
+ )
331
+ else:
332
+ trend_direction = 'insufficient_data'
333
+
334
+ return {
335
+ 'periods_analyzed': len(trends),
336
+ 'trend_data': trends,
337
+ 'trend_direction': trend_direction,
338
+ 'insights': self._generate_trend_insights(trends, trend_direction)
339
+ }
340
+
341
+ def generate_response_templates(
342
+ self,
343
+ issue_category: str
344
+ ) -> List[Dict[str, str]]:
345
+ """
346
+ Generate response templates for common review scenarios.
347
+
348
+ Args:
349
+ issue_category: Category of issue ('crash', 'feature_request', 'positive', etc.)
350
+
351
+ Returns:
352
+ Response templates
353
+ """
354
+ templates = {
355
+ 'crash': [
356
+ {
357
+ 'scenario': 'App crash reported',
358
+ 'template': "Thank you for bringing this to our attention. We're sorry you experienced a crash. "
359
+ "Our team is investigating this issue. Could you please share more details about when "
360
+ "this occurred (device model, iOS/Android version) by contacting support@[company].com? "
361
+ "We're committed to fixing this quickly."
362
+ },
363
+ {
364
+ 'scenario': 'Crash already fixed',
365
+ 'template': "Thank you for your feedback. We've identified and fixed this crash issue in version [X.X]. "
366
+ "Please update to the latest version. If the problem persists, please reach out to "
367
+ "support@[company].com and we'll help you directly."
368
+ }
369
+ ],
370
+ 'bug': [
371
+ {
372
+ 'scenario': 'Bug reported',
373
+ 'template': "Thanks for reporting this bug. We take these issues seriously. Our team is looking into it "
374
+ "and we'll have a fix in an upcoming update. We appreciate your patience and will notify you "
375
+ "when it's resolved."
376
+ }
377
+ ],
378
+ 'feature_request': [
379
+ {
380
+ 'scenario': 'Feature request received',
381
+ 'template': "Thank you for this suggestion! We're always looking to improve [app_name]. We've added your "
382
+ "request to our roadmap and will consider it for a future update. Follow us @[social] for "
383
+ "updates on new features."
384
+ },
385
+ {
386
+ 'scenario': 'Feature already planned',
387
+ 'template': "Great news! This feature is already on our roadmap and we're working on it. Stay tuned for "
388
+ "updates in the coming months. Thanks for your feedback!"
389
+ }
390
+ ],
391
+ 'positive': [
392
+ {
393
+ 'scenario': 'Positive review',
394
+ 'template': "Thank you so much for your kind words! We're thrilled that you're enjoying [app_name]. "
395
+ "Reviews like yours motivate our team to keep improving. If you ever have suggestions, "
396
+ "we'd love to hear them!"
397
+ }
398
+ ],
399
+ 'negative_general': [
400
+ {
401
+ 'scenario': 'General complaint',
402
+ 'template': "We're sorry to hear you're not satisfied with your experience. We'd like to make this right. "
403
+ "Please contact us at support@[company].com so we can understand the issue better and help "
404
+ "you directly. Thank you for giving us a chance to improve."
405
+ }
406
+ ]
407
+ }
408
+
409
+ return templates.get(issue_category, templates['negative_general'])
410
+
411
+ def _calculate_sentiment_score(self, text: str, rating: int) -> float:
412
+ """Calculate sentiment score (-1 to 1)."""
413
+ # Start with rating-based score
414
+ rating_score = (rating - 3) / 2 # Convert 1-5 to -1 to 1
415
+
416
+ # Adjust based on text sentiment
417
+ positive_count = sum(1 for keyword in self.POSITIVE_KEYWORDS if keyword in text)
418
+ negative_count = sum(1 for keyword in self.NEGATIVE_KEYWORDS if keyword in text)
419
+
420
+ text_score = (positive_count - negative_count) / 10 # Normalize
421
+
422
+ # Weighted average (60% rating, 40% text)
423
+ final_score = (rating_score * 0.6) + (text_score * 0.4)
424
+
425
+ return max(min(final_score, 1.0), -1.0)
426
+
427
+ def _categorize_sentiment(self, score: float) -> str:
428
+ """Categorize sentiment score."""
429
+ if score > 0.3:
430
+ return 'positive'
431
+ elif score < -0.3:
432
+ return 'negative'
433
+ else:
434
+ return 'neutral'
435
+
436
+ def _assess_sentiment_trend(self, distribution: Dict[str, float]) -> str:
437
+ """Assess overall sentiment trend."""
438
+ positive = distribution['positive']
439
+ negative = distribution['negative']
440
+
441
+ if positive > 70:
442
+ return 'very_positive'
443
+ elif positive > 50:
444
+ return 'positive'
445
+ elif negative > 30:
446
+ return 'concerning'
447
+ elif negative > 50:
448
+ return 'critical'
449
+ else:
450
+ return 'mixed'
451
+
452
+ def _categorize_themes(
453
+ self,
454
+ common_words: List[Dict[str, Any]],
455
+ common_phrases: List[Dict[str, Any]]
456
+ ) -> Dict[str, List[str]]:
457
+ """Categorize themes from words and phrases."""
458
+ themes = {
459
+ 'features': [],
460
+ 'performance': [],
461
+ 'usability': [],
462
+ 'support': [],
463
+ 'pricing': []
464
+ }
465
+
466
+ # Keywords for each category
467
+ feature_keywords = {'feature', 'functionality', 'option', 'tool'}
468
+ performance_keywords = {'fast', 'slow', 'crash', 'lag', 'speed', 'performance'}
469
+ usability_keywords = {'easy', 'difficult', 'intuitive', 'confusing', 'interface', 'design'}
470
+ support_keywords = {'support', 'help', 'customer', 'service', 'response'}
471
+ pricing_keywords = {'price', 'cost', 'expensive', 'cheap', 'subscription', 'free'}
472
+
473
+ for word_data in common_words:
474
+ word = word_data['word']
475
+ if any(kw in word for kw in feature_keywords):
476
+ themes['features'].append(word)
477
+ elif any(kw in word for kw in performance_keywords):
478
+ themes['performance'].append(word)
479
+ elif any(kw in word for kw in usability_keywords):
480
+ themes['usability'].append(word)
481
+ elif any(kw in word for kw in support_keywords):
482
+ themes['support'].append(word)
483
+ elif any(kw in word for kw in pricing_keywords):
484
+ themes['pricing'].append(word)
485
+
486
+ return {k: v for k, v in themes.items() if v} # Remove empty categories
487
+
488
+ def _generate_theme_insights(self, themes: Dict[str, List[str]]) -> List[str]:
489
+ """Generate insights from themes."""
490
+ insights = []
491
+
492
+ for category, keywords in themes.items():
493
+ if keywords:
494
+ insights.append(
495
+ f"{category.title()}: Users frequently mention {', '.join(keywords[:3])}"
496
+ )
497
+
498
+ return insights[:5]
499
+
500
+ def _categorize_issues(self, issues: List[Dict[str, Any]]) -> Dict[str, List[Dict[str, Any]]]:
501
+ """Categorize issues by type."""
502
+ categories = {
503
+ 'crashes': [],
504
+ 'bugs': [],
505
+ 'performance': [],
506
+ 'compatibility': []
507
+ }
508
+
509
+ for issue in issues:
510
+ keywords = issue['issue_keywords']
511
+
512
+ if 'crash' in keywords or 'freezes' in keywords:
513
+ categories['crashes'].append(issue)
514
+ elif 'bug' in keywords or 'error' in keywords or 'broken' in keywords:
515
+ categories['bugs'].append(issue)
516
+ elif 'slow' in keywords or 'laggy' in keywords:
517
+ categories['performance'].append(issue)
518
+ else:
519
+ categories['compatibility'].append(issue)
520
+
521
+ return {k: v for k, v in categories.items() if v}
522
+
523
+ def _calculate_issue_severity(
524
+ self,
525
+ categorized_issues: Dict[str, List[Dict[str, Any]]],
526
+ total_reviews: int
527
+ ) -> Dict[str, Dict[str, Any]]:
528
+ """Calculate severity scores for each issue category."""
529
+ severity_scores = {}
530
+
531
+ for category, issues in categorized_issues.items():
532
+ count = len(issues)
533
+ percentage = (count / total_reviews) * 100 if total_reviews > 0 else 0
534
+
535
+ # Calculate average rating of affected reviews
536
+ avg_rating = sum(i['rating'] for i in issues) / count if count > 0 else 0
537
+
538
+ # Severity score (0-100)
539
+ severity = min((percentage * 10) + ((5 - avg_rating) * 10), 100)
540
+
541
+ severity_scores[category] = {
542
+ 'count': count,
543
+ 'percentage': round(percentage, 2),
544
+ 'average_rating': round(avg_rating, 2),
545
+ 'severity_score': round(severity, 1),
546
+ 'priority': 'critical' if severity > 70 else ('high' if severity > 40 else 'medium')
547
+ }
548
+
549
+ return severity_scores
550
+
551
+ def _rank_issues_by_severity(
552
+ self,
553
+ severity_scores: Dict[str, Dict[str, Any]]
554
+ ) -> List[Dict[str, Any]]:
555
+ """Rank issues by severity score."""
556
+ ranked = sorted(
557
+ [{'category': cat, **data} for cat, data in severity_scores.items()],
558
+ key=lambda x: x['severity_score'],
559
+ reverse=True
560
+ )
561
+ return ranked
562
+
563
+ def _generate_issue_recommendations(
564
+ self,
565
+ categorized_issues: Dict[str, List[Dict[str, Any]]],
566
+ severity_scores: Dict[str, Dict[str, Any]]
567
+ ) -> List[str]:
568
+ """Generate recommendations for addressing issues."""
569
+ recommendations = []
570
+
571
+ for category, score_data in severity_scores.items():
572
+ if score_data['priority'] == 'critical':
573
+ recommendations.append(
574
+ f"URGENT: Address {category} issues immediately - affecting {score_data['percentage']}% of reviews"
575
+ )
576
+ elif score_data['priority'] == 'high':
577
+ recommendations.append(
578
+ f"HIGH PRIORITY: Focus on {category} issues in next update"
579
+ )
580
+
581
+ return recommendations
582
+
583
+ def _extract_feature_request_text(self, text: str) -> str:
584
+ """Extract the specific feature request from review text."""
585
+ # Simple extraction - find sentence with feature request keywords
586
+ sentences = text.split('.')
587
+ for sentence in sentences:
588
+ if any(keyword in sentence for keyword in self.FEATURE_REQUEST_KEYWORDS):
589
+ return sentence.strip()
590
+ return text[:100] # Fallback
591
+
592
+ def _cluster_feature_requests(
593
+ self,
594
+ feature_requests: List[Dict[str, Any]]
595
+ ) -> List[Dict[str, Any]]:
596
+ """Cluster similar feature requests."""
597
+ # Simplified clustering - group by common keywords
598
+ clusters = {}
599
+
600
+ for request in feature_requests:
601
+ text = request['request_text'].lower()
602
+ # Extract key words
603
+ words = [w for w in text.split() if len(w) > 4]
604
+
605
+ # Try to find matching cluster
606
+ matched = False
607
+ for cluster_key in clusters:
608
+ if any(word in cluster_key for word in words[:3]):
609
+ clusters[cluster_key].append(request)
610
+ matched = True
611
+ break
612
+
613
+ if not matched and words:
614
+ cluster_key = ' '.join(words[:2])
615
+ clusters[cluster_key] = [request]
616
+
617
+ return [
618
+ {'feature_theme': theme, 'request_count': len(requests), 'examples': requests[:3]}
619
+ for theme, requests in clusters.items()
620
+ ]
621
+
622
+ def _prioritize_feature_requests(
623
+ self,
624
+ clustered_requests: List[Dict[str, Any]]
625
+ ) -> List[Dict[str, Any]]:
626
+ """Prioritize feature requests by frequency."""
627
+ return sorted(
628
+ clustered_requests,
629
+ key=lambda x: x['request_count'],
630
+ reverse=True
631
+ )[:10]
632
+
633
+ def _generate_feature_recommendations(
634
+ self,
635
+ prioritized_requests: List[Dict[str, Any]]
636
+ ) -> List[str]:
637
+ """Generate recommendations for feature requests."""
638
+ recommendations = []
639
+
640
+ if prioritized_requests:
641
+ top_request = prioritized_requests[0]
642
+ recommendations.append(
643
+ f"Most requested feature: {top_request['feature_theme']} "
644
+ f"({top_request['request_count']} mentions) - consider for next major release"
645
+ )
646
+
647
+ if len(prioritized_requests) > 1:
648
+ recommendations.append(
649
+ f"Also consider: {prioritized_requests[1]['feature_theme']}"
650
+ )
651
+
652
+ return recommendations
653
+
654
+ def _determine_trend_direction(
655
+ self,
656
+ rating_change: float,
657
+ sentiment_change: float
658
+ ) -> str:
659
+ """Determine overall trend direction."""
660
+ if rating_change > 0.2 and sentiment_change > 5:
661
+ return 'improving'
662
+ elif rating_change < -0.2 and sentiment_change < -5:
663
+ return 'declining'
664
+ else:
665
+ return 'stable'
666
+
667
+ def _generate_trend_insights(
668
+ self,
669
+ trends: List[Dict[str, Any]],
670
+ trend_direction: str
671
+ ) -> List[str]:
672
+ """Generate insights from trend analysis."""
673
+ insights = []
674
+
675
+ if trend_direction == 'improving':
676
+ insights.append("Positive trend: User satisfaction is increasing over time")
677
+ elif trend_direction == 'declining':
678
+ insights.append("WARNING: User satisfaction is declining - immediate action needed")
679
+ else:
680
+ insights.append("Sentiment is stable - maintain current quality")
681
+
682
+ # Review velocity insight
683
+ if len(trends) >= 2:
684
+ recent_reviews = trends[-1]['total_reviews']
685
+ previous_reviews = trends[-2]['total_reviews']
686
+
687
+ if recent_reviews > previous_reviews * 1.5:
688
+ insights.append("Review volume increasing - growing user base or recent controversy")
689
+
690
+ return insights
691
+
692
+
693
+ def analyze_reviews(
694
+ app_name: str,
695
+ reviews: List[Dict[str, Any]]
696
+ ) -> Dict[str, Any]:
697
+ """
698
+ Convenience function to perform comprehensive review analysis.
699
+
700
+ Args:
701
+ app_name: App name
702
+ reviews: List of review dictionaries
703
+
704
+ Returns:
705
+ Complete review analysis
706
+ """
707
+ analyzer = ReviewAnalyzer(app_name)
708
+
709
+ return {
710
+ 'sentiment_analysis': analyzer.analyze_sentiment(reviews),
711
+ 'common_themes': analyzer.extract_common_themes(reviews),
712
+ 'issues_identified': analyzer.identify_issues(reviews),
713
+ 'feature_requests': analyzer.find_feature_requests(reviews)
714
+ }