made first thing
This commit is contained in:
116
.cursorrules
Normal file
116
.cursorrules
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
You are helping edit .module files for Language Reactor language courses. Follow the format specification exactly.
|
||||||
|
|
||||||
|
## File Structure
|
||||||
|
|
||||||
|
A .module file contains: module header → lessons → activities (dialogue, grammar, exercise, chat).
|
||||||
|
|
||||||
|
## Module Header (required)
|
||||||
|
|
||||||
|
```
|
||||||
|
$MODULE
|
||||||
|
DIOCO_DOC_ID: lc_course_name_u01
|
||||||
|
TITLE: Unit 1: Title Here
|
||||||
|
DESCRIPTION: Brief description of what this module teaches.
|
||||||
|
TARGET_LANG_G: fr
|
||||||
|
HOME_LANG_G: en
|
||||||
|
```
|
||||||
|
|
||||||
|
Required fields: DIOCO_DOC_ID, TITLE, TARGET_LANG_G, HOME_LANG_G.
|
||||||
|
|
||||||
|
## Voice Configuration (optional, in header)
|
||||||
|
|
||||||
|
```
|
||||||
|
VOICE_DEFAULT: Aoede | Speak clearly and naturally
|
||||||
|
VOICE_INTRO: Aoede | Speak like a friendly narrator
|
||||||
|
VOICE: Speaker_Id | Display Name | VoiceName | Optional style instruction
|
||||||
|
```
|
||||||
|
|
||||||
|
Voice names (case-sensitive): Zephyr, Puck, Charon, Kore, Fenrir, Leda, Orus, Aoede, Callirrhoe, Autonoe, Enceladus, Iapetus, Umbriel, Algieba, Despina, Erinome, Algenib, Rasalgethi, Laomedeia, Achernar, Alnilam, Schedar, Gacrux, Pulcherrima, Achird, Zubenelgenubi, Vindemiatrix, Sadachbia, Sadaltager, Sulafat.
|
||||||
|
|
||||||
|
Speaker IDs must be alnum/underscore only, no spaces (e.g., M_Dupont, Mme_Durand).
|
||||||
|
|
||||||
|
## Critical Rules
|
||||||
|
|
||||||
|
- Section markers ($LESSON, $DIALOGUE, etc.) have NO colon and title on same line
|
||||||
|
- Fields (LINE:, SPEAKER:, etc.) DO have a colon
|
||||||
|
- All fields and markers start at column 0 (no indentation)
|
||||||
|
- INTRO is spoken aloud before an activity (2-3 sentences max)
|
||||||
|
- INSTRUCTION is shown at top of screen during activity (one line)
|
||||||
|
- Do NOT include _T translation fields (LINE_T, PROMPT_T, RESPONSE_T, VOCAB_T) unless specifically requested — the translation pipeline adds these automatically
|
||||||
|
|
||||||
|
## $LESSON
|
||||||
|
|
||||||
|
Divides module into study sessions (15-45 minutes each).
|
||||||
|
|
||||||
|
```
|
||||||
|
$LESSON Dialogue and Vocabulary
|
||||||
|
```
|
||||||
|
|
||||||
|
## $DIALOGUE
|
||||||
|
|
||||||
|
Each LINE becomes a card the student swipes through. Audio plays automatically.
|
||||||
|
|
||||||
|
```
|
||||||
|
$DIALOGUE Title Here
|
||||||
|
INTRO: Brief spoken introduction.
|
||||||
|
INSTRUCTION: Brief on-screen reminder.
|
||||||
|
|
||||||
|
VOCAB: word or phrase
|
||||||
|
VOCAB_T: definition
|
||||||
|
SPEAKER: Speaker_Name
|
||||||
|
LINE: Target language text.
|
||||||
|
LINE_T: Translation (blurred until tapped).
|
||||||
|
NOTES: Grammar tip or cultural note for this line.
|
||||||
|
```
|
||||||
|
|
||||||
|
VOCAB entries appear before the LINE they relate to. Each VOCAB must be paired with VOCAB_T.
|
||||||
|
|
||||||
|
## $GRAMMAR
|
||||||
|
|
||||||
|
Free-form markdown. Phrases in {curly brackets} become audio buttons.
|
||||||
|
|
||||||
|
```
|
||||||
|
$GRAMMAR Title Here
|
||||||
|
INTRO: Brief spoken introduction.
|
||||||
|
|
||||||
|
## Section Header
|
||||||
|
|
||||||
|
**Bold term** explanation text.
|
||||||
|
|
||||||
|
- {Target language phrase} - English meaning
|
||||||
|
- {Another phrase} - Another meaning
|
||||||
|
```
|
||||||
|
|
||||||
|
Inside {curly brackets}: NO markdown formatting (no **bold**, *italic*, or list markers).
|
||||||
|
|
||||||
|
## $EXERCISE
|
||||||
|
|
||||||
|
Audio-lingual drills. Student hears prompt, speaks response aloud, then checks.
|
||||||
|
|
||||||
|
```
|
||||||
|
$EXERCISE Title Here
|
||||||
|
INTRO: Brief spoken introduction.
|
||||||
|
INSTRUCTION: Brief on-screen reminder.
|
||||||
|
|
||||||
|
EXAMPLE
|
||||||
|
PROMPT: The stimulus
|
||||||
|
PROMPT_T: Translation of prompt
|
||||||
|
RESPONSE: Expected answer
|
||||||
|
RESPONSE_T: Translation of response
|
||||||
|
|
||||||
|
PROMPT: Next prompt
|
||||||
|
RESPONSE: Expected response
|
||||||
|
```
|
||||||
|
|
||||||
|
EXAMPLE marks the next item as a demonstration (shown unblurred). Every exercise should start with at least one EXAMPLE.
|
||||||
|
|
||||||
|
## $CHAT
|
||||||
|
|
||||||
|
Open-ended AI conversation practice.
|
||||||
|
|
||||||
|
```
|
||||||
|
$CHAT Title Here
|
||||||
|
INTRO: Brief spoken introduction.
|
||||||
|
SCENARIO: Shown to student — their role and context.
|
||||||
|
INITIAL_PROMPT: System prompt for AI character (hidden from student).
|
||||||
|
```
|
||||||
87
01.module
Normal file
87
01.module
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
$MODULE
|
||||||
|
DIOCO_DOC_ID: lc_sample_french_u01
|
||||||
|
TITLE: Unit 1: At the Café
|
||||||
|
DESCRIPTION: Learn to order drinks at a French café.
|
||||||
|
TARGET_LANG_G: fr
|
||||||
|
HOME_LANG_G: en
|
||||||
|
|
||||||
|
VOICE_DEFAULT: Aoede | Speak clearly and naturally
|
||||||
|
VOICE: Serveur | The Waiter | Achernar | Speak like a formal French waiter
|
||||||
|
VOICE: Client | The Customer | Aoede | Speak like a tourist
|
||||||
|
|
||||||
|
$LESSON Ordering a Coffee
|
||||||
|
|
||||||
|
$DIALOGUE At the Counter
|
||||||
|
INTRO: A tourist orders coffee at a Parisian café.
|
||||||
|
INSTRUCTION: Listen and repeat each line.
|
||||||
|
|
||||||
|
VOCAB: désirez
|
||||||
|
VOCAB_T: desire (formal "would like")
|
||||||
|
SPEAKER: Serveur
|
||||||
|
LINE: Bonjour ! Qu'est-ce que vous désirez ?
|
||||||
|
LINE_T: Hello! What would you like?
|
||||||
|
NOTES: "Désirez" is more formal than "voulez"
|
||||||
|
|
||||||
|
VOCAB: voudrais
|
||||||
|
VOCAB_T: would like (conditional of vouloir)
|
||||||
|
VOCAB: s'il vous plaît
|
||||||
|
VOCAB_T: please (formal)
|
||||||
|
SPEAKER: Client
|
||||||
|
LINE: Je voudrais un café, s'il vous plaît.
|
||||||
|
LINE_T: I would like a coffee, please.
|
||||||
|
|
||||||
|
SPEAKER: Serveur
|
||||||
|
LINE: Un express ou un café crème ?
|
||||||
|
LINE_T: An espresso or a coffee with cream?
|
||||||
|
|
||||||
|
SPEAKER: Client
|
||||||
|
LINE: Un café crème, s'il vous plaît.
|
||||||
|
LINE_T: A coffee with cream, please.
|
||||||
|
|
||||||
|
SPEAKER: Serveur
|
||||||
|
LINE: Voilà, Monsieur. Ça fait deux euros cinquante.
|
||||||
|
LINE_T: Here you are, sir. That's two euros fifty.
|
||||||
|
|
||||||
|
$GRAMMAR Polite Requests with "Je voudrais"
|
||||||
|
|
||||||
|
## The Conditional for Requests
|
||||||
|
|
||||||
|
**Je voudrais** is the conditional form of *vouloir*. It's the polite way to make requests:
|
||||||
|
|
||||||
|
- {Je voudrais un café.} - I would like a coffee.
|
||||||
|
- {Je voudrais un croissant.} - I would like a croissant.
|
||||||
|
- {Je voudrais l'addition.} - I would like the check.
|
||||||
|
|
||||||
|
## Asking "What would you like?"
|
||||||
|
|
||||||
|
In formal service contexts, you'll hear:
|
||||||
|
|
||||||
|
- {Qu'est-ce que vous désirez ?} - What would you like? (formal)
|
||||||
|
- {Vous désirez ?} - What would you like? (shorter, common)
|
||||||
|
|
||||||
|
$EXERCISE Ordering Practice
|
||||||
|
INTRO: Now practice ordering items at the café.
|
||||||
|
INSTRUCTION: Say what you would like.
|
||||||
|
|
||||||
|
EXAMPLE
|
||||||
|
PROMPT: coffee
|
||||||
|
PROMPT_T: coffee
|
||||||
|
RESPONSE: Je voudrais un café, s'il vous plaît.
|
||||||
|
RESPONSE_T: I would like a coffee, please.
|
||||||
|
|
||||||
|
PROMPT: croissant
|
||||||
|
RESPONSE: Je voudrais un croissant, s'il vous plaît.
|
||||||
|
|
||||||
|
PROMPT: the check
|
||||||
|
RESPONSE: Je voudrais l'addition, s'il vous plaît.
|
||||||
|
|
||||||
|
PROMPT: a coffee with cream
|
||||||
|
RESPONSE: Je voudrais un café crème, s'il vous plaît.
|
||||||
|
|
||||||
|
PROMPT: two espressos
|
||||||
|
RESPONSE: Je voudrais deux express, s'il vous plaît.
|
||||||
|
|
||||||
|
$CHAT Your Turn at the Café
|
||||||
|
INTRO: Now practice a real conversation at the café.
|
||||||
|
SCENARIO: You are at a Parisian café. Order a drink and a pastry. The waiter may ask follow-up questions. Use polite language.
|
||||||
|
INITIAL_PROMPT: You are a friendly French waiter at a café in Paris. Greet the customer, take their order, and respond naturally. Keep responses short and appropriate for a beginner learner. Use formal "vous" throughout.
|
||||||
6
course.course
Normal file
6
course.course
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
$COURSE
|
||||||
|
DIOCO_PLAYLIST_ID: lc_test_french
|
||||||
|
TITLE: Test French Course
|
||||||
|
DESCRIPTION: A test course for the contribution system.
|
||||||
|
TARGET_LANG_G: fr
|
||||||
|
HOME_LANG_G: en
|
||||||
Reference in New Issue
Block a user