๐ฏ What is Rubber Duck AI?
Rubber Duck AI is your intelligent debugging companion that helps you solve problems through guided questioning and step-by-step analysis. Instead of just giving you answers, it asks the right questions to help you think through your problem systematically, just like explaining your code to a rubber duck!
๐ Hackathon Project: This project was developed for Google's AI in Action Hackathon 2025 as part of the GitLab Challenge. It demonstrates how AI can enhance developer productivity through intelligent, interactive problem-solving within GitLab's ecosystem.
๐ง The Philosophy: Often, the best way to solve a problem is to explain it step by step. Our AI guides you through this process by asking targeted questions that help you discover the solution yourself.
๐ How to Call Rubber Duck AI: Simply create an issue in your GitLab repository with a title containing "Rubber Duck Help Me" and our AI will automatically respond to guide you through solving your problem. The AI monitors your repository and jumps in whenever you need help!
- GitLab Integration: Works seamlessly within your existing GitLab workflow
- Interactive Problem Solving: AI asks clarifying questions to understand your issue
- Step-by-Step Guidance: Breaks down complex problems into manageable steps
- Socratic Method: Helps you discover solutions through guided thinking
- Smart Hints: Provides hints and explanations when you're truly stuck
- Code Context Analysis: Understands your repository for relevant suggestions
- Persistent Conversations: Continues the discussion across multiple comments
๐ง Technology Stack
Rubber Duck AI is built using cutting-edge Google Cloud technologies and modern development tools to provide a robust, scalable, and intelligent problem-solving experience.
๐ค AI & Machine Learning
๐ Backend & Integration
-
๐
Python 3.12+
Core programming language with async/await support for high-performance processing
-
๐ถ๏ธ
Flask Web Framework
Lightweight web framework for handling webhook endpoints and API responses
-
๐ฆ
GitLab Webhooks API
Real-time integration with GitLab for issue monitoring and automated responses
๐ Security & Authentication
๐๏ธ Architecture Highlights: Built with a microservices approach, leveraging Google Cloud's serverless technologies for automatic scaling, high availability, and cost-effective operation. The system processes GitLab webhook events in real-time and uses Gemini AI's advanced reasoning capabilities to provide contextual, interactive problem-solving assistance.
๐ How Rubber Duck AI Helps You
1You Present Your Problem
Create an issue describing what you're trying to solve or what's not working. Don't worry about having all the details - just explain what you know!
Rubber Duck Help Me: My user authentication keeps failing
2AI Asks Clarifying Questions
The Rubber Duck AI will analyze your problem and ask targeted questions to understand the issue better:
- ๐ค "What error messages are you seeing?"
- ๐ "Which authentication method are you using?"
- ๐ "Can you show me the relevant code section?"
- ๐งช "What have you already tried to fix this?"
3Step-by-Step Problem Solving
As you answer the questions, the AI guides you through a systematic approach:
- ๐ฏ Problem Isolation: "Let's check if the issue is with login validation or session management"
- ๏ฟฝ Hypothesis Testing: "Try this small test to verify our assumption"
- ๐ Evidence Gathering: "What does the console log show when this happens?"
- ๐ ๏ธ Solution Building: "Based on what we found, here's what we should try next"
4Hints When You're Stuck
If you can't figure out the next step, the AI provides helpful hints and explanations:
๐ Example Hint: "It sounds like the issue might be related to session cookies. Try checking if the 'Set-Cookie' header is being sent properly. Look for the 'SameSite' attribute - it might be blocking your authentication in certain browsers."
5Solution Discovery
Through this interactive process, you either:
- โ
Discover the solution yourself (the best outcome!)
- ๐ก Get a clear direction with specific next steps
- ๐ง Learn the debugging process for similar future problems
๏ฟฝ Example Conversation
๐ค You: Rubber Duck Help Me: My React component won't re-render when state changes
๐ฆ Rubber Duck AI: I'd be happy to help you debug this re-rendering issue! Let me ask a few questions to understand what's happening:
1. Are you using useState or useReducer to manage this state?
2. Can you show me how you're updating the state?
3. Are you directly mutating the state object/array, or creating a new one?
๐ค You: I'm using useState. I have an array of items and I'm doing: items.push(newItem) then setItems(items)
๐ฆ Rubber Duck AI: Ah, I think I see the issue! You're mutating the existing array with push(), which means React doesn't detect that the state has changed (since it's the same array reference).
Can you try this instead: setItems([...items, newItem])
This creates a new array, which React will recognize as a state change. Does that fix the re-rendering?