english-learner について
英語学習者向けのスキルで、語彙の検索・記録、訂正、習熟度の追跡、間隔反復に対応します。言語に応じた自動フィードバックに加え、検索、クイズ、統計モードを備え、学習データをローカルに保存します。
主な機能
- 01英語および多言語の文章フィードバック
- 02語彙の検索と記録
- 03習熟度の追跡と間隔反復
- 04クイズと統計モード
- 05ローカルSQLiteへの永続保存
- 06毎日の復習カード提示
活用シーン
- 01日常的な英語メッセージの訂正
- 02中国語や他言語の文章の翻訳
- 03クイズや期限到来カードでの語彙復習
- 04語彙の習熟度と学習状況の追跡
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ learnwy/ skills --skill english-learnerインストール後、Claude Code で/english-learnerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
hooks.jsonreferences/conditional-reflection.mddata-storage.mdintercept-modes.mdlearning-mode.mdscripts/cli.cjsscripts/hooks/session-context.cjsstop-response-scan.cjsuser-prompt-scan.cjs詳細
英語学習者
永続ストレージ、習熟度の追跡、間隔反復を備えた個人用語彙アシスタントです。
3 つの自動インターセプトモード(パッシブ、フック駆動)
| モード | トリガー | アクション |
|---|---|---|
| 英語インターセプト | ユーザーが英語で書く(EN 比率 ≥ 0.6) | 問題が見つかった場合:「💡 English Tip」テーブルに 1〜3 件の修正を表示します。問題がない場合は、"✅ English looks fluent — no issues found." をそのまま表示します。常に had_issues と issue_count を指定して vocab record-input を呼び出します。 |
| 中国語インターセプト | ユーザーが中国語で書く(CN 比率 ≥ 0.3、または 翻译/怎么说/用英语 の意図を含む)。必ず実行し、黙ってスキップすることはありません。 段階的な出力:通常のメッセージではフルモード、500 文字以上、またはコード関連キーワード(代码/编程/bug/修复/重构/编译/部署/配置文件)を含む場合はライトモードです。 | フル:「🌐 中译英」ブロック — 修正(あれば)+英訳 2〜3 件+語彙 2〜3 件+batch_save。ライト:「🌐 中译英 (light)」— 英訳 1 件+任意で語彙 1 件。どちらも language: zh を指定して record-input を呼び出します。 |
| その他の言語のインターセプト | ユーザーが日本語/韓国語/スペイン語/フランス語/ドイツ語/ロシア語/アラビア語などで文章を書く(EN 比率が低く、ZH 比率も低い)。必ず実行します。 段階的な出力:通常はフルモード、800 文字以上の場合はライトモードです。 | フル:「🌐 Translate & Learn」— 言語を判定し、翻訳し、語彙を 2〜3 件、自動保存します。ライト:英訳 1 件+任意で語彙 1 件。どちらも language: ja/ko/other を指定して record-input を呼び出します。 |
すべてのモードは learnwy-dispatch(UserPromptSubmit + Stop フック)を介して連携します。ユーザーの実際のタスクを妨げることはありません。修正を先に提示し、その後も作業を続けます。
実行された各ターンは prose_log に記録され、流暢さの割合、言語別のアクティビティ、30 日間の推移を算出できます(vocab prose-stats)。
詳しいルール、除外フィルター、Markdown 形式については、references/intercept-modes.md を参照してください。
アクティブモード(ユーザーからの明示的なリクエスト)
| トリガー | モード | 動作 |
|---|---|---|
| 単語/フレーズ/文 | 検索 | vocab batch_get → 新規なら AI が生成 → batch_save → カードを表示 |
学习 / review / quiz | クイズ | quiz generate 5 all low_mastery → 各項目について AskUserQuestion でユーザーに質問 |
stats / 统计 | 統計 | vocab stats → 概要を表示 |
查单词 / 学英语 / 翻訳リクエスト | 検索 | 単語の場合と同じ処理 |
応答形式(単語カード、フレーズカード、文の分解、クイズのプロンプト、統計)については、references/learning-mode.md を参照してください。
実行しない場合
文章ではない入力に限り、インターセプトを完全にスキップします。
- コードのみ/シェルコマンドのみ/ファイルパスのみの行(
looksLikeNonProseによる判定) - 1 行の
Use Skill:ディレクティブ - 4 文字未満の入力(CJK を含む場合は 2 文字未満)
技術的な内容が多い中国語や長い中国語はスキップされません。代わりにライトモード(1 文の翻訳、任意で語彙 1 件)になります。「[feedback-learning-tools-fire-everywhere]」というメモリ内のフィードバックを参照してください。黙ってスキップすると長期的なデータセットに悪影響があるため、必ず実行し、表示の詳しさだけを調整します。
英語の流暢さチェックは例外です。問題がなければ、✅ English looks fluent の確認メッセージを 1 行で表示します。これは実行したことを示すものであり、スキップではありません。
前提条件
- Node.js ≥ 24(組み込みの
node:sqliteを使用) - 書き込み可能なホームディレクトリ:データは
~/.learnwy/english-learner/data.dbに保存されます
サブコマンド
単一の CLI エントリ scripts/cli.cjs がすべての処理を振り分けます。
# vocab — CRUD + batch ops
node scripts/cli.cjs vocab batch_get '["word1","word2"]'
node scripts/cli.cjs vocab batch_save '[{"word":"...","definition":"...","phonetic":"...","examples":[]}]'
node scripts/cli.cjs vocab get_word|save_word|get_phrase|save_phrase|log_query|stats|update_mastery ...
# corrections — persist usage tips from the English intercept
node scripts/cli.cjs vocab record-correction '[{"original":"imrpove","corrected":"improve","reason":"typo","words":[{"word":"improve","definition":"改进;改善","phonetic":"/ɪmˈpruːv/"}]}]'
node scripts/cli.cjs vocab top-corrections [limit=5]
node scripts/cli.cjs vocab corrections-stats
# prose log — log every prose input (clean or with issues), then aggregate fluency
node scripts/cli.cjs vocab record-input '{"language":"en","text":"<original>","had_issues":false,"issue_count":0}'
node scripts/cli.cjs vocab prose-stats # totals, clean-rate, by-language, 30-day window
node scripts/cli.cjs vocab recent-prose [limit=20]
# sentence — input classification + word extraction
node scripts/cli.cjs sentence classify <text>
node scripts/cli.cjs sentence parse <sentence>
node scripts/cli.cjs sentence batch_check <words>
# quiz — review session
node scripts/cli.cjs quiz generate [count] [type] [focus]
node scripts/cli.cjs quiz review [limit]
node scripts/cli.cjs quiz summary
# spaced repetition + linking
node scripts/cli.cjs link-wiki # cross-link with llm-wiki
# report — generate a self-contained static HTML dashboard from the SQLite DB
# sections: Overview · Due now · Activity · Words · Phrases · Corrections · Fluency · Materials
# Fluency section shows overall + 30-day clean rate, by-language breakdown, and 20 most-recent inputs.
node scripts/cli.cjs report # writes ~/.learnwy/english-learner/report.html
node scripts/cli.cjs report --output <path> # custom destination
node scripts/cli.cjs report --json # also dump intermediate report.html.json
node scripts/cli.cjs report --open # open in default browser after generation
# install/uninstall hooks (registered with .claude/ + .trae/)
node scripts/cli.cjs install --scope global --target both
node scripts/cli.cjs uninstall --scope global --target both
2 件以上の項目を扱う場合は、必ず vocab batch_* を使用します。
ストレージ
~/.learnwy/english-learner/
├── data.db # SQLite — words, phrases, history (schema in references/data-storage.md)
└── memory/
├── SOUL.md
└── USER.md
スキーマは src/shared/db.ts によって自動的に移行されます(バージョン管理されたマイグレーション)。間隔反復用の列(next_review_at、interval_days)によって、SessionStart 時に 1 日 3 枚の期限到来カードが提示されます。
フック
learnwy-dispatch 経由で接続します(Node プロセスは 1 つで、スキルごとのプロセス起動はありません)。
| イベント | ライブラリ関数 | 目的 |
|---|---|---|
UserPromptSubmit | lib/prompt-scan.ts | 英語/中国語のインターセプトに関するリマインダーを挿入します |
Stop | lib/stop-scan.ts | アシスタントの各応答後に、応答内で見つかった上級語彙を 2〜4 語提示します(ユーザーに確認し、自動保存はしません) |
SessionStart | lib/session-scan.ts | 1 日に 1 回、復習予定のカードを 3 枚提示します(間隔反復アルゴリズム) |
各スキャナーは純粋な (payload | message) => string | null です。副作用(DB 書き込み)は lib/*-store.ts 内で処理します。
対象範囲
このスキルの対象は、語彙の記録、検索、習得、間隔反復、インターセプトに基づく修正のみです。
このスキルの対象外は、エッセイ全体の編集、3 項目の上限を超える文法指導、中国語以外の母語での指導、設定の永続的な記憶です(スキルをまたぐ統計には learnwy-status を使用してください)。
関連項目
- references/intercept-modes.md — 英語および中国語のインターセプトルールと形式の詳細
- references/learning-mode.md — クイズ/検索/統計の応答形式
- references/data-storage.md — SQLite スキーマとレコードの JSON 形式