研究の文章を、テストが通るまで書き直す

English

この記事の目次

その日のあらすじ

個人で運営している研究予稿と研究運営のリポジトリでは、研究の文章を、コードと同じようにテストが通るまで書き直しています。

品質チェックを YAML のテスト群にしてあり、機械で答えの決まるものはコードの関数が、論の組み立てのように意味を読まないと決まらないものは査読者役の大規模言語モデルが判定します。レビューで一度受けた指摘はその場でルールにして、人が同じ指摘を繰り返さずに済むようにしています。

ところが、禁止語や文の長さを機械で縛る形式的な検査ほど、品質を上げるどころか書き方の個性を消して文章を均質にしたので、増やしていたその検査を途中で削りました。テストが落ちたときには、直し方の案と、その不合格が書き直しで直るかどうかの区別を返します。

テストが通るまで書き直す

ソフトウェアの開発では、書いたコードが期待どおりに動くかを自動で確かめる手段として、テストがあります。研究の文章を、そのテストが通るまで書き直す、というやり方でここしばらく書いています。文章にテストというと不思議に聞こえるかもしれませんが、僕がやっていることは単純で、レビューで受けた指摘をその場で検査のルールに落とし、同じ指摘を二度と人間がしなくて済むようにしていく、それだけの話です。たとえば一度に受けた三つの指摘をその場でルールにして、二つの文章をまとめて直したこともあります。

検査は二層に分けています。字数や構文の整合のような、機械で答えの決まるものはコードの関数で判定し、起承転結や因果の流れのような、文脈を読まないと判定できないものは、査読者役の大規模言語モデルに任せます。数のうえでも意味を読む側がずっと多く、この記事を書いている時点では、査読者役に渡す検査が 131 件、機械の関数で見る検査が 15 件でした。この検査の一そろいを YAML のテスト群として持っていて、走らせると、文章の全体に対して、検査ごとに合格か不合格かが返ってきます。

これで、書き直しの根拠も変わりました。落ちた検査の一覧を見て、どこを直すかを決めるようになったのです。

形ばかりの検査を捨てる

この仕組みは、最初から今の形だったわけではありません。作り始めた頃は、受けた指摘を漏れなく規則に落とす方向で、禁止語の一覧や文の長さの上限のような、機械で答えの決まるチェックを増やしていました。

けれど、文字数を厳密にしすぎる、段落数を強制する、特定の言い回しを機械的に禁止する、といった形ばかりのチェックは、一見品質を上げているようで、実際には書き方のスタイルを奪って文章を均質にしていきます。ある語が、単体で置かれれば何を指すのか分からなくても、直前にそれを説明する文があれば意味は通ります。文脈があってはじめて成立する、そういう用法まで、機械のチェックは一律に落としてしまいます。

そこで途中で方向を変え、答えが一つに決まる検査だけを機械側に残して、意味や論理に関わる判定は文脈ごと査読者役に読ませる側へ寄せました。残した検査には、なぜそのルールがあるのかの出典を一つずつ紐づけていて、根拠が書き方の決まりを定めた文書のときも、レビューで受けた指摘のときも、後からたどれるようにしています。

落ちたテストは直し方まで返す

もう一つの設計は、テストが落ちたときに、どう直せばよいかをテスト側が返すことです。落ちた検査には直し方の案を必ず添え、その不合格が書き直しで直るのか、そもそも根拠のデータが足りないのかの区別もあわせて返します。直せない不合格は、文章の問題ではなくデータ収集の課題です。データが足りないなら、書き方をいじらず、計測に戻ればよいわけです。

査読者役の判定が実行できなかった場合の扱いも決めてあります。動かなかった検査は、落ちた扱いにせず別枠に数えます。判定の失敗と文章の欠陥が混ざると、落ちた件数そのものが、どこを直すべきかの目安として使えなくなるからです。

確認できたのは再発が止まるところまで

指摘をルール化した検査は、人の記憶ではなく仕組みの側に積み上がっていきます。同種の指摘の再発が検査で止まったことは、テストの結果で確認できるようになりました。ただ、いま効果として確かに言えるのはそこまでで、この方法で書いた文章が読者にとって実際に読みやすくなったのかどうかは、テストが通ったかどうかでは分かりません。

査読者役が同じ入力にどの程度同じ判定を返すのか、その再現性もまだ数字にできていません。初回の判定が合格でないときだけ追加で 2 回判定し、3 回分の多数決を取る仕組みは入れてありますが、それで判定が安定するのかまでは確かめられていません。判定がぶれれば、落ちた検査の一覧そのものへの信頼が揺らぐので、この安定性こそ、仕組みの前提に関わる一番の確かめどころだと見ています。この仕組みを長文の成果物へ広げるのはそのさらに先の話で、いま確かに手にしているのは、同じ指摘の再発を検査が止めて、人が二度は言わずに済む、という一点だけです。

(2026-07-11 追記: 公開した時点のこの記事では、複数回の判定で多数決を取る仕組みを、まだ入れていない案として書いていました。運用の点検で過去の記録を確かめたところ、初回の判定が合格でないときだけ追加で 2 回判定して多数決を取る限定の仕組みが、公開より前の 2026-06-24 に既に入っていたと分かりました。そのため、仕組みは入っているが安定性はまだ測れていない、という上の記述へ直しています。)