Add several boards per level, CM1/CM2 levels and the CE1 'plage des sons' pilot board (0.6.0)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Denis Defolie
2026-10-12 11:05:00 +02:00
parent 0e48b1995e
commit d0380a76af
118 changed files with 2421 additions and 111 deletions
@@ -3,6 +3,13 @@
"region_id": "foret_des_accords",
"chapter_id": "accords_groupe_nominal",
"title": "Les accords dans le groupe nominal",
"rule_ids": ["regle_accord_adjectif", "regle_pluriel_nom", "regle_accord_determinant"],
"region_title": "La forêt des accords",
"order": 1,
"backdrop": "forest",
"rule_ids": [
"regle_accord_adjectif",
"regle_pluriel_nom",
"regle_accord_determinant"
],
"review_status": "draft"
}
+15
View File
@@ -0,0 +1,15 @@
{
"level": "CE1",
"region_id": "plage_des_sons",
"chapter_id": "sons_et_lettres",
"title": "Les sons et les lettres",
"region_title": "La plage des sons",
"order": 2,
"backdrop": "beach",
"rule_ids": [
"regle_s_ss",
"regle_c_cedille",
"regle_m_devant_mbp"
],
"review_status": "draft"
}
@@ -3,6 +3,9 @@
"region_id": "marais_des_homophones",
"chapter_id": "homophones_grammaticaux",
"title": "Les homophones grammaticaux",
"region_title": "Le marais des homophones",
"order": 1,
"backdrop": "marsh",
"rule_ids": [
"regle_homophone_a_a",
"regle_homophone_et_est",
@@ -0,0 +1,37 @@
{
"id": "ce1_cedille_dictee_01",
"level": "CE1",
"domain": "orthographe",
"rule_ids": [
"regle_c_cedille"
],
"difficulty": 1,
"target_text": "Ma leçon de français est facile.",
"words": [
{
"text": "Ma",
"expects_capital": true
},
{
"text": "leçon",
"rule_id": "regle_c_cedille"
},
{
"text": "de"
},
{
"text": "français",
"rule_id": "regle_c_cedille"
},
{
"text": "est"
},
{
"text": "facile."
}
],
"audio_id": "ce1_cedille_dictee_01",
"audio_provisional": true,
"accepted_variants": [],
"review_status": "draft"
}
@@ -0,0 +1,37 @@
{
"id": "ce1_cedille_dictee_02",
"level": "CE1",
"domain": "orthographe",
"rule_ids": [
"regle_c_cedille"
],
"difficulty": 2,
"target_text": "Le maçon construit une façade neuve.",
"words": [
{
"text": "Le",
"expects_capital": true
},
{
"text": "maçon",
"rule_id": "regle_c_cedille"
},
{
"text": "construit"
},
{
"text": "une"
},
{
"text": "façade",
"rule_id": "regle_c_cedille"
},
{
"text": "neuve."
}
],
"audio_id": "ce1_cedille_dictee_02",
"audio_provisional": true,
"accepted_variants": [],
"review_status": "draft"
}
@@ -0,0 +1,42 @@
{
"id": "ce1_cedille_dictee_03",
"level": "CE1",
"domain": "orthographe",
"rule_ids": [
"regle_c_cedille"
],
"difficulty": 3,
"target_text": "Hier, j'ai reçu une carte postale de Lola.",
"words": [
{
"text": "Hier,",
"expects_capital": true
},
{
"text": "j'ai"
},
{
"text": "reçu",
"rule_id": "regle_c_cedille"
},
{
"text": "une"
},
{
"text": "carte"
},
{
"text": "postale"
},
{
"text": "de"
},
{
"text": "Lola."
}
],
"audio_id": "ce1_cedille_dictee_03",
"audio_provisional": true,
"accepted_variants": [],
"review_status": "draft"
}
+39
View File
@@ -0,0 +1,39 @@
{
"id": "ce1_m_mbp_dictee_01",
"level": "CE1",
"domain": "orthographe",
"rule_ids": [
"regle_m_devant_mbp"
],
"difficulty": 1,
"target_text": "Le pompier monte sur la grande échelle.",
"words": [
{
"text": "Le",
"expects_capital": true
},
{
"text": "pompier",
"rule_id": "regle_m_devant_mbp"
},
{
"text": "monte"
},
{
"text": "sur"
},
{
"text": "la"
},
{
"text": "grande"
},
{
"text": "échelle."
}
],
"audio_id": "ce1_m_mbp_dictee_01",
"audio_provisional": true,
"accepted_variants": [],
"review_status": "draft"
}
+45
View File
@@ -0,0 +1,45 @@
{
"id": "ce1_m_mbp_dictee_02",
"level": "CE1",
"domain": "orthographe",
"rule_ids": [
"regle_m_devant_mbp"
],
"difficulty": 2,
"target_text": "Il y a un timbre rouge sur la lettre.",
"words": [
{
"text": "Il",
"expects_capital": true
},
{
"text": "y"
},
{
"text": "a"
},
{
"text": "un"
},
{
"text": "timbre",
"rule_id": "regle_m_devant_mbp"
},
{
"text": "rouge"
},
{
"text": "sur"
},
{
"text": "la"
},
{
"text": "lettre."
}
],
"audio_id": "ce1_m_mbp_dictee_02",
"audio_provisional": true,
"accepted_variants": [],
"review_status": "draft"
}
+46
View File
@@ -0,0 +1,46 @@
{
"id": "ce1_m_mbp_dictee_03",
"level": "CE1",
"domain": "orthographe",
"rule_ids": [
"regle_m_devant_mbp"
],
"difficulty": 3,
"target_text": "Le campeur plante sa tente près de la rivière.",
"words": [
{
"text": "Le",
"expects_capital": true
},
{
"text": "campeur",
"rule_id": "regle_m_devant_mbp"
},
{
"text": "plante"
},
{
"text": "sa"
},
{
"text": "tente",
"rule_id": "regle_m_devant_mbp"
},
{
"text": "près"
},
{
"text": "de"
},
{
"text": "la"
},
{
"text": "rivière."
}
],
"audio_id": "ce1_m_mbp_dictee_03",
"audio_provisional": true,
"accepted_variants": [],
"review_status": "draft"
}
+39
View File
@@ -0,0 +1,39 @@
{
"id": "ce1_s_ss_dictee_01",
"level": "CE1",
"domain": "orthographe",
"rule_ids": [
"regle_s_ss"
],
"difficulty": 1,
"target_text": "Le poisson rouge nage dans le bocal.",
"words": [
{
"text": "Le",
"expects_capital": true
},
{
"text": "poisson",
"rule_id": "regle_s_ss"
},
{
"text": "rouge"
},
{
"text": "nage"
},
{
"text": "dans"
},
{
"text": "le"
},
{
"text": "bocal."
}
],
"audio_id": "ce1_s_ss_dictee_01",
"audio_provisional": true,
"accepted_variants": [],
"review_status": "draft"
}
+42
View File
@@ -0,0 +1,42 @@
{
"id": "ce1_s_ss_dictee_02",
"level": "CE1",
"domain": "orthographe",
"rule_ids": [
"regle_s_ss"
],
"difficulty": 2,
"target_text": "La grosse tasse est pleine de chocolat chaud.",
"words": [
{
"text": "La",
"expects_capital": true
},
{
"text": "grosse"
},
{
"text": "tasse",
"rule_id": "regle_s_ss"
},
{
"text": "est"
},
{
"text": "pleine"
},
{
"text": "de"
},
{
"text": "chocolat"
},
{
"text": "chaud."
}
],
"audio_id": "ce1_s_ss_dictee_02",
"audio_provisional": true,
"accepted_variants": [],
"review_status": "draft"
}
+42
View File
@@ -0,0 +1,42 @@
{
"id": "ce1_s_ss_dictee_03",
"level": "CE1",
"domain": "orthographe",
"rule_ids": [
"regle_s_ss"
],
"difficulty": 3,
"target_text": "Mamie a mis ses chaussons dans la chambre.",
"words": [
{
"text": "Mamie",
"expects_capital": true
},
{
"text": "a"
},
{
"text": "mis"
},
{
"text": "ses"
},
{
"text": "chaussons",
"rule_id": "regle_s_ss"
},
{
"text": "dans"
},
{
"text": "la"
},
{
"text": "chambre."
}
],
"audio_id": "ce1_s_ss_dictee_03",
"audio_provisional": true,
"accepted_variants": [],
"review_status": "draft"
}
@@ -0,0 +1,53 @@
{
"id": "ce1_cedille_correction_01",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_c_cedille",
"difficulty": 1,
"type": "sentence_correction",
"instruction": "Touche le mot qui contient une erreur, puis corrige-le.",
"tokens": [
{
"text": "Léo",
"correct": true
},
{
"text": "se",
"correct": true
},
{
"text": "balance",
"correct": true
},
{
"text": "sur",
"correct": true
},
{
"text": "la",
"correct": true
},
{
"text": "balancoire",
"correct": false,
"expected": "balançoire",
"rule_id": "regle_c_cedille"
},
{
"text": "du",
"correct": true
},
{
"text": "parc.",
"correct": true
}
],
"hint": "Devant « o », pour entendre [s], il faut une cédille.",
"explanation": "On écrit « ç » devant « o » pour le son [s] : « balançoire ».",
"review_tags": [
"sons_lettres",
"cedille"
],
"review_status": "draft"
}
@@ -0,0 +1,57 @@
{
"id": "ce1_cedille_correction_02",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_c_cedille",
"difficulty": 2,
"type": "sentence_correction",
"instruction": "Touche le mot qui contient une erreur, puis corrige-le.",
"tokens": [
{
"text": "Il",
"correct": true
},
{
"text": "y",
"correct": true
},
{
"text": "a",
"correct": true
},
{
"text": "un",
"correct": true
},
{
"text": "glacon",
"correct": false,
"expected": "glaçon",
"rule_id": "regle_c_cedille"
},
{
"text": "dans",
"correct": true
},
{
"text": "mon",
"correct": true
},
{
"text": "verre",
"correct": true
},
{
"text": "d'eau.",
"correct": true
}
],
"hint": "Devant « o », le son [s] demande une cédille.",
"explanation": "On écrit « ç » devant « o » pour le son [s] : « glaçon ».",
"review_tags": [
"sons_lettres",
"cedille"
],
"review_status": "draft"
}
@@ -0,0 +1,49 @@
{
"id": "ce1_cedille_correction_03",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_c_cedille",
"difficulty": 2,
"type": "sentence_correction",
"instruction": "Touche le mot qui contient une erreur, puis corrige-le.",
"tokens": [
{
"text": "Nous",
"correct": true
},
{
"text": "commencons",
"correct": false,
"expected": "commençons",
"rule_id": "regle_c_cedille"
},
{
"text": "la",
"correct": true
},
{
"text": "dictée",
"correct": true
},
{
"text": "à",
"correct": true
},
{
"text": "neuf",
"correct": true
},
{
"text": "heures.",
"correct": true
}
],
"hint": "Devant « o », le son [s] demande une cédille.",
"explanation": "On écrit « ç » devant « o » pour le son [s] : « commençons ».",
"review_tags": [
"sons_lettres",
"cedille"
],
"review_status": "draft"
}
@@ -0,0 +1,53 @@
{
"id": "ce1_cedille_correction_04",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_c_cedille",
"difficulty": 3,
"type": "sentence_correction",
"instruction": "Touche le mot qui contient une erreur, puis corrige-le.",
"tokens": [
{
"text": "La",
"correct": true
},
{
"text": "maman",
"correct": true
},
{
"text": "appelle",
"correct": true
},
{
"text": "son",
"correct": true
},
{
"text": "garcon",
"correct": false,
"expected": "garçon",
"rule_id": "regle_c_cedille"
},
{
"text": "pour",
"correct": true
},
{
"text": "le",
"correct": true
},
{
"text": "dîner.",
"correct": true
}
],
"hint": "Devant « o », pour entendre [s], il faut une cédille.",
"explanation": "On écrit « ç » devant « o » pour le son [s] : « garçon ».",
"review_tags": [
"sons_lettres",
"cedille"
],
"review_status": "draft"
}
@@ -0,0 +1,23 @@
{
"id": "ce1_cedille_qcm_01",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_c_cedille",
"difficulty": 1,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "Le petit ... joue au ballon.",
"answers": [
"garçon",
"garcon"
],
"correct_answer": 0,
"hint": "Devant « o », pour entendre [s], il faut une cédille.",
"explanation": "Devant « o », « c » se lit [k] ; pour entendre [s], on écrit « ç » : « garçon ».",
"review_tags": [
"sons_lettres",
"cedille"
],
"review_status": "draft"
}
@@ -0,0 +1,23 @@
{
"id": "ce1_cedille_qcm_02",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_c_cedille",
"difficulty": 1,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "Ma maîtresse nous donne une ... à apprendre.",
"answers": [
"leçon",
"lecon"
],
"correct_answer": 0,
"hint": "Devant « o », pour entendre [s], il faut une cédille.",
"explanation": "On écrit « ç » devant « o » pour le son [s] : « leçon ».",
"review_tags": [
"sons_lettres",
"cedille"
],
"review_status": "draft"
}
@@ -0,0 +1,23 @@
{
"id": "ce1_cedille_qcm_03",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_c_cedille",
"difficulty": 1,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "... va très bien, merci !",
"answers": [
"Ça",
"Ca"
],
"correct_answer": 0,
"hint": "Devant « a », pour entendre [s], il faut une cédille.",
"explanation": "On écrit « ç » devant « a » pour le son [s] : « ça ».",
"review_tags": [
"sons_lettres",
"cedille"
],
"review_status": "draft"
}
@@ -0,0 +1,23 @@
{
"id": "ce1_cedille_qcm_04",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_c_cedille",
"difficulty": 2,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "Le ... construit un mur en pierre.",
"answers": [
"maçon",
"macon"
],
"correct_answer": 0,
"hint": "Le son [s] devant « o » s'écrit avec une cédille.",
"explanation": "On écrit « ç » devant « o » pour le son [s] : « maçon ».",
"review_tags": [
"sons_lettres",
"cedille"
],
"review_status": "draft"
}
@@ -0,0 +1,23 @@
{
"id": "ce1_cedille_qcm_05",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_c_cedille",
"difficulty": 2,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "La ... de la maison est blanche.",
"answers": [
"façade",
"facade"
],
"correct_answer": 0,
"hint": "Devant « a », pour entendre [s], il faut une cédille.",
"explanation": "On écrit « ç » devant « a » pour le son [s] : « façade ».",
"review_tags": [
"sons_lettres",
"cedille"
],
"review_status": "draft"
}
@@ -0,0 +1,23 @@
{
"id": "ce1_cedille_qcm_06",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_c_cedille",
"difficulty": 2,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "Mon livre est écrit en ... .",
"answers": [
"français",
"francais"
],
"correct_answer": 0,
"hint": "Devant « a », le son [s] demande une cédille.",
"explanation": "On écrit « ç » devant « a » pour le son [s] : « français ».",
"review_tags": [
"sons_lettres",
"cedille"
],
"review_status": "draft"
}
@@ -0,0 +1,23 @@
{
"id": "ce1_cedille_qcm_07",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_c_cedille",
"difficulty": 3,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "Papa a ... une lettre ce matin.",
"answers": [
"reçu",
"recu"
],
"correct_answer": 0,
"hint": "Devant « u », pour entendre [s], il faut une cédille.",
"explanation": "On écrit « ç » devant « u » pour le son [s] : « reçu ».",
"review_tags": [
"sons_lettres",
"cedille"
],
"review_status": "draft"
}
@@ -0,0 +1,23 @@
{
"id": "ce1_cedille_qcm_08",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_c_cedille",
"difficulty": 3,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "Les enfants forment un grand ... dans la cour.",
"answers": [
"cercle",
"çercle"
],
"correct_answer": 0,
"hint": "Devant « e », la lettre « c » donne déjà le son [s].",
"explanation": "Devant « e » et « i », « c » se lit [s] tout seul : pas de cédille, on écrit « cercle ».",
"review_tags": [
"sons_lettres",
"cedille"
],
"review_status": "draft"
}
@@ -0,0 +1,49 @@
{
"id": "ce1_m_mbp_correction_01",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_m_devant_mbp",
"difficulty": 1,
"type": "sentence_correction",
"instruction": "Touche le mot qui contient une erreur, puis corrige-le.",
"tokens": [
{
"text": "Maman",
"correct": true
},
{
"text": "coupe",
"correct": true
},
{
"text": "du",
"correct": true
},
{
"text": "janbon",
"correct": false,
"expected": "jambon",
"rule_id": "regle_m_devant_mbp"
},
{
"text": "pour",
"correct": true
},
{
"text": "le",
"correct": true
},
{
"text": "pique-nique.",
"correct": true
}
],
"hint": "Regarde la lettre qui suit : un « b ».",
"explanation": "Devant « b », on écrit « m » : « jambon ».",
"review_tags": [
"sons_lettres",
"m_mbp"
],
"review_status": "draft"
}
@@ -0,0 +1,45 @@
{
"id": "ce1_m_mbp_correction_02",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_m_devant_mbp",
"difficulty": 2,
"type": "sentence_correction",
"instruction": "Touche le mot qui contient une erreur, puis corrige-le.",
"tokens": [
{
"text": "Le",
"correct": true
},
{
"text": "clown",
"correct": true
},
{
"text": "souffle",
"correct": true
},
{
"text": "dans",
"correct": true
},
{
"text": "sa",
"correct": true
},
{
"text": "tronpette.",
"correct": false,
"expected": "trompette.",
"rule_id": "regle_m_devant_mbp"
}
],
"hint": "Devant « p », quelle lettre faut-il écrire ?",
"explanation": "Devant « p », on écrit « m » : « trompette ».",
"review_tags": [
"sons_lettres",
"m_mbp"
],
"review_status": "draft"
}
@@ -0,0 +1,49 @@
{
"id": "ce1_m_mbp_correction_03",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_m_devant_mbp",
"difficulty": 2,
"type": "sentence_correction",
"instruction": "Touche le mot qui contient une erreur, puis corrige-le.",
"tokens": [
{
"text": "Il",
"correct": true
},
{
"text": "faut",
"correct": true
},
{
"text": "changer",
"correct": true
},
{
"text": "l'anpoule",
"correct": false,
"expected": "l'ampoule",
"rule_id": "regle_m_devant_mbp"
},
{
"text": "de",
"correct": true
},
{
"text": "la",
"correct": true
},
{
"text": "cuisine.",
"correct": true
}
],
"hint": "Devant « p », quelle lettre faut-il écrire ?",
"explanation": "Devant « p », on écrit « m » : « ampoule ».",
"review_tags": [
"sons_lettres",
"m_mbp"
],
"review_status": "draft"
}
@@ -0,0 +1,53 @@
{
"id": "ce1_m_mbp_correction_04",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_m_devant_mbp",
"difficulty": 3,
"type": "sentence_correction",
"instruction": "Touche le mot qui contient une erreur, puis corrige-le.",
"tokens": [
{
"text": "Lola",
"correct": true
},
{
"text": "va",
"correct": true
},
{
"text": "enmener",
"correct": false,
"expected": "emmener",
"rule_id": "regle_m_devant_mbp"
},
{
"text": "son",
"correct": true
},
{
"text": "chien",
"correct": true
},
{
"text": "chez",
"correct": true
},
{
"text": "le",
"correct": true
},
{
"text": "vétérinaire.",
"correct": true
}
],
"hint": "Devant un « m », on écrit aussi « m ».",
"explanation": "Devant « m », on écrit « m » : « emmener » (deux m).",
"review_tags": [
"sons_lettres",
"m_mbp"
],
"review_status": "draft"
}
+23
View File
@@ -0,0 +1,23 @@
{
"id": "ce1_m_mbp_qcm_01",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_m_devant_mbp",
"difficulty": 1,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "Papa allume la ... près du lit.",
"answers": [
"lampe",
"lanpe"
],
"correct_answer": 0,
"hint": "Après la voyelle, on entend [p] : quelle lettre faut-il avant ?",
"explanation": "Devant « p », on écrit « m » : « lampe ».",
"review_tags": [
"sons_lettres",
"m_mbp"
],
"review_status": "draft"
}
+23
View File
@@ -0,0 +1,23 @@
{
"id": "ce1_m_mbp_qcm_02",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_m_devant_mbp",
"difficulty": 1,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "Le garçon a mal à la ... .",
"answers": [
"jambe",
"janbe"
],
"correct_answer": 0,
"hint": "Regarde la lettre qui suit : un « b ».",
"explanation": "Devant « b », on écrit « m » : « jambe ».",
"review_tags": [
"sons_lettres",
"m_mbp"
],
"review_status": "draft"
}
+23
View File
@@ -0,0 +1,23 @@
{
"id": "ce1_m_mbp_qcm_03",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_m_devant_mbp",
"difficulty": 1,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "Je colle un ... sur l'enveloppe.",
"answers": [
"timbre",
"tinbre"
],
"correct_answer": 0,
"hint": "Regarde la lettre qui suit : un « b ».",
"explanation": "Devant « b », on écrit « m » : « timbre ».",
"review_tags": [
"sons_lettres",
"m_mbp"
],
"review_status": "draft"
}
+23
View File
@@ -0,0 +1,23 @@
{
"id": "ce1_m_mbp_qcm_04",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_m_devant_mbp",
"difficulty": 2,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "Le ... éteint l'incendie.",
"answers": [
"pompier",
"ponpier"
],
"correct_answer": 0,
"hint": "Devant « p », quelle lettre faut-il écrire ?",
"explanation": "Devant « p », on écrit « m » : « pompier ».",
"review_tags": [
"sons_lettres",
"m_mbp"
],
"review_status": "draft"
}
+23
View File
@@ -0,0 +1,23 @@
{
"id": "ce1_m_mbp_qcm_05",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_m_devant_mbp",
"difficulty": 2,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "Il joue du ... dans la fanfare.",
"answers": [
"tambour",
"tanbour"
],
"correct_answer": 0,
"hint": "Devant « b », quelle lettre faut-il écrire ?",
"explanation": "Devant « b », on écrit « m » : « tambour ».",
"review_tags": [
"sons_lettres",
"m_mbp"
],
"review_status": "draft"
}
+23
View File
@@ -0,0 +1,23 @@
{
"id": "ce1_m_mbp_qcm_06",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_m_devant_mbp",
"difficulty": 2,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "Nous dormons sous une ... dans le camping.",
"answers": [
"tente",
"temte"
],
"correct_answer": 0,
"hint": "Attention : la lettre qui suit n'est ni « m », ni « b », ni « p ».",
"explanation": "Devant « t », on écrit « n » : « tente ». La règle du « m » ne vaut que devant m, b, p.",
"review_tags": [
"sons_lettres",
"m_mbp"
],
"review_status": "draft"
}
+23
View File
@@ -0,0 +1,23 @@
{
"id": "ce1_m_mbp_qcm_07",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_m_devant_mbp",
"difficulty": 3,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "Ma ... est au premier étage.",
"answers": [
"chambre",
"chanbre"
],
"correct_answer": 0,
"hint": "Regarde la lettre qui suit : un « b ».",
"explanation": "Devant « b », on écrit « m » : « chambre ».",
"review_tags": [
"sons_lettres",
"m_mbp"
],
"review_status": "draft"
}
+23
View File
@@ -0,0 +1,23 @@
{
"id": "ce1_m_mbp_qcm_08",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_m_devant_mbp",
"difficulty": 3,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "Les vaches mangent dans le ... .",
"answers": [
"champ",
"chanp"
],
"correct_answer": 0,
"hint": "Devant « p », quelle lettre faut-il écrire ?",
"explanation": "Devant « p », on écrit « m » : « champ ».",
"review_tags": [
"sons_lettres",
"m_mbp"
],
"review_status": "draft"
}
@@ -0,0 +1,45 @@
{
"id": "ce1_s_ss_correction_01",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_s_ss",
"difficulty": 1,
"type": "sentence_correction",
"instruction": "Touche le mot qui contient une erreur, puis corrige-le.",
"tokens": [
{
"text": "La",
"correct": true
},
{
"text": "fillette",
"correct": true
},
{
"text": "sent",
"correct": true
},
{
"text": "une",
"correct": true
},
{
"text": "belle",
"correct": true
},
{
"text": "roze.",
"correct": false,
"expected": "rose.",
"rule_id": "regle_s_ss"
}
],
"hint": "Écoute : tu entends [z], comme dans « maison ».",
"explanation": "On entend [z] entre deux voyelles : un seul « s », on écrit « rose ».",
"review_tags": [
"sons_lettres",
"s_ss"
],
"review_status": "draft"
}
@@ -0,0 +1,49 @@
{
"id": "ce1_s_ss_correction_02",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_s_ss",
"difficulty": 2,
"type": "sentence_correction",
"instruction": "Touche le mot qui contient une erreur, puis corrige-le.",
"tokens": [
{
"text": "Tom",
"correct": true
},
{
"text": "pouse",
"correct": false,
"expected": "pousse",
"rule_id": "regle_s_ss"
},
{
"text": "la",
"correct": true
},
{
"text": "porte",
"correct": true
},
{
"text": "de",
"correct": true
},
{
"text": "la",
"correct": true
},
{
"text": "cabane.",
"correct": true
}
],
"hint": "Tu entends le son [s] entre deux voyelles.",
"explanation": "Pour entendre [s] entre deux voyelles, on écrit « ss » : « pousse ».",
"review_tags": [
"sons_lettres",
"s_ss"
],
"review_status": "draft"
}
@@ -0,0 +1,49 @@
{
"id": "ce1_s_ss_correction_03",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_s_ss",
"difficulty": 2,
"type": "sentence_correction",
"instruction": "Touche le mot qui contient une erreur, puis corrige-le.",
"tokens": [
{
"text": "Sara",
"correct": true
},
{
"text": "se",
"correct": true
},
{
"text": "brose",
"correct": false,
"expected": "brosse",
"rule_id": "regle_s_ss"
},
{
"text": "les",
"correct": true
},
{
"text": "dents",
"correct": true
},
{
"text": "le",
"correct": true
},
{
"text": "soir.",
"correct": true
}
],
"hint": "Tu entends le son [s] entre deux voyelles.",
"explanation": "Pour entendre [s] entre deux voyelles, on écrit « ss » : « brosse ».",
"review_tags": [
"sons_lettres",
"s_ss"
],
"review_status": "draft"
}
@@ -0,0 +1,53 @@
{
"id": "ce1_s_ss_correction_04",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_s_ss",
"difficulty": 3,
"type": "sentence_correction",
"instruction": "Touche le mot qui contient une erreur, puis corrige-le.",
"tokens": [
{
"text": "Les",
"correct": true
},
{
"text": "enfants",
"correct": true
},
{
"text": "sont",
"correct": true
},
{
"text": "asis",
"correct": false,
"expected": "assis",
"rule_id": "regle_s_ss"
},
{
"text": "autour",
"correct": true
},
{
"text": "de",
"correct": true
},
{
"text": "la",
"correct": true
},
{
"text": "table.",
"correct": true
}
],
"hint": "Écoute le son [s] entre le « a » et le « i ».",
"explanation": "Pour entendre [s] entre deux voyelles, on écrit « ss » : « assis ».",
"review_tags": [
"sons_lettres",
"s_ss"
],
"review_status": "draft"
}
+23
View File
@@ -0,0 +1,23 @@
{
"id": "ce1_s_ss_qcm_01",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_s_ss",
"difficulty": 1,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "Le chat boit dans une ... .",
"answers": [
"tasse",
"tase"
],
"correct_answer": 0,
"hint": "Pour entendre [s] entre deux voyelles, il faut deux s.",
"explanation": "Entre deux voyelles, on écrit « ss » pour le son [s] : « tasse ».",
"review_tags": [
"sons_lettres",
"s_ss"
],
"review_status": "draft"
}
+23
View File
@@ -0,0 +1,23 @@
{
"id": "ce1_s_ss_qcm_02",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_s_ss",
"difficulty": 1,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "Il y a une ... près de la table.",
"answers": [
"chaise",
"chaisse"
],
"correct_answer": 0,
"hint": "Ici, on entend le son [z], comme dans « rose ».",
"explanation": "On entend [z] entre deux voyelles : un seul « s » suffit, on écrit « chaise ».",
"review_tags": [
"sons_lettres",
"s_ss"
],
"review_status": "draft"
}
+23
View File
@@ -0,0 +1,23 @@
{
"id": "ce1_s_ss_qcm_03",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_s_ss",
"difficulty": 1,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "Ma ... est près de l'école.",
"answers": [
"maison",
"maisson"
],
"correct_answer": 0,
"hint": "Écoute : tu entends [z], pas [s].",
"explanation": "On entend [z] entre deux voyelles : un seul « s », on écrit « maison ».",
"review_tags": [
"sons_lettres",
"s_ss"
],
"review_status": "draft"
}
+23
View File
@@ -0,0 +1,23 @@
{
"id": "ce1_s_ss_qcm_04",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_s_ss",
"difficulty": 2,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "Un ... nage dans l'aquarium.",
"answers": [
"poisson",
"poison"
],
"correct_answer": 0,
"hint": "Pense à l'animal qui vit dans l'eau, et au son [s].",
"explanation": "Pour le son [s] entre deux voyelles, on écrit « ss » : « poisson ».",
"review_tags": [
"sons_lettres",
"s_ss"
],
"review_status": "draft"
}
+23
View File
@@ -0,0 +1,23 @@
{
"id": "ce1_s_ss_qcm_05",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_s_ss",
"difficulty": 2,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "Un petit ... chante sur la branche.",
"answers": [
"oiseau",
"oisseau"
],
"correct_answer": 0,
"hint": "Écoute bien : on entend [z] dans ce mot.",
"explanation": "On entend [z] entre deux voyelles : un seul « s », on écrit « oiseau ».",
"review_tags": [
"sons_lettres",
"s_ss"
],
"review_status": "draft"
}
+23
View File
@@ -0,0 +1,23 @@
{
"id": "ce1_s_ss_qcm_06",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_s_ss",
"difficulty": 2,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "Léa fait un beau ... de son chat.",
"answers": [
"dessin",
"desin"
],
"correct_answer": 0,
"hint": "Le son [s] entre deux voyelles s'écrit avec deux s.",
"explanation": "Pour entendre [s] entre « e » et « i », on écrit « ss » : « dessin ».",
"review_tags": [
"sons_lettres",
"s_ss"
],
"review_status": "draft"
}
+23
View File
@@ -0,0 +1,23 @@
{
"id": "ce1_s_ss_qcm_07",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_s_ss",
"difficulty": 3,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "La maîtresse entre dans la ... .",
"answers": [
"classe",
"clase"
],
"correct_answer": 0,
"hint": "Entre « a » et « e », quel son entends-tu ?",
"explanation": "Pour le son [s] entre deux voyelles, on écrit « ss » : « classe ».",
"review_tags": [
"sons_lettres",
"s_ss"
],
"review_status": "draft"
}
+23
View File
@@ -0,0 +1,23 @@
{
"id": "ce1_s_ss_qcm_08",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"rule_id": "regle_s_ss",
"difficulty": 3,
"type": "multiple_choice",
"instruction": "Choisis le bon mot.",
"question": "Le petit garçon ... sur la glace.",
"answers": [
"glisse",
"glise"
],
"correct_answer": 0,
"hint": "Le son [s] se trouve entre le « i » et le « e ».",
"explanation": "Pour entendre [s] entre deux voyelles, on écrit « ss » : « glisse ».",
"review_tags": [
"sons_lettres",
"s_ss"
],
"review_status": "draft"
}
+8 -5
View File
@@ -11,11 +11,7 @@
"profile_create.confirm_button": "Commencer l'aventure",
"profile_create.cancel_button": "Retour",
"profile_create.name_required_error": "Choisis un prénom avant de continuer.",
"world_map.title": "La forêt des accords",
"world_map.guide_hint": "Choisis un lieu pour commencer l'aventure !",
"world_map.title_ce2": "Le marais des homophones",
"world_map.review_ce1_button": "Revoir le CE1",
"world_map.back_to_ce2_button": "Retour au CE2",
"world_map.status_decouverte": "À découvrir",
"world_map.status_en_acquisition": "En entraînement",
"world_map.status_en_consolidation": "En progrès",
@@ -117,5 +113,12 @@
"adult.delete_confirm_message": "Effacer pour toujours le profil « %s » et toute sa progression ? Pense à l'exporter avant si tu veux pouvoir le restaurer.",
"adult.delete_confirm_yes": "Oui, supprimer",
"adult.delete_confirm_no": "Non, annuler",
"adult.delete_done": "Profil supprimé."
"adult.delete_done": "Profil supprimé.",
"world_map.review_level_button": "Revoir le %s",
"world_map.back_to_level_button": "Retour au %s",
"world_map.other_region_button": "Aller : %s",
"profile_create.level_cm1": "CM1",
"profile_create.level_cm2": "CM2",
"skill.sons_et_lettres": "Sons et lettres",
"world_map.coming_soon": "Ce niveau arrive bientôt !"
}
@@ -0,0 +1,12 @@
{
"mission_id": "mission_22_seau_et_pelle",
"title": "Le seau et la pelle",
"narrative_context": "Sur la plage, un seau est rempli de mots. Choisis la bonne écriture pour que le château de sable tienne debout !",
"rule_id": "regle_s_ss",
"exercise_type": "multiple_choice",
"map_position": {
"x": 0.15,
"y": 0.15
},
"review_status": "draft"
}
@@ -0,0 +1,12 @@
{
"mission_id": "mission_23_panier_coquillages",
"title": "Le panier à coquillages",
"narrative_context": "Des coquillages portent un mot mal écrit. Trouve celui qui cloche et remets-le d'aplomb.",
"rule_id": "regle_s_ss",
"exercise_type": "sentence_correction",
"map_position": {
"x": 0.5,
"y": 0.15
},
"review_status": "draft"
}
@@ -0,0 +1,12 @@
{
"mission_id": "mission_24_coquille_murmure",
"title": "La coquille qui murmure",
"narrative_context": "Colle ton oreille à la coquille : elle murmure une phrase, une seule fois. Écoute bien et écris-la en entier.",
"rule_id": "regle_s_ss",
"exercise_type": "dictation",
"map_position": {
"x": 0.85,
"y": 0.15
},
"review_status": "draft"
}
@@ -0,0 +1,12 @@
{
"mission_id": "mission_25_phare_du_petit_c",
"title": "Le phare du petit ç",
"narrative_context": "Le gardien du phare a perdu une cédille. Aide-le à choisir la bonne écriture pour guider les bateaux.",
"rule_id": "regle_c_cedille",
"exercise_type": "multiple_choice",
"map_position": {
"x": 0.15,
"y": 0.5
},
"review_status": "draft"
}
@@ -0,0 +1,12 @@
{
"mission_id": "mission_26_balancoire_du_port",
"title": "La balançoire du port",
"narrative_context": "Sur le port, des lettres se sont balancées trop loin. Trouve le mot fautif et corrige-le.",
"rule_id": "regle_c_cedille",
"exercise_type": "sentence_correction",
"map_position": {
"x": 0.5,
"y": 0.5
},
"review_status": "draft"
}
@@ -0,0 +1,12 @@
{
"mission_id": "mission_27_cerf_volant_parleur",
"title": "Le cerf-volant parleur",
"narrative_context": "Le cerf-volant te souffle une phrase, une seule fois. Écoute-le bien et écris exactement ce qu'il dit.",
"rule_id": "regle_c_cedille",
"exercise_type": "dictation",
"map_position": {
"x": 0.85,
"y": 0.5
},
"review_status": "draft"
}
@@ -0,0 +1,12 @@
{
"mission_id": "mission_28_chateau_de_sable",
"title": "Le château de sable",
"narrative_context": "Ton château de sable a des tours en « m » et en « n ». Choisis la bonne lettre pour qu'il résiste aux vagues.",
"rule_id": "regle_m_devant_mbp",
"exercise_type": "multiple_choice",
"map_position": {
"x": 0.15,
"y": 0.85
},
"review_status": "draft"
}
@@ -0,0 +1,12 @@
{
"mission_id": "mission_29_bateau_des_pompiers",
"title": "Le bateau des pompiers",
"narrative_context": "Les pompiers du port ont un message mal écrit. Repère le mot fautif et remplace-le par le bon.",
"rule_id": "regle_m_devant_mbp",
"exercise_type": "sentence_correction",
"map_position": {
"x": 0.5,
"y": 0.85
},
"review_status": "draft"
}
@@ -0,0 +1,12 @@
{
"mission_id": "mission_30_tambour_de_la_plage",
"title": "Le tambour de la plage",
"narrative_context": "Le tambour de la plage bat une phrase, une seule fois. Écoute bien et écris-la sans faute.",
"rule_id": "regle_m_devant_mbp",
"exercise_type": "dictation",
"map_position": {
"x": 0.85,
"y": 0.85
},
"review_status": "draft"
}
+9
View File
@@ -0,0 +1,9 @@
{
"rule_id": "regle_c_cedille",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"statement": "Devant a, o ou u, la lettre « c » se prononce [k]. Pour entendre le son [s], on écrit « ç » avec une cédille.",
"example": "Un garçon. Une leçon. Ça va.",
"review_status": "draft"
}
+9
View File
@@ -0,0 +1,9 @@
{
"rule_id": "regle_m_devant_mbp",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"statement": "Devant les lettres m, b et p, on écrit « m » et non « n ».",
"example": "Une lampe. Une jambe. Un timbre.",
"review_status": "draft"
}
+9
View File
@@ -0,0 +1,9 @@
{
"rule_id": "regle_s_ss",
"level": "CE1",
"domain": "orthographe",
"skill": "sons_et_lettres",
"statement": "Entre deux voyelles, la lettre « s » seule se prononce [z]. Pour entendre le son [s], on écrit « ss ».",
"example": "Une rose. Un poisson. Une tasse.",
"review_status": "draft"
}
+4 -1
View File
@@ -10,10 +10,13 @@
],
"additionalProperties": false,
"properties": {
"level": { "type": "string", "enum": ["CE1", "CE2"] },
"level": { "type": "string", "enum": ["CE1", "CE2", "CM1", "CM2"] },
"region_id": { "type": "string", "pattern": "^[a-z][a-z0-9_]*$" },
"chapter_id": { "type": "string", "pattern": "^[a-z][a-z0-9_]*$" },
"title": { "type": "string", "minLength": 1 },
"region_title": { "type": "string", "minLength": 1 },
"order": { "type": "integer", "minimum": 1, "maximum": 3 },
"backdrop": { "type": "string", "enum": ["forest", "marsh", "beach"] },
"rule_ids": {
"type": "array",
"minItems": 1,
+1 -1
View File
@@ -16,7 +16,7 @@
"additionalProperties": false,
"properties": {
"id": { "type": "string", "pattern": "^[a-z][a-z0-9_]*$" },
"level": { "type": "string", "enum": ["CE1", "CE2"] },
"level": { "type": "string", "enum": ["CE1", "CE2", "CM1", "CM2"] },
"domain": { "type": "string", "enum": ["grammaire", "orthographe"] },
"rule_ids": {
"type": "array",
@@ -20,7 +20,7 @@
"additionalProperties": false,
"properties": {
"id": { "type": "string", "pattern": "^[a-z][a-z0-9_]*$" },
"level": { "type": "string", "enum": ["CE1", "CE2"] },
"level": { "type": "string", "enum": ["CE1", "CE2", "CM1", "CM2"] },
"domain": { "type": "string", "enum": ["grammaire", "orthographe"] },
"skill": { "type": "string", "pattern": "^[a-z][a-z0-9_]*$" },
"rule_id": { "type": "string", "pattern": "^[a-z][a-z0-9_]*$" },
@@ -18,7 +18,7 @@
"additionalProperties": false,
"properties": {
"id": { "type": "string", "pattern": "^[a-z][a-z0-9_]*$" },
"level": { "type": "string", "enum": ["CE1", "CE2"] },
"level": { "type": "string", "enum": ["CE1", "CE2", "CM1", "CM2"] },
"domain": { "type": "string", "enum": ["grammaire", "orthographe"] },
"skill": { "type": "string", "pattern": "^[a-z][a-z0-9_]*$" },
"rule_id": { "type": "string", "pattern": "^[a-z][a-z0-9_]*$" },
+1 -1
View File
@@ -12,7 +12,7 @@
"additionalProperties": false,
"properties": {
"rule_id": { "type": "string", "pattern": "^[a-z][a-z0-9_]*$" },
"level": { "type": "string", "enum": ["CE1", "CE2"] },
"level": { "type": "string", "enum": ["CE1", "CE2", "CM1", "CM2"] },
"domain": { "type": "string", "enum": ["grammaire", "orthographe"] },
"skill": { "type": "string", "pattern": "^[a-z][a-z0-9_]*$" },
"statement": { "type": "string", "minLength": 1 },
+1 -1
View File
@@ -16,7 +16,7 @@
"schema_version": { "type": "integer", "minimum": 1 },
"profile_id": { "type": "string", "pattern": "^[a-z][a-z0-9_]*$" },
"display_name": { "type": "string", "minLength": 1 },
"school_level": { "type": "string", "enum": ["CE1", "CE2"] },
"school_level": { "type": "string", "enum": ["CE1", "CE2", "CM1", "CM2"] },
"session_count": { "type": "integer", "minimum": 0 },
"unlocked_regions": { "type": "array", "items": { "type": "string" } },
"skills": {