Releases: coji/natural-japanese
Release list
v1.2.0
natural-japanese v1.2.0 — write(新規作成)と score(AI臭診断)
スキルの呼び出し口を2つ追加しました。
/natural-japanese write [quick|full] <お題や素材>
元の文章がない状態からの新規作成を明示的に呼び出します。読者・主メッセージ・見出しスケルトン・濃淡の設計から始め、文体憲法の下で執筆し、検査と収束まで全工程で書き起こします。素材(固有名詞・数値・実例)が乏しければ先に集めるか、ユーザーに求めます。
/natural-japanese score [quick|full|exp] <ファイル>
文書を一切書き換えず、自然度スコア(0〜100、高いほど自然=AI臭が薄い)と理由を返す診断モードです。
- スコアは二層構成: 機械ベース(lint findings を文書長で正規化して減点する決定的な式)+判断調整(±15、構造レビューの所見による。full/exp のみ)。内訳は必ず開示します
- 深さ3段: quick(lint のみ、30秒)/ full(構造・読みやすさ・doctype レビュー込み)/ exp(semantic.py の深層検出込み。表層を磨いた文書に残る話題平板性まで見ます)
- 出力: スコアとバンド、理由トップ3〜5(代表箇所つき)、直すなら何から。診断後も頼まれるまで書き換えません
定義は references/diagnose.md にあります。実測では、AI生成エッセイに 96/100+内訳+理由を約25秒で返しました。
自然言語でも発動します(「この文章AIっぽい?」「AI臭さを採点して」→ score、「〇〇についてゼロから書き起こして」→ write)。evals は 68 ケースに拡張し全 PASS。
Codex コードレビュー GO 取得済み(スコアの 0〜100 クランプ、診断の quick/full と実行モードの用語整理などレビュー指摘5件を反映)。
変更ログ(自動生成)
Full Changelog: v1.1.0...v1.2.0
v1.1.0
natural-japanese v1.1.0 — 実行モードと、磨いても残るAI臭を捉える意味的検出器
すべて実測にもとづくリリースです。同一タスクでの工程別時間計測、10本規模のブラインド評価、そしてNN系4トラックの全数実験から生まれました。
実行モード(クイック / フル)
- クイック(既定): 日常使い。サブエージェントなしでその場で完結。実測で短い文書30秒前後、1万字級でも3分程度。lint は文書が短くても必ず1回(省略すると品質保証が成立しないため強制化)
- フル: 「しっかり」「時間をかけていい」とき・対外/経営向け・1万字超。lint/outline/terms+並列サブエージェント3レビュー(構造・読みやすさ・doctype照合)+収束ループ。実測で短い文書7分前後、1万字級15〜20分。開始時に所要目安をユーザーへ一言伝える
- スラッシュコマンド引数対応:
/natural-japanese full 議事録.md - 実測知見: 大きい文書ではフルがブラインド4観点全勝(確信度高)。小さい文書では差が出ないためクイックで十分。effort を絞った実行はフル工程を削りやすいため、フルは high 推奨
scripts/semantic.py(EXPERIMENTAL・opt-in)
文埋め込み(cl-nagoya/ruri-v3-310m)で「隣接する文どうしの意味的な近さの起伏」を測り、話題の平板さ——一つの主題を同じ歩幅で刻み続けるAI的な癖——を検出します。コーパス実測で AI 85% / 人間の誤検知 3.7%、7モデルすべてに頑健で、表層の文体を人手で磨き上げた文書に残るAI臭まで捉えた唯一の指標です。
torch+初回約1GBのモデルダウンロードを伴う重量級のため、lint 本体には組み込まず独立の opt-in エントリにしています。ジャンル別閾値(essay/tech/business)はコーパス校正済み。
なお同時に実験した perplexity 検出・教師あり分類器・GiNZA係り受けの3系統は、いずれも「良い書き手ほど罰する」構造が実測で確認され不採用としました。経緯と数値は corpus/reports/nn-detector-sweep.md、再現スクリプトは corpus/experiments/ にあります。
リライトの品質ガード強化
10本のブラインド評価(人手完成版へのリライト対決)で見つかった欠陥への対処:
- 見出しの結論化は2〜3箇所まで・書式を揃えすぎない(数の上限)
- リライトは着手前に全節へ keep/change を割り振る(デフォルト keep、change 3割目安)
- 生の痕跡(口語引用・記号・不揃い)は資産として保存
- 著者の意図・方針を捏造しない、So What は根拠が支える範囲まで
この結果、「人手の完成版とのブラインド対決」が 0勝5敗 → 4勝1分(敗北ゼロ)まで改善しています。
開発向け
- スキル評価ハーネス
corpus/experiments/skill-eval/: スキル適用→3批評(人間らしさA/B・趣旨保存・構造臭)→原因スキル箇所ごとのクラスタ集約。--parallel・--effort-*対応
Codex コードレビュー GO 取得済み(semantic.py の閾値精度とエラーパスの指摘2件は修正適用済み)。
変更ログ(自動生成)
Full Changelog: v1.0.1...v1.1.0
v1.0.1
natural-japanese v1.0.1 — 評価ハーネスと実測にもとづくスキル強化
v1.0.0 のスキルを、自前の評価ハーネスで人手の完成文書5本+合成5本に適用し、ブラインド判定で見つかった欠陥を2ラウンドで修正したリリースです。素の生成には5/5で勝ち、人手の完成版のリライトでももう負けない(0勝5敗 → 4勝1分)状態になりました。
実行モード(新設)
- クイック(既定): 日常使い。サブエージェントなしでその場で完結(lint 1回+セルフのスケルトン通読、収束1周)
- フル: 「しっかり」「時間をかけていい」とき・対外/経営向け・1万字超。全工程+検査3レビュー(構造・読みやすさ・doctype照合)を並列サブエージェントに委譲。統合と判断は親が行い、執筆は分割しない
スキルの強化(ブラインド評価の実測にもとづく)
- 第2条: 結論見出しの書式まで揃えない(同一書式の全節適用が最頻のAI臭と実測)。リライトでは結論化を2〜3箇所までと数で制限。見出しで本文の確信度を超えない
- 第12条: So What には資格がいる——根拠が支える範囲を超えた処方、節末の同型処方反復、逸話の普遍教訓化を禁止
- スイープ改稿ガード: リライトは「直す箇所を選ぶ」作業。着手前に全節へ keep/change を割り振る(デフォルト keep、change 3割目安)。生の痕跡(口語引用・記号・不揃い)は資産として保存。doctype必須要素を定型文で機械的に埋めない
- 議事録: 話し言葉の引用は整形の対象外。中身が「未定」で埋まる列・節は足さない
スキル評価ハーネス(新規、開発用)
corpus/experiments/skill-eval/ — スキルを実文書に適用し、ブラインドA/B(人間らしさ)・趣旨保存・構造臭の3批評で、原因スキル箇所ごとに欠陥をクラスタ集約する。--parallel・--effort-* 対応。コミットされるレポートは抽象化済み(Codex レビューでサニタイズを4ラウンド検証、GO 取得)。
知見
指示の形式で効き方が段違いでした。「揃えすぎるな」という原則の言葉より、数えられる制約(2〜3箇所まで)と変更のオプトイン化(デフォルト keep)が効きます。
変更ログ(自動生成)
Full Changelog: v1.0.0...v1.0.1
v1.0.0
natural-japanese v1.0.0 — 仕事の日本語を書くスキルへ
「AI臭除去スキル」から、仕事の日本語文書を読みやすくわかりやすく書く・直す決定版スキルへゼロベースで再設計しました。議事録・調査レポート・社内ガイド・リサーチメモ・スライド構成といったビジネス文書から、note・ブログ・エッセイまで。AI臭さの除去は、この大きな工程の一部として組み込まれています。
設計の二軸
- 検出は機械、判断はAI(従来から継続): 疑いの検出は形態素解析で決定的に行い、直すかどうかはAIが文脈で判断する
- 事後修正より生成時制約(新): 書いた後にAI臭を消すより、書く前の設計と書くときの制約で発生自体を防ぐ
工程は「設計 → 執筆 → 検査 → 収束」の順に進みます。
主な追加
- 文体憲法12箇条(
references/writing-constitution.md): 結論から書く、見出しはメッセージ、説明は地の文、専門用語は「機能→名前」の順、濃淡をつける、同じ鋳型を3回続けない、限界と推定を明示ラベルで開示、など生成時の制約 - 文書タイプ別の型(
references/doctypes/): 議事録・調査レポート・社内ガイド・リサーチメモ/ディスカッションペーパー・スライド構成の5型。必須要素・構成の型・品質基準・AIがやりがちな失敗をまとめた - 構造レビュー(スケルトン通読): 見出しと段落先頭文だけで論旨・濃淡・So Whatを点検する検査。箇条書き主体の議事録など、文レベルlintが素通りする文書で主役になる
- スイープ改稿ガード: 既存文書のリライトで、同じ修正を全項目へ一律適用すると処理の均質さ自体が新種のAI臭になる。価値を足せる箇所だけ選んで直す原則を明文化(実文書でのブラインド検証で確認)
検査ツールの拡充と再編(破壊的変更)
機械検査層が「AI臭lint」から「疑いの検出+判断材料の抽出」へ広がったため、単一スクリプトを役割ごとに分割しました。
scripts/lint.py— 疑いの検出(--json/--genre/--baseline/--experimental)scripts/outline.py— スケルトン抽出(構造レビューへの入力)scripts/terms.py— 専門用語の初出・回数・説明マーカー有無の一覧(用語説明の判断材料)scripts/textcore.py— 共有基盤(形態素解析・文分割・Markdownマスク)
scripts/ai-smell-lint.py は削除しました(後方互換シムなし)。スクリプトを直接呼んでいた場合は scripts/lint.py に読み替えてください。スキルとして使う分には自動で新パスを参照します。
検出器の校正
- antithesis_repetition の比率化: 「〜ではなく」型の対比を、出現ごとの一律 critical から「検出数/総文数」の比率で3段階(info / warn / critical)に。コーパス実測(人間 quality:high 81本 vs AI 406本)で人間側の critical 化率を4.9%(FP<5%目標)に抑えつつ、AIの高頻度パターンは検出を維持
その他
- description をビジネス文書トリガーに対応させ、evals を60ケース(60/60 PASS)に拡張
- fixtures 回帰チェック 25/33/0/0 維持
Codex コードレビュー GO 取得済み。
変更ログ(自動生成)
Full Changelog: v0.4.0...v1.0.0
v0.4.0
v0.4.0 — 「読みやすくわかりやすい、自然な日本語」への拡張
AI臭除去のスキルから、読みやすくわかりやすい自然な日本語を書く・直すためのスキルへスコープを拡張しました。
読みやすさは「判断」の領域 — コーパスが示した結論
一文の長さ・主語述語距離・読点密度・冗長表現など14の読みやすさ指標を実コーパス(人間155文書 + AI 107文書)で検証した結果、名文で誤検知せずに機械閾値化できる指標はゼロでした(検証レポートを corpus/reports/readability-sweep.md として公開)。表記ゆれは名文の96%で発火し、「することができる」は寺田寅彦にも普通に出てきます。
この結果を受け、読みやすさは lint(機械検出)ではなく references を参照した判断として修正フローに統合しました。「検出は機械、判断は AI」の役割分担そのままです。
追加された references
readability-principles.md— 本多勝一の語順4原則・読点の原則、一文一義、接続詞の使い分けなどreadability-antipatterns.md— 読みにくい文章のアンチパターン24種(4レベル)genre-notes.md— tech / business / essay / 公用文のジャンル別規範
--genre business
社内報告書・社外メール・提案書向けのプロファイルを追加。ビジネス文書で正当な様式(箇条書き・太字・定型見出し・番号付き構造)を検出対象から除外します。AI 生成ビジネス文書24本(2モデル)で校正済み。
その他
- description を拡張スコープに改稿(発動シナリオ evals 41/41 通過)
- 読みやすさ検証スクリプト(corpus/experiments/readability-sweep.py)を公開。再実行時の出力はローカル専用で、著作権のある本文抜粋は自動で「引用略」に置換されます
v0.3.0
v0.3.0 — コーパス校正による検出器の全面再設計
fixture 2本で決めていた閾値を、実コーパス(人間103文書 + AI生成81文書)による統計校正に置き換えました。
検出器の再設計
- 反転していた検出器を修正: 体言止め・文頭反復は実は人間の修辞でした。体言止めは「欠如」を検出する方向に反転、文頭反復は閾値を大幅緩和
- 辞書の浄化: 「最後に」「まさに」は人間側ヒットの63%を占める日常語だったため禁止語から削除
- 構造検出器を5種追加: 太字密度・箇条書き比率・定型見出し・番号付きフェーズ構造・絵文字密度(2026年のAI臭は語彙でなくリズムと構造に宿る)
- low_specificity 追加: 固有名詞・数値・抽象名詞率から「誰が書いても同じ一般論」の段落を検出(人間FP率 3.9%)
- --genre プロファイル: essay / tech / business でジャンル別の閾値・severity
検証
- E2E ブラインド評価: LLMジャッジ20/20でスキル適用後を選好、AI判定確率 74.8 → 38.2
- 全検出器で人間コーパス(quality: high)FP率 5% 未満を確認
その他
- references に読みやすさの原則(本多勝一ほか)・アンチパターン24種・ジャンル別ノートを追加
- HTML コメントのマスク対応(本文・構造検出の両パス)
- fixture 回帰チェック(scripts/check-fixtures.sh)を pre-commit と CI に追加
- corpus/fetch.py が取得失敗時に非ゼロ exit
- scripts/calibrate.py(コーパス校正ツール)を同梱
参考資料: 設計元記事 / 再帰的推論の記事 / k16shikano 日本語技術文書規範
v0.2.0
v0.2.0 — 収束するまで直しきる
フローの刷新: 収束駆動ループ
一回の検出で終わりにせず、lint の全指摘を「直した / 理由付きで残す」に仕分けし、修正が新しい指摘を生まなくなるまでループする設計に変更。最後に「初見の人間として音読する」最終パスを置き、発散ガード(直しては再発が続いたら構造ごと書き直す)と後片付け(中間ファイル全削除)も定義した。
内面化の仕組み
- 周回ごとの基準再参照: ヒットしたカテゴリの reference を毎周読み直してから直す(要約記憶で直すと基準を破るため)
- 素材不足の分岐: 一般論しか書けていない段落は文体でなく素材の問題。修正ループから情報収集へ戻る
- 事前リサーチ: 新規執筆時は推論→検索→推論のループで具体的素材を集めてから書く
lint の強化
--baseline prev.json差分モード: 周回間の指摘を「解消 / 新規 / 継続」に自動分類- excerpt が原文どおり表示されるよう修正(インラインコード欠落バグ)
- Codex 外部レビュー4ラウンドを経て GO: コードフェンスの型・長さ追跡、YAML front matter / リンク URL のマスク、段落行番号誤帰属の根本修正、baseline スキーマ検証、モーラ計算補正など
コーパス基盤(次バージョンへの布石)
検出器の閾値を実データで校正するためのコーパス基盤を追加。青空文庫の随筆12本(パブリックドメイン)、Web 記事ソース定義、AI 記事生成スクリプト。
参考資料
Full Changelog: v0.1.2...v0.2.0
v0.1.2
v0.1.1
v0.1.0
Full Changelog: https://github.com/coji/natural-japanese/commits/v0.1.0