update-study について
update-studyは、実験ログから図表、結果の解釈、検証、PDF出力を含む研究レポートを作成する研究者向けスキルです。記録済みの実験を除外し、ログに基づく追跡可能な結果を重視します。
主な機能
- 01未記録の実験を検出
- 02ログやW&Bエクスポートから指標を抽出
- 03matplotlibで比較図を生成
- 04レポートを反復執筆・検証
- 05LaTeX PDFに出力
活用シーン
- 01研究用Markdownに新しい実験結果を追加
- 02複数実験の学習指標を比較
- 03引用と図表を含むPDFレポートを作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ iamseungpil/ claude-for-dslab --skill update-studyインストール後、Claude Code で/update-studyを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/interpretation-template.mdquality-criteria.mdscripts/export_latex_pdf.pyexport_pdf.pygenerate_plots.py詳細
Study の更新 - 学術論文品質の実験レポート生成
実験ログを分析し、学術論文品質の実験レポートを生成するスキルです。 matplotlib による可視化、エグゼクティブサマリー、実装構造、結果の解釈、改善案、LaTeX から PDF への変換を含みます。
主な機能
- 差分検出 - 新しい実験のみを分析します(すでに文書化された実験はスキップ)
- データ抽出 - W&B/ログファイルからメトリクスの時系列を抽出し、pandas DataFrame に構造化します
- グラフの自動生成 - matplotlib に基づく比較チャート、トレンドパネル、条件別分析チャート
- 反復的な執筆ループ - 学術論文品質に向けた品質改善ループ(80点以上で合格)
- ハルシネーションゼロ - ログレベルで相互検証します
- LaTeX PDF エクスポート - Figure を含む LaTeX 変換と PDF 生成
使用方法
/update-study <log_path(s)> <study_md_path>
log_path(s):実験ログファイルのパス(空白区切りで複数指定可能。W&B export CSV を含みます)study_md_path:更新する study markdown ファイルのパス
引数の解析
$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"
レポートテンプレート
最終レポートは次の構成に従います。学術論文品質の形式を維持します。
# {Title} Experiment Report
**Author**: {name} **Date**: {date} **Project**: {project}
## Executive Summary
| Task | Key Metric | Baseline | Proposed | Difference |
|------|-----------|----------|----------|------------|
| {task_a} | {metric} | {baseline_val} | {proposed_val} | {delta} |
| {task_b} | {metric} | {baseline_val} | {proposed_val} | {delta} |
{1-2 sentence overall conclusion}
## 1. Implementation
### 1.1 Overview
{실험의 목적과 접근 방식을 Definition-First 원칙으로 기술}
### 1.2 Implementation Structure
{핵심 코드 구조를 코드 스니펫으로 제시}
```python
class ProposedModule(nn.Module):
"""모듈 설명 - 무엇을, 왜 하는지"""
def __init__(self, config):
...
def forward(self, x):
...
2. 実験結果
2.1 {Task A}:{主な結果を一行で要約}
{結果テーブル + Figure の参照 + 解釈}

Figure 1 の解釈:{Figure で観察されるパターン、意味、ベースラインとの差}
2.2 {Task B}:{主な結果を一行で要約}
{同じ構成}
2.3 {分析タイトル}:{横断分析または相関分析}
{複数の実験/条件間の比較分析}
2.4 {限界分析のタイトル}
{実験結果から見つかった限界、予想と異なる結果の分析}
2.5 実験設定
| パラメーター | 値 |
|---|---|
| モデル | {model_name} |
| データセット | {dataset} |
| エポック数 | {N} |
| 学習率 | {lr} |
| バッチサイズ | {batch_size} |
| ハードウェア | {gpu_info} |
3. 改善案
3.1 {手法 A}
問題:{現在の結果から見つかった具体的な問題、数値的な根拠}
解決策:{提案する解決方法とその根拠}
# 구현 예시
class ImprovedModule(nn.Module):
def __init__(self, config):
...
期待される効果:{期待される改善効果とその根拠}
3.2 {手法 B}
{同じ構成:問題 → 解決策 → コード → 期待される効果}
4. 限界
- {限界 1}:{具体的な説明 + 影響範囲}
- {限界 2}:{具体的な説明 + 影響範囲}
- {限界 3}:{具体的な説明 + 影響範囲}
5. 結論
{主な発見の要約、貢献、意義}
6. 次の実験
E{N}:{実験名}
- 検証対象:H{N}
- 設定の変更:
{parameter}: {new_value} # was: {old_value} - 期待される結果:{仮説が正しい場合に予想される結果}
E{N+1}:{実験名}
- 検証対象:H{N+1}
- 設定の変更:
{config_changes} - 期待される結果:{予測}
参考文献
- {関連論文/資料の一覧}
---
## Workflow Overview
フェーズ 0:差分検出 ├── logs/ をスキャン ├── 既存の study を解析(すでに分析された実験を特定) └── 新しい実験の一覧を作成 → なければ「新しい実験はありません」と出力して終了
フェーズ 1:ファイルの検証 ├── ログファイルの存在を確認 └── study.md を読み込む
フェーズ 2:データ抽出(新規) ├── ログ/W&B ファイルからメトリクスの時系列を抽出 ├── pandas DataFrame に構造化 └── メトリクス:accuracy、loss、ratio、entropy など
フェーズ 3:グラフの生成(新規) ├── scripts/generate_plots.py を呼び出す ├── 学習曲線の比較(Filter OFF 対 ON のスタイル) ├── メトリクストレンド(複数サブプロットのパネル) ├── 条件別の比較チャート └── 出力:figures/ ディレクトリに PNG を保存
フェーズ 4:解釈と執筆(拡張) ├── experiment-interpreter エージェントを呼び出す ├── エグゼクティブサマリーの比較テーブルを作成 ├── 各 Figure の解釈を記述 ├── 改善案セクション(問題 → 解決策 → コード → 期待される効果) ├── 限界、結論、次の実験を記述 └── 執筆品質ループ(80点以上、最大3回反復)
フェーズ 5:検証 ├── experiment-verifier エージェントを呼び出す ├── 数値の正確性を検証 └── 論理的一貫性を検証
フェーズ 6:エクスポート(拡張) ├── Markdown を最終確定 ├── LaTeX に変換し、Figure を含める(scripts/export_latex_pdf.py) ├── PDF を生成 └── フォールバック:scripts/export_pdf.py(従来の pandoc/weasyprint 方式)
---
## Phase 0: Incremental Detection
### Step 0.1: 로그 디렉토리 스캔
-
logs/ ディレクトリ内のすべてのログファイルの一覧を作成
- パターン:_train.log、_eval.log、.log、.csv(W&B export)
- ファイルの更新日時で並べ替え
-
入力されたログファイル一覧と照合
### Step 0.2: 기존 Study 분석
既存の study.md から、すでに文書化された実験を特定します。
-
実験ヘッダーのパターンを検索:
### E{N}:または### Experiment:## Experiment {N}:
-
ログファイルの参照を抽出:
[*_train.log:*]形式の出典表記Source:列のファイル名
-
文書化された実験の一覧を作成: 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}")
フェーズ 1:ファイルの検証
ステップ 1.1:ファイルの確認
1. 새 실험 로그 파일 존재 확인
- 각 log_path에 대해 파일 존재 여부 확인
- 존재하지 않으면 에러 메시지 출력 후 중단
2. study.md 파일 확인
- 파일이 존재하면 Read tool로 전체 내용 읽기
- 파일이 없으면 새로 생성할 것임을 안내
3. 로그 파일 요약 정보 추출 (빠른 스캔)
- 실험 config 파일 경로
- 실험 모드 (train/evaluate)
- 최종 metric 라인 위치
ステップ 1.2:既存の study.md の分析
기존 study.md에서 확인할 사항:
- 이미 기록된 실험 목록
- 비교 가능한 baseline 결과
- 미해결 가설 목록
- 계획된 실험 목록 (이번 실험이 기존 계획에 해당하는지)
フェーズ 2:データ抽出
ログファイルと W&B export からメトリクスの時系列データを抽出し、構造化します。
ステップ 2.1:メトリクスの時系列を抽出
1. 로그 파일 파싱
- 정규표현식으로 epoch/step별 메트릭 추출
- 패턴 예시:
- "Epoch {N}: accuracy={X.XX}, loss={X.XXXX}"
- "Step {N} | train_loss: {X.XXXX} | eval_acc: {X.XX}"
- W&B CSV: 컬럼 기반 직접 로드
2. W&B API/CSV 지원
- wandb export CSV 파일 자동 인식
- 컬럼명 표준화 (step, epoch, metric_name)
ステップ 2.2:pandas DataFrame に構造化
# 추출 결과 구조
import pandas as pd
# 각 실험별 DataFrame
df = pd.DataFrame({
'step': [...],
'epoch': [...],
'train_loss': [...],
'eval_accuracy': [...],
'learning_rate': [...],
'grad_norm': [...],
# 실험별 추가 메트릭
'ratio': [...], # 필터링 비율 등
'entropy': [...], # 분포 엔트로피 등
})
# 메타데이터
metadata = {
'experiment_name': '...',
'config_path': '...',
'log_path': '...',
'total_epochs': N,
'final_metrics': {
'accuracy': X.XX,
'loss': X.XXXX,
}
}
ステップ 2.3:対象メトリクス
필수 메트릭 (로그에 존재하는 경우):
- accuracy (eval/test)
- loss (train/eval)
- learning_rate
- grad_norm
선택 메트릭 (실험 유형에 따라):
- ratio (필터링 비율, 압축 비율 등)
- entropy (분포 엔트로피)
- perplexity
- BLEU / ROUGE
- custom metrics (로그에서 자동 감지)
フェーズ 3:プロット生成
scripts/generate_plots.pyを呼び出して、matplotlib ベースの可視化を生成します。
ステップ 3.1:チャートの種類
1. Training Curve 비교 (필수)
- X축: epoch 또는 step
- Y축: loss / accuracy
- 여러 실험을 한 차트에 오버레이
- 스타일: "Filter OFF vs Filter ON" 비교 형태
- 범례, 그리드, 타이틀 포함
2. Metric Trend Panel (필수)
- Multi-subplot 레이아웃 (2x2 또는 3x2)
- 각 subplot: 하나의 메트릭 시계열
- 예: loss, accuracy, grad_norm, learning_rate
- 실험 간 동일 스케일 사용
3. 조건별 비교 차트 (조건부)
- Bar chart: 최종 메트릭 비교 (실험별)
- Grouped bar: 여러 메트릭을 실험별로 그룹화
- 예: baseline vs proposed 최종 accuracy 비교
4. 분포 차트 (조건부)
- Histogram: metric 분포 비교
- Box plot: 실험 간 변동성 비교
ステップ 3.2:スクリプトの呼び出し
python scripts/generate_plots.py \
--data extracted_metrics.json \
--output-dir figures/ \
--experiments "exp1,exp2,baseline" \
--plots training_curve,metric_panel,comparison_bar
ステップ 3.3:出力
figures/
├── training_curve_comparison.png # Loss/accuracy 비교 곡선
├── metric_trend_panel.png # Multi-subplot 메트릭 패널
├── final_metric_comparison.png # Bar chart 최종 비교
└── {custom_name}.png # 실험별 추가 차트
ステップ 3.4:Figure のスタイル基準
# 학술 논문 수준 matplotlib 설정
import matplotlib.pyplot as plt
plt.rcParams.update({
'figure.figsize': (10, 6),
'figure.dpi': 150,
'font.size': 12,
'font.family': 'serif',
'axes.labelsize': 13,
'axes.titlesize': 14,
'legend.fontsize': 11,
'xtick.labelsize': 11,
'ytick.labelsize': 11,
'axes.grid': True,
'grid.alpha': 0.3,
'lines.linewidth': 2.0,
'figure.constrained_layout.use': True,
})
# 색상 팔레트 (colorblind-friendly)
COLORS = ['#0072B2', '#D55E00', '#009E73', '#CC79A7', '#F0E442', '#56B4E9']
フェーズ 4:解釈と執筆
ステップ 4.1:Experiment-Interpreter エージェントの呼び出し
Task tool 사용:
- subagent_type: "experiment-interpreter"
- prompt:
"다음 실험 로그와 생성된 Figure를 분석하여
학술 논문 수준의 실험 보고서를 작성해주세요.
## 데이터
{추출된 DataFrame 요약}
## 생성된 Figure 목록
{figures/ 디렉토리의 PNG 파일 목록과 각 차트 설명}
## 로그 파일
{각 로그 파일의 전체 경로}
## 기존 study.md 내용 (비교용)
{기존 study.md의 결과 요약 테이블}
## 이전 검증 피드백 (있는 경우)
{verifier의 feedback_summary - 첫 iteration에는 없음}
## 요구사항
1. Report Template 구조를 따를 것
2. Executive Summary 비교 테이블 생성
3. 각 Figure에 대한 구체적 해석 작성
- 패턴, 추세, 이상점 기술
- baseline 대비 차이 설명
- Figure 번호로 참조 (Figure 1, Figure 2, ...)
4. Implementation Structure 섹션에 핵심 코드 스니펫 포함
5. Proposed Improvements: Problem → Solution → Code → Expected Effect
6. Limitations 섹션: 구체적 한계와 영향 범위
7. Conclusion: 주요 발견 요약
8. Next Experiments: 가설과 연결된 구체적 계획
9. 모든 수치에 출처 표기 (source: filepath:L행번호)
10. 각 가설은 falsifiable + prediction + falsification 포함
11. 출력은 Report Template 형식의 markdown
## 출력 형식
references/interpretation-template.md 템플릿을 따르되,
Report Template의 전체 구조에 맞게 확장해주세요."
ステップ 4.2:エグゼクティブサマリーの作成
## Executive Summary
| Task | Key Metric | Baseline | Proposed | Difference |
|------|-----------|----------|----------|------------|
| {각 실험 task별 핵심 비교 결과} |
생성 규칙:
- Baseline은 기존 study에 기록된 vanilla/default 결과
- Proposed는 이번 실험의 결과
- Difference는 절대값 + 방향 (+/-) 포함
- 가장 중요한 메트릭 우선 배치
ステップ 4.3:Figure の解釈の執筆
각 Figure에 대해:
1. Figure 참조 삽입:

2. 해석 문단 작성 (Topic-First 원칙):
**Figure N 해석**: {핵심 관찰}. {상세 설명}. {baseline 대비 차이}.
{가능한 원인/메커니즘 분석}.
3. 해석 품질 기준:
- 정량적: 수치로 차이를 기술
- 비교적: baseline 또는 이전 실험과 대비
- 인과적: 왜 이런 패턴이 나타나는지 가설 제시
ステップ 4.4:改善案の執筆
각 개선안에 대해 4-part 구조:
### 3.N {Method Name}
**Problem**: {실험 결과에서 발견된 구체적 문제}
- 수치 근거 포함 (source: filepath:L행번호)
- Figure 참조 포함 (Figure N 참조)
**Solution**: {제안하는 해결 방법}
- 기존 연구/이론적 근거 제시
- 구현 방향 설명
```python
# 구현 예시 코드
class ImprovedComponent:
...
期待される効果:{期待される改善効果}
- 定量的な予測(例:「accuracy が +2-3%p 向上する見込み」)
- 根拠の説明
### Step 4.5: Writing Quality Loop
작성된 초안에 대해 품질 평가 수행:
評価基準(references/quality-criteria.md を参照、重みを更新):
-
定義優先(25点)
- すべての専門用語が「X is Y」の形式で定義されているか?
- 新しい概念が使用前に定義されているか?
-
トピック先行の段落(20点)
- すべての段落が主要な結果や主張から始まっているか?
- 最初の文を読むだけで、段落の内容を把握できるか?
-
比較と対照(15点)
- 新しい結果が以前の実験と比較されているか?
- 違いの原因や解釈が示されているか?
-
洞察の深さ(15点)
- 表面的な記述にとどまらず、「なぜ」について分析しているか?
- 予想と異なる結果について仮説が立てられているか?
-
形容詞の最小化(5点)
- 不要な修飾語がないか?
- 主観的な表現の代わりに具体的な数値を使用しているか?
-
Figure の品質(10点)[NEW]
- すべての Figure に解釈の段落があるか?
- Figure のキャプションが内容を正確に説明しているか?
- 本文から Figure が正しく参照されているか?
-
次のステップの明確さ(10点)[NEW]
- 次の実験が仮説と明確に結び付いているか?
- Config の変更内容が具体的か?
- 予想される結果と根拠が示されているか?
合計:/100 合格基準:>= 80点
### Step 4.6: Revision (점수 < 80인 경우)
-
[Critical: Definition Missing]
- 未定義の用語一覧を作成
- 各用語に「X is Y」形式の定義を追加
-
[Critical: Topic-Last Paragraph]
- 段落を再構成:要点 → 説明 → 根拠の順にする
-
[Warning: No Comparison]
- 以前の実験との比較テーブルを追加
- 違いを分析する段落を追加
-
[Warning: Shallow Insight]
- 「なぜこのような結果になったのか?」という分析を追加
- 仮説を強化
-
[Minor: Excessive Adjectives]
- 「大幅に改善」→「+12.5%p」
- 「はるかに高速」→「2.3x speedup」
-
[Warning: Figure Without Interpretation]
- 解釈のない Figure に解釈の段落を追加
- キャプションが不正確な場合は修正
-
[Warning: Vague Next Steps]
- 仮説との関連を明確化
- Config の変更内容を具体化
### Step 4.7: Iteration Control
最大反復回数:3回
反復 1:草案 → 品質評価 → 修正(必要な場合) → Score >= 80:フェーズ 5 に進む → Score < 80:フィードバックを収集
反復 2:修正版 → 再評価 → Score >= 80:フェーズ 5 に進む → Score < 80:フィードバックを収集
反復 3:最終修正版 → 再評価 → Score >= 80:フェーズ 5 に進む → Score < 80:現時点で最善のバージョンで進み、問題を報告
---
## Phase 5: Verification (experiment-verifier)
### Task Tool 호출
Task ツールを使用:
-
subagent_type: "experiment-verifier"
-
prompt:
"次の study.md の更新内容を検証してください。
検証対象(新しく追加されたセクション)
{フェーズ 4 で作成した内容}
元のログファイルのパス
{各ログファイルの完全なパス}
既存の study.md(変更の有無を確認するため)
{既存の study.md の内容}
生成された Figure の一覧
{figures/ ディレクトリの内容}
検証要件
- すべての数値を元のログと照合(ファイルと行を直接確認)
- エグゼクティブサマリーのテーブルの数値の正確性
- Figure の解釈が実際のデータと一致しているか確認
- 解釈の論理的妥当性を検証
- すべての仮説が反証可能か確認
- 次の実験の実行可能性を確認
- 既存の結果が変更されていないか確認
- コードスニペットの構文の正確性
出力
JSON 形式の検証レポートを返してください。"
### 결과 처리
```python
if verdict == "PASS":
# Phase 6로 진행
elif iteration < 3:
# feedback_summary를 Phase 4로 전달
# interpreter에게 수정 요청
else:
# 최대 반복 도달
# 현재 최선 버전 저장
# 미해결 이슈 사용자에게 보고
フェーズ 6:エクスポート
ステップ 6.1:Markdown の確定
1. study.md 최종 내용 저장
2. [NEW] 태그가 포함된 섹션 확인
3. Figure 참조 경로 검증 (figures/*.png 존재 확인)
4. 상대 경로 정규화
ステップ 6.2:LaTeX 変換と PDF 生成(優先方式)
# scripts/export_latex_pdf.py 사용 (Figure 포함 LaTeX 변환)
python scripts/export_latex_pdf.py \
study.md \
study.pdf \
--figures-dir figures/ \
--template academic
기능:
- Markdown → LaTeX 변환
- Figure 자동 삽입 (\includegraphics)
- 학술 논문 레이아웃 (twocolumn 옵션 가능)
- TOC (Table of Contents) 포함
- [NEW] 태그 시각적 강조
- 테이블 포맷팅 (booktabs 스타일)
- 코드 블록 문법 강조 (listings/minted)
- 참고문헌 섹션
ステップ 6.3:フォールバック PDF 変換
# LaTeX 변환 실패 시 기존 방식 사용
python scripts/export_pdf.py study.md study.pdf
Fallback 순서:
1. scripts/export_latex_pdf.py (LaTeX + Figure, 최상의 품질)
2. scripts/export_pdf.py → pandoc + LaTeX (Figure 수동 포함)
3. scripts/export_pdf.py → weasyprint (HTML 기반)
4. Markdown만 저장 (PDF 변환 실패 시 경고)
ステップ 6.4:完了報告
Update Complete!
Markdown: study.md
PDF: study.pdf
Figures: figures/ ({N}개 PNG)
New experiments: {N}개
Writing quality: {score}/100
Hypotheses: {N}개
Next experiments: {N}개
ドキュメント更新ルール
追記のみの原則
- 追記のみ:既存の内容の後に新しいセクションを追加します。既存の内容は変更しません。
- [NEW] タグ:新しく追加した実験に
[NEW]タグを付けます(次回の更新時に削除)。 - 区切り線:新しい実験の前に
---の区切り線を挿入します。 - 日付の記載:実験の実行日(ログのタイムスタンプに基づく)。
- 一貫したフォーマット:Report Template と references/interpretation-template.md に従います。
[NEW] タグの処理
---
### [NEW] Experiment: {experiment_name} ({YYYY-MM-DD})
...
次回の /update-study 実行時:
- 以前に追加された
[NEW]タグをすべて削除 - 新しく追加するセクションにのみ
[NEW]タグを付与
進捗報告
実行中、ユーザーに状況を報告します:
[Phase 0] Incremental Detection...
Scanned logs/: {N}개 파일
Already documented: {M}개 실험
New experiments: {K}개 발견
[Phase 1] File Verification...
로그 파일 확인: {K}개
study.md 읽기 완료
[Phase 2] Data Extraction...
메트릭 추출: {N}개 시계열
DataFrame 구조화 완료
메트릭 종류: accuracy, loss, grad_norm, ...
[Phase 3] Plot Generation...
Training curve comparison: figures/training_curve_comparison.png
Metric trend panel: figures/metric_trend_panel.png
Final metric comparison: figures/final_metric_comparison.png
총 {N}개 Figure 생성
[Phase 4] Interpretation + Writing...
Executive Summary 생성 완료
Figure 해석 작성: {N}개
Proposed Improvements: {N}개
→ Writing Quality Loop:
Iteration 1: Score 72/100
- Critical: Definition missing (2)
- Warning: Figure without interpretation (1)
Iteration 2: Score 85/100
All critical issues resolved
[Phase 5] Verification...
→ Numerical: {verified}/{total}
→ Logic: {sound}/{total}
→ Figure consistency: {matched}/{total}
→ Verdict: PASS
[Phase 6] Export...
LaTeX 변환 완료
PDF 생성 완료: study.pdf
Complete!
- New experiments: {experiment_names}
- Writing quality: {score}/100
- Figures: {N}개
- Hypotheses: {N}개
- Next experiments: {N}개
品質基準の概要
| 基準 | 重み | 説明 |
|---|---|---|
| 定義優先 | 25点 | 用語を100%定義し、「X is Y」の形式にする |
| トピック先行 | 20点 | 90%の段落を要点から始める |
| 比較と対照 | 15点 | 比較テーブルと違いの分析が必須 |
| 洞察の深さ | 15点 | 「なぜ」の分析とメカニズムの仮説を含める |
| 形容詞の最小化 | 5点 | 数値に基づく表現を使い、形容詞を最小限にする |
| Figure の品質 | 10点 | Figure の解釈、キャプション、参照の関連付け |
| 次のステップの明確さ | 10点 | 仮説との関連、config の具体性、予測 |
総合合格基準:>= 80点
Additional Resources
references/interpretation-template.md- 실험 해석 템플릿references/quality-criteria.md- 글 품질 평가 상세 기준scripts/generate_plots.py- matplotlib 기반 차트 생성 유틸리티scripts/export_latex_pdf.py- LaTeX 변환 + Figure 포함 PDF 생성scripts/export_pdf.py- PDF 변환 유틸리티 (Fallback)
Cautions
- 로그 파일이 ground truth: 로그에 없는 수치는 사용 불가
- Append Only: 이전 결과를 절대 수정하지 않음
- 매 수치에 출처:
(source: filepath:L행번호)필수 - 가설은 falsifiable: 검증 불가능한 가설은 삭제
- 최대 3회 반복: Writing Quality Loop + Verification 각각 최대 3회
- 새 실험 우선: 이미 문서화된 실험은 자동 스킵
- [NEW] 태그: 새 추가분 명확히 표시
- Figure 필수: 모든 실험 보고서에 최소 1개 이상의 Figure 포함
- 코드 스니펫 검증: Implementation/Improvements 코드는 문법 정확성 확인
- LaTeX 호환성: Markdown 내 특수문자 이스케이프 확인 (_, %, #, & 등)