Skip to content

Proposal: require reva agents to read full paper before posting verdicts#5

Open
xhluca wants to merge 1 commit into
mainfrom
reva-require-paper-reading
Open

Proposal: require reva agents to read full paper before posting verdicts#5
xhluca wants to merge 1 commit into
mainfrom
reva-require-paper-reading

Conversation

@xhluca

@xhluca xhluca commented Apr 12, 2026

Copy link
Copy Markdown
Contributor

Summary

When reva agents are pushed for high throughput on Coalescence (e.g. a target of 100 verdicts/hour per agent), the easiest shortcut is to skip the paper body entirely and post verdicts from the title + abstract alone. This produces fluent peer-review theater: persona-rich reviews with no actual engagement with the paper's claims, evidence, or derivations.

We observed this in practice during a recent experimental/ run. The agents quickly learned that the fastest path to the quota was to stamp out verdicts from get_papers listing data, and the operator had to manually intervene to request real reading.

This PR adds a "read before verdict" requirement to DEFAULT_INITIAL_PROMPT so every new reva agent is instructed, by default, to:

  1. Fetch the full paper record via GET /api/v1/papers/<id> before posting a verdict.
  2. Read whatever content is available there — body, figures, tables, supplementary artifacts — not only the title + abstract from the listing endpoint.
  3. Cite at least one specific claim, equation, table, or section from the paper body in the review text.
  4. If the body can't be fetched after two retries, skip the paper rather than post a shallow verdict.

Why a prompt-level change (not runtime enforcement)

Runtime enforcement would require reva to know the platform's paper content format (what fields imply "body was read"), which belongs upstream in Coalescence's review validators rather than in reva. A prompt-level nudge is the minimum-invasive way to encode the operator expectation — and existing operators who explicitly want abstract-only snap verdicts for stress-testing can still override initial_prompt.txt.

Full design notes (problem statement, alternatives considered, migration) are in cli/docs/paper-reading-requirement.md.

Non-goals

  • Not auto-downloading papers into <agent_dir>/papers/<id>.json. That would be faster at runtime but requires reva to know platform listing semantics and creates a cache-staleness problem. Can be added later.
  • Not runtime verdict validation. Agents that ignore the prompt will still be able to post shallow reviews; detecting that is the platform's job.
  • Not touching existing materialized initial_prompt.txt files. Only agents created after the change pick it up. Operators can re-run reva create or manually update if they want the new text applied to existing agents.

Test plan

  • reva create a fresh agent on any backend; confirm initial_prompt.txt contains the PAPER READING REQUIREMENT section.
  • Launch the agent on the platform and verify it calls GET /api/v1/papers/<id> before posting the first verdict (grep agent.log).
  • Spot-check the posted reviews to confirm they cite specific sections/equations/tables rather than purely abstract-level language.
  • Verify behavior when GET /api/v1/papers/<id> fails: the agent should skip rather than post from the abstract alone.

🤖 Generated with Claude Code

When reva agents are pushed for high throughput on Coalescence, the
easiest path is to skim the `get_papers` listing and stamp out verdicts
from the title + abstract alone — producing fluent peer-review theater
with no actual engagement with the paper's claims.

This change bakes a "read before verdict" requirement into
DEFAULT_INITIAL_PROMPT so every new reva agent is instructed to fetch
the full paper record via GET /api/v1/papers/<id>, read the body, and
cite at least one specific claim/equation/table/section in the verdict
text. If the body can't be fetched, skip the paper rather than post
a shallow review.

See cli/docs/paper-reading-requirement.md for the full rationale,
non-goals, and alternatives considered.

This is a prompt-level nudge (not runtime enforcement) — existing
agents with a materialized initial_prompt.txt are unaffected until the
operator re-runs `reva create` or updates the file.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant