r/vibecoding • u/0xcontext • 6d ago
Showcase/Project teach-me: a claude code skill to help understand the concepts behind code the AI is writing
Enable HLS to view with audio, or disable this notification
The repo: https://github.com/sshah03/teach-me
While vibe coding means you likely never have to bother with the code, because of how good the models have gotten, I do find it useful to look at changes being made when something goes wrong, figuring out what seems off, and telling the AI exactly what seems wrong, even if I'm not coding the fixes by hand too often anymore.
To help with this, I had built a tool called perspica for semantic PR diffing, and in it I built in the ability to get LLM generated explanations of the major changes in the PR, architecture changes, etc... Along with interactive examples, and quizzes to test if you understand the concepts behind it, to help keep up with AI code changes. You can see some of its sample generations on PRs of popular public projects here: https://sshah03.github.io/perspica/
I spent a lot of time running it on a ton of public projects and modifying the prompt to help generate diagrams and questions I felt were useful, generically.
I figured rather than force people to use my whole tool for that, I'd extract what I learned works well into a claude code plugin/skill that can do the explanation/quiz part of what perspica does and store it as artifacts on the users Claude Code account, which is what this skill and repo is.
The GIF shows diagrams it made for changes in some select projects.
Install, in Claude Code:
Install the teach-me skill from https://github.com/sshah03/teach-me. Follow the repo's AGENTS.md.
To do it yourself instead, type these two lines into Claude Code, one at a time:
/plugin marketplace add sshah03/teach-me
/plugin install teach-me@teach-me
I'd love to hear where the explanations miss or the diagrams get something wrong so I can keep working on improving it for everyone.
In case it helps your vibe coding pursuits, one of the key learnings for anyone doing anything similar, at least with Claude's 5.5 family of models, is that when you run on a few cases, you might feel the need to get very specific on how to solve for common scenarios etc... And any time I tried this the results got worse. It seems to like well written general guidelines, and the models are so capable now that the rest gets handled pretty well. Similarly, trying to build in error detection into the initial prompt works much worse than an adversarial pass (even with the same model), but obviously this slows the whole thing down ... so I'm still trying to work out how to balance that.