sima-chat

Implement a chat system with threads and ad snapshots for SIMA.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/RosenGray/sima --skill sima-chat
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: sima-chat
Source: https://github.com/RosenGray/sima/tree/main/.cursor/skills/sima-chat
Command: npx skills add https://github.com/RosenGray/sima --skill sima-chat

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill provides a complete in-app chat/messaging system for SIMA, enabling buyers and sellers to discuss ads, organize conversations, and coordinate actions without leaving the app.

Core Features & Use Cases

  • Conversation threads tied to specific ads with ad snapshots
  • Bidirectional messaging between buyers and sellers with read status and last-seen info
  • UI integration including chat list, active chat, and ad context snapshots
  • Use Case: For example, a user wants to ask about price and availability; a chat is created and the message thread appears on both sides.

Quick Start

Start by calling getOrCreateChat from an ad detail page when the user taps "Message Seller" and navigate to the resulting chat view.

Frequently Asked Questions about sima-chat

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add in-app chat for marketplace ads to enable buyer-seller conversations?

To add in-app chat for marketplace ads, implement a messaging system with conversation threads tied to specific ads. This provides bidirectional messaging, ad snapshots, and UI integration so buyers and sellers can discuss price and coordinate actions without leaving the app.

How do I create a chat thread tied to a specific ad when a user clicks message seller?

To create a chat thread tied to a specific ad, use a deterministic getOrCreateChat workflow from the ad detail page. This maintains a single conversation per ad between two users using indexed data structures, ensuring no duplicate threads are created.

How does polling-based chat UI updates work for real-time messaging?

Polling-based chat UI updates work by periodically querying the backend for new messages and conversation changes. The frontend chat client continuously checks for updates to refresh the chat list and active chat views, displaying new messages and read status without requiring a persistent websocket connection.

Can I use MongoDB to store conversation threads and messages for multiple entity types like cars and real estate?

Yes, you can use MongoDB to store conversation threads and messages for multiple entity types like cars, pets-for-sale, and real-estate. The system maintains Conversation and Message models in MongoDB, supporting various ad categories with ad snapshots and last-seen info.

What is the best way to ensure one conversation per ad between two users in a messaging app?

The best way to ensure one conversation per ad between two users is to enforce a deterministic getOrCreateChat workflow using indexed data structures. This approach prevents duplicate chat threads by checking for existing conversations before creating a new one.

Does the frontend chat client include both a chat list and a detail view with ad context?

Yes, the frontend chat client includes both a chat list and a detail view with ad context snapshots. The UI integration provides a comprehensive messaging experience, displaying conversation threads alongside the original ad information for reference during buyer-seller discussions.