{"id":"640806d6-1666-4721-9c6c-660774c7980b","shortId":"aByDMa","kind":"skill","title":"cometchat-android-v5","tagline":"Entry-point dispatcher for CometChat Android UI Kit v5. Detects project setup, understands what the dev is building, and routes to the right sub-skills.","description":"## Purpose\n\nThis is the entry-point skill for CometChat Android UI Kit v5. It helps you understand what the developer is building, detects their project setup, and routes to the correct sub-skill for the task at hand.\n\n**All skills are designed to work with both Java and Kotlin projects.** Code examples in each skill are provided in both languages.\n\n---\n\n## Use this skill when\n\n- A developer asks to \"add chat to my Android app\"\n- Starting a new CometChat integration\n- Unsure which skill to use for a specific task\n- Need an overview of what CometChat Android UI Kit v5 offers\n\n## Do not use this skill when\n\n- You already know which specific skill is needed (go directly to it)\n\n---\n\n## 1. Project detection\n\nBefore writing any code, detect the project setup:\n\n| Check | How | Why |\n|---|---|---|\n| Language | Look for `.kt` files in `src/main/java/` or `src/main/kotlin/` | Determines Java vs Kotlin code examples |\n| Gradle version | Check `gradle-wrapper.properties` for `distributionUrl` | Affects dependency syntax (Groovy vs Kotlin DSL) |\n| Min SDK | Check `build.gradle` for `minSdkVersion` | Must be 24+ for CometChat |\n| Existing CometChat | Search for `com.cometchat` in `build.gradle` | Avoid duplicate setup |\n| Calling SDK | Search for `com.cometchat:calls-sdk-android` | Determines if voice/video is already available |\n\n---\n\n## 2. What are you building?\n\nAsk the developer what they're building to recommend the right placement:\n\n| Intent | Recommended placement | Components |\n|---|---|---|\n| Messaging app | Dedicated Activity with bottom tabs | `CometChatConversations` + `CometChatMessageList` + `CometChatMessageComposer` + `CometChatMessageHeader` |\n| Marketplace / platform | Chat button on product screen + inbox Activity | Single thread (button trigger) + multi-conversation (inbox) |\n| SaaS / dashboard | Chat Fragment in existing Activity | `CometChatConversations` in a Fragment |\n| Social / community | Full messenger with tabs | Conversations + Users + Groups + Calls in ViewPager/BottomNav |\n| Support / helpdesk | BottomSheet or Dialog overlay | `CometChatMessageList` + `CometChatMessageComposer` in BottomSheet |\n| Just exploring | Minimal single-Activity demo | `CometChatConversations` with pre-logged-in test user |\n\n---\n\n## 3. Skill routing reference\n\n| Skill | When to load |\n|---|---|\n| `cometchat-android-v5-core` | **Always** — before any integration code. Init, login, builder, dependencies. |\n| `cometchat-android-v5-components` | **Always** — before writing component code. Full catalog of all CometChat views. |\n| `cometchat-android-v5-placement` | When integrating — Activity, Fragment, BottomSheet, Dialog, Tab patterns. |\n| `cometchat-android-v5-theming` | When customizing look and feel — colors, fonts, dark mode, style classes. |\n| `cometchat-android-v5-features` | When adding features — calls, reactions, polls, AI, extensions. |\n| `cometchat-android-v5-customization` | When writing custom templates, events, DataSource decorators. |\n| `cometchat-android-v5-production` | When setting up production auth or user management. |\n| `cometchat-android-v5-troubleshooting` | When diagnosing problems — Gradle errors, crashes, rendering issues. |\n| `cometchat-android-v5-extensions` | When working with extensions (polls, stickers, collaborative, etc.). |\n| `cometchat-android-v5-push` | When setting up push notifications (FCM, token lifecycle, deep-link). |\n| `cometchat-android-v5-testing` | When adding tests (unit, UI, instrumented, E2E, CI). |\n\n---\n\n## 4. Integration order\n\nEvery integration follows this sequence:\n\n```\n1. Dependencies (Gradle)          → cometchat-android-v5-core §1\n2. Manifest permissions            → cometchat-android-v5-core §5\n3. App theme setup                 → cometchat-android-v5-core §5b (must inherit CometChatTheme.DayNight — Material 2 parent)\n4. Init + Login                    → cometchat-android-v5-core §2-3\n5. Place components in your app    → cometchat-android-v5-placement\n6. Customize appearance            → cometchat-android-v5-theming\n7. Add features                    → cometchat-android-v5-features\n8. Production hardening            → cometchat-android-v5-production\n```\n\n---\n\n## 5. Iteration menu\n\nAfter the initial integration, the developer can:\n\n1. **Customize look and feel** — Theme presets, brand colors, dark mode\n2. **Add a feature** — Calls, reactions, polls, AI smart replies, file sharing\n3. **Customize a component** — Custom message bubbles, headers, composer actions\n4. **Set up production auth** — Replace dev Auth Key with server-side tokens\n5. **Set up push notifications** — FCM setup, token lifecycle, deep-link on tap\n6. **Add tests** — Unit tests, UI tests, E2E with Maestro\n7. **Troubleshoot an issue** — Gradle errors, runtime crashes, rendering problems\n\nRoute each choice to the appropriate skill.\n\n---\n\n## Hard rules\n\n- **Always read `cometchat-android-v5-core` first.** It covers init, login, and dependencies — prerequisites for everything else.\n- **Always read `cometchat-android-v5-components` before writing component code.** Never invent component names or method signatures from memory.\n- **Provide both Java and Kotlin examples.** The v5 UIKit is written in Java but is fully interoperable with Kotlin. Client devs use both.\n- **Ask, don't assume.** Every integration decision (placement, features, auth mode) should be confirmed with the developer.\n- **Always read existing files before modifying them.** Never blindly overwrite project files.","tags":["cometchat","android","skills","agent-skills","ai-agent","chat","claude-code","cursor","messaging","nextjs","react","react-native"],"capabilities":["skill","source-cometchat","skill-cometchat-android-v5","topic-agent-skills","topic-ai-agent","topic-chat","topic-claude-code","topic-cometchat","topic-cursor","topic-messaging","topic-nextjs","topic-react","topic-react-native","topic-ui-kit"],"categories":["cometchat-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/cometchat/cometchat-skills/cometchat-android-v5","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add cometchat/cometchat-skills","source_repo":"https://github.com/cometchat/cometchat-skills","install_from":"skills.sh"}},"qualityScore":"0.463","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 27 github stars · SKILL.md body (5,486 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:04:45.672Z","embedding":null,"createdAt":"2026-05-07T13:05:04.751Z","updatedAt":"2026-05-18T19:04:45.672Z","lastSeenAt":"2026-05-18T19:04:45.672Z","tsv":"'-3':537 '1':151,494,502,583 '2':229,503,526,536,594 '24':201 '3':326,512,606 '4':486,528,616 '5':511,538,573,630 '5b':521 '6':549,644 '7':557,654 '8':565 'action':615 'activ':253,269,284,316,371 'ad':399,479 'add':102,558,595,645 'affect':186 'ai':404,601 'alreadi':140,227 'alway':339,353,673,691,751 'android':3,11,42,106,128,222,336,350,366,379,395,408,420,433,446,459,475,499,508,518,533,546,554,562,570,677,695 'app':107,251,513,543 'appear':551 'appropri':669 'ask':100,234,734 'assum':737 'auth':427,620,623,743 'avail':228 'avoid':211 'blind':759 'bottom':255 'bottomsheet':303,310,373 'brand':590 'bubbl':612 'build':23,54,233,240 'build.gradle':196,210 'builder':346 'button':264,272 'call':214,220,298,401,598 'calls-sdk-android':219 'catalog':359 'chat':103,263,280 'check':162,182,195 'choic':666 'ci':485 'class':392 'client':730 'code':84,157,178,343,357,701 'collabor':455 'color':387,591 'com.cometchat':208,218 'cometchat':2,10,41,111,127,203,205,335,349,362,365,378,394,407,419,432,445,458,474,498,507,517,532,545,553,561,569,676,694 'cometchat-android-v5':1 'cometchat-android-v5-components':348,693 'cometchat-android-v5-core':334,497,506,516,531,675 'cometchat-android-v5-customization':406 'cometchat-android-v5-extensions':444 'cometchat-android-v5-features':393,560 'cometchat-android-v5-placement':364,544 'cometchat-android-v5-production':418,568 'cometchat-android-v5-push':457 'cometchat-android-v5-testing':473 'cometchat-android-v5-theming':377,552 'cometchat-android-v5-troubleshooting':431 'cometchatconvers':257,285,318 'cometchatmessagecompos':259,308 'cometchatmessagehead':260 'cometchatmessagelist':258,307 'cometchattheme.daynight':524 'communiti':290 'compon':249,352,356,540,609,697,700,704 'compos':614 'confirm':747 'convers':276,295 'core':338,501,510,520,535,679 'correct':63 'cover':682 'crash':441,661 'custom':383,410,413,550,584,607,610 'dark':389,592 'dashboard':279 'datasourc':416 'decis':740 'decor':417 'dedic':252 'deep':471,640 'deep-link':470,639 'demo':317 'depend':187,347,495,686 'design':75 'detect':15,55,153,158 'determin':174,223 'dev':21,622,731 'develop':52,99,236,581,750 'diagnos':437 'dialog':305,374 'direct':148 'dispatch':8 'distributionurl':185 'dsl':192 'duplic':212 'e2e':484,651 'els':690 'entri':6,37 'entry-point':5,36 'error':440,659 'etc':456 'event':415 'everi':489,738 'everyth':689 'exampl':85,179,716 'exist':204,283,753 'explor':312 'extens':405,448,452 'fcm':467,635 'featur':397,400,559,564,597,742 'feel':386,587 'file':169,604,754,762 'first':680 'follow':491 'font':388 'fragment':281,288,372 'full':291,358 'fulli':726 'go':147 'gradl':180,439,496,658 'gradle-wrapper.properties':183 'groovi':189 'group':297 'hand':71 'hard':671 'harden':567 'header':613 'help':47 'helpdesk':302 'inbox':268,277 'inherit':523 'init':344,529,683 'initi':578 'instrument':483 'integr':112,342,370,487,490,579,739 'intent':246 'interoper':727 'invent':703 'issu':443,657 'iter':574 'java':80,175,713,723 'key':624 'kit':13,44,130 'know':141 'kotlin':82,177,191,715,729 'kt':168 'languag':93,165 'lifecycl':469,638 'link':472,641 'load':333 'log':322 'login':345,530,684 'look':166,384,585 'maestro':653 'manag':430 'manifest':504 'marketplac':261 'materi':525 'memori':710 'menu':575 'messag':250,611 'messeng':292 'method':707 'min':193 'minim':313 'minsdkvers':198 'mode':390,593,744 'modifi':756 'multi':275 'multi-convers':274 'must':199,522 'name':705 'need':122,146 'never':702,758 'new':110 'notif':466,634 'offer':132 'order':488 'overlay':306 'overview':124 'overwrit':760 'parent':527 'pattern':376 'permiss':505 'place':539 'placement':245,248,368,548,741 'platform':262 'point':7,38 'poll':403,453,600 'pre':321 'pre-logged-in':320 'prerequisit':687 'preset':589 'problem':438,663 'product':266,422,426,566,572,619 'project':16,57,83,152,160,761 'provid':90,711 'purpos':32 'push':461,465,633 're':239 'reaction':402,599 'read':674,692,752 'recommend':242,247 'refer':329 'render':442,662 'replac':621 'repli':603 'right':28,244 'rout':25,60,328,664 'rule':672 'runtim':660 'saa':278 'screen':267 'sdk':194,215,221 'search':206,216 'sequenc':493 'server':627 'server-sid':626 'set':424,463,617,631 'setup':17,58,161,213,515,636 'share':605 'side':628 'signatur':708 'singl':270,315 'single-act':314 'skill':31,39,66,73,88,96,115,137,144,327,330,670 'skill-cometchat-android-v5' 'smart':602 'social':289 'source-cometchat' 'specif':120,143 'src/main/java':171 'src/main/kotlin':173 'start':108 'sticker':454 'style':391 'sub':30,65 'sub-skil':29,64 'support':301 'syntax':188 'tab':256,294,375 'tap':643 'task':69,121 'templat':414 'test':324,477,480,646,648,650 'theme':381,514,556,588 'thread':271 'token':468,629,637 'topic-agent-skills' 'topic-ai-agent' 'topic-chat' 'topic-claude-code' 'topic-cometchat' 'topic-cursor' 'topic-messaging' 'topic-nextjs' 'topic-react' 'topic-react-native' 'topic-ui-kit' 'trigger':273 'troubleshoot':435,655 'ui':12,43,129,482,649 'uikit':719 'understand':18,49 'unit':481,647 'unsur':113 'use':94,117,135,732 'user':296,325,429 'v5':4,14,45,131,337,351,367,380,396,409,421,434,447,460,476,500,509,519,534,547,555,563,571,678,696,718 'version':181 'view':363 'viewpager/bottomnav':300 'voice/video':225 'vs':176,190 'work':77,450 'write':155,355,412,699 'written':721","prices":[{"id":"513bebe4-a936-4490-ad7c-0897fb25a848","listingId":"640806d6-1666-4721-9c6c-660774c7980b","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"cometchat","category":"cometchat-skills","install_from":"skills.sh"},"createdAt":"2026-05-07T13:05:04.751Z"}],"sources":[{"listingId":"640806d6-1666-4721-9c6c-660774c7980b","source":"github","sourceId":"cometchat/cometchat-skills/cometchat-android-v5","sourceUrl":"https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-android-v5","isPrimary":false,"firstSeenAt":"2026-05-07T13:05:04.751Z","lastSeenAt":"2026-05-18T19:04:45.672Z"}],"details":{"listingId":"640806d6-1666-4721-9c6c-660774c7980b","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"cometchat","slug":"cometchat-android-v5","github":{"repo":"cometchat/cometchat-skills","stars":27,"topics":["agent-skills","ai-agent","chat","claude-code","cometchat","cursor","messaging","nextjs","react","react-native","ui-kit"],"license":null,"html_url":"https://github.com/cometchat/cometchat-skills","pushed_at":"2026-05-18T05:04:24Z","description":"Add CometChat chat to any React, Next.js, React Native, Angular, Android, iOS, or Flutter project through your AI coding agent. Works with Claude Code, Cursor, Codex, VS Code Copilot, Windsurf, Cline, Kiro, and 50+ more agents.","skill_md_sha":"ff9ec5e025df3bf81d4fa73f7879a27790bc9e62","skill_md_path":"skills/cometchat-android-v5/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/cometchat/cometchat-skills/tree/main/skills/cometchat-android-v5"},"layout":"multi","source":"github","category":"cometchat-skills","frontmatter":{"name":"cometchat-android-v5","license":"MIT","description":"Entry-point dispatcher for CometChat Android UI Kit v5. Detects project setup, understands what the dev is building, and routes to the right sub-skills.","compatibility":"Android 7.0+; Java 8+; Kotlin 1.8+; com.cometchat:chat-uikit-android:5.x"},"skills_sh_url":"https://skills.sh/cometchat/cometchat-skills/cometchat-android-v5"},"updatedAt":"2026-05-18T19:04:45.672Z"}}