cometchat-react-native-features

SkillDev tools

Lets your agent turn on a CometChat feature like reactions or polls in a React Native app via the right setup path.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the cometchat-react-native-features skill

About this skill

Turn a named CometChat capability on in a React Native app, look it up in the feature oracle, take the right enablement branch (already-on / dashboard extension / AI toggle / npm package / SDK fallback), and wire only what that branch needs. Triggers: enable reactions React Native, add polls RN cha

What this skill tells your AI

The instructions your AI receives, as published by cometchat/cometchat-skills in skills/cometchat-react-native-features/SKILL.md and read by ahel’s review.

Ground truth: features.rn-v5.json (48 entries) + catalog rn-v5.json. The oracle decides, not memory. Every claim below — whether a capability exists, whether it is on by default, which components render it — comes from that file. Fetch props via core/references/docs-map.md.

Companion skills (read first)

  • cometchat-react-native-core — install, provider chain, init→login→render. Assumed, not repeated here.

Use this skill when

  • "enable reactions / polls / translation / stickers" · "turn on smart replies"
  • "add voice and video calling" · "is X supported" · "how do I switch on Y"

Prerequisites & install

None beyond core unless the feature's branch says otherwise (only two features install a package).

Step 1 — look the feature up in the oracle

Find the entry in features.rn-v5.json. If there is no entry, the feature does not exist — say so rather than inventing an API. The entry tells you everything:

FieldWhat it decides
category · enablementwhich branch below to take
ui_componentswhat to render (all validated against the catalog)
sdk_fallbackthe SDK methods to use when the kit has no component
needs_stitchingyou must wire host state, not just drop a component in
needs_dashboarda dashboard toggle is required as well as code
auto_rendered_uithe kit renders it — emit no client code
platform_deltahow React Native differs from React here. Read it before writing anything.
docs_gapthe docs don't cover this yet — flag it, don't silently source-fill

Step 2 — take exactly one branch

A. Already on — category: default, enablement: auto (12 features)

Nothing to enable. Reactions, mentions, typing indicators, receipts, threads and attachments are core messaging in v5, not extensions.

⚠️ Do not offer these as "enable this extension". The dashboard still lists legacy Reactions and Mentions extensions; their own docs say they are already part of core and scheduled for deprecation. Suggesting them is a bug, not a helpful extra — it is the exact defect the React pack hit (AUDIT-077). Customization is via component props, not enablement.

B. Dashboard extension — enablement: dashboard-extension (20 features)

Enable in the CometChat dashboard first, then wire any ui_components. Polls, stickers, translation, link preview, whiteboard, document and similar. Without the dashboard step the code compiles and silently does nothing.

Some are auto_rendered_ui: true (e.g. polls' bubble) — the message list renders them once enabled. Emit no client code for those; hand-wiring produces a duplicate.

C. AI — category: ai, needs_dashboard: true (4 features)

Two steps, and the second is the one people miss: enable the feature in the dashboard and set the code prop. The props default to off, so a dashboard-only change looks like nothing happened. Smart replies, conversation starter, conversation summary, AI assistant. Fetch the exact prop name from /ui-kit/react-native/ai-features.md — do not guess it.

D. npm package — enablement: npm-package (2 features)

Only calling. React Native needs its own calls SDK:

npm install @cometchat/calls-sdk-react-native@5   # + its 6 pinned peer deps — exact list in cometchat-react-native-calls
cd ios && pod install

⚠️ Not @cometchat/calls-sdk-javascript — that is the web package and will not work. Its peers include react-native-webrtc, a native module: declare camera and microphone permissions (NSCameraUsageDescription / NSMicrophoneUsageDescription; CAMERA / RECORD_AUDIO). Simulators cannot capture camera or mic — calling must be verified on a real device. Depth lives in cometchat-react-native-calls.

E. SDK fallback — the kit has no component (3 features)

Kit v5 removed the detail and management screens. sdk_fallback names the methods:

FeatureWhyUse
group-member-managementno add/ban/transfer componentsaddMembersToGroup · banGroupMember · unbanGroupMember · transferGroupOwnership · BannedMembersRequestBuilder
user-group-detailsno details componentgetUser · getGroup · updateGroup
call-log-detailsonly the list shipsCometChatCalls.CallLogRequestBuilder (calls SDK)

Banned members have no UI surface at all. An app that can ban but cannot view or unban is an unclosed round-trip — ship both halves.

Do not invent a layout: cite the official sample app's implementation (github.com/cometchat/cometchat-uikit-react-native/tree/v5/examples/SampleApp). Those are sample-app directory paths, never imports.

Step 3 — wire only what the branch needs

Render the entry's ui_components and nothing else. A feature that is auto_rendered_ui gets no client code. A feature that is needs_stitching gets host state and callbacks wired, not just a mount.

Never enable a neighbouring feature because it seemed related — that is unrequested scope.

Known docs gaps (flag, don't silently source-fill)

reactions · typing-indicators · delivery-read-receipts · media-file-attachments (the whole multi-attachment cluster) · and the three SDK-fallback features above carry a docs_gap marker. Build from the catalog and kit source, and tell the developer the page is missing.

Common pitfalls

  1. Offering reactions/mentions as an extension — they are core in v5; the dashboard entries are legacy.
  2. Dashboard toggled, prop not set — AI features default to off in code.
  3. Installing the web calls SDK — RN has its own.
  4. Hand-wiring an auto_rendered_ui feature — duplicate UI.
  5. Assuming a feature exists — no oracle entry means no feature.
  6. Testing calls on a simulator — no camera or mic capture.

Verify it works

  • The feature has an entry in features.rn-v5.json and you took its branch.
  • Every emitted component appears in catalogs/rn-v5.json.
  • npm run verify:fences:rn-v5 is green.
  • On device: the capability actually appears — a dashboard-gated feature with no code change, or a code change with no dashboard step, produces silence rather than an error.

Signals

GitHub stars
114
Forks
2
Last commit
Sep 2026

ahel review

  • K1binfo
    installs-packages

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Catalog kind
skill
Key
cometchat-react-native-features
Source
github.com/cometchat/cometchat-skills