mcpField
E
english-learner

english-learner

github.com/learnwyその他5401 回インストール21 週間前に更新
リポジトリ

english-learner について

英語学習者向けのスキルで、語彙の検索・記録、訂正、習熟度の追跡、間隔反復に対応します。言語に応じた自動フィードバックに加え、検索、クイズ、統計モードを備え、学習データをローカルに保存します。

主な機能

  1. 01英語および多言語の文章フィードバック
  2. 02語彙の検索と記録
  3. 03習熟度の追跡と間隔反復
  4. 04クイズと統計モード
  5. 05ローカルSQLiteへの永続保存
  6. 06毎日の復習カード提示

活用シーン

  1. 01日常的な英語メッセージの訂正
  2. 02中国語や他言語の文章の翻訳
  3. 03クイズや期限到来カードでの語彙復習
  4. 04語彙の習熟度と学習状況の追跡

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/learnwy/skills --skill english-learner

インストール後、Claude Code で/english-learnerを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

hooks.json
references/
conditional-reflection.md
data-storage.md
intercept-modes.md
learning-mode.md
scripts/
cli.cjs
scripts/hooks/
session-context.cjs
stop-response-scan.cjs
user-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 つで、スキルごとのプロセス起動はありません)。

イベントライブラリ関数目的
UserPromptSubmitlib/prompt-scan.ts英語/中国語のインターセプトに関するリマインダーを挿入します
Stoplib/stop-scan.tsアシスタントの各応答後に、応答内で見つかった上級語彙を 2〜4 語提示します(ユーザーに確認し、自動保存はしません)
SessionStartlib/session-scan.ts1 日に 1 回、復習予定のカードを 3 枚提示します(間隔反復アルゴリズム)

各スキャナーは純粋な (payload | message) => string | null です。副作用(DB 書き込み)は lib/*-store.ts 内で処理します。

対象範囲

このスキルの対象は、語彙の記録、検索、習得、間隔反復、インターセプトに基づく修正のみです。

このスキルの対象外は、エッセイ全体の編集、3 項目の上限を超える文法指導、中国語以外の母語での指導、設定の永続的な記憶です(スキルをまたぐ統計には learnwy-status を使用してください)。

関連項目

コメント