@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.
Files changed (142) hide show
  1. package/README.md +16 -8
  2. package/openclaw.plugin.json +10 -3
  3. package/package.json +2 -5
  4. package/skills/analysis/dataviz/SKILL.md +25 -0
  5. package/skills/analysis/dataviz/chart-image-generator/SKILL.md +1 -1
  6. package/skills/analysis/econometrics/SKILL.md +23 -0
  7. package/skills/analysis/econometrics/robustness-checks/SKILL.md +1 -1
  8. package/skills/analysis/statistics/SKILL.md +21 -0
  9. package/skills/analysis/statistics/data-anomaly-detection/SKILL.md +1 -1
  10. package/skills/analysis/statistics/ml-experiment-tracker/SKILL.md +1 -1
  11. package/skills/analysis/statistics/{senior-data-scientist-guide → modeling-strategy-guide}/SKILL.md +5 -5
  12. package/skills/analysis/wrangling/SKILL.md +21 -0
  13. package/skills/analysis/wrangling/csv-data-analyzer/SKILL.md +1 -1
  14. package/skills/analysis/wrangling/data-cog-guide/SKILL.md +1 -1
  15. package/skills/domains/ai-ml/SKILL.md +37 -0
  16. package/skills/domains/biomedical/SKILL.md +28 -0
  17. package/skills/domains/biomedical/genomas-guide/SKILL.md +1 -1
  18. package/skills/domains/biomedical/med-researcher-guide/SKILL.md +1 -1
  19. package/skills/domains/biomedical/medgeclaw-guide/SKILL.md +1 -1
  20. package/skills/domains/business/SKILL.md +17 -0
  21. package/skills/domains/business/architecture-design-guide/SKILL.md +1 -1
  22. package/skills/domains/chemistry/SKILL.md +19 -0
  23. package/skills/domains/chemistry/computational-chemistry-guide/SKILL.md +1 -1
  24. package/skills/domains/cs/SKILL.md +21 -0
  25. package/skills/domains/ecology/SKILL.md +16 -0
  26. package/skills/domains/economics/SKILL.md +20 -0
  27. package/skills/domains/economics/post-labor-economics/SKILL.md +1 -1
  28. package/skills/domains/economics/pricing-psychology-guide/SKILL.md +1 -1
  29. package/skills/domains/education/SKILL.md +19 -0
  30. package/skills/domains/education/academic-study-methods/SKILL.md +1 -1
  31. package/skills/domains/education/edumcp-guide/SKILL.md +1 -1
  32. package/skills/domains/finance/SKILL.md +19 -0
  33. package/skills/domains/finance/akshare-finance-data/SKILL.md +1 -1
  34. package/skills/domains/finance/options-analytics-agent-guide/SKILL.md +1 -1
  35. package/skills/domains/finance/stata-accounting-research/SKILL.md +1 -1
  36. package/skills/domains/geoscience/SKILL.md +17 -0
  37. package/skills/domains/humanities/SKILL.md +16 -0
  38. package/skills/domains/humanities/history-research-guide/SKILL.md +1 -1
  39. package/skills/domains/humanities/political-history-guide/SKILL.md +1 -1
  40. package/skills/domains/law/SKILL.md +19 -0
  41. package/skills/domains/math/SKILL.md +17 -0
  42. package/skills/domains/pharma/SKILL.md +17 -0
  43. package/skills/domains/physics/SKILL.md +16 -0
  44. package/skills/domains/social-science/SKILL.md +17 -0
  45. package/skills/domains/social-science/sociology-research-methods/SKILL.md +1 -1
  46. package/skills/literature/discovery/SKILL.md +20 -0
  47. package/skills/literature/discovery/paper-recommendation-guide/SKILL.md +1 -1
  48. package/skills/literature/discovery/semantic-paper-radar/SKILL.md +1 -1
  49. package/skills/literature/fulltext/SKILL.md +26 -0
  50. package/skills/literature/metadata/SKILL.md +35 -0
  51. package/skills/literature/metadata/doi-content-negotiation/SKILL.md +4 -0
  52. package/skills/literature/metadata/doi-resolution-guide/SKILL.md +4 -0
  53. package/skills/literature/metadata/orcid-api/SKILL.md +4 -0
  54. package/skills/literature/metadata/orcid-integration-guide/SKILL.md +4 -0
  55. package/skills/literature/search/SKILL.md +43 -0
  56. package/skills/literature/search/paper-search-mcp-guide/SKILL.md +1 -1
  57. package/skills/research/automation/SKILL.md +21 -0
  58. package/skills/research/deep-research/SKILL.md +24 -0
  59. package/skills/research/deep-research/auto-deep-research-guide/SKILL.md +1 -1
  60. package/skills/research/deep-research/in-depth-research-guide/SKILL.md +1 -1
  61. package/skills/research/funding/SKILL.md +20 -0
  62. package/skills/research/methodology/SKILL.md +24 -0
  63. package/skills/research/paper-review/SKILL.md +19 -0
  64. package/skills/research/paper-review/paper-critique-framework/SKILL.md +1 -1
  65. package/skills/tools/code-exec/SKILL.md +18 -0
  66. package/skills/tools/diagram/SKILL.md +20 -0
  67. package/skills/tools/document/SKILL.md +21 -0
  68. package/skills/tools/knowledge-graph/SKILL.md +21 -0
  69. package/skills/tools/ocr-translate/SKILL.md +18 -0
  70. package/skills/tools/ocr-translate/handwriting-recognition-guide/SKILL.md +2 -0
  71. package/skills/tools/ocr-translate/latex-ocr-guide/SKILL.md +2 -0
  72. package/skills/tools/scraping/SKILL.md +17 -0
  73. package/skills/writing/citation/SKILL.md +33 -0
  74. package/skills/writing/citation/zotfile-attachment-guide/SKILL.md +2 -0
  75. package/skills/writing/composition/SKILL.md +22 -0
  76. package/skills/writing/composition/research-paper-writer/SKILL.md +1 -1
  77. package/skills/writing/composition/scientific-writing-wrapper/SKILL.md +1 -1
  78. package/skills/writing/latex/SKILL.md +22 -0
  79. package/skills/writing/latex/academic-writing-latex/SKILL.md +1 -1
  80. package/skills/writing/latex/latex-drawing-guide/SKILL.md +1 -1
  81. package/skills/writing/polish/SKILL.md +20 -0
  82. package/skills/writing/polish/chinese-text-humanizer/SKILL.md +1 -1
  83. package/skills/writing/templates/SKILL.md +22 -0
  84. package/skills/writing/templates/beamer-presentation-guide/SKILL.md +1 -1
  85. package/skills/writing/templates/scientific-article-pdf/SKILL.md +1 -1
  86. package/skills/analysis/dataviz/citation-map-guide/SKILL.md +0 -184
  87. package/skills/analysis/dataviz/data-visualization-principles/SKILL.md +0 -171
  88. package/skills/analysis/econometrics/empirical-paper-analysis/SKILL.md +0 -192
  89. package/skills/analysis/econometrics/panel-data-regression-workflow/SKILL.md +0 -267
  90. package/skills/analysis/econometrics/stata-regression/SKILL.md +0 -117
  91. package/skills/analysis/statistics/general-statistics-guide/SKILL.md +0 -226
  92. package/skills/analysis/statistics/infiagent-benchmark-guide/SKILL.md +0 -106
  93. package/skills/analysis/statistics/pywayne-statistics-guide/SKILL.md +0 -192
  94. package/skills/analysis/statistics/quantitative-methods-guide/SKILL.md +0 -193
  95. package/skills/analysis/wrangling/claude-data-analysis-guide/SKILL.md +0 -100
  96. package/skills/analysis/wrangling/open-data-scientist-guide/SKILL.md +0 -197
  97. package/skills/domains/ai-ml/annotated-dl-papers-guide/SKILL.md +0 -159
  98. package/skills/domains/humanities/digital-humanities-methods/SKILL.md +0 -232
  99. package/skills/domains/law/legal-research-methods/SKILL.md +0 -190
  100. package/skills/domains/social-science/sociology-research-guide/SKILL.md +0 -238
  101. package/skills/literature/discovery/arxiv-paper-monitoring/SKILL.md +0 -233
  102. package/skills/literature/discovery/paper-tracking-guide/SKILL.md +0 -211
  103. package/skills/literature/fulltext/zotero-scihub-guide/SKILL.md +0 -168
  104. package/skills/literature/search/arxiv-osiris/SKILL.md +0 -199
  105. package/skills/literature/search/deepgit-search-guide/SKILL.md +0 -147
  106. package/skills/literature/search/multi-database-literature-search/SKILL.md +0 -198
  107. package/skills/literature/search/papers-chat-guide/SKILL.md +0 -194
  108. package/skills/literature/search/pasa-paper-search-guide/SKILL.md +0 -138
  109. package/skills/literature/search/scientify-literature-survey/SKILL.md +0 -203
  110. package/skills/research/automation/ai-scientist-guide/SKILL.md +0 -228
  111. package/skills/research/automation/coexist-ai-guide/SKILL.md +0 -149
  112. package/skills/research/automation/foam-agent-guide/SKILL.md +0 -203
  113. package/skills/research/automation/research-paper-orchestrator/SKILL.md +0 -254
  114. package/skills/research/deep-research/academic-deep-research/SKILL.md +0 -190
  115. package/skills/research/deep-research/cognitive-kernel-guide/SKILL.md +0 -200
  116. package/skills/research/deep-research/corvus-research-guide/SKILL.md +0 -132
  117. package/skills/research/deep-research/deep-research-pro/SKILL.md +0 -213
  118. package/skills/research/deep-research/deep-research-work/SKILL.md +0 -204
  119. package/skills/research/deep-research/research-cog/SKILL.md +0 -153
  120. package/skills/research/methodology/academic-mentor-guide/SKILL.md +0 -169
  121. package/skills/research/methodology/deep-innovator-guide/SKILL.md +0 -242
  122. package/skills/research/methodology/research-pipeline-units-guide/SKILL.md +0 -169
  123. package/skills/research/paper-review/paper-compare-guide/SKILL.md +0 -238
  124. package/skills/research/paper-review/paper-digest-guide/SKILL.md +0 -240
  125. package/skills/research/paper-review/paper-research-assistant/SKILL.md +0 -231
  126. package/skills/research/paper-review/research-quality-filter/SKILL.md +0 -261
  127. package/skills/tools/code-exec/contextplus-mcp-guide/SKILL.md +0 -110
  128. package/skills/tools/diagram/clawphd-guide/SKILL.md +0 -149
  129. package/skills/tools/diagram/scientific-graphical-abstract/SKILL.md +0 -201
  130. package/skills/tools/document/md2pdf-xelatex/SKILL.md +0 -212
  131. package/skills/tools/document/openpaper-guide/SKILL.md +0 -232
  132. package/skills/tools/document/qq-connect/SKILL.md +0 -227
  133. package/skills/tools/document/weknora-guide/SKILL.md +0 -216
  134. package/skills/tools/knowledge-graph/mimir-memory-guide/SKILL.md +0 -135
  135. package/skills/tools/knowledge-graph/open-webui-tools-guide/SKILL.md +0 -156
  136. package/skills/tools/ocr-translate/formula-recognition-guide/SKILL.md +0 -367
  137. package/skills/tools/ocr-translate/math-equation-renderer/SKILL.md +0 -198
  138. package/skills/tools/scraping/api-data-collection-guide/SKILL.md +0 -301
  139. package/skills/writing/citation/academic-citation-manager-guide/SKILL.md +0 -182
  140. package/skills/writing/composition/opendraft-thesis-guide/SKILL.md +0 -200
  141. package/skills/writing/composition/paper-debugger-guide/SKILL.md +0 -143
  142. 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.