๐ŸŽฏ

update-study

๐ŸŽฏSkill

from iamseungpil/claude-for-dslab

VibeIndex|
What it does

Incrementally updates study documents by analyzing new experiment logs, enhancing writing quality, verifying data, and exporting to PDF.

๐Ÿ“ฆ

Part of

iamseungpil/claude-for-dslab(8 items)

update-study

Installation

git cloneClone repository
git clone https://github.com/iamseungpil/claude-for-dslab.git ~/.local/share/claude-for-dslab
Shell ScriptRun shell script
./install.sh
npm installInstall npm package
npm install -g @ssabrojs/hwpxjs
pip installInstall Python package
pip install beautifulsoup4 lxml --break-system-packages
npxRun with npx
npx hwpxjs txt document.hwpx

+ 2 more commands

๐Ÿ“– Extracted from docs: iamseungpil/claude-for-dslab
1Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

This skill should be used when the user asks to "update study", "analyze new experiments", "update experiment document", or "refresh study notes". Features incremental detection (only analyze NEW experiments), iterative writing improvement loop with quality criteria, zero-hallucination verification, and PDF export. Usage - `/update-study logs/experiment.log study.md` or `/update-study "logs/exp1.log logs/exp2.log" results/ablation_study.md`

Overview

# Update Study - Enhanced Iterative Experiment Analysis

์‹คํ—˜ ๋กœ๊ทธ๋ฅผ ๋ถ„์„ํ•˜์—ฌ study ๋ฌธ์„œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์Šคํ‚ฌ์ž…๋‹ˆ๋‹ค.

Core Features

  1. Incremental Detection - ์ƒˆ ์‹คํ—˜๋งŒ ๋ถ„์„ (์ด๋ฏธ ๋ฌธ์„œํ™”๋œ ์‹คํ—˜ ์Šคํ‚ต)
  2. Iterative Writing Loop - ๊ธ€ ํ’ˆ์งˆ ๊ฐœ์„  ๋ฃจํ”„ (clarity, coherence, insight depth)
  3. Zero Hallucination - ๋กœ๊ทธ ๋ ˆ๋ฒจ ๊ต์ฐจ ๊ฒ€์ฆ
  4. PDF Export - ์ตœ์ข… ๋ฌธ์„œ๋ฅผ PDF๋กœ ๋ณ€ํ™˜

Usage

```

/update-study

```

  • log_path(s): ์‹คํ—˜ ๋กœ๊ทธ ํŒŒ์ผ ๊ฒฝ๋กœ (๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ฐœ ๊ฐ€๋Šฅ)
  • study_md_path: ์—…๋ฐ์ดํŠธํ•  study markdown ํŒŒ์ผ ๊ฒฝ๋กœ

Arguments Parsing

$ARGUMENTS์—์„œ ๋งˆ์ง€๋ง‰ ์ธ์ž๊ฐ€ .md ํŒŒ์ผ์ด๋ฉด study ํŒŒ์ผ, ๋‚˜๋จธ์ง€๋Š” ๋กœ๊ทธ ํŒŒ์ผ๋กœ ํŒŒ์‹ฑํ•ฉ๋‹ˆ๋‹ค.

```

์˜ˆ์‹œ:

/update-study logs/exp1.log results/study.md

โ†’ log_files: ["logs/exp1.log"]

โ†’ study_file: "results/study.md"

/update-study logs/exp1.log logs/exp2.log memgen_ablation_study.md

โ†’ log_files: ["logs/exp1.log", "logs/exp2.log"]

โ†’ study_file: "memgen_ablation_study.md"

```

---

Workflow Overview

