@wentorai/research-plugins 1.2.3 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -8
- package/openclaw.plugin.json +10 -3
- package/package.json +2 -5
- package/skills/analysis/dataviz/SKILL.md +25 -0
- package/skills/analysis/dataviz/chart-image-generator/SKILL.md +1 -1
- package/skills/analysis/econometrics/SKILL.md +23 -0
- package/skills/analysis/econometrics/robustness-checks/SKILL.md +1 -1
- package/skills/analysis/statistics/SKILL.md +21 -0
- package/skills/analysis/statistics/data-anomaly-detection/SKILL.md +1 -1
- package/skills/analysis/statistics/ml-experiment-tracker/SKILL.md +1 -1
- package/skills/analysis/statistics/{senior-data-scientist-guide → modeling-strategy-guide}/SKILL.md +5 -5
- package/skills/analysis/wrangling/SKILL.md +21 -0
- package/skills/analysis/wrangling/csv-data-analyzer/SKILL.md +1 -1
- package/skills/analysis/wrangling/data-cog-guide/SKILL.md +1 -1
- package/skills/domains/ai-ml/SKILL.md +37 -0
- package/skills/domains/biomedical/SKILL.md +28 -0
- package/skills/domains/biomedical/genomas-guide/SKILL.md +1 -1
- package/skills/domains/biomedical/med-researcher-guide/SKILL.md +1 -1
- package/skills/domains/biomedical/medgeclaw-guide/SKILL.md +1 -1
- package/skills/domains/business/SKILL.md +17 -0
- package/skills/domains/business/architecture-design-guide/SKILL.md +1 -1
- package/skills/domains/chemistry/SKILL.md +19 -0
- package/skills/domains/chemistry/computational-chemistry-guide/SKILL.md +1 -1
- package/skills/domains/cs/SKILL.md +21 -0
- package/skills/domains/ecology/SKILL.md +16 -0
- package/skills/domains/economics/SKILL.md +20 -0
- package/skills/domains/economics/post-labor-economics/SKILL.md +1 -1
- package/skills/domains/economics/pricing-psychology-guide/SKILL.md +1 -1
- package/skills/domains/education/SKILL.md +19 -0
- package/skills/domains/education/academic-study-methods/SKILL.md +1 -1
- package/skills/domains/education/edumcp-guide/SKILL.md +1 -1
- package/skills/domains/finance/SKILL.md +19 -0
- package/skills/domains/finance/akshare-finance-data/SKILL.md +1 -1
- package/skills/domains/finance/options-analytics-agent-guide/SKILL.md +1 -1
- package/skills/domains/finance/stata-accounting-research/SKILL.md +1 -1
- package/skills/domains/geoscience/SKILL.md +17 -0
- package/skills/domains/humanities/SKILL.md +16 -0
- package/skills/domains/humanities/history-research-guide/SKILL.md +1 -1
- package/skills/domains/humanities/political-history-guide/SKILL.md +1 -1
- package/skills/domains/law/SKILL.md +19 -0
- package/skills/domains/math/SKILL.md +17 -0
- package/skills/domains/pharma/SKILL.md +17 -0
- package/skills/domains/physics/SKILL.md +16 -0
- package/skills/domains/social-science/SKILL.md +17 -0
- package/skills/domains/social-science/sociology-research-methods/SKILL.md +1 -1
- package/skills/literature/discovery/SKILL.md +20 -0
- package/skills/literature/discovery/paper-recommendation-guide/SKILL.md +1 -1
- package/skills/literature/discovery/semantic-paper-radar/SKILL.md +1 -1
- package/skills/literature/fulltext/SKILL.md +26 -0
- package/skills/literature/metadata/SKILL.md +35 -0
- package/skills/literature/metadata/doi-content-negotiation/SKILL.md +4 -0
- package/skills/literature/metadata/doi-resolution-guide/SKILL.md +4 -0
- package/skills/literature/metadata/orcid-api/SKILL.md +4 -0
- package/skills/literature/metadata/orcid-integration-guide/SKILL.md +4 -0
- package/skills/literature/search/SKILL.md +43 -0
- package/skills/literature/search/paper-search-mcp-guide/SKILL.md +1 -1
- package/skills/research/automation/SKILL.md +21 -0
- package/skills/research/deep-research/SKILL.md +24 -0
- package/skills/research/deep-research/auto-deep-research-guide/SKILL.md +1 -1
- package/skills/research/deep-research/in-depth-research-guide/SKILL.md +1 -1
- package/skills/research/funding/SKILL.md +20 -0
- package/skills/research/methodology/SKILL.md +24 -0
- package/skills/research/paper-review/SKILL.md +19 -0
- package/skills/research/paper-review/paper-critique-framework/SKILL.md +1 -1
- package/skills/tools/code-exec/SKILL.md +18 -0
- package/skills/tools/diagram/SKILL.md +20 -0
- package/skills/tools/document/SKILL.md +21 -0
- package/skills/tools/knowledge-graph/SKILL.md +21 -0
- package/skills/tools/ocr-translate/SKILL.md +18 -0
- package/skills/tools/ocr-translate/handwriting-recognition-guide/SKILL.md +2 -0
- package/skills/tools/ocr-translate/latex-ocr-guide/SKILL.md +2 -0
- package/skills/tools/scraping/SKILL.md +17 -0
- package/skills/writing/citation/SKILL.md +33 -0
- package/skills/writing/citation/zotfile-attachment-guide/SKILL.md +2 -0
- package/skills/writing/composition/SKILL.md +22 -0
- package/skills/writing/composition/research-paper-writer/SKILL.md +1 -1
- package/skills/writing/composition/scientific-writing-wrapper/SKILL.md +1 -1
- package/skills/writing/latex/SKILL.md +22 -0
- package/skills/writing/latex/academic-writing-latex/SKILL.md +1 -1
- package/skills/writing/latex/latex-drawing-guide/SKILL.md +1 -1
- package/skills/writing/polish/SKILL.md +20 -0
- package/skills/writing/polish/chinese-text-humanizer/SKILL.md +1 -1
- package/skills/writing/templates/SKILL.md +22 -0
- package/skills/writing/templates/beamer-presentation-guide/SKILL.md +1 -1
- package/skills/writing/templates/scientific-article-pdf/SKILL.md +1 -1
- package/skills/analysis/dataviz/citation-map-guide/SKILL.md +0 -184
- package/skills/analysis/dataviz/data-visualization-principles/SKILL.md +0 -171
- package/skills/analysis/econometrics/empirical-paper-analysis/SKILL.md +0 -192
- package/skills/analysis/econometrics/panel-data-regression-workflow/SKILL.md +0 -267
- package/skills/analysis/econometrics/stata-regression/SKILL.md +0 -117
- package/skills/analysis/statistics/general-statistics-guide/SKILL.md +0 -226
- package/skills/analysis/statistics/infiagent-benchmark-guide/SKILL.md +0 -106
- package/skills/analysis/statistics/pywayne-statistics-guide/SKILL.md +0 -192
- package/skills/analysis/statistics/quantitative-methods-guide/SKILL.md +0 -193
- package/skills/analysis/wrangling/claude-data-analysis-guide/SKILL.md +0 -100
- package/skills/analysis/wrangling/open-data-scientist-guide/SKILL.md +0 -197
- package/skills/domains/ai-ml/annotated-dl-papers-guide/SKILL.md +0 -159
- package/skills/domains/humanities/digital-humanities-methods/SKILL.md +0 -232
- package/skills/domains/law/legal-research-methods/SKILL.md +0 -190
- package/skills/domains/social-science/sociology-research-guide/SKILL.md +0 -238
- package/skills/literature/discovery/arxiv-paper-monitoring/SKILL.md +0 -233
- package/skills/literature/discovery/paper-tracking-guide/SKILL.md +0 -211
- package/skills/literature/fulltext/zotero-scihub-guide/SKILL.md +0 -168
- package/skills/literature/search/arxiv-osiris/SKILL.md +0 -199
- package/skills/literature/search/deepgit-search-guide/SKILL.md +0 -147
- package/skills/literature/search/multi-database-literature-search/SKILL.md +0 -198
- package/skills/literature/search/papers-chat-guide/SKILL.md +0 -194
- package/skills/literature/search/pasa-paper-search-guide/SKILL.md +0 -138
- package/skills/literature/search/scientify-literature-survey/SKILL.md +0 -203
- package/skills/research/automation/ai-scientist-guide/SKILL.md +0 -228
- package/skills/research/automation/coexist-ai-guide/SKILL.md +0 -149
- package/skills/research/automation/foam-agent-guide/SKILL.md +0 -203
- package/skills/research/automation/research-paper-orchestrator/SKILL.md +0 -254
- package/skills/research/deep-research/academic-deep-research/SKILL.md +0 -190
- package/skills/research/deep-research/cognitive-kernel-guide/SKILL.md +0 -200
- package/skills/research/deep-research/corvus-research-guide/SKILL.md +0 -132
- package/skills/research/deep-research/deep-research-pro/SKILL.md +0 -213
- package/skills/research/deep-research/deep-research-work/SKILL.md +0 -204
- package/skills/research/deep-research/research-cog/SKILL.md +0 -153
- package/skills/research/methodology/academic-mentor-guide/SKILL.md +0 -169
- package/skills/research/methodology/deep-innovator-guide/SKILL.md +0 -242
- package/skills/research/methodology/research-pipeline-units-guide/SKILL.md +0 -169
- package/skills/research/paper-review/paper-compare-guide/SKILL.md +0 -238
- package/skills/research/paper-review/paper-digest-guide/SKILL.md +0 -240
- package/skills/research/paper-review/paper-research-assistant/SKILL.md +0 -231
- package/skills/research/paper-review/research-quality-filter/SKILL.md +0 -261
- package/skills/tools/code-exec/contextplus-mcp-guide/SKILL.md +0 -110
- package/skills/tools/diagram/clawphd-guide/SKILL.md +0 -149
- package/skills/tools/diagram/scientific-graphical-abstract/SKILL.md +0 -201
- package/skills/tools/document/md2pdf-xelatex/SKILL.md +0 -212
- package/skills/tools/document/openpaper-guide/SKILL.md +0 -232
- package/skills/tools/document/qq-connect/SKILL.md +0 -227
- package/skills/tools/document/weknora-guide/SKILL.md +0 -216
- package/skills/tools/knowledge-graph/mimir-memory-guide/SKILL.md +0 -135
- package/skills/tools/knowledge-graph/open-webui-tools-guide/SKILL.md +0 -156
- package/skills/tools/ocr-translate/formula-recognition-guide/SKILL.md +0 -367
- package/skills/tools/ocr-translate/math-equation-renderer/SKILL.md +0 -198
- package/skills/tools/scraping/api-data-collection-guide/SKILL.md +0 -301
- package/skills/writing/citation/academic-citation-manager-guide/SKILL.md +0 -182
- package/skills/writing/composition/opendraft-thesis-guide/SKILL.md +0 -200
- package/skills/writing/composition/paper-debugger-guide/SKILL.md +0 -143
- package/skills/writing/composition/paperforge-guide/SKILL.md +0 -205
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: research-pipeline-units-guide
|
|
3
|
-
description: "Evidence-first semantic research pipeline methodology"
|
|
4
|
-
metadata:
|
|
5
|
-
openclaw:
|
|
6
|
-
emoji: "🔬"
|
|
7
|
-
category: "research"
|
|
8
|
-
subcategory: "methodology"
|
|
9
|
-
keywords: ["research pipeline", "evidence-first", "semantic units", "methodology", "research workflow", "structured inquiry"]
|
|
10
|
-
source: "https://github.com/WILLOSCAR/research-units-pipeline-skills"
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# Research Pipeline Units Guide
|
|
14
|
-
|
|
15
|
-
## Overview
|
|
16
|
-
|
|
17
|
-
Research Pipeline Units is a methodology for structuring research as composable, evidence-first semantic units. Instead of monolithic literature reviews, it decomposes research into atomic claims, evidence units, and reasoning chains that can be independently verified, combined, and reused. Each unit has clear provenance, confidence levels, and connections to other units. Suited for systematic reviews and evidence synthesis.
|
|
18
|
-
|
|
19
|
-
## Core Concepts
|
|
20
|
-
|
|
21
|
-
```
|
|
22
|
-
Research Pipeline
|
|
23
|
-
├── Claim Unit
|
|
24
|
-
│ ├── Statement (falsifiable assertion)
|
|
25
|
-
│ ├── Evidence (supporting sources)
|
|
26
|
-
│ ├── Confidence (high/medium/low)
|
|
27
|
-
│ └── Counter-evidence (opposing sources)
|
|
28
|
-
├── Evidence Unit
|
|
29
|
-
│ ├── Source (paper, dataset, experiment)
|
|
30
|
-
│ ├── Extraction (quote, data point, figure)
|
|
31
|
-
│ ├── Quality (study design, bias risk)
|
|
32
|
-
│ └── Relevance (to claim)
|
|
33
|
-
├── Reasoning Chain
|
|
34
|
-
│ ├── Premises (claim units)
|
|
35
|
-
│ ├── Logic (deductive, inductive, abductive)
|
|
36
|
-
│ └── Conclusion (derived claim)
|
|
37
|
-
└── Knowledge Map
|
|
38
|
-
├── Clusters (related claims)
|
|
39
|
-
├── Contradictions (conflicting evidence)
|
|
40
|
-
└── Gaps (missing evidence)
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
## Building Claim Units
|
|
44
|
-
|
|
45
|
-
```python
|
|
46
|
-
from research_units import ClaimUnit, EvidenceUnit
|
|
47
|
-
|
|
48
|
-
# Create an evidence-backed claim
|
|
49
|
-
claim = ClaimUnit(
|
|
50
|
-
statement="Retrieval-augmented generation reduces "
|
|
51
|
-
"hallucination in LLMs by 40-60%",
|
|
52
|
-
confidence="medium",
|
|
53
|
-
evidence=[
|
|
54
|
-
EvidenceUnit(
|
|
55
|
-
source="Lewis et al., 2020",
|
|
56
|
-
doi="10.48550/arXiv.2005.11401",
|
|
57
|
-
extraction="RAG reduces factual errors by 43% "
|
|
58
|
-
"on Natural Questions",
|
|
59
|
-
quality="high", # Peer-reviewed, strong methodology
|
|
60
|
-
),
|
|
61
|
-
EvidenceUnit(
|
|
62
|
-
source="Shuster et al., 2021",
|
|
63
|
-
doi="10.48550/arXiv.2104.07567",
|
|
64
|
-
extraction="Knowledge-grounded dialogue 54% fewer "
|
|
65
|
-
"hallucinated facts",
|
|
66
|
-
quality="medium",
|
|
67
|
-
),
|
|
68
|
-
],
|
|
69
|
-
counter_evidence=[
|
|
70
|
-
EvidenceUnit(
|
|
71
|
-
source="Mallen et al., 2023",
|
|
72
|
-
extraction="RAG helps less for popular knowledge "
|
|
73
|
-
"that LLMs already encode",
|
|
74
|
-
quality="high",
|
|
75
|
-
),
|
|
76
|
-
],
|
|
77
|
-
)
|
|
78
|
-
|
|
79
|
-
print(f"Claim: {claim.statement}")
|
|
80
|
-
print(f"Confidence: {claim.confidence}")
|
|
81
|
-
print(f"Supporting: {len(claim.evidence)} sources")
|
|
82
|
-
print(f"Opposing: {len(claim.counter_evidence)} sources")
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
## Reasoning Chains
|
|
86
|
-
|
|
87
|
-
```python
|
|
88
|
-
from research_units import ReasoningChain
|
|
89
|
-
|
|
90
|
-
chain = ReasoningChain(
|
|
91
|
-
premises=[
|
|
92
|
-
ClaimUnit("RAG reduces hallucination (Lewis 2020)"),
|
|
93
|
-
ClaimUnit("Knowledge conflicts degrade RAG quality "
|
|
94
|
-
"(Chen 2022)"),
|
|
95
|
-
ClaimUnit("Adaptive retrieval mitigates conflicts "
|
|
96
|
-
"(Jiang 2023)"),
|
|
97
|
-
],
|
|
98
|
-
logic="inductive",
|
|
99
|
-
conclusion=ClaimUnit(
|
|
100
|
-
statement="Adaptive retrieval-augmented generation "
|
|
101
|
-
"with conflict resolution is the most "
|
|
102
|
-
"promising approach to LLM factuality",
|
|
103
|
-
confidence="medium",
|
|
104
|
-
),
|
|
105
|
-
)
|
|
106
|
-
|
|
107
|
-
# Validate chain
|
|
108
|
-
validation = chain.validate()
|
|
109
|
-
print(f"Valid: {validation.is_valid}")
|
|
110
|
-
print(f"Gaps: {validation.gaps}")
|
|
111
|
-
print(f"Strength: {validation.strength}")
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
## Knowledge Maps
|
|
115
|
-
|
|
116
|
-
```python
|
|
117
|
-
from research_units import KnowledgeMap
|
|
118
|
-
|
|
119
|
-
kmap = KnowledgeMap("RAG for Factuality")
|
|
120
|
-
|
|
121
|
-
# Add clusters of related claims
|
|
122
|
-
kmap.add_cluster("retrieval_methods", [claim1, claim2, claim3])
|
|
123
|
-
kmap.add_cluster("conflict_resolution", [claim4, claim5])
|
|
124
|
-
kmap.add_cluster("evaluation", [claim6, claim7])
|
|
125
|
-
|
|
126
|
-
# Identify contradictions
|
|
127
|
-
contradictions = kmap.find_contradictions()
|
|
128
|
-
for c in contradictions:
|
|
129
|
-
print(f"Conflict: {c.claim_a.statement[:50]}...")
|
|
130
|
-
print(f" vs: {c.claim_b.statement[:50]}...")
|
|
131
|
-
print(f" Resolution: {c.suggested_resolution}")
|
|
132
|
-
|
|
133
|
-
# Identify gaps
|
|
134
|
-
gaps = kmap.find_gaps()
|
|
135
|
-
for g in gaps:
|
|
136
|
-
print(f"Gap: {g.description}")
|
|
137
|
-
print(f" Between: {g.cluster_a} ↔ {g.cluster_b}")
|
|
138
|
-
print(f" Suggested research: {g.suggestion}")
|
|
139
|
-
|
|
140
|
-
# Export
|
|
141
|
-
kmap.export("knowledge_map.json")
|
|
142
|
-
kmap.visualize("knowledge_map.html")
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
## Pipeline Workflow
|
|
146
|
-
|
|
147
|
-
```markdown
|
|
148
|
-
### Step-by-Step Research Pipeline
|
|
149
|
-
1. **Define scope**: Research question → decomposed sub-questions
|
|
150
|
-
2. **Search**: Literature search per sub-question
|
|
151
|
-
3. **Extract**: Create evidence units from each paper
|
|
152
|
-
4. **Claim**: Formulate claims supported by evidence
|
|
153
|
-
5. **Chain**: Build reasoning chains linking claims
|
|
154
|
-
6. **Map**: Assemble knowledge map showing landscape
|
|
155
|
-
7. **Synthesize**: Write narrative from structured units
|
|
156
|
-
8. **Validate**: Peer review individual units + chains
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
## Use Cases
|
|
160
|
-
|
|
161
|
-
1. **Systematic reviews**: Structured evidence synthesis
|
|
162
|
-
2. **Research proposals**: Evidence-backed argument construction
|
|
163
|
-
3. **Collaborative research**: Shared, verifiable claim units
|
|
164
|
-
4. **Teaching**: Demonstrate evidence-based reasoning
|
|
165
|
-
5. **Knowledge management**: Reusable research building blocks
|
|
166
|
-
|
|
167
|
-
## References
|
|
168
|
-
|
|
169
|
-
- [research-units-pipeline-skills](https://github.com/WILLOSCAR/research-units-pipeline-skills)
|
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: paper-compare-guide
|
|
3
|
-
description: "Compare research papers side-by-side on methodology and findings"
|
|
4
|
-
metadata:
|
|
5
|
-
openclaw:
|
|
6
|
-
emoji: "⚖️"
|
|
7
|
-
category: "research"
|
|
8
|
-
subcategory: "paper-review"
|
|
9
|
-
keywords: ["paper comparison", "side-by-side analysis", "methodology comparison", "research synthesis", "critical analysis"]
|
|
10
|
-
source: "https://github.com/AcademicSkills/paper-compare-guide"
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# Paper Compare Guide
|
|
14
|
-
|
|
15
|
-
A skill for conducting structured side-by-side comparisons of research papers. Extracts and aligns key dimensions across papers including research questions, methodologies, datasets, results, and conclusions, producing comparison matrices and synthesis narratives that highlight agreements, contradictions, and complementary contributions.
|
|
16
|
-
|
|
17
|
-
## Overview
|
|
18
|
-
|
|
19
|
-
Comparing multiple papers on the same topic is a fundamental task in academic research, required for literature reviews, related work sections, research gap identification, and method selection. However, ad hoc comparisons often miss important dimensions or apply inconsistent criteria across papers. This skill provides a systematic framework that ensures comprehensive, fair comparisons by defining comparison dimensions upfront and extracting standardized data from each paper.
|
|
20
|
-
|
|
21
|
-
The approach works for comparing 2-10 papers and produces two types of output: a structured comparison matrix (tabular, suitable for inclusion in papers) and a narrative synthesis (prose, suitable for literature review sections). It handles comparisons across papers that address the same question with different methods, papers that use the same method on different data, and papers that reach conflicting conclusions about the same phenomenon.
|
|
22
|
-
|
|
23
|
-
## Comparison Framework
|
|
24
|
-
|
|
25
|
-
### Defining Comparison Dimensions
|
|
26
|
-
|
|
27
|
-
Before reading the papers, define the dimensions you will compare:
|
|
28
|
-
|
|
29
|
-
```python
|
|
30
|
-
COMPARISON_DIMENSIONS = {
|
|
31
|
-
'basic': {
|
|
32
|
-
'title': str,
|
|
33
|
-
'authors': list,
|
|
34
|
-
'year': int,
|
|
35
|
-
'venue': str,
|
|
36
|
-
'citation_count': int,
|
|
37
|
-
},
|
|
38
|
-
'research_design': {
|
|
39
|
-
'research_question': str,
|
|
40
|
-
'hypothesis': str,
|
|
41
|
-
'study_type': str, # RCT, observational, simulation, etc.
|
|
42
|
-
'theoretical_framework': str,
|
|
43
|
-
},
|
|
44
|
-
'methodology': {
|
|
45
|
-
'data_source': str,
|
|
46
|
-
'sample_size': str,
|
|
47
|
-
'sampling_method': str,
|
|
48
|
-
'variables': {
|
|
49
|
-
'independent': list,
|
|
50
|
-
'dependent': list,
|
|
51
|
-
'control': list,
|
|
52
|
-
},
|
|
53
|
-
'analysis_method': str,
|
|
54
|
-
'tools_used': list,
|
|
55
|
-
},
|
|
56
|
-
'results': {
|
|
57
|
-
'main_finding': str,
|
|
58
|
-
'effect_size': str,
|
|
59
|
-
'statistical_significance': str,
|
|
60
|
-
'secondary_findings': list,
|
|
61
|
-
},
|
|
62
|
-
'quality': {
|
|
63
|
-
'strengths': list,
|
|
64
|
-
'limitations': list,
|
|
65
|
-
'reproducibility': str, # high, medium, low
|
|
66
|
-
'generalizability': str,
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### Extraction Protocol
|
|
72
|
-
|
|
73
|
-
For each paper, systematically extract data for every dimension:
|
|
74
|
-
|
|
75
|
-
```
|
|
76
|
-
Paper A: Smith et al. (2024)
|
|
77
|
-
research_question: "Does intervention X improve outcome Y in population Z?"
|
|
78
|
-
study_type: "Randomized controlled trial"
|
|
79
|
-
sample_size: "n=200 (100 treatment, 100 control)"
|
|
80
|
-
analysis_method: "Mixed-effects logistic regression"
|
|
81
|
-
main_finding: "Intervention X improved Y by 23% (OR=1.45, 95% CI [1.12, 1.88])"
|
|
82
|
-
limitations: ["Single-site study", "Short follow-up (6 months)"]
|
|
83
|
-
|
|
84
|
-
Paper B: Jones et al. (2025)
|
|
85
|
-
research_question: "What is the effect of intervention X on outcome Y?"
|
|
86
|
-
study_type: "Quasi-experimental (pre-post with control group)"
|
|
87
|
-
sample_size: "n=350 (200 treatment, 150 control)"
|
|
88
|
-
analysis_method: "Difference-in-differences regression"
|
|
89
|
-
main_finding: "Intervention X improved Y by 18% (beta=0.18, p<0.01)"
|
|
90
|
-
limitations: ["Non-random assignment", "Potential selection bias"]
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
## Comparison Matrix Generation
|
|
94
|
-
|
|
95
|
-
### Tabular Comparison
|
|
96
|
-
|
|
97
|
-
| Dimension | Smith et al. (2024) | Jones et al. (2025) | Chen et al. (2025) |
|
|
98
|
-
|-----------|-------------------|-------------------|--------------------|
|
|
99
|
-
| **Study type** | RCT | Quasi-experimental | Observational cohort |
|
|
100
|
-
| **Sample size** | n=200 | n=350 | n=1,200 |
|
|
101
|
-
| **Population** | University students | Working adults | General population |
|
|
102
|
-
| **Intervention** | X (standardized) | X (adapted version) | X (self-selected) |
|
|
103
|
-
| **Primary outcome** | Y (binary) | Y (continuous) | Y (composite score) |
|
|
104
|
-
| **Main effect** | OR=1.45 | beta=0.18 | HR=1.32 |
|
|
105
|
-
| **Significant?** | Yes (p=.003) | Yes (p<.01) | Yes (p=.02) |
|
|
106
|
-
| **Follow-up** | 6 months | 12 months | 24 months |
|
|
107
|
-
| **Key limitation** | Single-site | Non-random | Self-selection |
|
|
108
|
-
| **Code available** | Yes (GitHub) | No | Data only (Zenodo) |
|
|
109
|
-
|
|
110
|
-
### Automated Matrix Builder
|
|
111
|
-
|
|
112
|
-
```python
|
|
113
|
-
import pandas as pd
|
|
114
|
-
|
|
115
|
-
def build_comparison_matrix(papers: list, dimensions: list) -> pd.DataFrame:
|
|
116
|
-
"""
|
|
117
|
-
Build a comparison matrix from extracted paper data.
|
|
118
|
-
|
|
119
|
-
Args:
|
|
120
|
-
papers: List of dicts, each containing extracted dimensions
|
|
121
|
-
dimensions: List of dimension keys to include in the matrix
|
|
122
|
-
"""
|
|
123
|
-
matrix = {}
|
|
124
|
-
for paper in papers:
|
|
125
|
-
label = f"{paper['authors'][0].split()[-1]} et al. ({paper['year']})"
|
|
126
|
-
matrix[label] = {}
|
|
127
|
-
for dim in dimensions:
|
|
128
|
-
value = paper.get(dim, 'Not reported')
|
|
129
|
-
if isinstance(value, list):
|
|
130
|
-
value = '; '.join(str(v) for v in value)
|
|
131
|
-
matrix[label][dim] = value
|
|
132
|
-
|
|
133
|
-
df = pd.DataFrame(matrix).T
|
|
134
|
-
return df
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
## Synthesis Narratives
|
|
138
|
-
|
|
139
|
-
### Agreement Synthesis
|
|
140
|
-
|
|
141
|
-
When papers agree on a finding:
|
|
142
|
-
|
|
143
|
-
```
|
|
144
|
-
Template:
|
|
145
|
-
"Multiple studies converge on the finding that [finding]. [Author A] (year)
|
|
146
|
-
demonstrated this using [method A] with [sample A], finding [specific result].
|
|
147
|
-
This was corroborated by [Author B] (year) using [different method/sample],
|
|
148
|
-
who reported [similar result]. The consistency across [different methods/
|
|
149
|
-
populations/contexts] strengthens confidence in this finding."
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
### Contradiction Synthesis
|
|
153
|
-
|
|
154
|
-
When papers disagree:
|
|
155
|
-
|
|
156
|
-
```
|
|
157
|
-
Template:
|
|
158
|
-
"The evidence on [topic] is mixed. [Author A] (year) found [finding A]
|
|
159
|
-
using [method], while [Author B] (year) reported [contradictory finding B].
|
|
160
|
-
Several factors may explain this discrepancy: (1) [methodological difference],
|
|
161
|
-
(2) [population difference], (3) [measurement difference]. Further research
|
|
162
|
-
using [suggested approach] is needed to resolve this inconsistency."
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
### Complementary Synthesis
|
|
166
|
-
|
|
167
|
-
When papers address different aspects of the same topic:
|
|
168
|
-
|
|
169
|
-
```
|
|
170
|
-
Template:
|
|
171
|
-
"The studies contribute complementary evidence on [topic]. [Author A] (year)
|
|
172
|
-
addressed [aspect 1] by [method], establishing that [finding]. Building on
|
|
173
|
-
this, [Author B] (year) examined [aspect 2] and found [finding]. Together,
|
|
174
|
-
these studies suggest that [integrated conclusion], though [gap] remains
|
|
175
|
-
unaddressed."
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
## Advanced Comparison Techniques
|
|
179
|
-
|
|
180
|
-
### Methodological Quality Comparison
|
|
181
|
-
|
|
182
|
-
Apply a standardized quality assessment tool to all papers:
|
|
183
|
-
|
|
184
|
-
| Quality Criterion | Paper A | Paper B | Paper C |
|
|
185
|
-
|------------------|---------|---------|---------|
|
|
186
|
-
| Clear research question | Yes | Yes | Partially |
|
|
187
|
-
| Appropriate design | Yes | Mostly | Yes |
|
|
188
|
-
| Adequate sample size | No (underpowered) | Yes | Yes |
|
|
189
|
-
| Valid measurement | Yes | Yes | Questionable |
|
|
190
|
-
| Controls for confounders | Yes | Partially | No |
|
|
191
|
-
| Appropriate analysis | Yes | Yes | Yes |
|
|
192
|
-
| Effect size reported | Yes | No | Yes |
|
|
193
|
-
| Limitations discussed | Yes | Yes | Minimal |
|
|
194
|
-
| **Overall quality** | **High** | **Medium** | **Medium** |
|
|
195
|
-
|
|
196
|
-
### Visualizing Paper Relationships
|
|
197
|
-
|
|
198
|
-
```
|
|
199
|
-
Conceptual Map:
|
|
200
|
-
|
|
201
|
-
Smith (2024) ──agrees──→ Jones (2025)
|
|
202
|
-
│ │
|
|
203
|
-
│ │
|
|
204
|
-
extends contradicts
|
|
205
|
-
│ │
|
|
206
|
-
↓ ↓
|
|
207
|
-
Lee (2023) Chen (2025)
|
|
208
|
-
│
|
|
209
|
-
replicates
|
|
210
|
-
│
|
|
211
|
-
↓
|
|
212
|
-
Park (2022) [foundational study]
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
## Output Formats
|
|
216
|
-
|
|
217
|
-
The comparison can be output in several formats depending on the use case:
|
|
218
|
-
|
|
219
|
-
1. **Comparison table**: For inclusion in a paper's related work section or supplementary materials.
|
|
220
|
-
2. **Narrative synthesis**: For the body of a literature review chapter.
|
|
221
|
-
3. **Gap analysis**: For identifying your own research contribution.
|
|
222
|
-
4. **Presentation slide**: A single-slide summary for lab meetings or conference talks.
|
|
223
|
-
5. **Decision matrix**: For choosing which method to adopt in your own research.
|
|
224
|
-
|
|
225
|
-
## Best Practices
|
|
226
|
-
|
|
227
|
-
- Define comparison dimensions before reading the papers to avoid post hoc cherry-picking.
|
|
228
|
-
- Compare no more than 8-10 papers in a single matrix; beyond that, group papers by theme.
|
|
229
|
-
- Always note when a dimension is "not reported" rather than leaving it blank.
|
|
230
|
-
- Be fair: apply the same critical lens to all papers, including those you agree with.
|
|
231
|
-
- When results conflict, investigate whether the conflict is real (different findings) or apparent (different operationalizations of the same concept).
|
|
232
|
-
- Include both quantitative comparisons (effect sizes, sample sizes) and qualitative assessments (strengths, limitations).
|
|
233
|
-
|
|
234
|
-
## References
|
|
235
|
-
|
|
236
|
-
- Snyder, H. (2019). Literature Review as a Research Methodology. *Journal of Business Research*, 104, 333-339.
|
|
237
|
-
- Templier, M. & Pare, G. (2015). A Framework for Guiding and Evaluating Literature Reviews. *Communications of the AIS*, 37, 112-137.
|
|
238
|
-
- Webster, J. & Watson, R. T. (2002). Analyzing the Past to Prepare for the Future: Writing a Literature Review. *MIS Quarterly*, 26(2), xiii-xxiii.
|
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: paper-digest-guide
|
|
3
|
-
description: "Fetch paper and spawn sub-agents to read citations recursively"
|
|
4
|
-
metadata:
|
|
5
|
-
openclaw:
|
|
6
|
-
emoji: "🔗"
|
|
7
|
-
category: "research"
|
|
8
|
-
subcategory: "paper-review"
|
|
9
|
-
keywords: ["citation analysis", "recursive reading", "paper digestion", "citation graph", "reference mining", "snowball search"]
|
|
10
|
-
source: "https://github.com/AcademicSkills/paper-digest-guide"
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# Paper Digest Guide
|
|
14
|
-
|
|
15
|
-
A skill for deeply digesting academic papers by recursively following and analyzing their citation networks. Starting from a seed paper, it spawns sub-tasks to read the most important cited references, extracts the intellectual lineage of key claims, and builds a citation-aware knowledge graph that shows how ideas developed and where the research frontier stands.
|
|
16
|
-
|
|
17
|
-
## Overview
|
|
18
|
-
|
|
19
|
-
A single paper rarely tells the full story. Key claims rest on cited evidence, methodologies build on prior work, and the significance of findings depends on what came before. The Paper Digest approach addresses this by not just reading a paper but also selectively reading its most important references, and optionally their references, building a multi-level understanding of the intellectual context. This process, often called "citation snowballing" or "reference mining," is one of the most effective ways to deeply understand a research area.
|
|
20
|
-
|
|
21
|
-
The skill implements a controlled recursive reading strategy with configurable depth (typically 1-2 levels) and breadth (top 5-10 most relevant citations per paper). It produces a citation knowledge graph annotating each reference with its role in the seed paper's argument, along with a synthesis report that traces the evolution of key ideas.
|
|
22
|
-
|
|
23
|
-
## Citation Digestion Pipeline
|
|
24
|
-
|
|
25
|
-
### Pipeline Architecture
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
Seed Paper
|
|
29
|
-
│
|
|
30
|
-
├── Parse references (extract all citations)
|
|
31
|
-
│
|
|
32
|
-
├── Classify citation role for each reference
|
|
33
|
-
│ ├── Foundational (key theory/framework the paper builds on)
|
|
34
|
-
│ ├── Methodological (method the paper adopts/adapts)
|
|
35
|
-
│ ├── Empirical (prior findings the paper extends)
|
|
36
|
-
│ ├── Contrasting (work the paper disagrees with)
|
|
37
|
-
│ └── Peripheral (background/context, low priority)
|
|
38
|
-
│
|
|
39
|
-
├── Prioritize: rank by role importance + citation count
|
|
40
|
-
│
|
|
41
|
-
├── Spawn sub-reads for top-N references
|
|
42
|
-
│ ├── Sub-read 1: [Foundational paper] → structured summary
|
|
43
|
-
│ ├── Sub-read 2: [Key method paper] → structured summary
|
|
44
|
-
│ ├── Sub-read 3: [Contrasting paper] → structured summary
|
|
45
|
-
│ └── ...
|
|
46
|
-
│
|
|
47
|
-
├── (Optional) Depth 2: repeat for sub-read citations
|
|
48
|
-
│
|
|
49
|
-
└── Synthesize: build citation knowledge graph + narrative
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### Citation Role Classification
|
|
53
|
-
|
|
54
|
-
```python
|
|
55
|
-
def classify_citation_role(citation_context: str, paper_section: str) -> str:
|
|
56
|
-
"""
|
|
57
|
-
Classify the role of a citation based on its context in the paper.
|
|
58
|
-
|
|
59
|
-
Args:
|
|
60
|
-
citation_context: The sentence(s) containing the citation
|
|
61
|
-
paper_section: Which section the citation appears in
|
|
62
|
-
"""
|
|
63
|
-
# Heuristic classification based on section and language
|
|
64
|
-
role_indicators = {
|
|
65
|
-
'foundational': {
|
|
66
|
-
'sections': ['introduction', 'background', 'related work'],
|
|
67
|
-
'phrases': ['builds on', 'based on', 'following', 'framework of',
|
|
68
|
-
'theory proposed by', 'seminal work']
|
|
69
|
-
},
|
|
70
|
-
'methodological': {
|
|
71
|
-
'sections': ['methods', 'methodology', 'approach'],
|
|
72
|
-
'phrases': ['we adopt', 'following the approach of', 'using the method',
|
|
73
|
-
'as proposed by', 'we extend the method']
|
|
74
|
-
},
|
|
75
|
-
'empirical': {
|
|
76
|
-
'sections': ['introduction', 'results', 'discussion'],
|
|
77
|
-
'phrases': ['found that', 'showed that', 'demonstrated',
|
|
78
|
-
'reported', 'consistent with', 'prior studies']
|
|
79
|
-
},
|
|
80
|
-
'contrasting': {
|
|
81
|
-
'sections': ['introduction', 'related work', 'discussion'],
|
|
82
|
-
'phrases': ['unlike', 'in contrast to', 'however', 'whereas',
|
|
83
|
-
'disagree', 'limitations of', 'fails to']
|
|
84
|
-
},
|
|
85
|
-
'peripheral': {
|
|
86
|
-
'sections': ['introduction'],
|
|
87
|
-
'phrases': ['for example', 'such as', 'see also', 'e.g.',
|
|
88
|
-
'for a review see', 'has been studied']
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
for role, indicators in role_indicators.items():
|
|
93
|
-
section_match = paper_section.lower() in [s.lower() for s in indicators['sections']]
|
|
94
|
-
phrase_match = any(p in citation_context.lower() for p in indicators['phrases'])
|
|
95
|
-
if section_match and phrase_match:
|
|
96
|
-
return role
|
|
97
|
-
|
|
98
|
-
return 'peripheral' # default
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
## Citation Priority Ranking
|
|
102
|
-
|
|
103
|
-
### Prioritization Criteria
|
|
104
|
-
|
|
105
|
-
| Criterion | Weight | Rationale |
|
|
106
|
-
|-----------|--------|-----------|
|
|
107
|
-
| Citation role: foundational | 5 | Must understand to grasp the paper |
|
|
108
|
-
| Citation role: contrasting | 4 | Shows alternative perspectives |
|
|
109
|
-
| Citation role: methodological | 4 | Needed to evaluate the approach |
|
|
110
|
-
| Citation role: empirical | 3 | Supports key claims |
|
|
111
|
-
| Cited multiple times in paper | +2 | Indicates higher importance |
|
|
112
|
-
| High citation count (>100) | +1 | Widely recognized work |
|
|
113
|
-
| Recent (<3 years old) | +1 | Current state of the art |
|
|
114
|
-
| Citation role: peripheral | 1 | Low priority for deep reading |
|
|
115
|
-
|
|
116
|
-
```python
|
|
117
|
-
def rank_citations(citations: list) -> list:
|
|
118
|
-
"""
|
|
119
|
-
Rank citations by priority for recursive reading.
|
|
120
|
-
Returns sorted list with top candidates first.
|
|
121
|
-
"""
|
|
122
|
-
role_weights = {
|
|
123
|
-
'foundational': 5, 'contrasting': 4, 'methodological': 4,
|
|
124
|
-
'empirical': 3, 'peripheral': 1
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
for c in citations:
|
|
128
|
-
score = role_weights.get(c['role'], 1)
|
|
129
|
-
if c.get('times_cited_in_paper', 1) > 1:
|
|
130
|
-
score += 2
|
|
131
|
-
if c.get('global_citations', 0) > 100:
|
|
132
|
-
score += 1
|
|
133
|
-
if c.get('year', 0) >= 2023:
|
|
134
|
-
score += 1
|
|
135
|
-
c['priority_score'] = score
|
|
136
|
-
|
|
137
|
-
return sorted(citations, key=lambda x: x['priority_score'], reverse=True)
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
## Recursive Reading Configuration
|
|
141
|
-
|
|
142
|
-
### Depth and Breadth Control
|
|
143
|
-
|
|
144
|
-
```yaml
|
|
145
|
-
digest_config:
|
|
146
|
-
# Depth: how many levels of citations to follow
|
|
147
|
-
max_depth: 2 # 1 = direct citations only, 2 = citations of citations
|
|
148
|
-
|
|
149
|
-
# Breadth: how many citations to read at each level
|
|
150
|
-
top_n_per_level:
|
|
151
|
-
depth_1: 8 # Read top 8 references from seed paper
|
|
152
|
-
depth_2: 3 # Read top 3 references from each depth-1 paper
|
|
153
|
-
|
|
154
|
-
# Focus: which citation roles to prioritize
|
|
155
|
-
priority_roles: ["foundational", "methodological", "contrasting"]
|
|
156
|
-
|
|
157
|
-
# Read depth for sub-papers
|
|
158
|
-
sub_read_depth: "pass_2" # pass_1 (survey), pass_2 (comprehension), pass_3 (critical)
|
|
159
|
-
|
|
160
|
-
# Termination conditions
|
|
161
|
-
max_total_papers: 30 # Hard cap on total papers read
|
|
162
|
-
stop_on_saturation: true # Stop when no new concepts are found
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
### Estimated Time and Output
|
|
166
|
-
|
|
167
|
-
| Depth | Breadth | Papers Read | Time Estimate | Output Size |
|
|
168
|
-
|-------|---------|-------------|---------------|-------------|
|
|
169
|
-
| 1 | Top 5 | ~6 | 1-2 hours | 3-5 page report |
|
|
170
|
-
| 1 | Top 10 | ~11 | 2-4 hours | 5-8 page report |
|
|
171
|
-
| 2 | Top 8 + Top 3 | ~30 | 4-8 hours | 10-15 page report |
|
|
172
|
-
|
|
173
|
-
## Citation Knowledge Graph
|
|
174
|
-
|
|
175
|
-
### Building the Graph
|
|
176
|
-
|
|
177
|
-
```python
|
|
178
|
-
def build_citation_graph(seed_paper: dict, digested_papers: list) -> dict:
|
|
179
|
-
"""
|
|
180
|
-
Build a knowledge graph from the digested papers.
|
|
181
|
-
Nodes are papers, edges are citation relationships with roles.
|
|
182
|
-
"""
|
|
183
|
-
graph = {
|
|
184
|
-
'nodes': [],
|
|
185
|
-
'edges': [],
|
|
186
|
-
'clusters': {}
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
# Add seed paper as root node
|
|
190
|
-
graph['nodes'].append({
|
|
191
|
-
'id': seed_paper['doi'],
|
|
192
|
-
'label': f"{seed_paper['first_author']} ({seed_paper['year']})",
|
|
193
|
-
'type': 'seed',
|
|
194
|
-
'summary': seed_paper['main_finding']
|
|
195
|
-
})
|
|
196
|
-
|
|
197
|
-
# Add digested papers and their relationships
|
|
198
|
-
for paper in digested_papers:
|
|
199
|
-
graph['nodes'].append({
|
|
200
|
-
'id': paper['doi'],
|
|
201
|
-
'label': f"{paper['first_author']} ({paper['year']})",
|
|
202
|
-
'type': 'reference',
|
|
203
|
-
'role': paper['citation_role'],
|
|
204
|
-
'depth': paper['depth_level'],
|
|
205
|
-
'summary': paper['main_finding']
|
|
206
|
-
})
|
|
207
|
-
graph['edges'].append({
|
|
208
|
-
'source': paper['cited_by_doi'],
|
|
209
|
-
'target': paper['doi'],
|
|
210
|
-
'role': paper['citation_role'],
|
|
211
|
-
'context': paper['citation_context']
|
|
212
|
-
})
|
|
213
|
-
|
|
214
|
-
return graph
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
### Interpreting the Graph
|
|
218
|
-
|
|
219
|
-
The resulting knowledge graph reveals:
|
|
220
|
-
|
|
221
|
-
- **Intellectual lineage**: The chain of foundational works that led to the seed paper.
|
|
222
|
-
- **Methodological genealogy**: Which methods were inherited and from where.
|
|
223
|
-
- **Debate structure**: Papers on opposing sides of a disagreement, traced through contrasting citations.
|
|
224
|
-
- **Convergence points**: Papers cited by multiple branches, indicating central concepts.
|
|
225
|
-
- **Research frontier**: Recent papers at the leaves of the graph, indicating current directions.
|
|
226
|
-
|
|
227
|
-
## Best Practices
|
|
228
|
-
|
|
229
|
-
- Start with depth 1 and increase only if the topic requires deeper historical context.
|
|
230
|
-
- Prioritize contrasting citations; they provide the most critical perspective on the seed paper.
|
|
231
|
-
- When a citation cannot be accessed (paywall, unavailable), note it as a gap rather than skipping silently.
|
|
232
|
-
- Use the citation knowledge graph to identify your own paper's position in the literature.
|
|
233
|
-
- Save the full graph for reuse; it can seed future literature reviews on related topics.
|
|
234
|
-
- Cross-check that the seed paper's characterization of cited work is accurate by reading the originals.
|
|
235
|
-
|
|
236
|
-
## References
|
|
237
|
-
|
|
238
|
-
- Wohlin, C. (2014). Guidelines for Snowballing in Systematic Literature Studies. *EASE 2014*.
|
|
239
|
-
- Greenhalgh, T. & Peacock, R. (2005). Effectiveness and Efficiency of Search Methods. *BMJ*, 331, 1064-1065.
|
|
240
|
-
- Chen, C. (2006). CiteSpace II: Detecting and Visualizing Emerging Trends and Transient Patterns. *JASIST*, 57(3), 359-377.
|