Literature Review · AI Oversight · Data-Dense Interface · Tool Design

periscope

A language model screened 832 research abstracts for a literature review. I built Periscope to audit its decisions — reviewing each verdict and deciding whether to keep or overturn it.

The model worked from titles and abstracts alone, returning a verdict, rationale, and supporting quote for each paper. My job was to decide which calls to trust.

Core idea

When AI does the first pass, human attention becomes the scarce resource. The interface should direct it to the decisions most likely to need review.

Card view of a single paper under audit. A worklist banner and filter pills sit above the queue; the evidence quote and counter-evidence sit side by side, with the absence claim beside the prediction; the verdict controls run along the bottom.

One paper under audit — worklist context, model output, and the verdict controls in a single view.

Interactive prototype · Live demo julianay.github.io/periscope_demo ↗

The demo runs on a 30-paper sample. Every number on this page comes from the full 832-paper screening.

Context

The problem

Reviewing 832 AI decisions one by one defeats much of the value of automating the first pass. The interface needed to help me decide where to look first and make each decision faster to verify.

The screening pipeline produced useful signals: confidence, rule violations, unresolved criteria, and cases where the model found evidence against its own verdict. Periscope uses those signals to organize the review around risk rather than sequence.

Queue design

Start where the risk is

Rather than treating all 832 decisions equally, Periscope points me toward the ones most likely to need attention. At the top of the queue, it recommends starting with high-risk worklists such as Excluded, but model pushed back and Low-confidence rows.

The filter menu exposes additional signals, including Maybes still carrying a criterion and Linkage-rule violations. Each worklist shows its size and groups papers by why they may need closer review.

For example, 164 excluded papers contained evidence that pushed against the model’s own verdict. Instead of finding those conflicts manually, I could pull them into a review queue with one filter.

Two worklist views side by side: the filter menu open on Excluded, but model pushed back (164) and Low-confidence rows (324), and the same queue filtered to confidence: low showing 324 pending papers
Worklists group papers by why they may need a closer look, each with its own count and banner.
Verification

Checking the model against the source

Evidence and counter-evidence are paired for comparison, then highlighted in the abstract for verification. The pair makes conflicting evidence easy to compare; the highlights make each quote easy to check against its source.

Not every claim can be highlighted. Some exclusions depend on something being absent from the paper — for example, no user study or no visual component. In those cases, Periscope places the model’s absence claim beside the exclusion criterion, making it easy to check whether what the model says is missing actually matches the rule it applied.

The goal is to make verification almost as easy as accepting the model’s output, while keeping the limits of that verification visible.

Model output panel with evidence quote and counter-evidence side by side, above an abstract with both spans highlighted in matching colors
Evidence is paired for comparison and grounded back to the source text.
Model output panel showing an exclude prediction under E1 with absence claim chips reading No user study and No interface described beside it
When there is nothing to highlight, the claimed absence sits beside the rule it is meant to satisfy.
Verdicts

Excluding asks for a reason

Including simply carries a paper forward. Excluding removes it from the review, so it requires a reason.

Choosing Exclude opens a criterion picker, pre-filled with the criterion the model applied. The reviewer can confirm it or choose another before saving the verdict.

The pre-fill keeps the interaction fast, while the required confirmation separates two decisions that are easy to collapse into one: Was the model’s verdict right? Was its reason right?

It adds friction only where the consequence is highest — when a paper leaves the review.

Exclusion criterion picker modal, pre-filled with E2 Explanation is text-only, no visual component, over an abstract with Cancel and Save buttons
Pre-filled with the model’s criterion; the verdict is not stored until it is saved.
Confidence

Signals can disagree

Periscope keeps confidence visible, but secondary to the evidence behind the prediction.

The screening prompt instructed the model to lower its confidence when it found counter-evidence. In practice, the outputs did not always follow that rule: 59 exclusions had both counter-evidence and high confidence.

Reviewing those cases revealed another problem. Some high-confidence exclusions were correct; the supposed counter-evidence was the weaker signal. In one case, the model flagged language about an “intuitive interface” as counter-evidence, but checking the full paper confirmed there was no user study or interface evaluation.

Rather than resolving these signals into a single score, Periscope exposes them separately. Confidence tells me how certain the model was. Evidence and counter-evidence let me inspect why. The final judgment remains mine.

Model output panel showing high confidence, an exclude prediction, an absence claim of No user study, and an evidence quote paired with counter-evidence about a web-based decision support interface
High confidence and real counter-evidence, side by side — the reviewer decides which signal to trust.
Views

Two views, different jobs

Reviewing these cases one at a time suggested that the exclusions were often correct. The grid made it possible to see whether that was a pattern.

Filtering for exclude + high confidence + counter-evidence brought the cases together. As I reviewed them, the verdict column began telling a consistent story: I was repeatedly confirming the exclusions.

This is why Periscope has two views over the same queue. The card brings together everything needed to inspect one decision. The grid makes patterns across decisions visible.

In this case, the grid shifted the question from Why is the model so confident despite counter-evidence? to Is the counter-evidence itself the unreliable signal?

Card to decide. Grid to diagnose.

Grid filtered to prediction: exclude, confidence: high, counter-evidence: yes, 59 rows, shown side by side with the card view for one of those rows open on the right
The same filtered set, grid and card — a pattern on the left, one decision on the right.
Path not taken

When AI made the interaction worse

I prototyped a natural-language control for filtering the grid and choosing columns. It seemed like a good use of AI: describe the view you want instead of configuring it manually.

In practice, it was slower and less reliable than the controls it replaced. It sometimes missed conditions or interpreted them incorrectly, while simple filters and column toggles were predictable and immediate.

I removed it.

Natural language reduced the effort of specifying a view, but increased the effort of verifying that the system understood it.

The natural-language bar holding a three-condition request, a single readback chip reading COLUMN hide Pillar, a status line reading Goal satisfied — agent stopped after 2 steps, and a filter row still reading All 832 papers
The agent reports “Goal satisfied” while the unchanged result count makes the failure visible.