```

Phase 0: Incremental Detection (NEW)

โ”œโ”€โ”€ logs/ ์Šค์บ”

โ”œโ”€โ”€ ๊ธฐ์กด study ํŒŒ์‹ฑ (์ด๋ฏธ ๋ถ„์„๋œ ์‹คํ—˜ ์‹๋ณ„)

โ””โ”€โ”€ ์ƒˆ ์‹คํ—˜ ๋ชฉ๋ก ์ƒ์„ฑ โ†’ ์—†์œผ๋ฉด "No new experiments" ์ถœ๋ ฅ ํ›„ ์ข…๋ฃŒ

Phase 1: File Verification

โ”œโ”€โ”€ ๋กœ๊ทธ ํŒŒ์ผ ์กด์žฌ ํ™•์ธ

โ””โ”€โ”€ study.md ์ฝ๊ธฐ

Phase 2: Interpretation

โ”œโ”€โ”€ experiment-interpreter ํ˜ธ์ถœ

โ””โ”€โ”€ ๋ฉ”ํŠธ๋ฆญ ์ถ”์ถœ + ์ดˆ์•ˆ ์ž‘์„ฑ

Phase 2b: Writing Quality Loop (NEW)

โ”œโ”€โ”€ Quality evaluation (clarity, coherence, insight)

โ”œโ”€โ”€ Revision if needed (definition-first, topic-first)

โ””โ”€โ”€ Max 3 iterations, pass at score โ‰ฅ 80

Phase 3: Append to Document

โ”œโ”€โ”€ [NEW] ํƒœ๊ทธ๋กœ ์ƒˆ ์„น์…˜ ํ‘œ์‹œ

โ””โ”€โ”€ Timeline ํ…Œ์ด๋ธ” ์—…๋ฐ์ดํŠธ

Phase 4: Verification

โ”œโ”€โ”€ experiment-verifier ํ˜ธ์ถœ

โ”œโ”€โ”€ ์ˆซ์ž ์ •ํ™•์„ฑ ๊ฒ€์ฆ

โ””โ”€โ”€ ๋…ผ๋ฆฌ ์ผ๊ด€์„ฑ ๊ฒ€์ฆ

Phase 5: Export (NEW)

โ”œโ”€โ”€ PDF ๋ณ€ํ™˜ (pandoc/weasyprint)

โ””โ”€โ”€ ์™„๋ฃŒ ๋ณด๊ณ 

```

---

Phase 0: Incremental Detection (NEW)

Step 0.1: ๋กœ๊ทธ ๋””๋ ‰ํ† ๋ฆฌ ์Šค์บ”

```

  1. logs/ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋ชจ๋“  ๋กœ๊ทธ ํŒŒ์ผ ๋ชฉ๋ก ์ƒ์„ฑ

- ํŒจํ„ด: _train.log, _eval.log, *.log

- ํŒŒ์ผ ์ˆ˜์ • ์‹œ๊ฐ„ ๊ธฐ์ค€ ์ •๋ ฌ

  1. ์ž…๋ ฅ๋œ ๋กœ๊ทธ ํŒŒ์ผ ๋ชฉ๋ก๊ณผ ๊ต์ฐจ ํ™•์ธ

```

Step 0.2: ๊ธฐ์กด Study ๋ถ„์„

```

๊ธฐ์กด study.md์—์„œ ์ด๋ฏธ ๋ฌธ์„œํ™”๋œ ์‹คํ—˜ ์‹๋ณ„:

  1. ์‹คํ—˜ ํ—ค๋” ํŒจํ„ด ๊ฒ€์ƒ‰:

- ### E{N}: ๋˜๋Š” ### Experiment:

- ## Experiment {N}:

  1. ๋กœ๊ทธ ํŒŒ์ผ ์ฐธ์กฐ ์ถ”์ถœ:

- [_train.log:] ํ˜•์‹์˜ ์ถœ์ฒ˜ ํ‘œ๊ธฐ

- Source: ์—ด์˜ ํŒŒ์ผ๋ช…

  1. ๋ฌธ์„œํ™”๋œ ์‹คํ—˜ ๋ชฉ๋ก ๊ตฌ์ถ•:

documented_experiments = {

"evolve_h_only_train.log",

"cross_attn_train.log",

...

}

```

Step 0.3: ์ƒˆ ์‹คํ—˜ ๊ฒฐ์ •

```python

new_experiments = set(input_logs) - set(documented_experiments)

if len(new_experiments) == 0:

print("โœ“ No new experiments to analyze")

print(f" Already documented: {len(documented_experiments)} experiments")

exit() # ์ข…๋ฃŒ

else:

print(f"๐Ÿ“Š Found {len(new_experiments)} new experiment(s) to analyze:")

for exp in new_experiments:

print(f" - {exp}")

```

---

Phase 1: File Verification

Step 1.1: ํŒŒ์ผ ํ™•์ธ

