This follows on from:
- Generative AI for Genealogy – Introduction
- Generative AI for Genealogy – Data vs. GEDCOM files
- Generative AI for Genealogy – Part I
- Generative AI for Genealogy – Part II
The Curious Case of Skill Selection
If you’ve spent any time in software engineering, you’ll have noticed a peculiar habit we all share: we copy things. Gleefully. Unapologetically. Sometimes without even reading the thing we’re copying.
In certain professions, this behaviour would be… ill‑advised. Bomb disposal, for example. You don’t want your colleague saying, “Well, the blog post I skimmed said cut the red wire, but I’m feeling creative today.”
But in engineering? Copy‑paste is practically a lifestyle.
The trouble is that the more we rush, the more we outsource our thinking to frameworks, libraries, and let’s be honest, AI assistants who are only too happy to hand us code we don’t fully understand. I caught myself doing exactly this while working with Kafka recently. After letting Akka handle resilience for me, I suddenly had to write it myself. The result? A mountain of code, much of it courtesy of Copilot, and a creeping suspicion that AI is slowly turning us into extremely polite parrots.
This is partly why tools like LangChain and LangGraph exist. They’re attempts to tame complexity by giving us pre‑packaged patterns. I haven’t used them personally, but having built my genealogy AI project from scratch, I can see where they might fit – and where they’d get in the way.
Because this project is a side‑quest, not a corporate death march, I’ve had the luxury of slowing down and actually thinking. And that led me to one of the most important architectural decisions in the whole system: skills.
So… what exactly is a “skill”?
“Skill” is one of those words that gets thrown around so much it starts to lose meaning – like “synergy” or “microservice.” Even AI assistants use it, usually while pretending they invented the concept.
In my system, a skill is a small, focused capability. A tiny expert. A specialist. A little module that wakes up only when the user asks something in its domain.
Instead of one giant prompt trying to do everything (and doing half of it badly), skills let the system route the user’s question to the right expert. It’s modular, it’s tidy, and it stops the LLM from hallucinating its way into a family tree that looks like a Jackson Pollock painting.
