| name | research-watch |
| description | Monitor selected research sources over time and triage newly relevant papers. Use when Codex needs to repeatedly check one or more feeds, venues, journals, archives, or alerts for new papers on a topic, detect what is newly worth attention since the last pass, de-duplicate against previously seen items, rank what deserves immediate reading, and report the watch outcome with an explicit watch boundary and time window. |
Research Watch
Overview
Monitor a defined research surface over time without re-discovering the same papers or blurring what counts as new. Start by writing a watch plan, lock the sources and time window, collect candidates, reconcile them against a seen set, triage the truly new items, then report what is worth reading now and what can wait.
This skill is for ongoing monitoring, not for exhaustive literature review. The core requirements are a stable watch boundary, explicit time scoping, reliable de-duplication, and a triage output that is actionable after each watch run.
Workflow
- Write the watch plan before collecting anything.
- Record the topic, sources, time window, watch goal, desired triage depth, and stop rule.
- Decide whether the watch is broad discovery, targeted monitoring, or an alerting layer for another workflow.
- Read watch-plan.md and use its template.
- Lock the watch boundary and comparison baseline.
- Freeze the sources, source types, inclusion rules, and the definition of
new.
- Identify the baseline you are comparing against: prior watch ledger, seen set, or a named cutoff date.
- Do not change the watch boundary mid-run without stating the change.
- Build or update the watch ledger.
- Create a ledger artifact in the task workspace. Use CSV or JSON for anything beyond a very small watch.
- Record each candidate once with enough metadata to recognize it later.
- Preserve whether the item is new, already seen, updated, duplicate, or fetch-failed.
- Read watch-ledger.md.
- Collect candidates and de-duplicate before reading for relevance.
- Enumerate candidates from the selected sources within the defined time window.
- Normalize metadata and reconcile against the seen set before triage.
- Use scripts for repeated collection and normalization steps, not for semantic judgment.
- Read collection-and-dedup.md.
- Triage only the genuinely new or changed items.
- Read titles, abstracts, and concise metadata for all new candidates.
- Escalate high-signal or uncertain items to a slightly deeper pass.
- Classify items into actionable buckets such as
read now, read soon, monitor, or ignore for now.
- Read triage-and-prioritization.md.
- Use sub-agents only after the ledger and seen set are stable.
- Keep watch boundary, dedup policy, merge, and final prioritization with the main agent.
- Delegate disjoint source slices or candidate batches with fixed output fields.
- Require one structured result per assigned candidate.
- Read subagent-protocol.md.
- Report the watch run as an operational update.
- Return the watch boundary, time window, collection counts, new-item counts, ranked triage list, and what changed since the previous run.
- Call out source failures and uncertainty explicitly.
- Read reporting-and-state.md.
Operating Rules
- Treat the watch boundary as a contract. If the sources or cutoff move, say so.
- Distinguish
new to the source from new to the user; a watch may surface older papers if they were not in the seen set.
- Use a seen set or ledger history to avoid repeated rediscovery.
- Use scripts to collect and normalize, not to decide semantic relevance from keywords alone.
- When interactive browser exploration turns into a repeated collection path, save the resulting automation code in the task workspace and record how to rerun it.
- Bias the triage toward what is worth action now, not toward producing a long undifferentiated list.
- If a watch run is incomplete because a source failed or the baseline is missing, say so directly.
Read These References When Needed