@unlaxer/dde-toolkit 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/flows/quick.yaml CHANGED
@@ -5,7 +5,6 @@ trigger_keywords: ["DDE して", "DDE", "ドキュメントレビュー", "用
5
5
 
6
6
  defaults:
7
7
  exclude_dirs: ["dde", "dge", "node_modules", ".git", ".claude"]
8
- reader_level: beginner
9
8
  article_length: medium # short / medium / long / custom
10
9
 
11
10
  workflow:
@@ -14,24 +13,25 @@ workflow:
14
13
  display_name: "対象ドキュメント群を選択"
15
14
  mode: confirm
16
15
  note: "md 一覧(多い場合はフォルダ一覧)を出してユーザーが除外指定"
17
- - id: level
18
- display_name: "読者レベル設定"
16
+ - id: reader_context
17
+ display_name: "読者コンテキスト設定"
19
18
  mode: confirm
20
- note: "LLM がドキュメントから推定して提案、ユーザーが確認"
19
+ note: "誰が読むか(記事のトーンに使用。抽出フィルターには使わない)"
21
20
  - id: article_length
22
21
  display_name: "記事の分量設定"
23
22
  mode: confirm
24
23
  note: "short(〜200字)/ medium(〜500字)/ long(〜1000字)/ 文字数直指定"
25
24
  - id: extract
26
- display_name: "用語抽出(LLM"
25
+ display_name: "用語抽出(LLM)— 全レベル対象"
27
26
  actor: llm
28
- note: "対象ドキュメント群から一括抽出。既存 docs/glossary/ は除外"
27
+ note: "レベルで絞らず、誰かが分からない可能性がある用語を全て抽出"
29
28
  - id: confirm_terms
30
29
  display_name: "用語一覧を確認"
31
30
  mode: confirm
32
31
  - id: articleize
33
- display_name: "記事生成(LLM"
32
+ display_name: "記事生成(LLM)— 3セクション構成"
34
33
  actor: llm
34
+ note: "1用語1ファイル。expert / beginner / grandma の3セクションを1ファイルに"
35
35
  - id: save
36
36
  display_name: "単語帳保存"
37
37
  - id: link
@@ -49,27 +49,35 @@ must_rules:
49
49
 
50
50
  extract:
51
51
  actor: llm
52
- scope: document_group # 1ファイルではなく選択されたドキュメント群全体
53
- filter: "選択した読者レベルで分からない用語のみ(docs/glossary/ に既存記事があれば除外)"
52
+ scope: document_group
53
+ filter: "レベルで絞らない。誰かが分からない可能性がある用語を全て抽出(docs/glossary/ に既存記事があれば除外)"
54
54
  output: "用語一覧テーブル(用語 / 出現ドキュメント / 重要度)"
55
55
 
56
56
  articleize:
57
57
  actor: llm
58
58
  per: term
59
+ format: single_file_multi_level
59
60
  output_dir: docs/glossary/
60
61
  filename_rule: "<slug>.md(英語), <slug>.ja.md(日本語)"
62
+ sections:
63
+ - id: summary
64
+ display_name: "1行サマリー(冒頭 blockquote)"
65
+ - id: expert
66
+ display_name: "詳細(開発者向け)"
67
+ - id: beginner
68
+ display_name: "かんたん説明(初学者向け)"
69
+ - id: grandma
70
+ display_name: "ひとことで(技術ゼロ向け)"
61
71
  length:
62
- short: "〜200字。定義1文 + 1文"
63
- medium: "〜500字。定義 + 説明 + 例。デフォルト"
64
- long: "〜1000字。定義 + 詳細 + コード例 + 関連用語"
72
+ short: "〜200字。サマリー + 各セクション1-2文"
73
+ medium: "〜500字。サマリー + 各セクション3-5文。デフォルト"
74
+ long: "〜1000字。サマリー + 各セクション充実 + コード例 + 関連用語"
65
75
 
66
76
  output_dir: dde/sessions/
67
77
 
68
78
  post_actions:
69
79
  - id: more_docs
70
80
  display_name: "別のドキュメント群も処理する"
71
- - id: another_level
72
- display_name: "別の読者レベルで再実行する"
73
81
  - id: run_link
74
82
  display_name: "dde-link でリンクを付ける(まだの場合)"
75
83
  - id: diagrams
package/method.md CHANGED
@@ -4,73 +4,59 @@
4
4
 
5
5
  - **必要なもの**: LLM(Claude, GPT-4, Gemini 等)へのアクセス
6
6
  - **推奨**: Claude Code(skills/ で自動発動)
7
- - **入力**: レビュー対象のドキュメント(README, API 仕様, 設計書など)
8
- - **出力**: 用語集記事 + 単語帳(dictionary.yaml)+ クリッカブルリンク
7
+ - **入力**: レビュー対象のドキュメント群
8
+ - **出力**: 用語集記事(3セクション構成)+ 単語帳 + クリッカブルリンク
9
9
 
10
10
  ---
11
11
 
12
12
  ## 最低限これだけ読め(3分版)
13
13
 
14
- > **TL;DR** 以下を読めば DDE を始められる。
14
+ **DDE とは**: ドキュメントを読む人全員に対して用語を抜き出して、誰でも分かる記事を作り、リンクにする。
15
15
 
16
- **DDE とは**: 読者レベルを決めて、ドキュメントの用語を抜き出して、記事化する。それを単語帳にして、ドキュメントをクリッカブルにする。
17
-
18
- **4 ステップ**:
19
- 1. **Level** — 想定読者のレベルを決める(expert / beginner / grandma)
20
- 2. **Extract** — そのレベルで「分からない用語」をドキュメントから抽出する
21
- 3. **Articleize** — 用語ごとに glossary 記事を生成する
22
- 4. **Link** — dde-link で用語をクリッカブルにする
23
-
24
- **最初にやること**:
25
- 1. ドキュメントを用意する(README.md など)
26
- 2. 「DDE して」と Claude Code に言う
27
- 3. 読者レベルを確認または指定する
28
- 4. 生成された記事をレビューして承認する
16
+ **フロー**:
17
+ 1. **Select** — 対象ドキュメント群を選ぶ(除外フォルダを確認)
18
+ 2. **Context** — 誰が読むかを把握する(記事トーンの調整に使う)
19
+ 3. **Extract** — 全用語を一括抽出(レベルで絞らない)
20
+ 4. **Articleize** — 1用語1ファイル・3セクション記事を生成
21
+ 5. **Link** — dde-link でリンクを埋め込む
29
22
 
30
23
  ---
31
24
 
32
25
  ## 原理
33
26
 
34
- 普通のドキュメントレビューは「書いてあることの検証」。
35
- DDE は「読者には分からない用語の洗い出し」。
27
+ 同じドキュメントをエンジニアも業務担当者も読む。
28
+ 「このレベルの人には不要」を抽出段階で判断するより、
29
+ **記事の中に全レベルのセクションを書いてしまう**方がシンプルで漏れがない。
36
30
 
37
- 書いた側には自明な用語が、読者には不透明なまま残っている。
38
- この「前提の非対称」を、読者レベルを明示して LLM に検出させる。
31
+ ```
32
+ 抽出: レベルで絞らない(誰かが分からなければ抽出する)
33
+ 記事: 1ファイルに3セクション(誰が読んでも分かる)
34
+ リンク: 常に同じファイルを指す(レベル分岐なし)
35
+ ```
39
36
 
40
37
  ---
41
38
 
42
- ## DDE の 4 ステップ
39
+ ## 記事フォーマット(1用語1ファイル・3セクション)
43
40
 
44
- ```
45
- Step 1: Level — 想定読者を決める
46
- 「beginner」「expert」「grandma」のどれか。
47
- 曖昧なら beginner をデフォルトにする。
48
-
49
- Step 2: Extract — 用語を抽出する
50
- LLM がドキュメントを読んで、
51
- そのレベルの読者が分からない用語を列挙する。
52
- docs/glossary/ に既存記事があれば除外する。
53
-
54
- Step 3: Articleize — 記事を生成する
55
- 用語ごとに docs/glossary/<slug>.md を生成する。
56
- レベルに応じてトーンを変える。
57
-
58
- Step 4: Link — dde-link を実行する
59
- npx dde-link <file>
60
- 用語を [term](docs/glossary/xxx.md) に自動置換する。
61
- ```
41
+ ```markdown
42
+ # JWT
62
43
 
63
- ---
44
+ > 認証に使うトークン形式(1行サマリー)
64
45
 
65
- ## 3 段階の読者レベル
46
+ ## 詳細(開発者向け)
47
+ JSON Web Token(RFC 7519)は...
66
48
 
67
- ```
68
- expert — 同分野の開発者(定義 + 技術詳細 + コード例)
69
- beginner — 初学者(やさしい説明 + 具体例)
70
- grandma — 技術ゼロ(身近な例えだけ)
49
+ ## かんたん説明(初学者向け)
50
+ JWTはログイン状態を安全に...
51
+
52
+ ## ひとことで(技術ゼロ向け)
53
+ 銀行のキャッシュカードみたいなもの。
71
54
  ```
72
55
 
73
- 同じ用語でも、レベルによって抽出される用語も記事のトーンも変わる。
56
+ 読者コンテキストは**セクションの厚み**を調整するためだけに使う:
57
+ - エンジニアが主な読者 → 「詳細」を充実させる
58
+ - 業務担当者が主な読者 → 「かんたん説明」「ひとことで」を充実させる
59
+ - 混在 → バランスよく
74
60
 
75
61
  ---
76
62
 
@@ -80,6 +66,7 @@ grandma — 技術ゼロ(身近な例えだけ)
80
66
  1. docs/glossary/ の .md ファイル名から用語を自動推定
81
67
  2. dictionary.yaml があれば上書き(日本語用語・別名対応)
82
68
  3. 最長一致、段落ごとに 1 回 → [用語](docs/glossary/xxx.md) に置換
69
+ (リンク先は常に単一ファイル。レベル指定なし)
83
70
  スキップ: コードブロック / インラインコード / 見出し / 既存リンク
84
71
  ```
85
72
 
@@ -89,5 +76,4 @@ grandma — 技術ゼロ(身近な例えだけ)
89
76
 
90
77
  - 241 の用語集記事(120 EN + 121 JA)
91
78
  - README に 334 のクリッカブルリンク
92
- - 11 の mermaid フロー図
93
79
  - 3 段階の読者レベル対応
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unlaxer/dde-toolkit",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Document Deficit Extraction — find what's not understood in your docs",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -16,22 +16,24 @@
16
16
  テーマなしで「DDE」「DDE って何」と呼ばれたとき:
17
17
 
18
18
  ```
19
- DDE toolkit v0.1.0 — Document Deficit Extraction
19
+ DDE toolkit v0.1.2 — Document Deficit Extraction
20
20
 
21
- 読者レベルを決めて用語を抽出して記事化単語帳 → クリッカブルなドキュメント
21
+ 読者コンテキストを把握して用語を全抽出して3レベル記事を生成 → クリッカブルなドキュメント
22
22
 
23
23
  📖 フロー:
24
- 1. ドキュメント群を選択(対象ファイル・除外フォルダを確認)
25
- 2. 読者レベルを設定(LLM が推定して提案)
24
+ 1. ドキュメント群を選択(除外フォルダを確認)
25
+ 2. 読者コンテキストを設定(記事のトーンに使用)
26
26
  3. 記事の分量を設定(short / medium / long)
27
- 4. 用語を LLM が一括抽出 → 一覧確認
28
- 5. 用語ごとに glossary 記事を生成 → docs/glossary/
27
+ 4. 全用語を一括抽出(レベルで絞らない)→ 一覧確認
28
+ 5. 1用語1ファイル・3セクション記事を生成 → docs/glossary/
29
29
  6. dde-link が対象ドキュメント群にリンクを埋め込む
30
30
 
31
- 👥 3 段階の読者レベル:
32
- expert — 同分野の開発者
33
- beginner — 初学者(デフォルト)
34
- grandma — 技術ゼロ
31
+ 📄 記事フォーマット(1ファイル・3セクション):
32
+ # JWT
33
+ > 認証に使うトークン形式
34
+ ## 詳細(開発者向け)...
35
+ ## かんたん説明(初学者向け)...
36
+ ## ひとことで(技術ゼロ向け)...
35
37
 
36
38
  🔗 dde-link(LLM 不要):
37
39
  npx dde-link README.md # 自動リンク実行
@@ -47,7 +49,7 @@ DDE toolkit v0.1.0 — Document Deficit Extraction
47
49
 
48
50
  ### Step 0: flow 読み込み
49
51
  `dde/flows/` の YAML、なければ `kit/flows/` の YAML を読む。
50
- `defaults.exclude_dirs` を確認する(デフォルト: `dde/`, `dge/`, `node_modules/`, `.git/`, `.claude/`)。
52
+ `defaults.exclude_dirs` を確認(デフォルト: `dde/`, `dge/`, `node_modules/`, `.git/`, `.claude/`)。
51
53
 
52
54
  ### Step 1: 対象ドキュメント群の選択(MUST: ユーザーに確認)
53
55
 
@@ -57,12 +59,11 @@ DDE toolkit v0.1.0 — Document Deficit Extraction
57
59
 
58
60
  ```
59
61
  対象ドキュメントを選択してください。
62
+ (dde/, dge/, node_modules/ は除外済み)
60
63
 
61
- フォルダ一覧(dde/, dge/, node_modules/ は除外済み):
62
64
  ✅ docs/ (12 ファイル)
63
65
  ✅ README.md
64
66
  ✅ CONTRIBUTING.md
65
- ⬜ docs/internal/ (除外候補)
66
67
 
67
68
  除外したいファイル・フォルダがあれば指定してください。
68
69
  なければそのまま進みます。
@@ -70,30 +71,30 @@ DDE toolkit v0.1.0 — Document Deficit Extraction
70
71
 
71
72
  確定したファイルセットが「抽出元 = リンク適用先」になる。
72
73
 
73
- ### Step 2: 読者レベルの設定(MUST: LLM が推定してから確認)
74
+ ### Step 2: 読者コンテキストの設定(MUST: ユーザーに確認)
74
75
 
75
- 対象ドキュメントの語彙・トーンを見て LLM がレベルを推定し、ユーザーに提案する。
76
+ **ここで聞くのは「誰が読むか」であり、抽出フィルターには使わない。**
77
+ 記事の各セクションのトーン・深さを調整するためだけに使う。
76
78
 
77
79
  ```
78
- ドキュメントを読みました。推定: beginner
80
+ このドキュメントを読む人を教えてください(複数可):
79
81
 
80
- 根拠: 専門用語が多いが説明がない。初学者には伝わらない箇所が目立つ。
82
+ [ ] プログラマー・エンジニア
83
+ [ ] 業務ドメインの担当者(非エンジニア)
84
+ [ ] 初学者・新人
85
+ [ ] その他: ___
81
86
 
82
- 読者レベルを確認してください:
83
- 1. expert — 同分野の開発者
84
- 2. beginner — 初学者 ← 推定
85
- 3. grandma — 技術ゼロ
86
-
87
- このまま beginner で進めますか?
87
+ → 各読者が「詳細」「かんたん説明」「ひとことで」のどのセクションを
88
+ 主に使うかを想定して記事の厚みを調整します。
88
89
  ```
89
90
 
90
91
  ### Step 3: 記事の分量設定
91
92
 
92
93
  ```
93
94
  記事の分量を選んでください:
94
- 1. short — 〜200字(定義1文 + 例1文)
95
- 2. medium — 〜500字(定義 + 説明 + 例)← デフォルト
96
- 3. long — 〜1000字(定義 + 詳細 + コード例 + 関連用語)
95
+ 1. short — 〜200字(各セクション1-2文)
96
+ 2. medium — 〜500字(各セクション3-5文)← デフォルト
97
+ 3. long — 〜1000字(各セクション充実 + コード例 + 関連用語)
97
98
  4. カスタム — 文字数を直接指定
98
99
 
99
100
  このまま medium で進めますか?
@@ -101,18 +102,20 @@ DDE toolkit v0.1.0 — Document Deficit Extraction
101
102
 
102
103
  ### Step 4: 用語抽出(LLM)
103
104
 
104
- 対象ドキュメント群を読んで、選択した読者レベルで「分からない可能性がある用語」を一括抽出する。
105
+ **レベルで絞らず、誰かが分からない可能性がある用語を全て抽出する。**
106
+
107
+ 理由: 同じドキュメントをエンジニアも業務担当者も読む。「このレベルには不要」の判断を抽出段階でするより、記事に全レベルのセクションを書いてしまう方がシンプル。
105
108
 
106
- **ルール:**
107
- - `docs/glossary/` に既存記事があるものは除外(スラッグが一致するもの)
108
- - 固有名詞(プロダクト名・企業名など)は除外
109
+ **抽出ルール:**
110
+ - `docs/glossary/` に既存記事があるものは除外
111
+ - 固有名詞(プロダクト名・企業名)は除外
109
112
  - コードブロック内の識別子は除外
110
113
  - 重要度: その用語なしでは内容が理解できない → 🔴 High / 補足があると助かる → 🟡 Medium
111
114
 
112
115
  **出力(MUST: ユーザーに確認してから記事生成へ進む):**
113
116
 
114
117
  ```
115
- ## 抽出した用語一覧(beginner 視点)
118
+ ## 抽出した用語一覧
116
119
 
117
120
  | # | 用語 | 出現ドキュメント | 既存記事 | 重要度 |
118
121
  |---|------|----------------|---------|--------|
@@ -124,62 +127,41 @@ N 件抽出しました。記事を生成しますか?
124
127
  除外したい用語があれば番号で指定してください(例: 3,5)。
125
128
  ```
126
129
 
127
- ### Step 5: 記事生成(LLM
130
+ ### Step 5: 記事生成(LLM)— 1用語1ファイル・3セクション
128
131
 
129
132
  確認後、用語ごとに `docs/glossary/<slug>.md` を生成して保存する。
130
133
 
131
134
  **スラッグ規則:** 小文字、スペース → ハイフン(`json-web-token.md`)
132
135
 
133
- **テンプレート(expert):**
136
+ **テンプレート:**
134
137
  ```markdown
135
138
  # <Term>
136
139
 
137
- ## 定義
138
- <1-2 文で核心を定義>
139
-
140
- ## 技術詳細
141
- <実装・仕様の詳細>
142
-
143
- ## コード例
144
- \`\`\`<lang>
145
- <example>
146
- \`\`\`
140
+ > <1行サマリー — 誰が読んでも分かる核心を1文で>
147
141
 
148
- ## 関連用語
149
- - [<term>](../glossary/<slug>.md)
150
- ```
142
+ ## 詳細(開発者向け)
143
+ <技術的な定義・仕様・実装の詳細。コード例があれば添付。>
151
144
 
152
- **テンプレート(beginner):**
153
- ```markdown
154
- # <Term>
145
+ ## かんたん説明(初学者向け)
146
+ <例えを交えた3-5文。前提知識を仮定しない。>
155
147
 
156
- ## ひとことで言うと
157
- <1 文でやさしく>
158
-
159
- ## もう少し詳しく
160
- <例えを使って 3-5 文>
161
-
162
- ## 使われる場面
163
- <具体的なシナリオ>
148
+ ## ひとことで(技術ゼロ向け)
149
+ <日常の身近な例え1-2文。>
164
150
 
165
151
  ## 関連用語
166
- - [<term>](../glossary/<slug>.md)
152
+ - [<関連用語>](<相対パス>)
167
153
  ```
168
154
 
169
- **テンプレート(grandma):**
170
- ```markdown
171
- # <Term>
172
-
173
- ## 身近な例えで言うと
174
- <日常の例え 1-3 文>
175
- ```
155
+ **読者コンテキストの使い方:**
156
+ - エンジニアが主な読者 → 「詳細」セクションを厚く
157
+ - 業務担当者が主な読者 → 「かんたん説明」「ひとことで」を厚く
158
+ - 混在 → バランスよく(デフォルト)
176
159
 
177
160
  `dde-tool save docs/glossary/<slug>.md` で保存。
178
161
 
179
162
  ### Step 6: 単語帳(dictionary.yaml)更新
180
163
 
181
- 日本語ドキュメントが対象の場合、または日本語用語・別名を追加したい場合、
182
- `docs/glossary/dictionary.yaml` を生成・更新する。
164
+ 日本語ドキュメントが対象の場合、`docs/glossary/dictionary.yaml` を生成・更新する。
183
165
 
184
166
  ```yaml
185
167
  # docs/glossary/dictionary.yaml
@@ -192,32 +174,29 @@ oauth.md:
192
174
  ja: ["OAuth"]
193
175
  ```
194
176
 
195
- ### Step 7: dde-link の実行(CLI)
177
+ ### Step 7: dde-link 実行(CLI)
196
178
 
197
- **適用先は Step 1 で選択したドキュメント群と同じ。** ユーザーに再確認は不要。
179
+ **適用先は Step 1 で選択したドキュメント群と同じ。**
180
+ リンクは常に `<slug>.md`(レベル指定なし)を指す。
198
181
 
199
182
  ```bash
200
- # 選択したファイルに対して順番に実行
201
- npx dde-link README.md
202
- npx dde-link docs/auth.md
203
- # ...
183
+ npx dde-link README.md --dry-run # 確認
184
+ npx dde-link README.md # 実行
204
185
  ```
205
186
 
206
- 初回は `--dry-run` で差分を表示してから `--fix` を推奨する。
207
-
208
187
  ### Step 8: 次アクション提示(MUST: 省略しない)
209
188
 
210
189
  ```
211
190
  1. 別のドキュメント群も処理する
212
- 2. 別の読者レベルで再実行する
213
- 3. dde-link を実行する(まだの場合)
214
- 4. 図が必要な箇所を検出する
215
- 5. 後で
191
+ 2. dde-link を実行する(まだの場合)
192
+ 3. 図が必要な箇所を検出する
193
+ 4. 後で
216
194
  ```
217
195
 
218
196
  ---
219
197
 
220
198
  ## 注意
199
+ - 抽出は「レベルで絞らない」— 記事の中で全レベルをカバーする
221
200
  - `docs/glossary/` に既存記事がある場合は上書きしない(差分のみ提案)
222
201
  - dde-link の `--fix` は上書き。事前に `--dry-run` を推奨
223
202
  - 将来フェーズ: HTML からの用語抽出 + ホバー表示(v0.2.0 予定)
package/version.txt CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.2