terminal-quest 1.1.0 → 1.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.
Files changed (2) hide show
  1. package/README.md +42 -5
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -26,14 +26,24 @@ npm install -g terminal-quest
26
26
  terminal-quest
27
27
  ```
28
28
 
29
+ ### 動作環境
30
+
31
+ - **macOS** / **Linux** / **Windows(WSL)**
32
+ - Node.js v18 以上
33
+ - 外部依存なし(Docker不要、GUI不要、ネットワーク不要)
34
+
35
+ 純粋なnpmパッケージとして動作する**TUIアプリ**です。Ink(React for CLI)で構築されており、ターミナルさえあればどこでも動きます。
36
+
29
37
  ## 特徴
30
38
 
31
- - **安全** - すべてのコマンドは仮想ファイルシステム上で動作。実際のファイルには一切触れません
39
+ - **安全な仮想環境** - すべてのコマンドはインメモリの仮想ファイルシステム上で動作。実際のファイルには一切触れません
32
40
  - **ストーリー駆動** - 物語を進めながら自然にコマンドを習得
33
- - **3つのコース** - レベルに合わせて選べるコース
41
+ - **3つのコース** - 小学生向け・はじめて・エンジニアの3コースで、レベルに合わせた学習体験
42
+ - **結果ベースの判定** - コマンドの文字列ではなく実行結果で目標達成を判定。`grep foo file` でも `cat file | grep foo` でも正解になります
43
+ - **到達目標** - 各ミッションに「何ができるようになるか」を明示
44
+ - **段階的ヒント** - 困ったら3段階(方向性→コマンド候補→ほぼ答え)のヒントで学習をサポート
45
+ - **間違いフィードバック** - タイプミスには類似コマンドを提案、間違ったコマンドにはミッション固有のガイダンスを表示
34
46
  - **ふりかえり問題** - ミッション完了後に4択クイズで理解度チェック
35
- - **コマンド提案** - タイプミスしても近いコマンドを提案してくれる
36
- - **段階的ヒント** - 困ったら3段階のヒントで学習をサポート
37
47
  - **Tab補完** - コマンド名やファイルパスをTabキーで補完
38
48
  - **達成バッジ** - 学習の進捗に応じてバッジを獲得
39
49
 
@@ -90,6 +100,27 @@ objectives 現在の目標を確認
90
100
  man <cmd> コマンドのマニュアル
91
101
  ```
92
102
 
103
+ ## アーキテクチャ
104
+
105
+ ```
106
+ src/
107
+ ├── engine/ コアエンジン(UI非依存)
108
+ │ ├── VirtualFS インメモリ仮想ファイルシステム
109
+ │ ├── CommandHandler 23コマンド実装(パイプ・リダイレクト対応)
110
+ │ ├── MissionEngine 結果ベースの目標判定
111
+ │ ├── HintEngine 3段階ヒント管理
112
+ │ ├── CommandFeedback タイプミス検出・ミッション固有フィードバック
113
+ │ └── TabCompletion コマンド名・パス補完
114
+ ├── data/stories/ ストーリーデータ(コース別、全9ストーリー)
115
+ ├── screens/ 7画面コンポーネント(Ink/React)
116
+ ├── components/ 再利用UIコンポーネント
117
+ └── state/ ゲーム状態管理(~/.terminal-quest/progress.json に永続化)
118
+ ```
119
+
120
+ - **仮想FS上で完結** — 実際のファイルシステムやシェルは一切使用しません
121
+ - **結果ベースの判定** — ObjectiveCheck がコマンドの出力・FS状態を検査し、解法の自由度を確保
122
+ - **コース別UX** — kids コースはひらがな中心のガイダンスとエラーメッセージ、engineer コースは実務寄りの表現
123
+
93
124
  ## 開発
94
125
 
95
126
  ```bash
@@ -97,10 +128,16 @@ git clone https://github.com/nasuda/terminal-quest.git
97
128
  cd terminal-quest
98
129
  npm install
99
130
  npm run dev # 開発実行
100
- npm test # テスト実行
131
+ npm test # テスト実行(183件)
101
132
  npm run build # ビルド
102
133
  ```
103
134
 
135
+ ### 技術スタック
136
+
137
+ - TypeScript (ESM) + [Ink 5](https://github.com/vadimdemedes/ink) (React for CLI)
138
+ - Vitest(テスト)
139
+ - npm配布(`bin/terminal-quest.js` → `dist/index.js` 直接import、tsx不要)
140
+
104
141
  ## ライセンス
105
142
 
106
143
  MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "terminal-quest",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "ストーリー駆動型ターミナルコマンド学習CLI - Learn terminal commands through interactive stories",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",