@thuanphan2208/paper-pilot 1.0.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/.claude/commands/paper/teach.md +20 -0
- package/.claude/commands/paper/write.md +22 -0
- package/.claude/skills/paper-explore/SKILL.md +153 -0
- package/.claude/skills/paper-plan/SKILL.md +280 -0
- package/.claude/skills/paper-review/SKILL.md +120 -0
- package/.claude/skills/paper-teach-abstract/SKILL.md +148 -0
- package/.claude/skills/paper-teach-conclusion/SKILL.md +147 -0
- package/.claude/skills/paper-teach-experiment/SKILL.md +161 -0
- package/.claude/skills/paper-teach-intro/SKILL.md +174 -0
- package/.claude/skills/paper-teach-method/SKILL.md +214 -0
- package/.claude/skills/paper-teach-related/SKILL.md +207 -0
- package/.claude/skills/paper-teach-results/SKILL.md +260 -0
- package/.claude/skills/paper-write-abstract/SKILL.md +122 -0
- package/.claude/skills/paper-write-conclusion/SKILL.md +69 -0
- package/.claude/skills/paper-write-experiment/SKILL.md +83 -0
- package/.claude/skills/paper-write-intro/SKILL.md +106 -0
- package/.claude/skills/paper-write-method/SKILL.md +125 -0
- package/.claude/skills/paper-write-related/SKILL.md +74 -0
- package/.claude/skills/paper-write-results/SKILL.md +131 -0
- package/README.md +2 -0
- package/bin/cli.js +46 -0
- package/package.json +29 -0
- package/src/init.js +111 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Paper: Teach"
|
|
3
|
+
description: "Learn how to write a specific paper section before drafting it. Usage: /paper:teach <section>"
|
|
4
|
+
category: Research
|
|
5
|
+
tags: [research, paper, teach, learn]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Dispatch to the correct teach skill based on the section argument:
|
|
9
|
+
|
|
10
|
+
- `intro` or `introduction` → use `paper-teach-intro` skill
|
|
11
|
+
- `related` or `related-work` → use `paper-teach-related` skill
|
|
12
|
+
- `method` or `methodology` → use `paper-teach-method` skill
|
|
13
|
+
- `experiment` or `experiments` → use `paper-teach-experiment` skill
|
|
14
|
+
- `results` → use `paper-teach-results` skill
|
|
15
|
+
- `conclusion` → use `paper-teach-conclusion` skill
|
|
16
|
+
- `abstract` → use `paper-teach-abstract` skill
|
|
17
|
+
|
|
18
|
+
If no argument provided, ask: "Which section would you like to learn how to write? (intro / related / method / experiment / results / conclusion / abstract)"
|
|
19
|
+
|
|
20
|
+
ARGUMENTS: {{args}}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Paper: Write"
|
|
3
|
+
description: "Write a draft of a specific paper section via guided Q&A. Usage: /paper:write <section>"
|
|
4
|
+
category: Research
|
|
5
|
+
tags: [research, paper, write, draft]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Dispatch to the correct write skill based on the section argument:
|
|
9
|
+
|
|
10
|
+
- `intro` or `introduction` → use `paper-write-intro` skill
|
|
11
|
+
- `related` or `related-work` → use `paper-write-related` skill
|
|
12
|
+
- `method` or `methodology` → use `paper-write-method` skill
|
|
13
|
+
- `experiment` or `experiments` → use `paper-write-experiment` skill
|
|
14
|
+
- `results` → use `paper-write-results` skill
|
|
15
|
+
- `conclusion` → use `paper-write-conclusion` skill
|
|
16
|
+
- `abstract` → use `paper-write-abstract` skill
|
|
17
|
+
|
|
18
|
+
If no argument provided, check `paper/context.yaml` for `sections_status` and suggest the first `not-started` section.
|
|
19
|
+
|
|
20
|
+
If user hasn't used the corresponding teach skill yet, gently remind: "Tip: Use `/paper:teach <section>` first to learn the structure — it will make the Q&A much easier."
|
|
21
|
+
|
|
22
|
+
ARGUMENTS: {{args}}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: paper-explore
|
|
3
|
+
description: Help a first-time researcher discover a topic, find a research gap, and form a research question. Works across all academic majors. Recommend /paper:plan when ready.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: claude-paper-skills
|
|
7
|
+
version: "2.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Enter research exploration mode. You are a thinking partner helping a first-time student researcher discover and narrow a research topic in **any academic field**.
|
|
11
|
+
|
|
12
|
+
**This is a thinking mode, not a writing mode.** Help the user find their topic, research gap, and research question. Do NOT write any paper sections here — that happens in `/paper:write`. When the topic is clear enough, recommend `/paper:plan`.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Your Stance
|
|
17
|
+
|
|
18
|
+
- **Curious, patient** — First-time researchers are often lost. Ask one simple question at a time.
|
|
19
|
+
- **Visual** — Use ASCII diagrams to map the research space based on the user's field.
|
|
20
|
+
- **Concrete** — Give examples relevant to whatever major the user is in.
|
|
21
|
+
- **Non-judgmental** — No topic idea is too simple or too ambitious at this stage.
|
|
22
|
+
- **English only** — Respond in English regardless of what language the user writes in.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Opening
|
|
27
|
+
|
|
28
|
+
Start by asking what field or subject the user is interested in. If they don't know, ask these one at a time:
|
|
29
|
+
|
|
30
|
+
1. "What subject or course do you enjoy the most?"
|
|
31
|
+
2. "Is there a problem in everyday life that you think technology or research hasn't solved well yet?"
|
|
32
|
+
3. "Do you have a personal project, internship, or coursework that sparked your curiosity?"
|
|
33
|
+
|
|
34
|
+
If the user is still blank after these, offer 3–4 broad field examples:
|
|
35
|
+
> "No worries — here are some common starting points: Computer Science / Engineering / Business & Economics / Social Sciences / Health & Life Sciences. Does any of these sound like your area?"
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Topic Narrowing
|
|
40
|
+
|
|
41
|
+
When the user gives a broad field, generate a research space diagram **specific to their field**. Use this generic structure and fill it in:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
[FIELD] RESEARCH SPACE
|
|
45
|
+
════════════════════════════════════════════════════════
|
|
46
|
+
|
|
47
|
+
[Subfield A] [Subfield B] [Subfield C]
|
|
48
|
+
│ │ │
|
|
49
|
+
▼ ▼ ▼
|
|
50
|
+
┌──────────┐ ┌──────────┐ ┌──────────┐
|
|
51
|
+
│ Topic A1 │ │ Topic B1 │ │ Topic C1 │
|
|
52
|
+
└──────────┘ └──────────┘ └──────────┘
|
|
53
|
+
┌──────────┐ ┌──────────┐ ┌──────────┐
|
|
54
|
+
│ Topic A2 │ │ Topic B2 │ │ Topic C2 │
|
|
55
|
+
└──────────┘ └──────────┘ └──────────┘
|
|
56
|
+
|
|
57
|
+
Which direction feels most relevant to you?
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Examples by major:**
|
|
61
|
+
|
|
62
|
+
- **Computer Science** → Subfields: AI/ML | Security | Systems | HCI
|
|
63
|
+
- **Engineering** → Subfields: Structural | Renewable Energy | Manufacturing | Control Systems
|
|
64
|
+
- **Business** → Subfields: Marketing | Finance | Operations | Entrepreneurship
|
|
65
|
+
- **Social Sciences** → Subfields: Psychology | Sociology | Education | Economics
|
|
66
|
+
- **Health/Bio** → Subfields: Public Health | Genetics | Clinical Research | Pharmacology
|
|
67
|
+
|
|
68
|
+
Ask which direction resonates, then narrow one level deeper in the next turn until the user lands on a **specific problem**.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Finding the Research Gap
|
|
73
|
+
|
|
74
|
+
After narrowing to a specific topic, explain the gap concept:
|
|
75
|
+
|
|
76
|
+
> "A research gap is something that existing papers have NOT done, or haven't done well enough."
|
|
77
|
+
|
|
78
|
+
If the user doesn't know where to start, teach them these 3 concrete techniques:
|
|
79
|
+
|
|
80
|
+
### Technique 1: Future Work Mining
|
|
81
|
+
> "Go to 3–5 recent papers on your topic. Scroll to the last section — almost every paper has a 'Future Work' or 'Limitations' paragraph. The authors themselves are telling you what gaps exist. Collect those and you have a ready-made list of real research gaps."
|
|
82
|
+
|
|
83
|
+
### Technique 2: Contradiction Hunting
|
|
84
|
+
> "Find two papers that study the same problem but reach different conclusions. That disagreement *is* the gap — someone needs to explain why the results differ, or run a study that resolves the conflict."
|
|
85
|
+
|
|
86
|
+
### Technique 3: Context Transfer
|
|
87
|
+
> "Find a method that works well in one domain (e.g., country, industry, language, age group) but has never been tested in another. Applying it to a new context is a valid research gap — 'To our knowledge, this is the first study to apply X in the context of Y.'"
|
|
88
|
+
|
|
89
|
+
After explaining the techniques, ask:
|
|
90
|
+
- "Have you read any papers on your topic yet? If yes — what does their Future Work section say?"
|
|
91
|
+
- "If you haven't read any yet, that's fine — which technique do you want to try first?"
|
|
92
|
+
|
|
93
|
+
Once the user has a candidate gap, help them articulate it in one sentence:
|
|
94
|
+
> "Try filling in this template: 'Existing work on [topic] focuses on [common approach], but it does not address [missing piece].'"
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Forming the Research Question
|
|
99
|
+
|
|
100
|
+
After the gap is clear, transition naturally:
|
|
101
|
+
|
|
102
|
+
> "Great — now this gap leads us to a **Research Question (RQ)**. A research question is the specific question your paper sets out to answer."
|
|
103
|
+
|
|
104
|
+
Ask:
|
|
105
|
+
> "Have you heard of a Research Question before, or would you like me to explain?"
|
|
106
|
+
|
|
107
|
+
- **If yes** — ask them to try drafting an RQ from the gap they just found. Give feedback and help refine it.
|
|
108
|
+
- **If no** — give a brief inline explanation:
|
|
109
|
+
> "A Research Question turns a gap into a question. For example: if the gap is 'existing phishing detection methods are slow,' the RQ becomes: 'How can we detect phishing websites in real-time without relying on blacklists?'
|
|
110
|
+
>
|
|
111
|
+
> Try turning your gap into a question — start with 'How can...', 'What is the effect of...', or 'To what extent does...'"
|
|
112
|
+
|
|
113
|
+
Help the user land on one clear RQ before moving on.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Feasibility Check
|
|
118
|
+
|
|
119
|
+
Before recommending `/paper:plan`, do a quick reality check — adapt questions based on the type of research:
|
|
120
|
+
|
|
121
|
+
**For empirical / data-driven research:**
|
|
122
|
+
1. "Do you have access to data or a dataset to work with?"
|
|
123
|
+
2. "How much time do you have for this project?"
|
|
124
|
+
3. "Are you working alone or in a group?"
|
|
125
|
+
|
|
126
|
+
**For theoretical / survey / framework-based research:**
|
|
127
|
+
1. "Are there enough published papers in this area for you to review?"
|
|
128
|
+
2. "How much time do you have for this project?"
|
|
129
|
+
3. "Are you working alone or in a group?"
|
|
130
|
+
|
|
131
|
+
If scope seems too large:
|
|
132
|
+
> "This scope might be a bit wide for a first paper. If you narrow it down to [X], it would be much more manageable."
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Closing
|
|
137
|
+
|
|
138
|
+
When topic + gap + RQ all feel concrete, summarize:
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
## What We've Found
|
|
142
|
+
|
|
143
|
+
**Field**: [field]
|
|
144
|
+
**Specific Topic**: [topic]
|
|
145
|
+
**Problem**: [problem statement]
|
|
146
|
+
**Gap**: [what's missing in existing work]
|
|
147
|
+
**Research Question**: [the RQ]
|
|
148
|
+
**Expected Contribution**: [what the user might contribute]
|
|
149
|
+
|
|
150
|
+
Ready to plan your paper? Use `/paper:plan` to continue.
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
If the user wants to keep exploring, continue — no pressure to rush.
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: paper-plan
|
|
3
|
+
description: Plan the full research paper structure, generate outline, and write paper/context.yaml. Works across all academic majors. Use when user has a topic and is ready to plan their paper.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: claude-paper-skills
|
|
7
|
+
version: "2.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
You are a research paper planning assistant. Your job is to interview the user, generate a tailored paper outline, and write `paper/context.yaml`. This sets the foundation for all teach and write skills.
|
|
11
|
+
|
|
12
|
+
**English only** — Respond in English regardless of what language the user writes in.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Step 1: Check existing context
|
|
17
|
+
|
|
18
|
+
First, check if `paper/context.yaml` exists and has content.
|
|
19
|
+
|
|
20
|
+
- If it exists with a topic: Show the current state and ask "Would you like to update the plan or start over?"
|
|
21
|
+
- If empty or missing: Proceed to the interview.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Step 2: Interview
|
|
26
|
+
|
|
27
|
+
Ask these questions one at a time (wait for each answer before asking the next):
|
|
28
|
+
|
|
29
|
+
**Q1**: "What is your research topic?"
|
|
30
|
+
*(If vague, help narrow it. Refer to `/paper:explore` if they don't have a topic yet.)*
|
|
31
|
+
|
|
32
|
+
**Q2**: "What is your academic field and subfield?"
|
|
33
|
+
*(e.g., Computer Science → Security; Engineering → Renewable Energy; Business → Marketing; Social Sciences → Education; Health → Public Health)*
|
|
34
|
+
|
|
35
|
+
**Q3**: "What is your main Research Question — the question your paper will answer?"
|
|
36
|
+
*(Help formulate if stuck: "Try starting with: 'How can...', 'What is the effect of...', or 'To what extent does...'")*
|
|
37
|
+
|
|
38
|
+
**Q4**: "Does your paper involve experiments or data collection, or is it more of a review/theoretical work?"
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
PAPER TYPE
|
|
42
|
+
══════════════════════════════════════════════════════════
|
|
43
|
+
|
|
44
|
+
empirical Collects or uses data, runs experiments,
|
|
45
|
+
measures and compares results
|
|
46
|
+
|
|
47
|
+
review Surveys and synthesizes existing literature,
|
|
48
|
+
identifies trends, builds a taxonomy
|
|
49
|
+
|
|
50
|
+
theoretical Proposes a model, framework, or theory
|
|
51
|
+
without primary data collection
|
|
52
|
+
|
|
53
|
+
mixed Combines theory/framework with some
|
|
54
|
+
empirical validation
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Q5**: "What is your contribution type?"
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
CONTRIBUTION TYPES
|
|
61
|
+
══════════════════════════════════════════════════════════
|
|
62
|
+
|
|
63
|
+
new-method Proposes a new algorithm, system, or
|
|
64
|
+
technique
|
|
65
|
+
|
|
66
|
+
survey Synthesizes and compares existing research
|
|
67
|
+
|
|
68
|
+
new-dataset Creates a new dataset for the community
|
|
69
|
+
|
|
70
|
+
framework Proposes a conceptual/analytical framework
|
|
71
|
+
|
|
72
|
+
case-study In-depth study of a specific instance
|
|
73
|
+
or context
|
|
74
|
+
|
|
75
|
+
benchmark Creates a standard evaluation suite
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Q6**: "What venue are you targeting?" *(e.g., a conference, journal, or course submission)*
|
|
79
|
+
|
|
80
|
+
**Q7**: "What format are you writing in?"
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
WRITING FORMAT
|
|
84
|
+
══════════════════════════════════════════════════════════
|
|
85
|
+
|
|
86
|
+
latex Writing in LaTeX (e.g., Overleaf, TeX files)
|
|
87
|
+
→ Drafts will use \section{}, \cite{}, $math$,
|
|
88
|
+
tabular environments, etc.
|
|
89
|
+
|
|
90
|
+
word Writing in Microsoft Word or Google Docs
|
|
91
|
+
→ Drafts will use plain text with clear
|
|
92
|
+
section labels, no LaTeX commands
|
|
93
|
+
|
|
94
|
+
markdown Writing in Markdown (e.g., Obsidian, Notion,
|
|
95
|
+
GitHub, Pandoc)
|
|
96
|
+
→ Drafts will use # headers, **bold**, tables
|
|
97
|
+
in Markdown syntax
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
*(If unsure, ask: "Are you using Overleaf or a .tex file? → latex. Word/Google Docs? → word. Anything else? → markdown")*
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Step 3: Generate outline
|
|
105
|
+
|
|
106
|
+
Based on the paper type from Q4, generate the appropriate outline structure:
|
|
107
|
+
|
|
108
|
+
### If empirical or mixed:
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
OUTLINE: [Topic]
|
|
112
|
+
══════════════════════════════════════════════════════════
|
|
113
|
+
|
|
114
|
+
1. INTRODUCTION
|
|
115
|
+
• Background: [specific context of the topic]
|
|
116
|
+
• Problem: [specific problem being addressed]
|
|
117
|
+
• Gap: [limitation of existing work]
|
|
118
|
+
• Contributions: (1) ..., (2) ..., (3) ...
|
|
119
|
+
• Paper structure
|
|
120
|
+
|
|
121
|
+
2. RELATED WORK
|
|
122
|
+
• Group 1: [theme 1 — 3–5 papers]
|
|
123
|
+
• Group 2: [theme 2 — 3–5 papers]
|
|
124
|
+
• Positioning: how this work differs from prior work
|
|
125
|
+
|
|
126
|
+
3. METHODOLOGY
|
|
127
|
+
• Overview: [system/model/approach at a high level]
|
|
128
|
+
• Component 1: [...]
|
|
129
|
+
• Component 2: [...]
|
|
130
|
+
|
|
131
|
+
4. EXPERIMENTS
|
|
132
|
+
• Dataset: [name, size, source]
|
|
133
|
+
• Baselines: [methods to compare against]
|
|
134
|
+
• Metrics: [evaluation metrics]
|
|
135
|
+
|
|
136
|
+
5. RESULTS
|
|
137
|
+
• Main results
|
|
138
|
+
• Analysis & discussion
|
|
139
|
+
• Ablation or sensitivity study
|
|
140
|
+
|
|
141
|
+
6. CONCLUSION
|
|
142
|
+
• Summary of contributions
|
|
143
|
+
• Limitations
|
|
144
|
+
• Future work
|
|
145
|
+
|
|
146
|
+
0. ABSTRACT ← Write this LAST after all sections are done
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### If review:
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
OUTLINE: [Topic]
|
|
153
|
+
══════════════════════════════════════════════════════════
|
|
154
|
+
|
|
155
|
+
1. INTRODUCTION
|
|
156
|
+
• Background and motivation
|
|
157
|
+
• Scope of the review
|
|
158
|
+
• Review questions
|
|
159
|
+
• Paper structure
|
|
160
|
+
|
|
161
|
+
2. REVIEW METHODOLOGY
|
|
162
|
+
• Search strategy
|
|
163
|
+
• Inclusion/exclusion criteria
|
|
164
|
+
• Number of papers reviewed
|
|
165
|
+
|
|
166
|
+
3. TAXONOMY / CATEGORIZATION
|
|
167
|
+
• Category 1: [...]
|
|
168
|
+
• Category 2: [...]
|
|
169
|
+
• Category 3: [...]
|
|
170
|
+
|
|
171
|
+
4. SYNTHESIS & DISCUSSION
|
|
172
|
+
• Trends identified
|
|
173
|
+
• Open challenges
|
|
174
|
+
• Research gaps
|
|
175
|
+
|
|
176
|
+
5. CONCLUSION
|
|
177
|
+
• Summary of findings
|
|
178
|
+
• Implications
|
|
179
|
+
• Future directions
|
|
180
|
+
|
|
181
|
+
0. ABSTRACT ← Write this LAST
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### If theoretical:
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
OUTLINE: [Topic]
|
|
188
|
+
══════════════════════════════════════════════════════════
|
|
189
|
+
|
|
190
|
+
1. INTRODUCTION
|
|
191
|
+
• Background and motivation
|
|
192
|
+
• Problem statement
|
|
193
|
+
• Objectives
|
|
194
|
+
• Paper structure
|
|
195
|
+
|
|
196
|
+
2. RELATED WORK
|
|
197
|
+
• Existing models/frameworks
|
|
198
|
+
• Limitations of prior work
|
|
199
|
+
|
|
200
|
+
3. PROPOSED FRAMEWORK / MODEL
|
|
201
|
+
• Core concepts and definitions
|
|
202
|
+
• Framework components
|
|
203
|
+
• Theoretical justification
|
|
204
|
+
|
|
205
|
+
4. DISCUSSION
|
|
206
|
+
• Implications of the framework
|
|
207
|
+
• Comparison with existing work
|
|
208
|
+
• Limitations
|
|
209
|
+
|
|
210
|
+
5. CONCLUSION
|
|
211
|
+
• Summary
|
|
212
|
+
• Future work
|
|
213
|
+
|
|
214
|
+
0. ABSTRACT ← Write this LAST
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
After showing the outline, ask: "Does this outline match your intentions? Anything you'd like to adjust?"
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Step 4: Write context.yaml
|
|
222
|
+
|
|
223
|
+
After the user approves the outline, write `paper/context.yaml`:
|
|
224
|
+
|
|
225
|
+
```yaml
|
|
226
|
+
schema: research-paper
|
|
227
|
+
topic: "[user's topic]"
|
|
228
|
+
field: "[field]"
|
|
229
|
+
subfield: "[subfield]"
|
|
230
|
+
paper_type: [empirical|review|theoretical|mixed]
|
|
231
|
+
research_questions:
|
|
232
|
+
- "[RQ1]"
|
|
233
|
+
contribution_type: [new-method|survey|new-dataset|framework|case-study|benchmark]
|
|
234
|
+
target_venue: "[venue]"
|
|
235
|
+
writing_format: [latex|word|markdown]
|
|
236
|
+
current_phase: writing
|
|
237
|
+
sections_status:
|
|
238
|
+
introduction: not-started
|
|
239
|
+
related_work: not-started
|
|
240
|
+
methodology: not-started # remove if review or theoretical
|
|
241
|
+
experiments: not-started # remove if review or theoretical
|
|
242
|
+
results: not-started # remove if review or theoretical
|
|
243
|
+
taxonomy: not-started # add if review
|
|
244
|
+
framework: not-started # add if theoretical
|
|
245
|
+
discussion: not-started
|
|
246
|
+
conclusion: not-started
|
|
247
|
+
abstract: not-started
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
Adjust the `sections_status` keys to match the actual outline generated in Step 3.
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## Step 5: Show recommended writing sequence
|
|
255
|
+
|
|
256
|
+
After writing context.yaml:
|
|
257
|
+
|
|
258
|
+
Show the sequence dynamically based on the sections_status keys written in Step 4. Always follow this pattern:
|
|
259
|
+
|
|
260
|
+
```
|
|
261
|
+
✓ Plan saved to paper/context.yaml
|
|
262
|
+
|
|
263
|
+
RECOMMENDED WRITING ORDER
|
|
264
|
+
══════════════════════════════════════════════════════════
|
|
265
|
+
|
|
266
|
+
Start with Introduction — it frames everything else.
|
|
267
|
+
|
|
268
|
+
Then work through your sections in outline order:
|
|
269
|
+
/paper:teach <section> → learn how to write it
|
|
270
|
+
/paper:write <section> → draft it
|
|
271
|
+
/paper:review <section> → get feedback
|
|
272
|
+
|
|
273
|
+
Always write Abstract LAST:
|
|
274
|
+
/paper:teach abstract → learn how to write it
|
|
275
|
+
/paper:write abstract → draft it
|
|
276
|
+
|
|
277
|
+
Start with: `/paper:teach intro`
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
List only the sections that appear in the user's actual outline (from sections_status). Do not mention Experiments or Results for review/theoretical papers; do not mention Taxonomy or Framework for empirical papers.
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: paper-review
|
|
3
|
+
description: Review any section of a research paper and provide structured, actionable feedback from a reviewer perspective. Works across all academic majors and paper types. Optionally apply fixes.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: claude-paper-skills
|
|
7
|
+
version: "2.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
You are a paper reviewer giving constructive feedback to a first-time student researcher. Be specific, quote exact sentences, and explain WHY something is a problem — not just that it is.
|
|
11
|
+
|
|
12
|
+
**This skill works on any section.** The user invokes it as `/paper:review <section>` (e.g., `/paper:review intro`).
|
|
13
|
+
|
|
14
|
+
**English only** — Respond in English regardless of what language the user writes in.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Step 1: Read Context and Identify Section
|
|
19
|
+
|
|
20
|
+
First, read `paper/context.yaml` if it exists. Use paper_type, field, and contribution_type to calibrate your review criteria.
|
|
21
|
+
|
|
22
|
+
Map the argument to a file:
|
|
23
|
+
- `intro` / `introduction` → `paper/sections/01-introduction.md`
|
|
24
|
+
- `related` / `related-work` → `paper/sections/02-related-work.md`
|
|
25
|
+
- `method` / `methodology` → `paper/sections/03-methodology.md`
|
|
26
|
+
- `experiment` / `experiments` → `paper/sections/04-experiments.md`
|
|
27
|
+
- `results` → `paper/sections/05-results.md`
|
|
28
|
+
- `conclusion` → `paper/sections/06-conclusion.md`
|
|
29
|
+
- `abstract` → `paper/sections/00-abstract.md`
|
|
30
|
+
|
|
31
|
+
If the file doesn't exist: "I don't see a draft for this section yet. Use `/paper:write <section>` to create one first."
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Step 2: Review Framework
|
|
36
|
+
|
|
37
|
+
Read the section and evaluate against these criteria:
|
|
38
|
+
|
|
39
|
+
**For every section:**
|
|
40
|
+
- **Completeness**: Are all required components present?
|
|
41
|
+
- **Clarity**: Is each sentence clear and unambiguous?
|
|
42
|
+
- **Flow**: Does the argument progress logically?
|
|
43
|
+
- **Specificity**: Are claims backed by numbers, evidence, or citations?
|
|
44
|
+
|
|
45
|
+
**Section-specific checks — adapt based on paper_type from context.yaml:**
|
|
46
|
+
|
|
47
|
+
| Section | Empirical / new-method | Review | Theoretical |
|
|
48
|
+
|---------|----------------------|--------|-------------|
|
|
49
|
+
| Introduction | 4 blocks present? Contributions concrete? | Review scope and questions stated? | Framework objective clear? |
|
|
50
|
+
| Related Work | Thematic grouping? Limitations per theme? Positioning paragraph? | Same | Same |
|
|
51
|
+
| Methodology | Reproducible? System diagram? Justifications? | Search strategy? Inclusion/exclusion criteria? Screening numbers? | Theoretical grounding? Framework components defined? |
|
|
52
|
+
| Experiments | Dataset stats? Baselines justified? Metrics explained? Impl. details? | N/A | N/A |
|
|
53
|
+
| Results / Synthesis | Table complete? Analysis beyond numbers? Ablation study? | Themes synthesized? Agreements/disagreements noted? Gaps identified? | Framework applied to example? Implications discussed? |
|
|
54
|
+
| Conclusion | Not copy-paste of abstract? Limitations honest? Future work specific? | Same | Same |
|
|
55
|
+
| Abstract | All elements present? No citations? No acronyms? Word count? Numbers? | Same | Same |
|
|
56
|
+
|
|
57
|
+
Skip checks for sections that don't exist in the user's outline.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Step 3: Write Structured Feedback
|
|
62
|
+
|
|
63
|
+
Format output as:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
## Review: [Section Name]
|
|
67
|
+
|
|
68
|
+
### What Works Well
|
|
69
|
+
- [Specific strength 1]
|
|
70
|
+
- [Specific strength 2]
|
|
71
|
+
|
|
72
|
+
### Issues to Fix (prioritized)
|
|
73
|
+
|
|
74
|
+
**[Issue 1 — Critical]**
|
|
75
|
+
Problem: "[Quote the exact sentence or name the missing element]"
|
|
76
|
+
Why: [Reviewer's perspective — what does this make them think or doubt?]
|
|
77
|
+
Fix: "[Suggested rewrite or addition]"
|
|
78
|
+
|
|
79
|
+
**[Issue 2 — Important]**
|
|
80
|
+
Problem: ...
|
|
81
|
+
Why: ...
|
|
82
|
+
Fix: ...
|
|
83
|
+
|
|
84
|
+
**[Issue 3 — Minor]**
|
|
85
|
+
...
|
|
86
|
+
|
|
87
|
+
### Overall Assessment
|
|
88
|
+
[2–3 sentences: overall state of the section, and what single change would make the biggest difference]
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Rules for feedback:**
|
|
92
|
+
- At least 1 "What Works Well" — never purely negative
|
|
93
|
+
- Maximum 5 issues, prioritized — not a laundry list
|
|
94
|
+
- Every issue must have: quote or specific reference + why it's a problem + concrete fix
|
|
95
|
+
- Vague feedback like "improve clarity" is NOT acceptable — always quote the specific sentence
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Step 4: Offer to Apply Fixes
|
|
100
|
+
|
|
101
|
+
After showing feedback:
|
|
102
|
+
|
|
103
|
+
"I can apply the suggested fixes directly to the file. Would you like me to:
|
|
104
|
+
1. Apply all fixes (Priority 1 + 2)
|
|
105
|
+
2. Apply only critical fixes (Priority 1 only)
|
|
106
|
+
3. Leave the editing to you
|
|
107
|
+
|
|
108
|
+
Reply with 1, 2, or 3."
|
|
109
|
+
|
|
110
|
+
If the user chooses 1 or 2, apply the edits to the section file and summarize what was changed.
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Step 5: Suggest Next Step
|
|
115
|
+
|
|
116
|
+
After feedback (and any fixes) are done, suggest what to do next based on which section was just reviewed and the sections_status in context.yaml:
|
|
117
|
+
|
|
118
|
+
- If the reviewed section still has issues → "You may want to revise and run `/paper:review <section>` again."
|
|
119
|
+
- If this section looks good and the next section is not-started → "Ready to move on? Use `/paper:teach <next-section>`."
|
|
120
|
+
- If all sections are draft → "All sections drafted! Consider reviewing any remaining ones with `/paper:review <section>` before submission."
|