CtrlK
BlogDocsLog inGet started
Tessl Logo

pubnub/pubnub-chat

Build chat applications with PubNub Chat SDK

97

1.13x
Quality

72%

Does it follow best practices?

Impact

100%

1.13x

Average score across 20 eval scenarios

SecuritybySnyk

Risky

Do not use without reviewing

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-3/

{
  "context": "Evaluates whether the agent builds a React chat component using the PubNub Chat SDK's specific real-time APIs including the connect/sendText pattern and typing indicator integration. Tests Chat SDK idioms rather than raw PubNub pub/sub.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "channel.connect for messages",
      "description": "Real-time messages are received via channel.connect(callback) which returns an unsubscribe function, not via pubnub.addListener or pubnub.subscribe",
      "max_score": 20
    },
    {
      "name": "channel.sendText to send",
      "description": "Messages are sent using channel.sendText(text), not pubnub.publish()",
      "max_score": 15
    },
    {
      "name": "Unsubscribe in cleanup",
      "description": "The unsubscribe function returned by channel.connect() is called in the useEffect cleanup return",
      "max_score": 20
    },
    {
      "name": "Typing via onTyping",
      "description": "Typing indicators are received using channel.onTyping(callback) which provides an array of user IDs currently typing",
      "max_score": 15
    },
    {
      "name": "startTyping and stopTyping",
      "description": "Typing signals are sent using channel.startTyping() when user types and channel.stopTyping() when message is sent",
      "max_score": 15
    },
    {
      "name": "Debounced typing signal",
      "description": "The startTyping() call is debounced or throttled so it is not invoked on every keystroke",
      "max_score": 15
    }
  ]
}

evals

SKILL.md

tile.json