@unlaxer/dge-toolkit 2.0.0 → 2.1.0

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/README.md CHANGED
@@ -4,15 +4,31 @@
4
4
 
5
5
  ## すぐ始める
6
6
 
7
- Claude Code で:
7
+ Claude Code で話しかけるだけ:
8
8
 
9
9
  ```
10
- 「DGE して」 → 会話劇で Gap 発見
11
- 「実装できるまで回して」自動反復(収束まで)
12
- 「キャラを追加して」 カスタムキャラ作成
13
- 「DGE を更新して」 toolkit 更新案内
10
+ --- 基本 ---
11
+ 「DGE して」 ⚡ クイック。即座に会話劇が始まる
12
+ 「○○を DGE して」 テーマ指定。クイックで開始
13
+ 「壁打ちして」「gap を探して」 同上
14
+
15
+ --- 本格的にやる ---
16
+ 「詳しく DGE して」 → 🔍 設計レビュー。テンプレート・パターン・キャラ確認あり
17
+ 「○○を Spec 付きで DGE して」→ 同上。Gap → Spec 変換まで
18
+ 「本格的にレビューして」 → 同上
19
+
20
+ --- ブレスト ---
21
+ 「ブレストして」 → 💡 ブレスト。Yes-and 話法でアイデア発散
22
+ 「アイデア出して」 → 同上
23
+
24
+ --- 便利機能 ---
25
+ 「実装できるまで回して」 → 自動反復(収束まで繰り返す)
26
+ 「キャラを追加して」 → カスタムキャラ作成
27
+ 「DGE を更新して」 → toolkit 更新案内
14
28
  ```
15
29
 
30
+ 言い方は自由。ニュアンスで自動的に適切なモードが選ばれます。
31
+
16
32
  他の LLM は `method.md` のクイックスタート(方法 A)を参照。
17
33
 
18
34
  ## キャラクター早見表
@@ -0,0 +1,122 @@
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+
6
+ const VERSION = '1.0.0';
7
+ const command = process.argv[2];
8
+ const arg = process.argv[3];
9
+
10
+ function findFlowsDir() {
11
+ // Look for dge/flows/ from current directory
12
+ const candidates = ['dge/flows', 'flows'];
13
+ for (const dir of candidates) {
14
+ if (fs.existsSync(dir)) return dir;
15
+ }
16
+ return null;
17
+ }
18
+
19
+ function cmdSave() {
20
+ const file = arg;
21
+ if (!file) {
22
+ console.error('ERROR: file path required. Usage: echo "content" | dge-tool save <file>');
23
+ process.exit(1);
24
+ }
25
+
26
+ const dir = path.dirname(file);
27
+ fs.mkdirSync(dir, { recursive: true });
28
+
29
+ let content = '';
30
+ process.stdin.setEncoding('utf8');
31
+ process.stdin.on('data', chunk => { content += chunk; });
32
+ process.stdin.on('end', () => {
33
+ fs.writeFileSync(file, content);
34
+ const bytes = Buffer.byteLength(content);
35
+ console.log(`SAVED: ${file} (${bytes} bytes)`);
36
+ });
37
+ }
38
+
39
+ function cmdPrompt() {
40
+ const flow = arg || 'quick';
41
+ const flowsDir = findFlowsDir();
42
+ const yamlFile = flowsDir ? path.join(flowsDir, `${flow}.yaml`) : null;
43
+
44
+ if (yamlFile && fs.existsSync(yamlFile)) {
45
+ const content = fs.readFileSync(yamlFile, 'utf8');
46
+ const lines = content.split('\n');
47
+
48
+ // Extract display_name from post_actions section
49
+ let inPostActions = false;
50
+ const actions = [];
51
+ for (const line of lines) {
52
+ if (line.match(/^post_actions:/)) {
53
+ inPostActions = true;
54
+ continue;
55
+ }
56
+ if (inPostActions && line.match(/^\S/) && !line.match(/^\s/)) {
57
+ break; // End of post_actions section
58
+ }
59
+ if (inPostActions) {
60
+ const match = line.match(/display_name:\s*"(.+?)"/);
61
+ if (match) actions.push(match[1]);
62
+ }
63
+ }
64
+
65
+ if (actions.length > 0) {
66
+ actions.forEach((a, i) => {
67
+ console.log(` ${i + 1}. ${a}`);
68
+ });
69
+ return;
70
+ }
71
+ }
72
+
73
+ // Default choices
74
+ console.log(' 1. DGE を回す');
75
+ console.log(' 2. 実装できるまで回す');
76
+ console.log(' 3. 実装する');
77
+ console.log(' 4. 素の LLM でも回してマージ');
78
+ console.log(' 5. 後で');
79
+ }
80
+
81
+ function cmdVersion() {
82
+ console.log(`dge-tool v${VERSION}`);
83
+ }
84
+
85
+ function cmdHelp() {
86
+ console.log(`dge-tool v${VERSION} — DGE MUST enforcement CLI
87
+
88
+ Commands:
89
+ save <file> Save stdin to file (ensures MUST: always save)
90
+ prompt [flow] Show numbered choices from flow YAML (ensures MUST: show choices)
91
+ version Show version
92
+ help Show this help
93
+
94
+ Examples:
95
+ echo "session content" | dge-tool save dge/sessions/auth-api.md
96
+ dge-tool prompt quick
97
+ dge-tool prompt design-review`);
98
+ }
99
+
100
+ // Dispatch
101
+ switch (command) {
102
+ case 'save':
103
+ cmdSave();
104
+ break;
105
+ case 'prompt':
106
+ cmdPrompt();
107
+ break;
108
+ case 'version':
109
+ case '-v':
110
+ case '--version':
111
+ cmdVersion();
112
+ break;
113
+ case 'help':
114
+ case '-h':
115
+ case '--help':
116
+ case undefined:
117
+ cmdHelp();
118
+ break;
119
+ default:
120
+ console.error(`ERROR: unknown command "${command}". Run "dge-tool help" for usage.`);
121
+ process.exit(1);
122
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unlaxer/dge-toolkit",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "DGE (Dialogue-driven Gap Extraction) — 会話劇で設計の穴を発見するメソッドkit",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -18,7 +18,8 @@
18
18
  ],
