Paul Wade.dev
SIDE A · HOME

Paul Wade

Full stack engineer. I build products and measure how coding agents behave.

New post!Do PreToolUse lint gates cover your subagents?

Latest writing

All posts
  1. Obstacle 9One terminal, 10+ Claude Code agents, and a difit gate before every PRHow I run 10+ Claude Code agents from one orchestrator session with native cross-session messaging, and review every change, PR reply, and new issue in a customized difit fork before anything reaches GitHub.8 min read
  2. Obstacle 8Writing an ESLint rule that can refuse an agent's writeWrite a custom ESLint rule an agent can't dodge, test it with RuleTester, and run it in a PreToolUse hook that refuses the write. Real code and output.34 min read
  3. Obstacle 7Zod in NestJS without a custom pipe: StandardSchemaValidationPipe as the gateNestJS 12 validates Zod bodies with a built-in pipe. Wire it next to ValidationPipe, migrate one route at a time, and know what the handler receives.6 min read
  4. Obstacle 6PreToolUse vs PostToolUse: which hook actually stops an agent copying bad codeSame ESLint config, two Claude Code hooks. Post-write lint let 4/35 seeded copies through; a PreToolUse gate that refused the edit held at 0/35.7 min read
  5. Obstacle 5Validation is a gate, not a vibeRefuse bad HTTP input with ValidationPipe or Zod before the service runs. Trusting body shape inside the use case is guidance, not a gate.6 min read

Selected work

  • Precedent poisoning

    Experiment showing coding agents copy bad patterns from nearby files. A pre-write lint gate stopped that; a conventions file alone did not.

    GitHub
  • checkyourvibe

    Standards checks for agent-written code. Same input gets the same pass/fail every time.

  • StorageFlow

    Self-storage SaaS for leases, billing, and day-to-day operator work (private product repo).