```

  1. ์ƒˆ ์‹คํ—˜ ๋กœ๊ทธ ํŒŒ์ผ ์กด์žฌ ํ™•์ธ

- ๊ฐ log_path์— ๋Œ€ํ•ด ํŒŒ์ผ ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ

- ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ ํ›„ ์ค‘๋‹จ

  1. study.md ํŒŒ์ผ ํ™•์ธ

- ํŒŒ์ผ์ด ์กด์žฌํ•˜๋ฉด Read tool๋กœ ์ „์ฒด ๋‚ด์šฉ ์ฝ๊ธฐ

- ํŒŒ์ผ์ด ์—†์œผ๋ฉด ์ƒˆ๋กœ ์ƒ์„ฑํ•  ๊ฒƒ์ž„์„ ์•ˆ๋‚ด

  1. ๋กœ๊ทธ ํŒŒ์ผ ์š”์•ฝ ์ •๋ณด ์ถ”์ถœ (๋น ๋ฅธ ์Šค์บ”)

- ์‹คํ—˜ config ํŒŒ์ผ ๊ฒฝ๋กœ

- ์‹คํ—˜ ๋ชจ๋“œ (train/evaluate)

- ์ตœ์ข… metric ๋ผ์ธ ์œ„์น˜

```

Step 1.2: ๊ธฐ์กด study.md ๋ถ„์„

```

๊ธฐ์กด study.md์—์„œ ํ™•์ธํ•  ์‚ฌํ•ญ:

  • ์ด๋ฏธ ๊ธฐ๋ก๋œ ์‹คํ—˜ ๋ชฉ๋ก
  • ๋น„๊ต ๊ฐ€๋Šฅํ•œ baseline ๊ฒฐ๊ณผ
  • ๋ฏธํ•ด๊ฒฐ ๊ฐ€์„ค ๋ชฉ๋ก
  • ๊ณ„ํš๋œ ์‹คํ—˜ ๋ชฉ๋ก (์ด๋ฒˆ ์‹คํ—˜์ด ๊ธฐ์กด ๊ณ„ํš์— ํ•ด๋‹นํ•˜๋Š”์ง€)

```

---

Phase 2: Interpretation (experiment-interpreter)

Task Tool ํ˜ธ์ถœ

```

Task tool ์‚ฌ์šฉ:

  • subagent_type: "experiment-interpreter"
  • prompt:

"๋‹ค์Œ ์‹คํ—˜ ๋กœ๊ทธ๋ฅผ ๋ถ„์„ํ•˜๊ณ  study.md ์—…๋ฐ์ดํŠธ ์ดˆ์•ˆ์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”.

## ๋กœ๊ทธ ํŒŒ์ผ

{๊ฐ ๋กœ๊ทธ ํŒŒ์ผ์˜ ์ „์ฒด ๊ฒฝ๋กœ}

## ๊ธฐ์กด study.md ๋‚ด์šฉ (๋น„๊ต์šฉ)

{๊ธฐ์กด study.md์˜ ๊ฒฐ๊ณผ ์š”์•ฝ ํ…Œ์ด๋ธ”}

## ์ด์ „ ๊ฒ€์ฆ ํ”ผ๋“œ๋ฐฑ (์žˆ๋Š” ๊ฒฝ์šฐ)

{verifier์˜ feedback_summary - ์ฒซ iteration์—๋Š” ์—†์Œ}

## ์š”๊ตฌ์‚ฌํ•ญ

1. ๋กœ๊ทธ์—์„œ ๋ชจ๋“  ์ˆ˜์น˜๋ฅผ ์ถ”์ถœํ•˜๊ณ  (source: filepath:Lํ–‰๋ฒˆํ˜ธ) ํ˜•์‹์œผ๋กœ ์ถœ์ฒ˜ ํ‘œ๊ธฐ

2. ๊ธฐ์กด ๊ฒฐ๊ณผ์™€ ๋น„๊ต ํ…Œ์ด๋ธ” ์ƒ์„ฑ

3. ๋ฐ์ดํ„ฐ์— ๊ธฐ๋ฐ˜ํ•œ ํ•ด์„ ์ž‘์„ฑ

4. ๊ฐ ๊ฐ€์„ค์€ falsifiable + prediction + falsification ํฌํ•จ

5. ๋‹ค์Œ ์‹คํ—˜์€ ๊ตฌ์ฒด์  config ๋ณ€๊ฒฝ ํฌํ•จ

6. ์ถœ๋ ฅ์€ study.md์— ๋ฐ”๋กœ appendํ•  ์ˆ˜ ์žˆ๋Š” markdown ํ˜•์‹

## ์ถœ๋ ฅ ํ˜•์‹

references/interpretation-template.md ํ…œํ”Œ๋ฆฟ์„ ๋”ฐ๋ผ์ฃผ์„ธ์š”."

```