19
19
  "bin": {
20
20
  "dge-install": "./install.sh",
21
- "dge-update": "./update.sh"
21
+ "dge-update": "./update.sh",
22
+ "dge-tool": "./bin/dge-tool.js"
22
23
  },
23
24
  "files": [
24
25
  "LICENSE",
@@ -34,6 +35,7 @@
34
35
  "INTERNALS.md",
35
36
  "CUSTOMIZING.md",
36
37
  "dialogue-techniques.md",
38
+ "bin/",
37
39
  "install.sh",
38
40
  "update.sh"
39
41
  ],
@@ -36,6 +36,9 @@
36
36
  3. `dge/custom/characters/*.md` があれば Prompt Core を読む
37
37
  4. `dge/patterns.md` を読む
38
38
  5. `dge/version.txt` があれば 1 行表示
39
+ 6. **dge-tool 検出**: Bash で `dge-tool version` を実行。
40
+ - 成功 → `🔧 Tool mode (dge-tool vX.X.X)` と表示。以降 Step 7, 8 で dge-tool を使用
41
+ - 失敗 → Skill mode(従来通り)。dge-tool なしでも全機能動作
39
42
 
40
43
  ### Step 2: テーマ確認(全 flow 共通)
41
44
  明確なら次へ。不明確なら掘り下げる。
@@ -62,6 +65,15 @@ built-in + カスタムキャラを統合表示。
62
65
  - brainstorm: アイデアに分類を付与(severity なし)
63
66
 
64
67
  ### Step 7: 保存(全 flow 共通、MUST)
68
+
69
+ **Tool mode**: Bash で実行:
70
+ ```
71
+ echo "<session 全文>" | dge-tool save <output_dir>/<theme>.md
72
+ ```
73
+ → "SAVED: ..." が返れば成功。失敗したら Write ツールでフォールバック。
74
+
75
+ **Skill mode**: Write ツールでファイル保存。
76
+
65
77
  flow の output_dir に保存(デフォルト: `dge/sessions/`)。
66
78
  プロジェクトファイルがあれば更新。
67
79
 
@@ -81,7 +93,13 @@ flow の output_dir に保存(デフォルト: `dge/sessions/`)。
81
93
  **全文**: `[ファイルパス]`
82
94
  ```
83
95
 
84
- 選択肢は flow YAML の post_actions から表示。YAML がない場合のデフォルト:
96
+ **Tool mode**: Bash で実行:
97
+ ```
98
+ dge-tool prompt <flow>
99
+ ```
100
+ → 番号付き選択肢が返る。そのまま表示。失敗したらデフォルト選択肢でフォールバック。
101
+
102
+ **Skill mode**: 選択肢は flow YAML の post_actions から表示。YAML がない場合のデフォルト:
85
103
  ```
86
104
  1. DGE を回す
87
105
  2. 実装できるまで回す
package/version.txt CHANGED
@@ -1 +1 @@
1
- 2.0.0
1
+ 2.1.0