Well, I gave you the most clues. Free version pl0x.
Here's my system:
Detail all clue scrolls in the XML. Create new instances of a 'clue scroll profile' that validates, parses and interpret the information for every documented clue scroll read from the XML file. Cache all the profiles in a Hashmap as values. The keys will be the clue scroll ID stored in the profile's instance. Check inventory for an item named "Clue scroll". If found, acquire its ID. Query the cache to find the details of that clue scroll. If not found, throw an error displaying something like "Clue scroll [iD] is not documented." Analyse the gotten instance and generate a new outcome, i.e., displaying the information or instructing your bot to act upon the information.
The hardest part of this process is the first two tasks...and possibly the last task if you're creating a bot.
Right, the only problem I see with this method is that should something go wrong, its very hard to fix. Right now I am leaning to creating a separate controller for each specific clue - more work, but better stability. Obviously looping through 100+ clues isn't efficient, so it finds the best node to go to based on ID.
Updates:
Just some more data collection 2 weeks off start tomorrow expect (hope) for a free public beta by the end!