GitHubで公開から2日でスターが1,000を超えたAgent Skillがある。yomiyasu(よみやす)。AIが書いた日本語を、読みやすく書き直すためのものだ。付属の採点スクリプトに自分の記事28本をかけたら、最低は22点だった。
大賀愛一郎さん(@oga_aiichiro)が個人で作った、AI生成の日本語を推敲するためのAgent Skill。MITライセンス。対象は技術記事や設計書、PR説明文など実務の文章だ。Codex、Claude Code、Cursorで動く。インストールは1行で済む。
下書きを渡して「この文章を読みやすくして」と頼む。用途はtech、business、essayの3種類。省略すると自動判別する。
公開は9月30日。10月2日時点でv1.0.2まで更新が入っている。READMEの最後にはこうある。「このREADMEは、『yomiyasu』を用いて書かれています。」
「この言葉を使うな」というリストを渡す方式がまず思いつく。大賀さんはZennの解説記事でこの限界を書いている。
語を禁止すると、AIは別の語に言い換える。
| 禁止した語 | AIが言い換えた語 |
|---|---|
| 手触り | 実態 |
| 地味に効く | 効果を発揮する |
| 〜側に倒す | 〜の方針に寄せる |
文の骨格は変わらない。「もっと人間味のある文章で」と頼むと、今度は真理、境地、美学といった大げさな語を持ち出す。
大賀さんが既存のAI臭さ対策スキル5本の本文を調べたところ、禁止対象のはずの「効く」が合計28回使われていた。LLMはプロンプトの文体を手本にする。指示文が比喩だらけなら出力にも漏れる。
大賀さんが最初に書いた正規表現は「握る」「倒す」「壊れる」を字面だけで拾った。その結果、「コンビニでお握りを買って食べました」「お腹を壊してしまいました」まで検出した。日常語と慣用句で作った境界値テスト48本のうち46本、95.8%で誤検出が出た。前後の語を見る条件を足して、誤検出を0件にしたという。
では、こうした語はAI以後にどれくらい増えたのか。逆瀬川ちゃんさんが、Qiitaに投稿された70,524件から50,731件を選んで分析した。数えた理由は冒頭にこう書かれている。
ただ、こういうのは肌感だけで語るとだいたい外すので、2019年から2026年までの各年8月にQiitaへ投稿された記事をすべて集めて、実際に数えてみました。
| 指標 | AI以前(2019〜2022年) | 2026年 |
|---|---|---|
| 太字(1,000字あたり) | 1.26個 | 3.83個(約3倍) |
| 箇条書きの割合 | 8.9% | 16.4%(約1.8倍) |
| 「効く」を含む記事 | 2.0% | 22.3% |
| 「壊れる」を含む記事 | 0.8% | 13.1% |
| 「静か」を含む記事 | 0.1% | 4.9% |
注意書きがある。「AIが書いた文章が増えたことと、人間の書き方が変わったことは区別できていません」。表の数字は、Qiitaに投稿された記事全体の変化を表している。
一方、AIっぽい言い回しの代表とされてきた「しましょう」は減っていた。特定の単語を追いかけるだけでは捉えられない変化が起きている。
Kiminori Yokoiさん(@nasuvitz)のスライド「AI臭い文章とは何なのか」が、10月2日時点で7万回以上表示されている。AI臭い文章の定義をこう書いている。
「不要な対比・否定・留保から入り、主文を直接的に書かない文章」「抽象語や比喩的な動詞を多用し、何をするのかが曖昧な文章」。
気持ち悪いのは、別々の人が書いたはずの文章に同じ癖が何度も出てくるからだ。「全員が同じゴーストライターに書かせているかのように感じる」。
yomiyasuのREADMEは、このスライドを原則づくりの参考にしたと書いている。7つの変換原則の中心にあるのは、1文ごとに「誰が・何を・どうした」を書き戻すこと。比喩の動詞を実際の操作に戻すこと。原文に無い情報を足さないこと。
スライドの修正例を引く。
「判断に迷うものは、残さない側に倒します。」
→「採否を判断できない項目は、原則として除外します。」
誰が何をするかが見える文になった。
公開翌日のv1.0.1では、直した結果意味が変わる問題が修正された。
原文「単にメッセージを流すだけでは、背後でデータが静かに壊れます。」
修正後「単にメッセージを送るだけでは、気づかないうちに裏でデータの整合性が失われます。」
悪い直し方として挙げられているのは「〜おそれがあります」と勝手に推量へ弱めるパターンだ。原文が断言しているなら断言のまま直す。「骨が折れる」のように昔から定着した慣用句は言い換えない。基準は「その言い方を、AIが広まる前の人間の文章でもふつうに見かけるかどうか」。
v1.0.2では、推敲中に「〜が大切です」「〜する必要があります」が足される問題も禁止された。出力は「書き直した本文」「変えたところ」「残したAIっぽいところ」「書き手に確かめたい点」の4部構成になった。
付属のyomiyasu_lint.pyを、miraipageで公開済みの自分の記事28本にかけた。100点満点の減点方式で、太字の頻度や箇条書きの比率、比喩動詞などを検査する。Python標準ライブラリだけで動く。
中央値は84点。100点は2本だけで、どちらも700字未満の短い記事。最低は22点、次が43点だった。
22点は9月15日に公開した「ロボットペットを作る。部品が決まるまでに、AI に二度だまされた」(約4,800字)。指摘は18件。最多は英単語前後の半角スペースで10件。ほかにAではなくB構文4件、土台3件、太字の頻度超過1件。
半角スペースは、大賀さんの解説記事が直す対象の1つに挙げているものだ。日本語と英単語のあいだに機械的に入る空白を指す。太字は25回で、1,000字あたり5.21個。逆瀬川ちゃんさんの調査にある2026年のQiitaの3.83個より多い。
土台3件はロボットの台座という文字どおりの意味で書いた箇所だ。スクリプトも「文字どおりの意味や必要な文脈を担っている場合は残してかまいません」と出す。採用するかどうかは書き手が決める作りになっている。
スクリプトには引っかからなかった箇所もある。同じ記事に「4つ目が一番効くと思っている」「組込みで時間が溶けるのは」と書いていた。逆瀬川ちゃんさんの調査で急増が確認された「効く」そのものだ。
同じ9月15日に公開した「Anthropic公式から学ぶ、Claude Codeのグローバルメモリ設定」は89点。この記事ではClaude Codeの共通設定に「直接言えることを、比喩で言い換えない」というルールを追加した話を書いた。
そのルールを足した同じ日に、別の記事で「一番効く」と書いていたことになる。ルールを書くことと、出てきた文章を測ることは別の作業だった。
laisoさんは「なぜAI臭さを消したいのか?」で、消す動機を2つに分けている。「本当に中身を確かめて自分の責任にすること」と「確かめたように見せて追及されないようにすること」。語彙や記号だけを消すツールは後者に近いと書いている。
不快の正体についてはこうだ。「腹が立つのは、ちゃんと時間を払って読んだのに中身が薄かったとき」。
南健太郎さん(ktrmnm)も同じ問題を書いている。脱臭しても、文章を出した人が中身を理解して責任を負えるかは別の問題だ。固定のルールで脱臭し続けることも難しい。モデルごとに癖が違い、数週間から数ヶ月で更新されるからだ。
南さんは、AI slopやworkslopという言葉を、要するに「俺たちの時間を無駄にしてくれるな」という意味の言葉だとまとめている。
yomiyasu自体、v1.0.2で出力に「書き手に確かめたい点」を含めるようになった。確かめるのは人間の側で、それは文体を直しても残る仕事だ。
Claude Codeなら1行で入る。
npx skills add nanaism/yomiyasu
更新はnpx skills update yomiyasu。プラグインとしても入れられる。採点スクリプトはpython3 scripts/yomiyasu_lint.py article.mdで動く。--strictを付けると警告時に終了コード1を返すのでCIにも組み込める。
AIの文体を直すスキルを複数同時に有効にすると指示が競合する。使うなら1つに絞る。
この記事もClaudeに下書きさせ、yomiyasuの採点スクリプトにかけてから公開した。最初は53点だった。指摘10件はすべて、検出対象の語を例として引用した箇所だ。スクリプトは表、引用ブロック、コード表記の中を検査しない。例示をそこへ移したら100点になった。