Skip to content

Claude Code automation recommendations (from claude-code-setup plugin) #214

Description

@JoshuaVSherman

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

  • Add `MongoDB MCP` (shared with web-jam-back — install once, both repos benefit)
  • Type-check hook (matches all three sibling repos)
  • PreToolUse block on `build/` (same as web-jam-back)
  • `socketcluster-flow-test` skill — highest-leverage CL-specific item
  • `race-condition-reviewer` subagent — secondary; useful when pub/sub patterns change

Source: `claude-code-setup` plugin v1.0.0, `claude-automation-recommender` skill, 2026-05-20 against the latest dev branch.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions