unslop-file について
Markdownなどの自然言語ファイルからAI特有の表現を減らし、技術的な内容を保って書き直すスキルです。正規表現による処理とClaudeによるリライトを選べ、バックアップと検証にも対応します。
主な機能
- 01正規表現による定型処理
- 02Claudeによる全面リライト
- 03subtle・balanced・fullモード
- 04適用ルールの監査レポート
- 05バックアップと内容保持の検証
活用シーン
- 01AI調のプロジェクト文書の修正
- 02CIでのファイル一括処理
- 03マージ前の定型修正の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mohamedabdallah-14/ unslop --skill unslop-fileインストール後、Claude Code で/unslop-fileを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
CHANGELOG.mdpyproject.tomlREADME.mdSECURITY.mdscripts/__init__.py__main__.pybenchmark.pycli.pydetect.pydetector.pyfetch_detectors.pyhumanize.pylexical_targets.pypy.typedreasoning.pyshield_metrics.pysoul.pystructural.pystyle_memory.pystylometry.pysurprisal.pyvalidate.pyscripts/data/__init__.pystylometric_baseline.json詳細
Unslop Humanize
目的
自然言語のメモリーファイル(CLAUDE.md、AGENTS.md、todos、preferences、docs)を書き換え、人間が書いたような文章にします。お世辞、ありきたりな語彙、五段落構成、三項並列による水増しは避けます。技術的な内容はすべて正確に保持します。コードブロック、インラインコード、URL、ファイルパス、コマンド、見出し、表が対象です。
2 つのモードがあります。
--deterministic— 定番の AI っぽい表現を取り除き、三項並列を簡潔にする高速な正規表現処理です。API 呼び出しは不要で、ANTHROPIC_API_KEYも必要ありません。バッチ処理や CI に最適です。- LLM モード(デフォルト) — Claude(Anthropic SDK 経由、またはフォールバックとして
claude --printCLI を使用)を呼び出し、文章に緩急をつけ、見せかけの段落を組み替え、文体を整える全面的な書き換えを行います。処理は遅くなりますが、品質は向上します。
人間らしく書き換えた内容で元のファイルを上書きします。先に FILE.original.md というバックアップを作成します。編集後の .original.md を使って再実行すると、書き換えをやり直せます。
強度レベル(--mode)
| モード | 実行内容 | 用途 |
|---|---|---|
subtle | ありきたりな語彙のみ。 | 構成は問題なく、AI っぽい語彙だけを取り除きたい場合。 |
balanced | (デフォルト。)お世辞、曖昧な表現、つなぎ言葉、ありきたりな語彙、権威を持ち出す決まり文句、道しるべ、見せかけのバランス、ダッシュの上限。 | 日常的なドキュメント、README、CLAUDE.md。 |
full | Balanced に加え、埋め草の表現、否定的な並列構文の三項並列、より強力な LLM プロンプト。 | マーケティング文、リリースノート、AI っぽさの強い LLM 出力。 |
2 パス監査
まず決定的処理でレポートを作成し、見落とした箇所があれば修正します。
humanize --deterministic --report audit.json doc.md # writes audit + humanized
humanize doc.md # optional LLM polish on top
audit.json には、適用されたすべてのルール、すべての before → after の組み合わせ、および counts_by_rule が記録されます。差分をマージする前に、正規表現による変更内容を確認するのに便利です。
トリガー
/unslop-file <filepath>、/unslop:humanize <filepath>、または「メモリーファイルを人間らしくして」「このドキュメントの AI っぽさを取り除いて」「このファイルから AI の文体を取り除いて」。
処理手順
スクリプトは、この SKILL.md と同じ階層にある scripts/ ディレクトリにあります。
一般的な構成:
- フルリポジトリ:
unslop/SKILL.md+unslop/scripts/ - 同期ミラー:
skills/unslop-file/SKILL.md+skills/unslop-file/scripts/ - Codex バンドル:
plugins/unslop/skills/unslop-file/SKILL.md+ 同階層のscripts/
常に、現在読み込まれている SKILL ファイルと同階層にある scripts/ を優先してください。
手順:
- この SKILL.md と同階層の
scripts/を含むディレクトリを特定します。 - そのディレクトリから
python3 -m scripts <absolute_filepath>を実行します(LLM モード)。正規表現処理を行う場合は--deterministicを追加します。 - CLI の処理フロー:ファイル形式を検出 →
.original.mdのバックアップを作成 → 人間らしい文章に書き換え → 検証(保持チェックと AI っぽさの残存チェック)→ 検証エラーの場合:対象を絞った修正を呼び出し(LLM モード)→ 最大 2 回再試行。 - 最終的に失敗した場合:エラーを報告し、元のファイルを復元して、2 で終了します。
- 成功した場合:人間らしく書き換えたファイルと
.original.mdのバックアップのパスを報告し、0 で終了します。 - 結果をユーザーに返します。
人間らしく書き換えるルール
削除する表現(典型的な AI らしさ)
- おべっかのような書き出し:「良い質問ですね!」「もちろんです!」「承知しました!」「喜んでお手伝いします」「なんと興味深い……」
- ありがちな語彙:
delve、tapestry、testament(称賛の意味)、navigate/embark/journey(比喩的な意味)、realm、landscape(比喩的な意味)、pivotal、paramount、seamless、holistic、leverage(埋め草の動詞)、robust(埋め草)、comprehensive(「完全な」で十分な場合)、cutting-edge、state-of-the-art(埋め草)、interplay、intricate、vibrant、underscore(s)/d/ing(比喩的な意味)、crucial、vital(役割・重要性・部分を指す場合)、ever-evolving、ever-changing、in today's (digital) world/age、dynamic landscape。 - 前置きのような書き出し:「注意すべきなのは」「言及する価値があるのは」「一般的に言えば」「本質的には」「根本的には」「留意すべきなのは」「付け加えておきたいのは」。
- 権威を装う決まり文句(文頭):「本質的には、」「実際には、」「根本的には、」「本当に重要なのは」「要点は」「X の核心にあるのは」。
- 話の予告:「詳しく見ていきましょう」「順を追って説明しましょう」「知っておくべきことは次のとおりです」「さっそく始めましょう」「この記事では……」「覚悟してください」。
- つなぎ言葉の癖(文頭):「さらに、」「そのうえ、」「加えて、」「結論として、」「要約すると、」。
- 形式的な両論併記:あらゆる主張に「しかし」「一方で」を付け加えること。
- ダッシュの多用:1 つの段落で em ダッシュを 3 回以上使うこと。
- 埋め草の表現(
--mode fullのみ):「in order to」→「to」、「due to the fact that」→「because」、「prior to」→「before」、「with regard to」→「about」、「a wide variety of」→「many」、「at this point in time」→「now」、「the fact that」→「that」など。 - 否定表現を 3 つ並べる言い回し(
--mode fullのみ):「推測なし、無駄なし、驚きなし。」のような、否定を 3 つ並べて強調する表現。
簡潔にする
- 3 つ並べる表現:「X、Y、Z」のように、2 つで十分なものは 2 つに絞り、最も弱い要素を削る。
- 箇条書きの羅列:同じ内容を述べる箇条書きが 3 つある場合は、1 文にまとめる。
- 5 段落構成のような文章:段落の長さに変化をつけ、同じ長さの段落を 4 つ続けない。
そのまま保持する(変更禁止)
- フェンス付きコードブロック(
...)— 1 バイトも変更しない - インデント付きコードブロック(4 スペース)
- インラインコード(
...) - URL と Markdown リンク
- ファイルパス(
./src/、/etc/、C:\Users\...) - コマンド(
npm install、git rebase、docker run) - 技術用語、固有名詞、API 名
- 日付、バージョン番号、数値
- 環境変数(
$HOME、${NODE_ENV})
構造を保持する
- すべての Markdown 見出し(テキストはそのまま)
- 箇条書きの階層と入れ子
- 番号付きリスト
- 表(セル内の文章は簡潔にしても、構造は保持)
- YAML フロントマター
最重要ルール
``` ... ``` の中はすべて読み取り専用です。コメント、空白、行の順序を一切変更しないでください。インラインのバッククォート内も同様です。コードは土台です。文章の自然さを整えるのは、コード領域の外にある文章だけです。
パターン(変更前 → 変更後)
| # | 変更前 | 変更後(決定的、--mode balanced) |
|---|---|---|
| 1 | 変更をプッシュする前にテストを実行することが、総合的なベストプラクティスである点に留意することが重要です。さらに、これによりビルドの失敗を防げる点にも触れておく価値があります。 | 変更をプッシュする前にテストを実行することは、幅広く推奨されるベストプラクティスです。これによりビルドの失敗を防げます。 |
| 2 | このアプリケーションは、複数の独立したコンポーネントで構成されるマイクロサービスアーキテクチャを活用しています。 | このアプリケーションは、複数の独立したコンポーネントで構成されるマイクロサービスアーキテクチャを使用しています。 |
| 3 | キャッシュの本質は、メモリと引き換えにレイテンシを削減することです。 | キャッシュは、メモリと引き換えにレイテンシを削減します。 |
| 4 | それでは始めましょう。最初の手順はこちらです。 | 最初の手順はこちらです。 |
| 5 | キャッシュとレイテンシが複雑に絡み合っていることは重要です。 | キャッシュとレイテンシの詳細な関係は重要です。 |
| 6 | 今日のデジタル社会では、私たちは迅速にリリースしています。 | 今日、私たちは迅速にリリースしています。 |
--mode full では、さらに次のようになります:
| # | 変更前 | 変更後 |
|---|---|---|
| 7 | 修正を検証するためにテストを実行しました。 | 修正を検証するためにテストを実行しました。 |
| 8 | ディスクがいっぱいだったという事実により、ビルドに失敗しました。 | ディスクがいっぱいだったため、ビルドに失敗しました。 |
| 9 | 当て推量なし、冗長さなし、予想外の事態なし。 | (削除) |
参考資料
blader/unslop— 30以上のAIらしい表現を挙げたClaude-Codeスキル一覧。最も顕著なシグナルを取り入れました。- Wikipedia:Signs of AI writing — 語彙の相互参照に使用した公開分類。
- 比較の全文とギャップ分析:
docs/research/IMPLEMENTATION_TRACE.md。
境界
.md、.txt、.markdown、.rst、または拡張子のない自然言語ファイルのみを処理します。.py、.js、.ts、.json、.yaml、.yml、.toml、.env、.lock、.css、.html、.xml、.sql、.shは変更しません。- 文章とコードが混在するファイルでは、文章のみを読みやすくし、フェンス付きコードは変更しません。
- ファイルが文章かコードか判断できない場合は、変更しません。
- 上書き前にバックアップ
FILE.original.mdを作成します。すでに*.original.mdという名前のファイルは読みやすくしません。 - 機密性の高いパス(
.env*、*.pem、*.key、~/.ssh/、~/.aws/などに一致するもの)は、読み取りや API 呼び出しを行う前に拒否します。 - 500 KB を超えるファイルは拒否します。