@unlaxer/dde-toolkit 0.1.4 → 0.1.6

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,8 @@ trigger_keywords: ["DDE して", "DDE", "ドキュメントレビュー", "用
5
5
 
6
6
  defaults:
7
7
  exclude_dirs: ["dde", "dge", "node_modules", ".git", ".claude"]
8
- article_intent: educational # educational / reference / deep-dive
8
+ article_intent: match_existing # match_existing / educational / reference / deep-dive
9
+ # match_existing: 既存 glossary 記事が 1 件以上あればそのスタイルを踏襲。なければ educational にフォールバック
9
10
 
10
11
  workflow:
11
12
  steps:
@@ -15,6 +16,10 @@ workflow:
15
16
  - id: scan_glossary
16
17
  display_name: "既存 glossary をスキャン"
17
18
  note: "docs/glossary/ の既存記事一覧を収集。相互リンク候補 + 抽出除外リストに使う"
19
+ - id: detect_template
20
+ display_name: "記事テンプレートを確定"
21
+ mode: confirm
22
+ note: ".dde-template.md があれば再利用。なければ既存記事の H2 を多数決で抽出 → ユーザー確認 → 保存"
18
23
  - id: select_docs
19
24
  display_name: "対象ドキュメント群を選択"
20
25
  mode: confirm
@@ -29,7 +34,7 @@ workflow:
29
34
  - id: article_intent
30
35
  display_name: "記事のインテント設定"
31
36
  mode: confirm
32
- note: "educational / reference / deep-dive、または自由記述"
37
+ note: "match_existing(推奨)/ educational / reference / deep-dive、または自由記述"
33
38
  - id: extract
34
39
  display_name: "用語抽出(LLM)— 全レベル対象"
35
40
  actor: llm
@@ -74,6 +79,7 @@ articleize:
74
79
  ja: "<slug>.ja.md"
75
80
  both: "両ファイル生成。dictionary.yaml に en/ja キーで用語マッピングを追加"
76
81
  intents:
82
+ match_existing: "既存 glossary 記事を 1〜3 件サンプリングしてスタイル(構成・文体・分量・例え話の有無)を推定し、新規記事に踏襲。既存記事がなければ educational にフォールバック"
77
83
  educational: "読んだ人が背景・動機・仕組みごと理解できる記事。例え話・図・なぜ?を含む。分量は目的に従って自然に決める"
78
84
  reference: "定義・使い方・例を簡潔に。調べたい人向けのクイックリファレンス"
79
85
  deep-dive: "実装詳細・コード例・エッジケース・トレードオフまで網羅"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unlaxer/dde-toolkit",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "description": "Document Deficit Extraction — find what's not understood in your docs",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -67,10 +67,11 @@ DDE toolkit v0.1.3 — Document Deficit Extraction
67
67
  新規セッションの場合は skip。
68
68
 
69
69
  **0-C: 既存 glossary スキャン(MUST)**
70
- `docs/glossary/` の `.md` ファイル一覧を収集する。これを 2 つの目的に使う:
70
+ `docs/glossary/` の `.md` ファイル一覧を収集する。これを 3 つの目的に使う:
71
71
 
72
72
  1. **抽出除外リスト** — 既存記事がある用語は抽出対象から除外(Step 6)
73
73
  2. **相互リンク候補リスト** — 「さらに学ぶために」で使えるリンク一覧(Step 7)
74
+ 3. **テンプレート抽出** — 既存記事の H2 構造を分析してフォーマットを確定(後述)
74
75
 
75
76
  ```
76
77
  既存 glossary: 12 記事
@@ -81,6 +82,72 @@ DDE toolkit v0.1.3 — Document Deficit Extraction
81
82
 
82
83
  ファイルが存在しない場合は空リストで OK(新規プロジェクト)。
83
84
 
85
+ **0-D: 記事テンプレートの確定**
86
+
87
+ まず `docs/glossary/.dde-template.md` が存在するか確認する。
88
+
89
+ - **存在する場合**: そのテンプレートを使用(再分析不要。ユーザーに「既存テンプレートを使用します」と通知)
90
+ - **存在しない場合**: 以下の手順でテンプレートを抽出する
91
+
92
+ **テンプレート自動抽出手順:**
93
+ 1. 既存 `.md` ファイルから **EN 用と JA 用それぞれ** 3〜5 件をサンプリング(辞書順)
94
+ 2. 各ファイルの H2 見出し(`## ...`)を列挙
95
+ 3. **多数決**で共通パターンを確定(過半数のファイルに存在する見出しを採用)
96
+ 4. ユーザーに確認・修正を求める:
97
+
98
+ ```
99
+ 既存 glossary のセクション構造を検出しました:
100
+
101
+ EN 記事テンプレート:
102
+ ## What is it?
103
+ ## Why does it matter?
104
+ ## How does it work?
105
+ ## How does [project] use it?
106
+ ## Common mistakes / attacks
107
+ ## Further reading
108
+
109
+ JA 記事テンプレート:
110
+ ## これは何?
111
+ ## なぜ重要なのか?
112
+ ## どう動くのか?
113
+ ## [project] ではどう使われている?
114
+ ## よくある間違いと攻撃
115
+ ## さらに学ぶ
116
+
117
+ このテンプレートで記事を生成します。修正しますか?
118
+ 1. このまま使う(推奨)
119
+ 2. 修正する
120
+ 3. デフォルト(DDE educational format)を使う
121
+ ```
122
+
123
+ 5. 確定後、`docs/glossary/.dde-template.md` に保存する(次回セッションで再利用)
124
+
125
+ **`.dde-template.md` のフォーマット:**
126
+ ```markdown
127
+ <!-- DDE auto-detected template — edit freely -->
128
+ <!-- generated: 2024-01-15 from 5 sample articles -->
129
+
130
+ ## en
131
+
132
+ ## What is it?
133
+ ## Why does it matter?
134
+ ## How does it work?
135
+ ## How does [project] use it?
136
+ ## Common mistakes / attacks
137
+ ## Further reading
138
+
139
+ ---
140
+
141
+ ## ja
142
+
143
+ ## これは何?
144
+ ## なぜ重要なのか?
145
+ ## どう動くのか?
146
+ ## [project] ではどう使われている?
147
+ ## よくある間違いと攻撃
148
+ ## さらに学ぶ
149
+ ```
150
+
84
151
  **CRITICAL RULE — 相互リンク**:
85
152
  「さらに学ぶために」に書くリンクは、**記事生成時点で `docs/glossary/` に実在するファイルのみ**。
86
153
  存在しないファイルへのリンクは絶対に書かない。同一バッチで新規生成する記事同士は相互リンク可。
@@ -142,6 +209,24 @@ DDE toolkit v0.1.3 — Document Deficit Extraction
142
209
 
143
210
  **文字数ではなく「読んだ人にどうなってほしいか」で指定する。**
144
211
 
212
+ Step 0-D で確定したテンプレートを使用する。既存 glossary 記事が見つかった場合は「既存に合わせる」が推奨。
213
+
214
+ **既存記事がある場合の表示例:**
215
+ ```
216
+ テンプレート: docs/glossary/.dde-template.md(5 件から抽出済み)
217
+
218
+ 記事のインテントを選んでください:
219
+ 1. 既存に合わせる(推奨)— Step 0-D で確定したテンプレート構成を使用
220
+ 2. educational — 背景・動機・仕組みごと理解できる記事
221
+ 例え話・図・なぜ?を含む。分量は目的に従って自然に決まる
222
+ 3. reference — 定義と使い方を簡潔に。調べたい人向け
223
+ 4. deep-dive — 実装詳細・コード例・エッジケースまで網羅
224
+ 5. 自由記述 — 例: 「新入社員が読んで業務背景ごと理解できるように」
225
+
226
+ デフォルト: 1(既存に合わせる)
227
+ ```
228
+
229
+ **既存記事がない場合の表示例:**
145
230
  ```
146
231
  記事のインテントを選んでください:
147
232
  1. educational — 背景・動機・仕組みごと理解できる記事
@@ -153,6 +238,13 @@ DDE toolkit v0.1.3 — Document Deficit Extraction
153
238
  デフォルト: educational
154
239
  ```
155
240
 
241
+ **「既存に合わせる」を選んだ場合:**
242
+ 既存記事を 1〜3 件サンプリングして以下を推定し、新規記事に適用する:
243
+ - セクション構成(見出しの種類・順序)
244
+ - 文体(ですます / だ・である、日本語 / 英語混在度)
245
+ - 分量感(短め / 中程度 / 詳細)
246
+ - 例え話・図の有無
247
+
156
248
  ### Step 6: 用語抽出(LLM)
157
249
 
158
250
  **レベルで絞らず、誰かが分からない可能性がある用語を全て抽出する。**
package/version.txt CHANGED
@@ -1 +1 @@
1
- 0.1.4
1
+ 0.1.6