| name | paper |
| description | Korean academic paper / technical report writing pipeline. Drafts a structured paper (Abstract / Introduction / Method / Results / Discussion / Limitations / Conclusion) with Toulmin argumentation, then runs deterministic AI-tell scrubbing and structure-critic review. Use when the user asks for a paper, technical report, ๋
ผ๋ฌธ ์ด์, or empirical study writeup. Argument "review" runs only the AI-tell scrubber on an existing file. |
Paper Pipeline (Orchestrator)
Pipeline overview
Phase 0 Inputs collection [main context, interactive]
Phase 1 Skeleton framing [main context, interactive]
Phase 2 aiwriting-writer subagent [fresh context, drafts to file]
Phase 3 aiwriting-scrubber subagent [fresh context, R1-R7 deterministic]
Phase 4 aiwriting-structure-critic [argumentation review, mandatory for paper]
Phase 4b aiwriting-copy-killer [LLM-free score, always]
Phase 4c aiwriting-fact-checker [LLM-free pattern, always]
paper ํฌ๋งท์ structure-critic ๊ฐ mandatory (blog ์ external publish ์ ๋๊ธ). ๋
ผ๋ฌธ/๋ฆฌํฌํธ๋ ๋
ผ์ฆ ๊ฐ๋๊ฐ ๋ณธ์ง์ด๋ผ critic ๋จ๊ณ๋ฅผ ๊ฑด๋๋ฐ์ง ์๋๋ค.
Knowledge files (loaded by subagents), under ${CLAUDE_PLUGIN_ROOT}/skills/paper/:
philosophy.md - shared with blog/cover-letter (Orwell/Zinsser/Graham/Popper)
argumentation.md - shared with blog (Toulmin / Steel Man / Skeptical stance)
paper-templates.md - 7-section paper structure + abstract pattern + limitations pattern
The orchestrator does NOT load these.
Phase 0: Inputs (Interactive)
If $ARGUMENTS is review [path], jump to Phase 3 (scrub-only).
Otherwise, collect:
- ๋
ผ๋ฌธ ์ฃผ์ ํ ์ค
- ํต์ฌ ๋ฐ๊ฒฌ (Result ํ ์ค)
- ๋ฐ์ดํฐ์
/ ๋ชจ๋ธ / ์ธก์ ๋ฐฉ๋ฒ
- ํค:
~๋ค (default for paper) or ~์ต๋๋ค
Phase 1: Skeleton Framing (Interactive)
Generate a 7-section skeleton (Abstract / Introduction / Method / Results / Discussion / Limitations / Conclusion). One topic sentence per section. Iterate with user until confirmed.
Limitations ์น์
์ paper ์์ mandatory (intellectual honesty์ ํต์ฌ).
Phase 2: Spawn aiwriting-writer
Agent({
subagent_type: "aiwriting-writer",
description: "Draft paper on {topic}",
prompt: "
Format: paper
Topic: {topic}
Skeleton:
Abstract: {one-liner}
Introduction: {one-liner}
Method: {one-liner}
Results: {one-liner}
Discussion: {one-liner}
Limitations: {one-liner}
Conclusion: {one-liner}
Tone: {~๋ค / ~์ต๋๋ค}
Output target: paper-drafts/{kebab-case-slug}.md (current working directory)
Load knowledge from skills/paper/{philosophy,argumentation,paper-templates}.md
(plugin-relative). Return the absolute path of the saved file plus a short summary.
"
})
Phase 3: Spawn aiwriting-scrubber
Agent({
subagent_type: "aiwriting-scrubber",
description: "Scrub AI tells from {filename}",
prompt: "
Draft file: {absolute_path}
Format: paper
Apply R1-R7 from skills/blog/ai-tell-rules.md (plugin-relative).
Paper requires `## ์์ฝ` (or Conclusion functioning as ์์ฝ). Insert if missing per R3.
Return the scrub report.
"
})
If review mode, stop here.
Phase 4: Spawn aiwriting-structure-critic (mandatory)
Agent({
subagent_type: "aiwriting-structure-critic",
description: "Critique paper argumentation",
prompt: "
Draft file: {absolute_path}
Format: paper
Publish target: external (paper is always external-grade)
This is iteration {1 or 2} of the critic loop.
Evaluate per skills/paper/argumentation.md (plugin-relative).
Pay special attention to:
- Method reproducibility (์์น + dataset + ํ๊ฒฝ ๋ช
์?)
- Results claim vs evidence gap
- Limitations section honesty (overstated robustness?)
Return verdict: APPROVE / ITERATE / REJECT with prescribed format.
"
})
Critic loop logic (max 2 iterations)
Same as blog: APPROVE โ proceed; ITERATE โ re-spawn writer with diff request, re-spawn critic; REJECT โ stop and surface structural objection.
Phase 4b: aiwriting-copy-killer (LLM-free)
Agent({
subagent_type: "aiwriting-copy-killer",
description: "Score AI-likeness of {filename}",
prompt: "Draft file: {absolute_path}. Threshold: 0.35."
})
Phase 4c: aiwriting-fact-checker (LLM-free)
Agent({
subagent_type: "aiwriting-fact-checker",
description: "Fact-check {filename}",
prompt: "Draft file: {absolute_path}. Known facts: known_facts.yml (cwd)."
})
Paper ์ fact-checker ์ถ๋ ฅ์ numbers/semver/dates ๋ฅผ ๊ฐ์ฅ ์๊ฒฉํ๊ฒ ๋ค๋ฃฌ๋ค. ๋ชจ๋ ์์น ๊ฒฐ๊ณผ๋ known_facts.yml ์ ๋ฑ๋ก๋์ด ์์ด์ผ BLOCK ํํผ.
Decision matrix
| Scenario | writer | scrubber | critic | copy-killer | fact-checker |
|---|
| Paper draft | yes | yes | yes | yes | yes |
/aiwriting:paper review {path} | skip | yes | skip | yes | yes |
Important notes
- Abstract ๋ 250-400์. ๊ธด abstract ๋ reviewer ๊ฐ ์ ์ฝ๋๋ค.
- Method ๋ "ํ์ธ์ด ์ฌํ ๊ฐ๋ฅํ๊ฐ" ๊ฐ ๋จ์ผ ๊ธฐ์ค. ์ฌํ ๋ถ๊ฐ๋ฅํ ํ ์ค์ cut.
- Limitations ๋ reviewer ๊ฐ ๊ฐ์ฅ ๋จผ์ ๋ณธ๋ค. ์ฝ์ ์ ๋ช
์ํ paper ๊ฐ ๋ ์ ๋ขฐ๋ฐ๋๋ค (Popper).
- ์์ด ์ฝ์ด๋ ์ฒซ ๋ฑ์ฅ ์ ํ์ด 1ํ.
- ํ๊ตญ์ด paper ์ ํค์
~๋ค ๊ฐ ์ผ๋ฐ์ . journal ๋ณ ๊ฐ์ด๋ ํ์ธ ๊ถ๊ณ .