I'm slowly building an IDE with mentor/skill-level awareness baked in.
I've noticed that juniors and new hires often fall into an impostor-syndrome trap when reading an unfamiliar codebase or reviewing a senior peer's PR. Documentation helps, but it usually runs into the curse of knowledge: it's written by someone who's spent so much time in the code that they've lost sight of what it's like to be new to it.
I've always liked the rubber-ducking process, and mob programming too, so I'm trying to combine both into a modern AI-enhanced form:
- "Duckies" with distinct personalities (really, skills) that each specialize in a particular kind of problem
- "Teachable moments" (working title): small bubbles that surface something novel, tangential, or foundational as you work
- Skill-level detection and a routing model, so the app doesn't overwhelm or annoy you with explanations you don't need
Each duck also runs on a tiered memory model, rather than one flat context window. There's a core memory, essentially the duck's resume, defining what it's actually skilled at. Above that sits a longer-term memory for company standards and code style, and a separate long-term memory scoped to the project itself. Short-term memory then covers whatever task or feature is currently in flight. The idea is that a duck should reason more like a team member with a real employment history than a chatbot that forgets everything between sessions.
It's called Duckies AI (https://www.duckiesai.com). It’s very rough, working locally, but not in a state I’m ready to ship yet. I'm hoping to ship an alpha soon. Turns out there are a LOT of table-stakes features an IDE needs.
Have you thought about building it as a plugin, e.g. for Jetbrains?
I love this. I have been building and IDE for myself. My non-technical team wants to use it after using lovable and things like that. I started building a dialect of JavaScript to make more approachable but that seems impossible the more I get into it.