diff --git a/packages/@d-zero/page-cluster/README.md b/packages/@d-zero/page-cluster/README.md
index b3db0439..0eeee5cb 100644
--- a/packages/@d-zero/page-cluster/README.md
+++ b/packages/@d-zero/page-cluster/README.md
@@ -1,70 +1,109 @@
# `@d-zero/page-cluster`
-大量クローリングした HTML の重複・類似ページ検出のためのパッケージ。`tokenize()` は `
` 配下のHTMLを、テキストを除去した構造トークンに変換する。用途・設計判断のWHYは `src/tokenize.ts` の JSDoc を参照。
+大量クロール HTML の重複・類似ページを構造トークンで検出するパッケージ。CLI が主、ライブラリ関数群がオマケ。
-## Installation
+## What this does
+
+`page-cluster` は HTML ページ集合を受け取って、**同一テンプレートと判定できるページ**に同じキーを振る。テキストは無視して DOM 構造だけを見るので、記事本文が違うが同じテンプレートを使うページ群は 1 つのクラスタにまとまる。単一サイトで数万〜十数万ページ規模のクロール成果物を、テンプレート単位に畳んで概観したいときに使う。
+
+## Install
```sh
yarn add @d-zero/page-cluster
```
-## Usage
+インストールすると `page-cluster` コマンドが `node_modules/.bin/` 配下に入る。
+
+## Quickstart (CLI)
-```ts
-import { tokenize } from '@d-zero/page-cluster';
+**入力**: JSONL 1 行 1 ページ。フィールドは以下。`html` 以外はすべて任意(`paths` / `stylesheetHrefs` がないと粗い分類になる)。
-const { tokens, bodyClassList } = tokenize(
- '',
-);
-// tokens: ["body>.card>ul>li", "body>.card>ul>li"]
-// bodyClassList: ["law-page"]
+```json
+{
+ "id": "任意の識別子",
+ "html": "...",
+ "paths": ["news", "1"],
+ "stylesheetHrefs": ["/a.css"],
+ "host": "example.com"
+}
```
-### オプション
+**出力**: JSONL 1 行 1 ページ、入力順。
-```ts
-tokenize(html, {
- filterNoiseClasses: true, // 既定値。ハッシュ的自動生成class名を除外する
- includeComments: false, // 既定値。コメントノードをトークン化しない
-});
+```json
+{ "id": "任意の識別子", "clusterKey": "..." }
```
-### クラスタリング
+### クローラ出力(JSON 配列)を JSONL に変換して食わせる
-クロールしたページ群から最終的なクラスタキーを得るには `resolvePageClusterKeys()` を使う。ブロッキング(URLパス/スタイルシートによる粗い絞り込み)と構造クラスタリング(ブロック内でのcomplete-linkage階層的クラスタリング)を内部で連結し、ブロックを跨いで一意なキーを返す。既定で各ページのランドマーク要素(``/`