.claude/skills/wire-websocket/SKILL.md
Wire up a new WebSocket event channel between backend and frontend. Use when adding real-time events like price updates, order fills, alerts, regime changes, etc.
npx skillsauth add HadiAlizade77/poly wire-websocketInstall 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.
Create WebSocket event: channel $ARGUMENTS[0], event $ARGUMENTS[1]
packages/backend/src/websocket/packages/frontend/src/stores/websocket.store.tsBackend Service → Redis publish → API Server → Socket.IO emit → Frontend
Publishing service (the service that generates the event):
redis.publish('$0:$1', JSON.stringify(payload))API Server WebSocket (packages/backend/src/websocket/):
$0:$1redis.subscribe('$0:$1');
redis.on('message', (channel, message) => {
if (channel === '$0:$1') {
io.to('$0').emit('$1', JSON.parse(message));
}
});
packages/backend/src/websocket/channels.tsWebSocket store (websocket.store.ts):
$1 on channel $0Page component:
socket.emit('subscribe', '$0')socket.emit('unsubscribe', '$0')useWebSocket hook to listen for events| Channel | Events | Used In | |---------|--------|---------| | system | status | Header, Dashboard, Health | | market | price_update, opportunity | Markets, Positions | | signal | new, vetoed | Dashboard, Signals | | order | placed, filled, cancelled | Dashboard, Orders | | position | opened, updated, closed | Positions | | risk | event, kill_switch | Dashboard, Risk | | ai | decision, regime_change | Dashboard, AI | | alert | new | All pages (toast) | | bankroll | update | Dashboard | | analytics | pnl_update | Dashboard |
const { subscribe, unsubscribe } = useWebSocket();
useEffect(() => {
subscribe('$0', '$1', (data) => {
// Update query cache or local state
queryClient.setQueryData(['$0'], (old) => ({ ...old, ...data }));
});
return () => unsubscribe('$0', '$1');
}, []);
development
Validate risk governor checks and risk configuration changes. Use when modifying risk parameters, adding new risk checks, or reviewing risk logic.
development
Scaffold a new backend service/process for the Polymarket platform. Use when creating a new PM2-managed service like market-scanner, data-ingestion, strategy-runner, etc.
testing
Run tests for the Polymarket platform. Supports unit, integration, and E2E tests. Use after implementing features or fixing bugs.
development
Create a new frontend page/view for the Polymarket trading dashboard. Use when building pages like Dashboard, Markets, Strategies, Signals, Trades, Positions, Risk, AI, Analytics, Backtest, Alerts, Settings, Health.