Your Codebase Doesn't Need AI. It Needs Context. A team from Tarkash-Labs built Waypoint, a dev onboarding platform that uses AI to analyze a codebase and generate a task-specific 'Mission Brief' telling developers which files to touch and what traps to avoid. The project made the Top 50 at InnovaHack Chapter-1, and the team chose not to advance to Round 2. Waypoint uses a five-step pipeline and a waterfall of AI providers to ensure reliability. Every hackathon has the same 90-second moment of dread: someone hands you a codebase you've never seen, and you have to make sense of it before the clock runs out. File trees don't help. grep doesn't help. You waste the first 30–60 minutes reading the wrong files, missing a hidden dependency, and stepping straight into a production trap nobody warned you about. In other words: before writing code, you spend half your time trying to figure out where the hell the code is. The idea wasn't "AI that writes your code." It was "AI that tells you where to look before you write it." For InnovaHack Chapter-1, my team built Waypoint — a dev onboarding platform. Point it at any GitHub repo or a local folder, describe a task like "Add a new global configuration flag to app.set ", and instead of you reading the whole codebase to figure out where that even goes, it hands you a Mission Brief : exactly which files you'll touch, the traps waiting in them, what to learn first, and the order to do it in. Waypoint made the Top 50 — one of the 50 chosen to advance to Round 2. Here's how it actually works under the hood, what it took to build, what's next for it — and since I don't believe in only posting the highlight reel, what happened after we placed that made us walk away from the next round. Every time a developer joins a new codebase, or picks up an unfamiliar task in one they already know, there's a tax paid in wrong files read, missed dependencies, and traps hit blind. For me, that moment came when I wanted to contribute to Forem — the open-source project that actually powers DEV. I didn't know a line of Ruby on Rails, and between learning the language, understanding the framework, and preparing for interviews, I didn't have the time to read an entire unfamiliar codebase just to figure out where one feature belonged. I never ended up making that contribution. But the problem stuck with me. It's also a pattern for our team more broadly: we deliberately pick a different domain of tech for every hackathon instead of getting comfortable in one stack. It's less strategic than it sounds — mostly it just means Tarkash-Labs has ended up with a fairly scattered, fairly interesting portfolio of projects across domains that have nothing to do with each other. A file tree tells you where things are. It tells you nothing about what matters for the thing you're trying to do right now . That's the actual gap Waypoint closes — not "here's a map of the codebase," but "here's the route for your specific task." It's a map, not a GPS. Waypoint is supposed to give you the latter. Type in a task — the README's own example is Add Google OAuth — and Waypoint runs a five-step pipeline: Five steps in. One question answered: “Where should I actually start?” That evidence log matters more than it sounds like it should — it's the difference between "trust me" and being able to see exactly which files the recommendation is grounded in. The goal isn't to make the AI sound confident. The goal is to make it show its homework. Screenshot 1 — the input/task The task starts with a question, not a file path: tell Waypoint what you're trying to change. Screenshot 2 — the analysis Waypoint narrows an entire repository down to the files relevant to that task. Screenshot 3 — the Mission Brief The output isn't a generic codebase summary — it's a task-specific route with files, traps, prerequisites, and evidence. Caption: The Mission Brief generated for adding a new configuration flag to Express.js — identifying the exact core files to touch, known framework traps, and the step-by-step route. One decision I'm genuinely proud of: Waypoint doesn't depend on a single AI provider staying up. It runs a waterfall — because apparently even AI needs a backup plan: Primary → Fallback → Second fallback This isn't a hypothetical safety net. Gemini's free tier caps out at 20 requests a day, per model — fine for a polished five-minute demo, nowhere near enough for the number of test runs building and debugging actually takes. NVIDIA NIM's limits run per-minute instead of per-day, which is exactly why DeepSeek V4 Flash sits as the first fallback rather than the primary. Gemma 4 31B is the heaviest of the three — noticeably slower, but consistently the most thorough of the three, which is why it's the option of last resort rather than a weak one. Three providers, one mission: don't let the app go down because a free tier decided you'd had enough requests for the day. Beyond the Mission Brief, Waypoint has two ways to actually see the codebase: Architecture Map: the Express.js codebase rendered as a 3D city — building height represents lines of code, while color represents risk. Dependency Galaxy: the same repository viewed as a network of file-to-file dependencies. And then the entire thing white-screened. Here's the one that actually made me sweat. Building the Architecture Map meant procedurally laying out a 3D cityscape — each file a building, grouped by directory — and for the floor plan we used d3-hierarchy 's treemapSquarify layout, extruding the resulting 2D rectangles into 3D boxes with React Three Fiber. It worked cleanly on most repos. Then, with no warning, loading a specific repo would white-screen the entire app — no error message, no fallback, the whole navigation state just gone. The cause turned out to be a collision between D3's layout math and WebGL's geometry constraints. On repos with certain nested structures, or too few files, D3's padding calculations would subtract more space than the bounding box actually had — and the treemap would hand back leaf nodes with a width or depth of exactly zero, sometimes negative. Feed a negative dimension into a Three.js