chineseclass/docs/Foundation-Segment-Framework.md
StillHammer 6107cefaf9 Define universal exam framework and Foundation segment
Core Framework (UALEF v0.5):
- Complete workflow A→Z (generation → passage → correction)
- JSON + HTML format with 3-file system (exam/answers/corrected)
- Universal JSON structure with rigid validation
- Storage: Exams/{Segment}/YYYY-MM/
- Validation strategy (structural + content + trust & iterate)

Foundation Segment:
- 9 exercises, 100 points total
- Vocab, grammar, comprehension, transformation, production
- Complete technical implementation documented

Documentation Updates:
- Add Skill vs Foundation segment types throughout
- Update all "Composition" references to "Foundation"
- Clarify Hanyu Jiaocheng as enabler, not composition skill

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 11:20:30 +08:00

273 lines
9.3 KiB
Markdown

# Foundation Segment Framework
## Version
- Framework: v1.0
- Date: 2025-10-30
- Type: Foundation Segment (Grammar/Vocabulary)
---
## Overview
Le Foundation Segment est un **enabler** - il ne teste pas une skill spécifique comme Speaking ou Writing, mais plutôt la **compréhension grammaticale** et la **maîtrise du vocabulaire** qui servent de base pour toutes les skills.
**Objectif** : Vérifier que l'étudiant comprend et peut appliquer les structures grammaticales et le vocabulaire enseignés durant le mois.
**Important** : Pas de production libre extensive comme dans les Skill Segments. Focus sur compréhension + application contrôlée.
---
## Foundation Exam Structure (100 points)
### **Exercice 1 : Vocabulary Mastery (10 points)**
- **20 mots aléatoires** tirés de tous les chapters du mois
- **10 L1→L2** (ex: Français → 中文)
- **10 L2→L1** (ex: 中文 → Français)
- **Scoring** : 0.5 point par réponse exacte
- **Critère** : Réponse EXACTE uniquement, pas de contexte, pas de MCQ
- **Objectif** : Prouver qu'on connaît le mot sans béquille
---
### **Exercice 2 : Grammar Application (10 points)**
- **10 structures grammaticales** à appliquer
- Une phrase est donnée, l'étudiant doit compléter/utiliser la structure imposée
- **Scoring** : 1 point par structure utilisée correctement
- **Critère** : On évalue UNIQUEMENT la structure, pas le sens/créativité
- **Exemple** : "Utiliser 把字句 : _______" → étudiant produit une phrase avec 把
---
### **Exercice 3 : Text Comprehension - Factual (10 points)**
- **1 texte** utilisant vocab et grammar du mois
- **10 questions simples** de type factuel : Où ? Qui ? Quand ? Quoi ? Pourquoi ? Comment ?
- **Scoring** : 1 point par réponse correcte
- **Objectif** : Compréhension basique du texte (factuel, pas d'interprétation)
---
### **Exercice 4 : Text Comprehension - Detailed (10 points)**
- Basé sur le même texte que Exercice 3
- **5 points spécifiques du texte** à expliquer avec ses propres mots
- **Scoring** : 2 points chacun
- **Critère** : Compréhension + début d'expression (reformulation personnelle)
- **Objectif** : Vérifier compréhension plus profonde + capacité à reformuler
---
### **Exercice 5 : Grammar Transformation (10 points)**
- **5 phrases à reformuler** avec contrainte grammaticale imposée
- **Exemples de transformations** :
- Actif → Passif
- Affirmatif → Négatif
- Présent → Passé
- Phrase simple → Structure complexe (ex: 不但...而且...)
- **Scoring** : 2 points par reformulation correcte
- **Critère** : Structure grammaticale contrôlée uniquement
---
### **Exercice 6 : Error Correction (10 points)**
- **5 phrases générées par IA** avec erreurs grammaticales/vocabulaire intentionnelles
- Basées sur les structures et vocab du mois
- L'étudiant doit identifier et corriger les erreurs
- **Scoring** : 2 points par phrase corrigée sans erreur
- **Objectif** : Capacité à reconnaître et corriger les erreurs courantes
---
### **Exercice 7 : Cloze Test - Vocabulary in Context (10 points)**
- **Texte à trous** avec options proposées pour chaque trou
- **10 mots manquants** à placer correctement (choix multiples pour chaque trou)
- **Scoring** : 1 point par mot correct
- **Objectif** : Comprendre le vocab en contexte, pas juste en isolation
---
### **Exercice 8 : Translation (10 points)**
- **5 phrases à traduire** (L1→L2 ou L2→L1)
- Phrases utilisent vocab et grammar du mois
- **Scoring** : 2 points par phrase correcte
- **Critère** : Traduction correcte (grammar + vocab)
---
### **Exercice 9 : Coherent Production (20 points)**
- **Contraintes imposées** :
- 5 mots aléatoires du mois (à utiliser obligatoirement)
- 5 structures grammaticales du mois (à utiliser obligatoirement)
- **Objectif** : Écrire un texte cohérent qui fait du sens ET utilise tous les éléments imposés
- **Scoring** :
- 1 point par mot utilisé correctement (5 points total)
- 1 point par structure utilisée correctement (5 points total)
- 10 points pour la cohérence globale du texte
- **Critère** : Le texte doit faire du sens. On ne peut pas juste lister les mots/structures sans cohérence.
---
## Passing Criteria
- **>80%** : PASS ✓ - Excellent, continue normalement
- **50-80%** : DIFFICULTY ⚠ - Révision nécessaire, identifie les weak points
- **<50%** : CRITICAL - Arrête la progression, révision intensive obligatoire
---
## Notes Importantes
### Pas de MCQ pur
- Exercice 1 (Vocab Mastery) = réponse libre exacte, pas de choix multiples
- Exercice 7 (Cloze Test) = seul exercice avec options proposées, car c'est du vocab EN CONTEXTE
### Progression de difficulté
- Ex 1-2 : Isolation (vocab/grammar seuls)
- Ex 3-4 : Compréhension (lire et comprendre)
- Ex 5-6 : Application (transformer/corriger)
- Ex 7-8 : Contexte (vocab en contexte + traduction)
- Ex 9 : Production (créer quelque chose de cohérent)
### Universalité
Ce framework fonctionne pour **n'importe quelle langue**. Il suffit d'adapter :
- L1/L2 selon la paire de langues
- Types de structures grammaticales selon la langue cible
- Longueur de texte selon niveau
---
## Technical Implementation
### Format & Storage
**Format** : JSON + HTML interface
**Structure des fichiers** :
```
Exams/Foundation/YYYY-MM/
├── exam.json # Généré par AI - questions + structure
├── exam-answers.json # Copie de exam.json + réponses étudiant
└── exam-corrected.json # Généré par AI - notes + feedback
```
### Workflow A→Z
#### 1. Génération (AI)
- **Input** : Chapters complétés durant le mois (ex: Hanyu Ch 1, 3, 4, 5)
- **Process** : AI génère `exam.json` selon structure définie
- **Output** : `Exams/Foundation/YYYY-MM/exam.json`
#### 2. Passage de l'exam (Étudiant)
- Copier `exam.json` `exam-answers.json`
- Charger dans interface HTML
- Remplir les champs `"answer": "..."` pour chaque question
- Sauvegarder `exam-answers.json`
#### 3. Correction (AI)
- **Input** : `exam-answers.json` (contient questions + réponses)
- **Process** : AI évalue chaque réponse selon critères
- **Output** : `exam-corrected.json` avec champs `"rate": X` + feedback global
### Structure JSON
Chaque exercice utilise une **structure rigide** pour garantir la validation mécanique.
**Exemple Exercice 1** :
```json
{
"metadata": {
"exam_id": "foundation-hanyu-202501",
"month": "2025-01",
"segment": "foundation",
"chapters_covered": ["1", "3", "4", "5"],
"generated_date": "2025-01-25",
"total_points": 100
},
"exercice1_vocabulary": {
"total_points": 10,
"l1_to_l2": {
"word1": { "l1": "parler", "l2_expected": "说", "points": 0.5, "answer": "", "rate": null },
"word2": { "l1": "ami", "l2_expected": "朋友", "points": 0.5, "answer": "", "rate": null },
...
"word10": { ... }
},
"l2_to_l1": {
"word11": { "l2": "学习", "l1_expected": "étudier", "points": 0.5, "answer": "", "rate": null },
...
"word20": { ... }
}
}
}
```
**Champs** :
- `l1`, `l2`, `l2_expected`, `l1_expected` : Données de l'exam (générées par AI)
- `answer` : Rempli par l'étudiant dans `exam-answers.json`
- `rate` : Rempli par AI dans `exam-corrected.json` (score obtenu)
### Validation
#### Validation Structurelle (mécanique - comme un compilateur)
- Vérifier que JSON est parsable
- Vérifier présence de tous les exercices (1-9)
- Vérifier nombre exact de questions par exercice :
- Ex1 : word1-word20 (20 mots)
- Ex2 : structure1-structure10 (10 structures)
- Ex3 : question1-question10 (10 questions)
- etc.
- Vérifier que chaque champ requis existe et n'est pas vide
#### Validation de Contenu (basique)
- Vérifier longueur minimum des textes
- Vérifier cohérence des points (total = 100)
- Pas de validation qualité des textes (trust & iterate)
#### Script de validation
À créer : `validate-exam.js` qui vérifie structure + contenu basique avant publication de l'exam.
### Génération de l'exam par AI
**Stratégie** : Trust & Iterate
- Pas de validation qualité AI-to-AI au début
- Si problèmes en pratique ajuster prompts ou ajouter AI review
**Input requis** :
- Liste des chapters complétés durant le mois
- Vocab lists de ces chapters
- Grammar structures de ces chapters
**Process** :
1. AI scan les chapters du mois pour ce segment
2. AI génère `exam.json` selon structure rigide définie
3. Validation mécanique du JSON
4. Si validation OK exam publié, sinon regénération
**Prompt de génération** : À définir (sera créé plus tard)
### Correction par AI
**Input** : `exam-answers.json` (contient toutes les questions + réponses étudiant)
**Process** :
- AI évalue chaque réponse selon critères de l'exercice
- AI génère feedback détaillé par exercice
- AI calcule score total
**Output** : `exam-corrected.json` avec :
- Champs `rate` remplis pour chaque question
- Feedback global
- Score total et statut (PASS/DIFFICULTY/CRITICAL)
**Prompt de correction** : À définir (sera créé plus tard)
---
## Prochaines étapes
- [ ] Définir structure JSON complète exercice par exercice
- [ ] Créer script de validation (validate-exam.js)
- [ ] Définir prompts de génération pour AI
- [ ] Définir prompts de correction pour AI
- [ ] Créer interface HTML pour passage d'exam
- [ ] Tester avec un exam pilote
- [ ] Itérer selon résultats