@cometchat/skills 4.4.1 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (489) hide show
  1. package/.claude-plugin/marketplace.json +55 -0
  2. package/.claude-plugin/plugin.json +14 -0
  3. package/CHANGELOG.md +36 -0
  4. package/README.md +41 -163
  5. package/RULES.md +114 -0
  6. package/bin/cometchat-skills.mjs +1180 -0
  7. package/bin/legacy-skills.json +95 -0
  8. package/catalogs/android-v6.json +1646 -0
  9. package/catalogs/flutter-v6.json +651 -0
  10. package/catalogs/ios-v5.json +1383 -0
  11. package/catalogs/rn-calls-v5.json +134 -0
  12. package/catalogs/rn-calls-v5.symbols.txt +58 -0
  13. package/catalogs/rn-sdk-v4.json +672 -0
  14. package/catalogs/rn-v5.json +449 -0
  15. package/catalogs/rn-v5.symbols.txt +216 -0
  16. package/catalogs/sdk-android-v5.json +514 -0
  17. package/contracts.android-calls-v5.json +122 -0
  18. package/contracts.android-v6.json +135 -0
  19. package/contracts.angular-v5.json +694 -0
  20. package/contracts.flutter-calls-v5.json +77 -0
  21. package/contracts.flutter-v6.json +126 -0
  22. package/contracts.ios-calls-v5.json +67 -0
  23. package/contracts.ios-v5.json +436 -0
  24. package/contracts.json +82 -0
  25. package/contracts.rn-calls-v5.json +77 -0
  26. package/contracts.rn-v5.json +727 -0
  27. package/contracts.sdk-android-v5.json +15 -0
  28. package/contracts.web-calls-v5.json +45 -0
  29. package/features.android-calls-v5.json +246 -0
  30. package/features.android-v6.json +65 -0
  31. package/features.angular-v5.json +521 -0
  32. package/features.flutter-calls-v5.json +286 -0
  33. package/features.flutter-v6.json +484 -0
  34. package/features.ios-calls-v5.json +236 -0
  35. package/features.ios-v5.json +573 -0
  36. package/features.json +61 -0
  37. package/features.rn-calls-v5.json +187 -0
  38. package/features.rn-v5.json +614 -0
  39. package/features.sdk-android-v5.json +40 -0
  40. package/features.sdk-jsv4.json +24 -0
  41. package/features.web-calls-v5.json +108 -0
  42. package/package.json +151 -74
  43. package/peers.yaml +312 -0
  44. package/registry/README.md +31 -0
  45. package/registry/android-calls-v5.json +54 -0
  46. package/registry/android-v6.json +137 -0
  47. package/registry/angular-v5.json +114 -0
  48. package/registry/flutter-calls-v5.json +54 -0
  49. package/registry/flutter-v6.json +119 -0
  50. package/registry/ios-calls-v5.json +59 -0
  51. package/registry/ios-v5.json +97 -0
  52. package/registry/rn-calls-v5.json +59 -0
  53. package/registry/rn-v5.json +129 -0
  54. package/registry/sdk-android-v5.json +53 -0
  55. package/registry/sdk-jsv4.json +53 -0
  56. package/registry/web-calls-v5.json +54 -0
  57. package/registry/web-v7.json +99 -0
  58. package/skills/cometchat/SKILL.md +42 -2096
  59. package/skills/cometchat-android-v5-calls-sdk/SKILL.md +206 -0
  60. package/skills/cometchat-android-v5-calls-sdk/references/build-truth.md +63 -0
  61. package/skills/cometchat-android-v5-calls-sdk/references/docs-map.md +119 -0
  62. package/skills/cometchat-android-v5-calls-sdk/references/method-map.md +53 -0
  63. package/skills/cometchat-android-v5-calls-sdk/references/pitfalls.md +72 -0
  64. package/skills/cometchat-android-v5-calls-sdk/references/ringing.md +92 -0
  65. package/skills/cometchat-android-v5-calls-sdk/references/user-switch.md +90 -0
  66. package/skills/cometchat-android-v5-sdk/SKILL.md +127 -0
  67. package/skills/cometchat-android-v5-sdk/references/app-surface.md +88 -0
  68. package/skills/cometchat-android-v5-sdk/references/docs-map.md +91 -0
  69. package/skills/cometchat-android-v6-builder-settings/SKILL.md +51 -137
  70. package/skills/cometchat-android-v6-calls/SKILL.md +128 -411
  71. package/skills/cometchat-android-v6-compose-components/SKILL.md +84 -194
  72. package/skills/cometchat-android-v6-compose-customization/SKILL.md +66 -411
  73. package/skills/cometchat-android-v6-compose-placement/SKILL.md +154 -237
  74. package/skills/cometchat-android-v6-core/SKILL.md +236 -672
  75. package/skills/cometchat-android-v6-core/references/anti-patterns.md +31 -0
  76. package/skills/cometchat-android-v6-core/references/component-props.md +168 -0
  77. package/skills/cometchat-android-v6-core/references/docs-map.md +153 -0
  78. package/skills/cometchat-android-v6-core/references/layout.md +112 -0
  79. package/skills/cometchat-android-v6-core/references/lifecycle.md +75 -0
  80. package/skills/cometchat-android-v6-core/references/setup-credentials.md +105 -0
  81. package/skills/cometchat-android-v6-core/references/troubleshooting.md +36 -0
  82. package/skills/cometchat-android-v6-events/SKILL.md +46 -184
  83. package/skills/cometchat-android-v6-extensions/SKILL.md +39 -179
  84. package/skills/cometchat-android-v6-features/SKILL.md +74 -143
  85. package/skills/cometchat-android-v6-kotlin-components/SKILL.md +75 -193
  86. package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +67 -419
  87. package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +77 -223
  88. package/skills/cometchat-android-v6-migration/SKILL.md +67 -378
  89. package/skills/cometchat-android-v6-production/SKILL.md +40 -179
  90. package/skills/cometchat-android-v6-push/SKILL.md +39 -289
  91. package/skills/cometchat-android-v6-testing/SKILL.md +50 -265
  92. package/skills/cometchat-android-v6-troubleshooting/SKILL.md +70 -254
  93. package/skills/cometchat-angular-v5-calls/SKILL.md +193 -0
  94. package/skills/cometchat-angular-v5-components/SKILL.md +131 -0
  95. package/skills/cometchat-angular-v5-components/references/catalog.md +111 -0
  96. package/skills/cometchat-angular-v5-components/references/host-composed.md +46 -0
  97. package/skills/cometchat-angular-v5-core/SKILL.md +300 -0
  98. package/skills/cometchat-angular-v5-core/references/anti-patterns.md +49 -0
  99. package/skills/cometchat-angular-v5-core/references/component-props.md +55 -0
  100. package/skills/cometchat-angular-v5-core/references/dependencies.md +66 -0
  101. package/skills/cometchat-angular-v5-core/references/docs-map.md +132 -0
  102. package/skills/cometchat-angular-v5-core/references/layout.md +64 -0
  103. package/skills/cometchat-angular-v5-core/references/lifecycle.md +202 -0
  104. package/skills/cometchat-angular-v5-core/references/setup-credentials.md +137 -0
  105. package/skills/cometchat-angular-v5-core/references/theming.md +70 -0
  106. package/skills/cometchat-angular-v5-core/references/troubleshooting.md +27 -0
  107. package/skills/cometchat-angular-v5-customization/SKILL.md +94 -0
  108. package/skills/cometchat-angular-v5-features/SKILL.md +107 -0
  109. package/skills/cometchat-angular-v5-features/references/custom-messages.md +133 -0
  110. package/skills/cometchat-angular-v5-features/references/formatters.md +28 -0
  111. package/skills/cometchat-angular-v5-features/references/host-composed-extensions.md +85 -0
  112. package/skills/cometchat-angular-v5-migration/SKILL.md +40 -0
  113. package/skills/cometchat-angular-v5-migration/references/migration-guide.md +165 -0
  114. package/skills/cometchat-angular-v5-patterns/SKILL.md +107 -0
  115. package/skills/cometchat-angular-v5-placement/SKILL.md +133 -0
  116. package/skills/cometchat-angular-v5-placement/references/combined-app.md +174 -0
  117. package/skills/cometchat-angular-v5-placement/references/core-surface.md +199 -0
  118. package/skills/cometchat-angular-v5-production/SKILL.md +101 -0
  119. package/skills/cometchat-angular-v5-push/SKILL.md +61 -0
  120. package/skills/cometchat-angular-v5-testing/SKILL.md +112 -0
  121. package/skills/cometchat-angular-v5-troubleshooting/SKILL.md +96 -0
  122. package/skills/cometchat-flutter-v5-sdk/SKILL.md +188 -0
  123. package/skills/cometchat-flutter-v5-sdk/references/doc-corrections.md +55 -0
  124. package/skills/cometchat-flutter-v5-sdk/references/docs-map.md +211 -0
  125. package/skills/cometchat-flutter-v5-sdk/references/platform-notes.md +48 -0
  126. package/skills/cometchat-flutter-v5-sdk/references/transcription.md +87 -0
  127. package/skills/cometchat-flutter-v6-calls/SKILL.md +75 -387
  128. package/skills/cometchat-flutter-v6-components/SKILL.md +88 -361
  129. package/skills/cometchat-flutter-v6-core/SKILL.md +154 -593
  130. package/skills/cometchat-flutter-v6-core/references/anti-patterns.md +55 -0
  131. package/skills/cometchat-flutter-v6-core/references/docs-map.md +143 -0
  132. package/skills/cometchat-flutter-v6-core/references/layout.md +45 -0
  133. package/skills/cometchat-flutter-v6-core/references/lifecycle.md +87 -0
  134. package/skills/cometchat-flutter-v6-core/references/setup-credentials.md +84 -0
  135. package/skills/cometchat-flutter-v6-core/references/troubleshooting.md +26 -0
  136. package/skills/cometchat-flutter-v6-customization/SKILL.md +70 -712
  137. package/skills/cometchat-flutter-v6-events/SKILL.md +79 -174
  138. package/skills/cometchat-flutter-v6-features/SKILL.md +55 -394
  139. package/skills/cometchat-flutter-v6-migration/SKILL.md +68 -367
  140. package/skills/cometchat-flutter-v6-migration/references/migration-guide.md +131 -0
  141. package/skills/cometchat-flutter-v6-patterns/SKILL.md +61 -0
  142. package/skills/cometchat-flutter-v6-placement/SKILL.md +94 -381
  143. package/skills/cometchat-flutter-v6-production/SKILL.md +58 -615
  144. package/skills/cometchat-flutter-v6-push/SKILL.md +46 -455
  145. package/skills/cometchat-flutter-v6-testing/SKILL.md +68 -299
  146. package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +54 -878
  147. package/skills/cometchat-ios-calls/SKILL.md +105 -511
  148. package/skills/cometchat-ios-components/SKILL.md +44 -834
  149. package/skills/cometchat-ios-core/SKILL.md +181 -1068
  150. package/skills/cometchat-ios-core/references/anti-patterns.md +80 -0
  151. package/skills/cometchat-ios-core/references/docs-map.md +123 -0
  152. package/skills/cometchat-ios-core/references/install.md +23 -0
  153. package/skills/cometchat-ios-core/references/layout.md +186 -0
  154. package/skills/cometchat-ios-core/references/setup-credentials.md +197 -0
  155. package/skills/cometchat-ios-core/references/swiftui.md +91 -0
  156. package/skills/cometchat-ios-core/references/troubleshooting.md +100 -0
  157. package/skills/cometchat-ios-customization/SKILL.md +33 -968
  158. package/skills/cometchat-ios-features/SKILL.md +29 -738
  159. package/skills/cometchat-ios-migration/SKILL.md +39 -0
  160. package/skills/cometchat-ios-placement/SKILL.md +51 -729
  161. package/skills/cometchat-ios-push/SKILL.md +24 -602
  162. package/skills/cometchat-ios-v5-sdk/SKILL.md +161 -0
  163. package/skills/cometchat-ios-v5-sdk/references/docs-map.md +326 -0
  164. package/skills/cometchat-js-v5-sdk/SKILL.md +95 -0
  165. package/skills/cometchat-js-v5-sdk/references/docs-map.md +114 -0
  166. package/skills/cometchat-onboarding/SKILL.md +89 -0
  167. package/skills/cometchat-onboarding/references/archetypes.md +51 -0
  168. package/skills/cometchat-onboarding/references/calling-first.md +77 -0
  169. package/skills/cometchat-onboarding/references/not-in-this-pack.md +8 -0
  170. package/skills/cometchat-onboarding/references/plan-artifact.md +133 -0
  171. package/skills/cometchat-onboarding/references/platforms.md +90 -0
  172. package/skills/cometchat-react-native-bare-patterns/SKILL.md +120 -0
  173. package/skills/cometchat-react-native-calls/SKILL.md +200 -0
  174. package/skills/cometchat-react-native-components/SKILL.md +142 -0
  175. package/skills/cometchat-react-native-core/SKILL.md +313 -0
  176. package/skills/cometchat-react-native-core/references/anti-patterns.md +79 -0
  177. package/skills/cometchat-react-native-core/references/component-props.md +105 -0
  178. package/skills/cometchat-react-native-core/references/dependencies.md +62 -0
  179. package/skills/cometchat-react-native-core/references/docs-map.md +126 -0
  180. package/skills/cometchat-react-native-core/references/layout.md +61 -0
  181. package/skills/cometchat-react-native-core/references/lifecycle.md +64 -0
  182. package/skills/cometchat-react-native-core/references/setup-credentials.md +39 -0
  183. package/skills/cometchat-react-native-customization/SKILL.md +198 -0
  184. package/skills/cometchat-react-native-expo-patterns/SKILL.md +116 -0
  185. package/skills/cometchat-react-native-features/SKILL.md +122 -0
  186. package/skills/cometchat-react-native-migration/SKILL.md +103 -0
  187. package/skills/cometchat-react-native-placement/SKILL.md +158 -0
  188. package/skills/cometchat-react-native-production/SKILL.md +78 -0
  189. package/skills/cometchat-react-native-push/SKILL.md +88 -0
  190. package/skills/cometchat-react-native-sdk/SKILL.md +126 -0
  191. package/skills/cometchat-react-native-sdk/references/method-map.md +239 -0
  192. package/skills/cometchat-react-native-sdk/references/page-map.md +96 -0
  193. package/skills/cometchat-react-native-testing/SKILL.md +94 -0
  194. package/skills/cometchat-react-native-troubleshooting/SKILL.md +116 -0
  195. package/skills/cometchat-react-native-v5-sdk/SKILL.md +150 -0
  196. package/skills/cometchat-react-native-v5-sdk/references/docs-map.md +127 -0
  197. package/skills/cometchat-react-native-v5-sdk/references/ringing-voip.md +369 -0
  198. package/skills/cometchat-react-v7-calls/SKILL.md +75 -0
  199. package/skills/cometchat-react-v7-components/SKILL.md +72 -0
  200. package/skills/cometchat-react-v7-core/SKILL.md +101 -0
  201. package/skills/cometchat-react-v7-core/references/anti-patterns.md +19 -0
  202. package/skills/cometchat-react-v7-core/references/component-props.md +82 -0
  203. package/skills/cometchat-react-v7-core/references/dependencies.md +23 -0
  204. package/skills/cometchat-react-v7-core/references/docs-map.md +117 -0
  205. package/skills/cometchat-react-v7-core/references/i18n-rtl-a11y.md +22 -0
  206. package/skills/cometchat-react-v7-core/references/layout.md +158 -0
  207. package/skills/cometchat-react-v7-core/references/lifecycle.md +74 -0
  208. package/skills/cometchat-react-v7-core/references/setup-credentials.md +58 -0
  209. package/skills/cometchat-react-v7-core/references/ssr.md +11 -0
  210. package/skills/cometchat-react-v7-core/references/theming.md +52 -0
  211. package/skills/cometchat-react-v7-core/references/troubleshooting.md +28 -0
  212. package/skills/cometchat-react-v7-customization/SKILL.md +84 -0
  213. package/skills/cometchat-react-v7-features/SKILL.md +92 -0
  214. package/skills/cometchat-react-v7-migration/SKILL.md +39 -0
  215. package/skills/cometchat-react-v7-migration/references/migration-guide.md +119 -0
  216. package/skills/cometchat-react-v7-patterns/SKILL.md +43 -0
  217. package/skills/cometchat-react-v7-placement/SKILL.md +106 -0
  218. package/skills/cometchat-react-v7-placement/references/recipes.md +354 -0
  219. package/skills/cometchat-react-v7-push/SKILL.md +53 -0
  220. package/test-suite/README.md +70 -0
  221. package/test-suite/catalogs/android-calls-v5.json +830 -0
  222. package/test-suite/catalogs/android-calls-v5.symbols.txt +499 -0
  223. package/test-suite/catalogs/android-v6.json +1646 -0
  224. package/test-suite/catalogs/android-v6.symbols.txt +298 -0
  225. package/test-suite/catalogs/angular-v5.json +7587 -0
  226. package/test-suite/catalogs/flutter-calls-v5.json +196 -0
  227. package/test-suite/catalogs/flutter-calls-v5.symbols.txt +59 -0
  228. package/test-suite/catalogs/flutter-v6.json +651 -0
  229. package/test-suite/catalogs/ios-calls-v5.json +158 -0
  230. package/test-suite/catalogs/ios-calls-v5.symbols.txt +70 -0
  231. package/test-suite/catalogs/ios-v5.json +1383 -0
  232. package/test-suite/catalogs/ios-v5.symbols.txt +699 -0
  233. package/test-suite/catalogs/rn-calls-v5.json +134 -0
  234. package/test-suite/catalogs/rn-sdk-v4.json +672 -0
  235. package/test-suite/catalogs/rn-v5.json +449 -0
  236. package/test-suite/catalogs/sdk-android-v5.json +514 -0
  237. package/test-suite/catalogs/sdk-android-v5.symbols.txt +254 -0
  238. package/test-suite/catalogs/sdk-jsv4.json +800 -0
  239. package/test-suite/catalogs/web-calls-v5.json +195 -0
  240. package/test-suite/catalogs/web-v7.json +1243 -0
  241. package/test-suite/scripts/build-registry.mjs +113 -0
  242. package/test-suite/scripts/catalog-refresh-dart.mjs +151 -0
  243. package/test-suite/scripts/catalog-refresh.mjs +100 -0
  244. package/test-suite/scripts/lint-skills.mjs +909 -0
  245. package/test-suite/scripts/measure-tokens.mjs +169 -0
  246. package/test-suite/scripts/typecheck-fences-dart.mjs +437 -0
  247. package/test-suite/scripts/typecheck-fences-kotlin.mjs +269 -0
  248. package/test-suite/scripts/typecheck-fences.mjs +206 -0
  249. package/test-suite/scripts/verify-catalog.mjs +242 -0
  250. package/test-suite/scripts/verify-contract-fences.mjs +94 -0
  251. package/test-suite/scripts/verify-detection.mjs +178 -0
  252. package/test-suite/scripts/verify-docs-base.mjs +91 -0
  253. package/test-suite/scripts/verify-family-agnostic.mjs +130 -0
  254. package/test-suite/scripts/verify-golden-path.mjs +138 -0
  255. package/test-suite/scripts/verify-oracle-components.mjs +133 -0
  256. package/test-suite/scripts/verify-template-bindings.mjs +148 -0
  257. package/test-suite/typecheck/angular-v5/package.json +21 -0
  258. package/test-suite/typecheck/angular-v5/tsconfig.json +21 -0
  259. package/test-suite/typecheck/flutter-v6/analysis_options.yaml +25 -0
  260. package/test-suite/typecheck/flutter-v6/pubspec.yaml +21 -0
  261. package/test-suite/typecheck/web-v7/package.json +18 -0
  262. package/test-suite/typecheck/web-v7/tsconfig.json +19 -0
  263. package/bin/install.js +0 -1003
  264. package/skills/.claude-plugin/marketplace.json +0 -86
  265. package/skills/cometchat/references/asking-questions.md +0 -48
  266. package/skills/cometchat-a11y/SKILL.md +0 -477
  267. package/skills/cometchat-android-v5/SKILL.md +0 -121
  268. package/skills/cometchat-android-v5-calls/SKILL.md +0 -427
  269. package/skills/cometchat-android-v5-calls/references/README.md +0 -53
  270. package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +0 -197
  271. package/skills/cometchat-android-v5-calls/references/audio-controls.md +0 -91
  272. package/skills/cometchat-android-v5-calls/references/background-handling.md +0 -168
  273. package/skills/cometchat-android-v5-calls/references/call-layouts.md +0 -131
  274. package/skills/cometchat-android-v5-calls/references/call-logs.md +0 -113
  275. package/skills/cometchat-android-v5-calls/references/call-session.md +0 -274
  276. package/skills/cometchat-android-v5-calls/references/custom-ui.md +0 -150
  277. package/skills/cometchat-android-v5-calls/references/event-listeners.md +0 -123
  278. package/skills/cometchat-android-v5-calls/references/group-calls.md +0 -205
  279. package/skills/cometchat-android-v5-calls/references/idle-timeout.md +0 -117
  280. package/skills/cometchat-android-v5-calls/references/in-call-chat.md +0 -134
  281. package/skills/cometchat-android-v5-calls/references/join-session.md +0 -120
  282. package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +0 -222
  283. package/skills/cometchat-android-v5-calls/references/participant-management.md +0 -110
  284. package/skills/cometchat-android-v5-calls/references/picture-in-picture.md +0 -106
  285. package/skills/cometchat-android-v5-calls/references/raise-hand.md +0 -248
  286. package/skills/cometchat-android-v5-calls/references/recording.md +0 -101
  287. package/skills/cometchat-android-v5-calls/references/ringing-integration.md +0 -152
  288. package/skills/cometchat-android-v5-calls/references/screen-sharing.md +0 -78
  289. package/skills/cometchat-android-v5-calls/references/server-fcm-voip.md +0 -215
  290. package/skills/cometchat-android-v5-calls/references/session-settings.md +0 -121
  291. package/skills/cometchat-android-v5-calls/references/setup.md +0 -137
  292. package/skills/cometchat-android-v5-calls/references/share-invite.md +0 -156
  293. package/skills/cometchat-android-v5-calls/references/video-controls.md +0 -87
  294. package/skills/cometchat-android-v5-calls/references/voip-calling.md +0 -526
  295. package/skills/cometchat-android-v5-components/SKILL.md +0 -431
  296. package/skills/cometchat-android-v5-core/SKILL.md +0 -486
  297. package/skills/cometchat-android-v5-customization/SKILL.md +0 -469
  298. package/skills/cometchat-android-v5-extensions/SKILL.md +0 -127
  299. package/skills/cometchat-android-v5-features/SKILL.md +0 -131
  300. package/skills/cometchat-android-v5-placement/SKILL.md +0 -277
  301. package/skills/cometchat-android-v5-production/SKILL.md +0 -95
  302. package/skills/cometchat-android-v5-push/SKILL.md +0 -619
  303. package/skills/cometchat-android-v5-testing/SKILL.md +0 -188
  304. package/skills/cometchat-android-v5-theming/SKILL.md +0 -167
  305. package/skills/cometchat-android-v5-troubleshooting/SKILL.md +0 -74
  306. package/skills/cometchat-android-v6/SKILL.md +0 -108
  307. package/skills/cometchat-android-v6-calls/references/add-calls-to-existing-chat.md +0 -97
  308. package/skills/cometchat-android-v6-calls/references/advanced-features.md +0 -87
  309. package/skills/cometchat-android-v6-calls/references/call-layouts.md +0 -100
  310. package/skills/cometchat-android-v6-calls/references/call-session.md +0 -163
  311. package/skills/cometchat-android-v6-calls/references/device-management.md +0 -172
  312. package/skills/cometchat-android-v6-calls/references/group-calls.md +0 -191
  313. package/skills/cometchat-android-v6-calls/references/idle-timeout.md +0 -110
  314. package/skills/cometchat-android-v6-calls/references/in-call-chat.md +0 -141
  315. package/skills/cometchat-android-v6-calls/references/raise-hand.md +0 -188
  316. package/skills/cometchat-android-v6-calls/references/ringing-integration.md +0 -176
  317. package/skills/cometchat-android-v6-calls/references/server-fcm-voip.md +0 -127
  318. package/skills/cometchat-android-v6-calls/references/share-invite.md +0 -105
  319. package/skills/cometchat-android-v6-compose-theming/SKILL.md +0 -250
  320. package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +0 -233
  321. package/skills/cometchat-angular-calls/SKILL.md +0 -378
  322. package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +0 -96
  323. package/skills/cometchat-angular-calls/references/call-layouts.md +0 -123
  324. package/skills/cometchat-angular-calls/references/call-session.md +0 -167
  325. package/skills/cometchat-angular-calls/references/custom-ui.md +0 -239
  326. package/skills/cometchat-angular-calls/references/device-management.md +0 -154
  327. package/skills/cometchat-angular-calls/references/group-calls.md +0 -433
  328. package/skills/cometchat-angular-calls/references/idle-timeout.md +0 -161
  329. package/skills/cometchat-angular-calls/references/in-call-chat.md +0 -148
  330. package/skills/cometchat-angular-calls/references/lazy-loading-pitfalls.md +0 -205
  331. package/skills/cometchat-angular-calls/references/migration-v4-to-v5.md +0 -53
  332. package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +0 -184
  333. package/skills/cometchat-angular-calls/references/picture-in-picture.md +0 -285
  334. package/skills/cometchat-angular-calls/references/raise-hand.md +0 -172
  335. package/skills/cometchat-angular-calls/references/recording-screen-share.md +0 -260
  336. package/skills/cometchat-angular-calls/references/ringing-integration.md +0 -133
  337. package/skills/cometchat-angular-calls/references/server-web-push-vapid.md +0 -100
  338. package/skills/cometchat-angular-calls/references/share-invite.md +0 -122
  339. package/skills/cometchat-angular-calls/references/virtual-background.md +0 -29
  340. package/skills/cometchat-angular-components/SKILL.md +0 -235
  341. package/skills/cometchat-angular-core/SKILL.md +0 -386
  342. package/skills/cometchat-angular-customization/SKILL.md +0 -616
  343. package/skills/cometchat-angular-features/SKILL.md +0 -329
  344. package/skills/cometchat-angular-patterns/SKILL.md +0 -256
  345. package/skills/cometchat-angular-placement/SKILL.md +0 -314
  346. package/skills/cometchat-angular-production/SKILL.md +0 -564
  347. package/skills/cometchat-angular-push/SKILL.md +0 -389
  348. package/skills/cometchat-angular-testing/SKILL.md +0 -605
  349. package/skills/cometchat-angular-theming/SKILL.md +0 -290
  350. package/skills/cometchat-angular-troubleshooting/SKILL.md +0 -364
  351. package/skills/cometchat-astro-patterns/SKILL.md +0 -708
  352. package/skills/cometchat-calls/SKILL.md +0 -364
  353. package/skills/cometchat-calls/references/use-case-broadcast.md +0 -199
  354. package/skills/cometchat-calls/references/use-case-marketplace.md +0 -157
  355. package/skills/cometchat-calls/references/use-case-support.md +0 -189
  356. package/skills/cometchat-calls/references/use-case-team.md +0 -180
  357. package/skills/cometchat-calls/references/use-case-telehealth.md +0 -153
  358. package/skills/cometchat-components/SKILL.md +0 -1142
  359. package/skills/cometchat-core/SKILL.md +0 -1048
  360. package/skills/cometchat-customization/SKILL.md +0 -580
  361. package/skills/cometchat-customization/references/component-catalog.md +0 -236
  362. package/skills/cometchat-features/SKILL.md +0 -861
  363. package/skills/cometchat-flutter-v5/SKILL.md +0 -173
  364. package/skills/cometchat-flutter-v5-calls/SKILL.md +0 -453
  365. package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +0 -193
  366. package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +0 -103
  367. package/skills/cometchat-flutter-v5-calls/references/call-session.md +0 -285
  368. package/skills/cometchat-flutter-v5-calls/references/device-management.md +0 -124
  369. package/skills/cometchat-flutter-v5-calls/references/group-calls.md +0 -181
  370. package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +0 -99
  371. package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +0 -135
  372. package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +0 -210
  373. package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +0 -255
  374. package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +0 -196
  375. package/skills/cometchat-flutter-v5-calls/references/server-push-bridge.md +0 -101
  376. package/skills/cometchat-flutter-v5-calls/references/share-invite.md +0 -148
  377. package/skills/cometchat-flutter-v5-conversations/SKILL.md +0 -118
  378. package/skills/cometchat-flutter-v5-core/SKILL.md +0 -239
  379. package/skills/cometchat-flutter-v5-customization/SKILL.md +0 -358
  380. package/skills/cometchat-flutter-v5-events/SKILL.md +0 -156
  381. package/skills/cometchat-flutter-v5-messages/SKILL.md +0 -259
  382. package/skills/cometchat-flutter-v5-production/SKILL.md +0 -216
  383. package/skills/cometchat-flutter-v5-push/SKILL.md +0 -285
  384. package/skills/cometchat-flutter-v5-testing/SKILL.md +0 -401
  385. package/skills/cometchat-flutter-v5-theming/SKILL.md +0 -161
  386. package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +0 -130
  387. package/skills/cometchat-flutter-v5-users-groups/SKILL.md +0 -152
  388. package/skills/cometchat-flutter-v6/SKILL.md +0 -446
  389. package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +0 -136
  390. package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +0 -89
  391. package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +0 -105
  392. package/skills/cometchat-flutter-v6-calls/references/call-session.md +0 -229
  393. package/skills/cometchat-flutter-v6-calls/references/device-management.md +0 -105
  394. package/skills/cometchat-flutter-v6-calls/references/group-calls.md +0 -190
  395. package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +0 -88
  396. package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +0 -125
  397. package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +0 -275
  398. package/skills/cometchat-flutter-v6-calls/references/ringing-integration.md +0 -171
  399. package/skills/cometchat-flutter-v6-calls/references/server-push-bridge.md +0 -93
  400. package/skills/cometchat-flutter-v6-calls/references/share-invite.md +0 -102
  401. package/skills/cometchat-flutter-v6-conversations/SKILL.md +0 -238
  402. package/skills/cometchat-flutter-v6-messages/SKILL.md +0 -384
  403. package/skills/cometchat-flutter-v6-theming/SKILL.md +0 -293
  404. package/skills/cometchat-flutter-v6-users-groups/SKILL.md +0 -224
  405. package/skills/cometchat-i18n/SKILL.md +0 -419
  406. package/skills/cometchat-ios/SKILL.md +0 -325
  407. package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +0 -174
  408. package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +0 -45
  409. package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +0 -188
  410. package/skills/cometchat-ios-calls/references/call-layouts.md +0 -76
  411. package/skills/cometchat-ios-calls/references/call-session.md +0 -218
  412. package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +0 -357
  413. package/skills/cometchat-ios-calls/references/custom-ui.md +0 -322
  414. package/skills/cometchat-ios-calls/references/device-management.md +0 -171
  415. package/skills/cometchat-ios-calls/references/group-calls.md +0 -359
  416. package/skills/cometchat-ios-calls/references/idle-timeout.md +0 -184
  417. package/skills/cometchat-ios-calls/references/in-call-chat.md +0 -179
  418. package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +0 -196
  419. package/skills/cometchat-ios-calls/references/picture-in-picture.md +0 -246
  420. package/skills/cometchat-ios-calls/references/raise-hand.md +0 -26
  421. package/skills/cometchat-ios-calls/references/recording-screen-share.md +0 -252
  422. package/skills/cometchat-ios-calls/references/ringing-integration.md +0 -143
  423. package/skills/cometchat-ios-calls/references/server-apns-pushkit.md +0 -267
  424. package/skills/cometchat-ios-calls/references/share-invite.md +0 -148
  425. package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +0 -246
  426. package/skills/cometchat-ios-calls/references/voip-cert-setup.md +0 -166
  427. package/skills/cometchat-ios-production/SKILL.md +0 -738
  428. package/skills/cometchat-ios-testing/SKILL.md +0 -376
  429. package/skills/cometchat-ios-theming/SKILL.md +0 -667
  430. package/skills/cometchat-ios-troubleshooting/SKILL.md +0 -1003
  431. package/skills/cometchat-native-bare-patterns/SKILL.md +0 -550
  432. package/skills/cometchat-native-calls/SKILL.md +0 -669
  433. package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +0 -203
  434. package/skills/cometchat-native-calls/references/call-layouts.md +0 -125
  435. package/skills/cometchat-native-calls/references/call-session.md +0 -182
  436. package/skills/cometchat-native-calls/references/custom-ui.md +0 -254
  437. package/skills/cometchat-native-calls/references/device-management.md +0 -158
  438. package/skills/cometchat-native-calls/references/expo-vs-bare.md +0 -179
  439. package/skills/cometchat-native-calls/references/group-calls.md +0 -296
  440. package/skills/cometchat-native-calls/references/idle-timeout.md +0 -128
  441. package/skills/cometchat-native-calls/references/in-call-chat.md +0 -145
  442. package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +0 -72
  443. package/skills/cometchat-native-calls/references/picture-in-picture.md +0 -276
  444. package/skills/cometchat-native-calls/references/raise-hand.md +0 -205
  445. package/skills/cometchat-native-calls/references/recording-screen-share.md +0 -169
  446. package/skills/cometchat-native-calls/references/ringing-integration.md +0 -118
  447. package/skills/cometchat-native-calls/references/server-push-bridge.md +0 -135
  448. package/skills/cometchat-native-calls/references/server-push-payloads.md +0 -193
  449. package/skills/cometchat-native-calls/references/share-invite.md +0 -146
  450. package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +0 -319
  451. package/skills/cometchat-native-components/SKILL.md +0 -628
  452. package/skills/cometchat-native-core/SKILL.md +0 -679
  453. package/skills/cometchat-native-customization/SKILL.md +0 -716
  454. package/skills/cometchat-native-expo-patterns/SKILL.md +0 -552
  455. package/skills/cometchat-native-features/SKILL.md +0 -638
  456. package/skills/cometchat-native-placement/SKILL.md +0 -509
  457. package/skills/cometchat-native-production/SKILL.md +0 -700
  458. package/skills/cometchat-native-push/SKILL.md +0 -594
  459. package/skills/cometchat-native-testing/SKILL.md +0 -582
  460. package/skills/cometchat-native-theming/SKILL.md +0 -681
  461. package/skills/cometchat-native-troubleshooting/SKILL.md +0 -501
  462. package/skills/cometchat-nextjs-patterns/SKILL.md +0 -899
  463. package/skills/cometchat-placement/SKILL.md +0 -1360
  464. package/skills/cometchat-production/SKILL.md +0 -1027
  465. package/skills/cometchat-react-calls/SKILL.md +0 -749
  466. package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +0 -146
  467. package/skills/cometchat-react-calls/references/call-layouts.md +0 -160
  468. package/skills/cometchat-react-calls/references/call-session.md +0 -235
  469. package/skills/cometchat-react-calls/references/custom-ui.md +0 -247
  470. package/skills/cometchat-react-calls/references/device-management.md +0 -210
  471. package/skills/cometchat-react-calls/references/group-calls.md +0 -257
  472. package/skills/cometchat-react-calls/references/idle-timeout.md +0 -188
  473. package/skills/cometchat-react-calls/references/in-call-chat.md +0 -212
  474. package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +0 -170
  475. package/skills/cometchat-react-calls/references/picture-in-picture.md +0 -245
  476. package/skills/cometchat-react-calls/references/raise-hand.md +0 -238
  477. package/skills/cometchat-react-calls/references/recording-screen-share.md +0 -144
  478. package/skills/cometchat-react-calls/references/ringing-integration.md +0 -255
  479. package/skills/cometchat-react-calls/references/server-web-push-vapid.md +0 -241
  480. package/skills/cometchat-react-calls/references/share-invite.md +0 -175
  481. package/skills/cometchat-react-calls/references/testing-calls-on-web.md +0 -216
  482. package/skills/cometchat-react-calls/references/virtual-background.md +0 -32
  483. package/skills/cometchat-react-calls/references/voip-and-web-push.md +0 -165
  484. package/skills/cometchat-react-patterns/SKILL.md +0 -628
  485. package/skills/cometchat-react-push/SKILL.md +0 -634
  486. package/skills/cometchat-react-router-patterns/SKILL.md +0 -758
  487. package/skills/cometchat-react-testing/SKILL.md +0 -413
  488. package/skills/cometchat-theming/SKILL.md +0 -498
  489. package/skills/cometchat-troubleshooting/SKILL.md +0 -294
