pubnub-live-sport-updates/SKILL.md
Deliver real-time sports scores, play-by-play, and scoreboards with PubNub
npx skillsauth add pubnub/skills pubnub-live-sport-updatesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Canonical owners (link-don't-copy): This vertical relies on cross-cutting skills. Always link to the canonical owner instead of duplicating. Foundations: SDK initialization (
new PubNub(,userId/UUID), pub/sub basics (pubnub.publish(,pubnub.subscribe(,addListener), channel naming, message filters, SDK upgrades, REST API. Environment: keysets, env separation, publish/subscribe/secret keys, key rotation hygiene, demo keys, custom origin. Security: Access Manager /grantToken, AES-256 / message encryption, IP allowlisting, DoS mitigation, compliance / SOC 2 / HIPAA. Real-time features: presence events /withPresence, presence setup / heartbeat, dropped connections, multi-device sync. History: Message Persistence andfetchMessages, offline catch-up, retention. App Context: users / user metadata, channels and memberships, metadata and filtering. Functions: Before/After Publish,request.ok()/request.abort(),require('kvstore')/xhr/vault, chaining (3-hop limit), DB triggers and runtime quirks, common patterns. Reliability: exponential backoff and jitter, idempotent publish / message id, dedup on merge, queue and retry, schema version. Scale: channel groups, wildcard subscribe, Stream Controller, performance tuning, 10K+ live events. Observability: logging correlation (channel + message_id + user_id + timetoken), test pyramid, payload sizing / cost, incident triage runbook, usage metrics / transaction count. Events & Actions: event types, action targets (webhook / SQS / Kafka / Lambda), filters / JSONPath. Illuminate: Business Objects, Metrics, Decisions (4-step workflow), Queries, service integration auth. Chat: Chat SDK setup, message actions / reactions, file sharing /sendFile, threading. Routing: intent-to-tool decision tree (get_sdk_documentation,write_pubnub_app, etc.).
You are a PubNub live sports data specialist. Your role is to help developers build real-time sports applications that deliver instant score updates, play-by-play feeds, live scoreboards, standings tables, and fan engagement features using PubNub's publish/subscribe infrastructure across multiple sports including football, basketball, soccer, baseball, hockey, and more.
Invoke this skill when:
| Reference | Purpose | |-----------|---------| | sport-updates-setup.md | Channel hierarchy, data models, SDK initialization, and subscription patterns | | sport-updates-events.md | Game event types, scoring logic, play-by-play construction, and period tracking | | sport-updates-patterns.md | Multi-sport dashboards, fan engagement, push notifications, and scaling strategies |
import PubNub from 'pubnub';
const pubnub = new PubNub({
publishKey: 'pub-c-...',
subscribeKey: 'sub-c-...',
userId: 'score-service'
});
// Publish a score change to the game channel
await pubnub.publish({
channel: 'sports.nfl.games.2024-SEA-SF-week5',
message: {
type: 'score_update',
gameId: '2024-SEA-SF-week5',
sport: 'nfl',
timestamp: Date.now(),
home: { team: 'SF', abbreviation: '49ers', score: 21 },
away: { team: 'SEA', abbreviation: 'Seahawks', score: 17 },
period: { current: 3, label: 'Q3', clock: '04:32' },
scoringPlay: {
team: 'SF',
type: 'touchdown',
player: 'C. McCaffrey',
description: 'C. McCaffrey 12 yard rush (J. Moody kick)'
}
}
});
// Subscribe to all NFL games using wildcard
pubnub.subscribe({ channels: ['sports.nfl.games.*'] });
// Subscribe to a specific team across all contexts
pubnub.subscribe({ channels: ['sports.nfl.teams.SF.*'] });
// Subscribe to a single game
pubnub.subscribe({ channels: ['sports.nfl.games.2024-SEA-SF-week5'] });
// Subscribe to multiple leagues at once
pubnub.subscribe({
channels: [
'sports.nfl.games.*',
'sports.nba.games.*',
'sports.mlb.games.*'
]
});
// Listen for messages
pubnub.addListener({
message: (event) => {
const { channel, message } = event;
switch (message.type) {
case 'score_update':
updateScoreboard(message);
break;
case 'play_by_play':
appendToTimeline(message);
break;
case 'game_status':
updateGameStatus(message);
break;
}
}
});
// Publish a play-by-play event with sequence number for ordering
await pubnub.publish({
channel: 'sports.nba.games.2024-LAL-BOS-finals-g3',
message: {
type: 'play_by_play',
gameId: '2024-LAL-BOS-finals-g3',
sequence: 247,
timestamp: Date.now(),
period: { current: 4, label: 'Q4', clock: '02:15' },
event: {
action: 'three_pointer',
team: 'BOS',
player: 'J. Tatum',
description: 'J. Tatum makes 28-foot three pointer (assist: J. Brown)',
points: 3
},
score: { home: { team: 'BOS', score: 98 }, away: { team: 'LAL', score: 95 } }
}
});
get_sdk_documentation — pull SDK-specific publish/subscribe APIs (route via intent-to-tool)create_pubnub_function — scaffold the After-Publish push trigger / message transformermanage_apps — verify Stream Controller add-on for wildcard subscribesWhen providing implementations:
tools
Builds real-time analytics and automation with PubNub Illuminate. Covers Business Objects (schema), Metrics (aggregations), Decisions (threshold-triggered actions with the 4-step PUT workflow), Queries (ad-hoc vs saved pipelines), and Dashboards. Use when tracking KPIs, building threshold alerts, automating mute/publish/App-Context-update actions, detecting spam or anomalies, or visualizing live activity.
testing
Scale PubNub applications for high-volume real-time events using channel groups, wildcard subscriptions, sharding, and large-event readiness. Covers Stream Controller add-on, hard caps, payload coalescing referenced into pubnub-observability, and the engagement model for 10K+ concurrent live events. Persistence/history is owned by pubnub-history.
development
Create, configure, and deploy PubNub Functions 2.0 event handlers, triggers, and serverless endpoints. Covers Before/After Publish, On Request, On Interval; built-in modules (kvstore, xhr, vault, pubnub, crypto, jwt, ugc, jsonpath, advanced_math, codec/*); chaining (3 hops, 5 consecutive, Chaining vs Forking, kvstore state sharing); runtime quirks (3-call external cap, 10-call vault cap, cold start, request.path normalization, vault availability, sendFile message); DB-trigger patterns; and bundling/TypeScript workflow (esbuild externals, 64KB guard, __require shim stripping, default-export shape). Use when building real-time message transformations, edge data processing, REST endpoints backed by PubNub, webhook integrations, or shipping bundled/transpiled TypeScript Functions from inside the message pipeline.
development
Build real-time applications with PubNub pub/sub messaging. Covers SDK initialization, persistent userId, channel design and naming, publish/subscribe basics, message listeners, and connection state. Use when bootstrapping a PubNub project, adding pub/sub to an app, designing channel hierarchies, or working out userId / channel naming rules.