DEV Community

Cover image for The Incremental Prompting Method: How I Got Kiro to Write Complex Systems
Andrews Kwesi Ankomahene
Andrews Kwesi Ankomahene

Posted on

The Incremental Prompting Method: How I Got Kiro to Write Complex Systems

Every project starts with a pain point. For me, it wasn’t just about tinkering with AI as a software engineer (though I love experimenting with cutting-edge models like GPT-4, Claude, and Gemini). It was about something bigger.


The Problem: AI Fragmentation in the Browser

I found myself constantly switching between ChatGPT, Claude, Gemini, and other tools. Each one required separate tabs, logins, and context switching. It was fragmented, slow, and frustrating.

The real spark came from watching my fiancé. She’s an executive assistant — her day is a whirlwind of scheduling meetings, drafting emails, booking flights, chasing down details. High-stakes, detail-heavy work.

And I thought: why can’t she have an assistant for her assistant work?

That’s how Delight started — an AI-powered Chrome extension that unifies 6+ providers and 25+ premium models in one seamless sidepanel. Instead of juggling multiple AI platforms, she (and I) could just open one assistant in the browser.

Features like:

  • Multi-Provider Support (OpenAI, Anthropic, Gemini, Grok, Groq, SambaNova, Ollama)
  • 25+ AI Models (GPT-4o, Claude 3.5 Sonnet, Llama 3.1, and more)
  • Smart Page Integration (attach any webpage to your chat)
  • AI Writing Tools (10 specialized, out-of-the-box tools)
  • Persistent Chat History (conversations survive browser restarts)


Why Building Delight Was Hard

Delight wasn’t a toy app. It needed to feel production-ready from day one. That meant:

  • Handling 8 providers with different APIs and formats
  • Designing persistent storage for chat history that survives browser restarts
  • Implementing error recovery and seamless fallback providers
  • Supporting web automation powered by multi-agent AI

Normally, this would have taken me months of architecture planning, code, and debugging. Instead, I had Kiro.


Enter Kiro: My Secret Weapon

Kiro wasn’t just “helping me code.” It was like pairing with a senior engineer who translated my ideas into production-grade systems. But I had to learn how to talk to it.

That’s where the Incremental Prompting Method came in — my way of structuring conversations with Kiro so it could write complex systems like the core of Delight.


The Incremental Prompting Method

I never asked Kiro to build everything at once. Instead, I broke problems down into phases and stacked complexity layer by layer.

Phase 1: Foundation Building

I started small. For example: “Implement a message storage service for sessions, retrieval, deletion, and cleanup.”

Kiro generated a complete storage layer with error handling. This gave me a solid foundation without reinventing browser storage.


Phase 2: Service Integration

Next, I asked Kiro to integrate that storage into a Conversation Manager. This became the beating heart of Delight, managing sessions, persistence, and context across browser restarts.

It wasn’t just a helper script — it was a massive, production-grade service that handled the most critical part of the extension.


Phase 3: Advanced Features

With the basics in place, I layered on ambitious features.

  • Provider switching with context preservation
  • Conversion logic so conversations could flow between OpenAI → Claude → Gemini
  • Compatibility checks and warnings to ensure nothing broke

This transformed Delight into something beyond a chat tool — it became a reliable AI router inside the browser.


Phase 4: Polish

Finally, I focused on performance monitoring, error handling, and cleanup strategies. These refinements made Delight feel smooth, fast, and ready for real users.


The Most Impressive Result: The ConversationManager

The ConversationManager was the single most impressive system Kiro generated. It wasn’t just code — it was an engine that:

  • Managed 8 providers with different message formats
  • Persisted conversations across sessions
  • Optimized performance with lazy loading and compression
  • Supported provider switching with context conversion and fallbacks

It still blows me away that such a critical, complex piece of Delight was generated through a structured back-and-forth with Kiro.


Lessons Learned

  1. Start small, then layer complexity.

    Incremental prompting worked because Kiro could focus on one slice at a time.

  2. Specs are powerful.

    Having design.md and .kiro/specs to point back to gave Kiro structure.

  3. Treat Kiro like a collaborator.

    The best results came when I adjusted outputs directly and guided the next step, not when I just accepted code blindly.


Takeaways for Developers

If you want to build something ambitious with Kiro:

  • Break your problems into phases.
  • Keep specs clear and structured.
  • Don’t ask for “everything at once.” Layer features like you’re scaffolding a building.

This method turned a raw idea into Delight in just a week — something that would’ve otherwise taken months.


Closing Thoughts

Kiro wasn’t just a coding assistant. It was a partner in building Delight.

By using the Incremental Prompting Method, I went from a fragmented idea to a production-ready AI Chrome extension in record time.

If you want to see the result, try Delight for yourself — your browser (and your tabs) will thank you.

Top comments (0)