The Context Trap: When Detailed Specs Overwhelm AI Assistants
Four AIs, one todo app, and the importance of bounded contexts
I spent yesterday afternoon experimenting with GitHub's Spec Kit1 and discovered something crucial about how AI coding assistants handle specifications. Four different AIs, same todo app spec, wildly different results. The pattern that emerged challenges how we think about AI-driven development.
My ad-hoc experiment revealed a fundamental constraint in how these models work, and understanding it could define how some teams approach software development in the near future.
The Four-Way AI Experiment
Same seed prompts. Four different AI coding assistants. From the seed prompt Spec Kit generated the actual specification, plan, and tasks. For context, spec-driven development means defining what software should do before writing code, creating a clear contract between intention and implementation.
GitHub Copilot (Claude Sonnet 4): Got 85% complete after 1.5 hours, then hit an auth state issue it couldn't resolve. The conversation history grew so large that it lost track of earlier decisions.
GitHub Copilot (GPT 5): Never made it past setup. Dependency issues compounded, (failed npm run build), as the context filled with error messages and attempted fixes.
Grok code fast 1: The winner (sort of). This appears to be a KISS-tuned model that stripped many details from my spec (goodbye dark mode), which inadvertently created a smaller, manageable scope that gave it a chance to actually complete the implementation.
Claude Code: Tried to honor every requirement, made the architectural decision to separate backend and frontend code, then got lost trying to resolve import path issues between them.
Why Three AIs Failed (and Why One Succeeded)
Grok's success was accidental but revealing. By stripping details and reducing scope, it stayed within the sweet spot where AI excels. The others failed not because they lacked capability, but because I gave them an improperly scoped specification.
Think about it: Claude Code can one-shot a todo app from a brief description because it relies on well-worn patterns from training data. But give it a detailed, monolithic Spec Kit specification, and you're asking it to juggle custom requirements while maintaining context across an increasingly long conversation. Every error, every reasoning step, every clarification eats context that should be reserved for implementation.
The lesson isn't that Spec Kit fails at scale. It's about choosing the right scope.
Making Spec Kit Work
Here's how to make Spec Kit and similar tools work effectively:
Define your boundaries thoughtfully. Before writing any specs, map out your application's natural seams. The key is finding the balance between too granular and too monolithic. In Domain-Driven Design2 terms, you're looking for your bounded contexts.
And here's the epiphany: as AI becomes more capable and self-reliant, the organizational patterns we developed for human teams, like DDD's bounded contexts and cohesive scopes, turn out to be exactly what AI needs too. These weren't just human conveniences. They're fundamental to managing complexity, regardless of whether the implementer is human or artificial. The principles that help humans reason about systems help AI maintain context and deliver results.
Regardless of who implements (AI, humans, or a mix), these detailed, well-scoped specs create shared understanding between developers and stakeholders, making code reviews more focused and knowledge transfer more systematic.
Good boundaries for separate specs:
User authentication flow (login, session management as one cohesive spec)
Core data models and their CRUD operations (one spec per bounded context)
Feature flows that users experience as complete units (example: new user registration)
Third-party integrations (one spec per service)
Avoid splitting what belongs together (like separating login from session management) or combining unrelated concerns (like authentication with user profiles).
Example breakdown for a project management app:
Spec 1: Complete authentication system (signup, login, sessions, password reset)
Spec 2: Project management (create, read, update, delete, share projects)
Spec 3: Task system within projects (CRUD, assignment, status updates)
Spec 4: Team collaboration features (invites, permissions, notifications)
Spec 5: Dashboard and reporting
Each spec is substantial enough to be meaningful but focused enough for AI to handle effectively.
Time-box ruthlessly. If AI implementation takes over 30 minutes your scope might be too large. The accumulating context from attempts and corrections will overwhelm any solution. Start fresh with a smaller scope. Note: This 30 min advisement makes sence today, as models advance they increase the time are which they can reliably stay on task.
Consider the token economics. Spec-driven development inherently uses more tokens than traditional coding. You're generating specs, plans, tasks, and then the implementation. Factor this into your team's API budget. The investment often pays off through reduced debugging time, but it's a real cost to track.
What This Means for Teams
This experiment offers one possible glimpse into how some development teams might operate in the future. Not all teams will work this way, and we're still in the experimental phase with these AI capabilities. But I see an emerging pattern where developers spend their time:
Defining clear boundaries and interfaces
Partnering with AI to draft precise, scoped specifications
Reviewing and refining specs based on implementation feedback
Orchestrating how components integrate
The spec-driven approach is gaining traction across AI coding tools. The newly released Kiro agentic IDE3 centers its entire workflow around this methodology, suggesting this pattern resonates beyond just GitHub's implementation.
The teams finding success are experimenting with different AI/human combinations rather than betting everything on one approach.
Here's what's really interesting: with newer models, I'm starting to wonder if tightly scoped features even need a tool like Spec Kit to document plans and tasks. When the scope is right, modern AI might be capable of working through the implementation strategy on its own, then documenting everything as a well-formed PR. The specification tool becomes less about telling AI how to build, and more about clearly defining what to build.
Starting Your Spec-Driven Journey
My advice after this experiment:
Start with a single feature in an existing project. Pick something with clear boundaries.
Write multiple focused specs rather than one large one. If you're debating whether to combine two specs, keep them separate.
Treat each spec as a contract. Define inputs, outputs, and boundaries explicitly.
Experiment with different levels of detail. You might find that less detailed specs perform better for well-understood patterns.
Selling this to your team lead: Frame it as risk reduction, not revolution. "I want to test AI assistance on our authentication refactor, but broken into three controlled experiments: login flow, session management, and password reset. Each piece can be reviewed independently, rolled back if needed. If any piece fails, we've only lost 30 minutes, not half a sprint."
The future of development isn't just about writing less code. For some teams, it will be about writing better specifications. For others, it might be about knowing when to skip the specification tool entirely. This shift changes our daily rhythm: more upfront thinking, less reactive debugging. The payoff is cleaner implementations and fewer late-discovery surprises. Spec Kit gives us a powerful option, but only if we use it strategically.
What's your experience with specification-driven development? How do you determine the right scope for AI assistance? Share your approach so we can all learn from what's working in practice.
GitHub Spec-Driven Development Toolkit: https://github.blog/ai-and-ml/generative-ai/spec-driven-development-with-ai-get-started-with-a-new-open-source-toolkit/
Domain-Driven Design: https://en.wikipedia.org/wiki/Domain-driven_design
Kiro and the Future of Software Development: https://kiro.dev/blog/kiro-and-the-future-of-software-development/



