Repository navigation
docs: chat experience blueprint & design system (agent-facing) - #533
Conversation
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
A single URL-fetchable reference the CometChat skills (and any AI agent) follow to build production-grade, WhatsApp/Telegram/iMessage/Slack/Discord-class chat UIs end-to-end on the customer's own brand — UX principles, semantic design tokens (light/dark), motion specs, responsive layouts, the real UI Kit component map, per-app-type recipes, a full-feature checklist, and fresh-build + non-breaking-retrofit playbooks. Grounds all exact props/theme keys/SDK methods in the live docs (never invented). No skill changes — skills reference it by URL. Unlisted (not hidden): served at /docs/design-system, indexable for search + AI, kept out of the human sidebar; no docs.json change. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PT9pMg3MSZEW3gsb6jPc3E
…ent-skills); make it platform-generic + prerequisites-first - Add design-system to the Developer Tools nav group so it shows alongside Agent Skills, CLI, and MCP (no longer unlisted). - Reframe as cross-platform: applies to every UI Kit + SDK (React, Angular, Vue, RN, iOS, Android, Flutter); removed React-specific framing from the API section. - Add a 'Before you start (prerequisites)' section up front — what the agent needs (app+creds, target family, archetype/scope, brand, fresh-vs-retrofit, docs access) before building. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PT9pMg3MSZEW3gsb6jPc3E
The full-feature checklist link (and others with &, arrows, em-dashes, quotes in the heading) didn't resolve because the anchor slugs didn't match Mintlify's. Renamed those headings to clean slugs and updated the links.
…l screens, layout, premium look) From real build feedback — the blueprint was principles-level and yielded a basic app. Added prescriptive guidance so following it is production-ready: - Auth and session: real login gate + logout + server-minted tokens; never a hardcoded UID. - Navigation and screens: wire the COMPLETE set (chats, chat, contact/group details, search, new chat, calls, settings) with mobile routing — no dead controls, no half-wired panes. - Layout correctness: exact flex/height rules to kill the empty-gap / whole-page over-scroll bug and keep it keyboard-safe (100dvh, min-height:0, internal list scroll, pinned composer). - Premium look: wallpaper, bubble tails + shadow, grey→blue ticks, unread badges, FAB, density, full dark mode — not the flat default. - Acceptance checklist now fails a basic UI, dead control, empty scroll, or missing login.
Encode the kit-specific traps a principles doc can't cover: token scoping (:root AND .cometchat), cascade/specificity, and that composer/attachment/emoji icons are recolored by a hardcoded CSS filter (not a token) — override the filter, solved numerically. Add a Known UI Kit gotchas section (plan-gated Search 402 + onError, message search is CometChatSearch not a header button, unreliable onItemClick needs an explicit affordance, verify in dark mode) and wire the same checks into the acceptance checklist. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PT9pMg3MSZEW3gsb6jPc3E
…ts-first flow - Remove specific competitor app names (WhatsApp/Telegram/iMessage/Slack/Discord); archetypes are now described by characteristics (consumer messenger, team workspace, community server, etc.), and a named app is translated to the nearest archetype. - Add a mandatory "Discovery and requirements (do this first)" phase: the agent must ask the required questions up front — notably the third-party-packages policy (UI Kit/SDK only vs closest-possible-fidelity vs per-feature), UI Kit vs headless SDK, platform, auth, brand, dashboard-gated features — then research the feature set, emit a cometchat-requirements.md (feature/screen table tagged by how it's built + scope), get explicit approval, and build one checklist item at a time. - Thread the discovery-first + one-item-at-a-time flow through the how-to-use steps and the fresh-build sequence. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PT9pMg3MSZEW3gsb6jPc3E
…tional Discovery must produce an EXHAUSTIVE requirements + plan of action (every feature, behavior, and parity detail — receipts on/off, channel #/lock vs avatar, threads, mentions variants, composer layout, states, density, dark mode), tag each item by how it's built + effort (incl. "not natively possible"), and let the USER choose scope (core / subset / all) — never pre-decide "core" or ship a partial build as finished. Report progress against the plan. This is the fix for shipping a themed default and calling it a clone. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PT9pMg3MSZEW3gsb6jPc3E
- Cloning an existing app: research the target down to tiny details (entry point -> container -> close for every feature, rows, messages, composer, shortcuts, states, copy, measured tokens, motion, responsive), sources ranked, unverified details confirmed with the user, legal boundary. - Kit component or your own UI: per-item build levels L0-L6 (kit as-is, config, slots, kit in your container, own UI on the SDK, third-party, not possible) with rules; placement is never a reason to rebuild or to accept the kit default. - Design sync: one token source measured from the target, theme the kit and build custom UI from it, side-by-side comparison loop. - Requirements table gains target-behavior and build-level columns. - Interaction patterns per archetype (brand-neutral). - Navigation, premium look, search gotcha, build/retrofit steps and the verify checklist follow the target instead of kit defaults. - Drop the stale .cometchat/config.json credential source. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
6d2cd21 to
dbc93aa
Compare
- Per-platform notes: theming per family (React/Angular CSS variables, React Native CometChatThemeProvider, iOS CometChatTheme before init, Android themes.xml / Compose CometChatTheme, Flutter ThemeExtension on both modes), layout and navigation per platform, mobile equivalents of desktop patterns, localization APIs per family, native gotchas. - Mark Layout correctness, the theming contract and Known gotchas as web. - Vue UI Kit flagged as v4; Android lists Kotlin XML and Compose. - Theming and localization links for every family; native verify item. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
"Build me a clone of X" is a complete request: one short round of questions with defaults (platform detected, app name, optional screenshots), a defaults table for everything else, and a single approval of a proposed scope before building. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
…s and huddles - Empty app and sample data: never send messages or create users/groups on anyone's behalf without a yes; say the app is empty and offer clearly marked sample data. - Kit vs own UI: an L4 piece takes over the kit's duties (call buttons, presence); one owner per data set, listeners once with cleanup. - Calls: off until the Calls SDK is installed and enabled; huddles are a joinable group call plus an own indicator (team workspace pattern). - Verify: calls connect between two users or are reported unverified; no duplicate requests; no data created without asking. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
…d palette, nits - Discovery: short requests run the one-message + single-approval flow; the third-party policy and scope rules now say how that flow satisfies them. - "Three rules" -> "Four rules". - Replace WhatsApp's palette (table neutrals, wallpaper, bubbles, ticks, presence, filter example) with generic neutrals and accents derived from brand. - Drop the duplicate H1; <Note> -> blockquote (clean .md twin); AiAssistantChat -> AIAssistantChat; llms.txt link text. - Soften the Search 402 and onItemClick wording (no bug claim). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
…t applies New "Build a complete app, or clone one" section under Use it, a "Full apps & clones" prompt group, and a Next steps card. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
…ers and 1:1/group The huddle pattern and the avatar/name check apply to every platform, so they live in the blueprint. Platform code stays in each family skill. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
…uidance Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
…t settings do not cover 1:1 or own messages Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
…t colors, tick/radius fixes, thread panel composition, secondary surfaces + motion + smooth send Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
… app names Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
jitvarpatil
left a comment
There was a problem hiding this comment.
Requesting changes on three statements an agent would copy straight into a customer app. The build is safe: after merging with main, docs.json gains only the one nav line, and every nav ref resolves.
design-system.mdx:942says there is no built-in search onCometChatMessageHeader. React 7.2.6 hasshowSearchOption(defaulttrue) andonSearchOptionClicked, andui-kit/react/components/message-header.mdxdocuments both. An agent following this adds a second search button.design-system.mdx:442givesloginWithAuthToken(token)for every kit. iOS isCometChatUIKit.login(authToken:result:)and React Native isCometChatUIKit.login({ authToken }). Name the call per platform.agent-skills.mdx:135and:366say the skills follow this blueprint.@cometchat/skills5.1.0 never references/design-system; its own contract says to reuse the app's existing design system. Either ship a skills release that points here, or say agents can follow it.
Smaller:
:1020–1022says Flutter uses delegates andTranslations. Flutter 6.3.0 also shipsCometChatLocalize(ui-kit/flutter/localize.mdx).:1031gives the Reanimated / worklets Babel plugin as the React Native example. The RN kit (5.5.4) doesn't use Reanimated.:622–626: React v7 declares its tokens inside@layer cometchat, so any unlayered customer rule already wins, and extra specificity won't beat it if the customer's own CSS is layered. The.cometchat.cometchatadvice is harmless; the reason given is wrong.- The description says the page is listed in Developer Tools;
docs.jsonadds it to the hidden AI-Driven Development tab. The branch is 283 commits behind main, so the preview is built from an old tree.
…ogin, cascade, skills wording) - React's message header has a search button (showSearchOption); other kits don't. - Name the auth-token login call per kit (iOS and React Native differ). - React v7 tokens live in @layer cometchat; explain the cascade per kit. - Flutter also uses CometChatLocalize; RN example lists the kit's real peers. - agent-skills: an agent "can follow" the blueprint (skills 5.1 don't reference it). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XbguTujAwRbSU5fkYZSyYq
jitvarpatil
left a comment
There was a problem hiding this comment.
🤖 Review Buddy (review-docs-pr)
Recommendation: approve. Automated review; the final decision stays with a maintainer.
TL;DR: This PR only adds things: one new page (design-system.mdx, 1,135 lines), one new section and a card in agent-skills.mdx, and one nav entry in the hidden AI-Driven Development tab. Nothing is moved, renamed or deleted, so no redirects are needed and nothing will 404. The nav entry resolves, docs.json is valid JSON, and every internal link and all 25 in-page anchors resolve. I checked the page's specific API claims against the current kit source, and they hold. No P0 or P1 findings. Four P2 nits are listed below. Note: the PR still carries the do not merge label, so the author or a maintainer needs to remove it before merging.
P0: none
P1: none
P2 / nits
- The front-matter description doesn't match the PR's own fix.
design-system.mdx:4says this is the design system "CometChat's AI skills (and any AI coding agent) follow". The last commit changedagent-skills.mdxto say an agent can follow it, because skills 5.1 don't reference it yet. Suggest "…that an AI coding agent can follow…". The description is also about 480 characters long. Search snippets and link unfurls cut off around 160, so consider trimming it. - The numbered steps read as part of the one-line flow.
design-system.mdx:96-130: the 1–10 list ("Run discovery first…" through "Verify") comes right after "One approval, then build", still under the### From a one-line requestheading. It is really the general procedure. Give it its own heading (for example### The process) so an agent doesn't think it applies only to short requests. - A version-pinned selector list will drift.
design-system.mdx:929lists composer selectors for "React UI Kit v7.2". They matchdev-v7today (CometChatMessageComposer.css,hue-rotate(235deg)at :805;__ai-button:hoverat :1194). Add a one-line "re-check these against the installed kit version" so a future CSS rename doesn't send agents to dead selectors. - A vague hedge.
design-system.mdx:1032: "check the version's docs — this has been changing" for Flutter localization. Link to/ui-kit/flutter/localizeinline (it's already in "Where to get exact APIs") or drop the hedge.
Checked and passed
- Redirects: 0 removed or renamed files, so no redirects are needed and no existing redirects are broken.
- Navigation:
design-systemwas added toAI-Driven Development(hidden: true) and resolves todesign-system.mdx.docs.jsonparses. - Links: all 17 internal page links resolve on the PR head (theming ×6, localization ×6,
ui-kit/react/components/conversations,agent-skills,mcp-server,fundamentals/key-concepts,/design-system). All 25#anchorlinks match heading slugs. - API claims checked against source:
- Auth-token login per kit: React, Angular and Flutter use
loginWithAuthToken; iOS useslogin(authToken:); React Native useslogin({ authToken }). - React
@layer cometchat,--cometchat-message-list-bg,showSearchOption/onSearchOptionClicked, andCometChatThreadView. - Search returns HTTP 402 until Search is enabled on the plan, which matches
ui-kit/react/components/search.mdx. - Android
CometChatTheme.DayNightand FlutterCometChatTheme.mergeThemeExtensions.
- Auth-token login per kit: React, Angular and Flutter use
- Content: no TODO, FIXME or placeholder leftovers, no images to resolve, and no competitor brand names left in prose or example prompts (they now use placeholders).
Skipped
mint broken-links/mint devbuild: not run here. The checks above cover what it would catch for this additive change. The PR body reportsmint broken-linksclean on the changed pages.- Rendered preview: not opened. The Mintlify preview deploy is 🟢 Ready.
Adds a single, cross-platform experience blueprint / design system that any AI coding agent can follow to build production-grade, WhatsApp/Telegram/iMessage/Slack/Discord-class chat UIs end-to-end, on the customer's own brand. No skill changes in this PR: skills 5.1 don't reference it yet; the unreleased 5.2.0 reads it in clone mode.
Placement
Added to the AI-Driven Development tab next to Lovable (one
docs.jsonline). That tab is hidden from the nav, so the page is reached by link (/docs/design-system, linked from Agent Skills) rather than browsing.Platform-generic
Applies to every UI Kit and SDK — React, Angular, Vue, React Native, iOS, Android, Flutter (and headless Chat/Calls SDKs). Component names are consistent across families; exact props/theme keys are fetched from each family's docs.
What's in
design-system.mdxprefers-reduced-motionaware, native transitions on mobile.Safety
docs.jsonvalid; all internal links resolve; no MDX components (clean.mdtwin for agents).Shareable URL after merge:
https://www.cometchat.com/docs/design-system(and…/design-system.mdfor the agent-read twin).🤖 Generated with Claude Code
https://claude.ai/code/session_01PT9pMg3MSZEW3gsb6jPc3E
Update: cloning any app, kit vs your own UI, design sync
main(docs.jsonconflict resolved alongsidemigrate-with-agent-skillsandlovable).Review fixes (9ca0b7e)
Merged
main(the branch was 283 commits behind) and fixed the review findings:CometChatMessageHeaderhas a search button (showSearchOption, on by default). The page now says to use it or hide it, so the header doesn't show two. Other kits' headers have none.loginWithAuthToken(token)on React, Angular, Android and Flutter;login(authToken:)on iOS;login({ authToken })on React Native.@layer cometchat, so unlayered overrides already win; layered CSS needs the layer order. The doubled-class advice now applies to Angular, whose CSS isn't layered.CometChatLocalizeplusTranslations.delegate; the React Native example lists the kit's real peers (no Reanimated).mint broken-links: no errors in the changed pages (ui-kit/react/integration-astro.mdxfails to parse onmainalready).