Virtual Reading Group
Orchestrate parallel expert agents to read papers, discuss findings, challenge each other's interpretations, and synthesize an integrated discussion document with traceable citations.
Quick Start
Minimum inputs required:
- Research question — the lens through which papers are analyzed
- Paper list — paths to PDFs/text files, or paper descriptions for web lookup
- Output directory — where all outputs are written
Optional inputs:
- Custom expert personas (default: see
references/default-personas.md) - Custom junior researcher persona
- Language preference (default: English)
- Number of experts (default: auto-calculated from paper count)
Workflow Overview
The skill runs 4 sequential phases. Each phase must complete before the next begins.
| Phase | Agents | Input | Output |
|---|---|---|---|
| 1. Paper Reading | N experts (parallel) | Papers + research question | {AuthorYear}_notes.md, {Expert}_session_summary.md |
| 2. Junior Discussion | 1 junior researcher | All Phase 1 outputs | {Junior}_discussion.md |
| 3. Expert Responses | N experts (parallel) | Phase 2 output + other experts' summaries | {Expert}_response_to_{Junior}.md |
| 4. Synthesis | 1 synthesizer | All previous outputs | Integrated_Discussion_Summary.md |
For detailed prompts and phase specifications: Read references/workflow.md.
Orchestration Procedure
⚠️ Important: The prompts below are abbreviated summaries. For full prompt templates that produce quality output, use
references/workflow.md. The pseudocode blocks show orchestration structure — adapt to your actual sub-agent spawning mechanism.
1. Validate Inputs
- Confirm research question is specified
- Confirm paper list is non-empty
- Confirm output directory exists or create it
- Load personas from user input or references/default-personas.md
2. Calculate Expert Assignment
Determine number of experts and paper batches:
if paper_count <= 4:
num_experts = 1
elif paper_count <= 10:
num_experts = 2
elif paper_count <= 20:
num_experts = min(4, ceil(paper_count / 5))
else:
num_experts = min(8, ceil(paper_count / 5))
Distribute papers evenly across experts (max 5 per expert).
# ⚠️ Context contamination warning: assigning >5 papers per expert degrades
# note quality — later papers in the batch get shallower treatment as context
# fills up. Prefer 3-5 papers per agent for best results.
3. Execute Phase 1 — Paper Reading (Parallel)
For each expert, spawn a sub-agent with:
- Label:
expert-reader-{expert_name} - Model: opus (or sonnet for budget)
- Core instructions:
- Read assigned papers through research question lens
- Write notes using
references/paper-notes-template.md - Save as
{output_dir}/{AuthorYear}_notes.md - Write session summary with cross-cutting themes
- Critical: Quote specific passages with section labels — all claims must be traceable
📄 Full prompt template: See references/workflow.md → Phase 1
Wait for all Phase 1 agents to complete before proceeding.
4. Execute Phase 2 — Junior Discussion (Single Agent)
Spawn single agent with:
- Label:
junior-discussion - Model: opus (required — needs strong reasoning)
- Core instructions:
- Read all Phase 1 outputs (notes + summaries)
- For each paper: summarize claims, pose challenging questions to each expert
- Generate Grand Questions: 3 unsolved problems, 2 testable hypotheses, 2 methodological gaps
- Reference specific passages — be intellectually provocative
📄 Full prompt template: See references/workflow.md → Phase 2
Wait for Phase 2 to complete before proceeding.
5. Execute Phase 3 — Expert Responses (Parallel)
For each expert, spawn a sub-agent with:
- Label:
expert-response-{expert_name} - Model: opus (recommended)
- Core instructions:
- Read junior's discussion + other experts' summaries + own notes
- Respond to each question directed at them (150-300 words per response)
- Reference specific paper passages, engage with other expert's perspective
- Respond to Grand Questions from their domain expertise
- Be collegial but intellectually rigorous — disagree where warranted
📄 Full prompt template: See references/workflow.md → Phase 3
Wait for all Phase 3 agents to complete before proceeding.
6. Execute Phase 4 — Synthesis (Single Agent)
Spawn single agent with:
- Label:
synthesis - Model: opus (required — complex reasoning)
- Core instructions:
- Read ALL files from Phases 1-3
- Follow
assets/synthesis-template.mdstructure - Organize by THEME, not by paper or speaker
- Every claim attributed:
[Expert_A]/[Expert_B]/[Junior]+(PaperCode, §Section) - Include: Points of Consensus, Points of Disagreement, Open Questions
- Synthesize, don't summarize — find the intellectual threads
📄 Full prompt template: See references/workflow.md → Phase 4
7. Report Completion
List all generated files and provide a brief summary of the discussion themes.
Iteration and Follow-up
Deeper Discussion
If user wants experts to expand on specific points:
- Spawn new expert response agent(s) with targeted follow-up questions
- Re-run Phase 4 synthesis including the additional responses
Second Round
For a full second round (new questions, new responses):
- Rename Phase 2-4 outputs with round suffix (e.g.,
Chen_discussion_r1.md) - Re-run Phase 2 with instruction to build on previous round
- Continue through Phases 3-4
Recovery from Partial Run
If a phase fails:
- Check error handling in
references/workflow.md - Retry failed agent(s) individually
- Continue from last successful phase (outputs are saved incrementally)
File Naming Conventions
| File Type | Pattern | Example |
|---|---|---|
| Paper notes | {FirstAuthorLastName}{Year}_notes.md | Chen2024_notes.md |
| Expert summary | {ExpertLastName}_session_summary.md | Lin_session_summary.md |
| Junior discussion | {JuniorLastName}_discussion.md | Chen_discussion.md |
| Expert response | {ExpertLastName}_response_to_{JuniorLastName}.md | Lin_response_to_Chen.md |
| Synthesis | Integrated_Discussion_Summary.md | — |
Citation Requirements
Enforce in all agent prompts:
- Every factual claim must reference a paper
- Use format:
(AuthorYear, §Section)or(AuthorYear, p.X) - Direct quotes must include section/page
- Discussion claims must attribute speaker:
[Expert_A],[Expert_B],[Junior]
⚠️ Anti-Fabrication Rule (Critical)
Never fabricate citations. If an agent cannot find the exact passage in the source text:
- Leave the field blank or write
<!-- source not found --> - Do NOT paraphrase and present it as a quote
- Do NOT infer what the paper "probably says"
Fabricated citations are worse than missing citations — they corrupt the knowledge base silently. Accuracy > Coverage.
No Source = No Notes
If a paper has no PDF or markdown source available:
- Write a placeholder note with status
📭 未讀 - Leave all content sections blank
- Do NOT attempt to write notes from memory or web search results
Only write substantive notes when the actual source document is accessible.
Scaling Guidelines
| Papers | Experts | Batches | Estimated Time |
|---|---|---|---|
| 1-6 | 1 | 1 | 15-20 min |
| 7-12 | 2 | 2 | 20-30 min |
| 13-24 | 3-4 | 3-4 | 30-45 min |
| 25-50 | 4-8 | 5-8 | 45-90 min |
Customization
Custom Personas
Replace default personas by providing:
Expert A: Dr. [Name], [Role]. Background in [X].
Emphasizes [methodology/perspective]. Skeptical of [Y].
Tone: [collegial/rigorous/provocative].
Expert B: Dr. [Name], [Role]. Background in [X].
...
See references/default-personas.md for complete templates.
Language
Pass the language parameter when invoking the orchestration:
- All agent prompts include
Language: {language}instruction - Agents read papers and write outputs in the specified language
- Default: English
Example: "Run the reading group in Japanese" → adds Language: Japanese to all phase prompts.
Model Selection
Model choice significantly impacts output quality and cost:
| Configuration | Phases | Quality | Cost | Use When |
|---|---|---|---|---|
| Full opus | All phases use opus | Highest | $$$ | Publication-quality analysis, complex papers |
| Mixed | Phase 1: sonnet, Phases 2-4: opus | High | $$ | Good balance — reading is less reasoning-intensive |
| Budget | All phases use sonnet | Medium | $ | Quick exploration, simpler papers |
Recommendations:
- Phase 2 (Junior Discussion) benefits most from opus — requires synthesizing multiple papers and generating non-obvious questions
- Phase 4 (Synthesis) also benefits from opus — thematic organization requires complex reasoning
- Phase 1 (Reading) can use sonnet if papers aren't highly technical
- Phase 3 (Responses) can use sonnet if questions are straightforward
Integration
This skill is standalone but works well with paper collection workflows:
- literature-manager or similar skills: Use to gather and organize papers first, then pass the collection to virtual-reading-group
- PDF extraction tools: Pre-extract text from PDFs if agents have trouble reading them directly
References
references/workflow.md— Detailed phase specifications and full prompt templatesreferences/default-personas.md— Ready-to-use expert and junior researcher personasreferences/paper-notes-template.md— Template for individual paper notes
Assets
assets/synthesis-template.md— Structure for the final integrated discussion summary