Add CE2 homophones chapter (a/à, et/est, son/sont, on/ont)

Same directives as the CE1 chapter: 4 rules with a substitution test
each, 8 multiple-choice + 4 sentence corrections + 3 dictées per rule
(draft), 3 missions per rule, Piper audio for the 12 dictées.

21 missions don't fit on one map, so the world map now shows the
missions of the profile's school level (derived from the rule's level,
no data-format change), with a button letting a CE2 profile revisit the
CE1 map. Mission-position guard test now checks each level separately.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Denis Defolie
2026-10-11 21:58:16 +02:00
parent 233cc26452
commit aad229ef7b
113 changed files with 2814 additions and 31 deletions
@@ -0,0 +1,12 @@
{
"mission_id": "mission_10_gue_petits_mots",
"title": "Le gué des petits mots",
"narrative_context": "Pour traverser le gué, il faut poser le bon petit mot sur chaque pierre : « a » ou « à » ? Fais le test du remplacement avant de choisir.",
"rule_id": "regle_homophone_a_a",
"exercise_type": "multiple_choice",
"map_position": {
"x": 0.12,
"y": 0.15
},
"review_status": "draft"
}
@@ -0,0 +1,12 @@
{
"mission_id": "mission_11_moulin_pales",
"title": "Le moulin aux pales mélangées",
"narrative_context": "Les pales du moulin portent des mots, mais un « a » et un « à » se sont échangés. Trouve l'intrus et remets-le en place.",
"rule_id": "regle_homophone_a_a",
"exercise_type": "sentence_correction",
"map_position": {
"x": 0.12,
"y": 0.5
},
"review_status": "draft"
}
@@ -0,0 +1,12 @@
{
"mission_id": "mission_12_grotte_resonante",
"title": "La grotte résonante",
"narrative_context": "La grotte te répète une phrase, une seule fois. Écoute bien et écris-la en pensant à tes petits mots.",
"rule_id": "regle_homophone_a_a",
"exercise_type": "dictation",
"map_position": {
"x": 0.12,
"y": 0.85
},
"review_status": "draft"
}
+12
View File
@@ -0,0 +1,12 @@
{
"mission_id": "mission_13_pont_levis",
"title": "Le pont-levis des mots",
"narrative_context": "Le pont-levis ne s'abaisse que si tu choisis le bon mot : « et » ou « est » ? Essaie de remplacer par « était ».",
"rule_id": "regle_homophone_et_est",
"exercise_type": "multiple_choice",
"map_position": {
"x": 0.375,
"y": 0.15
},
"review_status": "draft"
}
@@ -0,0 +1,12 @@
{
"mission_id": "mission_14_tour_horloge",
"title": "La tour de l'horloge",
"narrative_context": "Les aiguilles de l'horloge sont déréglées : un « et » et un « est » ont changé de place. Remets-les d'aplomb.",
"rule_id": "regle_homophone_et_est",
"exercise_type": "sentence_correction",
"map_position": {
"x": 0.375,
"y": 0.5
},
"review_status": "draft"
}
@@ -0,0 +1,12 @@
{
"mission_id": "mission_15_source_chantante",
"title": "La source chantante",
"narrative_context": "La source chante une phrase, une seule fois. Écoute-la bien et écris exactement ce qu'elle chante.",
"rule_id": "regle_homophone_et_est",
"exercise_type": "dictation",
"map_position": {
"x": 0.375,
"y": 0.85
},
"review_status": "draft"
}
@@ -0,0 +1,12 @@
{
"mission_id": "mission_16_verger_bons_choix",
"title": "Le verger des bons choix",
"narrative_context": "Dans le verger, chaque fruit attend son étiquette : « son » ou « sont » ? Aide le jardinier à ne pas se tromper.",
"rule_id": "regle_homophone_son_sont",
"exercise_type": "multiple_choice",
"map_position": {
"x": 0.625,
"y": 0.15
},
"review_status": "draft"
}
@@ -0,0 +1,12 @@
{
"mission_id": "mission_17_serre_etiquettes",
"title": "La serre aux étiquettes",
"narrative_context": "Dans la serre, des étiquettes ont été mal posées. Repère celle qui ne va pas et remplace-la par la bonne.",
"rule_id": "regle_homophone_son_sont",
"exercise_type": "sentence_correction",
"map_position": {
"x": 0.625,
"y": 0.5
},
"review_status": "draft"
}
@@ -0,0 +1,12 @@
{
"mission_id": "mission_18_fontaine_murmures",
"title": "La fontaine aux murmures",
"narrative_context": "La fontaine murmure une phrase, une seule fois. Tends l'oreille et écris-la sans faute.",
"rule_id": "regle_homophone_son_sont",
"exercise_type": "dictation",
"map_position": {
"x": 0.625,
"y": 0.85
},
"review_status": "draft"
}
@@ -0,0 +1,12 @@
{
"mission_id": "mission_19_foire_petits_mots",
"title": "La foire aux petits mots",
"narrative_context": "À la foire, un jeu demande de choisir entre « on » et « ont ». Fais le test du remplacement pour gagner !",
"rule_id": "regle_homophone_on_ont",
"exercise_type": "multiple_choice",
"map_position": {
"x": 0.88,
"y": 0.15
},
"review_status": "draft"
}
@@ -0,0 +1,12 @@
{
"mission_id": "mission_20_atelier_conteur",
"title": "L'atelier du conteur",
"narrative_context": "Dans l'atelier, une histoire a des mots échangés. Trouve le mot qui ne va pas et corrige-le.",
"rule_id": "regle_homophone_on_ont",
"exercise_type": "sentence_correction",
"map_position": {
"x": 0.88,
"y": 0.5
},
"review_status": "draft"
}
@@ -0,0 +1,12 @@
{
"mission_id": "mission_21_colline_echos",
"title": "La colline aux échos",
"narrative_context": "La colline répète une phrase, une seule fois. Écoute bien et écris-la en entier.",
"rule_id": "regle_homophone_on_ont",
"exercise_type": "dictation",
"map_position": {
"x": 0.88,
"y": 0.85
},
"review_status": "draft"
}