made first thing

This commit is contained in:
hobodrifterdavid_at_gmail.com
2026-02-21 12:56:21 +08:00
parent 8e6c6c0aed
commit 7364968bb2
3 changed files with 209 additions and 0 deletions

116
.cursorrules Normal file
View 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
View 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
View 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