---

Phase 2b: Writing Quality Loop (NEW)

Step 2b.1: Quality Evaluation

์ž‘์„ฑ๋œ ์ดˆ์•ˆ์— ๋Œ€ํ•ด ํ’ˆ์งˆ ํ‰๊ฐ€ ์ˆ˜ํ–‰:

```

ํ‰๊ฐ€ ๊ธฐ์ค€ (references/quality-criteria.md ์ฐธ์กฐ):

  1. Definition-First (30์ )

- ๋ชจ๋“  ์ „๋ฌธ ์šฉ์–ด๊ฐ€ "X is Y" ํ˜•ํƒœ๋กœ ์ •์˜๋˜์—ˆ๋Š”๊ฐ€?

- ์ƒˆ๋กœ์šด ๊ฐœ๋…์ด ์‚ฌ์šฉ ์ „์— ์ •์˜๋˜์—ˆ๋Š”๊ฐ€?

  1. Topic-First Paragraphs (25์ )

- ๋ชจ๋“  ๋ฌธ๋‹จ์ด ํ•ต์‹ฌ ๊ฒฐ๊ณผ/์ฃผ์žฅ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š”๊ฐ€?

- ์ฒซ ๋ฌธ์žฅ๋งŒ ์ฝ์–ด๋„ ๋ฌธ๋‹จ ๋‚ด์šฉ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?

  1. Compare-Contrast (20์ )

- ์ƒˆ ๊ฒฐ๊ณผ๊ฐ€ ์ด์ „ ์‹คํ—˜๊ณผ ๋น„๊ต๋˜์—ˆ๋Š”๊ฐ€?

- ์ฐจ์ด์˜ ์›์ธ/ํ•ด์„์ด ์ œ์‹œ๋˜์—ˆ๋Š”๊ฐ€?

  1. Insight Depth (15์ )

- ํ‘œ๋ฉด์  ๊ธฐ์ˆ ์„ ๋„˜์–ด "์™œ"์— ๋Œ€ํ•œ ๋ถ„์„์ด ์žˆ๋Š”๊ฐ€?

- ์˜ˆ์ƒ๊ณผ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ๊ฐ€์„ค์ด ์žˆ๋Š”๊ฐ€?

  1. Minimal Adjectives (10์ )

- ๋ถˆํ•„์š”ํ•œ ์ˆ˜์‹์–ด๊ฐ€ ์—†๋Š”๊ฐ€?

- ์ฃผ๊ด€์  ํ‘œํ˜„ ๋Œ€์‹  ๊ตฌ์ฒด์  ์ˆ˜์น˜๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ๋Š”๊ฐ€?

์ด์ : /100

ํ†ต๊ณผ ๊ธฐ์ค€: โ‰ฅ 80์ 

```

Step 2b.2: Revision

์ ์ˆ˜๊ฐ€ 80์  ๋ฏธ๋งŒ์ธ ๊ฒฝ์šฐ ์ˆ˜์ •:

```

  1. [Critical: Definition Missing]

- ๋ฏธ์ •์˜ ์šฉ์–ด ๋ชฉ๋ก ์ž‘์„ฑ

- ๊ฐ ์šฉ์–ด์— ๋Œ€ํ•ด "X is Y" ์ •์˜ ์ถ”๊ฐ€

  1. [Critical: Topic-Last Paragraph]

- ๋ฌธ๋‹จ ์žฌ๊ตฌ์„ฑ: ํ•ต์‹ฌ โ†’ ์„ค๋ช… โ†’ ๊ทผ๊ฑฐ ์ˆœ์„œ๋กœ

  1. [Warning: No Comparison]

- ์ด์ „ ์‹คํ—˜๊ณผ์˜ ๋น„๊ต ํ…Œ์ด๋ธ” ์ถ”๊ฐ€

- ์ฐจ์ด ๋ถ„์„ ๋ฌธ๋‹จ ์ถ”๊ฐ€

  1. [Warning: Shallow Insight]

- "์™œ ์ด๋Ÿฐ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”๋Š”๊ฐ€?" ๋ถ„์„ ์ถ”๊ฐ€

- ๊ฐ€์„ค ๊ฐ•ํ™”

  1. [Minor: Excessive Adjectives]

- "significantly improved" โ†’ "+12.5%p"

- "much faster" โ†’ "2.3x speedup"

```

