SKILL.md

.claude/skills/diff-learning/SKILL.md(68 行)

SKILL.md
---
name: diff-learning
description: >-
  ブログ記事のAI初稿と人間の最終版を比較して「初稿生存率」を計測し、削られた・書き換えられた箇所から
  執筆規約への追記ルールを提案する差分学習スキル。「差分学習して」「初稿生存率を出して」
  「初稿と最終版を比べて」「writerに学習させて」「なんで毎回同じ直しをしてるの?」等と言われたとき、
  運営者が記事本文に自分で手を入れたと分かったとき、リライトループ(article-review)が完了した直後に、
  明示依頼が無くても提案して使う。記事本体は書き換えない。規約ファイルへの追記は必ず運営者の承認後のみ。
---

# diff-learning(差分学習ループ・初稿生存率KPI)

**考え方**: チャットでの口頭指摘は次のセッションに引き継がれない。**ルールはファイルに書いて初めて次回の初稿に効く**。
KPI は**初稿生存率**(初稿の何%が最終版に残ったか)。生存率が上がる=手直しが減る=writer が成長した、を数値で追う。
⚠️ 生存率は品質そのものではない(低い=悪ではなく、学習材料が多いだけ)。100%が目標ではなく「同じ直しを二度させない」ことが目標。

フォルダ名は `config.yaml` の `paths.*`、追記先は `site.writing_guide` を使う。

## STEP 1. 初稿と最終版を特定する

最終版=現在の記事ファイル。初稿は次の優先順で探す:

1. 運営者が指定したパス
2. `{paths.reviews}/drafts/{slug}_initial_*.md`(初稿スナップショット・下記運用)
3. Git 履歴の初版。⚠️ レビュー反映後にまとめてコミットしている場合、Git の初版は writer の初稿ではない。レビュー記録のほうが先にあるなら初稿とは呼べない→運営者に確認する
4. どれも無ければ**計測せず中止**し、「次回から初稿スナップショットを残せば計測できる」と案内する

**初稿スナップショット運用**: `blog-writer` が新規記事(または大幅リライト)の初稿を書き上げた時点で、レビュー反映を始める前に `{paths.reviews}/drafts/{slug}_initial_{YYYYMMDD}.md` へコピーを保存する(`drafts/` サブフォルダはレビューログの集計対象外)。

## STEP 2. 生存率を機械計測する

```bash
python -X utf8 scripts/survival_rate.py <初稿パス> <最終版パス>
```

文単位(。!?区切り・10字未満は除外)で初稿の各文を最終版と照合し、文字数加重で
**生存(類似度≥0.8)/改変(0.5〜0.8)/脱落(<0.5)**に分類して率と実例リストを出す。`--json` で機械可読出力。

## STEP 3. 差分を分析してルール候補を作る

スクリプトが出す「脱落文」「改変ペア(初稿→最終)」を読み、**なぜ直されたか**を分類する:

| 分類 | 例 | ルール化 |
|---|---|---|
| A. AIのクセ表現の削除 | 情報量ゼロのつなぎ文・章末の常套句・装飾副詞 | ◎ 最優先 |
| B. 冗長・水増しの削除 | 同じ主張の言い換え反復・前置きの長さ | ◎ |
| C. 事実・数値の修正 | スペックや価格の誤り | ✕ ルール化しない(裏取りの問題として `blog-researcher` 側で扱う) |
| D. トーン・語彙の置換 | 「〜しましょう」→「〜します」等の好み | ◎ 「AIが書きがち→こう書く」の2列で |
| E. 構成の組み替え | 章順・結論位置 | △ 繰り返し出たときだけ |

ルールは**再利用できる形**に一般化する(その記事限りの固有名詞ルールにしない)。
過去ログ(STEP 5)を読み、**同じ直しが2回以上出ていたら「繰り返し」と明記**して優先度を上げる。

## STEP 4. 提案 → 運営者の承認 → 規約へ追記

計測結果とルール候補(3〜7個が目安。多すぎると効かない)を提示し、**承認されたものだけ**を `site.writing_guide` のファイルに追記する(「AIのクセ禁止リスト」に当たる節が無ければ新設を提案する)。

追記形式は「❌AIが書きがち → ⭕こう書く(1行の理由)」。既存ルールと重複していないか、追記前に検索して確認する。

## STEP 5. KPIログに追記する

`data/diff_learning_log.md`(無ければ作成)に1計測=1行で追記する:

```
| YYYY-MM-DD | {slug} | 生存62% / 改変21% / 脱落17% | 追記ルール2件(A系1・D系1) | 備考 |
```

ログの生存率が上がっているかを毎回1行で報告する(上がっていなければ「追記したルールが初稿に効いていない」=writer が規約を読めていないか、ルールが曖昧=書き直しを検討)。

MIT ライセンスで配布しています。