クリーニング方法:ルール、既定値、制限
ローカルクリーナーの動作
HumanFlow のローカルクリーナーは、文字とパターンに対する決定的な変換を行います。同じ入力、同じ有効ルール、同じダッシュ設定なら、エンジンは同じ出力と順序付き変更リストを生成します。言語モデルに意味を推測させません。各変更にはルール ID、カテゴリ、入力と出力の範囲、削除した値、置換値、該当する場合は Unicode 情報、破壊的と見なされるかどうかが記録されます。
安全側の既定値は通常、文言を変えない書式上の問題を対象とします。対象は対応する不可視制御文字、ノーブレークスペース、タブ、連続する水平スペース、行末の空白、過剰な空行です。Markdown や句読点を変える任意ルールは、汎用のAI テキストクリーナーでは既定で無効です。
ルール一覧
次の既定値はエンジンのルール登録情報です。個々のページ設定では上書きされるため、ロケールごとのトップページと専用ツールの実際の既定値を次の表に示します。
ページ設定ごとの実際の既定ルール
この表はチェックイン済みのローカライズ済みページ設定に基づきます。エンジン登録情報では書式ルール 6 件が既定で有効、Markdown と句読点のルール 7 件が無効ですが、ページ設定はその値を上書きできます。
| ページ設定 | 既定で有効なルール ID |
|---|---|
| トップページ | trim-trailing-whitespace, collapse-blank-lines |
| AI 書式の削除 | normalize-nbsp, normalize-tabs, collapse-spaces, trim-trailing-whitespace, collapse-blank-lines, remove-markdown-headings, remove-markdown-emphasis, remove-markdown-code-fences, remove-markdown-links |
| 不可視文字の削除 | なし |
| em ダッシュの削除 | replace-em-dash |
| AI 空白の修正 | normalize-nbsp, normalize-tabs, collapse-spaces, trim-trailing-whitespace, collapse-blank-lines |
| ルール ID | エンジン既定値 | リスク | 実際の動作 |
|---|---|---|---|
hidden-unicode | 有効 | 比較的安全、要確認 | 対応する C0/C1 制御文字、ゼロ幅文字、方向マーク、ワードジョイナー、BOM を削除。通常の改行とタブは除外。 |
normalize-nbsp | 有効 | 比較的安全、要確認 | U+00A0 ノーブレークスペースを U+0020 通常スペースに置換。 |
normalize-tabs | 有効 | 比較的安全、要確認 | タブ文字を通常のスペースに置換。 |
collapse-spaces | 有効 | 比較的安全、要確認 | 連続する水平スペースまたは NBSP を通常のスペース 1 個にまとめる。 |
trim-trailing-whitespace | 有効 | 比較的安全、要確認 | 行末のスペースとタブを削除。 |
collapse-blank-lines | 有効 | 比較的安全、要確認 | 連続する空行を最大 1 行にする。 |
remove-markdown-headings | 無効 | 破壊的 | 見出し文字を残し、先頭の Markdown ハッシュ記号を削除。 |
remove-markdown-emphasis | 無効 | 破壊的 | 強調用アスタリスクを削除。 |
remove-markdown-code-fences | 無効 | 破壊的 | 囲まれた内容を残し、三連バッククォートのコードフェンス行を削除。 |
remove-markdown-links | 無効 | 破壊的 | Markdown のインラインリンクを表示アンカーテキストに置換し、リンク先を失う。 |
normalize-smart-quotes | 無効 | 破壊的 | 文字組み用の一重・二重引用符を ASCII 引用符に置換。 |
replace-em-dash | 無効 | 破壊的 | 選択した出力に従って U+2014 を置換。 |
replace-en-dash | 無効 | 破壊的 | U+2013 を独立して選択した出力に置換。 |
「比較的安全」はすべての文書で正しいことを意味しません。タブや連続スペースはコードのインデントや表の整列を表すことがあります。ゼロ幅ジョイナーや方向マークは多言語テキストに必要な場合があります。各ルールは個別に選択でき、Undo はブラウザー状態に保持された元の入力を復元します。
重複と変更順序
エンジンは元の入力に対する候補編集を集め、入力位置とルール優先度で並べ、優先度の低い重複編集を除外します。その後、左から右へ出力を組み立て、採用した置換後の出力範囲を記録します。これにより同じ入力範囲を複数の有効ルールで二重編集することを防ぎ、確認時に元の範囲を参照できます。
たとえば NBSP が連続する部分は、連続スペースのルールと単一 NBSP のルールの両方に一致する可能性があります。優先度の高い連続範囲の置換が採用され、重複する単文字置換は飛ばされるため、矛盾した複数変更ではなく一つの変換として報告されます。
再現可能な例
リポジトリのテストデータには、空入力、通常の文章、混在 Unicode、Markdown、句読点、多言語テキスト、コード、JSON、大きな決定的文書が含まれます。追加の例では、入力と出力の正確な範囲、U+200B の名前表示、タブの正規化、コードフェンス内の内容保持、Markdown リンクのアンカーテキスト保持、各専用ツール設定を検証します。
最小例は A[U+200B]B[U+00A0]C です。安全側の既定ルールを使うと期待される結果は AB C です。スマート引用符と em ダッシュを含む普通の文は、句読点ルールが無効なのでバイト単位で変わりません。一般設定では Markdown 見出しも保持されますが、専用の書式削除ツールは意図的に Markdown 設定を有効にします。
専用ツールのポリシー
4 つの専用ツールは変換を別実装せず、同じエンジンを共有します。ChatGPT 書式の削除は Markdown と空白ルールを有効にし、コードフェンスとリンクも処理します。不可視文字の削除は不可視 Unicode と NBSP のみを扱い、コードポイントの根拠を表示します。em ダッシュ削除は em/en ダッシュを個別に制御し、em ダッシュをハイフンに置換する設定が初期選択です。AI 空白の修正は NBSP、タブ、連続スペース、行末空白、空行を扱います。
自動ポリシーテストでは、4 つの設定がそれぞれ異なる既定ルール構成、十分な固有内容、専用サンプルを持ち、各サンプルを処理した結果が変化することを要求します。これにより、文面だけ異なる同一ツールを公開することを防ぎます。
プライバシー境界
ローカル処理はブラウザー内で行われます。ソースレベルのテストでは、クライアント部分からテキストを含む fetch やサーバーアクションを送ることを禁止しています。分析イベントの許可項目は集計したルールと件数だけです。AI リライターは別の製品機能であり、送信されたテキストをサーバー経由で設定済みモデル提供者に送る場合があります。文章パターンチェッカーもローカルですが、示すのはヒューリスティックであり、著者の判定ではありません。製品プライバシーの説明も参照してください。
制限事項
クリーナーは文章が人間とモデルのどちらによって書かれたかを判定できません。統計的ウォーターマークの削除、検索順位の向上、AI 検出器の回避、任意の句読点や Markdown の変更後も意味が保たれることを保証しません。文書に記載したパターンだけを認識します。入れ子の Markdown、複雑なリンク構文、独自マークアップ、リッチテキストの書式、アプリ固有のクリップボードメタデータはパターンの対象外となることがあります。
コード、JSON、表、双方向テキスト、言語固有の字形を使用先のアプリケーションで必ず確認してください。差分表示と決定的な出力は確認を可能にしますが、確認自体の代わりにはなりません。
バージョンと変更方針
現在のローカル書式エンジンのスキーマバージョンは 1 です。ルール ID はページ設定、分析の許可リスト、テスト、ガバナンス文書で使われる安定した API 値です。動作を変更する際は同じリリースでテストの期待値とこの方法論を更新してください。破壊的な新ルールは既定で無効にします。保存済み設定や SEO の記録が ID を参照する可能性があるため、ルールの削除や名前変更には明示的な移行が必要です。
この方法論は 2026-09-05 にリポジトリの実装を確認しました。今後の確認日は実際のコードと設定の監査を反映し、自動タイムスタンプで決めてはいけません。