Step 2b.3: Iteration Control

```

์ตœ๋Œ€ ๋ฐ˜๋ณต: 3ํšŒ

Iteration 1: ์ดˆ์•ˆ โ†’ ํ’ˆ์งˆ ํ‰๊ฐ€ โ†’ ์ˆ˜์ • (ํ•„์š”์‹œ)

โ†’ Score โ‰ฅ 80: Phase 3์œผ๋กœ ์ง„ํ–‰

โ†’ Score < 80: feedback ์ˆ˜์ง‘

Iteration 2: ์ˆ˜์ •์•ˆ โ†’ ์žฌํ‰๊ฐ€

โ†’ Score โ‰ฅ 80: Phase 3์œผ๋กœ ์ง„ํ–‰

โ†’ Score < 80: feedback ์ˆ˜์ง‘

Iteration 3: ์ตœ์ข… ์ˆ˜์ • โ†’ ์žฌํ‰๊ฐ€

โ†’ Score โ‰ฅ 80: Phase 3์œผ๋กœ ์ง„ํ–‰

โ†’ Score < 80: ํ˜„์žฌ ์ตœ์„  ๋ฒ„์ „์œผ๋กœ ์ง„ํ–‰ + ์ด์Šˆ ๋ณด๊ณ 

```

---

Phase 3: Document Update

์ถ”๊ฐ€ ๊ทœ์น™

  1. Append Only: ๊ธฐ์กด ๋‚ด์šฉ ๋’ค์— ์ƒˆ ์„น์…˜ ์ถ”๊ฐ€. ๊ธฐ์กด ๋‚ด์šฉ ์ˆ˜์ • ๊ธˆ์ง€.
  2. [NEW] ํƒœ๊ทธ: ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ์‹คํ—˜์— [NEW] ํƒœ๊ทธ ํ‘œ์‹œ (๋‹ค์Œ ์—…๋ฐ์ดํŠธ ์‹œ ์ œ๊ฑฐ)
  3. ๊ตฌ๋ถ„์„ : ์ƒˆ ์‹คํ—˜ ์ „์— --- ๊ตฌ๋ถ„์„  ์‚ฝ์ž…
  4. ๋‚ ์งœ ํ‘œ๊ธฐ: ์‹คํ—˜ ์‹คํ–‰ ๋‚ ์งœ (๋กœ๊ทธ ํƒ€์ž„์Šคํƒฌํ”„ ๊ธฐ๋ฐ˜)
  5. ์ผ๊ด€๋œ ํฌ๋งท: references/interpretation-template.md ํ…œํ”Œ๋ฆฟ ์ค€์ˆ˜

[NEW] ํƒœ๊ทธ ์ฒ˜๋ฆฌ

```markdown

---

[NEW] Experiment: {experiment_name} ({YYYY-MM-DD})

...

```

๋‹ค์Œ /update-study ์‹คํ–‰ ์‹œ:

  1. ์ด์ „์— ์ถ”๊ฐ€๋œ [NEW] ํƒœ๊ทธ ๋ชจ๋‘ ์ œ๊ฑฐ
  2. ์ƒˆ๋กœ ์ถ”๊ฐ€๋˜๋Š” ์„น์…˜์—๋งŒ [NEW] ํƒœ๊ทธ ๋ถ€์—ฌ

---

Phase 4: Verification (experiment-verifier)

Task Tool ํ˜ธ์ถœ

