/language-coach
Language coaching for every prompt. Use when the user runs /language-coach with any sub-command (setup, native, target, style, response, goal, mode, focus, band, level, status, off, on). Routes to the correct action based on the argument provided.
$ npx -y skills add leeguooooo/prompt-language-coach --skill language-coach --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/language-coach
Context preview
The summary Claude sees to decide when to auto-load this skill.
Language coaching for every prompt. Use when the user runs /language-coach with any sub-command (setup, native, target, style, response, goal, mode, focus, band, level, status, off, on). Routes to the correct action based on the argument provided.
SKILL.md
language-coach.SKILL.mdname: language-coach
description: Language coaching for every prompt. Use when the user runs /language-coach with any sub-command (setup, native, target, style, response, goal, mode, focus, band, level, status, off, on). Routes to the correct action based on the argument provided.
You are the `language-coach` command handler. Read the sub-command and run the matching bundled CLI command.
Default platform: use the current host platform.
- In Codex, use `--platform codex`
- In Claude Code, use `--platform claude`
- In Cursor, use `--platform cursor`
If the host platform is ambiguous, ask which platform the user is currently running before writing config.
Resolve the script path relative to this skill directory:
- Skill path: `skills/language-coach/SKILL.md`
- Bundled CLI path: `../../scripts/manage_language_coach.py`
All commands below should call that bundled script path directly:
python3 ../../scripts/manage_language_coach.py --platform <claude|codex|cursor> ...
---
Setup
Ask these questions one at a time:
1. `What is your native language? (for example: Chinese, Japanese, Spanish)` 2. `What language are you learning? (for example: English, French, German)` 3. `What is your main goal? (everyday / scored)` 4. `Which coaching style do you want? (teaching / concise / translate)` 5. `Which response language should I use after coaching? (native / target)`
If the user chooses `scored`, ask these follow-ups one at a time:
1. `Which scored mode do you want? (scored-writing / scored-speaking)` 2. `What scoring focus should I store? (writing / speaking / both)` 3. `What target estimate are you aiming for? (optional)` 4. `What is your current level? (optional)`
Then run the matching commands in order:
python3 ../../scripts/manage_language_coach.py --platform <platform> native "<native>"
python3 ../../scripts/manage_language_coach.py --platform <platform> target "<target>"
python3 ../../scripts/manage_language_coach.py --platform <platform> goal "<goal>"
python3 ../../scripts/manage_language_coach.py --platform <platform> style "<style>"
python3 ../../scripts/manage_language_coach.py --platform <platform> response "<response>"
For Codex users, set `<platform>` to `codex` on every command in the setup flow. For Cursor users, set `<platform>` to `cursor` on every command in the setup flow. Do not imply that the default shared setup writes Codex or Cursor config unless you are explicitly running that platform variant.
If `goal` is `scored`, also run:
python3 ../../scripts/manage_language_coach.py --platform <platform> mode "<scored-mode>"
python3 ../../scripts/manage_language_coach.py --platform <platform> focus "<focus>"
python3 ../../scripts/manage_language_coach.py --platform <platform> estimate "<target-estimate>"
python3 ../../scripts/manage_language_coach.py --platform <platform> level "<current-level>"
Finish by running:
python3 ../../scripts/manage_language_coach.py --platform <platform> status
For Codex users, also run:
python3 ../../scripts/manage_language_coach.py --platform codex install-hook
python3 ../../scripts/manage_language_coach.py --platform codex status
For Cursor users, also run:
python3 ../../scripts/manage_language_coach.py --platform cursor install-hook
python3 ../../scripts/manage_language_coach.py --platform cursor status
The Cursor ``install-hook`` writes to ``~/.cursor/hooks.json`` (the top-level location). Plugin-manifest hooks are unreliable on some Cursor releases, so the top-level entry is what actually fires.
This ensures automatic coaching is installed immediately after setup.
Confirm with a short summary of the stored configuration.
---
Sub-commands
native <lang>
Run:
python3 ../../scripts/manage_language_coach.py --platform <platform> native "<lang>"
Confirm: `Native language updated to: <lang>`
target <lang>
Run:
python3 ../../scripts/manage_language_coach.py --platform <platform> target "<lang>"
Behavior depends on whether multi-target profiles are configured:
- **Single target (targets[] empty)**: sets the language the coach practices.
Confirm: `Target language updated to: <lang>`.
- **Multi-target mode (targets[] non-empty)**:
- If `<lang>` matches an existing profile, that profile becomes primary.
- If `<lang>` is not in `targets[]`, only the fallback language updates;
coaching still uses the existing profiles. Use `target-add <lang>` to actually coach a new language.
Multi-target management
Use these commands to manage the `targets` list for auto-detected coaching across multiple target languages:
target-add <lang>
Run:
python3 ../../scripts/manage_language_coach.py --platform <platform> target-add "<lang>"
This appends a new target profile using the current shared coaching settings as defaults.
target-remove <lang>
Run:
python3 ../../scripts/manage_language_coach.py --platform <platform> target-remove "<lang>"
This removes the matching target profile from the multi-target list.
target-list
Run:
python3 ../../scripts/manage_language_coach.py --platform <platform> target-list
Relay the printed target language list back to the user.
style <mode>
Valid values: `teaching`, `concise`, `translate`
Run:
python3 ../../scripts/manage_language_coach.py --platform <platform> style "<mode>"
Confirm: `Style updated to: <mode>`
response <mode>
Valid values: `native`, `target`
Run:
python3 ../../scripts/manage_language_coach.py --platform <platform> response "<mode>"
Confirm: `Responses will use: <mode>`
goal <mode>
Valid values: `everyday`, `scored`
Run:
python3 ../../scripts/manage_language_coach.py --platform <platform> goal "<mode>"
Notes:
- `goal everyday` resets the active mode to `everyday`
- `goal scored` keeps the shared config in scored mode
mode <mode>
Valid val
Read more
name: language-coach description: Language coaching for every prompt. Use when the user runs /language-coach with any sub-command (setup, native, target, style, response, goal, mode, focus, band, level, status, off, on). Routes to the correct action based on the argument provided.
You are the `language-coach` command handler. Read the sub-command and run the matching bundled CLI command.
Default platform: use the current host platform.
- In Codex, use `--platform codex`
- In Claude Code, use `--platform claude`
- In Cursor, use `--platform cursor`
If the host platform is ambiguous, ask which platform the user is currently running before writing config.
Resolve the script path relative to this skill directory:
- Skill path: `skills/language-coach/SKILL.md`
- Bundled CLI path: `../../scripts/manage_language_coach.py`
All commands below should call that bundled script path directly:
python3 ../../scripts/manage_language_coach.py --platform <claude|codex|cursor> ...
---
Setup
Ask these questions one at a time:
1. `What is your native language? (for example: Chinese, Japanese, Spanish)` 2. `What language are you learning? (for example: English, French, German)` 3. `What is your main goal? (everyday / scored)` 4. `Which coaching style do you want? (teaching / concise / translate)` 5. `Which response language should I use after coaching? (native / target)`
If the user chooses `scored`, ask these follow-ups one at a time:
1. `Which scored mode do you want? (scored-writing / scored-speaking)` 2. `What scoring focus should I store? (writing / speaking / both)` 3. `What target estimate are you aiming for? (optional)` 4. `What is your current level? (optional)`
Then run the matching commands in order:
python3 ../../scripts/manage_language_coach.py --platform <platform> native "<native>" python3 ../../scripts/manage_language_coach.py --platform <platform> target "<target>" python3 ../../scripts/manage_language_coach.py --platform <platform> goal "<goal>" python3 ../../scripts/manage_language_coach.py --platform <platform> style "<style>" python3 ../../scripts/manage_language_coach.py --platform <platform> response "<response>"
For Codex users, set `<platform>` to `codex` on every command in the setup flow. For Cursor users, set `<platform>` to `cursor` on every command in the setup flow. Do not imply that the default shared setup writes Codex or Cursor config unless you are explicitly running that platform variant.
If `goal` is `scored`, also run:
python3 ../../scripts/manage_language_coach.py --platform <platform> mode "<scored-mode>" python3 ../../scripts/manage_language_coach.py --platform <platform> focus "<focus>" python3 ../../scripts/manage_language_coach.py --platform <platform> estimate "<target-estimate>" python3 ../../scripts/manage_language_coach.py --platform <platform> level "<current-level>"
Finish by running:
python3 ../../scripts/manage_language_coach.py --platform <platform> status
For Codex users, also run:
python3 ../../scripts/manage_language_coach.py --platform codex install-hook python3 ../../scripts/manage_language_coach.py --platform codex status
For Cursor users, also run:
python3 ../../scripts/manage_language_coach.py --platform cursor install-hook python3 ../../scripts/manage_language_coach.py --platform cursor status
The Cursor ``install-hook`` writes to ``~/.cursor/hooks.json`` (the top-level location). Plugin-manifest hooks are unreliable on some Cursor releases, so the top-level entry is what actually fires.
This ensures automatic coaching is installed immediately after setup.
Confirm with a short summary of the stored configuration.
---
Sub-commands
native <lang>
Run:
python3 ../../scripts/manage_language_coach.py --platform <platform> native "<lang>"
Confirm: `Native language updated to: <lang>`
target <lang>
Run:
python3 ../../scripts/manage_language_coach.py --platform <platform> target "<lang>"
Behavior depends on whether multi-target profiles are configured:
- **Single target (targets[] empty)**: sets the language the coach practices.
Confirm: `Target language updated to: <lang>`.
- **Multi-target mode (targets[] non-empty)**:
- If `<lang>` matches an existing profile, that profile becomes primary.
- If `<lang>` is not in `targets[]`, only the fallback language updates;
coaching still uses the existing profiles. Use `target-add <lang>` to actually coach a new language.
Multi-target management
Use these commands to manage the `targets` list for auto-detected coaching across multiple target languages:
target-add <lang>
Run:
python3 ../../scripts/manage_language_coach.py --platform <platform> target-add "<lang>"
This appends a new target profile using the current shared coaching settings as defaults.
target-remove <lang>
Run:
python3 ../../scripts/manage_language_coach.py --platform <platform> target-remove "<lang>"
This removes the matching target profile from the multi-target list.
target-list
Run:
python3 ../../scripts/manage_language_coach.py --platform <platform> target-list
Relay the printed target language list back to the user.
style <mode>
Valid values: `teaching`, `concise`, `translate`
Run:
python3 ../../scripts/manage_language_coach.py --platform <platform> style "<mode>"
Confirm: `Style updated to: <mode>`
response <mode>
Valid values: `native`, `target`
Run:
python3 ../../scripts/manage_language_coach.py --platform <platform> response "<mode>"
Confirm: `Responses will use: <mode>`
goal <mode>
Valid values: `everyday`, `scored`
Run:
python3 ../../scripts/manage_language_coach.py --platform <platform> goal "<mode>"
Notes:
- `goal everyday` resets the active mode to `everyday`
- `goal scored` keeps the shared config in scored mode
mode <mode>
Valid val
Showing the first part of this file.
An always-on language coach for AI editors — improve any target language while you work in Codex, Claude Code, or Cursor.
Other skills on language-coach.
- /language-review
Analyze language learning progress from local data. Use when the user runs /language-coach:language-review or asks to review their progress, see their band history, check improvement trends, or analyze their IELTS score data.
Open skill - /language-review
Analyze language learning progress from local data. Use when the user runs /language-coach:language-review or asks to review their progress, see their band history, check improvement trends, or analyze their IELTS score data.
Open skill

