-
-
User's Learning Increases Over Time and Overriding Against Suggested AI code (strong signal of genuine depth and understanding)
-
User Vibecoding and Missing a Comprehension Question (Vibing Identified at Bottom Bar)
-
AI-Code Identified and Highlighted with a Comprehension Question
-
AI-Code Identified and Highlighted with a Comprehension Question
-
User Answers Comprehension Question Correctly and Increases Learning (Visualization in Pie Category and Bottom Bar)
-
AST Codebase Review and Quiz
-
Changed Function Location and Callings Listed w/ User Answering Question with 100% Score & 50% Score w/ Explanations
Inspiration
As AI-generated code becomes more common, it's more important than ever to keep humans in the loop. Without proper review, teams build up tech debt fast. This is especially true for interns, who may not yet have the experience to critically evaluate code. They often prioritize speed over understanding, shipping code without fully grasping what it actually does or why.
What It Does
A Windsurf (VS-Code and Cursor compatible) extension that strengthens human–AI collaboration during AI-assisted coding. It has features such as detecting and flagging AI-generated code and using AST-based analysis to trace how staged changes impact the broader codebase, prompting developers with targeted questions to verify understanding before they commit.
Developers can also choose to learn, skip, or challenge AI-generated code and receive real-time feedback while tracking their behavior through three metrics: Vibing (passive use), Learning (active understanding), and Cooking (critical thinking and going against the AI), visualized across both short-term sessions and long-term trends.
By turning every AI-generated change into a moment for verification, reflection, or exploration, VibeCheck helps developers ship faster without losing comprehension.
How We Built It
We built VibeCheck as a Windsurf extension using TypeScript/JavaScript, integrating directly into the developer workflow. We used an AST parser with ts-morph to analyze staged git diff changes, identify modified functions, and trace their impact across the codebase.
For AI-powered interactions, we integrated the Gemma API to generate questions, explanations, and evaluate user responses in real time. A FastAPI backend handles request orchestration and processing, while MongoDB stores session data, user metrics, and learning history (vibing, learning, and cooking).
We also leveraged reverse engineering techniques to integrate seamlessly with the editor environment, enabling real-time UI updates, code detection, and interactive checkpoints all within the IDE.
Challenges we ran into
We struggled early on to settle on an idea and actally switched ideas 5 times. We finally settled on an idea at 3:30AM on Saturday and were still finalizing features Saturday morning! We talked to a variety of people with a variety of experiences to get inspiration and an understanding of what is impacting people's lives today.
We also had some small issues with Gemma and Windsurf. Gemma was slightly slow at times and would occassionally disconnect and for WindSurf, when we were refreshing the extensions in order for our changes in our extensions to load, it would sometimes disconnect and we would be stuck in a loop of asking us to reload the IDE.
Accomplishments that we're proud of
In the end, we landed on an idea that solves a problem familiar to not only us, but to our peer, professors, and companies. We built something relevant to what's happening in tech right now and also built features to help users get the most out of their learning, going beyond our original concept.
What we learned
Talking to many people gave us a much broader perspective. From engineers to undergraduate students to product managers, we learned how we could make our project special to our community. We also continued to improve our communication and learned when to ask for help when we needed it, which helped us move faster. We also became more patient listeners, staying open to other people's ideas instead of getting defensive about our own.
What's next for VibeCheck
If we had more time, we would have loved to make the questions even more personable and allow users more chances to learn such as an 'Explain More' feature. We also hope to add a PR review trigger for agent commits, team analytics, and support for more programming languages.
Built With
- ast-parser
- fastapi
- gemma-4-26b-a4b-it
- javascript
- mongodb
- reverse-engineering
- ts-morph
- typescript
- vscode-extension
- windsurf
Log in or sign up for Devpost to join the conversation.