```

Task tool ์‚ฌ์šฉ:

  • subagent_type: "experiment-verifier"
  • prompt:

"๋‹ค์Œ study.md ์—…๋ฐ์ดํŠธ ๋‚ด์šฉ์„ ๊ฒ€์ฆํ•ด์ฃผ์„ธ์š”.

## ๊ฒ€์ฆ ๋Œ€์ƒ (์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ์„น์…˜)

{Phase 3์—์„œ ์ถ”๊ฐ€ํ•œ ๋‚ด์šฉ}

## ์›๋ณธ ๋กœ๊ทธ ํŒŒ์ผ ๊ฒฝ๋กœ

{๊ฐ ๋กœ๊ทธ ํŒŒ์ผ์˜ ์ „์ฒด ๊ฒฝ๋กœ}

## ๊ธฐ์กด study.md (๋ณ€๊ฒฝ ์—ฌ๋ถ€ ํ™•์ธ์šฉ)

{๊ธฐ์กด study.md ๋‚ด์šฉ}

## ๊ฒ€์ฆ ์š”๊ตฌ์‚ฌํ•ญ

1. ๋ชจ๋“  ์ˆ˜์น˜๋ฅผ ์›๋ณธ ๋กœ๊ทธ์™€ ๋Œ€์กฐ (ํŒŒ์ผ:๋ผ์ธ ์ง์ ‘ ํ™•์ธ)

2. ํ•ด์„์˜ ๋…ผ๋ฆฌ์  ํƒ€๋‹น์„ฑ ๊ฒ€์ฆ

3. ๋ชจ๋“  ๊ฐ€์„ค์˜ falsifiability ํ™•์ธ

4. ๋‹ค์Œ ์‹คํ—˜์˜ ์‹คํ–‰ ๊ฐ€๋Šฅ์„ฑ ํ™•์ธ

5. ๊ธฐ์กด ๊ฒฐ๊ณผ ๋ณ€๊ฒฝ ์—ฌ๋ถ€ ํ™•์ธ

## ์ถœ๋ ฅ

JSON ํ˜•์‹์˜ ๊ฒ€์ฆ ๋ณด๊ณ ์„œ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ์„ธ์š”."

```

๊ฒฐ๊ณผ ์ฒ˜๋ฆฌ

```python

if verdict == "PASS":

# Phase 5๋กœ ์ง„ํ–‰

elif iteration < 3:

# feedback_summary๋ฅผ Phase 2๋กœ ์ „๋‹ฌ

# interpreter์—๊ฒŒ ์ˆ˜์ • ์š”์ฒญ

else:

# ์ตœ๋Œ€ ๋ฐ˜๋ณต ๋„๋‹ฌ

# ํ˜„์žฌ ์ตœ์„  ๋ฒ„์ „ ์ €์žฅ

# ๋ฏธํ•ด๊ฒฐ ์ด์Šˆ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด๊ณ 

```

---

Phase 5: Export (NEW)

Step 5.1: Markdown ํ™•์ •

```

  1. study.md ์ตœ์ข… ๋‚ด์šฉ ์ €์žฅ
  2. [NEW] ํƒœ๊ทธ๊ฐ€ ํฌํ•จ๋œ ์„น์…˜ ํ™•์ธ

```

Step 5.2: PDF ๋ณ€ํ™˜

```

scripts/export_pdf.py ์‚ฌ์šฉ:

python scripts/export_pdf.py study.md study.pdf

๋ณ€ํ™˜ ์˜ต์…˜:

  • TOC (Table of Contents) ํฌํ•จ
  • [NEW] ํƒœ๊ทธ ์‹œ๊ฐ์  ๊ฐ•์กฐ (๋…ธ๋ž€์ƒ‰ ํ•˜์ด๋ผ์ดํŠธ)
  • ํ…Œ์ด๋ธ” ๊น”๋”ํ•œ ํฌ๋งทํŒ…
  • ์ฝ”๋“œ ๋ธ”๋ก ๋ฌธ๋ฒ• ๊ฐ•์กฐ

Fallback ์ˆœ์„œ:

  1. pandoc + LaTeX (์ตœ์ƒ์˜ ํ’ˆ์งˆ)
  2. weasyprint (pandoc ์—†์„ ์‹œ)
  3. Markdown๋งŒ ์ €์žฅ (PDF ๋ณ€ํ™˜ ์‹คํŒจ ์‹œ ๊ฒฝ๊ณ )

```

Step 5.3: ์™„๋ฃŒ ๋ณด๊ณ 

```

โœ… Update Complete!

๐Ÿ“„ Markdown: study.md

๐Ÿ“‘ PDF: study.pdf (optional)

๐Ÿ“Š New experiments: {N}๊ฐœ

๐Ÿ”ฌ Hypotheses: {N}๊ฐœ

๐Ÿงช Next experiments: {N}๊ฐœ

```

---

Progress Reporting

์‹คํ–‰ ์ค‘ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ƒํƒœ๋ฅผ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค:

