DEV Community

Sattyam Jain
Sattyam Jain

Posted on

I Audited My Claude Code Setup Before Training 80 Engineers. Here's What I Was Doing Wrong.

The Embarrassing Truth

I'm a Tech Lead running 8-10 parallel projects on Claude Code. I thought my setup was good.

It wasn't.

Before running an internal training session for ~80 engineers at my company, I decided to audit everything. I checked Anthropic's official documentation — every page. I went through GitHub repos: GStack (Garry Tan, 20K+ stars), Everything Claude Code (100K+ stars), shanraisshan's best-practice repo, VoltAgent's subagents, Antigravity's 1,304-skill library. I read Reddit threads, Hacker News discussions, Medium articles, Twitter threads from Anthropic engineers.

Then I looked at my own setup and realized I was leaving 80% of Claude Code's value on the table.


What I Found Wrong

50 agents loaded. I had agents for everything — ux-researcher, compliance-auditor, trend-researcher, feedback-synthesizer. Most I'd never used once. Each one consumed tokens and confused Claude's routing when it had to pick which specialist to delegate to.

Zero hooks. Not a single safety gate. Nothing preventing Claude from running destructive commands, committing credentials, or force-pushing to main. I was relying on prompts — which are requests Claude can interpret flexibly. Hooks are deterministic guarantees that fire every time.

No LSP. Every time Claude needed to find a function definition, it was doing text-based grep searches across the entire codebase. 30-60 seconds per lookup. On a codebase with thousands of files, this is painfully slow.

Generic CLAUDE.md. Auto-generated by /init and never touched. Didn't have our architecture patterns, coding standards, or forbidden patterns.


The 6 Fixes

Fix 1: Hooks — 0 to 5

{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "bash .claude/hooks/security-gate.sh",
        "timeout": 5
      }]
    }]
  }
}
Enter fullscreen mode Exit fullscreen mode

The security gate script checks for patterns like rm -rf /, git push --force main, DROP TABLE, and exits with code 2 to block execution.

During the live demo, I asked Claude to run rm -rf /. Blocked instantly. The room went silent, then everyone understood — this is why hooks aren't optional.

Key detail: Exit code 2 = hard block. Exit code 1 = warning only. Every security hook MUST use exit 2.

Fix 2: LSP — 900x Faster

export ENABLE_LSP_TOOL=1
/plugin install pyright@claude-plugins-official    # Python
/plugin install vtsls@claude-plugins-official       # TypeScript
/plugin install rust-analyzer@claude-plugins-official # Rust
Enter fullscreen mode Exit fullscreen mode

50ms symbol lookup instead of 30-60 seconds. The biggest single upgrade that almost nobody configures.

This gives Claude goToDefinition, findReferences, hover, documentSymbol, and workspaceSymbol operations. It's the difference between Claude guessing where a function lives and Claude knowing.

Fix 3: Agents — 50 to 19

Moved 31 rarely-used agents to ~/.claude/agents/_archived/. Kept the ones I actually use weekly: code-reviewer, debugger, frontend-developer, backend-developer, python-pro, typescript-pro, terraform-engineer, and a few others.

Claude immediately got better at picking the right specialist from a focused list. Fewer options = better routing.

Fix 4: CLAUDE.md — Enriched to 67 Lines

Added:

  • Architecture overview (microservices, FastAPI, React/Next.js, PostgreSQL)
  • Tech stack with exact versions
  • Build/test/lint commands for every language
  • Coding rules (type hints, strict mode, 50-line function limit)
  • Forbidden patterns (NEVER use print() for debugging, NEVER commit .env files)
  • Git conventions (branch naming, commit format)

Every line answers one question: "Would removing this cause Claude to make mistakes?"

If the answer is no, the line doesn't belong.

Fix 5: GStack

git clone https://github.com/garrytan/gstack.git ~/.claude/skills/gstack
cd ~/.claude/skills/gstack && ./setup
Enter fullscreen mode Exit fullscreen mode

What it gives you:

  • /review — acts as a senior code reviewer with severity grading (Critical/High/Medium/Low)
  • /qa — opens a real headless browser, tests your app, finds bugs, fixes them
  • /cso — runs OWASP Top 10 + STRIDE security audits
  • /ship — detects base branch, runs tests, bumps version, creates PR
  • /investigate — four-phase systematic debugging (investigate → analyze → hypothesize → implement)

During the demo, /cso found a real XSS vector in one of our projects. That got people's attention.

Fix 6: Parallel Work + Agent Teams

claude --worktree --tmux
Enter fullscreen mode Exit fullscreen mode

Each agent gets an isolated git branch and its own context window. Built-in since Claude Code v2.1.50.

5-7 concurrent agents is the practical ceiling. Beyond that, you're context-switching more than the agents are.

Also enabled experimental Agent Teams where teammates can communicate directly with each other and coordinate on shared task lists.


Making It Work for Non-Developers

The session wasn't just for developers. We had TPMs, designers, and testers in the room.

TPMs:

  • GitHub MCP for real-time sprint reports and issue tracking
  • /loop 1h check for P0 issues for automated monitoring
  • The executive-summary-generator agent for status updates to leadership

Designers:

  • Figma MCP to generate React components from design frames
  • GStack's /plan-design-review for UI scoring and AI slop detection
  • Playwright MCP for responsive screenshots at mobile/tablet/desktop widths

Testers:

  • Playwright MCP for browser-based E2E testing
  • GStack's /qa for automated test-and-fix workflows
  • The superpowers:test-driven-development skill for TDD

The Setup: Before and After

Component Before After
Hooks 0 5 (security + formatter + credential guard)
LSP Not configured 3 plugins (pyright, vtsls, rust-analyzer)
Agents 50 (3.4K tokens) 19 (~1.5K tokens saved)
GStack Not installed v0.11.18.2
CLAUDE.md Generic 67 lines (enriched)
Agent Teams Disabled Enabled
Version 2.1.83 2.1.84

The Slide Deck

I'm sharing the full 15-slide presentation. It covers:

  1. The 7-layer architecture of Claude Code
  2. Hooks configuration with working scripts
  3. LSP setup for 22+ languages
  4. Open-source setups (GStack, ECC, VoltAgent, Antigravity)
  5. Role-specific guides for TPMs, designers, and testers
  6. The complete action checklist

This isn't a theoretical setup guide. This is running in production right now across 8-10 parallel projects.


What's your Claude Code setup? I'm genuinely curious about configurations that look different from mine.

Find me on LinkedIn / GitHub / X

Top comments (0)