こんにちは、キャベツです。
査読のメールが返ってきたとき、どこから始めるか分からない/終わりが見えないせいで着手が遅れることがあります。
優先度付けも、ToDo化も、後回しになりがち(私だけ?)。
なので、査読テキスト → 優先度付きTODO → YAML → まとめてGitHub Issueまでを、さっと回す手順を書いておきます。
ARM(M1/M2/M3)のMacを使っています。
ゴール
- 査読コメントを手を動かせる粒度に分解
- YAMLにして
- ghでIssuesを一括作成
- (必要なら)Projectsで進捗確認できるようにする
0) 用意するもの
- GitHub CLI(
gh) - yq(Mike Farah v4)
- jq
macOS なら:
brew install gh yq jq
gh auth login
1) ChatGPT で TODO(優先度付き) YAML を作る
査読テキストをそのまま渡して、下のように頼みます。
- この査読コメントを、すぐに対応できる部分とそうでない部分に段落や文ごとに分けて、TODOにしてください
- 英日併記で GitHub Issue 用の title, body, labels を出力
- titleは [Reviewer N] [要約]/[Summary]
- 元の英文は省略していないものを必ず載せる。
- さらに細かく分けたTODOもbodyに載せる。
- 出力は revise_issues.yaml(後でそのまま流し込みたい)
- ラベルは、easy, medium, difficult, doc, figures, methods など
ラベルは運用に合わせて。例:
reviewer-1, reviewer-2, doc, figures, methods, benchmark, reproducibility, comparison, quick-fix など。
2) YAML を保存
「Issueを登録したいリポジトリ」をクローンしたディレクトリ(フォルダ)に revise_issues.yaml を保存します。
Overleafに課金してリポジトリ化しているなら、それをクローンするのがおすすめ。
3) スクリプトで一括 Issue 化
必要なファイルを作成
「Issueを登録したいリポジトリ」をクローンしたディレクトリ(フォルダ)にcreate_issues_from_yaml.sh を置く。
#!/usr/bin/env bash
# Usage: ./create_issues_from_yaml.sh /path/to/revise_issues.yaml
set -euo pipefail
YAML_FILE="${1:-revise_issues.yaml}"
# 必要コマンド確認
for c in gh yq jq; do
if ! command -v "$c" >/dev/null 2>&1; then
echo "Error: $c not found"; exit 1
fi
done
# 認証(必要なら)
gh auth status || gh auth login
# ラベル作成(なければ作る)
echo "Ensuring labels exist..."
set +e
yq -o=json '.issues[].labels' "$YAML_FILE" \
| jq -r '.[]?' | sort -u | while read -r lbl; do
[ -z "$lbl" ] && continue
if gh label view "$lbl" >/dev/null 2>&1; then
echo " ✔ $lbl"
else
gh label create "$lbl" --color EDEDED --description "$lbl" >/dev/null 2>&1 \
&& echo " ➕ $lbl" \
|| echo " • skip: $lbl"
fi
done
set -e
# Issue 作成
echo "Creating issues..."
yq -o=json '.issues[]' "$YAML_FILE" | jq -c '.' | while read -r issue; do
title=$(echo "$issue" | jq -r '.title')
body=$(echo "$issue" | jq -r '.body')
echo "→ $title"
label_args=()
while read -r l; do
[ -z "$l" ] && continue
label_args+=(--label "$l")
done < <(echo "$issue" | jq -r '.labels[]?')
gh issue create --title "$title" --body "$body" "${label_args[@]}"
done
echo "Done."
実行権限を付ける。:
chmod +x create_issues_from_yaml.sh
実行
リポジトリ直下で(推奨)
cd your-repo
./create_issues_from_yaml.sh ./revise_issues.yaml
4) Projects で見る(任意)
Table か Board を開いて、+ Add items → さっき作った Issue を追加。
私はKanbanテンプレートを使いました。(Backlogの下にあるAdd itemをクリック→+をクリック→Add item from repository→さっき作った Issue を追加。)
運用メモ
- タイトルは揃える:
[Referee N] 要約 / Summary
並べたときに判別しやすい。 - 同趣旨のTODOは統合:片方をクローズ、本文は統合。
トラブル対策
- リポジトリ解決に失敗 → リポジトリ直下で実行 or
GH_REPOを設定。
おわりに
「レビュー来た、でも腰が重い」を減らしたい人向けのメモでした。
YAML にしてしまえば、あとはポチポチ頑張っていくだけ。早いです(当社比)。
ちょっとしたメモもIssueのコメントにつけてしまえば「なぜこんな考えになったんだっけ?」もあとから見返しやすいです。
もっと簡単な方法があるっぽいですが(CSV→Kanbanに直接インポート)、うまくいかなかったのでこの方式(YAML→Issues→Kanban)を紹介。

