cometchat-migrate-from-twilio
Ground truth: the TWILIO side (what to look for) is baked in
references/inventory.md+references/feature-map.md— confirm each hit by reading the user's code and, where unsure, Twilio's current Conversations docs. The COMETCHAT side is never from memory: symbols from the target family's skills + catalog, feature existence fromfeatures.json, signatures viacometchat-<family>-core/references/docs-map.md(Docs MCP first —RULES.md→ Fetch discipline). REST pages underDOCS_BASE = https://www.cometchat.com/docs.
Companion skills (read first)
cometchat-<family>-core— the init → login → render (or the Chat SDK init/login) the migrated app lands on;<family>resolved in step 1.cometchat-security— the server token endpoint that replaces Twilio access tokens.
Use this skill when
"migrate my app from Twilio to CometChat", "replace Twilio Conversations", or "migrate my app to CometChat" when npx @cometchat/skills detect --json reports migrate_from vendor twilio. Sendbird/Stream apps → their own skills.
The single-prompt contract (read before step 1)
The migration request IS the approval (RULES.md → Competitor migration). Run every step to the end in one turn: no plan/approve gate, no questions — take the documented default and record it under Defaults taken. Work on a cometchat-migration git branch; never commit/push. You DO run the data-import script — but only at the very end and only after the user hands you the credentials (step 8); that single credential prompt is the sole exception to "no questions". Removing Twilio is the requested outcome; non-Twilio code is only rewired. Only STOP if: no Twilio usage found (hand to cometchat), the platform has no family in this pack (deliver the inventory as the report), or the app didn't build before you started (record it, migrate anyway, label pre-existing).
Twilio is headless — so this is client/SDK mode
Twilio Conversations ships no UI Kit; the app already has its own chat UI on the Twilio client. Default migration therefore keeps that UI and swaps the data layer to the CometChat Chat SDK (cometchat-<family>-core docs-map → SDK), mapping CometChat objects into the app's existing view models at the boundary. If the user instead wants CometChat's prebuilt UI, offer to replace their UI with the family UI Kit (a bigger change) — but the safe default is data-layer-only.