Output from running the `claude-code-setup` plugin's `claude-automation-recommender` skill against this repo on 2026-05-20. Distinct stack from the sibling repos (real-time websocket server) so the recommendations are different.
Codebase Profile
- Type: Node + TypeScript 6 real-time pub/sub server
- Framework: SocketCluster 20 (server + client), with Express 5 + express-sslify alongside
- Database: MongoDB via Mongoose 9
- Tests: Vitest 4
- Lint: ESLint 10 with sonarjs + security plugins (sonarjs recently added per dev log around 2026-05-19)
- Build/Dev: `rimraf build && tsc && concurrently ts-start + ts-watch`
- No CI tooling visible in deps (configured separately per repo conventions)
🔌 MCP Servers
MongoDB MCP
Why: Same rationale as the web-jam-back issue #757 — Mongoose schemas + production-shape debugging. The two backends share a Mongo posture so the MCP server is reusable.
```bash
claude mcp add @anthropic/mongodb-mcp
```
Browser/SocketCluster client testing MCP — load + behavioral testing
Why: A websocket pub/sub server is hard to test from CLI. Real-time message flows require actual connected clients to verify. No off-the-shelf SocketCluster MCP exists today, but Playwright MCP + a simple test page that exercises socketcluster-client would let Claude drive end-to-end pub/sub flows during development.
Install (Playwright is the closest existing MCP):
```bash
claude mcp add @anthropic/playwright-mcp
npx playwright install chromium
```
🎯 Skills
`socketcluster-flow-test` (custom, project-specific)
Why: Manual websocket testing is tedious — open a browser console, connect a client, publish to a channel, subscribe from another tab, verify message arrives. A skill that spins up two ephemeral socketcluster-client connections (publisher + subscriber), publishes a test message, and verifies receipt + latency, would be invaluable for any pub/sub change. The infrastructure already exists in this repo (`socketcluster-client` is a dep).
Create: `.claude/skills/socketcluster-flow-test/SKILL.md`
Invocation: Both (Claude self-invokes after AgController changes; user can invoke manually).
`mongoose-schema-diff` (shared with web-jam-back)
Why: Same recommendation as web-jam-back. Both repos use Mongoose 9 against the same Mongo instance presumably, and schema drift between them is a real risk. A shared skill would benefit both.
⚡ Hooks
PostToolUse: `npm run typecheck` on Edit/Write of `.ts` files
Why: TypeScript 6 (notably newer than the other repos which are on TS 5). `tsc --noEmit` is fast. Catches errors before they hit the dev cycle.
```json
{
"hooks": {
"PostToolUse": [{
"matcher": "Edit|Write",
"hooks": [{
"type": "command",
"command": "cd /home/joshua/WebJamApps/WebJamSocketCluster && npm run typecheck 2>&1 | tail -10"
}]
}]
}
}
```
PreToolUse: block edits to `build/**`
Why: `build/` is generated by `tsc`; editing manually leads to silent drift. Same pattern as web-jam-back.
🤖 Subagents
race-condition-reviewer (high-value for pub/sub)
Why: Real-time pub/sub servers are racy by nature — channel-subscribe ordering, disconnect-during-publish, replay-on-reconnect, etc. A subagent specifically prompted to look for race conditions, missing locks, async-ordering assumptions, and SocketCluster v20-specific lifecycle quirks would catch bugs that a generic code reviewer wouldn't.
Where: `.claude/agents/race-condition-reviewer.md`
Implementation plan
Source: `claude-code-setup` plugin v1.0.0, `claude-automation-recommender` skill, 2026-05-20 against the latest dev branch.
🤖 Generated with Claude Code
Output from running the `claude-code-setup` plugin's `claude-automation-recommender` skill against this repo on 2026-05-20. Distinct stack from the sibling repos (real-time websocket server) so the recommendations are different.
Codebase Profile
🔌 MCP Servers
MongoDB MCP
Why: Same rationale as the web-jam-back issue #757 — Mongoose schemas + production-shape debugging. The two backends share a Mongo posture so the MCP server is reusable.
```bash
claude mcp add @anthropic/mongodb-mcp
```
Browser/SocketCluster client testing MCP — load + behavioral testing
Why: A websocket pub/sub server is hard to test from CLI. Real-time message flows require actual connected clients to verify. No off-the-shelf SocketCluster MCP exists today, but Playwright MCP + a simple test page that exercises socketcluster-client would let Claude drive end-to-end pub/sub flows during development.
Install (Playwright is the closest existing MCP):
```bash
claude mcp add @anthropic/playwright-mcp
npx playwright install chromium
```
🎯 Skills
`socketcluster-flow-test` (custom, project-specific)
Why: Manual websocket testing is tedious — open a browser console, connect a client, publish to a channel, subscribe from another tab, verify message arrives. A skill that spins up two ephemeral socketcluster-client connections (publisher + subscriber), publishes a test message, and verifies receipt + latency, would be invaluable for any pub/sub change. The infrastructure already exists in this repo (`socketcluster-client` is a dep).
Create: `.claude/skills/socketcluster-flow-test/SKILL.md`
Invocation: Both (Claude self-invokes after AgController changes; user can invoke manually).
`mongoose-schema-diff` (shared with web-jam-back)
Why: Same recommendation as web-jam-back. Both repos use Mongoose 9 against the same Mongo instance presumably, and schema drift between them is a real risk. A shared skill would benefit both.
⚡ Hooks
PostToolUse: `npm run typecheck` on Edit/Write of `.ts` files
Why: TypeScript 6 (notably newer than the other repos which are on TS 5). `tsc --noEmit` is fast. Catches errors before they hit the dev cycle.
```json
{
"hooks": {
"PostToolUse": [{
"matcher": "Edit|Write",
"hooks": [{
"type": "command",
"command": "cd /home/joshua/WebJamApps/WebJamSocketCluster && npm run typecheck 2>&1 | tail -10"
}]
}]
}
}
```
PreToolUse: block edits to `build/**`
Why: `build/` is generated by `tsc`; editing manually leads to silent drift. Same pattern as web-jam-back.
🤖 Subagents
race-condition-reviewer (high-value for pub/sub)
Why: Real-time pub/sub servers are racy by nature — channel-subscribe ordering, disconnect-during-publish, replay-on-reconnect, etc. A subagent specifically prompted to look for race conditions, missing locks, async-ordering assumptions, and SocketCluster v20-specific lifecycle quirks would catch bugs that a generic code reviewer wouldn't.
Where: `.claude/agents/race-condition-reviewer.md`
Implementation plan
Source: `claude-code-setup` plugin v1.0.0, `claude-automation-recommender` skill, 2026-05-20 against the latest dev branch.
🤖 Generated with Claude Code