# 限界と確かめた範囲
README の[限界](../README.md#限界)の節を詳しく書いたものです。
付属の検査(lint と diff、2つをまとめて実行する check)は、決まった形を拾うものです。意味が保たれたかと読みやすいかは、元の文と読み比べて人が確かめてください。候補が出なくても、変わった箇所は全文差分に出ます。以下は 2.0.0 の時点で分かっている限界で、細かい形は各項目の「細かい形」を開くと読めます。2.0.1 と 2.0.2 は検査の出力を変えていないので、検査で拾えない形も、正しく推敲しても候補が出る形も 2.0.0 と同じです。
## 確かめた範囲
2.1.1 では推敲の手順(SKILL.md の本文と references)を変えず、lint、diff、check、フックの不具合だけを直しました(直したことと確かめたことは [CHANGELOG](../CHANGELOG.md) の 2.1.1)。この節で推敲を確かめた結果は 2.1.1 にもそのまま当てはまります。
2.1.0 では推敲の手順(SKILL.md の本文と references)と、lint と diff の出力の一部を変えました。2.1.0 で推敲を動かして確かめたのは、変えた規則に当たる短い合成の文書4本(Claude Code と Codex で3回ずつ)と、tests/corpus/raw_ai の26本(それぞれ1回ずつ)です(数は [CHANGELOG](../CHANGELOG.md) の 2.1.0)。この節のほかの推敲の確認は 2.0.0 で行ったもので、2.1.0 で変えていない規則にはそのまま当てはまります。2.0.2 で確かめたのはスキルが選ばれる場面と入れ方です。選ばれ方は macOS の Claude Code 2.1.296 と codex-cli 0.162.1 で、`claude -p` と `codex exec` にスキルの名前を出した依頼と出さない依頼を送って測りました(数は [CHANGELOG](../CHANGELOG.md) の 2.0.2)。入れ方は、2.0.2 を公開したあとに GitHub の nanaism/yomiyasu から、Claude Code のプラグイン、`npx skills add`、`gh skill install`、`npx openskills install` で入れて確かめました。Claude Code は、プラグイン、`npx skills add`、`gh skill install` のどれで入れたスキルも読み込みました。Codex では、`npx skills add` と `gh skill install` で入れたスキルも、README の手順で `.agents/skills/` に写したスキルも、`yomiyasu:yomiyasu` の名前でモデルに渡る一覧に載ります。openskills で確かめたのは、`npx openskills read yomiyasu` でスキルを読めるところまでです。対話の画面での選ばれ方、`~/.claude/CLAUDE.md` と `~/.codex/AGENTS.md` と Claude.ai の指示に書いた1行が効くか、Cursor、Windows は確かめていません。
2.0.0 のスキルを実際に動かして確かめたホストは、macOS の Claude Code(2.1.296)と Codex(codex-cli 0.162.1)です。どちらも作業場所にスキルを置き、対話の画面を使わないコマンド(`claude -p` と `codex exec`。Codex で、返答で文章を書かせてから「/yomiyasu」と送る形では、同じ会話に続きを送る `codex exec resume`)で動かしました。Claude Code と Codex の対話の画面、Cursor、Claude.ai のZIP、プラグインや skills CLI、openskills で入れた環境での推敲の動きは確かめていません。Windows の実機でも確かめていません。任意のフックを試した範囲は、フックの節の[試したホスト](./tools.md#試したホスト)に書いています。
Codex では、4つの呼び方で8本ずつ推敲させました。「/yomiyasu」の行のあとに本文を貼る形、`$yomiyasu:yomiyasu` に依頼の文を添える形、作業フォルダに原稿を1つ置いて「/yomiyasu」とだけ送る形の3つでは、AI が書いた同じ原稿8本(1本あたり空白を除いて950〜1,335字)を使いました。4つ目は、同じ8つの題で Codex に返答で文章を書かせ、次に「/yomiyasu」とだけ送る形です。32本とも SKILL.md を読んで推敲し、最初の3つの形では8本とも最終稿に検査をかけて記録を残しました(本文を貼る形の2本と `$yomiyasu:yomiyasu` の形の3本は、記録を作業場所の `.yomiyasu/` とは別のフォルダに置きました)。返答で書かせた文章の形で最終稿に検査をかけたのは6本で、6本とも記録を残さない形でした(最初の依頼で、ファイルに保存しないよう頼んだためです)。32本のどれにも、2つのモデル(Claude と Gemini 4 Argon)は確かな意味の変化を挙げていません。意味が変わったかもしれないとした箇所は、Claude が15か所、Gemini 4 Argon が3か所挙げています。2.0.0 の Codex の出力が読みやすくなったかは、人がまだ比べていません。
Codex で試した形
| 呼び方 | 2.0.0 | 1.1.2(別の回) |
|---|---|---|
| 「/yomiyasu」の行のあとに本文を貼る | 8本とも最終稿に検査をかけ、記録を残した | 最終稿に検査をかけたのは6本 |
| `$yomiyasu:yomiyasu draft.md を読みやすくして、結果を out.md に書いてください。` | 8本とも最終稿に検査をかけ、記録を残した | 最終稿に検査をかけたのは6本 |
| 作業フォルダに原稿を1つ置き、「/yomiyasu」とだけ送る | 8本とも推敲し、8本とも記録を残した。原文のファイルを書き換えた本はない | 8本とも「文章を貼ってください」と返し、推敲しなかった |
| まずファイルに保存しないよう頼んで返答で文章を書かせ、次に同じ会話で「/yomiyasu」とだけ送る | 最終稿に run を通したのは6本(6本とも `--no-record`)。1本は最終稿とは違う文に lint だけをかけ、1本は検査をしないまま本文を返した | 8本とも検査をしなかった |
- 動かした条件は、codex-cli 0.162.1、モデルは gpt-6-astra(effort max)です。作者のふだんの設定に近づけるため、作者の AGENTS.md(yomiyasu を使うよう書いた行があります)を作業場所に置き、yomiyasu のほかに51件のスキルが見えるようにしました。この行のない環境で同じように SKILL.md を読むかは確かめていません。スキルは作業場所の `.agents/skills/` に置きました。返答で書かせる形の「/yomiyasu」は、`codex exec resume` で同じ会話に送りました。速い応答のモード(fast)は、本文を貼る形と `$yomiyasu:yomiyasu` の形で使い、ほかの2つの形では使っていません。
- 1.1.2 の値は、同じ原稿と呼び方(返答で書かせる形は同じ題)を別の回に動かしたもので、fast を使った本と使わなかった本が混じっています。1.1.2 には検査をまとめる run がありません。1.1.2 の SKILL.md は、lint をフルモードの指定かファイルに保存するときに求め、diff を書き直した文ができたときに求めています。
- 原文のまま返した本はありませんでした。変えた字数(原文1,000字あたりの中央値)は、本文を貼る形で86.6字、`$yomiyasu:yomiyasu` の形で64.7字、作業フォルダの形で58.8字、返答で書かせた形で138.8字です。
- これより前のバージョン(1.1.2 を含む)では、依頼の文に「yomiyasu で」と書く形と `$yomiyasu:yomiyasu` の形などを162本試し、162本ともスキルを読んで、検査が少なくとも1回動きました(最終稿に検査をかけなかった回は、1.1.2 にありました)。
- 2.0.0 では次の形を試していません。Codex の対話の画面、`$yomiyasu` と短い名前で呼ぶ形(フックを試したときは、この名前ではスキルの指示が読み込まれませんでした)、依頼の文に「yomiyasu で」と書く形、作業フォルダに書かせたファイルに「/yomiyasu」とだけ送る形、作業フォルダに原稿が2つ以上ある形、利用者のスキルの置き場所(`~/.agents/skills/`)に入れる形です。
Claude Code では、下の手順の試験と、README の書き直し例、下の小さな比較のほかに、「/yomiyasu」とだけ送る形を今の SKILL.md で試しました。作業フォルダに原稿を1つ置いて8本送ると、8本とも推敲し、最終稿を作業フォルダにまだない名前で保存して、記録の残る検査を通しました。原文のファイルを書き換えた本はありません(名前だけで呼ばれたときの決まりを足す前の SKILL.md では、推敲したのが7本、最終稿を作業フォルダに保存したのが6本でした)。Claude Code で試したのは作業フォルダに原稿が1つだけある形で、直前の返答の本文を推敲する形と、原稿が2つ以上あって聞く形は試していません。下の小さな比較の10本を、普通の依頼で今の SKILL.md に2回ずつ推敲させると、2つのモデルが確かな意味の変化を挙げた回はありませんでした。ただ、決まりを足す前の SKILL.md の1回と比べると、変えた字数(原文1,000字あたりの10本の平均)は30.6字から46.2字と50.4字に増え、原文のまま返した本は1本から3本と1本になりました。変えた字数の差のほとんどは、1本の原稿(主語と述語のねじれなどを直した)から来ています。比べた相手は1回だけで、ぶれの幅は分かっていません。
手順を飛ばす割合は、yomiyasu を使うよう頼む12の筋書き(PR 作成のスキルとの併用、長い会話、本文だけを返す指定、ファイルを作らない対話など。原稿は合成の PR 説明文)を、ホストとバージョンごとに71回ずつ組んで動かし、1.1.2 と比べました。提出した最終稿に必要な検査をかけなかった回は、Claude Code では 1.1.2 の60回のうち31回から、2.0.0 の67回のうち0回になりました。Codex では、1.1.2 の68回のうち9回から、2.0.0 の68回のうち4回です(決めた数え方で決まらなかった7回を、人が記録を読んで省略なしと確かめて足した数)。Codex の差は回数が少なく、偶然の幅を除けるほどの差ではありません。測ったのは、名前だけで呼ばれたときの対象の決め方と、検査を run の CLI で動かす決まりを SKILL.md に足す前のスキルです。この2つと確度の語の1文、検査のスクリプトの start、export、end とフックは、測ったあとに足しました。検査の動かし方の決まりは手順にかかわるので、今のバージョンで同じ割合になるとは言えません。記録で見つけやすくなりましたが、記録があっても手順を飛ばすこと自体は防げません。
手順の試験の細かい形
- 必要な検査は、1.1.2 では lint と diff、2.0.0 では lint、diff、提出の直前の verify です(ファイルを作らない対話では verify を求めず、資料から書く筋書きでは資料を渡した run を求めます)。2.0.0 のほうが求める検査が多い条件です。lint と diff だけで数えると、2.0.0 は Claude Code で65回のうち0回、Codex で65回のうち4回でした。
- 回数は、無効になった回(Claude Code の 1.1.2 で利用の上限に当たった4回など)と、Python が使えない筋書きを除いたものです。数え方で決まらなかった回と、検査が要らなかった回(1.1.2 で本文を変えなかった3回)も分母から外しました。Claude Code の 2.0.0 で決まらなかった1回は、人が記録を読んで省略ではないと確かめました。
- Codex の 2.0.0 は、決めた数え方では61回のうち4回で、7回が決まりませんでした。7回の多くは、最終稿を写すのに cp でなく python を使った回です。人が記録を1回ずつ読み、7回とも省略ではないと確かめました。7回をすべて省略とみなすと68回のうち11回になり、1.1.2 より低いとは言えません。
- 決めた数え方で省略とした Codex の4回のうち3回は、ファイルを作らない対話の筋書きです。Codex が本文のあとに区切りの線と説明を続けて書いたので、決めた数え方では返答の全体が最終稿になりました。記録を読むと、3回とも区切りより前の本文に lint と diff をかけていました。残る1回は、本文だけを返す指定で verify をしなかった回です。記録を人が読んだ数え方では、Codex の 2.0.0 の省略はこの1回だけです。
- Codex の 2.0.0 の Python が使えない筋書きは、1回目を3回試して、3回とも Codex が別の場所の Python を見つけて検査を動かしたので、測れていません(残りの2回は動かしていません)。Python が使えないときに「実行しなかった」と報告するかは、Codex では分かっていません。
- Codex の完了報告で、SKILL.md の決まった形(「### 確認の記録」の見出しと行の名前)を守ったのは65回のうち0回でした。Claude Code は68回とも守りました。報告の中身は、どちらのホストでも実行した検査の範囲を超えていませんでした。
- Claude Code は、1.1.2 を 2.1.289 で、2.0.0 を 2.1.296 で動かしました(モデルは同じで effort high)。差のすべてがスキルのバージョンによるとは言えません。Claude Code の 2.0.0 では、少なくとも5回が前の回の残したファイルに触れました(数えた値は変わりません)。Codex は gpt-6-astra(effort high)を、測定用の設定で動かしました。
- 測ったのは手順の実行だけで、意味が保たれたかと読みやすさは測っていません。3回だけの筋書きは、1回で割合が33%動きます。
意味が変わった箇所を diff がどれだけ拾うかは、少ない数でしか測っていません。tests/corpus の推敲の48組は、古いバージョンの yomiyasu の指示で作った推敲の出力です。その指示には人でないもの(キュー、設計など)を主語にした文を、開発者やシステム管理者などの行為者を主語にした文に直す決まりがありました。この48組を3つのモデル(Gemini 4 Argon、Gemini 3.8 Flash、Claude。3.8 Flash が判定したのは48組のうち44組)に判定させると、2つ以上のモデルが意味が変わったとした箇所は31か所ありました。2.3.0 の diff では、31か所はすべて全文差分に出ます。意味が変わる恐れが同じ文に出るのは2か所で、モデルが挙げた変化そのものを示したのは「担当できるまでになっている → 担当している」の1か所です(能力の言い方が消えた、として出て、--fail-on には数えません)。31か所のうち19か所は原文にない担当者を主語や通知先に足したもので、意味が変わる恐れの種類にはありません。2.4.0 で足した「原文にない人や担当を足した文」の節には、この19か所がすべて出ます(節の語の一覧はこの48組を見て作ったので、拾える割合は高めに出ます)。次の段落の小さな比較では、原文にない担当者を足した所は、2つのモデルの判定で3条件とも0件でした。モデルの判定は参考で、確かめるのは人です。
AI が書いた原稿8本と合成の原稿2本(合計4,546字)を、スキルなし、1.1.2、開発の途中の 2.0.0(以下「途中のバージョン」)の3条件で Claude Code に1回ずつ推敲させた小さな比較では、2つのモデル(Claude と Gemini 4 Argon)がそろって意味が変わったとした箇所は、3条件とも0件でした。途中のバージョンと 1.1.2 の差は偶然の幅に収まり、モデルの判定からは、どちらが意味を保ちやすいとは言えません。
同じ比較で 1.1.2 と途中のバージョンの本文が違った7組を、作者がどちらのバージョンかを隠して読み比べると、好みは 1.1.2 が6組、途中のバージョンが0組、同等が1組でした。そのまま使えるとした出力は、1.1.2 が6組、途中のバージョンが0組です(途中のバージョンは、少し直せば使えるが4組、使えないが3組)。1人が各条件1回の出力を見た小さな比較ですが、この比較では、途中のバージョンの推敲は 1.1.2 より好まれませんでした。上の2つの比較の途中のバージョンは、SKILL.md を今の形に組み直す前のものです。
Codex の出力でも、上の最初の3つの形で使ったのと同じ原稿8本を、1.1.2 と、組み直したあとの SKILL.md(メール・論文の種類と、上に書いた2つの決まりと確度の語の1文を足す前)で1回ずつ推敲させ、作者がどちらのバージョンかを隠して読み比べました。依頼は「draft.md を yomiyasu で読みやすくして、結果を out.md に書いてください。」です。好みは 1.1.2 が4組、組み直したものが4組、同等が0組でした。答えたのは好みだけで、そのまま使えるかは見ていません。8組のうち6組で画面の左の出力を選んでいて、並びの偏りがあるかもしれません。1人が各条件1回の出力を見た小さな比較です。Claude Code の出力では、組み直したあとの今の SKILL.md の推敲を、まだ人が 1.1.2 と読み比べていません(組み直しの経緯は CHANGELOG の「変更」)。
2.0.0 で足した書き直しの規則(詰めた漢語の句をほどく、見出しの括弧を外す、前後から決まる対象を補う、書き手と読み手に合わせた敬語など)は、測るために作った原稿30本(AI が書いた12本と合成の18本)で、1.1.2 と、規則を足す前のバージョンと、同じ回の出力を比べました。Claude Code では2回、Codex では1回ずつ推敲させ、2つのモデル(Claude と Gemini 4 Argon)に判定させています。直すべき所を直した数は、規則を足す前のバージョンより多く、1.1.2 と同じか上回りました(見出しの括弧と「〜について」は Claude Code で 16/16、規則を足す前のバージョン 9/16、1.1.2 10/16)。確かな意味の変化は、どのバージョンとホストでも0か所でした。一方で、直さなくてよかった変更は、Claude Code で 46か所(規則を足す前のバージョン 35、1.1.2 35)、Codex で 44か所(42、41)と多く、前もって決めた目安に届いていません。その多くは、太字のラベルを外して述語にした所、見出しの括弧を外した所、詰めた漢語の句をほどいた所のように、2.0.0 で足した直しで、読み手によって好みが分かれます。原稿は作者が測るために作ったもので、作者がまだ読み比べていません。
書き直しの規則を足したときの比較の細かい形
| 見たもの | Claude Code(2回) | Codex(1回) |
|---|---|---|
| 前後から決まる対象を補う(直した数) | 11/14(規則を足す前のバージョン 12/14、1.1.2 11/14) | 6/7(4/7、4/7) |
| 詰めた漢語の句 | 16/16(15/16、16/16) | 8/8(8/8、8/8) |
| 見出しの括弧と「〜について」 | 16/16(9/16、10/16) | 8/8(5/8、6/8) |
| 取引先への依頼の敬語(ペルソナを書いた依頼) | 20/20(9/20、19/20)。2つのモデルがともに自然とした割合 17/20 | 10/10(10/10、10/10)。10/10 |
| 残すべき所を変えた数(文書の題、報告の語、表記など13種類) | 1(規則を足す前のバージョン r1 5・r2 5、1.1.2 r1 12・r2 15) | 1(8、20) |
| 直さなくてよかった変更 | 46(35、35)。うち読点を外しただけ 5 | 44(42、41)。うち読点を外しただけ 11 |
| 直す所がほとんどない原稿2本で変えた字数(2回の合計) | 11字(3字、23字) | 測っていない |
| 1.1.2 が直してこのバージョンが残した所/このバージョンが直して 1.1.2 が残した所 | 2/7 | 1/0 |
| 確かな意味の変化(2つのモデルのどちらか) | 0(0、0) | 0(0、0) |
- 原稿のうち3本は取引先へのメールで、依頼で書き手と読み手を伝えました。合成の原稿の5本にも、書き手と読み手を書いた依頼を使いました。
- 2つのモデルの判定が割れた所は、直っていない側と、残すべき所を変えた側に数えました。Claude の判定は、同じ問いを聞き直すと86%が同じ答えでした(境目の所で揺れます)。
- Codex は gpt-6-astra、effort max、速い応答のモード(fast)で動かしました。Claude Code は claude-opus-5-5、effort high です。
文脈から事実を補う手順を、モデルに動かして測った結果はまだありません。確かめたのは、合成の文と自動の試験で、check の `--fact-gaps`、資料の区切りの出典、照合の行が決めたとおりに動くことだけです。
SKILL.md の、言い換えるときに原文より強い確度や程度の語を足さないという1文は、前に作った README の例2が原文にない「確実に」を足していたのを見て書いたものです。この1文には、「地味に」の含みを「目立たないながらも」のような言い方で表す例が入っています。今の README の2つの例に「目立たないながらも」が出るのは、この例の言い方に沿った結果で、ほかの文章での効き目を示すものではありません。
## 意味が変わる恐れに出ない形
原文にない担当者や動作主を主語や通知先に足した推敲(容量が一割を切ったら知らせる → 容量が一割を切ったら、保守担当者に知らせる)は、全文差分と「元の文にない語」に出て、2.4.0 からは「原文にない人や担当を足した文」の節にも出ます。意味が変わる恐れには出ず、`--fail-on` にも数えません。上の tests/corpus の古い推敲の出力では、意味が変わった箇所の多くがこの形でした。節が見るのは、決まった役割の語、部署やチームの語、「〜さん」「〜様」の形の名前、人称の語だけで、ほかの呼び名は拾いません。原文にいる人に、別の文の動作を割り当て直した推敲(原文の「運用チーム」を「運用担当者」として、原文では主語のなかった作業の主語にした形)も拾いません。diff は依頼の文を見られないので、依頼に書いてある人でも節に出ます。
ほかに出ない形
評価の語(容易)や表題の(下書き)を消した推敲、範囲を言い換えた推敲(一律に → 全部の口に同じ設定で)、する側と受ける側を替えた推敲、「にくい」を否定にした推敲(追いにくくなっています → 追えません)も出ません。できる → しているは、2.1.0 から、同じ文の中で比べられるときは「能力の言い方が消えた」として意味が変わる恐れに出ます(--fail-on には数えません)。
## 数値
表記だけの違い(漢数字と算用数字、範囲・日付・時刻の書き方など)は候補にしないよう作っていますが、万と億を含む数の換算(一万円 → 1万円)、「.」で区切った日付、時刻の「:00」、「0円 → 無料」などは、値が同じでも候補に出て、`--fail-on=meaning-risk` に数えます。逆に、範囲の端の値を別の値として書き直した形、平仮名の数(ひとつ、ふたり)を足しただけ・消しただけの書き換え、助数詞の一覧にない語(冊、点、票)の数の変化などは拾えません。
細かい形(正しい推敲にも出る形)
万と億を含む数の換算(一万円 → 1万円)、「.」で区切った日付(2026.10.13 → 2026年10月13日)、時刻の「:00」(9:00 → 9時)、「v2.0 → バージョン2.0」「0円 → 無料」、「一度」と漢数字の並び(一度 → 1度、第三四半期 → 第3四半期、三四人 → 3〜4人)、前に何もない「一時」(一時三十分 → 1時30分。一時的の「一時」と分けられない)、「じゅうぶん」と分けられない「十分」(一回十分です → 1回10分です、八時間十分働いた → 8時間10分働いた)は、値が同じでも候補になります。直前が漢字の漢数字(夜一人で)は数として取らないので、助詞を足しただけ(夜に一人で)でも候補になります。回数を言わなくした書き換え(月一回 → 毎月)、「一人十分の量 → 一人あたり十分な量」、「層を1枚挟む → 層を作って前に置く」は、消えた数値として出ます。数を言わない語を数字で言い直した推敲(一意 → 1つ、倍々 → 2倍ずつ、単体 → 1件ずつ、集約 → 1件にまとめ)と、助数詞だけを替えた推敲(3〜4本 → 3〜4回)も候補になり、--fail-on に数えます。序数の「1つ目 → 最初の」は消えた数値、「一つずつ → 一枚ずつ」は元にない数値になります。同じ単位の数の前後を入れ替えただけの推敲(ひとりで3人分を食べた → 3人分をひとりで食べた)は、並びの候補になります。「ずつ」のあとに動詞がない文は、相手の文のどこかに「複数」「いくつか」があれば、順番に、と言い換えた正しい推敲(質問は一つずつどうぞ → 質問は順番にどうぞ。複数ある方も順番にお願いします)でも消えた数値になります。「一つずつ」の動詞や「一つの」の名詞を言い換えた1つの文では、主題と同じ語を主語にした節(似た質問が複数届いたら一覧にします)、主語のない節(バージョンごとに別々の名前を付けます)、送り仮名の途中で切れる主語の節(問い合わせが複数重なれば)にある 複数・いくつ・別々 を数えるので、別の物の数を言い換えただけの推敲でも消えた数値になります。数の主張が同じ語(順に)があっても、前から数えていた語(まとめて)が別の述語に付けば、消えた数値になります(ファイルは一つずつ確認する → ファイルを順に見て、結果はまとめて送る)。
細かい形(拾えない形)
範囲の端の値を、同じ文の別の値として書き直した形(3〜5日かかる → 5日で終え、予備に3日をとる)、数量を言っていない漢数字の「一つ」や期間の値を言わなくなった書き換え(今日一日で終える → 今日から数日で終える)、2つの文をまとめたときに組にならなかった文の「一つずつ」の変化、読点を挟まずに別の述語の打ち消しが続く形(一つずつ行う → 並列で行い遅延を出さない)、前に何もない「一時十分に → 一時に」、助数詞の一覧にない語(一人一票 → 一人二票。冊、点も同じ)と「お一人様一つ」の数の変化は、候補に出ません。数量を言っていない「一つ」と同じ扱いなので、「もう1つ」「1つの」を足した・消した書き換えは、数を限る意味でも拾いません(理由がある → もう1つ理由がある、同時に使える端末は1つの端末だけです → 同時に使える端末に制限はありません。「1つの」を含む文を消した推敲も同じです。資料から書いた最終稿の「1つの画面にまとめました」も、資料にない数値にしません)。平仮名の数は相手の文に同じ単位の値がないと比べないので、足しただけ・消しただけの書き換え(会議室はふたつある → 会議室がある)と、「ふたつしか」「ひとりだけ」「ふたりまで」「ふたつずつ」を言い換えた書き換えは拾いません(漢数字なら拾います)。資料から書いたときの照合でも、平仮名の数は資料の値と違っても候補にしません(参考の行に資料の値が出ます)。「に」「で」のすぐあとの「いつつ」は数として取らないので、「箱にいつつ入れる」の数の書き換えも拾いません。文を分けて「複数」「いくつでも」を別の文に置いた推敲(ファイルは一つずつ送ってください → ファイルを送ってください。複数あってもかまいません)と、「一つの」の名詞のある節から離して「別々」を置いた推敲(鍵は一つの金庫にしまう → 鍵は別々の場所にある金庫にしまう)は拾いません。数値の直前の2字とあとの語が同じ入れ替え(上限は10GB、下限は500MB → 上限は500MB、下限は10GB)、直前が読点の数の入れ替え(設計に3日、5時間を試験に充てる → 設計に5時間、3日を試験に充てる)、同じ助詞のあとの「約」の数の入れ替え(設計に約3日、試験に約5時間 → 設計に約5時間、試験に約3日)は、並びの候補にしません。
## 否定
語ごと言い換えた否定(確認します → 確かめません)は、否定の候補に出ません。文を分け、否定を別の言い方で次の文に移した推敲(…形に変えてから、抜けた通知の調査は発生していません → …ています。この形に変えてから、抜けた通知を調べる事態は起きていません)は、正しい推敲でも否定の候補になり、--fail-on に数えます。
## 否定対比の主張の逆転
平仮名で始まる語(お知らせ)と漢字1字の語は、否定された語として取りません。見出しや「Aは使わず」の文、一覧にない言い方で A を後ろへ回した推敲などでは、正しい推敲にも候補が出たり、逆転を見逃したりします。否定した側を消しただけの推敲は候補にしません。逆転は `--fail-on` に数えないので、候補が出たら、A が目的や優先の側に移ったかを読んで決めてください。
細かい形
「お知らせ」のように平仮名で始まる語と、漢字1字の語(人ではなく仕組み)は、否定された語として取りません。「Aも含めて」の形も拾いません。見出しの行と「Aは使わず」「Aはせず」の文では、A を足しただけの書き換え(外部委託はせず、社内で作ることを最優先にします → 社内で作ることを最優先にし、外部委託も使います)と、別の節の語が A を指す書き換え(表計算は使わず → 表計算で入力し、これを最優先の手順にします)を拾いません。一方、一覧にない言い方で A を後ろへ回した推敲(来期に回す、Aに手を付けるのは見送る、Aは優先順位を下げる)は、正しい推敲でも候補に出ることがあります。下げる語は A のすぐあとに続く形だけを見て、「そのあとに回す」は平仮名の書き方だけを見るので、読点を挟んだ形(Aは、その次に見る)や「その後に回す」「次に見る」も、正しい推敲で候補に出ます。別の名詞のあとの「は後に回す」(品質を最優先にして速度は後に回す)の逆転は拾いません。主題の句(最優先は、大事なのは など)のあとに、置き換え先を言わずに A を変える言い方を置いた正しい推敲(## 大事なのは、会議を最小限にして文書で決めること)は、原文で肯定した側の語を使っていても逆転の候補に出ます。重みの語だけの句(まず、第一に など)のあとでも、原文で肯定した側の語を使わずに A を変える・取り除く・調べる言い方(減らす、絞る、洗い出す、時間を測る、A を別のものにする・別のものに変える。## まず、手作業を洗い出す)は、正しい推敲でも候補に出ます。読点を挟んで置き換える言い方(Aを、B に置き換える)も同じです。本文の「Aではなく」の推敲は、重みの語が文のどこにあっても見るので、原文で肯定した側の語を使った正しい推敲(まず、手作業を自動化する)でも候補に出ます。一方、重みの語だけの句のあとで A と B の語を両方使った逆転(## 会議ではなく文書で決める → ## まず、会議で決めて文書で知らせる)は拾いません。B を廃止する・見送る・控える・禁止する・なくす・頼らない、と言う逆転と、B より A を優先する・B を後回しにする、と比べて下げる逆転(## まず、会議を文書より優先する)も拾いません。逆に、置き換え先や A を使う句が一覧にない言い方(試作版を正式版に移行する、クラウドを主にした構成に切り替える)は A を下げた形とみなすので、A を採った推敲を見逃すことがあります。逆転は --fail-on には数えません。
否定した側を消しただけの推敲(AではなくB → B、Aに任せず → 消す)と、「Aにすぎず」の言い換えは、候補にしません(逆転だけを見る検査です)。
## 文の種類を表す語と気持ちの語
依頼を前置きする文を依頼の文にした推敲(お願いしたいことは3点あります → 次の3点をお願いします)と、結果を言う文を義務の文にした推敲(修正につながります → 修正しなければなりません)は、文の種類の候補になり、--fail-on に数えます。
元にない気持ちの語の検査(一覧は `references/lists/feelings.txt`)は、一覧の語だけを見ます。同じ語が原文のどこかにあれば、別の所に足しても出ません。「売上が前年より落ち込んだ」のように間に語が入る形と、「苦しい言い訳」のような気持ちでない使い方は、候補に出ます。
## 文体の硬化と勢い
変わった文が1つだけの文書では、1文の条件に当たらない小さな硬化は出ません。勢いは、評価の語を短く重ねる型を1文にした推敲と、一覧にない褒め言葉の繰り返しを減らした推敲を拾いません。種類を指定しないと、定型の結びを消した推敲のような正しい直しも、勢いの見直し候補になります。
細かい形
promo でも、箇条書きの太字の行(- **…**)は見出しに数えません。ほかの種類では、番号つき項目の行と太字だけの行も数えません。評価の語を短く重ねる型(安い。うまい。早い。)を1文にした推敲と、強める語の一覧にない褒め言葉(絶品など)の繰り返しをまとめて減らした推敲は拾いません(紹介記事ではどちらも残す決まりなので、読み比べて確かめます)。種類を付けないときは、AIの定型の結び(「いかがでしたか?」「ぜひご活用ください」)を消した推敲や、技術文書の「!」を句点にした推敲のような正しい直しも、見直し候補になります。
## 慎重な言い方・引用の書き方・宛名・敬語の度合い
慎重な言い方は、一覧(`references/lists/hedges.txt`)の7つの語と同じ文字の並びだけを見るので、「示唆した」「示唆される」のように形の変わった語が減っても拾いません。引用の書き方は、数字の角括弧と、著者と年をまとめた括弧の形だけで、本文に著者を書いた形(山田 (2020) によると)の著者の変化と、引用を別の文へ動かした推敲は拾いません。英字の著者は年の前に「,」か「et al.」があるものだけを見ます((Smith 2019) は拾いません。(Windows 2000) のような製品名と年の括弧を引用と取らないためです)。漢字の名前と年の括弧((東京 1998) など)は引用として見ます。符号は、直前が漢字や片仮名のときは見ません(「10月-12月」の範囲を負の数と取らないためで、「前年比-5%」の符号も見ません)。宛名は行頭と宛先の欄のものだけを見ます。敬語の度合いは文書全体の割合で比べるので、短いメールでは1文の違いでも候補になり、長い文書では1文の変化を拾いません。「ください」も「くださる」に数えるので、「〜いただけますでしょうか」を「〜してください」にしても候補は出ません。文末の割合は「です・ます」と「だ・である」の文だけで数えるので、チャットの口語(〜かも、〜しときます)を「です・ます」にそろえても候補は出ません。二重敬語を正しく直すと(ご確認させていただきました → 確認いたしました)、敬語の数が減って候補が出ます。mail と paper の推敲の指針(`references/doc-types/mail.md`、`paper.md`)は、モデルに推敲させて結果を測っていません。tests/corpus には実際のメールと論文がほとんどなく、正しい推敲の48組で3つの検査の候補が0件だったことから、拾い漏れが少ないとは言えません。
## 書き手と読み手
敬語を上げる形は、同じ動詞に「お・ご」を付けた形と、人がふつう書く言い回しのどちらかを選びます。どちらが自然かは文脈で変わり、2つのモデルがそろって自然とはしなかった言い換えも残ります(測った原稿の取引先への依頼で、Claude Code の2回の20か所のうち3か所)。書き手の主語を補う文は、原文に書き手の一人称がある文書だけで、チームや会社の決定とも読める文には補いません。依頼で関係を伝えなかったときは、宛名から社外あてと分かっても敬語を上げません。
## 状態の語・約束・因果・評価と一般化
どれも語の表と文の組で見るので、表にない言い回しは拾いません。合成の組で確かめると、状態の語が消えた書き換えの9割、原文にない約束・誓いを足した書き換えの8割を数えました。原文にない因果を足した書き換えは、12組のうち9組で候補が出ました(数えない因果の候補が8組、ほかの数える候補が1組)。
原文にない評価の語(改善、向上、好評、大切)と、一般化・勧めを足したもの(他の窓口でも同様に、望ましい、とよいでしょう)は、diff では拾いません。語の表で試しましたが、合成の組で評価を足した組は14組のうち0組、一般化・勧めを足した組は14組のうち6組しか出せず(目安は7割)、配る diff には入れませんでした。表にない形容(分かりやすい、洗練された、盛況、適切、十分に小さい)や、表にない勧めの形(一般的です、どの店舗でも、種類を問わず)が多かったためです。「すべきです」のように文の種類を表す語(義務)が変わる足しは、文の種類を表す語の候補として出ることがあります。原文にない良し悪しの判断や勧めを足していないかは、読んで確かめてください(`references/review-points.md`)。
拾わない形と、正しい推敲にも出る形
- 状態の語: 表にない言い方(「照合はまだです」のように否定の述語のない「まだ」、「本人の確認待ちです」のように表にない名詞につく「待ち」、「未取得」のように表にない「未〜」)は見ません。近い家族の語への言い換え(調査中 → 原因は分かっていません)は、状態が残ったとみなします。表にない「未〜」に言い換えた正しい推敲(承認はまだ受けていない → 承認は未取得です)は、状態が消えたとして数えます。「〜中、」は、同じ節に「は」「が」の主題があるときだけ見ます。
- 約束: 誰の行為かは主語の語でしか見ません。書き手でない人の約束を、主語を書かずに足した推敲は、書き手の約束として出ます。謙譲の形も未来を表す語も書き手の主語もない「〜します」は、約束でも数えない候補にとどめます(お支払いの期限は1週間延ばします)。組になった原文の文に未来の述語があれば、別の行為の約束でも言い換えとみなして打ち消します(資料を読みます → 資料を破棄します)。済んだ行為を未来の約束にした書き換え(送りました → 送ります)と、他人の行為を書き手の行為にした書き換えは見ません。「伺います」「行います」のように「い」で終わる動詞の「〜ます」は、状態の述語と区別できず、拾いません。依頼や資料に書いてある約束を足したときも数えます。「当方では分かりかねます」「〜をお勧めします」は、約束ではないのに約束として数えます(正しい推敲でも `--fail-on` で終了コード1になります)。
- 因果: 原文の1文の「〜し、」「〜て」を「ため」「ので」と語にしただけの形は出しません。「〜をきっかけに」「〜した影響で」「〜した効果で」のような表にないつなぎは出しません。
## 事実を補う手順と資料の照合
`--fact-gaps` の候補は一部だけです。拾うのは、程度の語だけの文、変わる前と後の値がない変化、効果だけの文、中身の見えない比喩の4つで、主語の抜けは拾いません。数値、確度の語、ぼかした語、書き手が省いたことを示す言い方(詳細は省きます、社外秘 など)、決意や抱負の結びのある文と、問い、見出し、表、コード、引用も見ません。候補に出なかった所にも、中身の書かれていない所はあります。
候補を測った数
- 一覧を合わせ込むのに使った合成の文では、出てほしい35文のすべてに出て、残す31文には出ませんでした。
- 合わせ込んだあとに書いた合成の文では、出てほしい25文のうち17文に出て、残す21文には出ず、境目の4文のうち2文に出ました。拾えなかった8文は「待ち時間がぐっと減りました」「検索の高速化を実現しました」「費用を抑えました」「安定稼働に大きく貢献します」「挙動を見直しました」「体験を一段と高めます」「開発の道が開けました」「黙って失敗していました」のような文です。
- 評価用に AI に書かせた文のうち、残す例として集めた61文と、tests/corpus の human の16本(作者の記事の抜粋8本と、人の文らしく AI が書いた例文8本)には出ませんでした。tests/corpus は一覧を合わせ込むのに使った群なので、取っておきの結果ではありません。
- 6万字の文書で候補を探す時間は、Python 3.14.5 で約0.03秒、3.9.6 で約0.04秒でした(3回)。
- 照合の「資料に基づく補足の候補」と「単位のない数とだけ一致」は、資料のその行に同じ値があることを示すだけで、根拠であることも正しいことも示しません。設定の `retry_wait = 3` を回数の「3回」に使う、失敗した回と成功した回のログの時間を変更の前と後にする、といった取り違えは、道具では止められません。
- 照らすのは数値、名前、語、確度の語だけで、主張、条件、担当が資料どおりかは判定しません。
- 抜き書き(`.material.txt`)の中身が、開いたファイルやコマンドの出力と同じかは確かめません。
- 抜き書きも、ほかの資料と同じく記録の `.yomiyasu/inputs/` に写しが残ります。残したくないときは `--no-record` を付けます。
- 資料のファイルに `<<` と check
lint が箇条書きの比率から外すのは、行頭から書いた `` と ` ` の組の中だけです。
細かい形
行頭から書いた開きと閉じが組になったときだけ見ます。段落の途中に書いた ``、閉じていない ``、引用の中の ``、`:::details` のような Markdown の拡張の書き方は見ず、中の箇条書きを今までどおり数えます。`` も畳んだものと同じに扱います。ライブラリとして `lint_text()` を呼ぶときは、先頭の BOM を外した文字列を渡してください(BOM が残ると1行目の `` を見ません。コマンドは BOM を外して読みます)。
本文に `<<`、閉じていないリンク、太字に続く URL があると、lint と diff の太字の検査は 2.0.1 と同じく崩れの数の2乗で伸びます(同じプロセスで lint を動かした CPU 時間で、1段落に1,000組で約3秒、どの組にも URL が続く形では約11秒)。
## 2.1.1 で直した検査の限界
diff の選ぶ範囲(どれか一つと全部の言い方の入れ替え)と因果(関連から因果への強まり)は、決まった語の表で、原文の文と書き直した文の対応する範囲を比べます。tests/corpus の48組と実際の推敲の1,715組には、関連を述べた文も選ぶ範囲を入れ替えた範囲もなかったので、拾えるかどうかは主に合成の組で確かめました。
拾わない形と、出る形
- 「または」を「かつ」「および」に変えた書き換えは、選ぶ範囲の候補に出しません。「AでもBでも」「どちらでも」は、どれを選んでもよい言い方として「AまたはB」と同じ側に数えます。
- 文を分けて、全部を含む言い方を2文目に書いた書き換え(「AまたはBのどちらかが必要です。」→「AとBが必要です。両方をそろえてください。」)は出しません。足した文の「両方」「すべて」が何を指すかを見分けられないためです。因果は、関連を述べた文のすぐあとに足した文まで見ます。
- 名詞を修飾する「すべての〜」は、原文の同じ文に同じ名詞の「いずれかの〜」があるときだけ、全部の言い方として数えます。「A、B、Cをすべて提出する」のような副詞の「すべて」は見ないので、「A、B、Cのいずれかを提出する。」→「A、B、Cをすべて提出する。」は出しません(「A、B、Cのすべてを提出する」は出します)。
- 原文に因果の言い方がない範囲で、「〜で増えた」のように手段の「で」と見分けられない因果の言い方に書き換えたものは出しません。原文に「〜による」「〜のため」「影響」「理由」などがある範囲では、因果の候補を出しません。関連を述べた文のあとに「原因はまだ分かっていない」のような文を足したときも、原文にない因果の記述として出します。
- 見出しの候補は全文差分の行の対応をもとにしています。同じ名前の見出しのレベルを2つの節で入れ替えたときや、見出しと同じ文字の太字の行の位置を入れ替えたときは、全文差分が「消して別の場所に足した」と対応づけるので、見出しの候補には出ません。見出しの名前とレベルをその節の本文と一緒に書き換えたときも、名前が似ていなければレベルの変化として組にしません。箇条書きや引用の中の太字の行が見出しになったときは、見出しの数の変化だけを出し、どの行かは挙げません。
- 数の概数や範囲を表す語は、数のすぐ隣にある語だけを見ます。「最大」「少なくとも」「まで」「ざっと」「ばかり」は、相手の文にあれば概数や範囲を表す語があるとみなす手がかりにだけ使うので、「最大10件まで → 10件」「ざっと100件 → 100件」「3日ばかり → 3日」は出しません。「を超える」「を下回る」は、あとの打ち消しで下限と上限が入れ替わるので、範囲を表す語があることだけを見ます(「100人を超える → 100人以上」は出しません)。相手の文に範囲の語(以上、まで など)や見積もりの語(推定、見込み など)があれば、別の数に付いていても出しません。単位のない数のあとの「弱」「強」「位」(震度5弱、4強、3位)は概数や範囲を表す語として見ません。万・億の付いた漢数字(一万円)と、数を別の文に移した書き換えは比べません。
- lint の文末の飾りを読み飛ばすのは、文末を見る規則だけです。文頭の飾り(「🚀 結論から言うと」)は読み飛ばさないので、文頭に固定した規則は、先頭に飾りがあると当たりません。句点の代わりの絵文字で文を分けて見るのも、文末の型を見る規則(meta_filler の文末の型、negative_parallelism の「Aじゃない、Bです」、instruction_residue、sentence_end_repetition)だけです。絵文字のあとが助詞、長音、かっこ、記号のときと、絵文字の前が助詞か読点のときは、文が続いているとみて分けません。閉じかぎと閉じ引用符を読み飛ばすのは、同じ段落のその行までに対の開きがない行だけで、閉じかっこを読み飛ばすのは、対の開きかっこが文頭、句点、述語のすぐあとにあるときだけです。文末のコロン(trailing_colon)は、後ろの絵文字を読み飛ばしません(「状態:✅」の絵文字は値のことがあるためです)。
- lint の比喩の「効く」は、主語のない「効いてきた」を、同じ文、同じ行の前の文、前の3行に文字どおりの語(服用、エアコン、ブレーキ など)があるときだけ文字どおりとみなします。それより前に語があるときは拾い、前の3行にその語があると比喩でも拾いません。手順を表す語(見直し、工夫、改善 など)を主語にしない「効く」(その一言が効いた、この差が効く)と、打ち消し(効かない、効いていない)は拾いません。ただし 2.1.0 から拾っている「地味に効かない」のような副詞の形は今までどおり拾います。
- lint の translated_term は文を1行ずつ見るので、「この辞書の」と「次の版では」が別の行に折り返されているときや、前の文に出版物の語があるときは、出版物の版でも警告します。
- lint の slop_vocabulary の「装置」は、機器の名前を作る語の一覧(安全、制御、記憶、表示、測定 など)との複合語と、カタカナや英数字の語のあとの「装置」だけを除きます。一覧にない機器の名前(電子顕微鏡装置など)には文字どおりでも警告し、一覧にある語との複合語を比喩で使ったとき(町は記憶装置だ)は警告しません。
- lint の metaphor_verb の「〜した瞬間」は、決まった形と抽象的な主語の語の一覧で、時刻の表現と直訳の形を分けています。一覧にない抽象語が主語の一般論(〜した瞬間に、チームは考えるのをやめる)には警告せず、具体的な主語と大げさな結果が並ぶ文(マージした瞬間にテストが全滅した)には警告します。「〜のは、〜した瞬間だった」のように時刻を答える文は、大げさな言い方(すべてが変わったのは、〜した瞬間だった)でも警告しません。
## SKILL.md の長さ
2.1.1 の SKILL.md は41,445字です。スキルの指示の字数に上限があるサービスには、そのままでは入りません(たとえば Microsoft 365 Copilot の Agent Builder は、スキルの指示を30,000字までにしています)。