@lylll9436/paper-polish-workflow-skill 2.1.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 (38) hide show
  1. package/.claude/skills/ppw-abstract/SKILL.md +239 -0
  2. package/.claude/skills/ppw-caption/SKILL.md +284 -0
  3. package/.claude/skills/ppw-cover-letter/SKILL.md +230 -0
  4. package/.claude/skills/ppw-de-ai/SKILL.md +299 -0
  5. package/.claude/skills/ppw-experiment/SKILL.md +290 -0
  6. package/.claude/skills/ppw-literature/SKILL.md +237 -0
  7. package/.claude/skills/ppw-logic/SKILL.md +316 -0
  8. package/.claude/skills/ppw-polish/SKILL.md +265 -0
  9. package/.claude/skills/ppw-repo-to-paper/SKILL.md +460 -0
  10. package/.claude/skills/ppw-reviewer-simulation/SKILL.md +284 -0
  11. package/.claude/skills/ppw-team/SKILL.md +242 -0
  12. package/.claude/skills/ppw-translation/SKILL.md +264 -0
  13. package/.claude/skills/ppw-update/SKILL.md +156 -0
  14. package/.claude/skills/ppw-visualization/SKILL.md +250 -0
  15. package/CHANGELOG.md +53 -0
  16. package/CONTRIBUTING.md +106 -0
  17. package/CONTRIBUTING_CN.md +106 -0
  18. package/LICENSE +21 -0
  19. package/README.md +313 -0
  20. package/examples/abstract-polishing-session.md +263 -0
  21. package/package.json +38 -0
  22. package/paper-polish-workflow/SKILL.md +160 -0
  23. package/references/anti-ai-patterns/sentence-patterns.md +33 -0
  24. package/references/anti-ai-patterns/transitions-and-tone.md +32 -0
  25. package/references/anti-ai-patterns/vocabulary.md +36 -0
  26. package/references/anti-ai-patterns.md +56 -0
  27. package/references/bilingual-output.md +95 -0
  28. package/references/body-generation-rules.md +121 -0
  29. package/references/expression-patterns/conclusions-and-claims.md +41 -0
  30. package/references/expression-patterns/geography-domain.md +50 -0
  31. package/references/expression-patterns/introduction-and-gap.md +41 -0
  32. package/references/expression-patterns/methods-and-data.md +41 -0
  33. package/references/expression-patterns/results-and-discussion.md +41 -0
  34. package/references/expression-patterns.md +67 -0
  35. package/references/journals/ceus.md +121 -0
  36. package/references/repo-patterns.md +96 -0
  37. package/references/skill-conventions.md +273 -0
  38. package/references/skill-skeleton.md +169 -0
