Skip to content
Get AI Business OS

Literature Watch

PRIMA Scholar

The literature watch is a recurring scan of a fixed set of research topics. Each run searches the databases for papers published since the last run, screens them against your stated interest and writes a dated digest. It then adds the papers it selects to your research library. Where /scholar answers one question once, the literature watch keeps track of a field over time and shows you only what is new.

In a plugin install the command is /prima-scholar:literature-watch, and this page uses the short name /literature-watch.

  • Both PRIMA Scholar servers running. The search server must be version 2.1.0 or later, which 2.2.1 meets.
  • jq, the command-line JSON tool. Claude uses it to update the state file after each run.
  • A folder to run it in. The watch keeps its settings in .claude/literature-watch/ inside the folder where you start Claude Code, so each workspace has its own watch.

PRIMA Scholar does not run the scan on a timer. You run /literature-watch yourself, for example once a week or once a fortnight.

The first time you run /literature-watch in a workspace, Claude finds no settings file and offers to create one from the template that ships with PRIMA Scholar. Claude asks you for two things to start.

  1. Describe what you are watching for and why, in one paragraph. Write it as a brief to a research assistant, because the agent uses it to judge whether each paper is relevant.
  2. Give the first two topic groups, each with a search query and the databases to search.

Claude creates two files.

File What it holds
.claude/literature-watch/config.md Your interest paragraph, settings, topic groups, venue sweep and screening rules
.claude/literature-watch/state.json The date of the last run, the DOIs already seen and a record of each run. It starts as {"lastRun": null, "seenDois": [], "runs": []}

You can also create the files yourself. Copy skills/literature-watch/references/config-template.md from your PRIMA Scholar installation to .claude/literature-watch/config.md, edit every section, and create the state file with the starting content above.

config.md is a markdown file with five sections. Edit it in VS Code or ask Claude to change it.

One paragraph that says what you follow and why. The agent screens every paper against it, so name the subjects, the kinds of evidence you want and the disciplines you read.

Setting Template value What it does
digest_dir Documentation/Reports/Literature Watch The folder for digests, relative to the workspace root. In an AI Business OS workspace with domains, Domains/14 Research & Development/14.4 Research Archive/Literature Watch is the alternative the template suggests
default_lookback_days 14 Present in the template. In 2.2.1 a first run with no date given always looks back 14 days, whatever this value says
max_results_per_source 20 How many results each database returns for each topic group
include_preprints true Whether preprints can be selected. Selected preprints are labelled as preprints in the digest
library_tags literature-watch The tag added to every paper the watch imports
library_collection Literature Watch The collection every imported paper joins. The agent creates it if it does not exist
missing_abstract relegate What happens to a paper with no abstract. See Papers Without an Abstract

Each topic group is a heading with its own search. Several groups can feed the same theme in the digest.

Field Required What it does
theme Yes The digest heading the group’s papers appear under
query Yes The search query, which can use AND, OR and quoted phrases
sources Yes The databases to search, by their tool names, such as openalex, crossref and semantic_scholar
sort_by No date, the default, or relevance. Use relevance for a group that searches CrossRef
max_results No Results per database for this group, in place of max_results_per_source
venues No Journal or publisher names to keep. The filter runs after the search, so pair it with sort_by: relevance, a higher max_results and the publisher’s name in the query

A topic group in config.md looks like this.

### Group A
- theme: Coaching and Wellbeing
- query: `("executive coaching" OR "workplace coaching") AND (wellbeing OR burnout)`
- sources: openalex, semantic_scholar, crossref
- sort_by: relevance

The Data Sources page lists the ten database names you can use in sources.

The venue sweep runs one broad query and keeps only papers from a short list of journals or working-paper series. It catches papers that your topic queries miss. Give it a sweep_query and a venues list of short, distinctive name fragments. Without its own sources, sort_by and max_results, the sweep searches OpenAlex and CrossRef, uses the same sort order as the groups and returns twice max_results_per_source.

