Claude Code is the most capable reasoning tool in any developer's stack. It handles ambiguous, multi-step problems better than Copilot or Cursor. But it shares the same fundamental limitation: it only knows what you show it.
On a complex ticket — one that spans 5 services, 20 files, and years of accumulated decisions — Claude Code is working with maybe 10% of the context it needs. The other 90% is scattered across your codebase, git history, and your team's collective memory.
The Context Gap
When you ask Claude Code "how should I implement this ticket?", it needs to know:
- Which files are relevant (not just the ones you've opened)
- How those files connect (dependency graph, call paths)
- What was tried before (past PRs, reverted changes)
- Who knows this area (expertise for follow-up questions)
- What might break (blast radius, downstream consumers)
Without this, Claude Code gives you a reasonable but generic answer. With it, Claude Code gives you a specific, traced, actionable plan.
How to Feed Context
Method 1: Manual Context Gathering
Before asking Claude Code, spend 30-60 minutes:
- Identify relevant files and paste key sections
- Search git log for related PRs and paste descriptions
- Map the dependency chain manually
This works but defeats the purpose — you're spending the Understanding Tax manually to give Claude Code context.
Method 2: MCP Tools
Connect Claude Code to a code intelligence tool via MCP. Now instead of manual gathering, Claude Code can:
> get_feature_files("authentication") → 14 files listed
> get_symbol_call_graph("validateSession", depth=3) → full call chain
> get_file_history("authMiddleware.ts") → last 5 PRs with descriptions
> get_blast_radius("validateSession") → 7 downstream consumers
The context gathering that took 30-60 minutes manually now takes 10 seconds via tool calls.
Method 3: Pre-Generated Build Plans
The most efficient approach: generate a build plan from the ticket before engaging Claude Code. Feed the plan — with its file mappings, dependency analysis, and historical context — as the starting context. Claude Code then reasons about implementation strategy with full awareness of the codebase.
The Difference
Without context:
"To implement user session refresh, you'll want to create a middleware that checks token expiry and refreshes as needed."
With context:
"Based on the codebase analysis: session handling is in src/services/auth/sessionManager.ts. The current implementation uses Redis-backed sessions (see redisClient.ts). The last change to session TTL (PR #412) caused a WebSocket reconnection issue because websocketService.ts has a hardcoded timer matching the old TTL. Recommended approach: update sessionManager.refreshToken(), add a config constant for TTL that both services read, and add a test case for the WebSocket timer alignment."
Same AI. Same model. Dramatically different usefulness — because of context.
Originally published on glue.tools. Glue is the pre-code intelligence platform — paste a ticket, get a battle plan.
Top comments (0)