Search for characters or series

When we added Sherlock Holmes to OpenFiction, it became clear quickly that mystery fiction has a fundamentally different relationship with spoilers than epic fantasy does - and that the existing filtering system, built for series like The Stormlight Archive and The Wheel of Time, wasn't quite the right tool for the job.
This post explains what we've built, why, and how it works.
In a long-running fantasy series, spoilers are about the shape of a story across thousands of pages. A character dies in book four. A relationship forms in book six. A secret is revealed in book nine. The filtering system was designed for exactly this - hide information from books you haven't read yet, mask state changes that would reveal what happens to characters you haven't caught up with.
Mystery fiction is a different problem entirely.
The spoiler in a mystery story isn't usually about what happens to a character across a series. It's about who did it, in this story, right now. And crucially, the spoiler often isn't a state change or a death - it's an appearance. Knowing that a particular character appears at a crime scene in The Red-Headed League tells you something you might not want to know before you get there. The presence of a character is the spoiler.
The spoiler in a mystery story isn't usually about what happens to a character across a series. It's about who did it, in this story, right now.
The standard book-level filtering doesn't help with this. A reader who is halfway through a Holmes story and checks a character page shouldn't see information that reveals the solution - even though they're actively reading that book.
We've extended the filtering system with three new concepts.
The first is the solution reveal point. Curators can now designate a specific segment within a book - a chapter in a novel, or a story within a short story collection - as the point at which the solution becomes clear. For a Holmes novel like The Hound of the Baskervilles, that's the chapter where the villain is unmasked. For a short story like The Red-Headed League, the story itself is the reveal point - once you've read it, the solution is no longer sensitive.
The second is solution-sensitive appearances. Curators can flag individual character appearances as solution-sensitive, meaning the fact of this character appearing here would give away the solution. Those appearances stay hidden until the reader reaches the designated reveal point.
The third is solution-sensitive state changes. Deaths, injuries, relationship reveals - any character state change that is itself a mystery solution can be flagged the same way, hidden until the reader reaches the reveal.
When solution-sensitive data is being filtered for a reader who hasn't reached the reveal point, the character page doesn't silently hide the information. Instead it shows a clear message: "Contains mystery solution - hidden based on your reading profile," with a direct link to update your reading progress.
This matters because silent filtering is confusing. A reader who sees a sparse character page and doesn't know why is more likely to assume the data is missing than to realise they're being protected. The explicit message tells them something is there, they just haven't earned it yet.
Once a reader's progress moves past the solution reveal segment, everything appears normally.
One of the more interesting design questions was how this interacts with the way Holmes is structured on OpenFiction.
The novels have chapter-level segments, so solution filtering works at fine granularity - a reader who is partway through The Hound of the Baskervilles will have solution-sensitive data hidden until they reach the specific chapter where the solution is revealed.
The short story collections use a different structure - each story is a single segment rather than being broken into chapters. This turns out to be exactly the right granularity for mystery spoilers. The story is the unit of mystery fiction. Once you've read The Adventure of the Speckled Band, the solution is no longer sensitive. The segment structure and the mystery structure align naturally.
The feature is live on Sherlock Holmes now, but it wasn't built specifically for Holmes. Any mystery universe added to OpenFiction will support the same filtering. The curator tools for marking solution reveal points and flagging solution-sensitive appearances and states are available across all universes.
As OpenFiction grows to cover more mystery fiction, the infrastructure is already in place.
For the filtering to work correctly, your reading profile needs to have your current segment set within each book you're actively reading. Book-level progress tells the system which books you've finished; segment-level progress tells it where you are within a book you're currently reading.
If you're working through the Holmes canon and want solution spoilers properly filtered, set your current chapter or story in your reading profile. The more precise your progress, the better the filtering works.