# Yorisoi

> 日本語の文書を、公的ガイドライン準拠の「やさしい日本語」に書き換えるスキル。 「やさしい日本語にして」「やさしい日本語に翻訳して」「外国人にもわかるように書いて」 「平易な日本語にして」「N4レベルの日本語にして」「easy Japanese にして」などで発動する。 「やさしい日本語かチェックして」「判定だけして」「スコアを出して」なら書き換えずに判定だけ行う。 対象はお知らせ・案内・手続き説明・マニュアルなど、在留外国人や日本語学習者にも 読んでほしい説明文。根拠は「在留支援のためのやさしい日本語ガイドライン」 （出入国在留管理庁・文化庁、2020）。二重否定・受身・推測表現・敬語・表記を textlint と prh 辞書で機械検出し、語彙レベル（既定 N4 相当・推定値）を同梱リストで機械判定する。 明晰化（meiseki）とは対象読者が違う。日本語ネイティブ向けの推敲は meiseki を使う。

- Skill: `bamboo-nova/yorisoi` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add bamboo-nova/yorisoi`
- Raw SKILL.md: https://api.skillmd.com/api/skills/bamboo-nova/yorisoi/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: bamboo-nova (https://skillmd.com/u/bamboo-nova)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/bamboo-nova/yorisoi

---


# yorisoi — やさしい日本語化スキル

## 1. 狙いの宣言

「やさしい日本語」は、日本語に不慣れな読者（在留外国人・日本語学習者）にも伝わるように
調整した日本語である。本スキルは、公的な外部規範であるガイドライン
（出入国在留管理庁・文化庁「在留支援のためのやさしい日本語ガイドライン」2020年8月）に準拠して書き換える。

meiseki（明晰化）との違いは対象読者にある。meiseki は日本語ネイティブの読解負荷を下げる。
yorisoi は目標語彙レベル（既定 N4 相当）の読者が理解できる語彙と構文に落とす。
どちらも「検出と採点は決定論層、書き換えは LLM 層」の二層構成をとる。

## 2. 動作モードと出力方針

- **変換モード（既定）**：やさしい日本語へ書き換え、**本文のみ**を返す。分析・講評は付けない。
- **判定モード**：「チェックだけ」「判定だけ」「スコアだけ」と指定されたら、書き換えずに
  違反と語彙レベル超過を行位置つきで報告し、YLS（§7）を示す。
- 目標レベルは既定 N4。「N3 で」「N5 レベルで」のように指定されたら変える。
- 「どこを直したか教えて」と明示されたときだけ、本文に続けて変更点を添える。

## 3. 対象 / 対象外

- **対象**：お知らせ・案内・行政手続きの説明・防災情報・マニュアル・社内周知など、
  日本語に不慣れな読者にも読んでほしい説明文。
- **対象外**：コード本体・法令や契約の条文そのもの・医療の厳密な記述・創作。
  法的効力や厳密さが必要な文書は、やさしい日本語版を「参考訳」として併記し、原文を残す。
- **混在文書**：本文だけを書き換え、コードブロック・引用・URL・連絡先は原文のまま残す。
- ふりがな・分かち書きの付与はスコープ外（v0.6.0 時点）。

## 4. ワークフロー（この順序で行う）

### Step 1. 全文を読み、意味と読者の行動を把握する
この文書を読んだ人が何を知り、何をすべきかを確定させる。
**やさしくした結果、条件・例外・期限・連絡先が落ちたら失敗である。**

### Step 2. textlint を実行する（決定論層）
原稿を一時ファイル（拡張子 `.md`）に書き出し、`npx` 経由で textlint を実行して JSON を読む。

```bash
npx --min-release-age=7 --yes --package textlint@14.8.4 --package textlint-rule-preset-ja-technical-writing@10.0.2 --package textlint-rule-prh@6.1.0 textlint -c "<SKILL_DIR>/references/textlint-yorisoi.config.json" -f json "<INPUT_MD>"
```

- `<SKILL_DIR>` はこの `SKILL.md` があるディレクトリの実パスに置き換える。
- 指摘があると終了コード 1 になるが、stdout の JSON を読んで処理を続ける。

### Step 3. 語彙レベルを判定する（決定論層）
同梱スクリプトで目標レベル超過の語を洗い出す。

```bash
node "<SKILL_DIR>/scripts/vocab-check.js" --level N4 --format json "<INPUT_MD>"
```

- `--level` は目標レベル（N5〜N1）。初回実行は形態素解析器の取得で数十秒かかる（以後キャッシュ）。
- 出力の `over`（超過）は書き換え候補、`unknown`（リスト外）は参考。**判定は推定値**であり、
  最終判断は文脈で行う（`references/vocab/README.md` 参照）。

### Step 4. YLS(before) を算出する
§7 の式で before スコアを出す。判定モードならここで報告して終わる。

### Step 5. patterns-yorisoi.md の YA→YH に沿って書き換える
`references/patterns-yorisoi.md` を参照し、**優先度 YA→YH の順**で直す。

- YB（二重否定）は真偽を反転させずに畳む（meiseki の A と同じ基準）。
- prh の指摘（YC 受身・YD 推測・YE 敬語・YG 表記）は書き換えの起点。
  近似検出のため誤検知（可能形の「される」等）は無視してよい。
- 語彙超過の語は、言い換えるか「余震＜＝後から来る地震＞」形式で説明を付ける。
  **説明は原文と文脈から導けるものだけ。新しい情報を創作しない。**

### Step 6. 意味の検算（最重要のガード）
- 二重否定を畳んだ箇所は、論理の向きが原文と一致しているか確認する。
- 条件・例外・期限・数値・連絡先が原文とすべて一致しているか確認する。
- 「＜＝説明＞」の説明が原文の意味とずれていないか確認する。

### Step 7. textlint と vocab-check を再実行し、before→after を検算する
- **after < before（YLS）** になっていなければ直し残しがある。
- **二重否定は 0 件**、**語彙超過は 0 を目指す**（固有名詞・説明付きで残した重要語は超過に数えない）。

### Step 8. 本文だけ返す
§2 の方針どおり、変換モードでは書き換え後の本文のみを出力する。

## 5. ガードレール（やってはいけないこと）

- **意味・事実・数値・期限・連絡先を変えない。** やさしくするために情報を削らない。
- **新しい情報を足さない。** 「＜＝説明＞」も原文と文脈から導けるものだけ。
- 固有名詞（地名・組織名・人名・制度名）は変えない。読み方が難しい制度名は説明を付ける。
- 文末は「です・ます」で統一する。ぞんざいな常体には落とさない。
- 「〜かもしれません」は削らない（推測をぼかし表現から明確な形に直した結果である）。
- 法令・契約・医療の厳密文は書き換えの対象外。求められたら「参考訳」として位置づけを明示する。
- 元の文書がすでにやさしい場合は触らない。

## 6. 最終判断基準

> **目標レベルの語彙しか持たない読者が、一度読んで「何をすべきか」を正しく理解できるか。**

## 7. やさしさ負荷スコア（YLS）の定義

textlint と vocab-check の指摘をカテゴリ別に重みづけし、本文の文数で正規化する。**低いほどやさしい。**

```
YLS = Σ(カテゴリ件数 × 重み) ÷ 本文の文数 × 100
```

| カテゴリ | 検出 | 重み |
|---|---|---|
| YB 二重否定 | `no-double-negative-ja` + prh A1 | 3 |
| YF 語彙超過 | vocab-check の `over`（`unknown` は数えない） | 2 |
| YA 文長・読点 | `sentence-length`, `max-ten`, `no-doubled-conjunctive-particle-ga` | 2 |
| YF 漢字連続・冗長 | `max-kanji-continuous-len`, `ja-no-redundant-expression` | 2 |
| YC/YD/YE/YG | prh（A1 以外）, `no-mix-dearu-desumasu` | 1 |
| その他 | `no-doubled-joshi`, `no-doubled-conjunction` | 1 |

- prh A1（二重否定の補完）は YB に数え、YC〜YG と二重計上しない。
- **受け入れ基準：after < before を必須**、**二重否定 0 件**、**語彙超過 0 を目指す**。
- 参考値として vocab-check が出す jReadability 近似値（高いほど易しい）も併記してよい。
  近似値は判定に使わない。

## 8. 機械検出の分担（拾える / 拾えないもの）

- **textlint が拾う**：二重否定（分離型・丁寧形は prh A1）、一文長、読点過多、漢字連続、
  冗長表現、文末の混在、受身・推測・敬語・表記の典型形（prh YC〜YG。近似）。
- **vocab-check が拾う**：目標レベルを超える語（同梱の推定リスト。JEV があれば最優先）。
- **LLM が判断する**：受身の誤検知の仕分け、言い換えと「＜＝説明＞」の使い分け、
  外来語の定着度、重要情報の先出し（YH）、文の分割位置、ローマ字表記の回避。

この分担は meiseki と同じ設計思想（検出は決定論層・書き換えは LLM 層）である。

