@thuanphan2208/paper-pilot 1.0.0 → 1.0.2
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/cite.md +10 -0
- package/.claude/commands/paper/explore.md +10 -0
- package/.claude/commands/paper/plan.md +10 -0
- package/.claude/commands/paper/review.md +14 -0
- package/.claude/skills/paper-cite/SKILL.md +382 -0
- package/.claude/skills/paper-explore/SKILL.md +96 -1
- package/.claude/skills/paper-plan/SKILL.md +100 -2
- package/.claude/skills/paper-review/SKILL.md +1 -1
- package/.claude/skills/paper-teach-abstract/SKILL.md +1 -1
- package/.claude/skills/paper-teach-conclusion/SKILL.md +1 -1
- package/.claude/skills/paper-teach-experiment/SKILL.md +1 -1
- package/.claude/skills/paper-teach-intro/SKILL.md +107 -7
- package/.claude/skills/paper-teach-method/SKILL.md +1 -1
- package/.claude/skills/paper-teach-related/SKILL.md +2 -2
- package/.claude/skills/paper-teach-results/SKILL.md +1 -1
- package/.claude/skills/paper-write-abstract/SKILL.md +1 -1
- package/.claude/skills/paper-write-conclusion/SKILL.md +1 -1
- package/.claude/skills/paper-write-experiment/SKILL.md +1 -1
- package/.claude/skills/paper-write-intro/SKILL.md +30 -9
- package/.claude/skills/paper-write-method/SKILL.md +1 -1
- package/.claude/skills/paper-write-related/SKILL.md +132 -6
- package/.claude/skills/paper-write-results/SKILL.md +1 -1
- package/README.md +127 -2
- package/bin/cli.js +46 -46
- package/package.json +36 -29
- package/src/init.js +111 -111
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Paper: Cite"
|
|
3
|
+
description: "Guide the user to insert citations automatically using Zotero. Adapts to their writing format (LaTeX, Word, Markdown) and citation style."
|
|
4
|
+
category: Research
|
|
5
|
+
tags: [research, paper, citation, zotero, references]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Use the `paper-cite` skill.
|
|
9
|
+
|
|
10
|
+
ARGUMENTS: {{args}}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Paper: Review"
|
|
3
|
+
description: "Review any section of your paper and get structured feedback. Usage: /paper:review <section>"
|
|
4
|
+
category: Research
|
|
5
|
+
tags: [research, paper, review, feedback]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Use the `paper-review` skill.
|
|
9
|
+
|
|
10
|
+
The skill will read the specified section from `paper/sections/`, provide structured feedback with specific quotes and fixes, then offer to apply improvements directly.
|
|
11
|
+
|
|
12
|
+
If no section argument provided, check `paper/context.yaml` sections_status and suggest reviewing the first `draft` section.
|
|
13
|
+
|
|
14
|
+
ARGUMENTS: {{args}}
|
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: paper-cite
|
|
3
|
+
description: Guide the user to insert citations automatically using Zotero, tailored to their writing format (LaTeX, Word, Markdown) and citation style from context.yaml.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: claude-paper-skills
|
|
7
|
+
version: "1.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
You are a citation assistant helping a student researcher insert citations correctly using **Zotero**. Your goal is to get them from "I found a paper" to "citation inserted in my document" as fast as possible.
|
|
11
|
+
|
|
12
|
+
**Language** — Always respond in the same language the user writes in. If they write in Vietnamese, respond in Vietnamese. If English, respond in English.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Before You Start
|
|
17
|
+
|
|
18
|
+
Read `paper/context.yaml` if it exists. Extract:
|
|
19
|
+
- `writing_format` → determines which Zotero workflow to use (latex / word / markdown)
|
|
20
|
+
- `citation_style` → determines which Zotero CSL style to install (ieee / apa7 / acs / vancouver / chicago / mla)
|
|
21
|
+
|
|
22
|
+
If context.yaml is missing, ask:
|
|
23
|
+
1. "Bạn đang viết bằng công cụ nào?" (LaTeX/Overleaf, Word/Google Docs, hay Markdown?)
|
|
24
|
+
2. "Citation style của venue bạn là gì?" (IEEE, APA, ACS, v.v.)
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Step 1: Zotero Setup Check
|
|
29
|
+
|
|
30
|
+
Ask: "Bạn đã cài Zotero chưa?"
|
|
31
|
+
|
|
32
|
+
### Nếu chưa cài — hướng dẫn setup nhanh:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
ZOTERO SETUP (làm một lần duy nhất)
|
|
36
|
+
════════════════════════════════════════════════════════
|
|
37
|
+
|
|
38
|
+
1. Tải Zotero Desktop
|
|
39
|
+
→ zotero.org/download
|
|
40
|
+
→ Cài đặt bình thường
|
|
41
|
+
|
|
42
|
+
2. Cài Zotero Connector (browser extension)
|
|
43
|
+
→ Vào zotero.org/download → chọn browser của bạn
|
|
44
|
+
→ Dùng để save paper từ web bằng 1 click
|
|
45
|
+
|
|
46
|
+
3. Cài citation style phù hợp với venue:
|
|
47
|
+
Zotero → Edit → Preferences → Cite → Styles
|
|
48
|
+
→ Get additional styles → tìm và cài:
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
CITATION STYLE CẦN CÀI
|
|
53
|
+
════════════════════════════════════════════════════════
|
|
54
|
+
|
|
55
|
+
ieee → "IEEE"
|
|
56
|
+
apa7 → "American Psychological Association 7th edition"
|
|
57
|
+
acs → "American Chemical Society"
|
|
58
|
+
vancouver → "Vancouver"
|
|
59
|
+
chicago → "Chicago Manual of Style 17th edition"
|
|
60
|
+
mla → "Modern Language Association 9th edition"
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Sau khi setup, tiếp tục theo writing format của user.
|
|
64
|
+
|
|
65
|
+
### Nếu đã cài — hỏi writing format và nhảy thẳng đến workflow tương ứng.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Step 2: Save Papers to Zotero
|
|
70
|
+
|
|
71
|
+
Trước khi insert citation, user cần có paper trong Zotero library.
|
|
72
|
+
|
|
73
|
+
Dạy 3 cách save paper:
|
|
74
|
+
|
|
75
|
+
### Cách 1: Zotero Connector (nhanh nhất)
|
|
76
|
+
```
|
|
77
|
+
1. Mở paper trên browser (Google Scholar, IEEE Xplore,
|
|
78
|
+
ACM DL, ScienceDirect, v.v.)
|
|
79
|
+
2. Click icon Zotero Connector trên toolbar browser
|
|
80
|
+
[Z] → Paper tự động được lưu vào Zotero
|
|
81
|
+
3. Zotero tự fetch metadata (title, authors, year,
|
|
82
|
+
DOI, abstract) và đính kèm PDF nếu có
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Cách 2: Add bằng DOI / ISBN / arXiv ID
|
|
86
|
+
```
|
|
87
|
+
Zotero → click icon "Add by Identifier" (cây đũa thần)
|
|
88
|
+
→ Nhập DOI: 10.1109/TIFS.2023.xxxxxxx
|
|
89
|
+
→ Nhập arXiv ID: 2301.12345
|
|
90
|
+
→ Zotero tự fetch toàn bộ metadata
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Cách 3: Import từ PDF có sẵn
|
|
94
|
+
```
|
|
95
|
+
Kéo file PDF vào Zotero
|
|
96
|
+
→ Zotero tự nhận dạng metadata từ PDF
|
|
97
|
+
→ Nếu metadata sai: chuột phải → Retrieve Metadata
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
> "Tip: Tạo một **Collection** riêng cho paper của bạn
|
|
101
|
+
> trong Zotero (chuột phải → New Collection) để dễ quản lý."
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Step 3: Insert Citation — theo writing format
|
|
106
|
+
|
|
107
|
+
### Trước tiên — hỏi user có thể tự insert không
|
|
108
|
+
|
|
109
|
+
> "Bạn có thể tự chèn citation vào bài viết không (theo hướng dẫn Zotero ở trên), hay muốn mình hỗ trợ chèn trực tiếp?"
|
|
110
|
+
|
|
111
|
+
**Nếu user tự làm được** → tiếp tục hướng dẫn theo writing format bên dưới.
|
|
112
|
+
|
|
113
|
+
**Nếu user KHÔNG tự làm được** → chuyển sang **Auto-Insert Mode**:
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
### Auto-Insert Mode
|
|
118
|
+
|
|
119
|
+
Yêu cầu user upload 2 thứ:
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
BẠN CẦN CUNG CẤP 2 FILE
|
|
123
|
+
════════════════════════════════════════════════════════
|
|
124
|
+
|
|
125
|
+
File 1 — Bài viết của bạn
|
|
126
|
+
(.tex / .docx / .md / .txt đều được)
|
|
127
|
+
|
|
128
|
+
File 2 — Danh sách references
|
|
129
|
+
Có thể là một trong các dạng:
|
|
130
|
+
• File .bib từ Zotero (recommend)
|
|
131
|
+
• File .txt với mỗi dòng là một reference
|
|
132
|
+
• Paste trực tiếp danh sách references vào chat
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Sau khi user cung cấp, hỏi thêm:
|
|
136
|
+
|
|
137
|
+
> "Bạn có note sẵn chỗ nào cần chèn reference nào không?"
|
|
138
|
+
|
|
139
|
+
#### Nếu user có note sẵn
|
|
140
|
+
|
|
141
|
+
Yêu cầu user cung cấp note theo một trong hai dạng:
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
DẠNG NOTE ĐƯỢC CHẤP NHẬN
|
|
145
|
+
════════════════════════════════════════════════════════
|
|
146
|
+
|
|
147
|
+
Dạng 1 — Inline trong bài viết:
|
|
148
|
+
"Deep learning has achieved state-of-the-art results
|
|
149
|
+
[REF: goodfellow2014] in many domains."
|
|
150
|
+
|
|
151
|
+
Dạng 2 — Danh sách riêng:
|
|
152
|
+
- Đoạn "adversarial attacks bypass detection..." → [zhang2023]
|
|
153
|
+
- Đoạn "IDS systems use ML models..." → [li2022, wang2021]
|
|
154
|
+
- Paragraph 3, câu 2 → [chen2023]
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Sau khi nhận note, thực hiện:
|
|
158
|
+
1. Map từng note với entry tương ứng trong references list
|
|
159
|
+
2. Chèn citation đúng syntax theo `writing_format` và `citation_style`
|
|
160
|
+
3. Xuất ra bản bài viết đã có citation, kèm summary những chỗ đã chèn
|
|
161
|
+
|
|
162
|
+
#### Nếu user KHÔNG có note — Auto-Match Mode
|
|
163
|
+
|
|
164
|
+
Thông báo:
|
|
165
|
+
|
|
166
|
+
> "Không có note thì mình sẽ tự phân tích bài viết và chèn references phù hợp với từng fact/claim. Mình sẽ ưu tiên chèn ở những vị trí sau:"
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
THỨ TỰ ƯU TIÊN CHÈN CITATION TỰ ĐỘNG
|
|
170
|
+
════════════════════════════════════════════════════════
|
|
171
|
+
|
|
172
|
+
Ưu tiên 1 — Factual claims
|
|
173
|
+
"X has been shown to..." / "Studies indicate that..."
|
|
174
|
+
"X achieves Y% accuracy..." / "X is widely used..."
|
|
175
|
+
|
|
176
|
+
Ưu tiên 2 — Method descriptions
|
|
177
|
+
Khi nhắc đến tên method/algorithm/framework
|
|
178
|
+
đã được đề xuất trong một paper cụ thể
|
|
179
|
+
|
|
180
|
+
Ưu tiên 3 — Background statements
|
|
181
|
+
Câu mở đầu của Introduction hoặc Related Work
|
|
182
|
+
thường cần 1-2 citation để support
|
|
183
|
+
|
|
184
|
+
KHÔNG chèn citation vào:
|
|
185
|
+
• Kết quả của chính bài này (your own findings)
|
|
186
|
+
• Câu chuyển tiếp / transitional sentences
|
|
187
|
+
• Định nghĩa quá phổ biến / common knowledge
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Sau khi phân tích:
|
|
191
|
+
1. List ra tất cả vị trí dự kiến chèn citation + reference tương ứng
|
|
192
|
+
2. Hỏi: "Bạn có muốn review danh sách này trước không, hay mình chèn luôn?"
|
|
193
|
+
3. Nếu user confirm → chèn vào bài và xuất ra bản hoàn chỉnh
|
|
194
|
+
4. Kèm **Citation Summary Table**:
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
CITATION SUMMARY
|
|
198
|
+
════════════════════════════════════════════════════════
|
|
199
|
+
|
|
200
|
+
# Vị trí (section + câu đầu) Reference chèn
|
|
201
|
+
─ ──────────────────────────── ───────────────
|
|
202
|
+
1 Intro, câu 2: "DL has..." [goodfellow2014]
|
|
203
|
+
2 Related Work, para 1 [zhang2023, li2022]
|
|
204
|
+
3 Method, câu định nghĩa IDS [buczak2016]
|
|
205
|
+
...
|
|
206
|
+
|
|
207
|
+
Tổng: X citation đã chèn
|
|
208
|
+
Không khớp được: Y claim (xem ghi chú bên dưới)
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Với các claim không khớp được reference nào trong list, ghi rõ:
|
|
212
|
+
> "Mình không tìm thấy reference phù hợp cho claim này trong danh sách bạn cung cấp. Bạn có thể tìm thêm paper hoặc dùng `/paper:cite` lại sau khi thêm vào Zotero."
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
### Nếu writing_format = latex
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
WORKFLOW: ZOTERO + LATEX / OVERLEAF
|
|
220
|
+
════════════════════════════════════════════════════════
|
|
221
|
+
|
|
222
|
+
BƯỚC 1 — Export BibTeX từ Zotero:
|
|
223
|
+
┌─────────────────────────────────────────────────┐
|
|
224
|
+
│ Cách A: Export thủ công (dùng cho Overleaf) │
|
|
225
|
+
│ Chọn collection → File → Export Library │
|
|
226
|
+
│ → Format: BibTeX → Lưu thành "references.bib" │
|
|
227
|
+
│ → Upload file .bib lên Overleaf project │
|
|
228
|
+
│ │
|
|
229
|
+
│ Cách B: Better BibTeX (tự động sync — recommend) │
|
|
230
|
+
│ 1. Cài add-on: github.com/retorquere/ │
|
|
231
|
+
│ zotero-better-bibtex/releases │
|
|
232
|
+
│ 2. Collection → chuột phải → │
|
|
233
|
+
│ "Export Collection" → Better BibTeX │
|
|
234
|
+
│ 3. Tick "Keep updated" → file .bib tự sync │
|
|
235
|
+
│ mỗi khi thêm paper mới vào Zotero │
|
|
236
|
+
└─────────────────────────────────────────────────┘
|
|
237
|
+
|
|
238
|
+
BƯỚC 2 — Link .bib file trong LaTeX:
|
|
239
|
+
\bibliography{references} % cuối document
|
|
240
|
+
\bibliographystyle{IEEEtran} % hoặc style phù hợp
|
|
241
|
+
|
|
242
|
+
BƯỚC 3 — Cite trong văn bản:
|
|
243
|
+
\cite{zhang2023adversarial} % single citation
|
|
244
|
+
\cite{zhang2023,li2022,wang2021} % multiple citations
|
|
245
|
+
|
|
246
|
+
BƯỚC 4 — Citation key format (Better BibTeX default):
|
|
247
|
+
AuthorYearKeyword → zhang2023adversarial
|
|
248
|
+
Xem key trong Zotero: cột "Citation Key"
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
```
|
|
252
|
+
VÍ DỤ THỰC TẾ TRONG OVERLEAF
|
|
253
|
+
════════════════════════════════════════════════════════
|
|
254
|
+
|
|
255
|
+
% Trong phần Related Work:
|
|
256
|
+
Previous work on adversarial attacks \cite{goodfellow2014}
|
|
257
|
+
has shown that deep neural networks are vulnerable.
|
|
258
|
+
Several IDS systems \cite{zhang2023,li2022} have
|
|
259
|
+
attempted to address this limitation.
|
|
260
|
+
|
|
261
|
+
% Compile → References tự xuất hiện cuối bài
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
### Nếu writing_format = word
|
|
267
|
+
|
|
268
|
+
```
|
|
269
|
+
WORKFLOW: ZOTERO + MICROSOFT WORD
|
|
270
|
+
════════════════════════════════════════════════════════
|
|
271
|
+
|
|
272
|
+
BƯỚC 1 — Cài Zotero Word Plugin:
|
|
273
|
+
Zotero tự cài khi install → kiểm tra trong Word:
|
|
274
|
+
Tab "Zotero" phải xuất hiện trên ribbon
|
|
275
|
+
|
|
276
|
+
Nếu không thấy tab Zotero trong Word:
|
|
277
|
+
Zotero → Edit → Preferences → Cite → Word Processors
|
|
278
|
+
→ Install Microsoft Word Add-in
|
|
279
|
+
|
|
280
|
+
BƯỚC 2 — Chọn citation style:
|
|
281
|
+
Word → Tab Zotero → Document Preferences
|
|
282
|
+
→ Chọn style: IEEE / APA 7th / v.v.
|
|
283
|
+
|
|
284
|
+
BƯỚC 3 — Insert citation:
|
|
285
|
+
1. Đặt cursor vào vị trí muốn cite
|
|
286
|
+
2. Tab Zotero → "Add/Edit Citation" (Ctrl+Alt+A)
|
|
287
|
+
3. Gõ tên tác giả hoặc keyword → chọn paper
|
|
288
|
+
4. Enter → citation tự chèn vào đúng format
|
|
289
|
+
|
|
290
|
+
BƯỚC 4 — Insert bibliography:
|
|
291
|
+
Đặt cursor cuối bài → Tab Zotero →
|
|
292
|
+
"Add/Edit Bibliography" → danh sách tài liệu
|
|
293
|
+
tham khảo tự xuất hiện và tự cập nhật
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
```
|
|
297
|
+
VÍ DỤ THỰC TẾ TRONG WORD
|
|
298
|
+
════════════════════════════════════════════════════════
|
|
299
|
+
|
|
300
|
+
Gõ văn bản → đặt cursor sau câu →
|
|
301
|
+
Zotero → Add/Edit Citation → tìm "Zhang adversarial"
|
|
302
|
+
→ chọn paper → Enter
|
|
303
|
+
|
|
304
|
+
Kết quả tự động theo style:
|
|
305
|
+
IEEE: ... has been studied [1].
|
|
306
|
+
APA 7: ... has been studied (Zhang et al., 2023).
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
### Nếu writing_format = markdown
|
|
312
|
+
|
|
313
|
+
```
|
|
314
|
+
WORKFLOW: ZOTERO + MARKDOWN (Pandoc)
|
|
315
|
+
════════════════════════════════════════════════════════
|
|
316
|
+
|
|
317
|
+
BƯỚC 1 — Export .bib file từ Zotero:
|
|
318
|
+
Collection → chuột phải → Export Collection
|
|
319
|
+
→ Format: BibTeX → Lưu thành "references.bib"
|
|
320
|
+
(Recommend dùng Better BibTeX để auto-sync)
|
|
321
|
+
|
|
322
|
+
BƯỚC 2 — Cite trong Markdown:
|
|
323
|
+
[@zhang2023adversarial] % single
|
|
324
|
+
[@zhang2023; @li2022] % multiple
|
|
325
|
+
|
|
326
|
+
BƯỚC 3 — Convert sang PDF/DOCX với Pandoc:
|
|
327
|
+
pandoc paper.md \
|
|
328
|
+
--citeproc \
|
|
329
|
+
--bibliography references.bib \
|
|
330
|
+
--csl ieee.csl \
|
|
331
|
+
-o paper.pdf
|
|
332
|
+
|
|
333
|
+
Tải CSL file tại: github.com/citation-style-language/styles
|
|
334
|
+
→ Tìm "ieee.csl", "apa.csl", v.v.
|
|
335
|
+
|
|
336
|
+
BƯỚC 4 — Nếu dùng Obsidian:
|
|
337
|
+
Cài plugin "Pandoc Reference List" hoặc "Citations"
|
|
338
|
+
→ Gõ [[ hoặc @ để autocomplete citation key từ .bib
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
## Step 4: Common Mistakes & Fixes
|
|
344
|
+
|
|
345
|
+
Sau khi hướng dẫn xong workflow, đề cập các lỗi thường gặp:
|
|
346
|
+
|
|
347
|
+
```
|
|
348
|
+
LỖI THƯỜNG GẶP
|
|
349
|
+
════════════════════════════════════════════════════════
|
|
350
|
+
|
|
351
|
+
Lỗi Nguyên nhân Fix
|
|
352
|
+
──── ──────────── ───
|
|
353
|
+
Citation key không Better BibTeX Refresh BibTeX
|
|
354
|
+
khớp trong LaTeX chưa sync trong Zotero
|
|
355
|
+
|
|
356
|
+
"?" thay vì [1] Chưa compile Compile 2 lần:
|
|
357
|
+
trong PDF BibTeX pdflatex → bibtex
|
|
358
|
+
→ pdflatex → pdflatex
|
|
359
|
+
|
|
360
|
+
Metadata sai Zotero fetch Sửa thủ công:
|
|
361
|
+
(tên tác giả, năm) nhầm chuột phải →
|
|
362
|
+
Edit Item
|
|
363
|
+
|
|
364
|
+
Thiếu DOI/URL trong Source thiếu Thêm vào field
|
|
365
|
+
reference list thông tin "DOI" trong Zotero
|
|
366
|
+
|
|
367
|
+
Google Docs không Dùng Zotero Tab Zotero →
|
|
368
|
+
có tab Zotero for Google Docs Install Google
|
|
369
|
+
chưa cài Docs Add-on
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
---
|
|
373
|
+
|
|
374
|
+
## Closing
|
|
375
|
+
|
|
376
|
+
Sau khi hướng dẫn xong, hỏi:
|
|
377
|
+
> "Bạn đang gặp khó khăn ở bước nào? Hay bạn muốn mình demo cách cite cho một đoạn văn cụ thể trong bài của bạn?"
|
|
378
|
+
|
|
379
|
+
Nếu user muốn demo cite cho một đoạn cụ thể:
|
|
380
|
+
- Yêu cầu user paste đoạn văn đó
|
|
381
|
+
- Chỉ ra vị trí nên chèn citation và lý do
|
|
382
|
+
- Show ví dụ syntax đúng theo writing_format và citation_style của họ
|
|
@@ -19,7 +19,7 @@ Enter research exploration mode. You are a thinking partner helping a first-time
|
|
|
19
19
|
- **Visual** — Use ASCII diagrams to map the research space based on the user's field.
|
|
20
20
|
- **Concrete** — Give examples relevant to whatever major the user is in.
|
|
21
21
|
- **Non-judgmental** — No topic idea is too simple or too ambitious at this stage.
|
|
22
|
-
- **
|
|
22
|
+
- **Language** — Always respond in the same language the user writes in. If they write in Vietnamese, respond in Vietnamese. If English, respond in English.
|
|
23
23
|
|
|
24
24
|
---
|
|
25
25
|
|
|
@@ -75,6 +75,57 @@ After narrowing to a specific topic, explain the gap concept:
|
|
|
75
75
|
|
|
76
76
|
> "A research gap is something that existing papers have NOT done, or haven't done well enough."
|
|
77
77
|
|
|
78
|
+
Before hunting for gaps, you need papers to read. Walk the user through finding them first.
|
|
79
|
+
|
|
80
|
+
### Step 0: Find Papers with Google Search Operators
|
|
81
|
+
|
|
82
|
+
Explain that Google Scholar + search operators is the fastest way to find relevant papers. Show concrete examples tailored to the user's topic:
|
|
83
|
+
|
|
84
|
+
> "Before we can find gaps, we need papers to read. Here's how to find them quickly using **Google Scholar** with search operators:"
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
GOOGLE SCHOLAR SEARCH OPERATORS
|
|
88
|
+
════════════════════════════════════════════════════════
|
|
89
|
+
|
|
90
|
+
Operator Example What it does
|
|
91
|
+
──────── ─────── ────────────
|
|
92
|
+
"exact phrase" "adversarial attack" Tìm đúng cụm từ
|
|
93
|
+
"SOC detection"
|
|
94
|
+
|
|
95
|
+
AND AI AND intrusion Cả hai từ phải có
|
|
96
|
+
detection AND framework
|
|
97
|
+
|
|
98
|
+
OR IDS OR SIEM Một trong hai
|
|
99
|
+
|
|
100
|
+
-word detection -image Loại trừ từ này
|
|
101
|
+
|
|
102
|
+
intitle: intitle:adversarial Từ phải có trong
|
|
103
|
+
intitle:SOC framework tiêu đề paper
|
|
104
|
+
|
|
105
|
+
after:2021 adversarial IDS Chỉ paper sau năm
|
|
106
|
+
after:2021 2021
|
|
107
|
+
|
|
108
|
+
COMBO EXAMPLE:
|
|
109
|
+
"adversarial attack" AND IDS intitle:framework after:2022
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
After showing the operators, generate a **ready-to-use search query** based on the user's specific topic:
|
|
113
|
+
> "For your topic, try this query on scholar.google.com: `[generate query from user's topic]`"
|
|
114
|
+
|
|
115
|
+
Then explain how to save papers:
|
|
116
|
+
|
|
117
|
+
> **Saving papers as PDF:**
|
|
118
|
+
> 1. Click a result on Google Scholar → look for **[PDF]** link on the right
|
|
119
|
+
> 2. If no PDF link → click the title → look for "Download PDF" on the publisher page
|
|
120
|
+
> 3. If paywalled → try **Sci-Hub** (sci-hub.se) or **Unpaywall** (browser extension)
|
|
121
|
+
> 4. Save with a clear filename: `AuthorYear_KeyTopic.pdf` (e.g., `Zhang2023_AdversarialIDS.pdf`)
|
|
122
|
+
> 5. Aim for **5–10 papers** before the next step
|
|
123
|
+
|
|
124
|
+
Ask:
|
|
125
|
+
> "Try the search query above and save 3–5 papers as PDF. Once you have them, come back and we'll scan for gaps together. Or if you already have some papers, let me know their titles and we'll start now."
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
78
129
|
If the user doesn't know where to start, teach them these 3 concrete techniques:
|
|
79
130
|
|
|
80
131
|
### Technique 1: Future Work Mining
|
|
@@ -150,4 +201,48 @@ When topic + gap + RQ all feel concrete, summarize:
|
|
|
150
201
|
Ready to plan your paper? Use `/paper:plan` to continue.
|
|
151
202
|
```
|
|
152
203
|
|
|
204
|
+
After showing the summary, briefly preview what the **Introduction** section will look like — so the user knows what their topic/gap/RQ will turn into:
|
|
205
|
+
|
|
206
|
+
> "Những gì vừa tìm ra sẽ trở thành **Introduction** của bài báo. Introduction không chia thành các subsection — thay vào đó được viết liền mạch qua 5 đoạn theo flow sau:"
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
CẤU TRÚC INTRODUCTION (6 đoạn, không có heading con)
|
|
210
|
+
════════════════════════════════════════════════════════
|
|
211
|
+
|
|
212
|
+
Đoạn 1 — Background / Context
|
|
213
|
+
Bối cảnh rộng của lĩnh vực, tại sao topic này
|
|
214
|
+
quan trọng. Thường 3–5 câu, có 1–2 citation.
|
|
215
|
+
→ Từ "Field" và "Specific Topic" bạn vừa xác định
|
|
216
|
+
|
|
217
|
+
Đoạn 2 — Problem Statement
|
|
218
|
+
Vấn đề cụ thể mà research này giải quyết.
|
|
219
|
+
Phải rõ ràng và có thể đo được.
|
|
220
|
+
→ Từ "Problem" bạn vừa xác định
|
|
221
|
+
|
|
222
|
+
Đoạn 3 — Gap
|
|
223
|
+
Tại sao các giải pháp hiện có chưa đủ?
|
|
224
|
+
Đây là lý do bài báo này cần tồn tại.
|
|
225
|
+
→ Từ "Gap" bạn vừa xác định
|
|
226
|
+
|
|
227
|
+
Đoạn 4 — Research Question
|
|
228
|
+
Câu hỏi cụ thể mà paper này đặt ra và trả lời.
|
|
229
|
+
"This raises the question: [RQ của bạn]"
|
|
230
|
+
Hoặc: "To address this gap, this paper asks: ..."
|
|
231
|
+
→ Từ "Research Question" bạn vừa xác định
|
|
232
|
+
|
|
233
|
+
Đoạn 5 — Contributions
|
|
234
|
+
"In this paper, we propose/present/introduce..."
|
|
235
|
+
Liệt kê (1), (2), (3) — mỗi contribution 1 câu.
|
|
236
|
+
→ Từ "Expected Contribution" bạn vừa xác định
|
|
237
|
+
|
|
238
|
+
Đoạn 6 — Paper Structure
|
|
239
|
+
"The rest of this paper is organized as follows:
|
|
240
|
+
Section 2 reviews... Section 3 presents..."
|
|
241
|
+
Viết cuối cùng sau khi biết đủ các section.
|
|
242
|
+
|
|
243
|
+
════════════════════════════════════════════════════════
|
|
244
|
+
Học cách viết từng đoạn: /paper:teach intro
|
|
245
|
+
Bắt đầu lên outline đầy đủ: /paper:plan
|
|
246
|
+
```
|
|
247
|
+
|
|
153
248
|
If the user wants to keep exploring, continue — no pressure to rush.
|
|
@@ -9,7 +9,7 @@ metadata:
|
|
|
9
9
|
|
|
10
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
11
|
|
|
12
|
-
**
|
|
12
|
+
**Language** — Always respond in the same language the user writes in. If they write in Vietnamese, respond in Vietnamese. If English, respond in English.
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
@@ -77,7 +77,51 @@ CONTRIBUTION TYPES
|
|
|
77
77
|
|
|
78
78
|
**Q6**: "What venue are you targeting?" *(e.g., a conference, journal, or course submission)*
|
|
79
79
|
|
|
80
|
-
**Q7**: "
|
|
80
|
+
**Q7**: "Do you have a working title for your paper? If not, I can suggest a few options."
|
|
81
|
+
|
|
82
|
+
If the user has a title — accept it, give brief feedback (too vague? too long? good?), and move on.
|
|
83
|
+
|
|
84
|
+
If the user doesn't have a title yet, generate **3 title options** based on topic, contribution type, and venue from Q1–Q6. Follow these patterns by contribution type:
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
TITLE PATTERNS BY CONTRIBUTION TYPE
|
|
88
|
+
══════════════════════════════════════════════════════════
|
|
89
|
+
|
|
90
|
+
new-method [Method Name]: [What it does] for [Problem]
|
|
91
|
+
e.g., "AdverSOC: A Robustness Evaluation
|
|
92
|
+
Framework for AI-based SOC Systems"
|
|
93
|
+
|
|
94
|
+
survey A Survey of [Topic]: [Angle or Scope]
|
|
95
|
+
e.g., "A Survey of Adversarial Attacks on
|
|
96
|
+
ML-based Intrusion Detection Systems"
|
|
97
|
+
|
|
98
|
+
framework [Adjective] Framework for [Task] in [Context]
|
|
99
|
+
e.g., "A Systematic Framework for Evaluating
|
|
100
|
+
Adversarial Robustness in AI-driven SOC"
|
|
101
|
+
|
|
102
|
+
benchmark [Name]Bench: Benchmarking [Topic] for [Use]
|
|
103
|
+
e.g., "SOCBench: A Benchmark for Adversarial
|
|
104
|
+
Robustness of AI-based Threat Detection"
|
|
105
|
+
|
|
106
|
+
case-study [Topic] in [Context]: A Case Study of [Focus]
|
|
107
|
+
|
|
108
|
+
new-dataset [DatasetName]: A [Size/Type] Dataset for [Task]
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Title quality checklist — each suggested title should:
|
|
112
|
+
- Be under 15 words
|
|
113
|
+
- Contain the key technical terms reviewers search for
|
|
114
|
+
- Not use vague words like "Novel", "New", "Improved" alone
|
|
115
|
+
- Match the formality level of the target venue
|
|
116
|
+
|
|
117
|
+
After showing 3 options:
|
|
118
|
+
> "Which of these feels closest to your intent? Or we can mix elements from different options."
|
|
119
|
+
|
|
120
|
+
Save the chosen title (or user's own) to context.yaml.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
**Q8**: "What format are you writing in?"
|
|
81
125
|
|
|
82
126
|
```
|
|
83
127
|
WRITING FORMAT
|
|
@@ -99,6 +143,58 @@ WRITING FORMAT
|
|
|
99
143
|
|
|
100
144
|
*(If unsure, ask: "Are you using Overleaf or a .tex file? → latex. Word/Google Docs? → word. Anything else? → markdown")*
|
|
101
145
|
|
|
146
|
+
**Q8**: "What citation style does your venue require?"
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
CITATION STYLES
|
|
150
|
+
══════════════════════════════════════════════════════════
|
|
151
|
+
|
|
152
|
+
Style Used in Example
|
|
153
|
+
───── ─────── ───────
|
|
154
|
+
IEEE CS, Engineering, Tech [1], [2], [3]
|
|
155
|
+
conferences & journals
|
|
156
|
+
(IEEE, ACM, Springer LNCS)
|
|
157
|
+
|
|
158
|
+
APA 7th Social Sciences, Psychology, (Smith, 2023)
|
|
159
|
+
Education, Business,
|
|
160
|
+
Health Sciences
|
|
161
|
+
|
|
162
|
+
ACS Chemistry, Life Sciences 1. Author...
|
|
163
|
+
|
|
164
|
+
Vancouver Medicine, Clinical Research (1), (2)
|
|
165
|
+
|
|
166
|
+
Chicago Humanities, History, Footnotes or
|
|
167
|
+
Arts Author-Date
|
|
168
|
+
|
|
169
|
+
MLA Literature, Arts, (Smith 45)
|
|
170
|
+
Humanities courses
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
If the user is unsure, **recommend based on their field and venue from Q2 and Q6**:
|
|
174
|
+
|
|
175
|
+
> "Based on your field and venue, here's what's typically expected:"
|
|
176
|
+
|
|
177
|
+
```
|
|
178
|
+
RECOMMENDATION LOGIC
|
|
179
|
+
══════════════════════════════════════════════════════════
|
|
180
|
+
|
|
181
|
+
CS / Engineering + conference/journal → IEEE
|
|
182
|
+
CS / Engineering + course submission → Ask supervisor,
|
|
183
|
+
default IEEE
|
|
184
|
+
|
|
185
|
+
Social Sciences / Education / HCI → APA 7th
|
|
186
|
+
Business / Economics → APA 7th
|
|
187
|
+
Health / Medicine / Biology → Vancouver or APA
|
|
188
|
+
Chemistry / Life Sciences → ACS
|
|
189
|
+
Humanities / Literature → MLA or Chicago
|
|
190
|
+
|
|
191
|
+
Venue named explicitly (e.g. IEEE Access, ACM CCS)
|
|
192
|
+
→ Always follow that venue's author guidelines
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
If the venue has explicit author guidelines, remind:
|
|
196
|
+
> "Check the venue's official **Author Guidelines** page — citation style is always specified there and overrides any default."
|
|
197
|
+
|
|
102
198
|
---
|
|
103
199
|
|
|
104
200
|
## Step 3: Generate outline
|
|
@@ -225,6 +321,7 @@ After the user approves the outline, write `paper/context.yaml`:
|
|
|
225
321
|
```yaml
|
|
226
322
|
schema: research-paper
|
|
227
323
|
topic: "[user's topic]"
|
|
324
|
+
title: "[working title]"
|
|
228
325
|
field: "[field]"
|
|
229
326
|
subfield: "[subfield]"
|
|
230
327
|
paper_type: [empirical|review|theoretical|mixed]
|
|
@@ -233,6 +330,7 @@ research_questions:
|
|
|
233
330
|
contribution_type: [new-method|survey|new-dataset|framework|case-study|benchmark]
|
|
234
331
|
target_venue: "[venue]"
|
|
235
332
|
writing_format: [latex|word|markdown]
|
|
333
|
+
citation_style: [ieee|apa7|acs|vancouver|chicago|mla]
|
|
236
334
|
current_phase: writing
|
|
237
335
|
sections_status:
|
|
238
336
|
introduction: not-started
|