I'm in Indiana. And I posted that at around 1 AM my time, running on a fit of manic energy
The answer to why Leatherworking is behaving the way it is is that I'm using string.find on each skill to compare it to a hard-coded list of skills. Since string.find("Elemental Leatherworking | Dragonscale Leatherworking | Tribal Leatherworking", "Leatherworking") returns true, it's counting it.
That's expected behaviour at this point, now that I look at it, and if I'd bothered to run it on the leatherworker toon I have I would have noticed.
Recipe matching I can handle with mockup data - my SavedVariables.lua has data for so many toons that don't exist it's hardly funny. The important thing is that it -is- finding your specialties, so I can fix the pattern matching and go from there.
At this point, it'll probably be a slash command to set the specialties; I don't see any reason to run that code repeatedly.
Regarding Shadoweave, my priest can make it
I'll run with the specs I have, then!