Skip to content

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

@JoshuaVSherman

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions