Literature Watch
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.
What You Need
Section titled “What You Need”- 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.
Set Up the Watch
Section titled “Set Up the Watch”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.
- 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.
- 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.
The Settings File
Section titled “The Settings File”config.md is a markdown file with five sections. Edit it in VS Code or ask Claude to change it.
Interest
Section titled “Interest”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.
Settings
Section titled “Settings”| 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 |
Topic Groups
Section titled “Topic Groups”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: relevanceThe Data Sources page lists the ten database names you can use in sources.
Venue Sweep
Section titled “Venue Sweep”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.
Screening Rules
Section titled “Screening Rules”Add your own inclusions and exclusions here. They extend the defaults described under How Papers Are Screened.
Run the Watch
Section titled “Run the Watch”Type the command in Claude Code.
/literature-watchTwo 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 Run Window
Section titled “The Run Window”The scan covers papers published on or after a start date, chosen in this order.
- The date you give with
since, when you give one. - The
lastRundate in the state file, when there is nosincedate. - 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.
What the Agent Does
Section titled “What the Agent Does”- Searches each topic group for papers published since the start date, sorted newest first unless the group sets
sort_by. - Runs the venue sweep with the same date window and the same list of papers to leave out.
- Leaves out papers you have seen, using the 150 most recent DOIs from the state file.
- Removes duplicates across all the searches, first by DOI and then by title.
- Looks for missing abstracts with one title search on OpenAlex and Europe PMC for each paper that lacks one.
- Screens every paper against your interest and rules, with a short reason for each exclusion.
- Writes the digest and a JSON file of the DOIs it selected, excluded and relegated.
- 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.
How Papers Are Screened
Section titled “How Papers Are Screened”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.
Papers Without an Abstract
Section titled “Papers Without an Abstract”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 |
The Digest
Section titled “The Digest”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.
The State File
Section titled “The State File”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.
When Results Look Wrong
Section titled “When Results Look Wrong”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.