@@ -0,0 +1,290 @@
1
+ ---
2
+ name: ppw:experiment
3
+ description: >-
4
+ Analyze experiment results and generate discussion paragraphs for academic papers.
5
+ Two-phase workflow: identify measurable findings (Phase 1), confirm with user,
6
+ then generate grounded discussion paragraphs (Phase 2).
7
+ Accepts tables, statistics, or result descriptions. 实验分析与讨论段落生成。
8
+ triggers:
9
+ primary_intent: analyze experiment results and generate discussion paragraphs
10
+ examples:
11
+ - "Analyze my experiment results"
12
+ - "帮我分析实验结果"
13
+ - "Generate discussion for my results table"
14
+ - "把我的实验数据写成讨论段"
15
+ - "Write discussion paragraphs for my findings"
16
+ - "帮我写实验讨论部分"
17
+ - "Identify patterns in my experiment data"
18
+ tools:
19
+ - Read
20
+ - Write
21
+ - Structured Interaction
22
+ references:
23
+ required:
24
+ - references/expression-patterns.md
25
+ - references/bilingual-output.md
26
+ leaf_hints:
27
+ - references/expression-patterns/results-and-discussion.md
28
+ - references/expression-patterns/conclusions-and-claims.md
29
+ - references/expression-patterns/methods-and-data.md
30
+ - references/anti-ai-patterns/vocabulary.md
31
+ input_modes:
32
+ - file
33
+ - pasted_text
34
+ - structured_data
35
+ output_contract:
36
+ - pattern_analysis
37
+ - discussion_paragraphs
38
+ - bilingual_discussion
39
+ ---
40
+
41
+ ## Purpose
42
+
43
+ This Skill accepts experiment result data — tables, statistics, or result descriptions —
44
+ and runs a two-phase workflow. Phase 1 extracts measurable findings from the data and
45
+ presents a structured Finding list for user confirmation. Phase 2 generates discussion
46
+ paragraphs for each confirmed finding, using grounded evidence language followed by
47
+ calibrated interpretation. Literature connections are never invented: the Skill asks
48
+ the user to provide prior work, and writes `[CONNECT TO: ...]` placeholders when none
49
+ is supplied. The Skill serves researchers preparing results and discussion sections for
50
+ journal or conference submission.
51
+
52
+ ## Core Prompt
53
+
54
+ > Source: [awesome-ai-research-writing](https://github.com/Leey21/awesome-ai-research-writing) — 实验分析
55
+
56
+ ````markdown
57
+ # Role
58
+ 你是一位具有敏锐洞察力的资深数据科学家,擅长处理复杂的实验数据并撰写高质量的学术分析报告。
59
+
60
+ # Task
61
+ 请仔细阅读我提供的【实验数据】从中挖掘关键特征、趋势和对比结论,并将其整理为符合顶级会议标准的 LaTeX 分析段落。
62
+
63
+ # Constraints
64
+ 1. 数据真实性:
65
+ - 所有结论必须严格基于输入的数据。严禁编造数据、夸大提升幅度或捏造不存在的实验现象。
66
+ - 如果数据中没有明显的优势或趋势,请如实描述,不要强行总结所谓的显著提升。
67
+
68
+ 2. 分析深度:
69
+ - 拒绝简单的报账式描述(例如不要只说 A 是 0.5,B 是 0.6),重点在于比较和趋势分析。
70
+ - 关注点包括:方法的有效性(SOTA 比较)、参数的敏感性、性能与效率的权衡,以及消融实验中的关键模块贡献。
71
+
72
+ 3. 排版与格式规范:
73
+ - 严禁使用加粗或斜体:正文中不要使用 \textbf 或 \emph,依靠文字逻辑来表达重点。
74
+ - 结构强制:必须使用 \paragraph{核心结论} + 分析文本 的形式。
75
+ * \paragraph{} 中填写高度凝练的短语结论(使用 Title Case 格式)。
76
+ * 紧接着在同一段落中展开具体的数值分析和逻辑推演。
77
+ - 不要使用列表环境,保持纯文本段落。
78
+
79
+ 4. 输出格式:
80
+ - Part 1 [LaTeX]:只输出分析后的 LaTeX 代码。
81
+ * 必须对特殊字符进行转义(例如:`%`、`_`、`&`)。
82
+ * 保持数学公式原样(保留 `$` 符号)。
83
+ * 不同的结论点之间请空一行。
84
+ - Part 2 [Translation]:对应的中文直译(用于核对数据结论是否准确)。
85
+ - 除以上两部分外,不要输出任何多余的对话。
86
+ ````
87
+
88
+ ## Trigger
89
+
90
+ **Activates when the user asks to:**
91
+ - Analyze experiment results, identify patterns, or extract findings from result data
92
+ - Generate discussion paragraphs from confirmed findings
93
+ - 分析实验结果、识别规律、生成讨论段落
94
+
95
+ **Example invocations:**
96
+ - "Analyze my results table and write discussion"
97
+ - "帮我分析实验结果并写讨论段"
98
+ - "Generate discussion paragraphs for my findings"
99
+ - "What patterns do my experiment results show?"
100
+
101
+ ## Modes
102
+
103
+ | Mode | Default | Behavior |
104
+ |------|---------|----------|
105
+ | `direct` | Yes | Full two-phase workflow: Phase 1 finding list → user confirm → Phase 2 discussion |
106
+ | `batch` | | Not supported — experiment analysis requires full context of the complete results set |
107
+
108
+ **Default mode:** `direct`. User provides result data and gets Phase 1 finding list, confirms,
109
+ then receives Phase 2 discussion paragraphs.
110
+
111
+ **Mode inference:** "Just identify findings" or "只分析不写讨论" runs Phase 1 only.
112
+
113
+ ## References
114
+
115
+ ### Required (always loaded)
116
+
117
+ | File | Purpose |
118
+ |------|---------|
119
+ | `references/expression-patterns.md` | Expression patterns overview; loaded at Phase 1 start |
120
+
121
+ ### Leaf Hints (loaded in Phase 2)
122
+
123
+ | File | When to Load |
124
+ |------|--------------|
125
+ | `references/expression-patterns/results-and-discussion.md` | Always in Phase 2 — result reporting and pattern interpretation language |
126
+ | `references/expression-patterns/conclusions-and-claims.md` | Always in Phase 2 — calibrated claim language (suggests, indicates, scope) |
127
+ | `references/expression-patterns/methods-and-data.md` | In Phase 2 if user's result description includes method details needing clarification |
128
+ | `references/anti-ai-patterns/vocabulary.md` | In Phase 2 — screen generated output for AI-sounding vocabulary |
129
+
130
+ ### Conditional
131
+
132
+ | File | When to Load |
133
+ |------|--------------|
134
+ | `references/journals/[journal].md` | When user specifies a target journal. If missing, **refuse**: "Journal template for [X] not found. Available: CEUS." |
135
+
136
+ ## Ask Strategy
137
+
138
+ **Before starting, ask about:**
139
+ 1. Research questions: "What are the main research questions this experiment addresses?"
140
+ (Required — Phase 2 uses these to connect findings to purpose)
141
+ 2. Prior work to connect to: "Which papers or findings should the discussion reference?"
142
+ (Optional — ask once; if declined, use `[CONNECT TO: ...]` placeholders in Phase 2)
143
+ 3. Target journal (if not specified): ask once; if declined, use general academic style
144
+
145
+ **Rules:**
146
+ - Never ask more than 3 questions before starting Phase 1
147
+ - Research questions are mandatory; the Skill cannot produce grounded Phase 2 output without them
148
+ - If the user declines to provide research questions, write `[RESEARCH QUESTION: describe your RQ here]`
149
+ placeholders rather than blocking the workflow entirely
150
+
151
+ ## Workflow
152
+
153
+ ### Step 0: Workflow Memory Check
154
+
155
+ - Read `.planning/workflow-memory.json`. If file missing or empty, skip to Phase 1.
156
+ - Check if the last 1-2 log entries form a recognized pattern with `ppw:experiment` that has appeared >= threshold times in the log. See `skill-conventions.md > Workflow Memory > Pattern Detection` for the full algorithm.
157
+ - If a pattern is found, present recommendation via AskUserQuestion:
158
+ - Question: "检测到常用流程:[pattern](已出现 N 次)。是否直接以 direct 模式运行 ppw:experiment?"
159
+ - Options: "Yes, proceed" / "No, continue normally"
160
+ - If user accepts: set mode to `direct`, skip Ask Strategy questions.
161
+ - If user declines or AskUserQuestion unavailable: continue in normal mode.
162
+
163
+ ### Phase 1: Analyze Results
164
+
165
+ **Step 1 — Prepare:**
166
+ - Load `references/expression-patterns.md` overview
167
+ - If a journal was specified, load its template; if template is missing, refuse with message above
168
+ - Read input: file via Read tool, pasted results block (table, statistics, narrative), or structured_data
169
+ - **Opt-out check:** Scan the user's trigger prompt for any of these phrases (case-insensitive, exact phrase match): `english only`, `no bilingual`, `only english`, `不要中文`. Store result as `bilingual_mode` (true/false). This flag governs Phase 2 bilingual output below.
170
+ - **Guard — measurable data required:** if input is vague (e.g., "my results show improvement"
171
+ without values, comparisons, or metrics), refuse: "Please provide specific values, comparisons,
172
+ or metrics before I can identify findings."
173
+ - LaTeX table input: read data values and captions; ignore typesetting commands
174
+ - **Record workflow:** Append `{"skill": "ppw:experiment", "ts": "<ISO timestamp>"}` to `.planning/workflow-memory.json`. Create file as `[]` if missing. Drop oldest entry if log length >= 50.
175
+
176
+ **Step 2 — Extract Findings:**
177
+ - Identify measurable comparisons: method A vs. method B, magnitude, direction
178
+ - Identify trends: performance across conditions, dataset sizes, subgroups
179
+ - Identify outliers: results that deviate from the overall pattern
180
+ - Each finding must include: a direction (higher/lower/better/worse), a magnitude or value,
181
+ and a comparison group or condition
182
+
183
+ **Step 3 — Present Finding List:**
184
+ - Use locked format per item:
185
+ ```
186
+ Finding 1: [subject] [comparison/trend] [value] on [metric/condition]
187
+ Finding 2: Performance degrades in [condition] ([N] vs. [M])
188
+ Finding 3: [Subgroup] shows the largest effect ([value])
189
+ ```
190
+ - Summary line: "Identified N findings. Please confirm, correct, or add before I write discussion."
191
+ - Wait for user approval before proceeding to Phase 2
192
+
193
+ ---
194
+
195
+ ### Phase 2: Generate Discussion
196
+
197
+ **Step 1 — Prepare:**
198
+ - Load `references/expression-patterns/results-and-discussion.md` for evidence reporting language
199
+ - Load `references/expression-patterns/conclusions-and-claims.md` for calibrated interpretation
200
+ - Load `references/anti-ai-patterns/vocabulary.md` to screen output before presenting
201
+ - Hold any user-provided prior work for connection sentences
202
+
203
+ **Step 2 — Write Discussion Paragraphs:**
204
+ - **Follow the Core Prompt constraints above** as the primary instruction set for analysis and output formatting.
205
+ - One paragraph per confirmed finding
206
+ - Each paragraph follows this structure:
207
+ 1. **Evidence sentence:** state the finding with full quantification
208
+ (use results-and-discussion.md patterns for comparative and trend language)
209
+ 2. **Interpretation sentence:** claim using calibrated language from conclusions-and-claims.md
210
+ ("suggests", "indicates" — never lead with interpretation before evidence)
211
+ 3. **Connection sentence:** if user provided prior work, connect the finding to it;
212
+ otherwise write `[CONNECT TO: describe the prior finding here]`
213
+ - **CRITICAL rule:** Interpretation sentence must follow the evidence sentence. Never open a
214
+ paragraph with an interpretive claim without first stating the quantified evidence.
215
+ - After generating all paragraphs, check output against vocabulary.md; revise any flagged patterns
216
+
217
+ **Step 3 — Output:**
218
+ - Present all discussion paragraphs in sequence
219
+ - **Bilingual display:** If `bilingual_mode` is true: after each discussion paragraph, append a `> **[Chinese]** ...` blockquote containing the Chinese translation of that paragraph. Use a section header "**双语对照 / Bilingual Comparison:**" before the first paragraph. Format per finding paragraph:
220
+
221
+ [English discussion paragraph for Finding N]
222
+
223
+ > **[Chinese]** [Chinese translation of the discussion paragraph for Finding N]
224
+
225
+ - Do not insert Chinese into any written file. If the user requested writing discussion to the paper file via Write tool, write English-only paragraphs to the file; the Chinese blockquotes remain in conversation only.
226
+ - If `bilingual_mode` is false (opt-out detected): skip bilingual display entirely.
227
+ - If file input was used, offer to append discussion to file using Write tool
228
+ - Recommend Polish Skill for further expression refinement if higher-register prose is desired
229
+
230
+ ## Output Contract
231
+
232
+ | Output | Format | Condition |
233
+ |--------|--------|-----------|
234
+ | `pattern_analysis` | Structured Finding list (Finding N: format) | Always — Phase 1 |
235
+ | `discussion_paragraphs` | One paragraph per confirmed finding | Phase 2 only, after Phase 1 confirmation |
236
+ | `bilingual_discussion` | `> **[Chinese]** ...` blockquotes in session (one per finding paragraph) | Phase 2 only. Skipped when opt-out detected. Not written to file. |
237
+
238
+ **Note:** Phase 2 output cannot be produced without Phase 1 confirmation. If user skips Phase 1
239
+ and requests discussion directly, require Phase 1 completion first.
240
+
241
+ ## Edge Cases
242
+
243
+ | Situation | Handling |
244
+ |-----------|----------|
245
+ | Input is vague (no measurable values) | Refuse Phase 1 with: "Please provide specific values, comparisons, or metrics before I can identify findings." |
246
+ | User skips Phase 1 and asks for discussion | Require Phase 1 completion first; do not generate paragraphs without confirmed findings |
247
+ | User provides no research questions | Ask once; if declined, write `[RESEARCH QUESTION: describe your RQ here]` placeholders |
248
+ | User provides no prior literature | Use `[CONNECT TO: ...]` placeholders; do not attempt to name papers or authors |
249
+ | Only one finding identified | Produce a single discussion paragraph; do not pad or invent additional findings |
250
+ | Finding conflicts with user-stated hypothesis | Flag the discrepancy explicitly; do not suppress the conflicting result |
251
+ | Journal specified but template missing | Refuse: "Journal template for [X] not found. Available: CEUS." |
252
+ | Input is LaTeX table markup | Read data values and captions; ignore typesetting commands |
253
+ | Phase 1 produces no findings | Report "No measurable findings identified from input" and stop |
254
+
255
+ ## Fallbacks
256
+
257
+ | Scenario | Fallback |
258
+ |----------|----------|
259
+ | Structured Interaction unavailable | Ask 1-3 plain-text questions: research questions, prior work, target journal |
260
+ | Expression pattern leaf missing | Proceed with general academic register; warn user of reduced quality |
261
+ | Write tool fails | Present discussion paragraphs in conversation; user saves manually |
262
+ | Phase 1 produces no findings | Report clearly and stop; do not proceed to Phase 2 |
263
+
264
+ ## Examples
265
+
266
+ **Minimal invocation:** User pastes a results table comparing Method A and Method B on accuracy
267
+ and F1 score. User states RQ: "Does our approach outperform the baseline on both metrics?"
268
+
269
+ **Phase 1 output:**
270
+ ```
271
+ Finding 1: Method A outperforms Method B by 3.2 percentage points on accuracy (87.4% vs. 84.2%)
272
+ Finding 2: Method A outperforms Method B by 4.1 points on F1 score (82.6 vs. 78.5)
273
+
274
+ Identified 2 findings. Please confirm, correct, or add before I write discussion.
275
+ ```
276
+
277
+ **User confirms.** No prior work provided.
278
+
279
+ **Phase 2 output (Finding 1):**
280
+ ```
281
+ Method A achieves 87.4% accuracy, outperforming Method B by 3.2 percentage points (84.2%).
282
+ This suggests that the proposed approach captures more discriminative features for the task,
283
+ yielding a consistent accuracy gain across evaluation conditions.
284
+ [CONNECT TO: describe a prior finding showing similar accuracy improvements for this approach]
285
+ ```
286
+
287
+ ---
288
+
289
+ *Skill: experiment-skill*
290
+ *Conventions: references/skill-conventions.md*
@@ -0,0 +1,237 @@
1
+ ---
2
+ name: ppw:literature
3
+ description: >-
4
+ Search academic literature via Semantic Scholar MCP, select papers interactively,
5
+ and generate verified BibTeX entries. 文献检索与BibTeX生成,通过Semantic Scholar MCP。
6
+ triggers:
7
+ primary_intent: search academic literature and generate BibTeX citations
8
+ examples:
9
+ - "Find papers about urban heat island"
10
+ - "帮我找关于城市热岛的文献"
11
+ - "Search literature for spatiotemporal analysis"
12
+ - "生成这篇文章的BibTeX引用"
13
+ - "Find relevant papers on deep learning for land use classification"
14
+ - "帮我检索相关文献并生成引用格式"
15
+ tools:
16
+ - External MCP
17
+ - Structured Interaction
18
+ references:
19
+ required: []
20
+ leaf_hints: []
21
+ input_modes:
22
+ - pasted_text
23
+ output_contract:
24
+ - bibtex_entry
25
+ ---
26
+
27
+ ## Purpose
28
+
29
+ This Skill searches academic literature using the Semantic Scholar MCP, presents an interactive numbered result list (up to 10 papers), waits for the user to select a specific paper, then generates a verified BibTeX entry built exclusively from MCP-returned data. Before any workflow begins, a pre-flight probe confirms MCP availability — if unavailable, the Skill refuses immediately with setup instructions rather than proceeding with degraded capability. After the user selects a paper, a mandatory anti-hallucination verification prompt reminds the user to confirm the paper's actual relevance before committing the citation. This Skill does not write or rewrite paper content; it searches, selects, and generates citation entries only.
30
+
31
+ ## Trigger
32
+
33
+ **Activates when the user asks to:**
34
+ - Search or find academic papers on a topic
35
+ - Generate BibTeX or citation entries for a reference
36
+ - 帮我找文献、检索相关论文、帮我生成引用格式
37
+
38
+ **Example invocations:**
39
+ - "Find papers about urban heat island" / "帮我找关于城市热岛的文献"
40
+ - "Search literature for spatiotemporal analysis" / "检索时空分析相关文献"
41
+ - "Generate BibTeX for a citation" / "帮我生成BibTeX引用格式"
42
+
43
+ ## Modes
44
+
45
+ | Mode | Default | Behavior |
46
+ |------|---------|----------|
47
+ | `direct` | Yes | Single-shot search → result list → user selects → BibTeX generated; no iteration |
48
+ | `batch` | | Not supported — each search requires user selection in session |
49
+
50
+ **Default mode:** `direct`. Search is single-shot: if results are unsatisfactory, user re-triggers the Skill with different keywords.
51
+
52
+ ## References
53
+
54
+ ### Required (always loaded)
55
+
56
+ None. This is a search task — no expression pattern files needed.
57
+
58
+ ### Leaf Hints
59
+
60
+ None.
61
+
62
+ > No reference files loaded. All paper metadata sourced from Semantic Scholar MCP at runtime.
63
+
64
+ ## Ask Strategy
65
+
66
+ The Skill collects search inputs conversationally. At most two questions:
67
+
68
+ 1. **Search query** (required): the topic or keyword to search — ask only if not provided in the trigger message.
69
+ 2. **Result count** (optional): how many results to display. Default: 5. Maximum: 10.
70
+
71
+ If the user provides the topic in the trigger message, skip question 1 and proceed immediately.
72
+
73
+ ## Workflow
74
+
75
+ ### Step 0: Workflow Memory Check
76
+
77
+ - Read `.planning/workflow-memory.json`. If file missing or empty, skip to Step 1.
78
+ - Check if the last 1-2 log entries form a recognized pattern with `ppw:literature` that has appeared >= threshold times in the log. See `skill-conventions.md > Workflow Memory > Pattern Detection` for the full algorithm.
79
+ - If a pattern is found, present recommendation via AskUserQuestion:
80
+ - Question: "检测到常用流程:[pattern](已出现 N 次)。是否直接以 direct 模式运行 ppw:literature?"
81
+ - Options: "Yes, proceed" / "No, continue normally"
82
+ - If user accepts: set mode to `direct`, skip Ask Strategy questions.
83
+ - If user declines or AskUserQuestion unavailable: continue in normal mode.
84
+
85
+ ### Step 1: MCP Pre-flight Check
86
+
87
+ 1. Call `mcp__semantic-scholar__papers-search-basic` with `{"query": "test", "limit": 1}`.
88
+ 2. If the call succeeds: proceed to Step 2.
89
+ 3. If the call fails or tool is unavailable: **refuse immediately** with:
90
+
91
+ > "Semantic Scholar MCP is not available. To use this Skill:
92
+ > 1. Open Claude Code Settings → MCP Servers
93
+ > 2. Add the Semantic Scholar server (server key: `semanticscholar`)
94
+ > 3. Restart Claude Code and retry"
95
+
96
+ Do NOT proceed past this point if MCP is unavailable.
97
+
98
+ ### Step 2: Collect Search Query
99
+
100
+ 1. Extract the search topic from the trigger message if present.
101
+ 2. If topic not provided, ask: "What topic or keywords should I search for?"
102
+ 3. Confirm result count (default: 5).
103
+ - **Record workflow:** Append `{"skill": "ppw:literature", "ts": "<ISO timestamp>"}` to `.planning/workflow-memory.json`. Create file as `[]` if missing. Drop oldest entry if log length >= 50.
104
+
105
+ ### Step 3: Execute Search and Build Result Cards
106
+
107
+ 1. Call `mcp__semantic-scholar__papers-search-basic` with the user's query and result count.
108
+ 2. For each returned paper: if the abstract field is empty in the search result, call `mcp__semantic-scholar__get-paper-abstract` to fetch an abstract excerpt.
109
+ 3. Display numbered result cards in this exact format:
110
+
111
+ ```
112
+ **[1] Title of the Paper**
113
+ Authors: Smith, J.; Lee, K. · Year: 2023 · Citations: 142
114
+ > "One sentence from abstract describing the core contribution..."
115
+
116
+ **[2] Another Relevant Paper**
117
+ Authors: Zhang, W. · Year: 2022 · Citations: 89
118
+ > "Abstract not available"
119
+ ```
120
+
121
+ 4. End the display with: "Please select a paper (enter number), or type 'none' to cancel."
122
+
123
+ ### Step 4: User Selection
124
+
125
+ 1. Wait for the user to enter a number or "none".
126
+ 2. If "none": respond "Search cancelled." and end the session.
127
+ 3. If out-of-range number: ask the user to re-enter a valid number from the displayed list.
128
+ 4. If valid number: confirm the selection by restating the paper title.
129
+ 5. Display the **mandatory verification prompt** (never omit):
130
+
131
+ > "Please confirm that the selected paper actually supports the claim you are citing — do not rely solely on the title."
132
+
133
+ ### Step 5: Generate BibTeX
134
+
135
+ 1. Construct the BibTeX entry using **only fields returned by the MCP** for the selected paper.
136
+ 2. Citation key format: `firstAuthorLastnameLowercaseYYYYfirstKeyword` (e.g., `smith2023urban`).
137
+ 3. Use `@article` for journal papers, `@inproceedings` for conference papers, `@misc` for preprints — follow the paper type returned by MCP.
138
+ 4. If any field (volume, pages, DOI) is not returned by MCP, **omit that field** — never fill from prior knowledge.
139
+ 5. Display the BibTeX in a code fence:
140
+
141
+ ````bibtex
142
+ @article{smith2023urban,
143
+ title = {Full title from MCP},
144
+ author = {Last, First and Last2, First2},
145
+ journal = {Journal name from MCP},
146
+ year = {2023},
147
+ volume = {101},
148
+ pages = {101943},
149
+ doi = {10.1016/j.compenvurbsys.2023.101943}
150
+ }
151
+ ````
152
+
153
+ ## Output Contract
154
+
155
+ | Output | Format | Condition |
156
+ |--------|--------|-----------|
157
+ | `bibtex_entry` | BibTeX code block (`@article`, `@inproceedings`, or `@misc`) | After user selects a paper |
158
+
159
+ > All field values must come from the MCP-returned paper record. Never supply missing fields from prior knowledge — omit them instead.
160
+
161
+ **Example BibTeX (all fields from MCP data):**
162
+
163
+ ```bibtex
164
+ @article{li2022spatiotemporal,
165
+ title = {Spatiotemporal Analysis of Urban Land Use Change},
166
+ author = {Li, Wei and Wang, Fang},
167
+ journal = {Computers, Environment and Urban Systems},
168
+ year = {2022},
169
+ volume = {95},
170
+ pages = {101812},
171
+ doi = {10.1016/j.compenvurbsys.2022.101812}
172
+ }
173
+ ```
174
+
175
+ ## Edge Cases
176
+
177
+ | Situation | Handling |
178
+ |-----------|----------|
179
+ | MCP pre-flight fails | Refuse with exact setup instructions from Step 1; never proceed to search |
180
+ | Search returns zero results | "No papers found for '[query]'. Try broader keywords or re-trigger with different terms." |
181
+ | Abstract field missing for a result | Show "Abstract not available" in result card; do not skip the paper |
182
+ | User selects out-of-range number | Ask to re-enter a valid number from the displayed list |
183
+ | User types "none" | "Search cancelled." — end session |
184
+ | MCP returns non-article type | Use `@inproceedings` or `@misc` as appropriate; never force `@article` |
185
+ | DOI not returned by MCP | Omit `doi` field; add comment: `% DOI not available — please verify manually` |
186
+
187
+ ## Fallbacks
188
+
189
+ | Scenario | Fallback |
190
+ |----------|----------|
191
+ | Semantic Scholar MCP unavailable | Refuse immediately with setup guidance (Step 1 handles this); no partial fallback mode |
192
+ | `get-paper-abstract` call fails for one paper | Mark abstract as "Abstract not available"; continue displaying remaining results |
193
+ | Structured Interaction unavailable | Ask search query as plain-text question; proceed with numbered list in conversation |
194
+ | Basic search returns poor results | Inform user: "If results are poor, re-trigger the Skill with more specific keywords" (single-shot only) |
195
+
196
+ ## Examples
197
+
198
+ **User:** "Find papers about urban heat island mitigation"
199
+
200
+ **Skill:** [Pre-flight check passes silently] → Calls `mcp__semantic-scholar__papers-search-basic` with `{"query": "urban heat island mitigation", "limit": 5}` → Displays results:
201
+
202
+ ```
203
+ **[1] Urban Heat Island Mitigation through Green Infrastructure**
204
+ Authors: Smith, J.; Lee, K. · Year: 2023 · Citations: 142
205
+ > "This study evaluates green roof and tree-planting strategies for reducing UHI intensity in dense urban cores."
206
+
207
+ **[2] Cool Pavements and Their Effect on Urban Thermal Comfort**
208
+ Authors: Zhang, W.; Chen, L. · Year: 2022 · Citations: 89
209
+ > "A field experiment comparing reflective pavement materials across five climate zones."
210
+ ```
211
+
212
+ Please select a paper (enter number), or type "none" to cancel.
213
+
214
+ **User:** "1"
215
+
216
+ **Skill:** "You selected: Urban Heat Island Mitigation through Green Infrastructure (Smith, J.; Lee, K., 2023)."
217
+
218
+ > "Please confirm that the selected paper actually supports the claim you are citing — do not rely solely on the title."
219
+
220
+ **Skill (after user confirms):**
221
+
222
+ ```bibtex
223
+ @article{smith2023urban,
224
+ title = {Urban Heat Island Mitigation through Green Infrastructure},
225
+ author = {Smith, John and Lee, Kwang-Ho},
226
+ journal = {Computers, Environment and Urban Systems},
227
+ year = {2023},
228
+ volume = {101},
229
+ pages = {101943},
230
+ doi = {10.1016/j.compenvurbsys.2023.101943}
231
+ }
232
+ ```
233
+
234
+ ---
235
+
236
+ *Skill: literature-skill*
237
+ *Conventions: references/skill-conventions.md*