java-quest
⚠️ アルファ版(v0.1.x)です — 本スキルは現在アルファ版です。仕様・API・データスキーマの破壊的変更、サーバー(API)の一時停止・終了、保存データの初期化が予告なく発生する可能性があります。気軽にお試しいただく分には歓迎ですが、重要な学習成果はローカル({source_root}/java-quest/ 配下)に残るため、必要に応じて別途バックアップを推奨します。詳細は バージョニング / 更新方針 参照。
AIチューター「リーナ」と巡る、RPG風Java学習スキル。
エリア(章)とダンジョン(単元)を踏破しながら、講義 → 演習 → ボス戦の流れで Java の基本構文を体に染み込ませていきます。レベル・職業・称号まで揃った RPG 的進行で、学習継続を仕組み化するのがこのスキルの狙いです。
クリアごとに経験値と称号が積み上がり、基本職(剣士・武闘家)を極めれば上級職「狂戦士」が解放されます。進捗は専用 API に保存されるため、環境を移しても UUID さえあれば冒険を再開できます。
対象ユーザー / 前提知識
- 対象: これから Java を本格的に始めたい人、独学で挫折した経験のある人、ゲーム的な動機付けで継続学習したい人。
- 前提知識: プログラミングの経験は不要。ただし以下の操作が最低限できること。
- ターミナル(シェル)でのコマンド実行
- テキストエディタでのファイル編集
- 環境要件:
- Java 実行環境(
java, javac が PATH に通っていること。未インストール時は起動フローで案内されます)
curl が使えるネットワーク接続(進捗 API と通信するため)
- Claude Code 本体(このスキルは Claude Code から発動する前提)
カリキュラム構成
カリキュラムは curriculum.yaml に定義され、スキル起動時に配信 API から取得されます。MVP v1.0.0 時点の構成は以下の通り。
エリアとダンジョン
| エリア | ダンジョン | 主題 |
|---|
| はじまりの平原(入門) | C1-01 プログラムの構造 | class / main / コンパイル・実行 |
| C1-02 標準出力 | println / print / printf |
| C1-03 変数と型(数値) | int / long / double / float |
| C1-04 変数と型(文字列・真偽値) | String / char / boolean |
| C1-05 算術演算・キャスト | 四則演算・整数除算・型変換 |
| C1-06 標準入力(Scanner) | 入力→処理→出力の対話 |
| 分岐の森(制御構文) | C1-07 if / else | 条件分岐の基本 |
| C1-08 比較・論理演算子 | 複合条件と短絡評価 |
| C1-09 switch 文・式 | 多分岐と fall-through |
| C1-10 for 文 | カウンタ制御と累積 |
| C1-11 while / do-while | 条件ベースの反復 |
| C1-12 ネスト・break・continue | フロー制御の仕上げ |
各ダンジョンには learning_goals(習得ゴール)、lecture_topics(講義項目)、exercise_hints(演習テーマ)、boss_description(ボス問題の軸)が定義されており、AI チューターはこれらを元に毎回異なる問題を生成します。
職業システム
- 基本職
- 剣士(言語コア / 入門)— C1-01〜C1-06 の全スキル習得でマスター
- 武闘家(言語コア / 制御構文)— C1-07〜C1-12 の全スキル習得でマスター
- 上級職
- 狂戦士 — 剣士と武闘家の両方をマスターすると解放
レベル・称号(MVP 上限: Lv.5)
| Lv | 称号 | 次レベルまで |
|---|
| 1 | かけだし冒険者 | 100 EXP |
| 2 | 見習いプログラマ | 150 EXP |
| 3 | 一人前の書き手 | 200 EXP |
| 4 | 条件の見極め人 | 250 EXP |
| 5 | ループの旅人 | (MVP 上限) |
インストール
Claude Code のプラグインマーケットプレイス経由で導入します。
/plugin marketplace add kirin1218/java-quest
/plugin install java-quest@java-quest
1 行目で GitHub リポジトリをマーケットプレイスとして登録し、2 行目で java-quest プラグインを実際にインストールします(@java-quest 部分は「マーケットプレイス名」です)。
インストールが完了すると、Claude Code のセッションで /java-quest が呼び出せるようになります。初回起動時はそのまま /java-quest を実行して、冒険者登録に進んでください。
インストール確認
/plugin list
java-quest が一覧に表示されていれば導入成功です。
アップデート
マーケットプレイスの最新情報を取得したうえで、プラグインを更新します。
/plugin marketplace update java-quest
/plugin update java-quest
カリキュラム(curriculum.yaml)とボス採点ロジックは配信 API 側で更新されるため、カリキュラムの追加・修正にはプラグイン更新不要です。プラグイン更新が必要になるのは、SKILL.md 本体やセリフ・提示テンプレート等を改訂したタイミングに限られます。
更新後は /plugin list で version 表記が上がっているかを確認してください。
アンインストール
プラグインの削除:
/plugin uninstall java-quest
マーケットプレイス登録自体も消したい場合:
/plugin marketplace remove java-quest
冒険データの扱い
プラグインを削除しても、ローカルの冒険データ(冒険者設定・講義メモ・演習成果物など)は残ります。再インストール時に UUID を入力すれば冒険を再開できます。
完全にリセットしたい場合は、以下のフォルダを削除してください。
~/.config/java-quest/ — 冒険者設定一式
{source_root}/java-quest/ — 講義メモ・演習成果物・UUID バックアップ
サーバー側の進捗データ(UUID 紐付け)の削除を希望する場合は、本リポジトリの Issue からリクエストしてください。
使い方
Claude Code からの発動
Claude Code のセッションで次のように呼び出します。
/java-quest
スキルが起動すると、AI チューター リーナ が進行役として対話を担当します。
初回起動(新規冒険者)
データ取得に関するお知らせ: 本スキルは学習進捗管理のため、冒険者名・冒険者番号(UUID)・学習進捗を配信 API のサーバーに保存します。詳細は PRIVACY.md を参照してください。初回起動時に内容を提示し、同意を確認します。
- リーナが冒険者ギルドへの歓迎を行います。
- プライバシーポリシー(PRIVACY.md)の要点を提示し、同意を確認します。
- 冒険者名 と 開発ソースのルートフォルダ(Java コードを書く親ディレクトリ)を尋ねられます。
- 冒険者番号(UUID v4)が自動発行され、画面に表示されます(この UUID は復旧の要です。必ず控えてください)。
- 設定ファイルとバックアップが作成され、初期進捗が API に登録されます。
生成されるファイル:
~/.config/java-quest/config.yaml — 冒険者名・UUID・source_root 等(Primary)
{source_root}/java-quest/.identity.yaml — UUID のバックアップ(復旧用)
~/.config/java-quest/curriculum.cache.yaml — カリキュラムのキャッシュ
2 回目以降(既存冒険者)
/java-quest を実行すると、config.yaml から UUID を読み取り、API から進捗を取得して「おかえりなさい」挨拶が表示されます。その後、ホーム画面(ギルド)から以下を選べます。
- ダンジョンに挑む — 前提クリア済みのダンジョンから選択 → 講義 → 演習 → ボス戦
- ステータスを見る — レベル・EXP・攻略済みダンジョン・習得スキル
- 職業を確認する — 基本職の進捗、上級職の解放状況
- 冒険を中断する — 進捗はタイミングごとに保存済みなので即時終了可
学習の進め方(1 ダンジョンの流れ)
- 講義: リーナが
lecture_topics を元に解説。講義内容は {dungeon_folder}/lecture.md に保存され、後から見直せます。
- 通常演習: AI が毎回異なる問題を生成。足場(scaffolding)はエリアに応じて段階的に外れていきます。
- 採点:
learning_goals を基準に合否判定。合格なら EXP 加算、不合格なら指摘のみ(答えは教えません)。
- ボス戦: ダンジョン EXP が
exp_required に到達したら挑戦可。全 learning_goals を満たせば撃破・スキル習得。
ヒントと「答え直接要求」ルール
- 「ヒント」と言えば段階的にヒントが提供されます(1→2→3 で徐々に具体化、ただし最後の一歩は必ず冒険者自身が書く)。
- 「答えを教えて」といった直接要求は、リーナが丁寧に、しかし明確に断ります。これは学習効果を守るための根幹ルールです。
ファイル構成