From 7364968bb236642f4269a03d24ce425f4dae1cd4 Mon Sep 17 00:00:00 2001 From: "hobodrifterdavid_at_gmail.com" Date: Sat, 21 Feb 2026 12:56:21 +0800 Subject: [PATCH] made first thing --- .cursorrules | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++ 01.module | 87 +++++++++++++++++++++++++++++++++++++ course.course | 6 +++ 3 files changed, 209 insertions(+) create mode 100644 .cursorrules create mode 100644 01.module create mode 100644 course.course diff --git a/.cursorrules b/.cursorrules new file mode 100644 index 0000000..80936e0 --- /dev/null +++ b/.cursorrules @@ -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). +``` diff --git a/01.module b/01.module new file mode 100644 index 0000000..6710013 --- /dev/null +++ b/01.module @@ -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. diff --git a/course.course b/course.course new file mode 100644 index 0000000..18f3d7d --- /dev/null +++ b/course.course @@ -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 \ No newline at end of file