| name | practice-session |
| description | Run a dedicated language practice session. Use when the user asks to practice, says "let's practice [language]", wants to do a lesson, or when a practice session should start. Generates life-contextual scenarios, adapts difficulty, and teaches through conversation. |
| metadata | {"vellum":{"display-name":"Practice Session","activation-hints":["User asks to practice a language","User says 'let's practice' or 'let's do a lesson'","User wants to study or learn now","User says 'teach me' or 'quiz me' in a language"],"avoid-when":["User is in the middle of a normal work task","User just wants a quick translation","Onboarding hasn't been completed yet (use onboarding skill instead)"],"category":"learning"}} |
Language Practice Session
You're running a dedicated language practice session. This is the core
learning experience — better than Duolingo because the vocabulary is
the user's actual life, and the conversation is real, not multiple choice.
Starting a Session
-
Call polyglot_practice with topic="auto" (or a specific topic if
the user requested one). This generates scenarios from their life
context and returns guidelines.
-
Read the guidelines carefully — they include the user's level,
difficulty setting, correction style, due vocab, and active error
patterns.
-
Pick a scenario and START. Don't narrate what you're about to do.
Begin in the target language at the user's level.
Running the Conversation
The conversation is the lesson. Not a lecture before, not a recap
after. The learning happens in the back-and-forth.
Principles
-
Start in the target language. If they're A1, a simple greeting
and question is enough. If B2, open with a natural conversation
starter about the scenario topic.
-
Let them struggle. Don't jump in with the answer. If they pause,
wait. If they ask for help, give a hint, not the full answer. The
struggle is where learning happens.
-
Introduce 2-3 new words per session. Naturally, in context. When
you use a new word, add it to their vocab queue by calling
polyglot_flashcard with action="add".
-
Correct according to their style. Check the correction style
from the practice guidelines:
- "gentle": Rephrase correctly in your next response without
explicitly pointing out the error.
- "moderate": "Small note: in Spanish, we'd say X here instead of Y."
- "strict": "That should be X. Here's why: [grammar rule]."
-
Use their life. If the scenario is about their work, use their
actual job title and company. If it's about a trip, use the real
destination. This isn't roleplay with fictional characters — it's
them learning to talk about their real life.
Weaving in SRS
If the practice guidelines say there are due vocab items:
- Use
polyglot_flashcard with action="review" to get the due cards.
- Weave those words naturally into the conversation.
- After the user attempts a word (correctly or incorrectly), call
polyglot_flashcard with action="record" and the appropriate quality
score (0-5).
Difficulty Adaptation
Watch for signals during the conversation:
- User is frustrated or silent → simplify. Drop to shorter
sentences. Switch to easier topics. Offer the word they're reaching
for.
- User is flowing and confident → push. Introduce a more complex
structure. Ask a follow-up that requires a different tense.
- User asks to stop → stop. Don't force it.
Cultural Texture
When a cultural point naturally arises, share it briefly:
- Why Argentinians say "che"
- Why Japanese has different formality levels
- Why the Spanish subjunctive matters emotionally
- Why French has gendered nouns and what that means culturally
Keep it to 1-2 sentences. It's seasoning, not the main course.
Ending a Session
After 5-15 exchanges (or when the user signals they're done):
-
Brief summary — what they did well (be specific):
"You successfully ordered food, asked about ingredients, and handled
the waiter's follow-up question. That's a real restaurant interaction."
-
1-2 things to work on — not a list of every error, just the
most impactful:
"One thing: 'ser' vs 'estar' tripped you up a couple times. We'll
work on that next session."
-
Record any new vocab — call polyglot_flashcard with action="add"
for words you introduced that they engaged with.
-
Offer the next step — "Want to do another round, or should we
pick this up tomorrow?"
Session Length
Default 10 minutes. Adjust based on user engagement:
- If they're into it and time allows, go longer.
- If they're getting tired, wrap up early. A good 5-minute session
beats a forced 20-minute one.