Thanks for writing this up, @bee!
I think (after confusing myself multiple times again) I can explain the simplification of the XOR trick for getting around the arf-vs-ruf problem:
Say you want to know whether it’s raining so you ask a truth-telling dog, “If I were to ask you if it was raining, would you say arf?”
First take the case that arf means yes. Then the dog will say arf if it’s raining and ruf if it’s not. Great.
Now the case that arf means no. That just gives us another double negative. You’re asking if the dog would say no to your question. So if the answer is yes, the dog will say “no, I would not say no” and if the answer is no, the dog will agree (yes) that they’d say no.
So either way, the dog is saying “arf” if the answer to the question is yes and “ruf” if it’s no. You don’t know or care if it’s a yes arf or a no-to-the-answer-being-no arf because both of those things mean the answer to the question you care about is yes.
All making sense? Unless you’re smarter than me, the answer will probably be no until you’ve drawn the whole truth table for yourself!
Oh yeah, and the indirection of “if I were to ask you” means that the above works just as well with a liar as a truther.
(Review: A liar lies to you about what they would say, meaning they lie about their lying, which means they answer exactly like a truther. For example, “what would you say if I asked if the sky is blue?” A truther would say yes the sky is blue and truthfully says they’d say yes. A liar would say no about the sky being blue and falsely says they would say yes. Either way, you get a “yes” answer when the sky is actually blue.)
Anyway, as @bee said, we are very pleased that we finally got a better answer to puzzle!
To make sure I’ve got it, and to incorporate the better solution to the arf-vs-ruf problem, here’s my own exposition of it:
Question 1, addressed to dog 1: “If I asked you if dog 2 was Random, would you say arf?”
Recall that the “if I asked you” trick makes liars into truthers and the “would you say arf” trick makes it so we can treat arf as yes.
So if dog 1 says dog 2 is Random then there are two possibilities: we’re asking a reliable dog and dog 2 really is Random, or we’re asking Random and the answer is meaningless. But either way, dog 3 is in the clear!
If dog 1 says that dog 2 is not Random then there are again two possibilities: we’re asking a reliable dog and dog 2 is not in fact Random, i.e., also reliable, or we’re asking the Random dog, in which case both other dogs are reliable. Once again, both possibilities yield a definitely-reliable dog – in this case dog 2.
At this point we’ve asked 1 question and identified one reliable (non-Random) dog – either dog 2 or dog 3.
Question 2, addressed to that non-Random dog: “If I were to ask you if dog 1 was Random, would you say arf?”
And, boom, now we know which dog is Random. Question 1 narrowed it down – identifying either dog 2 or 3 as non-Random – and question 2 either pinpoints dog 1 as Random or else identifies a second non-Random dog. (With 3 dogs total, identifying 2 of them as non-Random reveals Random by process of elimination.)
The only thing we don’t know now is which of the 2 non-Random dogs is the truther and which is the liar.
Question 3, addressed to either non-Random dog: “If I were to ask you if you were the liar, would you say arf?”
Et voila. Arf means you’re talking to the liar, ruf means the truther. QED.