cometchat-react-calls
Installation
SKILL.md
Ground truth:
@cometchat/chat-uikit-react@^6(+@cometchat/calls-sdk-javascript@^5) — installed package types +ui-kit/react. Official docs: https://www.cometchat.com/docs/calls/javascript/overview · Docs MCP:claude mcp add --transport http cometchat-docs https://www.cometchat.com/docs/mcp(or fetch the URL directly without MCP). Verify symbols against the installed package/source before relying on them.
⚠️ STOP — mandatory precondition before any code
Before writing one line of code, you MUST resolve mode = ringing | session. This decides which entire integration shape you scaffold — they don't share UI, navigation, or surface.
mode |
Surface shape | Reference |
|---|---|---|
ringing |
CometChatIncomingCall at root + CometChatCallButtons near a user / contact / message header. Recipient's screen rings on incoming call. |
references/ringing-integration.md |
session |
/meet/:sessionId route (or equivalent) + CometChatCalls.joinSession on a container <div>. No ringing — both parties enter the same session ID. |
references/call-session.md |
How to resolve mode (in order):
- Check
.cometchat/config.jsonformode— if set by thecometchat-callsdispatcher's Step 3.0, trust it. - Infer from the user's words — see
cometchat-calls/SKILL.mdStep 3.0 inference table. Confirm in one line: "Got it — setting up Ringing. Say so if you wanted meeting-room URLs instead." - If still ambiguous (e.g. user said only "integrate calls" with no qualifier) — ASK before scaffolding. Don't default to ringing. Use this prompt verbatim — preserve the order, the labels, and the descriptions exactly. Do NOT rephrase. Do NOT swap options. Option 1 is "Session"; option 2 is "Ringing":