@@ -0,0 +1,55 @@
1
+ {
2
+ "$schema": "https://code.claude.com/schemas/marketplace.json",
3
+ "name": "cometchat",
4
+ "description": "CometChat AI-coding skills (v5) — add real-time chat, voice/video calling and push to your app via your AI coding agent. Thin dispatcher + on-demand, verified UI Kit skills across React v7, Angular v5, React Native v5, Android v6 (Kotlin/Compose), iOS v5 (Swift/UIKit) and Flutter v6.",
5
+ "owner": {
6
+ "name": "CometChat",
7
+ "email": "support@cometchat.com"
8
+ },
9
+ "plugins": [
10
+ {
11
+ "name": "cometchat-skills",
12
+ "source": ".",
13
+ "skills": "./skills",
14
+ "strict": true,
15
+ "description": "UI Kit skills for integrating CometChat across React v7, Angular v5, React Native v5, Android v6 (Kotlin/Compose), iOS v5 (Swift/UIKit, SPM) and Flutter v6. The /cometchat dispatcher detects your project — web (React on Vite/Next/CRA, or Angular) or mobile (React Native/Expo, Android, iOS, Flutter) — and routes to task-shaped skills (core, components, placement, customization, features, calls, push, migration; plus platform patterns). Headless Calls SDK skills cover calling without a UI Kit. Run `/cometchat add chat to my app` to start. Thin entry with progressive disclosure. Backed by a deterministic CLI and a CI-gated verification pipeline: every skill is checked against its pinned kit (symbol catalog + compile fence), and several families also pass a live simulator/emulator smoke (per-family status in peers.yaml).",
16
+ "version": "5.0.0",
17
+ "author": {
18
+ "name": "CometChat"
19
+ },
20
+ "homepage": "https://github.com/cometchat/cometchat-skills",
21
+ "repository": "https://github.com/cometchat/cometchat-skills",
22
+ "license": "MIT",
23
+ "keywords": [
24
+ "chat",
25
+ "messaging",
26
+ "calls",
27
+ "react",
28
+ "vite",
29
+ "nextjs",
30
+ "ui-kit",
31
+ "cometchat",
32
+ "ai-agent",
33
+ "v7",
34
+ "ios",
35
+ "swift",
36
+ "uikit-ios",
37
+ "spm",
38
+ "xcode",
39
+ "v5",
40
+ "mobile",
41
+ "angular",
42
+ "react-native",
43
+ "android",
44
+ "android-sdk",
45
+ "flutter",
46
+ "js-calls",
47
+ "react-native-calls",
48
+ "android-calls",
49
+ "ios-calls",
50
+ "flutter-calls"
51
+ ],
52
+ "category": "communications"
53
+ }
54
+ ]
55
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://code.claude.com/schemas/plugin.json",
3
+ "name": "cometchat-skills",
4
+ "version": "5.0.0",
5
+ "description": "CometChat AI-coding skills — add real-time chat, voice/video calling and push to your app via your AI coding agent, across React v7, Angular v5, React Native v5, Android v6 (Kotlin/Compose), iOS v5 (Swift/UIKit, SPM) and Flutter v6. Ships the first-party CometChat Docs MCP so skills read always-current docs automatically; falls back to a guided MCP add, then to a direct docs fetch.",
6
+ "author": {
7
+ "name": "CometChat",
8
+ "email": "support@cometchat.com"
9
+ },
10
+ "homepage": "https://github.com/cometchat/cometchat-skills",
11
+ "repository": "https://github.com/cometchat/cometchat-skills",
12
+ "license": "MIT",
13
+ "skills": "./skills"
14
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,36 @@
1
+ # v5.0.0
2
+
3
+ ## New
4
+ - Added CometChat UI Kit integration skills for six platforms: React v7, Angular v5, React Native v5, iOS v5 (Swift / SPM), Android v6 (Kotlin / Compose), and Flutter v6.
5
+ - Added headless Calls SDK v5 skills for JavaScript, React Native, iOS, Android, and Flutter, letting you add voice and video calling without a UI Kit.
6
+ - Added a guided onboarding journey that scopes each integration — framework, features, placement, and theming — before any code is generated.
7
+ - Added task-shaped skills per platform (core, components, placement, customization, features, calls, push, and migration) that load on demand as the build needs them.
8
+ - Added automatic connection to the first-party CometChat Docs MCP, with a guided-add step and a direct documentation-fetch fallback, so skills always read current documentation.
9
+
10
+ ## Breaking
11
+ - **Full pack replacement, not an additive update.** v5 is a new generation of skills — new platform targets (React v7, Angular v5, React Native v5, iOS v5, Android v6, Flutter v6), new skill names, and a new layout. Same package name (`@cometchat/skills`), so every existing v4 user is affected.
12
+ - **82 v4 skill folders were removed** (the React-UI-Kit-v6 generation and its siblings — e.g. `cometchat-core`, `cometchat-features`, `cometchat-theming`). Their v5 equivalents live under the per-platform, task-shaped names above.
13
+ - **Naming shift:** `cometchat-<platform>-v5-*` now refers to the Calls/Chat SDK skills on several platforms (e.g. `cometchat-flutter-v5-*` is the Calls SDK). Update any tooling that referenced v4 skill names.
14
+ - **`@cometchat/skills-cli` is now credentials-only (v3.0.0).** The code-writing subcommands from v2 were removed; the CLI now fetches dashboard credentials (App ID, Region, Auth Key) and toggles extensions / AI features. v4-generated `AGENTS.md`/rules files that invoke removed commands should be regenerated.
15
+
16
+ ## Removed
17
+ - 82 v4 skill folders (the React-UI-Kit-v6 generation and its siblings).
18
+ - `packages/skills-native`, `packages/registry`, the deploy templates, and most of `docs/`.
19
+ - The v2 code-writing CLI subcommands (see Breaking).
20
+
21
+ ## Upgrading from v4
22
+ - **`@cometchat/skills add` removes stale v4 skills:** before laying down the current family's v5 skills it deletes the skill folders earlier versions shipped (e.g. `cometchat-core`, `cometchat-features`, `cometchat-theming`; the full list is in `bin/legacy-skills.json`) and prints what it removed, so no stale v4 skills are left behind. Other v5 skills already in the directory (a second family, a calls peer, a `--global` install from another project) and your own skills, including any you named `cometchat-*`, are untouched.
23
+ - If you installed v4 skills into a location this CLI does not manage, or pinned old skill names in an `AGENTS.md` / editor-rules file, remove those references by hand.
24
+ - The companion CLI changed majors (`@cometchat/skills-cli` 2.x → 3.x) and is credentials-only; run `npx @cometchat/skills-cli@3 --help` for the current commands.
25
+
26
+ ## Enhancements
27
+ - The Claude Code plugin (`/plugin marketplace add cometchat/cometchat-skills`) now carries the v5 pack and auto-connects the CometChat Docs MCP.
28
+ - `add` detects native projects too (an Xcode project or workspace, an iOS `Package.swift`, Gradle, `pubspec.yaml`), not just JavaScript frameworks. `--family` forces a platform or adds a headless Calls SDK skill alongside a UI Kit.
29
+ - Agent instruction files (`AGENTS.md`, `GEMINI.md`, `CONVENTIONS.md`, `.windsurfrules`, `.clinerules/cometchat.md`, `.github/copilot-instructions.md`) are written inside a `<!-- cometchat-skills:start/end -->` block, so your own content in those files is kept.
30
+ - `add --global` installs Claude Code skills to `~/.claude/skills` and prints the `claude mcp add --scope user` command instead of writing a project `.mcp.json`; agents with no user-level location are skipped with a note.
31
+ - Smaller installs: each skill folder now gets only the reference files and catalogs its family's skills cite.
32
+ - `@cometchat/skills-cli` warns when `.cometchat/config.json` (which can hold your Auth Key) is already tracked by git, and removed v2 commands explain where that functionality moved.
33
+ - Skills are checked against the pinned UI Kit and SDK: a symbol catalog guards against hallucinated APIs and a compile fence confirms the generated code builds. Several families additionally pass a live smoke run on a real simulator/emulator; the remaining families are being wired to it (per-family status in `peers.yaml`).
34
+
35
+ ## Fixes
36
+ - None
package/README.md CHANGED
@@ -1,199 +1,77 @@
1
- # cometchat-skills
1
+ # @cometchat/skills (v5)
2
2
 
3
- **Add CometChat to any React, React Native, Angular, Android, Flutter, or iOS project through your AI coding agent.** Works with Claude Code, Cursor, Codex, VS Code Copilot, Windsurf, Cline, Kiro, and [30+ more agents](https://github.com/vercel-labs/skills).
3
+ **Add CometChat chat & calling to your app through your AI coding agent.** Install the skills, then ask your agent *"add chat to my app"* it has a short conversation with you (framework, intent, placement, credentials), then writes production-grade integration code into the files you already have.
4
4
 
5
- v4 takes an AI-first approach: your agent has a short conversation with you to understand your project and chat requirements, then writes production-grade integration code tailored to the files you already have. One slash `/cometchat`works for every supported framework, on web, mobile, and native.
5
+ v5 is a **multi-platform** pack: a thin `cometchat` dispatcher + an `onboarding` journey + on-demand, verified skills for six UI Kits **React v7 · Angular v5 · React Native v5 · iOS v5 · Android v6 · Flutter v6** plus headless **Calls SDK v5** skills (JavaScript · React Native · iOS · Android · Flutter) and the **Android Chat SDK v5**. It's **docs-maximal** (builds from the official CometChat task guides and verifies against them) and **two-gate tested** (a deterministic reviewer + a black-box acceptance explorer).
6
6
 
7
- ## Install
8
-
9
- ```bash
10
- npx @cometchat/skills add
11
- ```
12
-
13
- That's it — one command for every supported framework. The installer detects what you're working with (React, Next.js, React Router, Astro, Expo, bare React Native, Angular, native Android, Flutter, or native iOS) from your project, then opens an interactive picker so you can choose which AI agents to install for — Claude Code, Cursor, Codex, Cline, Kiro, Replit Agent, and [50+ more](https://github.com/vercel-labs/skills) all in one pass.
14
-
15
- Override detection if needed:
16
-
17
- ```bash
18
- npx @cometchat/skills add --family web # React / Next.js / React Router / Astro
19
- npx @cometchat/skills add --family native # Expo / bare RN
20
- npx @cometchat/skills add --family angular # Angular 12-15
21
- npx @cometchat/skills add --family android # Native Android (V5 stable + V6 beta)
22
- npx @cometchat/skills add --family flutter # Flutter (V5 stable + V6 beta)
23
- npx @cometchat/skills add --family ios # Native iOS (V5 stable)
24
- npx @cometchat/skills add --family all # install every published skill
25
- ```
26
-
27
- ### Two install shapes
7
+ > **v5 ships on npm as `@cometchat/skills` (5.x).** It's a multi-platform rewrite of the v4 pack — same package name, new major. Upgrading? `add` removes the old v4 skills for you (see `CHANGELOG.md`).
28
8
 
29
- **Base install (default, recommended)** — `npx @cometchat/skills add` writes only the cross-family skills (the `cometchat` dispatcher and friends). Smallest initial install. After it lands, open your project in your IDE and run `/cometchat`:
30
-
31
- 1. The dispatcher detects your framework (Vite + React → `web`, Expo → `native`, etc.)
32
- 2. It asks the agent to install family-specific skills on demand via `npx @cometchat/skills add --family <X> --ide <Y>`
33
- 3. The agent gets the 13 web skills (or 31 android, 28 flutter, etc.) at exactly the moment they're needed
34
- 4. Integration continues with the full skill set loaded
35
-
36
- You install once with the multi-agent picker (Claude Code, Cursor, Codex, Cline, Kiro, Replit Agent, [50+ more](https://github.com/vercel-labs/skills)); the dispatcher handles framework-specific expansion as the project actually needs it.
37
-
38
- **Full family install** — `npx @cometchat/skills add --family <name>` writes the dispatcher + every skill for that family upfront (web=13, android=31, flutter=28, etc.). Use when you know the framework upfront and want all skills present without runtime expansion. Power users + CI smoke tests.
9
+ ## Install
39
10
 
40
11
  ```bash
41
- # Base install (recommended) — picker + dispatcher routes the rest
42
12
  npx @cometchat/skills add
43
-
44
- # Full family install — power-user / CI flow
45
- npx @cometchat/skills add --family web # all 13 web skills upfront
46
- npx @cometchat/skills add --family native # all 13 RN skills upfront
47
- npx @cometchat/skills add --family android # all 31 Android skills upfront
48
- # ... etc
49
13
  ```
50
14
 
51
- ### Direct-write to one IDE (CI / Dockerfile)
52
-
53
- When stdin isn't a TTY (CI, Docker), or when you pass `--ide <name>`, the picker is skipped and skills are written directly to one IDE's directory. Default is base install; pass `--family <name>` for the full family install.
15
+ The installer **detects your project automatically** — React (Vite, Next.js, CRA, Astro, React Router), Angular, React Native / Expo, and native iOS (Xcode project), Android (Gradle) and Flutter (`pubspec.yaml`) — and installs the skills for your coding agent: **Claude Code by default**; target another with `--ide` (Cursor, Codex, Cline, Kiro, Replit Agent, Windsurf, Copilot, Gemini, …) or `--ide all`. Use `--family` to force a platform (e.g. from a monorepo root) or to add the headless SDK skills **alongside** a UI Kit — a second `add` never removes the first family's skills:
54
16
 
55
17
  ```bash
56
- npx @cometchat/skills add --ide claude # base install to .claude/skills/
57
- npx @cometchat/skills add --ide cursor # base install to .cursor/skills/
58
- npx @cometchat/skills add --ide kiro # base install to .kiro/skills/
59
- npx @cometchat/skills add --ide replit # base install to .agents/skills/
60
- npx @cometchat/skills add --ide copilot # base install to .github/copilot-instructions.md
61
- npx @cometchat/skills add --ide all # write base install to every supported IDE
62
- npx @cometchat/skills add --ide claude --family web # full web family install to .claude/skills/
18
+ npx @cometchat/skills add --family flutter # force the Flutter v6 UI Kit skills
19
+ npx @cometchat/skills add --family js-calls # add headless JS Calls SDK skills next to the React ones
63
20
  ```
64
21
 
65
- Direct-write supports 10 agents: `claude`, `cursor`, `kiro`, `replit`, `copilot`, `continue`, `cline`, `aider`, `codex`, `gemini`. The interactive picker supports 55+ via the vercel-labs/skills ecosystem.
66
-
67
- Pass `--no-picker` to force direct-write even in an interactive terminal.
22
+ Pin the agent as well (CI / Docker) with `--ide claude|cursor|codex|replit|…` (e.g. `--ide claude` → `.claude/skills/`). The full `--family` list is: `react · angular · react-native · ios · android · flutter` (UI Kits) and `android-sdk · react-native-calls · ios-calls · android-calls · flutter-calls · js-calls` (headless SDKs).
68
23
 
69
- > **Migrating from v3?** `npx @cometchat/skills-native add` still works (with a deprecation notice). New projects should use the unified command.
24
+ ## Use it
70
25
 
71
- Then in your IDE:
26
+ After install, open your project in your agent and say:
72
27
 
73
28
  ```
74
- /cometchat add chat to my app
29
+ add chat to my app
75
30
  ```
76
31
 
77
- Or add voice & video calling (new in v4.2):
32
+ The `cometchat` dispatcher routes to `cometchat-onboarding` (discover → understand → plan → approve), then hands a scoped build directive to that platform's `-core` skill, pulling in the others as the approved plan needs them (components, placement, theming, features, calls, push). Iterate afterward — *"add reactions" · "switch to dark mode" · "add a details side panel" · "switch to server-minted auth tokens"* (production auth — server-minted `loginWithAuthToken` — is covered inside each family's `-core` credentials/lifecycle guidance, and by the dedicated `-production` skill where one exists).
78
33
 
79
- ```
80
- /cometchat add voice and video calls to my app
81
- ```
34
+ ## Credentials (dashboard CLI)
82
35
 
83
- When integrating chat, the dispatcher now asks **how** you want to customize (new in v4.3):
36
+ A separate, dashboard-only CLI fetches your App ID / Region / Auth Key so you don't paste them by hand:
84
37
 
85
- ```
86
- ◉ Visually — drag-and-drop in browser
87
- ○ In code — code-driven defaults
88
- ```
89
-
90
- Pick **Visually** and the dispatcher opens CometChat's Visual Builder in your browser, waits while you customize colors / layout / features, then fetches the config and emits the integration into your existing app — no ZIP downloads, no manual file copying. Works for React, React Native, iOS, Android v6, and Flutter v6. Angular customers auto-route to the In-code path (Visual Builder doesn't ship Angular code yet).
91
-
92
- ## What happens
93
-
94
- 1. **Detects** your framework (React / Next.js / React Router / Astro / Expo / bare React Native / Angular / Android / Flutter / iOS), router, env prefix, existing auth system
95
- 2. **Onboards** you to CometChat in the terminal — no browser round-trip. Signup, login, app creation all via the CLI.
96
- 3. **Asks** what you're building (marketplace, SaaS, messaging, support, social, or just exploring) and **where** chat should live in your project — it reads your routes/screens, nav, and components before proposing a placement that fits (route+drawer for web, stack/tab/modal/bottom-sheet for RN, route/modal for Angular, Activity/Fragment for Android, navigation controller for iOS, route/modal sheet for Flutter)
97
- 4. **Shows the plan** — exactly which files it will create, which it will modify, and which it will not touch — and waits for your approval
98
- 5. **Writes** the provider, integration components, and route/screen/trigger wiring
99
- 6. **Saves** credentials with the correct convention for your framework (`.env` with `VITE_` / `NEXT_PUBLIC_` / `PUBLIC_` / `EXPO_PUBLIC_` prefix on web/RN; `src/environments/environment.ts` on Angular; `local.properties` + `BuildConfig` on Android; `Secrets.swift` / `.xcconfig` on iOS; Dart const file or `--dart-define` on Flutter) and records your choices in `.cometchat/config.json`
100
-
101
- No templates, no experiences to pick — the agent writes real code that fits your app.
102
-
103
- ## Supported frameworks
104
-
105
- | Framework | Chat | Voice & Video Calls | Visual Builder |
106
- |---|---|---|---|
107
- | React.js / Vite / CRA | ✅ | ✅ Ringing + Session | ✅ (v4.3) |
108
- | Next.js (App Router + Pages Router) | ✅ | ✅ Ringing + Session | ✅ (v4.3) |
109
- | React Router v6 / v7 | ✅ | ✅ Ringing + Session | ✅ (v4.3) |
110
- | Astro (React islands) | ✅ | ✅ Ringing + Session | ✅ (v4.3) |
111
- | Expo (managed + Expo Router) | ✅ | ✅ Ringing + Session | ✅ (v4.3) |
112
- | Bare React Native (CLI) | ✅ | ✅ Ringing + Session | ✅ (v4.3) |
113
- | Angular 12-15 | ✅ | ✅ Ringing + Session | ❌ (auto-falls back to In code) |
114
- | Android (V5 stable + V6 beta) | ✅ | ✅ Ringing + Session | ✅ V6 (v4.3) |
115
- | Flutter (V5 stable + V6 beta) | ✅ | ✅ Ringing + Session | ✅ V6 chat-only (v4.3) |
116
- | iOS (V5 stable) | ✅ | ✅ Ringing + Session | ⏸ Pending Xcode 26 vendor fix |
117
-
118
- **Calling modes:**
119
- - **Ringing** — kit-driven incoming/outgoing call surfaces, system-level VoIP push (CallKit on iOS, ConnectionService on Android, web push fallback on browsers). Production-grade for 1:1 + group calls.
120
- - **Session** — both peers join a shared `/meet/:sessionId` URL. No ringing. For embedded meetings, scheduled calls, support flows, broadcast use-cases.
121
-
122
- The dispatcher asks Ringing vs Session up front in Step 3.0.
123
-
124
- ## After the first integration
125
-
126
- Re-run `/cometchat` anytime to pick from the iteration menu:
127
-
128
- - **Customize look & feel** — theme presets (slack / whatsapp / imessage / discord / notion) or your own brand color
129
- - **Add a feature** — 40+ features including calls, reactions, polls, AI smart replies, file sharing, presence
130
- - **Customize a component** — custom message bubbles, headers, composer actions, empty/loading states
131
- - **Add another placement** — floating widget (web), modal / bottom sheet / extra tab (RN)
132
- - **Set up production auth** — replace the dev Auth Key with a server-side token endpoint
133
- - **Set up user management** — server endpoints for creating/updating/deleting CometChat users
134
- - **Run diagnostics** — verify, drift detection, symptom-to-cause lookup
135
-
136
- React Native projects also get **Set up push notifications** (APNs + FCM end-to-end), **Set up testing** (Jest + RNTL + Detox/Maestro), and **Troubleshoot an issue** (Metro cache, pod install, privacy manifest) in the menu.
137
-
138
- ## Recommended: CometChat Docs MCP
139
-
140
- For deeper component customization (custom views, SDK events, request builders), install the docs MCP:
141
-
142
- **Claude Code:**
143
38
  ```bash
144
- claude mcp add --transport http cometchat-docs https://www.cometchat.com/docs/mcp
39
+ npx @cometchat/skills-cli@3 auth login
40
+ npx @cometchat/skills-cli@3 provision run
145
41
  ```
146
42
 
147
- **Cursor** (`.cursor/mcp.json`):
148
- ```json
149
- { "mcpServers": { "cometchat-docs": { "url": "https://www.cometchat.com/docs/mcp" } } }
150
- ```
43
+ The CLI is dashboard/API-only (`auth · provision · config · features`) — it never writes framework code; the skills do all detection, env-writing, and codegen.
151
44
 
152
- **Windsurf:**
153
- ```json
154
- { "mcpServers": { "cometchat-docs": { "type": "sse", "serverUrl": "https://www.cometchat.com/docs/mcp" } } }
155
- ```
45
+ ## What's in the pack
156
46
 
157
- No authentication required. Not needed for the initial integration the skill handles Phase A without it.
47
+ A thin `cometchat` router + a `cometchat-onboarding` journey, then a **full skill set per platform**. Every UI-Kit family ships `core` (install · credentials · init→login→render · the golden-path chat surface) plus, as the platform needs them, `components · placement · customization · features · calls · push · migration` and platform extras (`patterns`, `production`, `testing`, `troubleshooting`, `events`, the Android `compose-*` / `kotlin-*` cohorts):
158
48
 
159
- ## CLI (used by the agent under the hood)
49
+ | Family | UI Kit package | Consumption |
50
+ |---|---|---|
51
+ | **React v7** | `@cometchat/chat-uikit-react@7` | drop-in UI Kit (+ Vite / Next.js / React Router / Astro glue) |
52
+ | **Angular v5** | `@cometchat/chat-uikit-angular@5` | drop-in UI Kit |
53
+ | **React Native v5** | `@cometchat/chat-uikit-react-native@5` | drop-in UI Kit (bare + Expo) |
54
+ | **iOS v5** | `CometChatUIKitSwift` (SPM) | drop-in UI Kit (host-composed screens) |
55
+ | **Android v6** | `chatuikit-{compose,kotlin}-android` | drop-in UI Kit (Compose + Kotlin/View) |
56
+ | **Flutter v6** | `cometchat_chat_uikit ^6` | drop-in UI Kit |
57
+ | **Calls SDK v5** (headless) | JS · React Native · iOS · Android · Flutter | standalone voice/video, no UI Kit |
58
+ | **Chat SDK v5** (headless) | Android | headless messaging, no UI Kit |
160
59
 
161
- The skill calls `@cometchat/skills-cli` commands. You can also run them directly:
60
+ ## Compatibility
162
61
 
163
- ```bash
164
- # Onboarding
165
- npx @cometchat/skills-cli auth signup # create account, all in terminal
166
- npx @cometchat/skills-cli auth login # sign in (masked password)
167
- npx @cometchat/skills-cli auth status # check current session
168
-
169
- # App provisioning — web example
170
- npx @cometchat/skills-cli provision list # list apps on your account
171
- npx @cometchat/skills-cli provision setup \
172
- --name my-chat --region us --industry saas_businesses \
173
- --framework reactjs # create app + write .env (VITE_ prefix) + save config
174
-
175
- # App provisioning — React Native example (Expo or bare RN)
176
- npx @cometchat/skills-cli provision setup \
177
- --name my-rn-chat --region us --industry online_marketplaces \
178
- --framework expo # writes EXPO_PUBLIC_* env vars
179
- # Use --framework react-native for bare RN (no env prefix; pair with react-native-dotenv)
180
-
181
- # Project introspection
182
- npx @cometchat/skills-cli detect # framework, router, env prefix
183
- npx @cometchat/skills-cli config show # read .cometchat/config.json
184
- npx @cometchat/skills-cli doctor # diagnostics
185
-
186
- # See everything
187
- npx @cometchat/skills-cli --help
188
- ```
62
+ - **React v7** — `@cometchat/chat-uikit-react@7` (7.1.x) + `@cometchat/chat-sdk-javascript@4`; calls `@cometchat/calls-sdk-javascript@5`. React ≥ 18.
63
+ - **Angular v5** — `@cometchat/chat-uikit-angular@5` (5.1–5.2) + Chat SDK v4 + Calls SDK v5. Angular 17–21.
64
+ - **React Native v5** — `@cometchat/chat-uikit-react-native@5` + `@cometchat/chat-sdk-react-native@4` + `@cometchat/calls-sdk-react-native@5`.
65
+ - **iOS v5** `CometChatUIKitSwift` 5.1.x + `CometChatSDK` 4.1.x + `CometChatCallsSDK` 5.0.x (Swift Package Manager).
66
+ - **Android v6** — `chatuikit-{compose,kotlin}-android` 6.0.x + `chat-sdk-android` 5.0.x + `calls-sdk-android` 5.0.x.
67
+ - **Flutter v6** — `cometchat_chat_uikit ^6` (6.1.x) + `cometchat_calls_sdk ^5` (calls).
189
68
 
190
- ## Prerequisites
69
+ Exact pinned versions per family live in `peers.yaml` and each family's `SKILL.md` frontmatter (both ship in the package).
191
70
 
192
- - An AI coding agent ([Claude Code](https://claude.ai/code), [Cursor](https://cursor.sh), [Kiro](https://kiro.dev), VS Code Copilot, or any [skills.sh](https://skills.sh)-compatible agent)
193
- - Node.js 18+
194
- - React 18+ (React 19 fully supported)
71
+ ## Links
195
72
 
196
- No CometChat account required before starting — the skill walks you through signup from the terminal.
73
+ - Docs: [cometchat.com/docs](https://www.cometchat.com/docs)
74
+ - UI Kits: [`@cometchat/chat-uikit-react`](https://www.npmjs.com/package/@cometchat/chat-uikit-react) · [`-angular`](https://www.npmjs.com/package/@cometchat/chat-uikit-angular) · [`-react-native`](https://www.npmjs.com/package/@cometchat/chat-uikit-react-native)
197
75
 
198
76
  ## License
199
77
 
package/RULES.md ADDED
@@ -0,0 +1,114 @@
1
+ # RULES — shared rules for the CometChat skills pack
2
+ # (Ships INSIDE the pack. Every skill references this file; rules are never inlined per family.
3
+ # This is the shippable shared RULES.md — distinct from the factory's own references/RULES.md,
4
+ # which governs how skills are AUTHORED. Keep them in sync when a rule changes.)
5
+
6
+ ## Code safety
7
+ - APPEND, never REPLACE the user's code. Additive diffs only. Never delete a competing SDK's files/deps without an explicit, waited-for confirmation.
8
+ - No speculative scaffolding; reuse the developer's existing primitives; golden-path defaults over prop sprawl.
9
+
10
+ ## Platform / package integrity
11
+ - One package per platform — never cross them:
12
+ react → @cometchat/chat-uikit-react · angular → @cometchat/chat-uikit-angular ·
13
+ react-native → @cometchat/chat-uikit-react-native · flutter → cometchat_chat_uikit ·
14
+ android → Kotlin/Compose (V6) or Java/Views (V5) · ios → Swift.
15
+ - Web UI Kit code never goes into RN and vice-versa (CSS/`<a href>`/`document.*` vs native deps).
16
+ - NEVER mix SDK majors (V5/V6/V7) in one skill — different packages, primitives, theme systems.
17
+
18
+ ## version_conflict — STOP gate
19
+ - When detection shows a version_conflict — a UI Kit major other than the one this family targets (React v7, Angular v5, RN v5, iOS v5, Android v6, Flutter v6; see `peers.yaml`), or two majors at once — STOP. Surface the detail, reconcile (upgrade kit / load matching-version skills / remove unwanted cohort), re-read. Not a warning. (Detection = `npx @cometchat/skills detect --json`, the pack's offline probe and the authority; else the skill's own repo read. Never the dashboard CLI.)
20
+
21
+ ## Credentials & secrets
22
+ - Auth key is dev-only client-side; teach server-side token exchange for production. Never hardcode; never echo the auth key to stdout.
23
+ - **Never provision a NEW CometChat app or account on the user's behalf.** Reuse the existing configured app (`.cometchat/config.json` / env App ID); if unknown, `provision list` and ASK which EXISTING app to use (ask + wait). Create a new app ONLY on an explicit user request, confirming the name first — an integration run must not silently spawn apps.
24
+ - **The login UID must exist in the app — and never suggest a legacy/guessed sample UID.** `login(uid)` does not create users. Do NOT offer `superhero1`/`superhero1..5` (or any other remembered "classic sample" set) — they aren't seeded in modern apps and mislead users. When you ASK which UID to use, do not fabricate candidates from memory; the only tentative suggestion allowed is `cometchat-uid-1`, labelled "if this is a fresh app." Prefer the user's own UID / the Dashboard Users tab.
25
+ - Env conventions: Vite `VITE_`, Next `NEXT_PUBLIC_` (.env.local), Astro `PUBLIC_`, Expo `EXPO_PUBLIC_`, RN bare `COMETCHAT_`, Angular `environment.ts` object, Android `app/src/main/assets/cometchat-settings.json` for INIT credentials (build-time extras only: `local.properties`→`BuildConfig`), Flutter const/`--dart-define`, iOS `Secrets.swift`/xcconfig.
26
+
27
+ ## Ordering invariants
28
+ - `init() → login() → render` — never render UI Kit components before init+login resolve.
29
+ - **Init via `initFromSettings` (telemetry attribution).** Use `CometChatUIKit.initFromSettings(...)` (UI Kit) — or `CometChat.initFromSettings(...)` for a headless SDK build. **The signature is per-platform:** web/JS pass a `CometChatSettings` object; **Android passes `(context, CallbackListener<String>)`** and the settings come from `app/src/main/assets/cometchat-settings.json` (there is no `CometChatSettings` type on Android). Either way, NOT the classic builder `UIKitSettingsBuilder`/`init()`. It persists `integrationSource="ai-agent"` (and routes the Calls SDK). **Web/JS only** — `settings` is a `CometChatSettings` object: `{ appId, region, credentials:{authKey}, chatSDK:{presenceSubscription:{type:"ALL_USERS"}} }`. **Android does NOT use this shape**: its `assets/cometchat-settings.json` uses `uiKit.subscribePresenceForAllUsers`.
30
+ - **Calls SDK build (any framework) → `CometChatCalls.initFromSettings(settings)` by DEFAULT — the SAME ai-agent attribution** (`integrationSource="ai-agent"`), mirroring `CometChatUIKit.initFromSettings` / `CometChat.initFromSettings` above. NOT the publicly-documented `CometChatCalls.init(appId, region)` — that is the FALLBACK ONLY. `CometChatCalls.initFromSettings` is INTENTIONALLY undocumented (ai-agent-only / `@nodoc`, like `CometChatUIKit.initFromSettings`), so its settings shape is baked in the calls skill's `references/docs-map.md`. Applies to EVERY framework's calls skill going forward (React, Angular, and future React Native / Flutter / iOS / Android calls families). (AUDIT-175, sibling of AUDIT-084.)
31
+ - Web UI Kit: theme/CSS variables imported ONCE at app root.
32
+ - **Follow-the-OS theming is a CORE-surface obligation, not a customization add-on, on any platform whose kit does NOT follow the OS by itself.** When the plan's theming answer is "Auto — follow OS" (the fresh-app default), the family's **core** golden path MUST emit whatever host wiring makes the kit track the device light/dark — the "Auto" default is a broken promise otherwise. It differs per platform (see onboarding `references/platforms.md` for the authoritative per-platform table): **web/React** syncs `theme` ↔ `prefers-color-scheme` (AUDIT-004); **React Native** supplies BOTH `light` and `dark` to the provider / `mode:"auto"` (AUDIT-211); **Android Compose** wraps the kit UI in `CometChatTheme(colorScheme = if (isSystemInDarkTheme()) darkColorScheme() else lightColorScheme()){}` (AUDIT-217) — with no wrapper it renders light defaults and ignores the OS. **Truly-automatic platforms (iOS; Android Views via `CometChatTheme.DayNight`) need NO host code — do not add any.** The rule: the CORE skill owns the bare follow-OS wiring; `customization` owns brand tokens/typography on top. A core skill that recommends "Auto" but omits the wiring is under-delivering its own default.
33
+
34
+ ## Layout / sizing — the reflow-free surface (give the UI real dimensions or it collapses/reflows)
35
+ - UI Kit components are `height:100%`/flex-fill: they take the size of their parent, and they ship their OWN loading/empty state (`loadingView`/`emptyView`). A surface that looks broken is a HOST **container-sizing** defect, not a kit bug — one root cause (a **content-driven** box the kit then fills), two failure modes: **static collapse** (a ~0px sliver / top-left cram) and **load-transition reflow** (the surface is SMALL while the conversation list loads, then GROWS to full size — the box expands WITH content instead of being pinned; looks broken and can misplace the UI).
36
+ - **PIN the box independent of content so it's full-size from frame 1 and the loading→loaded swap causes no shift.** Four invariants (the pack's `references/layout.md` is the single source of truth for the web recipe):
37
+ - **Prepare the ancestor chain** — `html, body, #root { height:100%; margin:0 }` so a full-height container isn't sized against `0`. A bare app has none → collapse.
38
+ - **Pin a content-INDEPENDENT height** — full-app → `100dvh`; embedded → a fixed height (e.g. `600px`) or a sized grid/flex cell. **Never `min-height`/`auto`** on the surface box (it grows with content = the reflow).
39
+ - **Size the panes** — each column/pane `height:100%; min-width:0; min-height:0; overflow:hidden` so content **scrolls internally** and never spills; sizing the root alone leaves the kit filling nothing. Give the app container `overflow:hidden`.
40
+ - **Let the kit's own loading state fill the pinned box** — render `loadingView`/`emptyView` INSIDE the pinned surface so it's full-size before content loads; do NOT gate the whole surface behind your own placeholder→chat swap (that IS the reflow).
41
+ - (Also: no `transform`/`filter`/`backdrop-filter` on an ancestor — it clips the kit's `position:fixed` overlays.)
42
+ - **Full-page chat: NEUTRALIZE the scaffold's boilerplate CSS first.** A fresh Vite/CRA/Next app ships template CSS that centers + width-caps + pads the root — `#root { max-width:1280px; margin:0 auto; padding:2rem; text-align:center }` + `body { display:flex; place-items:center }`. Full-height chat dropped into that renders as a centered, ~1280px, padded box with side gutters, and message bubbles/overlays clip off the edge ("exceeding the viewport"). Reset it before the chat CSS: `html, body, #root { height:100%; margin:0; padding:0 }` + `#root { max-width:none; text-align:left; display:block }` + remove `body{place-items:center}`. Find the platform's equivalent scaffold cruft (Next `globals.css`, CRA `App.css`) and clear it.
43
+
44
+ ## Localization & CSS isolation
45
+ - **Never render a raw localization key as a label.** The kit localizes via `CometChatProvider` (it auto-wires `LocaleProvider`); a snake_case token in the UI (e.g. `group_info`, `add_members`) is a **missing/wrong key** — `getLocalizedString` returns the key on a miss. Use the kit component or `useLocale().getLocalizedString(key)`, never `<x>group_info</x>`. (v6→v7 changed some keys; a stale key falls through to the raw string.)
46
+ - **Don't let the host app's global CSS leak into the `.cometchat` subtree.** The kit's layout is correct by default (conversations header is fixed `flex-shrink:0`, the list is `flex:1`, item titles are left-aligned). A global `text-align`/flex-centering/`flex`/reset (or Tailwind base) on the kit's ancestors mis-aligns (centered list names) or mis-sizes (expanding header) kit internals. Scope global styles away from `.cometchat`; never override the internal BEM classes — customize via `--cometchat-*` vars + view slots.
47
+ - **To differentiate a NESTED kit surface, override THAT surface's OWN background variable — a wrapper background is not enough.** A kit sub-surface that paints an **opaque** background from its own token (e.g. `.cometchat-message-list` paints `--cometchat-message-list-bg`, default `--cometchat-background-color-03`) COVERS any background set on a wrapping `div` — the wrapper bg never shows. Canonical case: the **thread panel** — its header/composer paint their own opaque `--cometchat-background-color-01`, but the thread message list paints `-03` (same as the main list), so the thread list looks undifferentiated even after you give the thread wrapper a background. **Fix:** scope the list's OWN token on the thread wrapper — `.cc-thread-panel { --cometchat-message-list-bg: var(--cometchat-background-color-01); }` (cascades to the list, matches the thread header/composer, differs from the main list's `-03`; verified vs 7.1.0). Generalizes to any opaque sub-surface — override its background variable via a scoped ancestor, never the internal BEM class. Depth: your platform's `customization` skill. (AUDIT-020/024.)
48
+ - **A per-theme override must select the element the theme attribute is ON — not a descendant.** `CometChatProvider` renders ONE wrapper — `<div data-theme="light|dark" class="cometchat">` — so `data-theme` and `.cometchat` are the SAME element. A per-theme brand override is `.cometchat[data-theme="dark"] { … }` (same element); `[data-theme="dark"] .cometchat { … }` targets a `.cometchat` NESTED inside a `[data-theme]` ancestor, which does not exist → it matches nothing and silently does nothing. To retint a kit INTERNAL per theme use `[data-theme="dark"] .cometchat-<element-class> { … }` (the wrapper as ancestor, a kit class as the descendant — the kit's own convention). Verified vs 7.1.0. (AUDIT-025.)
49
+
50
+ ## Clarification contract
51
+ - Where a skill must ask, it ASKS and WAITS — never infers, never defaults, even in auto/approval mode. On agents without a question primitive, render a numbered list and wait; map by value/label, accept free-text; if headless, STOP and emit the question.
52
+ - **CURATE large choice sets — don't dump a long list.** When the options are many (e.g. many CometChat apps to pick from), show the **top 3 most-relevant as selectable options + a "Show all N" option**, with the free-text/"Other" answer as the manual/paste fallback — expand to the full list only if the user picks "Show all." A wall of 20+ rows as the prompt is a UX regression.
53
+
54
+ ## Truthful output
55
+ - Every `CometChat*` symbol must exist in the target family+major catalog. Every claimed feature must exist in `features.json`. Read real signatures from live docs; compile-verify before "done". Treat live docs as source of truth for what's new.
56
+ - **A baked "closed list" (model FIELD sets, enum values, method inventories) and a NEGATIVE-capability claim ("no X on this platform / that symbol is invented") are the two easiest things to get WRONG, and both are asserted as FACT — so both must be RE-PROBED against the SHIPPED source of the exact target major every authoring pass, never carried forward from an earlier probe.** A closed list that isn't (undercounts a real field) makes a real API look phantom — worse than no list; the correct fix for a docs PHANTOM field is the shipped list, not a hand-counted subset. A negative claim ("Flutter has no local screen share") must be re-checked against the BARREL/exports before it is stated — a symbol the barrel reaches that an emit can call COMPILES, so "invented"/"impossible" is falsifiable. Docs can LAG the shipped SDK (a method ships before its page); when source and docs disagree on existence, source wins for "does it compile," and note the docs lag. (AUDIT-231; mirrors AUDIT-230's signature-drift class — same lesson at field-set + capability-absence granularity.)
57
+ - **Canonical doc channel = a 3-TIER ladder: (1) the CometChat docs MCP, auto-connected → (2) guide the user to add it → (3) plain fetch.** Try them in order, and never HARD-STOP.
58
+ - **Tier 1 — MCP, auto-connected.** The pack ships the first-party docs MCP in its plugin manifest (plugin-root `.mcp.json` → server `cometchat-docs` = `https://mcp.cometchat.com/mcp`), so for a plugin install it connects automatically (plugin-scoped servers need no trust prompt). PREFER its tools — `search_cometchat_docs` · `fetch_cometchat_doc_page` · `get_cometchat_implementation_bundle` (the bundle tool is **NON-AUTHORITATIVE**: curated static recipes that can lag live docs, so prefer `fetch_cometchat_doc_page` and reconcile any bundle against it).
59
+ - **Tier 2 — if the MCP is NOT connected, tell the user and help them add it** (one line, never masked): `claude mcp add --transport http cometchat-docs https://mcp.cometchat.com/mcp` — or reinstall/enable the plugin (`/plugin`, then `/mcp` to reconnect) — then retry. Verify with `claude mcp list`.
60
+ - **Tier 3 — if it still won't connect, fall back to a plain fetch** of `DOCS_BASE`/`SDK_DOCS_BASE` + path + `.md`. This tier keeps every skill working with NO MCP at all, so never require the MCP and never hardcode a docs host.
61
+ - The `<path>` catalog in each family's `references/docs-map.md` stays the source of truth for WHICH page; the tier is only HOW to read it. The MCP tracks whatever docs environment it points at (production by default; a preview when repointed), so tier 1 also subsumes the `DOCS_BASE` env-swap.
62
+ - **If asked to "fix" something, check the live doc first and say where the fix belongs.** When a defect is really a **feature-correctness/behavior gap in the CometChat docs** (the doc is wrong or missing it), tell the user plainly it's a **docs** issue to report to CometChat — don't silently hand-roll a permanent local workaround for what the docs should carry. If the live doc is already correct, fix the integration to match it.
63
+ - **Compile hygiene — import the `CometChat` SDK namespace only when used as a VALUE.** It ships as an ambient global, so `CometChat.User`/`.Group`/`.BaseMessage` resolve as types with NO import. Import it only for value use (`instanceof CometChat.User`, `CometChat.CometChatHelper.*`, `new CometChat.*RequestBuilder`). A type-only import trips strict TS (`noUnusedLocals`+`verbatimModuleSyntax`, the Vite React-TS defaults) → `TS6133`; `import type` does not fix it. (AUDIT-007.)
64
+
65
+ ## Completeness & determinism
66
+ - Emit a contracted feature/component's FULL `contracts.json` min_capabilities every time (same minimum on every prompt) — no random subset, no unrequested scope. Least-code = use the drop-in that already provides them; the minimum set itself is fixed.
67
+
68
+ - **A family that cannot be resolved is REPORTED, never guessed.** No "nearest family" fallback, no
69
+ default-to-react: installing one framework's skills into another's project hands the agent APIs
70
+ that do not exist there, and it looks like success. Refuse, name what was detected and what is
71
+ shippable, write nothing, exit non-zero (AUDIT-105).
72
+
73
+ ## Fetch discipline — docs are the source of truth (never `.d.ts`)
74
+ > Paths below are **per-family**: use YOUR family's core skill — `cometchat-react-v7-core` or `cometchat-angular-v5-core` (and the same shape for any family added later). Every family ships its own `references/docs-map.md` with its own `DOCS_BASE`.
75
+ - The hot path (install + `init → login → render` + the drop-in props) is BAKED in your family's **`-core`** skill — do NOT fetch it.
76
+ - For anything else (exhaustive props, view-slots, long-tail components, theming tokens, feature steps) fetch the docs **`.md` twin**: append `.md` to the page URL — clean Markdown + the "AI Integration Quick Reference" JSON. Route with your family's **`-core/references/docs-map.md`**.
77
+ - Fallback order: `.md` twin → if it 404s, the HTML docs page (same URL, no `.md`) → **NEVER** `node_modules/**/*.d.ts`, and never training memory.
78
+ - Versions, **migrations**, dashboard paths and best-practices change fast: always fetch, never answer from memory. **A migration is a fetch-heavy task, not a baked-only one** — the skill's baked breaking-change map is a *closed list* (what was removed/renamed); the *shapes* (a target component's inputs/outputs, an SDK method's signature) still come from docs. Each family's `docs-map.md` carries a migration/upgrade row; the baked map naming a symbol is not a substitute for fetching what replaces it.
79
+ - **If the bundle is the only place left to look, that is a SKILL defect — say so.** Reading `node_modules` is not a permitted last resort; it is a signal that the skill gave you no route. State plainly which lookup was unroutable (so it can be fixed) rather than silently reverse-engineering the shipped bundle — the bundle shows a symbol's shape but never whether it is the *sanctioned* API, and an internal-only `declare class` is indistinguishable from an exported one.
80
+ - **Manifest / native-platform symbols are NOT docs symbols — verify them against the AAR/framework artifact per COHORT, and prefer auto-merge.** Manifest `<activity>`/`<provider>`/`<service>` fully-qualified class names, package namespaces, and permission strings are not in the docs `.md` twins. When a mobile skill bakes one, it MUST match the fully-qualified name in the **installed artifact's manifest** for that cohort (Android: the AAR `AndroidManifest.xml`), and it MUST NOT carry a name from a different cohort or an older major. Most kit-owned Activities are **already declared in the AAR manifest and merge in automatically** — the default guidance is "you do NOT declare these; they auto-merge," and any manual `<activity>` example is a cohort-split, artifact-verified fallback, never a copy of a prior major's namespace. (A v6 Android kit renamed `com.cometchat.chatuikit.*` → `com.cometchat.uikit.{compose,kotlin}.*`; baking the old `com.cometchat.chatuikit.calling.CometChatCallActivity` is exactly this class of defect — AUDIT-218.)
81
+
82
+ ## Default-on affordances — wire or hide (never dead-end)
83
+ - A drop-in can render a live-looking control **by default** that is **inert/partial until stitched** (callback + companion panel/sibling component, sometimes a Dashboard toggle). The UI Kit gives the trigger; the host must supply the destination.
84
+ - When fetching a component's props, classify every default-visible affordance: works standalone, or needs wiring? If it needs wiring, the emitted code MUST either wire the destination or hide the trigger. Never leave a default-on affordance dead-ending. `enablement:"default"` ≠ "no wiring."
85
+ - **Wire the FULL round-trip, not just the entry.** When you open/mount a companion component in response to a trigger, wire its COMPLETE interaction — the way IN *and* the way OUT (its own back/close/cancel callback), plus any result/confirm path. A component you toggle open owns state you must also toggle closed: its built-in back/close button fires a callback that does nothing unless YOU handle it. Before shipping, check every rendered control of the companion (back, close, cancel, result-click, submit) has a wired handler — an opened panel whose back button dead-ends is the SAME defect as an unwired trigger. Concretely, `CometChatSearch` (opened from `onSearchBarClicked`) renders a back button by default (`hideBackButton` default `false`) → you MUST wire **`onBack`** to close it (same state that opened it), and **`onConversationClicked`/`onMessageClicked`** to close it + select the result. Opening it without `onBack` is a broken product (AUDIT-017).
86
+ - Known v7 cases (`features.json` `needs_stitching`): `CometChatConversations` `showSearchBar` (default `true`, client-side name filter only) → `onSearchBarClicked` → render `CometChatSearch` **in the conversations list column** (over the list; the message pane stays — NOT a full-screen takeover; full-screen only on mobile's single pane) **+ wire its `onBack` (close) and `onConversationClicked`/`onMessageClicked` (close + select)**, or `showSearchBar={false}`; `CometChatMessageList` thread-reply indicator → `onThreadRepliesClick` + thread panel (**+ the panel's `CometChatThreadHeader` close button**) or `hideReplyInThreadOption`. (Wire the destination, its EXIT, AND put it in the right place — a full-screen search opened from a sidebar bar is a placement defect, AUDIT-014; a search with no `onBack` is a round-trip defect, AUDIT-017.)
87
+ - **Selection has THREE obligations, and every panel closes (AUDIT-079).** When you compose a selector (conversations/users/groups tabs) or a list ↔ a message pane, selecting an item has THREE jobs — doing only the first is a dead-end: (1) **render** the target pane; (2) **REFLECT** the selection in the list so the open row highlights — pass the built-in active-item prop: `CometChatConversations activeConversation` · `CometChatUsers activeUser` · `CometChatGroups activeGroup` (real v7 props; without them there's no active state and the user can't tell what's selected); (3) make EVERY side panel you open **closeable** — the round-trip above applies to the **user/group details** panel too (`CometChatGroupMembers` renders a header back button whose `onBack` is the host's to wire; a host-composed user-details panel adds its own close), not just search/thread. If a selection opens a panel, a close must lead back out of it.
88
+ - **Two searches, two SCOPES — never both global (AUDIT-041).** `CometChatConversations onSearchBarClicked` → a **GLOBAL** `CometChatSearch` (all conversations + messages, **NO `uid`/`guid`**) over the list column; `CometChatMessageHeader onSearchOptionClicked` (`showSearchOption` default `true`) → a **SCOPED** `CometChatSearch` passing the OPEN chat's **`uid` (1:1) / `guid` (group)** so it searches ONLY that conversation, in the side panel. Emitting the header search WITHOUT `uid`/`guid` (in-chat search returns whole-app results) is a defect. Docs already cover it (`components/search` → "Scoped Search", `uid`/`guid`); the rule is spelled out here so the scope isn't dropped from dense prose.
89
+ - **A capability-gated surface must be GATED ON REAL AVAILABILITY — a comment is not a gate, and a fallbackView is not always a fix (AUDIT-162).** Some drop-ins render the kit's raw "OOPS! Looks like something went wrong" screen when a backend capability/plan is unavailable — e.g. `CometChatCallLogs` when call-logs aren't in the plan. **Verified live: `CometChatCallLogs` renders that from its OWN INTERNAL error state WITHOUT throwing** — so an outer `CometChatErrorBoundary`/`fallbackView` never fires and CANNOT override it (its `onError` may also not fire). So the emitted code MUST **actually gate the trigger** on an availability flag (omit/disable the tab/route — a REAL condition in code, NOT a `// omit when …` TODO comment; a comment-only gate ships the dead-end). **A `fallbackView` only helps if the component THROWS — verify per component; do NOT assume it does.** For a component that renders its own internal error state (proven: `CometChatCallLogs`), the ONLY reliable protection is the availability gate. **The gate must key on real AVAILABILITY, not a proxy:** a feature being ENABLED (e.g. calling via `uiKit:{callsSDK:{}}`, which makes the header Voice/Video buttons appear) is necessary to OFFER the surface but is **not sufficient** for it to render — call-logs availability is a SEPARATE plan gate (proven live). Confirm availability with a one-time SDK probe you own (`CallLogRequestBuilder → fetchNext()`) or the known plan; default the surface OFF. Emitting an always-mounted `CometChatCallLogs` (or any such surface) with no real availability gate is a dead-affordance defect.
90
+ - **This rule is FAMILY-WIDE, and the SAME "OOPS!" screen has a SECOND root cause: SDK-readiness, not just plan (AUDIT-163, Angular).** On Angular, `<cometchat-call-logs>` mounted unguarded renders the identical "OOPS! / Retry" screen from a *client-side crash* — `[CometChatCallLogs] Error: TypeError: Cannot read properties of null (reading 'CallLogRequestBuilder')` — because its `ngOnInit` synchronously does `new CometChatUIKitCalls.CallLogRequestBuilder()` while `CometChatUIKitCalls` is still `null` (the Calls SDK is lazy-loaded via `loadCallsSDK().then(...)` and populates late; **Retry does NOT recover** and **no network request is made** — so this is NOT the plan gate). The fix here is a **readiness gate**, distinct from the availability probe — but **`callingReady` ALONE is NOT sufficient (proven live):** `CometChatUIKit.callingReady` defaults to a pre-resolved `Promise.resolve()` and even after `initCalling()` runs the lazily-loaded `CometChatUIKitCalls` namespace can still be `null`. Gate on the NAMESPACE actually being populated: `callingReady.then(() => callsReady.set(!!CometChatUIKitCalls))`, then `*ngIf="callsReady()"`. So a call-logs/`callsSDK`-backed surface needs BOTH gates conceptually — **readiness** (SDK loaded) AND **availability** (in plan) — before it may mount; default it OFF and reveal it only when its gate(s) pass. Every family that ships a lazily-loaded calls surface (React, Angular, RN, …) inherits this — do not treat it as a React-only or plan-only concern. (STOPGAP in the skills until the kit component awaits `getCometChatCalls()`/`callingReady` itself — filed upstream; the call-logs docs page omits the prerequisite — DOCS-BACKLOG.)
91
+
92
+ ## Reuse built-in props/callbacks/slots — UI Kit first, SDK fallback, hand-roll last
93
+ - **The order for EVERY feature: UI Kit component → SDK method → (only if neither) hand-roll.** First check if the UI Kit has a component/prop for the feature and use it. If the UI Kit has NO component for it (AI agents, campaigns, advanced/AI moderation, bots, webhooks, transient messages, low-level presence, …), drop to the **JavaScript Chat SDK** and call its method directly — the SDK library is already installed under the UI Kit. Hand-roll ONLY when neither the UI Kit nor the SDK exposes it. Never re-implement a feature that already exists in either.
94
+ - Before adding custom UI (buttons, handlers, panels) for a requested capability, map the affordance to an existing prop on the component (callbacks, `show*/hide*`, view slots). Don't scatter your own buttons when a built-in trigger exists.
95
+ - **Render custom controls in the component's OWN view slot — NEVER as a sibling on top.** A search icon / action button / banner / custom header goes INSIDE the component via its slot, not above or beside it: Conversations header → `headerView` (search bar → `searchView`); MessageHeader actions → `trailingView` / `auxiliaryButtonView`; MessageList banner → `headerView` / `footerView`; Composer extra button → `auxiliaryButtonView` / `headerView`. Rendering search "on top of" the conversation list instead of in its `headerView` (or over the message header instead of its `trailingView`) is a defect. Baked slot map: your platform's `core` skill -> `references/component-props.md`.
96
+ - **A FULL-REPLACE slot replaces everything it covers — re-render what you keep (AUDIT-083).** A list's `headerView` replaces the ENTIRE default header, including the "Chats"/"Groups"/"Users" **title**. So to add a "New chat"/"Create group" button, render the title AND your button together inside `headerView` — a bare button there silently drops the title. Use `useLocale().getLocalizedString(...)` for the title.
97
+ - **A form the kit ships NO component for must cover its FULL domain (AUDIT-081).** Host-built forms (e.g. create-group — v7 has no `CometChatCreateGroup` component) include EVERY variant from the SDK: a create-group form offers Public · Private · **Password**-protected (with a password field), not just public/private (`CometChat.GROUP_TYPE.PASSWORD` + `new CometChat.Group(guid, name, type, password)`).
98
+ - Discovery order: (1) the baked hot-path props in your family's **`-core`** skill; (2) the component's **`.md` twin** — its prop table + "AI Integration Quick Reference" JSON (append `.md` to the docs URL; route via your family's **`-core/references/docs-map.md`**); (3) if the UI Kit has NO component for the feature → the **SDK method** from the SDK docs (`docs-map.md` → SDK docs: the `llms.txt` index + the page's AI-Integration-Quick-Reference accordion); (4) only hand-roll when NEITHER the UI Kit nor the SDK has it. **Never read `node_modules` `.d.ts`; never guess from memory.**
99
+ - Use these instead of custom buttons: `CometChatMessageHeader` `onItemClick` → open user/group profile on header click; `CometChatMessageHeader` search button (`showSearchOption` default `true`) + `onSearchOptionClicked` → open message search; `CometChatConversations` `onSearchBarClicked` → open conversation search; `CometChatMessageList` `onThreadRepliesClick` → open thread panel.
100
+ - **Scope the conversation list to the request (reuse the built-in request-builder prop — don't hand-roll a filter).** A **1:1 / DM-only** ask must not show the app's seeded groups: pass `CometChatConversations conversationsRequestBuilder={new CometChat.ConversationsRequestBuilder().setConversationType("user")}` (groups-only → `"group"`) — the builder INSTANCE, not `.build()` (the kit builds it; passing the built object breaks the list). Don't add a Groups tab to a 1:1 app. A generic unscoped "add chat" keeps both types. (AUDIT-038)
101
+
102
+ ## Responsive / mobile-first layout — collapse to one screen at a time (never dead-end mobile)
103
+ - Any layout that composes more than one pane (list + message view, list + detail/thread, a full-app placement) MUST collapse to ONE screen at a time on small viewports. A fixed side-by-side layout that squashes/overflows on a phone is a defect — the same class as a dead-ending affordance (§ wire-or-hide): it dead-ends the mobile user.
104
+ - There is NO built-in responsive shell (no `WithMessages`/`CometChatUI` in v7); the host composes it. Mobile = a navigation stack: conversation list → tap a conversation → the message view REPLACES the list full-screen with a back control → tap the header → the details/thread view REPLACES the message view. The same selection state renders side-by-side on wide viewports.
105
+ - Reuse the built-in back affordance, don't hand-roll it: `CometChatMessageHeader` ships `hideBackButton` (default `false`) + `onBack()`. On mobile wire `onBack` to clear the selection (pop to the list); on wide set `hideBackButton` (the list is always present).
106
+ - Web recipe: drive the visible pane from selection state + `window.matchMedia("(max-width: 768px)")` (SSR-guarded, with a `change` listener). Panes need explicit height; never transition them with `transform` on a chat wrapper (clips the kit's `position:fixed` overlays — animate `right`/`left`/width). Native (RN/Flutter): stack navigation, one screen per route. Depth + recipe live in your platform's `placement` skill.
107
+
108
+ ## The CLI is a dashboard/API client only (loaded on demand)
109
+ - **Env-writing and codegen are the SKILL's job** — done by reading your repo and emitting code, never a CLI command. **Detection** is `npx @cometchat/skills detect --json` (the skills pack's offline probe: framework, UI Kit + `version_conflict`, `existing_cometchat` = a CometChat UI Kit/SDK dependency is present), topped up by the skill's own repo read. The dashboard CLI (`@cometchat/skills-cli`, loaded on demand) does DASHBOARD/API operations only: `auth` (dashboard login) + `provision` (fetch an app's App ID/Region/Auth Key) + `config` + **`features`** (enable/disable dashboard **extensions + AI** for an app — `features list`/`enable <id>`/`disable <id>`). It writes no code and knows no framework (see your platform's `core` skill -> `references/setup-credentials.md`). For a feature: the CLI `features enable <id>` flips the DASHBOARD toggle; the SKILL wires the component/prop in code. Installing/refreshing the skill files is the separate `@cometchat/skills add`.
110
+
111
+ ## Verification scope — BUILD the feature; do NOT test it unless asked
112
+ - **Your job is to BUILD the requested integration, not to test it.** After building, a `tsc`/build to confirm it compiles is sufficient. Do **NOT** scaffold or run end-to-end / browser / Playwright / headless / unit / integration tests, add a test framework or test files, or set up CI — **unless the user EXPLICITLY asks for tests.** "Add chat to my app" means add chat, not write a test suite or launch a browser to prove it.
113
+ - **A skill's "Verify it works" section is an ADVISORY, human-run sanity check** (start the app, see the conversation list render, send a message) — it is NOT an instruction for you to automate. Offer the checklist to the user if useful; never spin up a headless browser / E2E run to satisfy it yourself.
114
+ - Automated E2E/smoke testing of these skills is an INTERNAL CometChat-team activity (a separate skill-reviewer), never part of a customer integration. If you think testing is warranted, ASK first — don't do it unprompted.