@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.
- package/.claude/skills/ppw-abstract/SKILL.md +239 -0
- package/.claude/skills/ppw-caption/SKILL.md +284 -0
- package/.claude/skills/ppw-cover-letter/SKILL.md +230 -0
- package/.claude/skills/ppw-de-ai/SKILL.md +299 -0
- package/.claude/skills/ppw-experiment/SKILL.md +290 -0
- package/.claude/skills/ppw-literature/SKILL.md +237 -0
- package/.claude/skills/ppw-logic/SKILL.md +316 -0
- package/.claude/skills/ppw-polish/SKILL.md +265 -0
- package/.claude/skills/ppw-repo-to-paper/SKILL.md +460 -0
- package/.claude/skills/ppw-reviewer-simulation/SKILL.md +284 -0
- package/.claude/skills/ppw-team/SKILL.md +242 -0
- package/.claude/skills/ppw-translation/SKILL.md +264 -0
- package/.claude/skills/ppw-update/SKILL.md +156 -0
- package/.claude/skills/ppw-visualization/SKILL.md +250 -0
- package/CHANGELOG.md +53 -0
- package/CONTRIBUTING.md +106 -0
- package/CONTRIBUTING_CN.md +106 -0
- package/LICENSE +21 -0
- package/README.md +313 -0
- package/examples/abstract-polishing-session.md +263 -0
- package/package.json +38 -0
- package/paper-polish-workflow/SKILL.md +160 -0
- package/references/anti-ai-patterns/sentence-patterns.md +33 -0
- package/references/anti-ai-patterns/transitions-and-tone.md +32 -0
- package/references/anti-ai-patterns/vocabulary.md +36 -0
- package/references/anti-ai-patterns.md +56 -0
- package/references/bilingual-output.md +95 -0
- package/references/body-generation-rules.md +121 -0
- package/references/expression-patterns/conclusions-and-claims.md +41 -0
- package/references/expression-patterns/geography-domain.md +50 -0
- package/references/expression-patterns/introduction-and-gap.md +41 -0
- package/references/expression-patterns/methods-and-data.md +41 -0
- package/references/expression-patterns/results-and-discussion.md +41 -0
- package/references/expression-patterns.md +67 -0
- package/references/journals/ceus.md +121 -0
- package/references/repo-patterns.md +96 -0
- package/references/skill-conventions.md +273 -0
- package/references/skill-skeleton.md +169 -0
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ppw:cover-letter
|
|
3
|
+
description: >-
|
|
4
|
+
Generate submission-ready cover letters from paper content and target journal requirements.
|
|
5
|
+
Includes contribution statement, data availability, conflict of interest, and contact block.
|
|
6
|
+
生成投稿信,包含贡献声明、数据可用性、利益冲突声明和联系方式。
|
|
7
|
+
triggers:
|
|
8
|
+
primary_intent: generate submission cover letter for academic paper
|
|
9
|
+
examples:
|
|
10
|
+
- "Write a cover letter for my CEUS submission"
|
|
11
|
+
- "帮我写投稿信"
|
|
12
|
+
- "Generate a cover letter for my paper"
|
|
13
|
+
- "写一封投稿到CEUS的cover letter"
|
|
14
|
+
- "Help me draft a submission cover letter"
|
|
15
|
+
- "帮我生成这篇论文的投稿信"
|
|
16
|
+
tools:
|
|
17
|
+
- Read
|
|
18
|
+
- Write
|
|
19
|
+
- Structured Interaction
|
|
20
|
+
references:
|
|
21
|
+
required:
|
|
22
|
+
- references/journals/ceus.md
|
|
23
|
+
leaf_hints: []
|
|
24
|
+
input_modes:
|
|
25
|
+
- file
|
|
26
|
+
- pasted_text
|
|
27
|
+
output_contract:
|
|
28
|
+
- cover_letter_md
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Purpose
|
|
32
|
+
|
|
33
|
+
This Skill generates complete, submission-ready academic cover letters by loading the target journal's template to align the contribution statement with journal scope and aims, collecting correspondence author details via Ask Strategy, and reading the paper (file or pasted text) to extract the paper title, key contribution, and data availability information. Output is a full letter with all four required content blocks: (1) contribution statement — explicitly aligned with the journal's stated scope from the loaded template; (2) data/code availability statement; (3) conflict of interest declaration; (4) correspondence author contact block. If the journal template is not found, the Skill refuses immediately — it never falls back to generic academic prose, consistent with the journal-aware pattern used throughout this project.
|
|
34
|
+
|
|
35
|
+
## Trigger
|
|
36
|
+
|
|
37
|
+
**Activates when the user asks to:**
|
|
38
|
+
- Write, generate, or draft a cover letter or submission letter for a paper
|
|
39
|
+
- 写投稿信、生成cover letter、帮我写投稿信
|
|
40
|
+
|
|
41
|
+
**Example invocations:**
|
|
42
|
+
- "Write a cover letter for my CEUS submission"
|
|
43
|
+
- "帮我写投稿信"
|
|
44
|
+
- "Generate a cover letter for my paper"
|
|
45
|
+
- "写一封投稿到CEUS的cover letter"
|
|
46
|
+
- "Help me draft a submission cover letter"
|
|
47
|
+
- "帮我生成这篇论文的投稿信"
|
|
48
|
+
|
|
49
|
+
## Modes
|
|
50
|
+
|
|
51
|
+
| Mode | Default | Behavior |
|
|
52
|
+
|------|---------|----------|
|
|
53
|
+
| `direct` | Yes | Single-pass letter generation; all context collected upfront via Ask Strategy |
|
|
54
|
+
| `batch` | | NOT supported — each letter requires specific paper context and author details |
|
|
55
|
+
|
|
56
|
+
**Default mode:** `direct`. User provides a paper and journal; Skill collects any missing details and generates the complete letter in one pass.
|
|
57
|
+
|
|
58
|
+
## References
|
|
59
|
+
|
|
60
|
+
### Required (always loaded)
|
|
61
|
+
|
|
62
|
+
None.
|
|
63
|
+
|
|
64
|
+
### Leaf Hints (loaded conditionally)
|
|
65
|
+
|
|
66
|
+
| File | When to Load |
|
|
67
|
+
|------|--------------|
|
|
68
|
+
| `references/journals/ceus.md` | When user targets CEUS; provides Aims & Scope, scope keywords for contribution alignment |
|
|
69
|
+
|
|
70
|
+
### Loading Rules
|
|
71
|
+
|
|
72
|
+
- When journal is specified, load `references/journals/[journal].md`.
|
|
73
|
+
- If template not found: **refuse immediately** with: "Journal template for [X] not found. Available: CEUS."
|
|
74
|
+
- Do NOT proceed with generic framing if template is missing.
|
|
75
|
+
- Extract the Aims & Scope section from the loaded template — the contribution statement must reference it directly.
|
|
76
|
+
|
|
77
|
+
## Ask Strategy
|
|
78
|
+
|
|
79
|
+
The Skill needs four inputs. If already provided in trigger or paper content, skip the corresponding question.
|
|
80
|
+
|
|
81
|
+
1. **Target journal** — required; determines which template to load. Ask if not specified.
|
|
82
|
+
2. **Paper file or text** — required; for extracting paper title and key contribution. Ask for file path or paste if not provided.
|
|
83
|
+
3. **Correspondence author details** (name, email, institution) — required; ask as a single grouped question if not provided.
|
|
84
|
+
4. **Data/code availability** — optional; are datasets or code publicly available? If yes, ask for repository URLs. Default to "Data are not publicly available" if user declines or does not know.
|
|
85
|
+
|
|
86
|
+
**Rules:**
|
|
87
|
+
- Ask at most 3 questions before proceeding.
|
|
88
|
+
- Use Structured Interaction when available; fall back to plain-text questions otherwise.
|
|
89
|
+
- If correspondence details not provided and user declines: use `[Corresponding Author Name]`, `[Email]`, `[Institution]` placeholders.
|
|
90
|
+
|
|
91
|
+
## Workflow
|
|
92
|
+
|
|
93
|
+
### Step 0: Workflow Memory Check
|
|
94
|
+
|
|
95
|
+
- Read `.planning/workflow-memory.json`. If file missing or empty, skip to Step 1.
|
|
96
|
+
- Check if the last 1-2 log entries form a recognized pattern with `ppw:cover-letter` that has appeared >= threshold times in the log. See `skill-conventions.md > Workflow Memory > Pattern Detection` for the full algorithm.
|
|
97
|
+
- If a pattern is found, present recommendation via AskUserQuestion:
|
|
98
|
+
- Question: "检测到常用流程:[pattern](已出现 N 次)。是否直接以 direct 模式运行 ppw:cover-letter?"
|
|
99
|
+
- Options: "Yes, proceed" / "No, continue normally"
|
|
100
|
+
- If user accepts: set mode to `direct`, skip Ask Strategy questions.
|
|
101
|
+
- If user declines or AskUserQuestion unavailable: continue in normal mode.
|
|
102
|
+
|
|
103
|
+
### Step 1: Collect Context
|
|
104
|
+
|
|
105
|
+
- Run Ask Strategy for any missing inputs (journal, paper, author details, data availability).
|
|
106
|
+
- Load `references/journals/[journal].md`. If not found: **refuse** with "Journal template for [X] not found. Available: CEUS." Do NOT proceed.
|
|
107
|
+
- If paper provided as file: use Read tool to load it; extract title and key contribution.
|
|
108
|
+
- If paper provided as pasted text: extract title and key contribution from the pasted content.
|
|
109
|
+
- Extract Aims & Scope section from the loaded journal template (contribution statement references this directly).
|
|
110
|
+
- **Record workflow:** Append `{"skill": "ppw:cover-letter", "ts": "<ISO timestamp>"}` to `.planning/workflow-memory.json`. Create file as `[]` if missing. Drop oldest entry if log length >= 50.
|
|
111
|
+
|
|
112
|
+
### Step 2: Draft Letter
|
|
113
|
+
|
|
114
|
+
Use the following locked letter format:
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
[Date]
|
|
118
|
+
|
|
119
|
+
The Editor-in-Chief
|
|
120
|
+
[Editor Name]
|
|
121
|
+
[Journal Name]
|
|
122
|
+
|
|
123
|
+
Dear [Editor Name],
|
|
124
|
+
|
|
125
|
+
We submit our manuscript entitled "[Paper Title]" for consideration in [Journal Name].
|
|
126
|
+
|
|
127
|
+
**Contribution Statement**
|
|
128
|
+
[1–2 sentences explicitly referencing journal's stated scope from loaded template]
|
|
129
|
+
|
|
130
|
+
**Data and Code Availability**
|
|
131
|
+
[Repository URLs, or "Data are not publicly available due to [reason]."]
|
|
132
|
+
|
|
133
|
+
**Conflict of Interest**
|
|
134
|
+
The authors declare no conflict of interest.
|
|
135
|
+
|
|
136
|
+
**Corresponding Author**
|
|
137
|
+
[Name]
|
|
138
|
+
[Email]
|
|
139
|
+
[Institution]
|
|
140
|
+
|
|
141
|
+
Sincerely,
|
|
142
|
+
[Authors]
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Contribution statement rule:** Write 1–2 sentences that explicitly reference the journal's stated scope and aims from the loaded template. Use journal-specific framing: "This paper addresses [X], which aligns directly with [Journal]'s focus on [scope phrase from template]." Do NOT use generic framing ("this paper advances the field of...").
|
|
146
|
+
|
|
147
|
+
**Data/code block:** List repository URLs if provided; otherwise state "Data are not publicly available due to [reason if given, otherwise omit reason clause]."
|
|
148
|
+
|
|
149
|
+
**Conflict of interest:** Always use the standard declaration "The authors declare no conflict of interest."
|
|
150
|
+
|
|
151
|
+
**Contact block:** Use provided author details or bracketed placeholders if not provided.
|
|
152
|
+
|
|
153
|
+
### Step 3: Output
|
|
154
|
+
|
|
155
|
+
- **File input:** Write to `{input_filename_without_ext}_cover_letter.md` using the Write tool.
|
|
156
|
+
- **Pasted text input:** Display the complete letter in conversation.
|
|
157
|
+
- Confirm output location to user.
|
|
158
|
+
|
|
159
|
+
## Output Contract
|
|
160
|
+
|
|
161
|
+
| Output | Format | Condition |
|
|
162
|
+
|--------|--------|-----------|
|
|
163
|
+
| `cover_letter_md` | Markdown file at `{input_filename_without_ext}_cover_letter.md` | File input |
|
|
164
|
+
| `cover_letter_text` | Complete letter in conversation | Pasted text input or Write tool failure |
|
|
165
|
+
|
|
166
|
+
**Required content blocks (all four mandatory in every letter):**
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
**Contribution Statement** ← references journal scope explicitly
|
|
170
|
+
**Data and Code Availability** ← links or "not publicly available"
|
|
171
|
+
**Conflict of Interest** ← standard declaration
|
|
172
|
+
**Corresponding Author** ← name, email, institution
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Note: Contribution statement must reference journal scope explicitly — not generic academic praise.
|
|
176
|
+
|
|
177
|
+
## Edge Cases
|
|
178
|
+
|
|
179
|
+
| Situation | Handling |
|
|
180
|
+
|-----------|----------|
|
|
181
|
+
| Journal template not found | Refuse: "Journal template for [X] not found. Available: CEUS." Do not generate with generic framing. |
|
|
182
|
+
| Paper file not found or unreadable | Ask user to paste paper text or abstract instead |
|
|
183
|
+
| Correspondence details not provided; user declines | Use `[Corresponding Author Name]`, `[Email]`, `[Institution]` placeholders; note user must fill before submission |
|
|
184
|
+
| Data availability unknown | Use "Data availability will be confirmed at revision stage." |
|
|
185
|
+
| Multiple authors listed for correspondence | Ask which one is the corresponding author; include only one in the contact block |
|
|
186
|
+
| Aims & Scope section thin in template | Use all available scope language from template; note contribution alignment may be approximate |
|
|
187
|
+
|
|
188
|
+
## Fallbacks
|
|
189
|
+
|
|
190
|
+
| Scenario | Fallback |
|
|
191
|
+
|----------|----------|
|
|
192
|
+
| Structured Interaction unavailable | Ask journal name and author details as sequential plain-text questions |
|
|
193
|
+
| Read tool fails on paper file | Ask user to paste abstract or key contribution sentences |
|
|
194
|
+
| Write tool fails | Display complete letter in conversation; advise user to copy to a `.md` file |
|
|
195
|
+
| `references/journals/ceus.md` missing | Refuse with journal-missing message; do not generate without template |
|
|
196
|
+
|
|
197
|
+
## Examples
|
|
198
|
+
|
|
199
|
+
**Invocation:** "Write a cover letter for my CEUS submission" (with file `my_paper.tex`)
|
|
200
|
+
|
|
201
|
+
1. Skill loads `references/journals/ceus.md` — extracts Aims & Scope.
|
|
202
|
+
2. Skill reads `my_paper.tex` — extracts title and key contribution.
|
|
203
|
+
3. Skill asks: "Please provide your name, email, and institution for the correspondence block."
|
|
204
|
+
4. Skill asks: "Are your data or code publicly available? If yes, please share the repository URL(s)."
|
|
205
|
+
5. Skill generates letter and writes to `my_paper_cover_letter.md`.
|
|
206
|
+
|
|
207
|
+
**First 8 lines of output:**
|
|
208
|
+
|
|
209
|
+
```
|
|
210
|
+
March 2026
|
|
211
|
+
|
|
212
|
+
The Editor-in-Chief
|
|
213
|
+
[Editor Name]
|
|
214
|
+
Computers, Environment and Urban Systems
|
|
215
|
+
|
|
216
|
+
Dear [Editor Name],
|
|
217
|
+
|
|
218
|
+
We submit our manuscript entitled "Spatiotemporal Analysis of Urban Heat Islands Using Remote
|
|
219
|
+
Sensing" for consideration in Computers, Environment and Urban Systems.
|
|
220
|
+
|
|
221
|
+
**Contribution Statement**
|
|
222
|
+
This paper addresses urban heat island detection and mitigation across metropolitan areas, which
|
|
223
|
+
aligns directly with CEUS's focus on computational approaches to understanding urban systems and
|
|
224
|
+
the built environment.
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
*Skill: cover-letter-skill*
|
|
230
|
+
*Conventions: references/skill-conventions.md*
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ppw:de-ai
|
|
3
|
+
description: >-
|
|
4
|
+
Detect and rewrite AI-generated patterns in English academic text.
|
|
5
|
+
Two-phase workflow: scan with risk tagging, then batch rewrite.
|
|
6
|
+
Triggers on "de-AI", "降AI", "reduce AI traces", "AI检测".
|
|
7
|
+
triggers:
|
|
8
|
+
primary_intent: Detect and rewrite AI patterns in academic text
|
|
9
|
+
examples:
|
|
10
|
+
- "De-AI this paragraph"
|
|
11
|
+
- "降AI这段论文"
|
|
12
|
+
- "Check for AI patterns in my paper"
|
|
13
|
+
- "Reduce AI traces in my introduction"
|
|
14
|
+
- "AI检测并改写"
|
|
15
|
+
- "Scan this text for AI-generated phrasing"
|
|
16
|
+
- "帮我降低AI检测分数"
|
|
17
|
+
tools:
|
|
18
|
+
- Read
|
|
19
|
+
- Edit
|
|
20
|
+
- Structured Interaction
|
|
21
|
+
references:
|
|
22
|
+
required:
|
|
23
|
+
- references/anti-ai-patterns.md
|
|
24
|
+
- references/expression-patterns.md
|
|
25
|
+
- references/bilingual-output.md
|
|
26
|
+
leaf_hints:
|
|
27
|
+
- references/anti-ai-patterns/vocabulary.md
|
|
28
|
+
- references/anti-ai-patterns/sentence-patterns.md
|
|
29
|
+
- references/anti-ai-patterns/transitions-and-tone.md
|
|
30
|
+
- references/expression-patterns/introduction-and-gap.md
|
|
31
|
+
- references/expression-patterns/methods-and-data.md
|
|
32
|
+
- references/expression-patterns/results-and-discussion.md
|
|
33
|
+
- references/expression-patterns/conclusions-and-claims.md
|
|
34
|
+
input_modes:
|
|
35
|
+
- file
|
|
36
|
+
- pasted_text
|
|
37
|
+
output_contract:
|
|
38
|
+
- detection_report
|
|
39
|
+
- rewritten_text
|
|
40
|
+
- rewrite_report
|
|
41
|
+
- bilingual_conversation
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Purpose
|
|
45
|
+
|
|
46
|
+
This Skill detects AI-generated patterns in English academic text and rewrites flagged passages with explainable, risk-tagged results. It scans text against three pattern dimensions (vocabulary inflation, sentence overclaims, transition smoothing) from the anti-AI patterns library, presents detections grouped by risk level (High Risk / Medium Risk / Optional), and lets users batch-select which items to rewrite. Rewrites restructure expressions rather than just swapping synonyms, preserving academic meaning and quality. For file input, edits are made in-place with LaTeX comment annotations for traceability; for pasted text, results appear in conversation.
|
|
47
|
+
|
|
48
|
+
## Core Prompt
|
|
49
|
+
|
|
50
|
+
> Source: [awesome-ai-research-writing](https://github.com/Leey21/awesome-ai-research-writing) — 去 AI 味(LaTeX 英文)
|
|
51
|
+
|
|
52
|
+
````markdown
|
|
53
|
+
# Role
|
|
54
|
+
你是一位计算机科学领域的资深学术编辑,专注于提升论文的自然度与可读性。你的任务是将大模型生成的机械化文本重写为符合顶级会议(如 ACL, NeurIPS)标准的自然学术表达。
|
|
55
|
+
|
|
56
|
+
# Task
|
|
57
|
+
请对我提供的【英文 LaTeX 代码片段】进行"去 AI 化"重写,使其语言风格接近人类母语研究者。
|
|
58
|
+
|
|
59
|
+
# Constraints
|
|
60
|
+
1. 词汇规范化:
|
|
61
|
+
- 优先使用朴实、精准的学术词汇。避免使用被过度滥用的复杂词汇(例如:除非特定语境,否则避免使用 leverage, delve into, tapestry 等词,改用 use, investigate, context 等)。
|
|
62
|
+
- 只有在必须表达特定技术含义时才使用术语,避免为了形式上的"高级感"而堆砌辞藻。
|
|
63
|
+
|
|
64
|
+
2. 结构自然化:
|
|
65
|
+
- 严禁使用列表格式:必须将所有的 item 内容转化为逻辑连贯的普通段落。
|
|
66
|
+
- 移除机械连接词:删除生硬的过渡词(如 First and foremost, It is worth noting that),应通过句子间的逻辑递进自然连接。
|
|
67
|
+
- 减少插入符号:尽量减少破折号(—)的使用,建议使用逗号、括号或从句结构替代。
|
|
68
|
+
|
|
69
|
+
3. 排版规范:
|
|
70
|
+
- 禁用强调格式:严禁在正文中使用加粗或斜体进行强调。学术写作应通过句式结构来体现重点。
|
|
71
|
+
- 保持 LaTeX 纯净:不要引入无关的格式指令。
|
|
72
|
+
|
|
73
|
+
4. 修改阈值(关键):
|
|
74
|
+
- 宁缺毋滥:如果输入的文本已经非常自然、地道且没有明显的 AI 特征,请保留原文,不要为了修改而修改。
|
|
75
|
+
- 正向反馈:对于高质量的输入,应在 Part 3 中给予明确的肯定和正向评价。
|
|
76
|
+
|
|
77
|
+
5. 输出格式:
|
|
78
|
+
- Part 1 [LaTeX]:输出重写后的代码(如果原文已足够好,则输出原文)。
|
|
79
|
+
* 语言要求:必须是全英文。
|
|
80
|
+
* 必须对特殊字符进行转义(例如:`%`、`_`、`&`)。
|
|
81
|
+
* 保持数学公式原样(保留 `$` 符号)。
|
|
82
|
+
- Part 2 [Translation]:对应的中文直译。
|
|
83
|
+
- Part 3 [Modification Log]:
|
|
84
|
+
* 如果进行了修改:简要说明调整了哪些机械化表达。
|
|
85
|
+
* 如果未修改:请直接输出中文评价:"[检测通过] 原文表达地道自然,无明显 AI 味,建议保留。"
|
|
86
|
+
- 除以上三部分外,不要输出任何多余的对话。
|
|
87
|
+
|
|
88
|
+
# Execution Protocol
|
|
89
|
+
在输出前,请自查:
|
|
90
|
+
1. 拟人度检查:确认文本语气自然。
|
|
91
|
+
2. 必要性检查:当前的修改是否真的提升了可读性?如果是为了换词而换词,请撤销修改并判定为"检测通过"。
|
|
92
|
+
````
|
|
93
|
+
|
|
94
|
+
**AI 味高频词汇参考表:**
|
|
95
|
+
|
|
96
|
+
````
|
|
97
|
+
Accentuate, Ador, Amass, Ameliorate, Amplify, Alleviate, Ascertain, Advocate, Articulate, Bear, Bolster,
|
|
98
|
+
Bustling, Cherish, Conceptualize, Conjecture, Consolidate, Convey, Culminate, Decipher, Demonstrate,
|
|
99
|
+
Depict, Devise, Delineate, Delve, Delve Into, Diverge, Disseminate, Elucidate, Endeavor, Engage, Enumerate,
|
|
100
|
+
Envision, Enduring, Exacerbate, Expedite, Foster, Galvanize, Harmonize, Hone, Innovate, Inscription,
|
|
101
|
+
Integrate, Interpolate, Intricate, Lasting, Leverage, Manifest, Mediate, Nurture, Nuance, Nuanced, Obscure,
|
|
102
|
+
Opt, Originates, Perceive, Perpetuate, Permeate, Pivotal, Ponder, Prescribe, Prevailing, Profound, Recapitulate,
|
|
103
|
+
Reconcile, Rectify, Rekindle, Reimagine, Scrutinize, Substantiate, Tailor, Testament, Transcend, Traverse,
|
|
104
|
+
Underscore, Unveil, Vibrant
|
|
105
|
+
````
|
|
106
|
+
|
|
107
|
+
## Trigger
|
|
108
|
+
|
|
109
|
+
**Activates when the user asks to:**
|
|
110
|
+
- Detect, scan, or check for AI-generated patterns in academic text
|
|
111
|
+
- Rewrite or reduce AI traces in English writing
|
|
112
|
+
- 降AI、检测AI痕迹、降低AI检测分数
|
|
113
|
+
|
|
114
|
+
**Example invocations:**
|
|
115
|
+
- "De-AI this paragraph" / "降AI这段论文"
|
|
116
|
+
- "Check my paper for AI patterns" / "AI检测并改写"
|
|
117
|
+
- "Scan only -- just show detections" / "只扫描不改写"
|
|
118
|
+
|
|
119
|
+
## Modes
|
|
120
|
+
|
|
121
|
+
| Mode | Default | Behavior |
|
|
122
|
+
|------|---------|----------|
|
|
123
|
+
| `direct` | Yes | Full detect-then-rewrite two-phase workflow with batch selection |
|
|
124
|
+
| `batch` | | Same operation across multiple files with same settings |
|
|
125
|
+
|
|
126
|
+
**Default mode:** `direct`. User says "de-AI this" and gets detect + rewrite.
|
|
127
|
+
|
|
128
|
+
**Mode inference:** "scan only", "just check", or "只检测" triggers detect-only (skip rewrite phase). "De-AI all sections" or "batch" switches to `batch`.
|
|
129
|
+
|
|
130
|
+
## References
|
|
131
|
+
|
|
132
|
+
### Required (always loaded)
|
|
133
|
+
|
|
134
|
+
| File | Purpose |
|
|
135
|
+
|------|---------|
|
|
136
|
+
| `references/anti-ai-patterns.md` | Risk model, category map, retrieval contract |
|
|
137
|
+
| `references/expression-patterns.md` | Academic expression patterns for rewrite quality |
|
|
138
|
+
|
|
139
|
+
### Leaf Hints (loaded proactively for detection)
|
|
140
|
+
|
|
141
|
+
| File | When to Load |
|
|
142
|
+
|------|--------------|
|
|
143
|
+
| `references/anti-ai-patterns/vocabulary.md` | Always -- loaded proactively for full-text scan |
|
|
144
|
+
| `references/anti-ai-patterns/sentence-patterns.md` | Always -- loaded proactively for full-text scan |
|
|
145
|
+
| `references/anti-ai-patterns/transitions-and-tone.md` | Always -- loaded proactively for full-text scan |
|
|
146
|
+
|
|
147
|
+
### Leaf Hints (loaded during rewrite phase)
|
|
148
|
+
|
|
149
|
+
| File | When to Load |
|
|
150
|
+
|------|--------------|
|
|
151
|
+
| `references/expression-patterns/introduction-and-gap.md` | Rewriting introduction or background content |
|
|
152
|
+
| `references/expression-patterns/methods-and-data.md` | Rewriting methods or data content |
|
|
153
|
+
| `references/expression-patterns/results-and-discussion.md` | Rewriting results or discussion content |
|
|
154
|
+
| `references/expression-patterns/conclusions-and-claims.md` | Rewriting conclusion content |
|
|
155
|
+
|
|
156
|
+
### Loading Rules
|
|
157
|
+
|
|
158
|
+
- Load ALL three anti-AI pattern leaves proactively at the start for full-text scanning.
|
|
159
|
+
- Load expression patterns overview at the start; load section-specific leaves during rewrite phase based on detected section type.
|
|
160
|
+
- When a target journal is specified, also load `references/journals/[journal].md`. If template missing, **refuse** with message: "Journal template for [X] not found. Available: CEUS."
|
|
161
|
+
- If an anti-AI pattern leaf is missing, warn the user and proceed with reduced detection coverage.
|
|
162
|
+
|
|
163
|
+
## Ask Strategy
|
|
164
|
+
|
|
165
|
+
**Before starting, ask about:**
|
|
166
|
+
1. Target journal (if not specified) -- determines style consideration during rewrite
|
|
167
|
+
2. Scope: full paper or specific section (if ambiguous)
|
|
168
|
+
|
|
169
|
+
**Rules:**
|
|
170
|
+
- In `direct` mode, skip pre-questions when the user provides enough context.
|
|
171
|
+
- Never ask more than 2 questions before scanning.
|
|
172
|
+
- Use Structured Interaction when available; fall back to plain-text questions otherwise.
|
|
173
|
+
|
|
174
|
+
## Workflow
|
|
175
|
+
|
|
176
|
+
### Step 0: Workflow Memory Check
|
|
177
|
+
|
|
178
|
+
- Read `.planning/workflow-memory.json`. If file missing or empty, skip to Phase 1.
|
|
179
|
+
- Check if the last 1-2 log entries form a recognized pattern with `ppw:de-ai` that has appeared >= threshold times in the log. See `skill-conventions.md > Workflow Memory > Pattern Detection` for the full algorithm.
|
|
180
|
+
- If a pattern is found, present recommendation via AskUserQuestion:
|
|
181
|
+
- Question: "检测到常用流程:[pattern](已出现 N 次)。是否直接以 direct 模式运行 ppw:de-ai?"
|
|
182
|
+
- Options: "Yes, proceed" / "No, continue normally"
|
|
183
|
+
- If user accepts: set mode to `direct`, skip Ask Strategy questions.
|
|
184
|
+
- If user declines or AskUserQuestion unavailable: continue in normal mode.
|
|
185
|
+
|
|
186
|
+
### Phase 1: Detect
|
|
187
|
+
|
|
188
|
+
**Step 1 -- Prepare:**
|
|
189
|
+
- Load all three anti-AI pattern leaves (vocabulary, sentence-patterns, transitions-and-tone).
|
|
190
|
+
- If target journal specified, load journal template; if missing, refuse.
|
|
191
|
+
- Read user input (file via Read tool, or pasted text from conversation).
|
|
192
|
+
- **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.
|
|
193
|
+
- **Record workflow:** Append `{"skill": "ppw:de-ai", "ts": "<ISO timestamp>"}` to `.planning/workflow-memory.json`. Create file as `[]` if missing. Drop oldest entry if log length >= 50.
|
|
194
|
+
|
|
195
|
+
**Step 2 -- Scan:**
|
|
196
|
+
- **Follow the Core Prompt constraints above** as the primary instruction set for detection and rewrite.
|
|
197
|
+
- Scan full text against all three pattern dimensions in a single pass.
|
|
198
|
+
- For each match, check domain term protection: if the flagged term is standard domain terminology used in context (e.g., "landscape" in a geography paper, "robust" in a statistics paper), mark as SKIPPED with reason.
|
|
199
|
+
- For Optional-tier matches: only flag if the pattern appears 3+ times in the text. Single occurrences are suppressed to reduce noise.
|
|
200
|
+
|
|
201
|
+
**Step 3 -- Present Detection Report:**
|
|
202
|
+
- Summary line: "Found N AI patterns (X High Risk / Y Medium Risk / Z Optional)" plus count of skipped domain terms.
|
|
203
|
+
- Detailed list grouped by risk level (High first, then Medium, then Optional). Each item shows:
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
[#N] [HIGH RISK] Vocabulary Inflation
|
|
207
|
+
Original: "This groundbreaking approach transforms the analytical framework"
|
|
208
|
+
Pattern: "groundbreaking" -- promotional, exaggerated vocabulary (vocabulary.md)
|
|
209
|
+
Suggestion: "This useful approach improves the analytical framework"
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
**Step 4 -- User Selection:**
|
|
213
|
+
- Ask which items to rewrite:
|
|
214
|
+
- "Fix all High Risk"
|
|
215
|
+
- "Fix High + Medium"
|
|
216
|
+
- "Fix all"
|
|
217
|
+
- Specific items by number: "fix 1, 3, 7"
|
|
218
|
+
|
|
219
|
+
### Phase 2: Rewrite
|
|
220
|
+
|
|
221
|
+
**Step 1 -- Group and Rewrite:**
|
|
222
|
+
- Group selected items by paragraph. When multiple items appear in the same paragraph, rewrite them together in one pass to maintain coherence.
|
|
223
|
+
- Load relevant expression pattern leaves based on section type for higher quality alternatives beyond the anti-AI replacement column.
|
|
224
|
+
- Restructure expressions -- do not just swap synonyms. Preserve academic meaning and quality.
|
|
225
|
+
- If target journal specified, consider journal style preferences during rewrite.
|
|
226
|
+
|
|
227
|
+
**Step 2 -- Apply Changes:**
|
|
228
|
+
- **File input:** Use Edit tool for in-place modifications. Add `% [De-AI] Original: <original text>` LaTeX comment on the line immediately before each rewritten passage.
|
|
229
|
+
- Multi-line originals: each line gets its own `% [De-AI] Original:` prefix.
|
|
230
|
+
- If existing `% [De-AI] Original:` annotations found, clean them up before adding new ones.
|
|
231
|
+
- **Pasted text:** Present rewritten version in conversation with before/after comparison for each changed passage.
|
|
232
|
+
|
|
233
|
+
**Step 3 -- Rewrite Report:**
|
|
234
|
+
|
|
235
|
+
| Field | Content |
|
|
236
|
+
|-------|---------|
|
|
237
|
+
| Total rewrites | Applied N of M detected items |
|
|
238
|
+
| By category | Vocabulary inflation: count, Sentence overclaim: count, Transition smoothing: count |
|
|
239
|
+
| Skipped items | Optional below threshold, domain terms protected |
|
|
240
|
+
| Word count delta | +/- N words |
|
|
241
|
+
|
|
242
|
+
**Step 4 -- Bilingual Display:**
|
|
243
|
+
- If `bilingual_mode` is true and input was a file: for each paragraph that was rewritten in Step 1, display a `> **[Chinese]** ...` blockquote in conversation showing the Chinese translation of the rewritten English text.
|
|
244
|
+
- Use a section header in conversation: "**双语对照 / Bilingual Comparison:**" before the first blockquote.
|
|
245
|
+
- Format per paragraph:
|
|
246
|
+
|
|
247
|
+
> **[Chinese]** [Chinese translation of the rewritten paragraph]
|
|
248
|
+
|
|
249
|
+
- Do not insert Chinese into the .tex file. The file remains English-only and submission-ready.
|
|
250
|
+
- If `bilingual_mode` is false (opt-out detected): skip this step entirely.
|
|
251
|
+
- Pasted text input: if `bilingual_mode` is true, append the `> **[Chinese]** ...` blockquote immediately after each rewritten paragraph in the conversation diff output.
|
|
252
|
+
|
|
253
|
+
**Step 5 -- Summary:**
|
|
254
|
+
- If further polishing is needed, recommend: "Consider running the Polish Skill for additional refinement."
|
|
255
|
+
|
|
256
|
+
## LaTeX Annotation Format
|
|
257
|
+
|
|
258
|
+
- Format: `% [De-AI] Original: <original text>` on the line immediately before the replacement.
|
|
259
|
+
- Multi-line originals: each line gets its own `% [De-AI] Original:` prefix.
|
|
260
|
+
- Annotations are valid LaTeX comments -- the file compiles with them present.
|
|
261
|
+
- Cleanup: after user confirms acceptance, remove all lines matching `^% \[De-AI\] Original:`.
|
|
262
|
+
- If existing `% [De-AI] Original:` annotations are found, clean them up before adding new ones.
|
|
263
|
+
|
|
264
|
+
## Output Contract
|
|
265
|
+
|
|
266
|
+
| Output | Format | Condition |
|
|
267
|
+
|--------|--------|-----------|
|
|
268
|
+
| Detection report | Structured markdown (summary + detailed list) | Always (Phase 1) |
|
|
269
|
+
| Rewritten text | In-place LaTeX with annotations (file) or conversation diff (pasted) | Phase 2 |
|
|
270
|
+
| Rewrite report | Structured markdown table | After Phase 2 |
|
|
271
|
+
| Word count delta | Integer | After Phase 2 |
|
|
272
|
+
| `bilingual_conversation` | `> **[Chinese]** ...` blockquotes in session | Phase 2 rewritten paragraphs only. Skipped when opt-out detected. |
|
|
273
|
+
|
|
274
|
+
## Edge Cases
|
|
275
|
+
|
|
276
|
+
| Situation | Handling |
|
|
277
|
+
|-----------|----------|
|
|
278
|
+
| No AI patterns detected | Report "No AI patterns detected" and exit; do not proceed to rewrite |
|
|
279
|
+
| Input too short (< 3 sentences) | Warn detection may be unreliable on short text; proceed if user confirms |
|
|
280
|
+
| All detections are domain terms (all skipped) | Report "N patterns matched but all identified as domain terminology -- no rewrites needed" |
|
|
281
|
+
| Existing `% [De-AI] Original:` annotations | Clean up old annotations before running new scan |
|
|
282
|
+
| Input language is not English | Warn and suggest running Translation Skill first |
|
|
283
|
+
| Journal template missing when journal specified | Refuse: "Journal template for [X] not found. Available: CEUS." |
|
|
284
|
+
| Very long input (10+ pages) | Process in sections; maintain cross-section awareness |
|
|
285
|
+
|
|
286
|
+
## Fallbacks
|
|
287
|
+
|
|
288
|
+
| Scenario | Fallback |
|
|
289
|
+
|----------|----------|
|
|
290
|
+
| Structured Interaction unavailable | Ask 1-2 plain-text questions (journal + scope) |
|
|
291
|
+
| Anti-AI pattern leaf missing | Warn user, proceed with available modules (reduced detection coverage) |
|
|
292
|
+
| Expression pattern leaf missing | Use overview entrypoint for general rewrite patterns |
|
|
293
|
+
| Target journal not specified | Ask once; if declined, use general academic style for rewrites |
|
|
294
|
+
| File is read-only or Edit fails | Present changes as a diff in conversation; user applies manually |
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
*Skill: de-ai-skill*
|
|
299
|
+
*Conventions: references/skill-conventions.md*
|