Inspiration

Technical debt rarely gets addressed when it first appears. It starts as missing tests, TODO comments, large files, or failing pipelines, and eventually becomes a bigger engineering problem.

We built Warden because we noticed that teams often know there are issues in a repository, but nobody takes ownership of turning them into actionable tasks.

Our goal was simple: create an AI engineering assistant that watches a GitLab repository, identifies important problems, suggests improvements, and lets humans stay in control before anything is written back to GitLab.


What it does

Warden helps engineering teams identify and prioritize technical improvements inside GitLab repositories.

The workflow is simple:

Connect GitLab → Select Repository → Run Scan
→ Review Recommendations
→ Approve
→ Create GitLab Issue

Warden combines repository analysis, GitLab project activity, and Gemini-powered reasoning to generate actionable recommendations.

Instead of producing a long list of generic suggestions, it focuses on the highest-impact improvements and turns them into tasks developers can immediately act on.


How we built it

We built Warden as a full-stack application using:

  • Next.js and TypeScript for the web application
  • PostgreSQL and Prisma for data storage
  • GitLab OAuth for authentication
  • Google Cloud Run for long-running scan jobs
  • Gemini on Google Cloud Vertex AI for recommendation generation

When a user runs a scan, Warden analyzes the repository, gathers GitLab project context, generates recommendations with Gemini, and allows approved recommendations to be converted into real GitLab issues.

We deployed the web application on Vercel and the worker service on Google Cloud Run.


Challenges we ran into

One of the biggest challenges was balancing AI flexibility with reliability.

We didn't want the AI to generate vague recommendations without evidence, so we built the system around repository data and GitLab activity rather than letting the model make assumptions.

Another challenge was deployment. Running long repository scans inside traditional web requests was not practical, so we moved scanning into a dedicated Cloud Run worker and kept the UI responsive.

We also had to manage OAuth authentication, secure token handling, and communication between multiple cloud services.


Accomplishments that we're proud of

  • Building a complete end-to-end workflow from repository scan to GitLab issue creation.
  • Successfully integrating GitLab, Gemini, Google Cloud, and PostgreSQL into one product.
  • Keeping humans in control by requiring approval before any action is taken.
  • Deploying a working production version rather than a prototype or mockup.
  • Creating recommendations that are tied to repository evidence instead of generic AI output.

What we learned

This project reinforced that AI works best when combined with reliable data and clear guardrails.

We learned that static analysis and repository context provide the foundation, while Gemini adds reasoning and prioritization on top.

We also learned that keeping humans involved in the decision-making process builds much more trust than fully autonomous systems.

Finally, we gained practical experience deploying and operating a multi-service application across Vercel, Google Cloud Run, and PostgreSQL.

Priority Formula

Warden ranks findings using a weighted scoring approach:

$$ PriorityScore = SeverityWeight + CategoryBoost + EvidenceBoost + RecencyBoost $$

This helps surface the most impactful engineering improvements first.


What's next for Warden

Our immediate goal is to make Warden more proactive.

We want scans to run automatically through schedules and repository events instead of requiring manual execution.

Longer term, we plan to support multiple repositories, trend tracking across scans, team collaboration features, and more advanced engineering recommendations.

Our vision is to make Warden an always-on engineering assistant that helps teams continuously identify, prioritize, and act on technical improvements in their GitLab projects.

Built With

  • gcp
  • gitlab
  • mcp
  • next
Share this project:

Updates