cometchat-ios — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited cometchat-ios (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Ground truth:CometChatUIKitSwift ~> 5(+CometChatCallsSDK ~> 5) — Pods/SPM.swiftinterface+ui-kit/ios. Official docs: https://www.cometchat.com/docs/ui-kit/ios/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.
The user wants to add CometChat to any iOS project. Trigger phrases:
/cometchat (or invoke the cometchat-ios skill via your agent's mechanism — keyword "cometchat" or "integrate chat" works in most agents)This is the entry point for iOS integration. Do NOT invoke framework-specific skills directly — this dispatcher detects the project type first and routes to the right ones.
Supported project types:
| Type | Description |
|---|---|
| UIKit | Traditional UIKit-based iOS apps using Storyboards or programmatic UI |
| SwiftUI | Modern SwiftUI-based iOS apps |
| Hybrid | Apps using both UIKit and SwiftUI |
The iOS UI Kit loads CometChatUIKitSwift via CocoaPods or Swift Package Manager, along with CometChatSDK.
This skill is interactive and conversational. You don't just detect the project type and dump code. You have a conversation with the developer to understand their project, their use case, and exactly where chat should go — THEN you write code that fits.
Pattern skills (loaded from your context):
cometchat-ios-core — initialization, login, provider pattern, anti-patternscometchat-ios-components — component catalog, props, composition patternscometchat-ios-placement — WHERE to put chat (navigation, tabs, modals)cometchat-ios-theming — customizing colors, fonts, and stylescometchat-ios-customization — custom views, templates, formattersKey principle: ask, don't assume. Every piece of information you need from the user should be asked explicitly. Don't guess the view controller, don't guess where the trigger button goes, don't guess the auth system.
First, check for iOS project indicators:
Detection checklist:
.xcodeproj or .xcworkspace filesPodfile (CocoaPods), Package.swift (SPM as a package), or SPM dep refs in *.xcodeproj/project.pbxproj (SPM via Xcode GUI)Info.plist for app configuration@main App, ContentView.swift)AppDelegate.swift, SceneDelegate.swift, Storyboards)If the project has NO `Podfile`, NO `Package.swift`, AND no SPM refs in the .xcodeproj (the default state of every freshly Xcode-created File → New → App project), STOP. You must establish a dependency-management mechanism before touching integration code. Read cometchat-ios-core § 1.0 for the two options (CocoaPods script-able, SPM Xcode-GUI) and complete that step first. Skipping this produces an integration with import CometChatUIKitSwift that cannot resolve at build time.
Then read the project yourself — this is critical.
Podfile, Package.swift, or SPM refs in *.xcodeproj/project.pbxproj — existing dependenciesAppDelegate.swift, SceneDelegate.swift, or @main AppUINavigationController, UITabBarController, NavigationStackStore this mental map — you'll use it throughout the conversation.
Compatibility baselines:
CometChatCallsSDK 5.x has a deployment target of iOS 16.0; a project targeting iOS 13 will fail to link the Calls SDKAsk the user for their CometChat credentials:
Ask the user (preserve this exact shape — question, header, multiSelect, options[].label, options[].description — agents have varying primitive names but all support this structured form):
If they have credentials: Ask for:
us, eu, or in)If they need to create an account: Direct them to:
"Create a free account at https://app.cometchat.com 1. Sign up and create a new app 2. Go to API & Auth Keys section 3. Copy your App ID, Region, and Auth Key Tell me when you have them."
#### 3a. "What are you building?"
Ask the user (preserve the structured shape — question/header/multiSelect/options[].label/options[].description):
If "Just exploring": Skip the rest of Step 3 and scaffold the minimal integration — one view controller showing CometChatConversations with cometchat-uid-1 pre-logged-in.
#### 3b. Show what you recommend and why
| Intent | What you'll set up |
|---|---|
| Messaging app | A dedicated messages tab with conversation list + message view |
| Marketplace | A "Chat with seller" button on product screens + an inbox tab |
| SaaS / dashboard | A chat modal triggered from navigation + a messages section |
| Social / community | A full messenger with tabs: Chats, Calls, Users, Groups |
| Support | A floating chat button that opens a support conversation |
Ask: "Does this sound right, or do you want a different approach?"
#### 3c. Ask where things should go
Show the user their actual project structure — list the view controllers/views you found in Step 1.
For UIKit projects:
"I found these view controllers in your project: - MainViewController - ProfileViewController - SettingsViewController
>
Where should the messages screen be accessible from?"
For SwiftUI projects:
"I found these views in your project: - ContentView - HomeView - ProfileView
>
Where should the messages view be accessible from?"
#### 3d. Detect and ask about authentication
Look for auth libraries in the project:
FirebaseAuth → Firebase AuthenticationAuthenticationServices → Sign in with AppleGoogleSignIn → Google Sign-InReport what you found and ask:
If auth detected:
"I see you're using [Firebase Auth / etc.]. Here's how CometChat will work:
>
- Development (now): I'll use CometChat's Auth Key for quick testing - Production (later): Your server will mint per-user auth tokens
>
Start with dev mode for now?"
If no auth detected:
"I don't see an authentication system yet. For now, I'll set up CometChat with a hardcoded test user (cometchat-uid-1).
>
When you add auth later, you can connect them."
#### 3e. Confirm the plan
Show EXACTLY what you'll do before doing it:
"Here's what I'll create:
>
New files: -CometChatManager.swift— initialization and login handling -ChatViewController.swift— main chat interface
>
Files I'll modify: -AppDelegate.swift— add CometChat initialization -MainViewController.swift— add navigation to chat
>
Dependencies: CometChatUIKitSwift, CometChatSDK
>
Auth mode: Development (Auth Key)
>
Proceed? [y/n]"
Wait for explicit confirmation.
All skills are already loaded in your context. Read and follow them directly:
cometchat-ios-core — initialization, login, provider patterncometchat-ios-components — component catalog, composition patternscometchat-ios-placement — placement pattern for the chosen approachcometchat-ios-theming — if customization is neededExecute the confirmed plan:
After writing code:
Result message:
"CometChat is integrated! Here's what was set up:
>
- CometChatManager.swift ✓ - ChatViewController.swift ✓ - Dependencies added ✓
>
Next steps: 1. Run pod install (if using CocoaPods) 2. Build and run the app 3. Navigate to the chat screen>
About the empty conversation list: Every CometChat app has 5 pre-created test users:cometchat-uid-1throughuid-5. To see chat working: 1. Open https://app.cometchat.com → your app → Users 2. Send a message fromcometchat-uid-2tocometchat-uid-13. Refresh the app to see the conversation"
Ask the user (preserve the structured shape — question/header/options[].label/options[].description):
cometchat-ios-components skill — never invent from training data.Common iOS integration errors:
| Error | Cause | Solution |
|---|---|---|
| "CometChat is not initialized" | UI shown before init completes | Use completion handler pattern |
| "Invalid App ID" | Wrong credentials | Verify App ID in dashboard |
| "Module not found" | Dependencies not installed | Run pod install or add SPM package |
| Build errors | Missing imports | Add import CometChatUIKitSwift |
| Skill | When to load |
|---|---|
cometchat-ios-core | Always — before any integration code |
cometchat-ios-components | Always — before writing component code |
cometchat-ios-placement | When integrating — for placement patterns |
cometchat-ios-theming | When customizing themes |
cometchat-ios-customization | When writing custom views or templates |
cometchat-ios-features | When adding calls, reactions, polls, AI features |
cometchat-ios-push | When setting up push notifications |
cometchat-ios-production | When setting up production auth |
cometchat-ios-troubleshooting | When diagnosing problems |
This iOS UI Kit skill set includes 9 comprehensive skills:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.