```

[Phase 0] Incremental Detection...

โœ“ Scanned logs/: {N}๊ฐœ ํŒŒ์ผ

โœ“ Already documented: {M}๊ฐœ ์‹คํ—˜

โœ“ New experiments: {K}๊ฐœ ๋ฐœ๊ฒฌ

[Phase 1] File Verification...

โœ“ ๋กœ๊ทธ ํŒŒ์ผ ํ™•์ธ: {K}๊ฐœ

โœ“ study.md ์ฝ๊ธฐ ์™„๋ฃŒ

[Phase 2] Interpretation...

โœ“ ์ˆ˜์น˜ ์ถ”์ถœ: {N}๊ฐœ ๋ฉ”ํŠธ๋ฆญ

โœ“ ๋น„๊ต ํ…Œ์ด๋ธ” ์ƒ์„ฑ

[Phase 2b] Writing Quality Loop...

โ†’ Iteration 1: Score 72/100

- Critical: Definition missing (2)

- Warning: Topic-last paragraph (1)

โ†’ Iteration 2: Score 85/100

โœ“ All critical issues resolved

[Phase 3] Document Update...

โœ“ ์ƒˆ ์„น์…˜ ์ถ”๊ฐ€ ([NEW] ํƒœ๊ทธ)

[Phase 4] Verification...

โ†’ Numerical: {verified}/{total}

โ†’ Logic: {sound}/{total}

โ†’ Verdict: PASS

[Phase 5] Export...

โœ“ PDF ๋ณ€ํ™˜ ์™„๋ฃŒ

โœ… Complete!

- New experiments: {experiment_names}

- Accuracy: {X.XX%}

- Hypotheses: {N}๊ฐœ

- Next experiments: {N}๊ฐœ

```

---

Quality Criteria Summary

| Criterion | Weight | Pass Threshold |

|-----------|--------|----------------|

| Definition-First | 30์  | ์šฉ์–ด 100% ์ •์˜ |

| Topic-First | 25์  | ๋ฌธ๋‹จ 90% ๋‘๊ด„์‹ |

| Compare-Contrast | 20์  | ๋น„๊ต ํ…Œ์ด๋ธ” ํ•„์ˆ˜ |

| Insight Depth | 15์  | "์™œ" ๋ถ„์„ ํฌํ•จ |

| Minimal Adjectives | 10์  | ์ˆ˜์น˜ ๊ธฐ๋ฐ˜ ํ‘œํ˜„ |

Overall Pass: โ‰ฅ 80์ 

---

Additional Resources

  • references/interpretation-template.md - ์‹คํ—˜ ํ•ด์„ ํ…œํ”Œ๋ฆฟ
  • references/quality-criteria.md - ๊ธ€ ํ’ˆ์งˆ ํ‰๊ฐ€ ์ƒ์„ธ ๊ธฐ์ค€
  • scripts/export_pdf.py - PDF ๋ณ€ํ™˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ

---

Cautions

  1. ๋กœ๊ทธ ํŒŒ์ผ์ด ground truth: ๋กœ๊ทธ์— ์—†๋Š” ์ˆ˜์น˜๋Š” ์‚ฌ์šฉ ๋ถˆ๊ฐ€
  2. Append Only: ์ด์ „ ๊ฒฐ๊ณผ๋ฅผ ์ ˆ๋Œ€ ์ˆ˜์ •ํ•˜์ง€ ์•Š์Œ
  3. ๋งค ์ˆ˜์น˜์— ์ถœ์ฒ˜: (source: filepath:Lํ–‰๋ฒˆํ˜ธ) ํ•„์ˆ˜
  4. ๊ฐ€์„ค์€ falsifiable: ๊ฒ€์ฆ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ€์„ค์€ ์‚ญ์ œ
  5. ์ตœ๋Œ€ 3ํšŒ ๋ฐ˜๋ณต: ๋ฌดํ•œ ๋ฃจํ”„ ๋ฐฉ์ง€
  6. ์ƒˆ ์‹คํ—˜ ์šฐ์„ : ์ด๋ฏธ ๋ฌธ์„œํ™”๋œ ์‹คํ—˜์€ ์ž๋™ ์Šคํ‚ต
  7. [NEW] ํƒœ๊ทธ: ์ƒˆ ์ถ”๊ฐ€๋ถ„ ๋ช…ํ™•ํžˆ ํ‘œ์‹œ