Add your own inclusions and exclusions here. They extend the defaults described under How Papers Are Screened.

Type the command in Claude Code.

/literature-watch

Two options change a run.

Form What it does
/literature-watch since 2026-09-01 Scans from the date you give instead of the last run date
/literature-watch --dry-run Writes the digest but imports nothing and leaves the state file unchanged

Claude confirms the window in one line, for example “Scanning 3 topic groups for papers published since 30 September 2026.” It then hands the scan to the literature-watch-agent, which works in its own context and returns only file paths and counts. When the agent finishes, Claude updates the state file and reports the digest path, the number of papers found, selected and relegated, the top two or three titles and any database errors. Claude does not paste the digest into the conversation.

The scan covers papers published on or after a start date, chosen in this order.

  1. The date you give with since, when you give one.
  2. The lastRun date in the state file, when there is no since date.
  3. The date 14 days before today, on a first run with neither.

Databases add new papers with a delay of days to weeks, so a short window can come back nearly empty.

  1. Searches each topic group for papers published since the start date, sorted newest first unless the group sets sort_by.
  2. Runs the venue sweep with the same date window and the same list of papers to leave out.
  3. Leaves out papers you have seen, using the 150 most recent DOIs from the state file.
  4. Removes duplicates across all the searches, first by DOI and then by title.
  5. Looks for missing abstracts with one title search on OpenAlex and Europe PMC for each paper that lacks one.
  6. Screens every paper against your interest and rules, with a short reason for each exclusion.
  7. Writes the digest and a JSON file of the DOIs it selected, excluded and relegated.
  8. Imports the selected papers to your library with the tag and collection from your settings, except in a dry run.

If every search fails, the agent writes no digest and reports the errors.

Your screening rules come first. Where the settings file is silent, the agent applies these defaults.

Included by default Excluded by default
Empirical studies, systematic reviews and meta-analyses Technical machine-learning papers with no workplace, labour or organisational dimension
Substantive theory or conceptual papers in the venues you list Clinical AI papers, unless the subject is clinicians’ work
Working papers from the series you list Education technology papers, unless the subject is workforce or professional learning
Opinion pieces without argument or data
Anything already in your library

The default exclusions refer to workplace, labour and professional subjects, the same field as the template’s example interest. If you watch a different field, write screening rules that fit it.

A finding cannot be reported from a title alone, so the missing_abstract setting decides what happens to a paper that still has no abstract after the extra title search.

Value Effect
relegate The default. The paper is never selected or imported. If its title and venue would pass the screen, it is listed under “Abstract Unavailable” in the digest so you can open it yourself
exclude The paper is screened out with the reason “no abstract available”
include The paper is screened on title and venue alone, and its entry says the abstract was unavailable

Each run writes two files to the digest_dir folder.

File Contents
YYYY-MM-DD-literature-watch.md The digest you read
YYYY-MM-DD-literature-watch-selected.json The run date, start date, counts and the lists of selected, excluded and relegated DOIs

The digest opens with the window, the number of groups scanned, the number of papers found and selected, and any database errors. A short summary follows. Selected papers then appear under your theme headings, each with an APA7 reference, the type of evidence, a one-sentence finding in cautious wording drawn from the abstract, a sentence on its relevance to your interest and an open access or gated label. Two lists close the digest. “Abstract Unavailable” holds the relegated papers, and “Also Surfaced, Not Selected” holds every screened-out title with its reason, so you can check the screen. A dry run says so in the digest header.

state.json is how the watch remembers what it has already shown you.

Field What it holds
lastRun The date of the last full run
seenDois Every DOI the watch has selected, excluded or relegated, up to 2,000. The oldest drop off first
runs One record per run with the date, start date and counts, up to 52

Claude updates the file with jq after each run that is not a dry run. Leave the file alone unless you want the watch to forget what it has seen.

If every result is old, the same papers return each week or the venue filter finds almost nothing, see the literature watch entries on the Troubleshooting page.