diff --git a/README-EN.md b/README-EN.md index a6ba864..2a6ad97 100644 --- a/README-EN.md +++ b/README-EN.md @@ -2,7 +2,7 @@ An educational French-language game for 7-9 year olds (French grades CE1-CE2): an offline 2D adventure with an explorable map, a guide character, and grammar, spelling, and dictation exercises. -Open source project, in development. Current status: version 0.6.0, playable offline on Linux and Windows — profiles, saves (with export and restore in the adult area), stars and an item collection, sound effects and music, settings (volumes, text size, animations), a progress dashboard for adults, three exercise types (multiple choice, sentence correction, dictation), CE1 in two boards (noun-group agreement; sounds and letters) and a CE2 board on grammatical homophones (a/à, et/est, son/sont, on/ont), 30 missions; CM1 and CM2 are planned. All pedagogical content is still `draft` (awaiting validation) and dictation voices are placeholders (see `assets/CREDITS.md`; see `docs/specs/decisions.md` for scoping decisions and `docs/specs/cahier-des-charges.md` for the full specification, both in French — this is a French-curriculum product). +Open source project, in development. Current status: version 0.7.0, playable offline on Linux and Windows — profiles, saves (with export and restore in the adult area), stars and an item collection, sound effects and music, settings (volumes, text size, animations), a progress dashboard for adults, three exercise types (multiple choice, sentence correction, dictation), CE1 and CE2 in three boards each (agreement, sounds and letters, present-tense verbs; homophones, verbs, letters and words), 57 missions; CM1 and CM2 are planned. All pedagogical content is still `draft` (awaiting validation) and dictation voices are placeholders (see `assets/CREDITS.md`; see `docs/specs/decisions.md` for scoping decisions and `docs/specs/cahier-des-charges.md` for the full specification, both in French — this is a French-curriculum product). ## Tech stack diff --git a/README.md b/README.md index f89352c..145f688 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Jeu éducatif de français pour les CE1-CE2 (7-9 ans) : une aventure 2D hors ligne, avec une carte à explorer, un personnage guide, et des exercices de grammaire, d'orthographe et de dictées. -Projet open source, en développement. Statut actuel : version 0.6.0, jouable hors ligne sur Linux et Windows — profils, sauvegardes (avec export et restauration dans l'espace adulte), étoiles et collection d'objets, sons et musique, réglages (volumes, taille du texte, animations), tableau de progrès pour l'adulte, trois types d'exercices (choix multiple, correction de phrase, dictée), CE1 en deux tableaux (accords dans le groupe nominal ; sons et lettres) et CE2 « homophones grammaticaux » (a/à, et/est, son/sont, on/ont), 30 missions ; CM1 et CM2 sont prévus. Contenu pédagogique entièrement en brouillon (`draft`, à valider) et voix des dictées provisoires (voir `assets/CREDITS.md` ; voir `docs/specs/decisions.md` pour les décisions de cadrage et `docs/specs/cahier-des-charges.md` pour la spécification complète). +Projet open source, en développement. Statut actuel : version 0.7.0, jouable hors ligne sur Linux et Windows — profils, sauvegardes (avec export et restauration dans l'espace adulte), étoiles et collection d'objets, sons et musique, réglages (volumes, taille du texte, animations), tableau de progrès pour l'adulte, trois types d'exercices (choix multiple, correction de phrase, dictée), CE1 et CE2 en trois tableaux chacun (accords, sons et lettres, verbes au présent ; homophones, verbes, lettres et mots), 57 missions ; CM1 et CM2 sont prévus. Contenu pédagogique entièrement en brouillon (`draft`, à valider) et voix des dictées provisoires (voir `assets/CREDITS.md` ; voir `docs/specs/decisions.md` pour les décisions de cadrage et `docs/specs/cahier-des-charges.md` pour la spécification complète). ## Pile technique diff --git a/assets/audio/dictations/ce1_avoir_dictee_01.ogg b/assets/audio/dictations/ce1_avoir_dictee_01.ogg new file mode 100644 index 0000000..fb1918b Binary files /dev/null and b/assets/audio/dictations/ce1_avoir_dictee_01.ogg differ diff --git a/assets/audio/dictations/ce1_avoir_dictee_01.ogg.import b/assets/audio/dictations/ce1_avoir_dictee_01.ogg.import new file mode 100644 index 0000000..9c4e548 --- /dev/null +++ b/assets/audio/dictations/ce1_avoir_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dpm5yn6v0ocjo" +path="res://.godot/imported/ce1_avoir_dictee_01.ogg-90df7e5563f41fd1bd07d5e49cb26dbb.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce1_avoir_dictee_01.ogg" +dest_files=["res://.godot/imported/ce1_avoir_dictee_01.ogg-90df7e5563f41fd1bd07d5e49cb26dbb.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce1_avoir_dictee_02.ogg b/assets/audio/dictations/ce1_avoir_dictee_02.ogg new file mode 100644 index 0000000..114e1f6 Binary files /dev/null and b/assets/audio/dictations/ce1_avoir_dictee_02.ogg differ diff --git a/assets/audio/dictations/ce1_avoir_dictee_02.ogg.import b/assets/audio/dictations/ce1_avoir_dictee_02.ogg.import new file mode 100644 index 0000000..47bdba1 --- /dev/null +++ b/assets/audio/dictations/ce1_avoir_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://diwf1jfr6q2jq" +path="res://.godot/imported/ce1_avoir_dictee_02.ogg-5bba1fb96da238267aa53f2b7376a9b2.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce1_avoir_dictee_02.ogg" +dest_files=["res://.godot/imported/ce1_avoir_dictee_02.ogg-5bba1fb96da238267aa53f2b7376a9b2.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce1_avoir_dictee_03.ogg b/assets/audio/dictations/ce1_avoir_dictee_03.ogg new file mode 100644 index 0000000..509aa63 Binary files /dev/null and b/assets/audio/dictations/ce1_avoir_dictee_03.ogg differ diff --git a/assets/audio/dictations/ce1_avoir_dictee_03.ogg.import b/assets/audio/dictations/ce1_avoir_dictee_03.ogg.import new file mode 100644 index 0000000..f60f9fb --- /dev/null +++ b/assets/audio/dictations/ce1_avoir_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://b7cgdioyfla70" +path="res://.godot/imported/ce1_avoir_dictee_03.ogg-362390a241c1ba11276f5871d868545d.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce1_avoir_dictee_03.ogg" +dest_files=["res://.godot/imported/ce1_avoir_dictee_03.ogg-362390a241c1ba11276f5871d868545d.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce1_er_present_dictee_01.ogg b/assets/audio/dictations/ce1_er_present_dictee_01.ogg new file mode 100644 index 0000000..8808933 Binary files /dev/null and b/assets/audio/dictations/ce1_er_present_dictee_01.ogg differ diff --git a/assets/audio/dictations/ce1_er_present_dictee_01.ogg.import b/assets/audio/dictations/ce1_er_present_dictee_01.ogg.import new file mode 100644 index 0000000..f39aab9 --- /dev/null +++ b/assets/audio/dictations/ce1_er_present_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dvu3v24rkfpu8" +path="res://.godot/imported/ce1_er_present_dictee_01.ogg-a2c680176e28901175042bad193c112f.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce1_er_present_dictee_01.ogg" +dest_files=["res://.godot/imported/ce1_er_present_dictee_01.ogg-a2c680176e28901175042bad193c112f.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce1_er_present_dictee_02.ogg b/assets/audio/dictations/ce1_er_present_dictee_02.ogg new file mode 100644 index 0000000..08f0ec3 Binary files /dev/null and b/assets/audio/dictations/ce1_er_present_dictee_02.ogg differ diff --git a/assets/audio/dictations/ce1_er_present_dictee_02.ogg.import b/assets/audio/dictations/ce1_er_present_dictee_02.ogg.import new file mode 100644 index 0000000..50605b9 --- /dev/null +++ b/assets/audio/dictations/ce1_er_present_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://b1c27pqxyc6fr" +path="res://.godot/imported/ce1_er_present_dictee_02.ogg-78394e7b376005230e80f7cf00184aae.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce1_er_present_dictee_02.ogg" +dest_files=["res://.godot/imported/ce1_er_present_dictee_02.ogg-78394e7b376005230e80f7cf00184aae.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce1_er_present_dictee_03.ogg b/assets/audio/dictations/ce1_er_present_dictee_03.ogg new file mode 100644 index 0000000..7d197f2 Binary files /dev/null and b/assets/audio/dictations/ce1_er_present_dictee_03.ogg differ diff --git a/assets/audio/dictations/ce1_er_present_dictee_03.ogg.import b/assets/audio/dictations/ce1_er_present_dictee_03.ogg.import new file mode 100644 index 0000000..7751b17 --- /dev/null +++ b/assets/audio/dictations/ce1_er_present_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dkgvh821q5u34" +path="res://.godot/imported/ce1_er_present_dictee_03.ogg-99c559264b45d983cf1f7b5e2ce64e9e.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce1_er_present_dictee_03.ogg" +dest_files=["res://.godot/imported/ce1_er_present_dictee_03.ogg-99c559264b45d983cf1f7b5e2ce64e9e.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce1_etre_dictee_01.ogg b/assets/audio/dictations/ce1_etre_dictee_01.ogg new file mode 100644 index 0000000..c3d718c Binary files /dev/null and b/assets/audio/dictations/ce1_etre_dictee_01.ogg differ diff --git a/assets/audio/dictations/ce1_etre_dictee_01.ogg.import b/assets/audio/dictations/ce1_etre_dictee_01.ogg.import new file mode 100644 index 0000000..33f5d46 --- /dev/null +++ b/assets/audio/dictations/ce1_etre_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://togw1sxix860" +path="res://.godot/imported/ce1_etre_dictee_01.ogg-e4c545a8d502aa18acb8030fae0d524a.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce1_etre_dictee_01.ogg" +dest_files=["res://.godot/imported/ce1_etre_dictee_01.ogg-e4c545a8d502aa18acb8030fae0d524a.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce1_etre_dictee_02.ogg b/assets/audio/dictations/ce1_etre_dictee_02.ogg new file mode 100644 index 0000000..4660360 Binary files /dev/null and b/assets/audio/dictations/ce1_etre_dictee_02.ogg differ diff --git a/assets/audio/dictations/ce1_etre_dictee_02.ogg.import b/assets/audio/dictations/ce1_etre_dictee_02.ogg.import new file mode 100644 index 0000000..8cff434 --- /dev/null +++ b/assets/audio/dictations/ce1_etre_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://u1qdiurd6i52" +path="res://.godot/imported/ce1_etre_dictee_02.ogg-41e032f32b96352eab8c39c1d90af99a.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce1_etre_dictee_02.ogg" +dest_files=["res://.godot/imported/ce1_etre_dictee_02.ogg-41e032f32b96352eab8c39c1d90af99a.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce1_etre_dictee_03.ogg b/assets/audio/dictations/ce1_etre_dictee_03.ogg new file mode 100644 index 0000000..2c9d1e6 Binary files /dev/null and b/assets/audio/dictations/ce1_etre_dictee_03.ogg differ diff --git a/assets/audio/dictations/ce1_etre_dictee_03.ogg.import b/assets/audio/dictations/ce1_etre_dictee_03.ogg.import new file mode 100644 index 0000000..5d57c14 --- /dev/null +++ b/assets/audio/dictations/ce1_etre_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bv6qraka4ps7a" +path="res://.godot/imported/ce1_etre_dictee_03.ogg-7da73ff1e44b1864297a3237b4d8c8cd.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce1_etre_dictee_03.ogg" +dest_files=["res://.godot/imported/ce1_etre_dictee_03.ogg-7da73ff1e44b1864297a3237b4d8c8cd.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce2_e_er_dictee_01.ogg b/assets/audio/dictations/ce2_e_er_dictee_01.ogg new file mode 100644 index 0000000..f15def2 Binary files /dev/null and b/assets/audio/dictations/ce2_e_er_dictee_01.ogg differ diff --git a/assets/audio/dictations/ce2_e_er_dictee_01.ogg.import b/assets/audio/dictations/ce2_e_er_dictee_01.ogg.import new file mode 100644 index 0000000..132dda0 --- /dev/null +++ b/assets/audio/dictations/ce2_e_er_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://c7tj4rffwi7yl" +path="res://.godot/imported/ce2_e_er_dictee_01.ogg-2a4f97c077c511ebba6d15dfbf2f9f91.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce2_e_er_dictee_01.ogg" +dest_files=["res://.godot/imported/ce2_e_er_dictee_01.ogg-2a4f97c077c511ebba6d15dfbf2f9f91.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce2_e_er_dictee_02.ogg b/assets/audio/dictations/ce2_e_er_dictee_02.ogg new file mode 100644 index 0000000..3b81430 Binary files /dev/null and b/assets/audio/dictations/ce2_e_er_dictee_02.ogg differ diff --git a/assets/audio/dictations/ce2_e_er_dictee_02.ogg.import b/assets/audio/dictations/ce2_e_er_dictee_02.ogg.import new file mode 100644 index 0000000..890db79 --- /dev/null +++ b/assets/audio/dictations/ce2_e_er_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://birps02uhlc2e" +path="res://.godot/imported/ce2_e_er_dictee_02.ogg-3c25b86983d37db352a8e228fd0b083f.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce2_e_er_dictee_02.ogg" +dest_files=["res://.godot/imported/ce2_e_er_dictee_02.ogg-3c25b86983d37db352a8e228fd0b083f.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce2_e_er_dictee_03.ogg b/assets/audio/dictations/ce2_e_er_dictee_03.ogg new file mode 100644 index 0000000..999c90c Binary files /dev/null and b/assets/audio/dictations/ce2_e_er_dictee_03.ogg differ diff --git a/assets/audio/dictations/ce2_e_er_dictee_03.ogg.import b/assets/audio/dictations/ce2_e_er_dictee_03.ogg.import new file mode 100644 index 0000000..6c215ac --- /dev/null +++ b/assets/audio/dictations/ce2_e_er_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://yq2eyfmx82xf" +path="res://.godot/imported/ce2_e_er_dictee_03.ogg-117a216d3c81617f41696ec0112012b7.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce2_e_er_dictee_03.ogg" +dest_files=["res://.godot/imported/ce2_e_er_dictee_03.ogg-117a216d3c81617f41696ec0112012b7.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce2_feminin_dictee_01.ogg b/assets/audio/dictations/ce2_feminin_dictee_01.ogg new file mode 100644 index 0000000..dc3189f Binary files /dev/null and b/assets/audio/dictations/ce2_feminin_dictee_01.ogg differ diff --git a/assets/audio/dictations/ce2_feminin_dictee_01.ogg.import b/assets/audio/dictations/ce2_feminin_dictee_01.ogg.import new file mode 100644 index 0000000..0d8f2e2 --- /dev/null +++ b/assets/audio/dictations/ce2_feminin_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://cjoqtt0pteq2h" +path="res://.godot/imported/ce2_feminin_dictee_01.ogg-758eaa06d4e74f033697cb705a8ba59f.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce2_feminin_dictee_01.ogg" +dest_files=["res://.godot/imported/ce2_feminin_dictee_01.ogg-758eaa06d4e74f033697cb705a8ba59f.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce2_feminin_dictee_02.ogg b/assets/audio/dictations/ce2_feminin_dictee_02.ogg new file mode 100644 index 0000000..14c6a4e Binary files /dev/null and b/assets/audio/dictations/ce2_feminin_dictee_02.ogg differ diff --git a/assets/audio/dictations/ce2_feminin_dictee_02.ogg.import b/assets/audio/dictations/ce2_feminin_dictee_02.ogg.import new file mode 100644 index 0000000..75811d5 --- /dev/null +++ b/assets/audio/dictations/ce2_feminin_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://q11i53n02tt6" +path="res://.godot/imported/ce2_feminin_dictee_02.ogg-6d961d06bb54a630e7d1bb71cac0cfd0.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce2_feminin_dictee_02.ogg" +dest_files=["res://.godot/imported/ce2_feminin_dictee_02.ogg-6d961d06bb54a630e7d1bb71cac0cfd0.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce2_feminin_dictee_03.ogg b/assets/audio/dictations/ce2_feminin_dictee_03.ogg new file mode 100644 index 0000000..611d38a Binary files /dev/null and b/assets/audio/dictations/ce2_feminin_dictee_03.ogg differ diff --git a/assets/audio/dictations/ce2_feminin_dictee_03.ogg.import b/assets/audio/dictations/ce2_feminin_dictee_03.ogg.import new file mode 100644 index 0000000..366b848 --- /dev/null +++ b/assets/audio/dictations/ce2_feminin_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bxcrd5jeh7ytb" +path="res://.godot/imported/ce2_feminin_dictee_03.ogg-afe0ee650a0dfbae42f58d7936840652.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce2_feminin_dictee_03.ogg" +dest_files=["res://.godot/imported/ce2_feminin_dictee_03.ogg-afe0ee650a0dfbae42f58d7936840652.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce2_futur_dictee_01.ogg b/assets/audio/dictations/ce2_futur_dictee_01.ogg new file mode 100644 index 0000000..c4fae69 Binary files /dev/null and b/assets/audio/dictations/ce2_futur_dictee_01.ogg differ diff --git a/assets/audio/dictations/ce2_futur_dictee_01.ogg.import b/assets/audio/dictations/ce2_futur_dictee_01.ogg.import new file mode 100644 index 0000000..3b73c3e --- /dev/null +++ b/assets/audio/dictations/ce2_futur_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://8t2gytrc556h" +path="res://.godot/imported/ce2_futur_dictee_01.ogg-3e14e65d26a73713f6111fe8123c088c.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce2_futur_dictee_01.ogg" +dest_files=["res://.godot/imported/ce2_futur_dictee_01.ogg-3e14e65d26a73713f6111fe8123c088c.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce2_futur_dictee_02.ogg b/assets/audio/dictations/ce2_futur_dictee_02.ogg new file mode 100644 index 0000000..552155a Binary files /dev/null and b/assets/audio/dictations/ce2_futur_dictee_02.ogg differ diff --git a/assets/audio/dictations/ce2_futur_dictee_02.ogg.import b/assets/audio/dictations/ce2_futur_dictee_02.ogg.import new file mode 100644 index 0000000..5b94569 --- /dev/null +++ b/assets/audio/dictations/ce2_futur_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://cdfg5k2hy16oi" +path="res://.godot/imported/ce2_futur_dictee_02.ogg-70ddceed36824b6e927de19ce8ba2fc4.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce2_futur_dictee_02.ogg" +dest_files=["res://.godot/imported/ce2_futur_dictee_02.ogg-70ddceed36824b6e927de19ce8ba2fc4.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce2_futur_dictee_03.ogg b/assets/audio/dictations/ce2_futur_dictee_03.ogg new file mode 100644 index 0000000..488cc49 Binary files /dev/null and b/assets/audio/dictations/ce2_futur_dictee_03.ogg differ diff --git a/assets/audio/dictations/ce2_futur_dictee_03.ogg.import b/assets/audio/dictations/ce2_futur_dictee_03.ogg.import new file mode 100644 index 0000000..849442f --- /dev/null +++ b/assets/audio/dictations/ce2_futur_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://8qh27nr076hw" +path="res://.godot/imported/ce2_futur_dictee_03.ogg-d0d672f9ea6f534b938fb5a69f2a282c.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce2_futur_dictee_03.ogg" +dest_files=["res://.godot/imported/ce2_futur_dictee_03.ogg-d0d672f9ea6f534b938fb5a69f2a282c.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce2_g_ge_gu_dictee_01.ogg b/assets/audio/dictations/ce2_g_ge_gu_dictee_01.ogg new file mode 100644 index 0000000..4c124eb Binary files /dev/null and b/assets/audio/dictations/ce2_g_ge_gu_dictee_01.ogg differ diff --git a/assets/audio/dictations/ce2_g_ge_gu_dictee_01.ogg.import b/assets/audio/dictations/ce2_g_ge_gu_dictee_01.ogg.import new file mode 100644 index 0000000..e091899 --- /dev/null +++ b/assets/audio/dictations/ce2_g_ge_gu_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://b7kjtx3ikkxqw" +path="res://.godot/imported/ce2_g_ge_gu_dictee_01.ogg-02ad3eb1068ae870669b3cf6c0d2cee8.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce2_g_ge_gu_dictee_01.ogg" +dest_files=["res://.godot/imported/ce2_g_ge_gu_dictee_01.ogg-02ad3eb1068ae870669b3cf6c0d2cee8.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce2_g_ge_gu_dictee_02.ogg b/assets/audio/dictations/ce2_g_ge_gu_dictee_02.ogg new file mode 100644 index 0000000..2092393 Binary files /dev/null and b/assets/audio/dictations/ce2_g_ge_gu_dictee_02.ogg differ diff --git a/assets/audio/dictations/ce2_g_ge_gu_dictee_02.ogg.import b/assets/audio/dictations/ce2_g_ge_gu_dictee_02.ogg.import new file mode 100644 index 0000000..7eef48b --- /dev/null +++ b/assets/audio/dictations/ce2_g_ge_gu_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dwl3eto0ff83t" +path="res://.godot/imported/ce2_g_ge_gu_dictee_02.ogg-38c7646bd42c251c37ea55fd7a6b9138.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce2_g_ge_gu_dictee_02.ogg" +dest_files=["res://.godot/imported/ce2_g_ge_gu_dictee_02.ogg-38c7646bd42c251c37ea55fd7a6b9138.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce2_g_ge_gu_dictee_03.ogg b/assets/audio/dictations/ce2_g_ge_gu_dictee_03.ogg new file mode 100644 index 0000000..4e1c299 Binary files /dev/null and b/assets/audio/dictations/ce2_g_ge_gu_dictee_03.ogg differ diff --git a/assets/audio/dictations/ce2_g_ge_gu_dictee_03.ogg.import b/assets/audio/dictations/ce2_g_ge_gu_dictee_03.ogg.import new file mode 100644 index 0000000..7e2616d --- /dev/null +++ b/assets/audio/dictations/ce2_g_ge_gu_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dpk033o0576q2" +path="res://.godot/imported/ce2_g_ge_gu_dictee_03.ogg-587a19ef8d73072d78e4fef4b4355404.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce2_g_ge_gu_dictee_03.ogg" +dest_files=["res://.godot/imported/ce2_g_ge_gu_dictee_03.ogg-587a19ef8d73072d78e4fef4b4355404.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce2_muette_dictee_01.ogg b/assets/audio/dictations/ce2_muette_dictee_01.ogg new file mode 100644 index 0000000..2019fd0 Binary files /dev/null and b/assets/audio/dictations/ce2_muette_dictee_01.ogg differ diff --git a/assets/audio/dictations/ce2_muette_dictee_01.ogg.import b/assets/audio/dictations/ce2_muette_dictee_01.ogg.import new file mode 100644 index 0000000..13a7dd0 --- /dev/null +++ b/assets/audio/dictations/ce2_muette_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://d0ss4b862mdqj" +path="res://.godot/imported/ce2_muette_dictee_01.ogg-6ec59f65654c3edd3b63c3bcd29e4c77.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce2_muette_dictee_01.ogg" +dest_files=["res://.godot/imported/ce2_muette_dictee_01.ogg-6ec59f65654c3edd3b63c3bcd29e4c77.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce2_muette_dictee_02.ogg b/assets/audio/dictations/ce2_muette_dictee_02.ogg new file mode 100644 index 0000000..b1594d4 Binary files /dev/null and b/assets/audio/dictations/ce2_muette_dictee_02.ogg differ diff --git a/assets/audio/dictations/ce2_muette_dictee_02.ogg.import b/assets/audio/dictations/ce2_muette_dictee_02.ogg.import new file mode 100644 index 0000000..da66966 --- /dev/null +++ b/assets/audio/dictations/ce2_muette_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://v0wti36koipt" +path="res://.godot/imported/ce2_muette_dictee_02.ogg-e7633ab275a9796b35529e1274df6bf1.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce2_muette_dictee_02.ogg" +dest_files=["res://.godot/imported/ce2_muette_dictee_02.ogg-e7633ab275a9796b35529e1274df6bf1.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce2_muette_dictee_03.ogg b/assets/audio/dictations/ce2_muette_dictee_03.ogg new file mode 100644 index 0000000..bbc783d Binary files /dev/null and b/assets/audio/dictations/ce2_muette_dictee_03.ogg differ diff --git a/assets/audio/dictations/ce2_muette_dictee_03.ogg.import b/assets/audio/dictations/ce2_muette_dictee_03.ogg.import new file mode 100644 index 0000000..ac30345 --- /dev/null +++ b/assets/audio/dictations/ce2_muette_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://c33qj5peugfjn" +path="res://.godot/imported/ce2_muette_dictee_03.ogg-25ed35c3b48e0ea0bd4e2c7e8812b33e.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce2_muette_dictee_03.ogg" +dest_files=["res://.godot/imported/ce2_muette_dictee_03.ogg-25ed35c3b48e0ea0bd4e2c7e8812b33e.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce2_sujet_verbe_dictee_01.ogg b/assets/audio/dictations/ce2_sujet_verbe_dictee_01.ogg new file mode 100644 index 0000000..2d67660 Binary files /dev/null and b/assets/audio/dictations/ce2_sujet_verbe_dictee_01.ogg differ diff --git a/assets/audio/dictations/ce2_sujet_verbe_dictee_01.ogg.import b/assets/audio/dictations/ce2_sujet_verbe_dictee_01.ogg.import new file mode 100644 index 0000000..da86969 --- /dev/null +++ b/assets/audio/dictations/ce2_sujet_verbe_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://c2tkf1ptb8kie" +path="res://.godot/imported/ce2_sujet_verbe_dictee_01.ogg-492f9bb6c004b00090780a3fac1102b9.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce2_sujet_verbe_dictee_01.ogg" +dest_files=["res://.godot/imported/ce2_sujet_verbe_dictee_01.ogg-492f9bb6c004b00090780a3fac1102b9.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce2_sujet_verbe_dictee_02.ogg b/assets/audio/dictations/ce2_sujet_verbe_dictee_02.ogg new file mode 100644 index 0000000..d4898bb Binary files /dev/null and b/assets/audio/dictations/ce2_sujet_verbe_dictee_02.ogg differ diff --git a/assets/audio/dictations/ce2_sujet_verbe_dictee_02.ogg.import b/assets/audio/dictations/ce2_sujet_verbe_dictee_02.ogg.import new file mode 100644 index 0000000..7c70d49 --- /dev/null +++ b/assets/audio/dictations/ce2_sujet_verbe_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://cjnem27ocsr7u" +path="res://.godot/imported/ce2_sujet_verbe_dictee_02.ogg-15b4df9882ea0e7ae9f5c74b4436f6fe.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce2_sujet_verbe_dictee_02.ogg" +dest_files=["res://.godot/imported/ce2_sujet_verbe_dictee_02.ogg-15b4df9882ea0e7ae9f5c74b4436f6fe.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/ce2_sujet_verbe_dictee_03.ogg b/assets/audio/dictations/ce2_sujet_verbe_dictee_03.ogg new file mode 100644 index 0000000..7bcf734 Binary files /dev/null and b/assets/audio/dictations/ce2_sujet_verbe_dictee_03.ogg differ diff --git a/assets/audio/dictations/ce2_sujet_verbe_dictee_03.ogg.import b/assets/audio/dictations/ce2_sujet_verbe_dictee_03.ogg.import new file mode 100644 index 0000000..9b30e56 --- /dev/null +++ b/assets/audio/dictations/ce2_sujet_verbe_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://qxpntgdmt6fc" +path="res://.godot/imported/ce2_sujet_verbe_dictee_03.ogg-870e139c76a51705a123a8d03a33891b.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/ce2_sujet_verbe_dictee_03.ogg" +dest_files=["res://.godot/imported/ce2_sujet_verbe_dictee_03.ogg-870e139c76a51705a123a8d03a33891b.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/environments/desert_backdrop.svg b/assets/environments/desert_backdrop.svg new file mode 100644 index 0000000..1e1e081 --- /dev/null +++ b/assets/environments/desert_backdrop.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/environments/desert_backdrop.svg.import b/assets/environments/desert_backdrop.svg.import new file mode 100644 index 0000000..dcde8e4 --- /dev/null +++ b/assets/environments/desert_backdrop.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://kvajqqv5encp" +path="res://.godot/imported/desert_backdrop.svg-94261e3548193bbddcc2f26768113fc7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/environments/desert_backdrop.svg" +dest_files=["res://.godot/imported/desert_backdrop.svg-94261e3548193bbddcc2f26768113fc7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/environments/island_backdrop.svg b/assets/environments/island_backdrop.svg new file mode 100644 index 0000000..a6c7ab1 --- /dev/null +++ b/assets/environments/island_backdrop.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/environments/island_backdrop.svg.import b/assets/environments/island_backdrop.svg.import new file mode 100644 index 0000000..4424285 --- /dev/null +++ b/assets/environments/island_backdrop.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dwlfott3g4j07" +path="res://.godot/imported/island_backdrop.svg-ef894d470fc2d1ba4adc557726df26c3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/environments/island_backdrop.svg" +dest_files=["res://.godot/imported/island_backdrop.svg-ef894d470fc2d1ba4adc557726df26c3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/environments/mountain_backdrop.svg b/assets/environments/mountain_backdrop.svg new file mode 100644 index 0000000..8573d1b --- /dev/null +++ b/assets/environments/mountain_backdrop.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/environments/mountain_backdrop.svg.import b/assets/environments/mountain_backdrop.svg.import new file mode 100644 index 0000000..0424677 --- /dev/null +++ b/assets/environments/mountain_backdrop.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cwh1247ntwe8r" +path="res://.godot/imported/mountain_backdrop.svg-96bc77113d015b033edf2c96720e2fbf.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/environments/mountain_backdrop.svg" +dest_files=["res://.godot/imported/mountain_backdrop.svg-96bc77113d015b033edf2c96720e2fbf.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/data/curriculum/ce1_verbes_present.json b/data/curriculum/ce1_verbes_present.json new file mode 100644 index 0000000..c36bcb9 --- /dev/null +++ b/data/curriculum/ce1_verbes_present.json @@ -0,0 +1,15 @@ +{ + "level": "CE1", + "region_id": "montagne_des_verbes", + "chapter_id": "verbes_present", + "title": "Les verbes au présent", + "region_title": "La montagne des verbes", + "order": 3, + "backdrop": "mountain", + "rule_ids": [ + "regle_verbe_etre_present", + "regle_verbe_avoir_present", + "regle_verbe_er_present" + ], + "review_status": "draft" +} diff --git a/data/curriculum/ce2_lettres_et_mots.json b/data/curriculum/ce2_lettres_et_mots.json new file mode 100644 index 0000000..cb664ca --- /dev/null +++ b/data/curriculum/ce2_lettres_et_mots.json @@ -0,0 +1,15 @@ +{ + "level": "CE2", + "region_id": "ile_des_lettres", + "chapter_id": "lettres_et_mots", + "title": "Les lettres et les mots", + "region_title": "L'île des lettres", + "order": 3, + "backdrop": "island", + "rule_ids": [ + "regle_feminin_noms_adjectifs", + "regle_g_ge_gu", + "regle_lettre_muette_finale" + ], + "review_status": "draft" +} diff --git a/data/curriculum/ce2_verbes_accords.json b/data/curriculum/ce2_verbes_accords.json new file mode 100644 index 0000000..81a762f --- /dev/null +++ b/data/curriculum/ce2_verbes_accords.json @@ -0,0 +1,15 @@ +{ + "level": "CE2", + "region_id": "desert_des_verbes", + "chapter_id": "verbes_accords", + "title": "Les verbes : accords et formes", + "region_title": "Le désert des verbes", + "order": 2, + "backdrop": "desert", + "rule_ids": [ + "regle_accord_sujet_verbe", + "regle_e_er_infinitif", + "regle_futur_simple" + ], + "review_status": "draft" +} diff --git a/data/dictations/ce1_avoir_dictee_01.json b/data/dictations/ce1_avoir_dictee_01.json new file mode 100644 index 0000000..660d182 --- /dev/null +++ b/data/dictations/ce1_avoir_dictee_01.json @@ -0,0 +1,36 @@ +{ + "id": "ce1_avoir_dictee_01", + "level": "CE1", + "domain": "grammaire", + "rule_ids": [ + "regle_verbe_avoir_present" + ], + "difficulty": 1, + "target_text": "J'ai un ballon bleu et rouge.", + "words": [ + { + "text": "J'ai", + "expects_capital": true, + "rule_id": "regle_verbe_avoir_present" + }, + { + "text": "un" + }, + { + "text": "ballon" + }, + { + "text": "bleu" + }, + { + "text": "et" + }, + { + "text": "rouge." + } + ], + "audio_id": "ce1_avoir_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce1_avoir_dictee_02.json b/data/dictations/ce1_avoir_dictee_02.json new file mode 100644 index 0000000..ed8ca0b --- /dev/null +++ b/data/dictations/ce1_avoir_dictee_02.json @@ -0,0 +1,39 @@ +{ + "id": "ce1_avoir_dictee_02", + "level": "CE1", + "domain": "grammaire", + "rule_ids": [ + "regle_verbe_avoir_present" + ], + "difficulty": 2, + "target_text": "Vous avez de beaux crayons de couleur.", + "words": [ + { + "text": "Vous", + "expects_capital": true + }, + { + "text": "avez", + "rule_id": "regle_verbe_avoir_present" + }, + { + "text": "de" + }, + { + "text": "beaux" + }, + { + "text": "crayons" + }, + { + "text": "de" + }, + { + "text": "couleur." + } + ], + "audio_id": "ce1_avoir_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce1_avoir_dictee_03.json b/data/dictations/ce1_avoir_dictee_03.json new file mode 100644 index 0000000..930d3d6 --- /dev/null +++ b/data/dictations/ce1_avoir_dictee_03.json @@ -0,0 +1,36 @@ +{ + "id": "ce1_avoir_dictee_03", + "level": "CE1", + "domain": "grammaire", + "rule_ids": [ + "regle_verbe_avoir_present" + ], + "difficulty": 3, + "target_text": "Mes cousins ont un petit bateau.", + "words": [ + { + "text": "Mes", + "expects_capital": true + }, + { + "text": "cousins" + }, + { + "text": "ont", + "rule_id": "regle_verbe_avoir_present" + }, + { + "text": "un" + }, + { + "text": "petit" + }, + { + "text": "bateau." + } + ], + "audio_id": "ce1_avoir_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce1_er_present_dictee_01.json b/data/dictations/ce1_er_present_dictee_01.json new file mode 100644 index 0000000..7e5fe25 --- /dev/null +++ b/data/dictations/ce1_er_present_dictee_01.json @@ -0,0 +1,33 @@ +{ + "id": "ce1_er_present_dictee_01", + "level": "CE1", + "domain": "grammaire", + "rule_ids": [ + "regle_verbe_er_present" + ], + "difficulty": 1, + "target_text": "Tu chantes une jolie chanson.", + "words": [ + { + "text": "Tu", + "expects_capital": true + }, + { + "text": "chantes", + "rule_id": "regle_verbe_er_present" + }, + { + "text": "une" + }, + { + "text": "jolie" + }, + { + "text": "chanson." + } + ], + "audio_id": "ce1_er_present_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce1_er_present_dictee_02.json b/data/dictations/ce1_er_present_dictee_02.json new file mode 100644 index 0000000..f5cdc33 --- /dev/null +++ b/data/dictations/ce1_er_present_dictee_02.json @@ -0,0 +1,39 @@ +{ + "id": "ce1_er_present_dictee_02", + "level": "CE1", + "domain": "grammaire", + "rule_ids": [ + "regle_verbe_er_present" + ], + "difficulty": 2, + "target_text": "Nous préparons un gâteau pour la fête.", + "words": [ + { + "text": "Nous", + "expects_capital": true + }, + { + "text": "préparons", + "rule_id": "regle_verbe_er_present" + }, + { + "text": "un" + }, + { + "text": "gâteau" + }, + { + "text": "pour" + }, + { + "text": "la" + }, + { + "text": "fête." + } + ], + "audio_id": "ce1_er_present_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce1_er_present_dictee_03.json b/data/dictations/ce1_er_present_dictee_03.json new file mode 100644 index 0000000..ab00ee8 --- /dev/null +++ b/data/dictations/ce1_er_present_dictee_03.json @@ -0,0 +1,42 @@ +{ + "id": "ce1_er_present_dictee_03", + "level": "CE1", + "domain": "grammaire", + "rule_ids": [ + "regle_verbe_er_present" + ], + "difficulty": 3, + "target_text": "Les enfants dessinent avec des feutres de couleur.", + "words": [ + { + "text": "Les", + "expects_capital": true + }, + { + "text": "enfants" + }, + { + "text": "dessinent", + "rule_id": "regle_verbe_er_present" + }, + { + "text": "avec" + }, + { + "text": "des" + }, + { + "text": "feutres" + }, + { + "text": "de" + }, + { + "text": "couleur." + } + ], + "audio_id": "ce1_er_present_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce1_etre_dictee_01.json b/data/dictations/ce1_etre_dictee_01.json new file mode 100644 index 0000000..05d028c --- /dev/null +++ b/data/dictations/ce1_etre_dictee_01.json @@ -0,0 +1,33 @@ +{ + "id": "ce1_etre_dictee_01", + "level": "CE1", + "domain": "grammaire", + "rule_ids": [ + "regle_verbe_etre_present" + ], + "difficulty": 1, + "target_text": "Je suis dans le jardin.", + "words": [ + { + "text": "Je", + "expects_capital": true + }, + { + "text": "suis", + "rule_id": "regle_verbe_etre_present" + }, + { + "text": "dans" + }, + { + "text": "le" + }, + { + "text": "jardin." + } + ], + "audio_id": "ce1_etre_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce1_etre_dictee_02.json b/data/dictations/ce1_etre_dictee_02.json new file mode 100644 index 0000000..928bb0e --- /dev/null +++ b/data/dictations/ce1_etre_dictee_02.json @@ -0,0 +1,42 @@ +{ + "id": "ce1_etre_dictee_02", + "level": "CE1", + "domain": "grammaire", + "rule_ids": [ + "regle_verbe_etre_present" + ], + "difficulty": 2, + "target_text": "Nous sommes tous en rang devant la porte.", + "words": [ + { + "text": "Nous", + "expects_capital": true + }, + { + "text": "sommes", + "rule_id": "regle_verbe_etre_present" + }, + { + "text": "tous" + }, + { + "text": "en" + }, + { + "text": "rang" + }, + { + "text": "devant" + }, + { + "text": "la" + }, + { + "text": "porte." + } + ], + "audio_id": "ce1_etre_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce1_etre_dictee_03.json b/data/dictations/ce1_etre_dictee_03.json new file mode 100644 index 0000000..820028b --- /dev/null +++ b/data/dictations/ce1_etre_dictee_03.json @@ -0,0 +1,39 @@ +{ + "id": "ce1_etre_dictee_03", + "level": "CE1", + "domain": "grammaire", + "rule_ids": [ + "regle_verbe_etre_present" + ], + "difficulty": 3, + "target_text": "Tu es plus grand que ton cousin.", + "words": [ + { + "text": "Tu", + "expects_capital": true + }, + { + "text": "es", + "rule_id": "regle_verbe_etre_present" + }, + { + "text": "plus" + }, + { + "text": "grand" + }, + { + "text": "que" + }, + { + "text": "ton" + }, + { + "text": "cousin." + } + ], + "audio_id": "ce1_etre_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce2_e_er_dictee_01.json b/data/dictations/ce2_e_er_dictee_01.json new file mode 100644 index 0000000..3792996 --- /dev/null +++ b/data/dictations/ce2_e_er_dictee_01.json @@ -0,0 +1,39 @@ +{ + "id": "ce2_e_er_dictee_01", + "level": "CE2", + "domain": "grammaire", + "rule_ids": [ + "regle_e_er_infinitif" + ], + "difficulty": 1, + "target_text": "Il faut arroser les fleurs chaque matin.", + "words": [ + { + "text": "Il", + "expects_capital": true + }, + { + "text": "faut" + }, + { + "text": "arroser", + "rule_id": "regle_e_er_infinitif" + }, + { + "text": "les" + }, + { + "text": "fleurs" + }, + { + "text": "chaque" + }, + { + "text": "matin." + } + ], + "audio_id": "ce2_e_er_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce2_e_er_dictee_02.json b/data/dictations/ce2_e_er_dictee_02.json new file mode 100644 index 0000000..f735d56 --- /dev/null +++ b/data/dictations/ce2_e_er_dictee_02.json @@ -0,0 +1,42 @@ +{ + "id": "ce2_e_er_dictee_02", + "level": "CE2", + "domain": "grammaire", + "rule_ids": [ + "regle_e_er_infinitif" + ], + "difficulty": 2, + "target_text": "Hier, nous avons regardé un film au cinéma.", + "words": [ + { + "text": "Hier,", + "expects_capital": true + }, + { + "text": "nous" + }, + { + "text": "avons" + }, + { + "text": "regardé", + "rule_id": "regle_e_er_infinitif" + }, + { + "text": "un" + }, + { + "text": "film" + }, + { + "text": "au" + }, + { + "text": "cinéma." + } + ], + "audio_id": "ce2_e_er_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce2_e_er_dictee_03.json b/data/dictations/ce2_e_er_dictee_03.json new file mode 100644 index 0000000..4180db3 --- /dev/null +++ b/data/dictations/ce2_e_er_dictee_03.json @@ -0,0 +1,40 @@ +{ + "id": "ce2_e_er_dictee_03", + "level": "CE2", + "domain": "grammaire", + "rule_ids": [ + "regle_e_er_infinitif" + ], + "difficulty": 3, + "target_text": "Elle a décidé de ranger sa chambre.", + "words": [ + { + "text": "Elle", + "expects_capital": true + }, + { + "text": "a" + }, + { + "text": "décidé", + "rule_id": "regle_e_er_infinitif" + }, + { + "text": "de" + }, + { + "text": "ranger", + "rule_id": "regle_e_er_infinitif" + }, + { + "text": "sa" + }, + { + "text": "chambre." + } + ], + "audio_id": "ce2_e_er_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce2_feminin_dictee_01.json b/data/dictations/ce2_feminin_dictee_01.json new file mode 100644 index 0000000..5c136bc --- /dev/null +++ b/data/dictations/ce2_feminin_dictee_01.json @@ -0,0 +1,36 @@ +{ + "id": "ce2_feminin_dictee_01", + "level": "CE2", + "domain": "orthographe", + "rule_ids": [ + "regle_feminin_noms_adjectifs" + ], + "difficulty": 1, + "target_text": "La chanteuse a une jolie voix.", + "words": [ + { + "text": "La", + "expects_capital": true + }, + { + "text": "chanteuse", + "rule_id": "regle_feminin_noms_adjectifs" + }, + { + "text": "a" + }, + { + "text": "une" + }, + { + "text": "jolie" + }, + { + "text": "voix." + } + ], + "audio_id": "ce2_feminin_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce2_feminin_dictee_02.json b/data/dictations/ce2_feminin_dictee_02.json new file mode 100644 index 0000000..563ab56 --- /dev/null +++ b/data/dictations/ce2_feminin_dictee_02.json @@ -0,0 +1,36 @@ +{ + "id": "ce2_feminin_dictee_02", + "level": "CE2", + "domain": "orthographe", + "rule_ids": [ + "regle_feminin_noms_adjectifs" + ], + "difficulty": 2, + "target_text": "Ma voisine est une excellente cuisinière.", + "words": [ + { + "text": "Ma", + "expects_capital": true + }, + { + "text": "voisine" + }, + { + "text": "est" + }, + { + "text": "une" + }, + { + "text": "excellente" + }, + { + "text": "cuisinière.", + "rule_id": "regle_feminin_noms_adjectifs" + } + ], + "audio_id": "ce2_feminin_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce2_feminin_dictee_03.json b/data/dictations/ce2_feminin_dictee_03.json new file mode 100644 index 0000000..55332c4 --- /dev/null +++ b/data/dictations/ce2_feminin_dictee_03.json @@ -0,0 +1,42 @@ +{ + "id": "ce2_feminin_dictee_03", + "level": "CE2", + "domain": "orthographe", + "rule_ids": [ + "regle_feminin_noms_adjectifs" + ], + "difficulty": 3, + "target_text": "La lionne surveille ses petits dans la savane.", + "words": [ + { + "text": "La", + "expects_capital": true + }, + { + "text": "lionne", + "rule_id": "regle_feminin_noms_adjectifs" + }, + { + "text": "surveille" + }, + { + "text": "ses" + }, + { + "text": "petits" + }, + { + "text": "dans" + }, + { + "text": "la" + }, + { + "text": "savane." + } + ], + "audio_id": "ce2_feminin_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce2_futur_dictee_01.json b/data/dictations/ce2_futur_dictee_01.json new file mode 100644 index 0000000..a3d2d9d --- /dev/null +++ b/data/dictations/ce2_futur_dictee_01.json @@ -0,0 +1,39 @@ +{ + "id": "ce2_futur_dictee_01", + "level": "CE2", + "domain": "grammaire", + "rule_ids": [ + "regle_futur_simple" + ], + "difficulty": 1, + "target_text": "Demain, nous visiterons le musée du désert.", + "words": [ + { + "text": "Demain,", + "expects_capital": true + }, + { + "text": "nous" + }, + { + "text": "visiterons", + "rule_id": "regle_futur_simple" + }, + { + "text": "le" + }, + { + "text": "musée" + }, + { + "text": "du" + }, + { + "text": "désert." + } + ], + "audio_id": "ce2_futur_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce2_futur_dictee_02.json b/data/dictations/ce2_futur_dictee_02.json new file mode 100644 index 0000000..38b832f --- /dev/null +++ b/data/dictations/ce2_futur_dictee_02.json @@ -0,0 +1,48 @@ +{ + "id": "ce2_futur_dictee_02", + "level": "CE2", + "domain": "grammaire", + "rule_ids": [ + "regle_futur_simple" + ], + "difficulty": 2, + "target_text": "Ce soir, tu raconteras une histoire à ta petite sœur.", + "words": [ + { + "text": "Ce", + "expects_capital": true + }, + { + "text": "soir," + }, + { + "text": "tu" + }, + { + "text": "raconteras", + "rule_id": "regle_futur_simple" + }, + { + "text": "une" + }, + { + "text": "histoire" + }, + { + "text": "à" + }, + { + "text": "ta" + }, + { + "text": "petite" + }, + { + "text": "sœur." + } + ], + "audio_id": "ce2_futur_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce2_futur_dictee_03.json b/data/dictations/ce2_futur_dictee_03.json new file mode 100644 index 0000000..415b882 --- /dev/null +++ b/data/dictations/ce2_futur_dictee_03.json @@ -0,0 +1,36 @@ +{ + "id": "ce2_futur_dictee_03", + "level": "CE2", + "domain": "grammaire", + "rule_ids": [ + "regle_futur_simple" + ], + "difficulty": 3, + "target_text": "Les voyageurs camperont près de l'oasis.", + "words": [ + { + "text": "Les", + "expects_capital": true + }, + { + "text": "voyageurs" + }, + { + "text": "camperont", + "rule_id": "regle_futur_simple" + }, + { + "text": "près" + }, + { + "text": "de" + }, + { + "text": "l'oasis." + } + ], + "audio_id": "ce2_futur_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce2_g_ge_gu_dictee_01.json b/data/dictations/ce2_g_ge_gu_dictee_01.json new file mode 100644 index 0000000..df01429 --- /dev/null +++ b/data/dictations/ce2_g_ge_gu_dictee_01.json @@ -0,0 +1,39 @@ +{ + "id": "ce2_g_ge_gu_dictee_01", + "level": "CE2", + "domain": "orthographe", + "rule_ids": [ + "regle_g_ge_gu" + ], + "difficulty": 1, + "target_text": "Nous mangeons des pommes sur la plage.", + "words": [ + { + "text": "Nous", + "expects_capital": true + }, + { + "text": "mangeons", + "rule_id": "regle_g_ge_gu" + }, + { + "text": "des" + }, + { + "text": "pommes" + }, + { + "text": "sur" + }, + { + "text": "la" + }, + { + "text": "plage." + } + ], + "audio_id": "ce2_g_ge_gu_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce2_g_ge_gu_dictee_02.json b/data/dictations/ce2_g_ge_gu_dictee_02.json new file mode 100644 index 0000000..062490b --- /dev/null +++ b/data/dictations/ce2_g_ge_gu_dictee_02.json @@ -0,0 +1,45 @@ +{ + "id": "ce2_g_ge_gu_dictee_02", + "level": "CE2", + "domain": "orthographe", + "rule_ids": [ + "regle_g_ge_gu" + ], + "difficulty": 2, + "target_text": "Mon frère joue de la guitare dans sa chambre.", + "words": [ + { + "text": "Mon", + "expects_capital": true + }, + { + "text": "frère" + }, + { + "text": "joue" + }, + { + "text": "de" + }, + { + "text": "la" + }, + { + "text": "guitare", + "rule_id": "regle_g_ge_gu" + }, + { + "text": "dans" + }, + { + "text": "sa" + }, + { + "text": "chambre." + } + ], + "audio_id": "ce2_g_ge_gu_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce2_g_ge_gu_dictee_03.json b/data/dictations/ce2_g_ge_gu_dictee_03.json new file mode 100644 index 0000000..06adbf0 --- /dev/null +++ b/data/dictations/ce2_g_ge_gu_dictee_03.json @@ -0,0 +1,39 @@ +{ + "id": "ce2_g_ge_gu_dictee_03", + "level": "CE2", + "domain": "orthographe", + "rule_ids": [ + "regle_g_ge_gu" + ], + "difficulty": 3, + "target_text": "Nous plongeons dans l'eau claire de l'île.", + "words": [ + { + "text": "Nous", + "expects_capital": true + }, + { + "text": "plongeons", + "rule_id": "regle_g_ge_gu" + }, + { + "text": "dans" + }, + { + "text": "l'eau" + }, + { + "text": "claire" + }, + { + "text": "de" + }, + { + "text": "l'île." + } + ], + "audio_id": "ce2_g_ge_gu_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce2_muette_dictee_01.json b/data/dictations/ce2_muette_dictee_01.json new file mode 100644 index 0000000..959d2b5 --- /dev/null +++ b/data/dictations/ce2_muette_dictee_01.json @@ -0,0 +1,43 @@ +{ + "id": "ce2_muette_dictee_01", + "level": "CE2", + "domain": "orthographe", + "rule_ids": [ + "regle_lettre_muette_finale" + ], + "difficulty": 1, + "target_text": "Le petit chat blanc dort sur le canapé.", + "words": [ + { + "text": "Le", + "expects_capital": true + }, + { + "text": "petit", + "rule_id": "regle_lettre_muette_finale" + }, + { + "text": "chat" + }, + { + "text": "blanc", + "rule_id": "regle_lettre_muette_finale" + }, + { + "text": "dort" + }, + { + "text": "sur" + }, + { + "text": "le" + }, + { + "text": "canapé." + } + ], + "audio_id": "ce2_muette_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce2_muette_dictee_02.json b/data/dictations/ce2_muette_dictee_02.json new file mode 100644 index 0000000..4e48bfd --- /dev/null +++ b/data/dictations/ce2_muette_dictee_02.json @@ -0,0 +1,46 @@ +{ + "id": "ce2_muette_dictee_02", + "level": "CE2", + "domain": "orthographe", + "rule_ids": [ + "regle_lettre_muette_finale" + ], + "difficulty": 2, + "target_text": "Il fait froid et le vent est très fort.", + "words": [ + { + "text": "Il", + "expects_capital": true + }, + { + "text": "fait" + }, + { + "text": "froid", + "rule_id": "regle_lettre_muette_finale" + }, + { + "text": "et" + }, + { + "text": "le" + }, + { + "text": "vent" + }, + { + "text": "est" + }, + { + "text": "très" + }, + { + "text": "fort.", + "rule_id": "regle_lettre_muette_finale" + } + ], + "audio_id": "ce2_muette_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce2_muette_dictee_03.json b/data/dictations/ce2_muette_dictee_03.json new file mode 100644 index 0000000..f33b1d8 --- /dev/null +++ b/data/dictations/ce2_muette_dictee_03.json @@ -0,0 +1,43 @@ +{ + "id": "ce2_muette_dictee_03", + "level": "CE2", + "domain": "orthographe", + "rule_ids": [ + "regle_lettre_muette_finale" + ], + "difficulty": 3, + "target_text": "Ce long chant triste fait pleurer mon grand-père.", + "words": [ + { + "text": "Ce", + "expects_capital": true + }, + { + "text": "long" + }, + { + "text": "chant", + "rule_id": "regle_lettre_muette_finale" + }, + { + "text": "triste" + }, + { + "text": "fait" + }, + { + "text": "pleurer" + }, + { + "text": "mon" + }, + { + "text": "grand-père.", + "rule_id": "regle_lettre_muette_finale" + } + ], + "audio_id": "ce2_muette_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce2_sujet_verbe_dictee_01.json b/data/dictations/ce2_sujet_verbe_dictee_01.json new file mode 100644 index 0000000..5865c01 --- /dev/null +++ b/data/dictations/ce2_sujet_verbe_dictee_01.json @@ -0,0 +1,45 @@ +{ + "id": "ce2_sujet_verbe_dictee_01", + "level": "CE2", + "domain": "grammaire", + "rule_ids": [ + "regle_accord_sujet_verbe" + ], + "difficulty": 1, + "target_text": "Les chameaux traversent le désert au lever du jour.", + "words": [ + { + "text": "Les", + "expects_capital": true + }, + { + "text": "chameaux" + }, + { + "text": "traversent", + "rule_id": "regle_accord_sujet_verbe" + }, + { + "text": "le" + }, + { + "text": "désert" + }, + { + "text": "au" + }, + { + "text": "lever" + }, + { + "text": "du" + }, + { + "text": "jour." + } + ], + "audio_id": "ce2_sujet_verbe_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce2_sujet_verbe_dictee_02.json b/data/dictations/ce2_sujet_verbe_dictee_02.json new file mode 100644 index 0000000..21a6c22 --- /dev/null +++ b/data/dictations/ce2_sujet_verbe_dictee_02.json @@ -0,0 +1,42 @@ +{ + "id": "ce2_sujet_verbe_dictee_02", + "level": "CE2", + "domain": "grammaire", + "rule_ids": [ + "regle_accord_sujet_verbe" + ], + "difficulty": 2, + "target_text": "Le vent du soir soulève le sable doré.", + "words": [ + { + "text": "Le", + "expects_capital": true + }, + { + "text": "vent" + }, + { + "text": "du" + }, + { + "text": "soir" + }, + { + "text": "soulève", + "rule_id": "regle_accord_sujet_verbe" + }, + { + "text": "le" + }, + { + "text": "sable" + }, + { + "text": "doré." + } + ], + "audio_id": "ce2_sujet_verbe_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/ce2_sujet_verbe_dictee_03.json b/data/dictations/ce2_sujet_verbe_dictee_03.json new file mode 100644 index 0000000..c8b85ad --- /dev/null +++ b/data/dictations/ce2_sujet_verbe_dictee_03.json @@ -0,0 +1,42 @@ +{ + "id": "ce2_sujet_verbe_dictee_03", + "level": "CE2", + "domain": "grammaire", + "rule_ids": [ + "regle_accord_sujet_verbe" + ], + "difficulty": 3, + "target_text": "Mes amis et moi, nous cherchons de l'ombre.", + "words": [ + { + "text": "Mes", + "expects_capital": true + }, + { + "text": "amis" + }, + { + "text": "et" + }, + { + "text": "moi," + }, + { + "text": "nous" + }, + { + "text": "cherchons", + "rule_id": "regle_accord_sujet_verbe" + }, + { + "text": "de" + }, + { + "text": "l'ombre." + } + ], + "audio_id": "ce2_sujet_verbe_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_avoir_correction_01.json b/data/exercises/ce1/ce1_avoir_correction_01.json new file mode 100644 index 0000000..793aaaa --- /dev/null +++ b/data/exercises/ce1/ce1_avoir_correction_01.json @@ -0,0 +1,41 @@ +{ + "id": "ce1_avoir_correction_01", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_avoir_present", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Tu", + "correct": true + }, + { + "text": "a", + "correct": false, + "expected": "as", + "rule_id": "regle_verbe_avoir_present" + }, + { + "text": "une", + "correct": true + }, + { + "text": "belle", + "correct": true + }, + { + "text": "bicyclette.", + "correct": true + } + ], + "hint": "Avec « tu », le verbe finit par -s.", + "explanation": "Avec « tu », on écrit « as » : tu as.", + "review_tags": [ + "verbes_present", + "avoir" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_avoir_correction_02.json b/data/exercises/ce1/ce1_avoir_correction_02.json new file mode 100644 index 0000000..bc2d791 --- /dev/null +++ b/data/exercises/ce1/ce1_avoir_correction_02.json @@ -0,0 +1,41 @@ +{ + "id": "ce1_avoir_correction_02", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_avoir_present", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Nous", + "correct": true + }, + { + "text": "avez", + "correct": false, + "expected": "avons", + "rule_id": "regle_verbe_avoir_present" + }, + { + "text": "un", + "correct": true + }, + { + "text": "chien", + "correct": true + }, + { + "text": "noir.", + "correct": true + } + ], + "hint": "Avec « nous », le verbe finit par -ons.", + "explanation": "Avec « nous », on écrit « avons » : nous avons.", + "review_tags": [ + "verbes_present", + "avoir" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_avoir_correction_03.json b/data/exercises/ce1/ce1_avoir_correction_03.json new file mode 100644 index 0000000..f664d46 --- /dev/null +++ b/data/exercises/ce1/ce1_avoir_correction_03.json @@ -0,0 +1,41 @@ +{ + "id": "ce1_avoir_correction_03", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_avoir_present", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Vous", + "correct": true + }, + { + "text": "avons", + "correct": false, + "expected": "avez", + "rule_id": "regle_verbe_avoir_present" + }, + { + "text": "du", + "correct": true + }, + { + "text": "temps", + "correct": true + }, + { + "text": "libre.", + "correct": true + } + ], + "hint": "Avec « vous », le verbe finit par -ez.", + "explanation": "Avec « vous », on écrit « avez » : vous avez.", + "review_tags": [ + "verbes_present", + "avoir" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_avoir_correction_04.json b/data/exercises/ce1/ce1_avoir_correction_04.json new file mode 100644 index 0000000..84de3f4 --- /dev/null +++ b/data/exercises/ce1/ce1_avoir_correction_04.json @@ -0,0 +1,45 @@ +{ + "id": "ce1_avoir_correction_04", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_avoir_present", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Les", + "correct": true + }, + { + "text": "voisins", + "correct": true + }, + { + "text": "a", + "correct": false, + "expected": "ont", + "rule_id": "regle_verbe_avoir_present" + }, + { + "text": "un", + "correct": true + }, + { + "text": "grand", + "correct": true + }, + { + "text": "jardin.", + "correct": true + } + ], + "hint": "Plusieurs voisins : pense à « ils ».", + "explanation": "Avec un sujet pluriel comme « les voisins » (= ils), on écrit « ont ».", + "review_tags": [ + "verbes_present", + "avoir" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_avoir_qcm_01.json b/data/exercises/ce1/ce1_avoir_qcm_01.json new file mode 100644 index 0000000..0a83407 --- /dev/null +++ b/data/exercises/ce1/ce1_avoir_qcm_01.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_avoir_qcm_01", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_avoir_present", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "J'... une grande trousse.", + "answers": [ + "a", + "as", + "ai" + ], + "correct_answer": 2, + "hint": "Avec « je », le verbe « avoir » s'écrit « ai ».", + "explanation": "Avec « je », on écrit « ai » : j'ai.", + "review_tags": [ + "verbes_present", + "avoir" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_avoir_qcm_02.json b/data/exercises/ce1/ce1_avoir_qcm_02.json new file mode 100644 index 0000000..338a727 --- /dev/null +++ b/data/exercises/ce1/ce1_avoir_qcm_02.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_avoir_qcm_02", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_avoir_present", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Tu ... mal à la tête.", + "answers": [ + "as", + "a", + "ai" + ], + "correct_answer": 0, + "hint": "Avec « tu », le verbe finit par -s.", + "explanation": "Avec « tu », on écrit « as » : tu as.", + "review_tags": [ + "verbes_present", + "avoir" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_avoir_qcm_03.json b/data/exercises/ce1/ce1_avoir_qcm_03.json new file mode 100644 index 0000000..0040274 --- /dev/null +++ b/data/exercises/ce1/ce1_avoir_qcm_03.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_avoir_qcm_03", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_avoir_present", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Maman ... un beau livre.", + "answers": [ + "as", + "a", + "ont" + ], + "correct_answer": 1, + "hint": "Une seule personne : pense à « elle ».", + "explanation": "Avec un sujet singulier comme « maman » (= elle), on écrit « a ».", + "review_tags": [ + "verbes_present", + "avoir" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_avoir_qcm_04.json b/data/exercises/ce1/ce1_avoir_qcm_04.json new file mode 100644 index 0000000..13baaf0 --- /dev/null +++ b/data/exercises/ce1/ce1_avoir_qcm_04.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_avoir_qcm_04", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_avoir_present", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Nous ... une grande maison.", + "answers": [ + "avez", + "avons", + "ont" + ], + "correct_answer": 1, + "hint": "Avec « nous », le verbe finit par -ons.", + "explanation": "Avec « nous », on écrit « avons » : nous avons.", + "review_tags": [ + "verbes_present", + "avoir" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_avoir_qcm_05.json b/data/exercises/ce1/ce1_avoir_qcm_05.json new file mode 100644 index 0000000..6953a0b --- /dev/null +++ b/data/exercises/ce1/ce1_avoir_qcm_05.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_avoir_qcm_05", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_avoir_present", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Vous ... de la chance.", + "answers": [ + "ont", + "avez", + "avons" + ], + "correct_answer": 1, + "hint": "Avec « vous », le verbe finit par -ez.", + "explanation": "Avec « vous », on écrit « avez » : vous avez.", + "review_tags": [ + "verbes_present", + "avoir" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_avoir_qcm_06.json b/data/exercises/ce1/ce1_avoir_qcm_06.json new file mode 100644 index 0000000..e886537 --- /dev/null +++ b/data/exercises/ce1/ce1_avoir_qcm_06.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_avoir_qcm_06", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_avoir_present", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les filles ... de beaux ballons.", + "answers": [ + "a", + "avez", + "ont" + ], + "correct_answer": 2, + "hint": "Plusieurs filles : pense à « elles ».", + "explanation": "Avec un sujet pluriel comme « les filles » (= elles), on écrit « ont ».", + "review_tags": [ + "verbes_present", + "avoir" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_avoir_qcm_07.json b/data/exercises/ce1/ce1_avoir_qcm_07.json new file mode 100644 index 0000000..15d4f28 --- /dev/null +++ b/data/exercises/ce1/ce1_avoir_qcm_07.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_avoir_qcm_07", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_avoir_present", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Toi et moi, nous ... le même âge.", + "answers": [ + "avez", + "ont", + "avons" + ], + "correct_answer": 2, + "hint": "« Toi et moi » peut se remplacer par « nous ».", + "explanation": "« Toi et moi » = « nous » : on écrit « avons ».", + "review_tags": [ + "verbes_present", + "avoir" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_avoir_qcm_08.json b/data/exercises/ce1/ce1_avoir_qcm_08.json new file mode 100644 index 0000000..a5b40a3 --- /dev/null +++ b/data/exercises/ce1/ce1_avoir_qcm_08.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_avoir_qcm_08", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_avoir_present", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Mes parents ... une voiture rouge.", + "answers": [ + "as", + "ont", + "a" + ], + "correct_answer": 1, + "hint": "Plusieurs personnes : pense à « ils ».", + "explanation": "« Mes parents » = « ils » : on écrit « ont ».", + "review_tags": [ + "verbes_present", + "avoir" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_cedille_qcm_04.json b/data/exercises/ce1/ce1_cedille_qcm_04.json index 2c04713..a5d9a87 100644 --- a/data/exercises/ce1/ce1_cedille_qcm_04.json +++ b/data/exercises/ce1/ce1_cedille_qcm_04.json @@ -9,10 +9,10 @@ "instruction": "Choisis le bon mot.", "question": "Le ... construit un mur en pierre.", "answers": [ - "maçon", - "macon" + "macon", + "maçon" ], - "correct_answer": 0, + "correct_answer": 1, "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": [ diff --git a/data/exercises/ce1/ce1_cedille_qcm_05.json b/data/exercises/ce1/ce1_cedille_qcm_05.json index 43b8156..db49f38 100644 --- a/data/exercises/ce1/ce1_cedille_qcm_05.json +++ b/data/exercises/ce1/ce1_cedille_qcm_05.json @@ -9,10 +9,10 @@ "instruction": "Choisis le bon mot.", "question": "La ... de la maison est blanche.", "answers": [ - "façade", - "facade" + "facade", + "façade" ], - "correct_answer": 0, + "correct_answer": 1, "hint": "Devant « a », pour entendre [s], il faut une cédille.", "explanation": "On écrit « ç » devant « a » pour le son [s] : « façade ».", "review_tags": [ diff --git a/data/exercises/ce1/ce1_er_present_correction_01.json b/data/exercises/ce1/ce1_er_present_correction_01.json new file mode 100644 index 0000000..1dec8f2 --- /dev/null +++ b/data/exercises/ce1/ce1_er_present_correction_01.json @@ -0,0 +1,37 @@ +{ + "id": "ce1_er_present_correction_01", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_er_present", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Tu", + "correct": true + }, + { + "text": "chante", + "correct": false, + "expected": "chantes", + "rule_id": "regle_verbe_er_present" + }, + { + "text": "très", + "correct": true + }, + { + "text": "bien.", + "correct": true + } + ], + "hint": "Avec « tu », le verbe finit par -s.", + "explanation": "Avec « tu », le verbe finit par -es : tu chantes.", + "review_tags": [ + "verbes_present", + "er_present" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_er_present_correction_02.json b/data/exercises/ce1/ce1_er_present_correction_02.json new file mode 100644 index 0000000..4b1b6e1 --- /dev/null +++ b/data/exercises/ce1/ce1_er_present_correction_02.json @@ -0,0 +1,41 @@ +{ + "id": "ce1_er_present_correction_02", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_er_present", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Les", + "correct": true + }, + { + "text": "écoliers", + "correct": true + }, + { + "text": "joue", + "correct": false, + "expected": "jouent", + "rule_id": "regle_verbe_er_present" + }, + { + "text": "au", + "correct": true + }, + { + "text": "ballon.", + "correct": true + } + ], + "hint": "Plusieurs écoliers : pense à « ils ».", + "explanation": "Avec un sujet pluriel, le verbe finit par -ent : les écoliers jouent.", + "review_tags": [ + "verbes_present", + "er_present" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_er_present_correction_03.json b/data/exercises/ce1/ce1_er_present_correction_03.json new file mode 100644 index 0000000..d6f32a5 --- /dev/null +++ b/data/exercises/ce1/ce1_er_present_correction_03.json @@ -0,0 +1,45 @@ +{ + "id": "ce1_er_present_correction_03", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_er_present", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Nous", + "correct": true + }, + { + "text": "cuisinez", + "correct": false, + "expected": "cuisinons", + "rule_id": "regle_verbe_er_present" + }, + { + "text": "un", + "correct": true + }, + { + "text": "gâteau", + "correct": true + }, + { + "text": "au", + "correct": true + }, + { + "text": "chocolat.", + "correct": true + } + ], + "hint": "Avec « nous », le verbe finit par -ons.", + "explanation": "Avec « nous », le verbe finit par -ons : nous cuisinons.", + "review_tags": [ + "verbes_present", + "er_present" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_er_present_correction_04.json b/data/exercises/ce1/ce1_er_present_correction_04.json new file mode 100644 index 0000000..d4b6bcf --- /dev/null +++ b/data/exercises/ce1/ce1_er_present_correction_04.json @@ -0,0 +1,41 @@ +{ + "id": "ce1_er_present_correction_04", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_er_present", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Vous", + "correct": true + }, + { + "text": "aimons", + "correct": false, + "expected": "aimez", + "rule_id": "regle_verbe_er_present" + }, + { + "text": "beaucoup", + "correct": true + }, + { + "text": "les", + "correct": true + }, + { + "text": "histoires.", + "correct": true + } + ], + "hint": "Avec « vous », le verbe finit par -ez.", + "explanation": "Avec « vous », le verbe finit par -ez : vous aimez.", + "review_tags": [ + "verbes_present", + "er_present" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_er_present_qcm_01.json b/data/exercises/ce1/ce1_er_present_qcm_01.json new file mode 100644 index 0000000..7a75281 --- /dev/null +++ b/data/exercises/ce1/ce1_er_present_qcm_01.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_er_present_qcm_01", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_er_present", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Je ... dans la chorale.", + "answers": [ + "chantent", + "chantes", + "chante" + ], + "correct_answer": 2, + "hint": "Avec « je », le verbe en -er finit par -e.", + "explanation": "Avec « je », le verbe en -er finit par -e : je chante.", + "review_tags": [ + "verbes_present", + "er_present" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_er_present_qcm_02.json b/data/exercises/ce1/ce1_er_present_qcm_02.json new file mode 100644 index 0000000..02e8d5f --- /dev/null +++ b/data/exercises/ce1/ce1_er_present_qcm_02.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_er_present_qcm_02", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_er_present", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Tu ... avec ton ami.", + "answers": [ + "joue", + "joues", + "jouent" + ], + "correct_answer": 1, + "hint": "Avec « tu », le verbe finit par -s.", + "explanation": "Avec « tu », le verbe finit par -es : tu joues.", + "review_tags": [ + "verbes_present", + "er_present" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_er_present_qcm_03.json b/data/exercises/ce1/ce1_er_present_qcm_03.json new file mode 100644 index 0000000..e33db53 --- /dev/null +++ b/data/exercises/ce1/ce1_er_present_qcm_03.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_er_present_qcm_03", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_er_present", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le garçon ... une pomme.", + "answers": [ + "mangent", + "manges", + "mange" + ], + "correct_answer": 2, + "hint": "Un seul garçon : pense à « il ».", + "explanation": "Avec un sujet singulier, le verbe finit par -e : le garçon mange.", + "review_tags": [ + "verbes_present", + "er_present" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_er_present_qcm_04.json b/data/exercises/ce1/ce1_er_present_qcm_04.json new file mode 100644 index 0000000..cc8c718 --- /dev/null +++ b/data/exercises/ce1/ce1_er_present_qcm_04.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_er_present_qcm_04", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_er_present", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Nous ... au marché.", + "answers": [ + "marchent", + "marchons", + "marchez" + ], + "correct_answer": 1, + "hint": "Avec « nous », le verbe finit par -ons.", + "explanation": "Avec « nous », le verbe finit par -ons : nous marchons.", + "review_tags": [ + "verbes_present", + "er_present" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_er_present_qcm_05.json b/data/exercises/ce1/ce1_er_present_qcm_05.json new file mode 100644 index 0000000..575e761 --- /dev/null +++ b/data/exercises/ce1/ce1_er_present_qcm_05.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_er_present_qcm_05", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_er_present", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Vous ... trop vite.", + "answers": [ + "parlent", + "parlons", + "parlez" + ], + "correct_answer": 2, + "hint": "Avec « vous », le verbe finit par -ez.", + "explanation": "Avec « vous », le verbe finit par -ez : vous parlez.", + "review_tags": [ + "verbes_present", + "er_present" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_er_present_qcm_06.json b/data/exercises/ce1/ce1_er_present_qcm_06.json new file mode 100644 index 0000000..d59055b --- /dev/null +++ b/data/exercises/ce1/ce1_er_present_qcm_06.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_er_present_qcm_06", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_er_present", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les élèves ... leur leçon.", + "answers": [ + "récite", + "récites", + "récitent" + ], + "correct_answer": 2, + "hint": "Plusieurs élèves : pense à « ils ».", + "explanation": "Avec un sujet pluriel, le verbe finit par -ent : les élèves récitent.", + "review_tags": [ + "verbes_present", + "er_present" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_er_present_qcm_07.json b/data/exercises/ce1/ce1_er_present_qcm_07.json new file mode 100644 index 0000000..23b0cf5 --- /dev/null +++ b/data/exercises/ce1/ce1_er_present_qcm_07.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_er_present_qcm_07", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_er_present", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Mon voisin et sa femme ... le soir.", + "answers": [ + "danse", + "dansent", + "dansons" + ], + "correct_answer": 1, + "hint": "Deux personnes : pense à « ils ».", + "explanation": "Deux personnes, c'est « ils » : le verbe finit par -ent.", + "review_tags": [ + "verbes_present", + "er_present" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_er_present_qcm_08.json b/data/exercises/ce1/ce1_er_present_qcm_08.json new file mode 100644 index 0000000..b486137 --- /dev/null +++ b/data/exercises/ce1/ce1_er_present_qcm_08.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_er_present_qcm_08", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_er_present", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Toi et ton frère, vous ... la table.", + "answers": [ + "rangent", + "rangez", + "rangeons" + ], + "correct_answer": 1, + "hint": "« Toi et ton frère » peut se remplacer par « vous ».", + "explanation": "« Toi et ton frère » = « vous » : le verbe finit par -ez.", + "review_tags": [ + "verbes_present", + "er_present" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_etre_correction_01.json b/data/exercises/ce1/ce1_etre_correction_01.json new file mode 100644 index 0000000..cad2c63 --- /dev/null +++ b/data/exercises/ce1/ce1_etre_correction_01.json @@ -0,0 +1,37 @@ +{ + "id": "ce1_etre_correction_01", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_etre_present", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Tu", + "correct": true + }, + { + "text": "est", + "correct": false, + "expected": "es", + "rule_id": "regle_verbe_etre_present" + }, + { + "text": "très", + "correct": true + }, + { + "text": "gentil.", + "correct": true + } + ], + "hint": "Avec « tu », le verbe finit par -s.", + "explanation": "Avec « tu », on écrit « es » : tu es.", + "review_tags": [ + "verbes_present", + "etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_etre_correction_02.json b/data/exercises/ce1/ce1_etre_correction_02.json new file mode 100644 index 0000000..69cfe95 --- /dev/null +++ b/data/exercises/ce1/ce1_etre_correction_02.json @@ -0,0 +1,49 @@ +{ + "id": "ce1_etre_correction_02", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_etre_present", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Ce", + "correct": true + }, + { + "text": "soir,", + "correct": true + }, + { + "text": "nous", + "correct": true + }, + { + "text": "sont", + "correct": false, + "expected": "sommes", + "rule_id": "regle_verbe_etre_present" + }, + { + "text": "à", + "correct": true + }, + { + "text": "la", + "correct": true + }, + { + "text": "maison.", + "correct": true + } + ], + "hint": "Avec « nous », le verbe finit par -mes.", + "explanation": "Avec « nous », on écrit « sommes » : nous sommes.", + "review_tags": [ + "verbes_present", + "etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_etre_correction_03.json b/data/exercises/ce1/ce1_etre_correction_03.json new file mode 100644 index 0000000..8a4318b --- /dev/null +++ b/data/exercises/ce1/ce1_etre_correction_03.json @@ -0,0 +1,45 @@ +{ + "id": "ce1_etre_correction_03", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_etre_present", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Les", + "correct": true + }, + { + "text": "enfants,", + "correct": true + }, + { + "text": "vous", + "correct": true + }, + { + "text": "sommes", + "correct": false, + "expected": "êtes", + "rule_id": "regle_verbe_etre_present" + }, + { + "text": "en", + "correct": true + }, + { + "text": "retard.", + "correct": true + } + ], + "hint": "Avec « vous », le verbe prend un accent circonflexe.", + "explanation": "Avec « vous », on écrit « êtes » : vous êtes.", + "review_tags": [ + "verbes_present", + "etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_etre_correction_04.json b/data/exercises/ce1/ce1_etre_correction_04.json new file mode 100644 index 0000000..3b87568 --- /dev/null +++ b/data/exercises/ce1/ce1_etre_correction_04.json @@ -0,0 +1,53 @@ +{ + "id": "ce1_etre_correction_04", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_etre_present", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Mon", + "correct": true + }, + { + "text": "frère", + "correct": true + }, + { + "text": "et", + "correct": true + }, + { + "text": "ma", + "correct": true + }, + { + "text": "sœur", + "correct": true + }, + { + "text": "est", + "correct": false, + "expected": "sont", + "rule_id": "regle_verbe_etre_present" + }, + { + "text": "à", + "correct": true + }, + { + "text": "l'école.", + "correct": true + } + ], + "hint": "Mon frère et ma sœur : pense à « ils ».", + "explanation": "Deux personnes, c'est « ils » : on écrit « sont ».", + "review_tags": [ + "verbes_present", + "etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_etre_qcm_01.json b/data/exercises/ce1/ce1_etre_qcm_01.json new file mode 100644 index 0000000..95ba0ce --- /dev/null +++ b/data/exercises/ce1/ce1_etre_qcm_01.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_etre_qcm_01", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_etre_present", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Je ... très content.", + "answers": [ + "est", + "es", + "suis" + ], + "correct_answer": 2, + "hint": "Avec « je », le verbe « être » s'écrit d'une manière particulière.", + "explanation": "Avec « je », on écrit « suis » : je suis.", + "review_tags": [ + "verbes_present", + "etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_etre_qcm_02.json b/data/exercises/ce1/ce1_etre_qcm_02.json new file mode 100644 index 0000000..4a2cde5 --- /dev/null +++ b/data/exercises/ce1/ce1_etre_qcm_02.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_etre_qcm_02", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_etre_present", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Tu ... dans la cour.", + "answers": [ + "suis", + "es", + "est" + ], + "correct_answer": 1, + "hint": "Avec « tu », le verbe finit par -s.", + "explanation": "Avec « tu », on écrit « es » : tu es.", + "review_tags": [ + "verbes_present", + "etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_etre_qcm_03.json b/data/exercises/ce1/ce1_etre_qcm_03.json new file mode 100644 index 0000000..8cbbae9 --- /dev/null +++ b/data/exercises/ce1/ce1_etre_qcm_03.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_etre_qcm_03", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_etre_present", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le chien ... fatigué.", + "answers": [ + "sont", + "es", + "est" + ], + "correct_answer": 2, + "hint": "Un seul chien : pense à « il ».", + "explanation": "Avec un sujet singulier comme « le chien » (= il), on écrit « est ».", + "review_tags": [ + "verbes_present", + "etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_etre_qcm_04.json b/data/exercises/ce1/ce1_etre_qcm_04.json new file mode 100644 index 0000000..8a73654 --- /dev/null +++ b/data/exercises/ce1/ce1_etre_qcm_04.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_etre_qcm_04", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_etre_present", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Nous ... en classe ce matin.", + "answers": [ + "sont", + "êtes", + "sommes" + ], + "correct_answer": 2, + "hint": "Avec « nous », le verbe finit par -mes.", + "explanation": "Avec « nous », on écrit « sommes » : nous sommes.", + "review_tags": [ + "verbes_present", + "etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_etre_qcm_05.json b/data/exercises/ce1/ce1_etre_qcm_05.json new file mode 100644 index 0000000..1eef5ac --- /dev/null +++ b/data/exercises/ce1/ce1_etre_qcm_05.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_etre_qcm_05", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_etre_present", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Vous ... très gentils avec moi.", + "answers": [ + "sont", + "sommes", + "êtes" + ], + "correct_answer": 2, + "hint": "Avec « vous », le verbe prend un accent circonflexe.", + "explanation": "Avec « vous », on écrit « êtes » : vous êtes.", + "review_tags": [ + "verbes_present", + "etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_etre_qcm_06.json b/data/exercises/ce1/ce1_etre_qcm_06.json new file mode 100644 index 0000000..d74b8d8 --- /dev/null +++ b/data/exercises/ce1/ce1_etre_qcm_06.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_etre_qcm_06", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_etre_present", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les canards ... sur le lac.", + "answers": [ + "est", + "sont", + "êtes" + ], + "correct_answer": 1, + "hint": "Plusieurs canards : pense à « ils ».", + "explanation": "Avec un sujet pluriel comme « les canards » (= ils), on écrit « sont ».", + "review_tags": [ + "verbes_present", + "etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_etre_qcm_07.json b/data/exercises/ce1/ce1_etre_qcm_07.json new file mode 100644 index 0000000..fe96a1b --- /dev/null +++ b/data/exercises/ce1/ce1_etre_qcm_07.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_etre_qcm_07", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_etre_present", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Léa et Tom ... dans le jardin.", + "answers": [ + "es", + "est", + "sont" + ], + "correct_answer": 2, + "hint": "Deux personnes : pense à « ils ».", + "explanation": "Léa et Tom, c'est « ils » : on écrit « sont ».", + "review_tags": [ + "verbes_present", + "etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_etre_qcm_08.json b/data/exercises/ce1/ce1_etre_qcm_08.json new file mode 100644 index 0000000..0265f9c --- /dev/null +++ b/data/exercises/ce1/ce1_etre_qcm_08.json @@ -0,0 +1,24 @@ +{ + "id": "ce1_etre_qcm_08", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "rule_id": "regle_verbe_etre_present", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Mes amis et moi, nous ... au parc.", + "answers": [ + "sommes", + "sont", + "êtes" + ], + "correct_answer": 0, + "hint": "« Mes amis et moi » peut se remplacer par « nous ».", + "explanation": "« Mes amis et moi » = « nous » : on écrit « sommes ».", + "review_tags": [ + "verbes_present", + "etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce1/ce1_m_mbp_qcm_01.json b/data/exercises/ce1/ce1_m_mbp_qcm_01.json index a4142c8..62b81b9 100644 --- a/data/exercises/ce1/ce1_m_mbp_qcm_01.json +++ b/data/exercises/ce1/ce1_m_mbp_qcm_01.json @@ -9,10 +9,10 @@ "instruction": "Choisis le bon mot.", "question": "Papa allume la ... près du lit.", "answers": [ - "lampe", - "lanpe" + "lanpe", + "lampe" ], - "correct_answer": 0, + "correct_answer": 1, "hint": "Après la voyelle, on entend [p] : quelle lettre faut-il avant ?", "explanation": "Devant « p », on écrit « m » : « lampe ».", "review_tags": [ diff --git a/data/exercises/ce1/ce1_m_mbp_qcm_04.json b/data/exercises/ce1/ce1_m_mbp_qcm_04.json index 26c6c6f..3cc3efe 100644 --- a/data/exercises/ce1/ce1_m_mbp_qcm_04.json +++ b/data/exercises/ce1/ce1_m_mbp_qcm_04.json @@ -9,10 +9,10 @@ "instruction": "Choisis le bon mot.", "question": "Le ... éteint l'incendie.", "answers": [ - "pompier", - "ponpier" + "ponpier", + "pompier" ], - "correct_answer": 0, + "correct_answer": 1, "hint": "Devant « p », quelle lettre faut-il écrire ?", "explanation": "Devant « p », on écrit « m » : « pompier ».", "review_tags": [ diff --git a/data/exercises/ce1/ce1_m_mbp_qcm_05.json b/data/exercises/ce1/ce1_m_mbp_qcm_05.json index b3ed17f..eaf3baa 100644 --- a/data/exercises/ce1/ce1_m_mbp_qcm_05.json +++ b/data/exercises/ce1/ce1_m_mbp_qcm_05.json @@ -9,10 +9,10 @@ "instruction": "Choisis le bon mot.", "question": "Il joue du ... dans la fanfare.", "answers": [ - "tambour", - "tanbour" + "tanbour", + "tambour" ], - "correct_answer": 0, + "correct_answer": 1, "hint": "Devant « b », quelle lettre faut-il écrire ?", "explanation": "Devant « b », on écrit « m » : « tambour ».", "review_tags": [ diff --git a/data/exercises/ce1/ce1_m_mbp_qcm_06.json b/data/exercises/ce1/ce1_m_mbp_qcm_06.json index 2bfba71..f416bb8 100644 --- a/data/exercises/ce1/ce1_m_mbp_qcm_06.json +++ b/data/exercises/ce1/ce1_m_mbp_qcm_06.json @@ -9,10 +9,10 @@ "instruction": "Choisis le bon mot.", "question": "Nous dormons sous une ... dans le camping.", "answers": [ - "tente", - "temte" + "temte", + "tente" ], - "correct_answer": 0, + "correct_answer": 1, "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": [ diff --git a/data/exercises/ce1/ce1_s_ss_qcm_01.json b/data/exercises/ce1/ce1_s_ss_qcm_01.json index 0558339..d1906ac 100644 --- a/data/exercises/ce1/ce1_s_ss_qcm_01.json +++ b/data/exercises/ce1/ce1_s_ss_qcm_01.json @@ -9,10 +9,10 @@ "instruction": "Choisis le bon mot.", "question": "Le chat boit dans une ... .", "answers": [ - "tasse", - "tase" + "tase", + "tasse" ], - "correct_answer": 0, + "correct_answer": 1, "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": [ diff --git a/data/exercises/ce1/ce1_s_ss_qcm_02.json b/data/exercises/ce1/ce1_s_ss_qcm_02.json index 6b87801..f7ead28 100644 --- a/data/exercises/ce1/ce1_s_ss_qcm_02.json +++ b/data/exercises/ce1/ce1_s_ss_qcm_02.json @@ -9,10 +9,10 @@ "instruction": "Choisis le bon mot.", "question": "Il y a une ... près de la table.", "answers": [ - "chaise", - "chaisse" + "chaisse", + "chaise" ], - "correct_answer": 0, + "correct_answer": 1, "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": [ diff --git a/data/exercises/ce1/ce1_s_ss_qcm_03.json b/data/exercises/ce1/ce1_s_ss_qcm_03.json index 6ab6cab..992744e 100644 --- a/data/exercises/ce1/ce1_s_ss_qcm_03.json +++ b/data/exercises/ce1/ce1_s_ss_qcm_03.json @@ -9,10 +9,10 @@ "instruction": "Choisis le bon mot.", "question": "Ma ... est près de l'école.", "answers": [ - "maison", - "maisson" + "maisson", + "maison" ], - "correct_answer": 0, + "correct_answer": 1, "hint": "Écoute : tu entends [z], pas [s].", "explanation": "On entend [z] entre deux voyelles : un seul « s », on écrit « maison ».", "review_tags": [ diff --git a/data/exercises/ce1/ce1_s_ss_qcm_04.json b/data/exercises/ce1/ce1_s_ss_qcm_04.json index 4e62017..3f488da 100644 --- a/data/exercises/ce1/ce1_s_ss_qcm_04.json +++ b/data/exercises/ce1/ce1_s_ss_qcm_04.json @@ -9,10 +9,10 @@ "instruction": "Choisis le bon mot.", "question": "Un ... nage dans l'aquarium.", "answers": [ - "poisson", - "poison" + "poison", + "poisson" ], - "correct_answer": 0, + "correct_answer": 1, "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": [ diff --git a/data/exercises/ce1/ce1_s_ss_qcm_07.json b/data/exercises/ce1/ce1_s_ss_qcm_07.json index 2985d7f..e126460 100644 --- a/data/exercises/ce1/ce1_s_ss_qcm_07.json +++ b/data/exercises/ce1/ce1_s_ss_qcm_07.json @@ -9,10 +9,10 @@ "instruction": "Choisis le bon mot.", "question": "La maîtresse entre dans la ... .", "answers": [ - "classe", - "clase" + "clase", + "classe" ], - "correct_answer": 0, + "correct_answer": 1, "hint": "Entre « a » et « e », quel son entends-tu ?", "explanation": "Pour le son [s] entre deux voyelles, on écrit « ss » : « classe ».", "review_tags": [ diff --git a/data/exercises/ce2/ce2_e_er_correction_01.json b/data/exercises/ce2/ce2_e_er_correction_01.json new file mode 100644 index 0000000..c9a55ad --- /dev/null +++ b/data/exercises/ce2/ce2_e_er_correction_01.json @@ -0,0 +1,41 @@ +{ + "id": "ce2_e_er_correction_01", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_e_er_infinitif", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Nous", + "correct": true + }, + { + "text": "allons", + "correct": true + }, + { + "text": "mangé", + "correct": false, + "expected": "manger", + "rule_id": "regle_e_er_infinitif" + }, + { + "text": "au", + "correct": true + }, + { + "text": "restaurant.", + "correct": true + } + ], + "hint": "Remplace par « vendre » : « nous allons vendre » a du sens.", + "explanation": "« Nous allons vendre » convient : on écrit l'infinitif « manger ».", + "review_tags": [ + "verbes_ce2", + "e_er" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_e_er_correction_02.json b/data/exercises/ce2/ce2_e_er_correction_02.json new file mode 100644 index 0000000..423d244 --- /dev/null +++ b/data/exercises/ce2/ce2_e_er_correction_02.json @@ -0,0 +1,45 @@ +{ + "id": "ce2_e_er_correction_02", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_e_er_infinitif", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Hier,", + "correct": true + }, + { + "text": "elle", + "correct": true + }, + { + "text": "a", + "correct": true + }, + { + "text": "chanter", + "correct": false, + "expected": "chanté", + "rule_id": "regle_e_er_infinitif" + }, + { + "text": "une", + "correct": true + }, + { + "text": "chanson.", + "correct": true + } + ], + "hint": "Remplace par « vendu » : « elle a vendu » a du sens.", + "explanation": "« Elle a vendu » convient : on écrit le participe « chanté ».", + "review_tags": [ + "verbes_ce2", + "e_er" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_e_er_correction_03.json b/data/exercises/ce2/ce2_e_er_correction_03.json new file mode 100644 index 0000000..b44bbad --- /dev/null +++ b/data/exercises/ce2/ce2_e_er_correction_03.json @@ -0,0 +1,53 @@ +{ + "id": "ce2_e_er_correction_03", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_e_er_infinitif", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Tu", + "correct": true + }, + { + "text": "peux", + "correct": true + }, + { + "text": "montré", + "correct": false, + "expected": "montrer", + "rule_id": "regle_e_er_infinitif" + }, + { + "text": "ton", + "correct": true + }, + { + "text": "dessin", + "correct": true + }, + { + "text": "à", + "correct": true + }, + { + "text": "la", + "correct": true + }, + { + "text": "classe.", + "correct": true + } + ], + "hint": "Remplace par « vendre » : « tu peux vendre » a du sens.", + "explanation": "« Tu peux vendre » convient : on écrit l'infinitif « montrer ».", + "review_tags": [ + "verbes_ce2", + "e_er" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_e_er_correction_04.json b/data/exercises/ce2/ce2_e_er_correction_04.json new file mode 100644 index 0000000..0c0146d --- /dev/null +++ b/data/exercises/ce2/ce2_e_er_correction_04.json @@ -0,0 +1,53 @@ +{ + "id": "ce2_e_er_correction_04", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_e_er_infinitif", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Après", + "correct": true + }, + { + "text": "avoir", + "correct": true + }, + { + "text": "goûter", + "correct": false, + "expected": "goûté", + "rule_id": "regle_e_er_infinitif" + }, + { + "text": "la", + "correct": true + }, + { + "text": "soupe,", + "correct": true + }, + { + "text": "il", + "correct": true + }, + { + "text": "en", + "correct": true + }, + { + "text": "redemande.", + "correct": true + } + ], + "hint": "Après « avoir », le verbe est un participe : essaie « vendu ».", + "explanation": "Après « avoir », on écrit le participe : « goûté ».", + "review_tags": [ + "verbes_ce2", + "e_er" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_e_er_qcm_01.json b/data/exercises/ce2/ce2_e_er_qcm_01.json new file mode 100644 index 0000000..374ad57 --- /dev/null +++ b/data/exercises/ce2/ce2_e_er_qcm_01.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_e_er_qcm_01", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_e_er_infinitif", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Il faut ... la porte avant de partir.", + "answers": [ + "fermé", + "fermer" + ], + "correct_answer": 1, + "hint": "Remplace par « vendre » : « il faut vendre la porte » a du sens.", + "explanation": "« Il faut vendre » convient : on écrit l'infinitif « fermer ».", + "review_tags": [ + "verbes_ce2", + "e_er" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_e_er_qcm_02.json b/data/exercises/ce2/ce2_e_er_qcm_02.json new file mode 100644 index 0000000..63d3ca8 --- /dev/null +++ b/data/exercises/ce2/ce2_e_er_qcm_02.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_e_er_qcm_02", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_e_er_infinitif", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Papa a ... le garage à clé.", + "answers": [ + "fermer", + "fermé" + ], + "correct_answer": 1, + "hint": "Remplace par « vendu » : « papa a vendu » a du sens.", + "explanation": "« Papa a vendu » convient : on écrit le participe « fermé ».", + "review_tags": [ + "verbes_ce2", + "e_er" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_e_er_qcm_03.json b/data/exercises/ce2/ce2_e_er_qcm_03.json new file mode 100644 index 0000000..1a9eb7c --- /dev/null +++ b/data/exercises/ce2/ce2_e_er_qcm_03.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_e_er_qcm_03", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_e_er_infinitif", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Nous aimons ... des chansons.", + "answers": [ + "chanté", + "chanter" + ], + "correct_answer": 1, + "hint": "Remplace par « vendre » : « nous aimons vendre » a du sens.", + "explanation": "« Nous aimons vendre » convient : on écrit « chanter ».", + "review_tags": [ + "verbes_ce2", + "e_er" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_e_er_qcm_04.json b/data/exercises/ce2/ce2_e_er_qcm_04.json new file mode 100644 index 0000000..a24547f --- /dev/null +++ b/data/exercises/ce2/ce2_e_er_qcm_04.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_e_er_qcm_04", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_e_er_infinitif", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le maçon a ... un gros sac.", + "answers": [ + "porter", + "porté" + ], + "correct_answer": 1, + "hint": "Remplace par « vendu » : « il a vendu » a du sens.", + "explanation": "« Il a vendu » convient : on écrit le participe « porté ».", + "review_tags": [ + "verbes_ce2", + "e_er" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_e_er_qcm_05.json b/data/exercises/ce2/ce2_e_er_qcm_05.json new file mode 100644 index 0000000..0c075dd --- /dev/null +++ b/data/exercises/ce2/ce2_e_er_qcm_05.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_e_er_qcm_05", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_e_er_infinitif", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Tu dois ... tes mains avant de manger.", + "answers": [ + "lavé", + "laver" + ], + "correct_answer": 1, + "hint": "Remplace par « vendre » : « tu dois vendre » a du sens.", + "explanation": "« Tu dois vendre » convient : on écrit « laver ».", + "review_tags": [ + "verbes_ce2", + "e_er" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_e_er_qcm_06.json b/data/exercises/ce2/ce2_e_er_qcm_06.json new file mode 100644 index 0000000..6f23411 --- /dev/null +++ b/data/exercises/ce2/ce2_e_er_qcm_06.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_e_er_qcm_06", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_e_er_infinitif", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Elle a ... son chat toute la matinée.", + "answers": [ + "dessiner", + "dessiné" + ], + "correct_answer": 1, + "hint": "Remplace par « vendu » : « elle a vendu » a du sens.", + "explanation": "« Elle a vendu » convient : on écrit le participe « dessiné ».", + "review_tags": [ + "verbes_ce2", + "e_er" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_e_er_qcm_07.json b/data/exercises/ce2/ce2_e_er_qcm_07.json new file mode 100644 index 0000000..356377c --- /dev/null +++ b/data/exercises/ce2/ce2_e_er_qcm_07.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_e_er_qcm_07", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_e_er_infinitif", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Ils ont beaucoup ... pour arriver à l'oasis.", + "answers": [ + "marché", + "marcher" + ], + "correct_answer": 0, + "hint": "Après « ils ont », essaie « vendu ».", + "explanation": "Après « ils ont », on écrit un participe : « marché ».", + "review_tags": [ + "verbes_ce2", + "e_er" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_e_er_qcm_08.json b/data/exercises/ce2/ce2_e_er_qcm_08.json new file mode 100644 index 0000000..d917b6d --- /dev/null +++ b/data/exercises/ce2/ce2_e_er_qcm_08.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_e_er_qcm_08", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_e_er_infinitif", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Après avoir ... les fruits, nous rentrons.", + "answers": [ + "ramassé", + "ramasser" + ], + "correct_answer": 0, + "hint": "Après « avoir », le verbe est un participe : essaie « vendu ».", + "explanation": "Après « avoir », on écrit le participe : « ramassé ».", + "review_tags": [ + "verbes_ce2", + "e_er" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_feminin_correction_01.json b/data/exercises/ce2/ce2_feminin_correction_01.json new file mode 100644 index 0000000..565be96 --- /dev/null +++ b/data/exercises/ce2/ce2_feminin_correction_01.json @@ -0,0 +1,45 @@ +{ + "id": "ce2_feminin_correction_01", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_feminin_noms_adjectifs", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Ma", + "correct": true + }, + { + "text": "tante", + "correct": true + }, + { + "text": "est", + "correct": true + }, + { + "text": "une", + "correct": true + }, + { + "text": "grande", + "correct": true + }, + { + "text": "chanteur.", + "correct": false, + "expected": "chanteuse.", + "rule_id": "regle_feminin_noms_adjectifs" + } + ], + "hint": "Les mots en -eur font souvent -euse au féminin.", + "explanation": "Le féminin de « chanteur » est « chanteuse » (-eur devient -euse).", + "review_tags": [ + "lettres_mots", + "feminin" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_feminin_correction_02.json b/data/exercises/ce2/ce2_feminin_correction_02.json new file mode 100644 index 0000000..f3252e2 --- /dev/null +++ b/data/exercises/ce2/ce2_feminin_correction_02.json @@ -0,0 +1,41 @@ +{ + "id": "ce2_feminin_correction_02", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_feminin_noms_adjectifs", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "La", + "correct": true + }, + { + "text": "boulanger", + "correct": false, + "expected": "boulangère", + "rule_id": "regle_feminin_noms_adjectifs" + }, + { + "text": "prépare", + "correct": true + }, + { + "text": "des", + "correct": true + }, + { + "text": "croissants.", + "correct": true + } + ], + "hint": "Les mots en -er font -ère au féminin.", + "explanation": "Le féminin de « boulanger » est « boulangère » (-er devient -ère).", + "review_tags": [ + "lettres_mots", + "feminin" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_feminin_correction_03.json b/data/exercises/ce2/ce2_feminin_correction_03.json new file mode 100644 index 0000000..f815165 --- /dev/null +++ b/data/exercises/ce2/ce2_feminin_correction_03.json @@ -0,0 +1,41 @@ +{ + "id": "ce2_feminin_correction_03", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_feminin_noms_adjectifs", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "La", + "correct": true + }, + { + "text": "directeur", + "correct": false, + "expected": "directrice", + "rule_id": "regle_feminin_noms_adjectifs" + }, + { + "text": "de", + "correct": true + }, + { + "text": "l'école", + "correct": true + }, + { + "text": "sourit.", + "correct": true + } + ], + "hint": "Les mots en -teur font souvent -trice au féminin.", + "explanation": "Le féminin de « directeur » est « directrice » (-teur devient -trice).", + "review_tags": [ + "lettres_mots", + "feminin" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_feminin_correction_04.json b/data/exercises/ce2/ce2_feminin_correction_04.json new file mode 100644 index 0000000..fb4ac3a --- /dev/null +++ b/data/exercises/ce2/ce2_feminin_correction_04.json @@ -0,0 +1,41 @@ +{ + "id": "ce2_feminin_correction_04", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_feminin_noms_adjectifs", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Sa", + "correct": true + }, + { + "text": "cousine", + "correct": true + }, + { + "text": "est", + "correct": true + }, + { + "text": "très", + "correct": true + }, + { + "text": "sportif.", + "correct": false, + "expected": "sportive.", + "rule_id": "regle_feminin_noms_adjectifs" + } + ], + "hint": "Les adjectifs en -f font -ve au féminin.", + "explanation": "Le féminin de « sportif » est « sportive » (-f devient -ve).", + "review_tags": [ + "lettres_mots", + "feminin" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_feminin_qcm_01.json b/data/exercises/ce2/ce2_feminin_qcm_01.json new file mode 100644 index 0000000..11118aa --- /dev/null +++ b/data/exercises/ce2/ce2_feminin_qcm_01.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_feminin_qcm_01", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_feminin_noms_adjectifs", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le chat blanc et la ... noire jouent.", + "answers": [ + "chatte", + "chate" + ], + "correct_answer": 0, + "hint": "Le féminin de « chat » double la lettre « t ».", + "explanation": "Le féminin de « chat » est « chatte », avec deux t.", + "review_tags": [ + "lettres_mots", + "feminin" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_feminin_qcm_02.json b/data/exercises/ce2/ce2_feminin_qcm_02.json new file mode 100644 index 0000000..c55f195 --- /dev/null +++ b/data/exercises/ce2/ce2_feminin_qcm_02.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_feminin_qcm_02", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_feminin_noms_adjectifs", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Un lion et une ... vivent dans la savane.", + "answers": [ + "lione", + "lionne" + ], + "correct_answer": 1, + "hint": "Les mots en -on doublent le « n » au féminin.", + "explanation": "Le féminin de « lion » est « lionne », avec deux n.", + "review_tags": [ + "lettres_mots", + "feminin" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_feminin_qcm_03.json b/data/exercises/ce2/ce2_feminin_qcm_03.json new file mode 100644 index 0000000..5971317 --- /dev/null +++ b/data/exercises/ce2/ce2_feminin_qcm_03.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_feminin_qcm_03", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_feminin_noms_adjectifs", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Mon ami est gentil et ma ... est gentille.", + "answers": [ + "amie", + "ami" + ], + "correct_answer": 0, + "hint": "Au féminin, on ajoute un -e.", + "explanation": "Le féminin de « ami » est « amie » : on ajoute un -e.", + "review_tags": [ + "lettres_mots", + "feminin" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_feminin_qcm_04.json b/data/exercises/ce2/ce2_feminin_qcm_04.json new file mode 100644 index 0000000..710438e --- /dev/null +++ b/data/exercises/ce2/ce2_feminin_qcm_04.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_feminin_qcm_04", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_feminin_noms_adjectifs", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le coiffeur et la ... travaillent dans le salon.", + "answers": [ + "coiffeuse", + "coiffeure" + ], + "correct_answer": 0, + "hint": "Les mots en -eur font souvent -euse au féminin.", + "explanation": "Le féminin de « coiffeur » est « coiffeuse » (-eur devient -euse).", + "review_tags": [ + "lettres_mots", + "feminin" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_feminin_qcm_05.json b/data/exercises/ce2/ce2_feminin_qcm_05.json new file mode 100644 index 0000000..9a3a0cb --- /dev/null +++ b/data/exercises/ce2/ce2_feminin_qcm_05.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_feminin_qcm_05", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_feminin_noms_adjectifs", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Un boulanger et une ... préparent le pain.", + "answers": [ + "boulangeuse", + "boulangère" + ], + "correct_answer": 1, + "hint": "Les mots en -er font -ère au féminin.", + "explanation": "Le féminin de « boulanger » est « boulangère » (-er devient -ère).", + "review_tags": [ + "lettres_mots", + "feminin" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_feminin_qcm_06.json b/data/exercises/ce2/ce2_feminin_qcm_06.json new file mode 100644 index 0000000..d7aad42 --- /dev/null +++ b/data/exercises/ce2/ce2_feminin_qcm_06.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_feminin_qcm_06", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_feminin_noms_adjectifs", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le directeur et la ... de l'école discutent.", + "answers": [ + "directrice", + "directeuse" + ], + "correct_answer": 0, + "hint": "Les mots en -teur font souvent -trice au féminin.", + "explanation": "Le féminin de « directeur » est « directrice » (-teur devient -trice).", + "review_tags": [ + "lettres_mots", + "feminin" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_feminin_qcm_07.json b/data/exercises/ce2/ce2_feminin_qcm_07.json new file mode 100644 index 0000000..aefbdd5 --- /dev/null +++ b/data/exercises/ce2/ce2_feminin_qcm_07.json @@ -0,0 +1,24 @@ +{ + "id": "ce2_feminin_qcm_07", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_feminin_noms_adjectifs", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Un voisin sportif et une voisine ... courent ensemble.", + "answers": [ + "sportif", + "sportive", + "sportife" + ], + "correct_answer": 1, + "hint": "Les adjectifs en -f font -ve au féminin.", + "explanation": "Le féminin de « sportif » est « sportive » (-f devient -ve).", + "review_tags": [ + "lettres_mots", + "feminin" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_feminin_qcm_08.json b/data/exercises/ce2/ce2_feminin_qcm_08.json new file mode 100644 index 0000000..13c3813 --- /dev/null +++ b/data/exercises/ce2/ce2_feminin_qcm_08.json @@ -0,0 +1,24 @@ +{ + "id": "ce2_feminin_qcm_08", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_feminin_noms_adjectifs", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Mon frère est joyeux, ma sœur est ... .", + "answers": [ + "joyeux", + "joyeuse", + "joyeuxe" + ], + "correct_answer": 1, + "hint": "Les adjectifs en -eux font -euse au féminin.", + "explanation": "Le féminin de « joyeux » est « joyeuse » (-eux devient -euse).", + "review_tags": [ + "lettres_mots", + "feminin" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_futur_correction_01.json b/data/exercises/ce2/ce2_futur_correction_01.json new file mode 100644 index 0000000..343e683 --- /dev/null +++ b/data/exercises/ce2/ce2_futur_correction_01.json @@ -0,0 +1,37 @@ +{ + "id": "ce2_futur_correction_01", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_futur_simple", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Demain,", + "correct": true + }, + { + "text": "nous", + "correct": true + }, + { + "text": "jouera", + "correct": false, + "expected": "jouerons", + "rule_id": "regle_futur_simple" + }, + { + "text": "dehors.", + "correct": true + } + ], + "hint": "Avec « nous », le futur finit par -ons.", + "explanation": "Avec « nous », le futur finit par -ons : nous jouerons.", + "review_tags": [ + "verbes_ce2", + "futur" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_futur_correction_02.json b/data/exercises/ce2/ce2_futur_correction_02.json new file mode 100644 index 0000000..e4b2303 --- /dev/null +++ b/data/exercises/ce2/ce2_futur_correction_02.json @@ -0,0 +1,45 @@ +{ + "id": "ce2_futur_correction_02", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_futur_simple", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Samedi,", + "correct": true + }, + { + "text": "les", + "correct": true + }, + { + "text": "enfants", + "correct": true + }, + { + "text": "regardera", + "correct": false, + "expected": "regarderont", + "rule_id": "regle_futur_simple" + }, + { + "text": "un", + "correct": true + }, + { + "text": "spectacle.", + "correct": true + } + ], + "hint": "Plusieurs enfants : pense à « ils ».", + "explanation": "Avec « ils », le futur finit par -ont : les enfants regarderont.", + "review_tags": [ + "verbes_ce2", + "futur" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_futur_correction_03.json b/data/exercises/ce2/ce2_futur_correction_03.json new file mode 100644 index 0000000..fa78697 --- /dev/null +++ b/data/exercises/ce2/ce2_futur_correction_03.json @@ -0,0 +1,45 @@ +{ + "id": "ce2_futur_correction_03", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_futur_simple", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Cet", + "correct": true + }, + { + "text": "été,", + "correct": true + }, + { + "text": "tu", + "correct": true + }, + { + "text": "voyagerai", + "correct": false, + "expected": "voyageras", + "rule_id": "regle_futur_simple" + }, + { + "text": "en", + "correct": true + }, + { + "text": "train.", + "correct": true + } + ], + "hint": "Avec « tu », le futur finit par -as.", + "explanation": "Avec « tu », le futur finit par -as : tu voyageras.", + "review_tags": [ + "verbes_ce2", + "futur" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_futur_correction_04.json b/data/exercises/ce2/ce2_futur_correction_04.json new file mode 100644 index 0000000..5884da9 --- /dev/null +++ b/data/exercises/ce2/ce2_futur_correction_04.json @@ -0,0 +1,49 @@ +{ + "id": "ce2_futur_correction_04", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_futur_simple", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Dans", + "correct": true + }, + { + "text": "une", + "correct": true + }, + { + "text": "heure,", + "correct": true + }, + { + "text": "vous", + "correct": true + }, + { + "text": "mangeront", + "correct": false, + "expected": "mangerez", + "rule_id": "regle_futur_simple" + }, + { + "text": "avec", + "correct": true + }, + { + "text": "nous.", + "correct": true + } + ], + "hint": "Avec « vous », le futur finit par -ez.", + "explanation": "Avec « vous », le futur finit par -ez : vous mangerez.", + "review_tags": [ + "verbes_ce2", + "futur" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_futur_qcm_01.json b/data/exercises/ce2/ce2_futur_qcm_01.json new file mode 100644 index 0000000..538058e --- /dev/null +++ b/data/exercises/ce2/ce2_futur_qcm_01.json @@ -0,0 +1,24 @@ +{ + "id": "ce2_futur_qcm_01", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_futur_simple", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Demain, je ... une chanson.", + "answers": [ + "chanterai", + "chantera", + "chanteras" + ], + "correct_answer": 0, + "hint": "Avec « je », le futur finit par -ai.", + "explanation": "Avec « je », le futur finit par -ai : je chanterai.", + "review_tags": [ + "verbes_ce2", + "futur" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_futur_qcm_02.json b/data/exercises/ce2/ce2_futur_qcm_02.json new file mode 100644 index 0000000..45a0a0e --- /dev/null +++ b/data/exercises/ce2/ce2_futur_qcm_02.json @@ -0,0 +1,24 @@ +{ + "id": "ce2_futur_qcm_02", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_futur_simple", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Ce soir, tu ... aux cartes.", + "answers": [ + "jouerai", + "jouera", + "joueras" + ], + "correct_answer": 2, + "hint": "Avec « tu », le futur finit par -as.", + "explanation": "Avec « tu », le futur finit par -as : tu joueras.", + "review_tags": [ + "verbes_ce2", + "futur" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_futur_qcm_03.json b/data/exercises/ce2/ce2_futur_qcm_03.json new file mode 100644 index 0000000..ed5853c --- /dev/null +++ b/data/exercises/ce2/ce2_futur_qcm_03.json @@ -0,0 +1,24 @@ +{ + "id": "ce2_futur_qcm_03", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_futur_simple", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Samedi, Paul ... un film.", + "answers": [ + "regardera", + "regarderai", + "regarderas" + ], + "correct_answer": 0, + "hint": "Avec « Paul » (= il), le futur finit par -a.", + "explanation": "Avec « il », le futur finit par -a : Paul regardera.", + "review_tags": [ + "verbes_ce2", + "futur" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_futur_qcm_04.json b/data/exercises/ce2/ce2_futur_qcm_04.json new file mode 100644 index 0000000..7c73a8c --- /dev/null +++ b/data/exercises/ce2/ce2_futur_qcm_04.json @@ -0,0 +1,24 @@ +{ + "id": "ce2_futur_qcm_04", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_futur_simple", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Cet été, nous ... en bateau.", + "answers": [ + "voyagerez", + "voyagerons", + "voyageront" + ], + "correct_answer": 1, + "hint": "Avec « nous », le futur finit par -ons.", + "explanation": "Avec « nous », le futur finit par -ons : nous voyagerons.", + "review_tags": [ + "verbes_ce2", + "futur" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_futur_qcm_05.json b/data/exercises/ce2/ce2_futur_qcm_05.json new file mode 100644 index 0000000..5b999bd --- /dev/null +++ b/data/exercises/ce2/ce2_futur_qcm_05.json @@ -0,0 +1,24 @@ +{ + "id": "ce2_futur_qcm_05", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_futur_simple", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Vous ... votre chambre avant le dîner.", + "answers": [ + "rangerez", + "rangeront", + "rangerons" + ], + "correct_answer": 0, + "hint": "Avec « vous », le futur finit par -ez.", + "explanation": "Avec « vous », le futur finit par -ez : vous rangerez.", + "review_tags": [ + "verbes_ce2", + "futur" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_futur_qcm_06.json b/data/exercises/ce2/ce2_futur_qcm_06.json new file mode 100644 index 0000000..8be165e --- /dev/null +++ b/data/exercises/ce2/ce2_futur_qcm_06.json @@ -0,0 +1,24 @@ +{ + "id": "ce2_futur_qcm_06", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_futur_simple", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les élèves ... à la fête de l'école.", + "answers": [ + "dansera", + "danserez", + "danseront" + ], + "correct_answer": 2, + "hint": "Plusieurs élèves : pense à « ils ».", + "explanation": "Avec « ils », le futur finit par -ont : les élèves danseront.", + "review_tags": [ + "verbes_ce2", + "futur" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_futur_qcm_07.json b/data/exercises/ce2/ce2_futur_qcm_07.json new file mode 100644 index 0000000..f2869e8 --- /dev/null +++ b/data/exercises/ce2/ce2_futur_qcm_07.json @@ -0,0 +1,24 @@ +{ + "id": "ce2_futur_qcm_07", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_futur_simple", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "L'an prochain, mes sœurs ... une nouvelle langue.", + "answers": [ + "étudierez", + "étudieront", + "étudiera" + ], + "correct_answer": 1, + "hint": "Plusieurs sœurs : pense à « elles ».", + "explanation": "Avec « elles », le futur finit par -ont : mes sœurs étudieront.", + "review_tags": [ + "verbes_ce2", + "futur" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_futur_qcm_08.json b/data/exercises/ce2/ce2_futur_qcm_08.json new file mode 100644 index 0000000..259639c --- /dev/null +++ b/data/exercises/ce2/ce2_futur_qcm_08.json @@ -0,0 +1,24 @@ +{ + "id": "ce2_futur_qcm_08", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_futur_simple", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Plus tard, toi et moi, nous ... un grand voyage.", + "answers": [ + "organiseront", + "organiserez", + "organiserons" + ], + "correct_answer": 2, + "hint": "« Toi et moi » peut se remplacer par « nous ».", + "explanation": "« Toi et moi » = « nous » : le futur finit par -ons.", + "review_tags": [ + "verbes_ce2", + "futur" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_g_ge_gu_correction_01.json b/data/exercises/ce2/ce2_g_ge_gu_correction_01.json new file mode 100644 index 0000000..e392cc4 --- /dev/null +++ b/data/exercises/ce2/ce2_g_ge_gu_correction_01.json @@ -0,0 +1,37 @@ +{ + "id": "ce2_g_ge_gu_correction_01", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_g_ge_gu", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Nous", + "correct": true + }, + { + "text": "mangons", + "correct": false, + "expected": "mangeons", + "rule_id": "regle_g_ge_gu" + }, + { + "text": "une", + "correct": true + }, + { + "text": "pomme.", + "correct": true + } + ], + "hint": "Devant « o », pour le son doux, il faut « ge ».", + "explanation": "Devant « o », on écrit « ge » pour le son doux : « mangeons ».", + "review_tags": [ + "lettres_mots", + "g_ge_gu" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_g_ge_gu_correction_02.json b/data/exercises/ce2/ce2_g_ge_gu_correction_02.json new file mode 100644 index 0000000..2aca613 --- /dev/null +++ b/data/exercises/ce2/ce2_g_ge_gu_correction_02.json @@ -0,0 +1,53 @@ +{ + "id": "ce2_g_ge_gu_correction_02", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_g_ge_gu", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Mon", + "correct": true + }, + { + "text": "oncle", + "correct": true + }, + { + "text": "joue", + "correct": true + }, + { + "text": "de", + "correct": true + }, + { + "text": "la", + "correct": true + }, + { + "text": "gitare", + "correct": false, + "expected": "guitare", + "rule_id": "regle_g_ge_gu" + }, + { + "text": "le", + "correct": true + }, + { + "text": "soir.", + "correct": true + } + ], + "hint": "Devant « i », pour le son dur [g], il faut « gu ».", + "explanation": "Devant « i », on écrit « gu » pour le son dur : « guitare ».", + "review_tags": [ + "lettres_mots", + "g_ge_gu" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_g_ge_gu_correction_03.json b/data/exercises/ce2/ce2_g_ge_gu_correction_03.json new file mode 100644 index 0000000..4215f55 --- /dev/null +++ b/data/exercises/ce2/ce2_g_ge_gu_correction_03.json @@ -0,0 +1,49 @@ +{ + "id": "ce2_g_ge_gu_correction_03", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_g_ge_gu", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Le", + "correct": true + }, + { + "text": "soldat", + "correct": true + }, + { + "text": "est", + "correct": true + }, + { + "text": "parti", + "correct": true + }, + { + "text": "à", + "correct": true + }, + { + "text": "la", + "correct": true + }, + { + "text": "gerre.", + "correct": false, + "expected": "guerre.", + "rule_id": "regle_g_ge_gu" + } + ], + "hint": "Devant « e », pour le son dur [g], il faut « gu ».", + "explanation": "Devant « e », on écrit « gu » pour le son dur : « guerre ».", + "review_tags": [ + "lettres_mots", + "g_ge_gu" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_g_ge_gu_correction_04.json b/data/exercises/ce2/ce2_g_ge_gu_correction_04.json new file mode 100644 index 0000000..4440f4c --- /dev/null +++ b/data/exercises/ce2/ce2_g_ge_gu_correction_04.json @@ -0,0 +1,49 @@ +{ + "id": "ce2_g_ge_gu_correction_04", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_g_ge_gu", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Nous", + "correct": true + }, + { + "text": "partagons", + "correct": false, + "expected": "partageons", + "rule_id": "regle_g_ge_gu" + }, + { + "text": "le", + "correct": true + }, + { + "text": "gâteau", + "correct": true + }, + { + "text": "en", + "correct": true + }, + { + "text": "six", + "correct": true + }, + { + "text": "parts.", + "correct": true + } + ], + "hint": "Devant « o », pour le son doux, il faut « ge ».", + "explanation": "Devant « o », on écrit « ge » pour le son doux : « partageons ».", + "review_tags": [ + "lettres_mots", + "g_ge_gu" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_g_ge_gu_qcm_01.json b/data/exercises/ce2/ce2_g_ge_gu_qcm_01.json new file mode 100644 index 0000000..ab645b6 --- /dev/null +++ b/data/exercises/ce2/ce2_g_ge_gu_qcm_01.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_g_ge_gu_qcm_01", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_g_ge_gu", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Julie joue de la ... .", + "answers": [ + "guitare", + "gitare" + ], + "correct_answer": 0, + "hint": "Devant « i », pour le son dur [g], il faut « gu ».", + "explanation": "Devant « i », on écrit « gu » pour le son dur : « guitare ».", + "review_tags": [ + "lettres_mots", + "g_ge_gu" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_g_ge_gu_qcm_02.json b/data/exercises/ce2/ce2_g_ge_gu_qcm_02.json new file mode 100644 index 0000000..365229a --- /dev/null +++ b/data/exercises/ce2/ce2_g_ge_gu_qcm_02.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_g_ge_gu_qcm_02", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_g_ge_gu", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Nous ... des fruits.", + "answers": [ + "mangons", + "mangeons" + ], + "correct_answer": 1, + "hint": "Devant « o », pour le son doux, il faut « ge ».", + "explanation": "Devant « o », on écrit « ge » pour garder le son doux : « mangeons ».", + "review_tags": [ + "lettres_mots", + "g_ge_gu" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_g_ge_gu_qcm_03.json b/data/exercises/ce2/ce2_g_ge_gu_qcm_03.json new file mode 100644 index 0000000..ac8fa03 --- /dev/null +++ b/data/exercises/ce2/ce2_g_ge_gu_qcm_03.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_g_ge_gu_qcm_03", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_g_ge_gu", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Il fait un beau ... dans la mer.", + "answers": [ + "plongon", + "plongeon" + ], + "correct_answer": 1, + "hint": "Devant « o », pour le son doux, il faut « ge ».", + "explanation": "Devant « o », on écrit « ge » pour le son doux : « plongeon ».", + "review_tags": [ + "lettres_mots", + "g_ge_gu" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_g_ge_gu_qcm_04.json b/data/exercises/ce2/ce2_g_ge_gu_qcm_04.json new file mode 100644 index 0000000..47d8d02 --- /dev/null +++ b/data/exercises/ce2/ce2_g_ge_gu_qcm_04.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_g_ge_gu_qcm_04", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_g_ge_gu", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le soldat part à la ... .", + "answers": [ + "gerre", + "guerre" + ], + "correct_answer": 1, + "hint": "Devant « e », pour le son dur [g], il faut « gu ».", + "explanation": "Devant « e », on écrit « gu » pour le son dur : « guerre ».", + "review_tags": [ + "lettres_mots", + "g_ge_gu" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_g_ge_gu_qcm_05.json b/data/exercises/ce2/ce2_g_ge_gu_qcm_05.json new file mode 100644 index 0000000..4c9f7bb --- /dev/null +++ b/data/exercises/ce2/ce2_g_ge_gu_qcm_05.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_g_ge_gu_qcm_05", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_g_ge_gu", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Nous ... dans la piscine.", + "answers": [ + "nagons", + "nageons" + ], + "correct_answer": 1, + "hint": "Devant « o », pour le son doux, il faut « ge ».", + "explanation": "Devant « o », on écrit « ge » pour le son doux : « nageons ».", + "review_tags": [ + "lettres_mots", + "g_ge_gu" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_g_ge_gu_qcm_06.json b/data/exercises/ce2/ce2_g_ge_gu_qcm_06.json new file mode 100644 index 0000000..2ada65f --- /dev/null +++ b/data/exercises/ce2/ce2_g_ge_gu_qcm_06.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_g_ge_gu_qcm_06", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_g_ge_gu", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Papa range la voiture dans le ... .", + "answers": [ + "garage", + "gearage" + ], + "correct_answer": 0, + "hint": "Le son dur [g] devant « a » s'écrit simplement « g ».", + "explanation": "Devant « a », le son dur s'écrit « g » : « garage ».", + "review_tags": [ + "lettres_mots", + "g_ge_gu" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_g_ge_gu_qcm_07.json b/data/exercises/ce2/ce2_g_ge_gu_qcm_07.json new file mode 100644 index 0000000..77f583a --- /dev/null +++ b/data/exercises/ce2/ce2_g_ge_gu_qcm_07.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_g_ge_gu_qcm_07", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_g_ge_gu", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Nous ... la vaisselle ensemble.", + "answers": [ + "rangeons", + "rangons" + ], + "correct_answer": 0, + "hint": "Devant « o », pour le son doux, il faut « ge ».", + "explanation": "Devant « o », on écrit « ge » pour le son doux : « rangeons ».", + "review_tags": [ + "lettres_mots", + "g_ge_gu" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_g_ge_gu_qcm_08.json b/data/exercises/ce2/ce2_g_ge_gu_qcm_08.json new file mode 100644 index 0000000..180918b --- /dev/null +++ b/data/exercises/ce2/ce2_g_ge_gu_qcm_08.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_g_ge_gu_qcm_08", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_g_ge_gu", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Nous ... le pain en tranches.", + "answers": [ + "partagons", + "partageons" + ], + "correct_answer": 1, + "hint": "Devant « o », pour le son doux, il faut « ge ».", + "explanation": "Devant « o », on écrit « ge » pour le son doux : « partageons ».", + "review_tags": [ + "lettres_mots", + "g_ge_gu" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_muette_correction_01.json b/data/exercises/ce2/ce2_muette_correction_01.json new file mode 100644 index 0000000..f1612af --- /dev/null +++ b/data/exercises/ce2/ce2_muette_correction_01.json @@ -0,0 +1,49 @@ +{ + "id": "ce2_muette_correction_01", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_lettre_muette_finale", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Le", + "correct": true + }, + { + "text": "chat", + "correct": true + }, + { + "text": "gri", + "correct": false, + "expected": "gris", + "rule_id": "regle_lettre_muette_finale" + }, + { + "text": "dort", + "correct": true + }, + { + "text": "sur", + "correct": true + }, + { + "text": "le", + "correct": true + }, + { + "text": "tapis.", + "correct": true + } + ], + "hint": "Pense au féminin : une souris grise.", + "explanation": "Au féminin, on entend « grise » : on écrit « gris » avec un -s final.", + "review_tags": [ + "lettres_mots", + "muette" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_muette_correction_02.json b/data/exercises/ce2/ce2_muette_correction_02.json new file mode 100644 index 0000000..f704c77 --- /dev/null +++ b/data/exercises/ce2/ce2_muette_correction_02.json @@ -0,0 +1,45 @@ +{ + "id": "ce2_muette_correction_02", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_lettre_muette_finale", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Ce", + "correct": true + }, + { + "text": "petit", + "correct": true + }, + { + "text": "garçon", + "correct": true + }, + { + "text": "est", + "correct": true + }, + { + "text": "bien", + "correct": true + }, + { + "text": "gran.", + "correct": false, + "expected": "grand.", + "rule_id": "regle_lettre_muette_finale" + } + ], + "hint": "Pense au féminin : une grande fille.", + "explanation": "Au féminin, on entend « grande » : on écrit « grand » avec un -d final.", + "review_tags": [ + "lettres_mots", + "muette" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_muette_correction_03.json b/data/exercises/ce2/ce2_muette_correction_03.json new file mode 100644 index 0000000..e095d33 --- /dev/null +++ b/data/exercises/ce2/ce2_muette_correction_03.json @@ -0,0 +1,45 @@ +{ + "id": "ce2_muette_correction_03", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_lettre_muette_finale", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "J'écoute", + "correct": true + }, + { + "text": "un", + "correct": true + }, + { + "text": "chan", + "correct": false, + "expected": "chant", + "rule_id": "regle_lettre_muette_finale" + }, + { + "text": "de", + "correct": true + }, + { + "text": "la", + "correct": true + }, + { + "text": "radio.", + "correct": true + } + ], + "hint": "Pense au verbe de la même famille : chanter.", + "explanation": "Le verbe « chanter » fait entendre le « t » : on écrit « chant ».", + "review_tags": [ + "lettres_mots", + "muette" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_muette_correction_04.json b/data/exercises/ce2/ce2_muette_correction_04.json new file mode 100644 index 0000000..c8b8edc --- /dev/null +++ b/data/exercises/ce2/ce2_muette_correction_04.json @@ -0,0 +1,41 @@ +{ + "id": "ce2_muette_correction_04", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_lettre_muette_finale", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Elle", + "correct": true + }, + { + "text": "porte", + "correct": true + }, + { + "text": "un", + "correct": true + }, + { + "text": "manteau", + "correct": true + }, + { + "text": "ver.", + "correct": false, + "expected": "vert.", + "rule_id": "regle_lettre_muette_finale" + } + ], + "hint": "Pense au féminin : une veste verte.", + "explanation": "Au féminin, on entend « verte » : on écrit « vert » avec un -t final.", + "review_tags": [ + "lettres_mots", + "muette" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_muette_qcm_01.json b/data/exercises/ce2/ce2_muette_qcm_01.json new file mode 100644 index 0000000..c47a222 --- /dev/null +++ b/data/exercises/ce2/ce2_muette_qcm_01.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_muette_qcm_01", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_lettre_muette_finale", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Un ... chat dort au soleil.", + "answers": [ + "peti", + "petit" + ], + "correct_answer": 1, + "hint": "Pense au féminin : une petite chatte.", + "explanation": "Au féminin, on entend « petite » : on écrit « petit » avec un -t final.", + "review_tags": [ + "lettres_mots", + "muette" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_muette_qcm_02.json b/data/exercises/ce2/ce2_muette_qcm_02.json new file mode 100644 index 0000000..ad84df8 --- /dev/null +++ b/data/exercises/ce2/ce2_muette_qcm_02.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_muette_qcm_02", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_lettre_muette_finale", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Mon frère est très ... .", + "answers": [ + "gran", + "grand" + ], + "correct_answer": 1, + "hint": "Pense au féminin : une grande sœur.", + "explanation": "Au féminin, on entend « grande » : on écrit « grand » avec un -d final.", + "review_tags": [ + "lettres_mots", + "muette" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_muette_qcm_03.json b/data/exercises/ce2/ce2_muette_qcm_03.json new file mode 100644 index 0000000..6f12314 --- /dev/null +++ b/data/exercises/ce2/ce2_muette_qcm_03.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_muette_qcm_03", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_lettre_muette_finale", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le ... du chat est doux.", + "answers": [ + "poil", + "poi" + ], + "correct_answer": 0, + "hint": "Pense à « poilu », un mot de la même famille.", + "explanation": "Le mot de la même famille « poilu » fait entendre le « l » : on écrit « poil ».", + "review_tags": [ + "lettres_mots", + "muette" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_muette_qcm_04.json b/data/exercises/ce2/ce2_muette_qcm_04.json new file mode 100644 index 0000000..41fbc77 --- /dev/null +++ b/data/exercises/ce2/ce2_muette_qcm_04.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_muette_qcm_04", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_lettre_muette_finale", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Il fait ... dehors.", + "answers": [ + "froid", + "froi" + ], + "correct_answer": 0, + "hint": "Pense au féminin : une soupe froide.", + "explanation": "Au féminin, on entend « froide » : on écrit « froid » avec un -d final.", + "review_tags": [ + "lettres_mots", + "muette" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_muette_qcm_05.json b/data/exercises/ce2/ce2_muette_qcm_05.json new file mode 100644 index 0000000..2242bb6 --- /dev/null +++ b/data/exercises/ce2/ce2_muette_qcm_05.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_muette_qcm_05", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_lettre_muette_finale", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le ... de la chanson est joli.", + "answers": [ + "chant", + "chan" + ], + "correct_answer": 0, + "hint": "Pense au verbe de la même famille : chanter.", + "explanation": "Le verbe « chanter » fait entendre le « t » : on écrit « chant ».", + "review_tags": [ + "lettres_mots", + "muette" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_muette_qcm_06.json b/data/exercises/ce2/ce2_muette_qcm_06.json new file mode 100644 index 0000000..811905e --- /dev/null +++ b/data/exercises/ce2/ce2_muette_qcm_06.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_muette_qcm_06", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_lettre_muette_finale", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le mouton a un manteau ... .", + "answers": [ + "blanc", + "blan" + ], + "correct_answer": 0, + "hint": "Pense au féminin : une laine blanche.", + "explanation": "Au féminin, on entend « blanche » : on écrit « blanc » avec un -c final.", + "review_tags": [ + "lettres_mots", + "muette" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_muette_qcm_07.json b/data/exercises/ce2/ce2_muette_qcm_07.json new file mode 100644 index 0000000..2406b6b --- /dev/null +++ b/data/exercises/ce2/ce2_muette_qcm_07.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_muette_qcm_07", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_lettre_muette_finale", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le vent est très ... ce soir.", + "answers": [ + "for", + "fort" + ], + "correct_answer": 1, + "hint": "Pense au féminin : une tempête forte.", + "explanation": "Au féminin, on entend « forte » : on écrit « fort » avec un -t final.", + "review_tags": [ + "lettres_mots", + "muette" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_muette_qcm_08.json b/data/exercises/ce2/ce2_muette_qcm_08.json new file mode 100644 index 0000000..52697ed --- /dev/null +++ b/data/exercises/ce2/ce2_muette_qcm_08.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_muette_qcm_08", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "rule_id": "regle_lettre_muette_finale", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Cet enfant est toujours ... .", + "answers": [ + "genti", + "gentil" + ], + "correct_answer": 1, + "hint": "Pense au féminin : une fille gentille.", + "explanation": "Au féminin, on entend « gentille » : on écrit « gentil » avec un -l final.", + "review_tags": [ + "lettres_mots", + "muette" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_sujet_verbe_correction_01.json b/data/exercises/ce2/ce2_sujet_verbe_correction_01.json new file mode 100644 index 0000000..a39da05 --- /dev/null +++ b/data/exercises/ce2/ce2_sujet_verbe_correction_01.json @@ -0,0 +1,41 @@ +{ + "id": "ce2_sujet_verbe_correction_01", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_accord_sujet_verbe", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Les", + "correct": true + }, + { + "text": "nomades", + "correct": true + }, + { + "text": "monte", + "correct": false, + "expected": "montent", + "rule_id": "regle_accord_sujet_verbe" + }, + { + "text": "leur", + "correct": true + }, + { + "text": "tente.", + "correct": true + } + ], + "hint": "Plusieurs nomades : le verbe prend la marque du pluriel.", + "explanation": "Le sujet « les nomades » est pluriel : le verbe s'écrit « montent ».", + "review_tags": [ + "verbes_ce2", + "sujet_verbe" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_sujet_verbe_correction_02.json b/data/exercises/ce2/ce2_sujet_verbe_correction_02.json new file mode 100644 index 0000000..a582795 --- /dev/null +++ b/data/exercises/ce2/ce2_sujet_verbe_correction_02.json @@ -0,0 +1,45 @@ +{ + "id": "ce2_sujet_verbe_correction_02", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_accord_sujet_verbe", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Le", + "correct": true + }, + { + "text": "guide", + "correct": true + }, + { + "text": "des", + "correct": true + }, + { + "text": "voyageurs", + "correct": true + }, + { + "text": "marchent", + "correct": false, + "expected": "marche", + "rule_id": "regle_accord_sujet_verbe" + }, + { + "text": "devant.", + "correct": true + } + ], + "hint": "Cherche qui marche : c'est le guide.", + "explanation": "Le sujet est « le guide » (singulier), même si « des voyageurs » s'intercale : « marche ».", + "review_tags": [ + "verbes_ce2", + "sujet_verbe" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_sujet_verbe_correction_03.json b/data/exercises/ce2/ce2_sujet_verbe_correction_03.json new file mode 100644 index 0000000..28a34d1 --- /dev/null +++ b/data/exercises/ce2/ce2_sujet_verbe_correction_03.json @@ -0,0 +1,41 @@ +{ + "id": "ce2_sujet_verbe_correction_03", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_accord_sujet_verbe", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Les", + "correct": true + }, + { + "text": "oasis", + "correct": true + }, + { + "text": "apparaît", + "correct": false, + "expected": "apparaissent", + "rule_id": "regle_accord_sujet_verbe" + }, + { + "text": "au", + "correct": true + }, + { + "text": "loin.", + "correct": true + } + ], + "hint": "Plusieurs oasis : le verbe prend la marque du pluriel.", + "explanation": "Le sujet « les oasis » est pluriel : le verbe s'écrit « apparaissent ».", + "review_tags": [ + "verbes_ce2", + "sujet_verbe" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_sujet_verbe_correction_04.json b/data/exercises/ce2/ce2_sujet_verbe_correction_04.json new file mode 100644 index 0000000..953876d --- /dev/null +++ b/data/exercises/ce2/ce2_sujet_verbe_correction_04.json @@ -0,0 +1,53 @@ +{ + "id": "ce2_sujet_verbe_correction_04", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_accord_sujet_verbe", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Mon", + "correct": true + }, + { + "text": "frère", + "correct": true + }, + { + "text": "et", + "correct": true + }, + { + "text": "ma", + "correct": true + }, + { + "text": "sœur", + "correct": true + }, + { + "text": "prépare", + "correct": false, + "expected": "préparent", + "rule_id": "regle_accord_sujet_verbe" + }, + { + "text": "le", + "correct": true + }, + { + "text": "repas.", + "correct": true + } + ], + "hint": "Il y a deux sujets reliés par « et ».", + "explanation": "Deux sujets reliés par « et » donnent un sujet pluriel : « préparent ».", + "review_tags": [ + "verbes_ce2", + "sujet_verbe" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_sujet_verbe_qcm_01.json b/data/exercises/ce2/ce2_sujet_verbe_qcm_01.json new file mode 100644 index 0000000..7c0c12c --- /dev/null +++ b/data/exercises/ce2/ce2_sujet_verbe_qcm_01.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_sujet_verbe_qcm_01", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_accord_sujet_verbe", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les chameaux ... dans le sable.", + "answers": [ + "marchent", + "marche" + ], + "correct_answer": 0, + "hint": "Plusieurs chameaux : le verbe prend la marque du pluriel.", + "explanation": "Le sujet « les chameaux » est pluriel : le verbe s'écrit « marchent ».", + "review_tags": [ + "verbes_ce2", + "sujet_verbe" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_sujet_verbe_qcm_02.json b/data/exercises/ce2/ce2_sujet_verbe_qcm_02.json new file mode 100644 index 0000000..32dcb64 --- /dev/null +++ b/data/exercises/ce2/ce2_sujet_verbe_qcm_02.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_sujet_verbe_qcm_02", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_accord_sujet_verbe", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le voyageur ... une tente.", + "answers": [ + "installent", + "installe" + ], + "correct_answer": 1, + "hint": "Un seul voyageur : le verbe reste au singulier.", + "explanation": "Le sujet « le voyageur » est singulier : le verbe s'écrit « installe ».", + "review_tags": [ + "verbes_ce2", + "sujet_verbe" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_sujet_verbe_qcm_03.json b/data/exercises/ce2/ce2_sujet_verbe_qcm_03.json new file mode 100644 index 0000000..beec670 --- /dev/null +++ b/data/exercises/ce2/ce2_sujet_verbe_qcm_03.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_sujet_verbe_qcm_03", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_accord_sujet_verbe", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Mes cousins ... en été.", + "answers": [ + "voyagent", + "voyage" + ], + "correct_answer": 0, + "hint": "Plusieurs cousins : le verbe prend la marque du pluriel.", + "explanation": "Le sujet « mes cousins » est pluriel : le verbe s'écrit « voyagent ».", + "review_tags": [ + "verbes_ce2", + "sujet_verbe" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_sujet_verbe_qcm_04.json b/data/exercises/ce2/ce2_sujet_verbe_qcm_04.json new file mode 100644 index 0000000..5ed726b --- /dev/null +++ b/data/exercises/ce2/ce2_sujet_verbe_qcm_04.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_sujet_verbe_qcm_04", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_accord_sujet_verbe", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les enfants du village ... au puits.", + "answers": [ + "court", + "courent" + ], + "correct_answer": 1, + "hint": "Cherche qui fait l'action : ce sont les enfants.", + "explanation": "Le sujet est « les enfants » (pluriel), même si « du village » s'intercale : « courent ».", + "review_tags": [ + "verbes_ce2", + "sujet_verbe" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_sujet_verbe_qcm_05.json b/data/exercises/ce2/ce2_sujet_verbe_qcm_05.json new file mode 100644 index 0000000..4e97267 --- /dev/null +++ b/data/exercises/ce2/ce2_sujet_verbe_qcm_05.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_sujet_verbe_qcm_05", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_accord_sujet_verbe", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "La caravane des marchands ... lentement.", + "answers": [ + "avancent", + "avance" + ], + "correct_answer": 1, + "hint": "Cherche qui fait l'action : c'est la caravane.", + "explanation": "Le sujet est « la caravane » (singulier), même si « des marchands » s'intercale : « avance ».", + "review_tags": [ + "verbes_ce2", + "sujet_verbe" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_sujet_verbe_qcm_06.json b/data/exercises/ce2/ce2_sujet_verbe_qcm_06.json new file mode 100644 index 0000000..9a7ba2d --- /dev/null +++ b/data/exercises/ce2/ce2_sujet_verbe_qcm_06.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_sujet_verbe_qcm_06", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_accord_sujet_verbe", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le soleil et le vent ... la peau.", + "answers": [ + "brûlent", + "brûle" + ], + "correct_answer": 0, + "hint": "Il y a deux sujets reliés par « et ».", + "explanation": "Deux sujets reliés par « et » donnent un sujet pluriel : « brûlent ».", + "review_tags": [ + "verbes_ce2", + "sujet_verbe" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_sujet_verbe_qcm_07.json b/data/exercises/ce2/ce2_sujet_verbe_qcm_07.json new file mode 100644 index 0000000..752acd0 --- /dev/null +++ b/data/exercises/ce2/ce2_sujet_verbe_qcm_07.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_sujet_verbe_qcm_07", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_accord_sujet_verbe", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les pas du chameau ... sur la dune.", + "answers": [ + "résonne", + "résonnent" + ], + "correct_answer": 1, + "hint": "Cherche qui fait l'action : ce sont les pas, pas le chameau.", + "explanation": "Le sujet est « les pas » (pluriel), même si « du chameau » s'intercale : « résonnent ».", + "review_tags": [ + "verbes_ce2", + "sujet_verbe" + ], + "review_status": "draft" +} diff --git a/data/exercises/ce2/ce2_sujet_verbe_qcm_08.json b/data/exercises/ce2/ce2_sujet_verbe_qcm_08.json new file mode 100644 index 0000000..2f6e990 --- /dev/null +++ b/data/exercises/ce2/ce2_sujet_verbe_qcm_08.json @@ -0,0 +1,23 @@ +{ + "id": "ce2_sujet_verbe_qcm_08", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "rule_id": "regle_accord_sujet_verbe", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Mon oncle, avec ses amis, ... le désert.", + "answers": [ + "traverse", + "traversent" + ], + "correct_answer": 0, + "hint": "Qui traverse ? Les mots entre virgules ne sont pas le sujet.", + "explanation": "Le sujet est « mon oncle » (singulier) : « traverse ». « Avec ses amis » n'est pas le sujet.", + "review_tags": [ + "verbes_ce2", + "sujet_verbe" + ], + "review_status": "draft" +} diff --git a/data/localization/fr.json b/data/localization/fr.json index 89eaedb..e12e42c 100644 --- a/data/localization/fr.json +++ b/data/localization/fr.json @@ -120,5 +120,8 @@ "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 !" + "world_map.coming_soon": "Ce niveau arrive bientôt !", + "skill.conjugaison_present": "Verbes au présent", + "skill.conjugaison_ce2": "Verbes : accords et formes", + "skill.lettres_et_mots": "Lettres et mots" } diff --git a/data/missions/mission_31_refuge_du_sommet.json b/data/missions/mission_31_refuge_du_sommet.json new file mode 100644 index 0000000..72f181a --- /dev/null +++ b/data/missions/mission_31_refuge_du_sommet.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_31_refuge_du_sommet", + "title": "Le refuge du sommet", + "narrative_context": "Au refuge, les verbes « être » ont perdu leur sujet. Choisis la bonne forme pour les remettre à leur place.", + "rule_id": "regle_verbe_etre_present", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_32_pont_de_corde.json b/data/missions/mission_32_pont_de_corde.json new file mode 100644 index 0000000..0080683 --- /dev/null +++ b/data/missions/mission_32_pont_de_corde.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_32_pont_de_corde", + "title": "Le pont de corde", + "narrative_context": "Sur le pont de corde, une forme du verbe « être » est mal posée. Trouve-la et remplace-la.", + "rule_id": "regle_verbe_etre_present", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_33_echo_de_la_vallee.json b/data/missions/mission_33_echo_de_la_vallee.json new file mode 100644 index 0000000..f8c5a47 --- /dev/null +++ b/data/missions/mission_33_echo_de_la_vallee.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_33_echo_de_la_vallee", + "title": "L'écho de la vallée", + "narrative_context": "La vallée répète une phrase, une seule fois. Écoute bien et écris-la en entier.", + "rule_id": "regle_verbe_etre_present", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_34_sac_a_dos_plein.json b/data/missions/mission_34_sac_a_dos_plein.json new file mode 100644 index 0000000..43751a9 --- /dev/null +++ b/data/missions/mission_34_sac_a_dos_plein.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_34_sac_a_dos_plein", + "title": "Le sac à dos plein", + "narrative_context": "Ton sac à dos est plein de verbes « avoir ». Choisis la bonne forme pour qu'il ferme bien.", + "rule_id": "regle_verbe_avoir_present", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_35_cabane_du_berger.json b/data/missions/mission_35_cabane_du_berger.json new file mode 100644 index 0000000..6380d72 --- /dev/null +++ b/data/missions/mission_35_cabane_du_berger.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_35_cabane_du_berger", + "title": "La cabane du berger", + "narrative_context": "Le berger a mal écrit un verbe sur sa porte. Repère-le et corrige-le.", + "rule_id": "regle_verbe_avoir_present", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_36_grotte_aux_cristaux.json b/data/missions/mission_36_grotte_aux_cristaux.json new file mode 100644 index 0000000..dc3673f --- /dev/null +++ b/data/missions/mission_36_grotte_aux_cristaux.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_36_grotte_aux_cristaux", + "title": "La grotte aux cristaux", + "narrative_context": "Dans la grotte, un cristal murmure une phrase, une seule fois. Écoute-le et écris exactement ce qu'il dit.", + "rule_id": "regle_verbe_avoir_present", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_37_sentier_des_chevres.json b/data/missions/mission_37_sentier_des_chevres.json new file mode 100644 index 0000000..c99af2d --- /dev/null +++ b/data/missions/mission_37_sentier_des_chevres.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_37_sentier_des_chevres", + "title": "Le sentier des chèvres", + "narrative_context": "Les chèvres montent le sentier en chantant. Choisis la bonne terminaison pour chaque verbe.", + "rule_id": "regle_verbe_er_present", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_38_telepherique.json b/data/missions/mission_38_telepherique.json new file mode 100644 index 0000000..e135d8d --- /dev/null +++ b/data/missions/mission_38_telepherique.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_38_telepherique", + "title": "Le téléphérique", + "narrative_context": "Le téléphérique grince : un verbe en -er est mal accordé. Trouve-le et répare-le.", + "rule_id": "regle_verbe_er_present", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_39_sommet_qui_parle.json b/data/missions/mission_39_sommet_qui_parle.json new file mode 100644 index 0000000..b3fc803 --- /dev/null +++ b/data/missions/mission_39_sommet_qui_parle.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_39_sommet_qui_parle", + "title": "Le sommet qui parle", + "narrative_context": "Au sommet, le vent te souffle une phrase, une seule fois. Écoute bien et écris-la sans faute.", + "rule_id": "regle_verbe_er_present", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_40_oasis_aux_palmiers.json b/data/missions/mission_40_oasis_aux_palmiers.json new file mode 100644 index 0000000..0330bfc --- /dev/null +++ b/data/missions/mission_40_oasis_aux_palmiers.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_40_oasis_aux_palmiers", + "title": "L'oasis aux palmiers", + "narrative_context": "À l'oasis, chaque palmier porte un verbe. Choisis la bonne terminaison selon le sujet.", + "rule_id": "regle_accord_sujet_verbe", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_41_caravane_des_marchands.json b/data/missions/mission_41_caravane_des_marchands.json new file mode 100644 index 0000000..7ac3d6f --- /dev/null +++ b/data/missions/mission_41_caravane_des_marchands.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_41_caravane_des_marchands", + "title": "La caravane des marchands", + "narrative_context": "Un marchand a mal écrit un verbe sur son étiquette. Trouve-le et remplace-le.", + "rule_id": "regle_accord_sujet_verbe", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_42_echo_de_la_dune.json b/data/missions/mission_42_echo_de_la_dune.json new file mode 100644 index 0000000..c374f47 --- /dev/null +++ b/data/missions/mission_42_echo_de_la_dune.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_42_echo_de_la_dune", + "title": "L'écho de la dune", + "narrative_context": "La dune répète une phrase, une seule fois. Écoute bien et écris-la en entier.", + "rule_id": "regle_accord_sujet_verbe", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_43_puits_sans_fond.json b/data/missions/mission_43_puits_sans_fond.json new file mode 100644 index 0000000..0b295dc --- /dev/null +++ b/data/missions/mission_43_puits_sans_fond.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_43_puits_sans_fond", + "title": "Le puits sans fond", + "narrative_context": "Au fond du puits, des verbes hésitent entre « é » et « er ». Aide-les à choisir.", + "rule_id": "regle_e_er_infinitif", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_44_tente_du_guide.json b/data/missions/mission_44_tente_du_guide.json new file mode 100644 index 0000000..652b670 --- /dev/null +++ b/data/missions/mission_44_tente_du_guide.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_44_tente_du_guide", + "title": "La tente du guide", + "narrative_context": "Le guide a confondu « é » et « er » dans son carnet. Repère le mot fautif et corrige-le.", + "rule_id": "regle_e_er_infinitif", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_45_message_dans_le_sable.json b/data/missions/mission_45_message_dans_le_sable.json new file mode 100644 index 0000000..015ad1c --- /dev/null +++ b/data/missions/mission_45_message_dans_le_sable.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_45_message_dans_le_sable", + "title": "Le message dans le sable", + "narrative_context": "Un message se lit dans le sable, une seule fois. Écoute bien et écris-le exactement.", + "rule_id": "regle_e_er_infinitif", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_46_mirage_de_demain.json b/data/missions/mission_46_mirage_de_demain.json new file mode 100644 index 0000000..a3c0610 --- /dev/null +++ b/data/missions/mission_46_mirage_de_demain.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_46_mirage_de_demain", + "title": "Le mirage de demain", + "narrative_context": "Dans le mirage, tout se passe demain. Choisis la bonne forme du futur.", + "rule_id": "regle_futur_simple", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_47_sablier_du_voyageur.json b/data/missions/mission_47_sablier_du_voyageur.json new file mode 100644 index 0000000..d186414 --- /dev/null +++ b/data/missions/mission_47_sablier_du_voyageur.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_47_sablier_du_voyageur", + "title": "Le sablier du voyageur", + "narrative_context": "Le sablier du voyageur a mélangé les temps. Trouve la forme fautive et remets-la au futur.", + "rule_id": "regle_futur_simple", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_48_etoile_du_soir.json b/data/missions/mission_48_etoile_du_soir.json new file mode 100644 index 0000000..d819cf8 --- /dev/null +++ b/data/missions/mission_48_etoile_du_soir.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_48_etoile_du_soir", + "title": "L'étoile du soir", + "narrative_context": "L'étoile du soir chuchote une phrase, une seule fois. Écoute bien et écris-la sans faute.", + "rule_id": "regle_futur_simple", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_49_phare_de_l_ile.json b/data/missions/mission_49_phare_de_l_ile.json new file mode 100644 index 0000000..2a02036 --- /dev/null +++ b/data/missions/mission_49_phare_de_l_ile.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_49_phare_de_l_ile", + "title": "Le phare de l'île", + "narrative_context": "Le phare de l'île a besoin du bon mot au féminin pour s'allumer. Choisis la bonne forme.", + "rule_id": "regle_feminin_noms_adjectifs", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_50_marche_des_feminins.json b/data/missions/mission_50_marche_des_feminins.json new file mode 100644 index 0000000..5c43d4f --- /dev/null +++ b/data/missions/mission_50_marche_des_feminins.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_50_marche_des_feminins", + "title": "Le marché des féminins", + "narrative_context": "Au marché de l'île, un mot est resté au masculin par erreur. Trouve-le et mets-le au féminin.", + "rule_id": "regle_feminin_noms_adjectifs", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_51_perroquet_bavard.json b/data/missions/mission_51_perroquet_bavard.json new file mode 100644 index 0000000..8df8d59 --- /dev/null +++ b/data/missions/mission_51_perroquet_bavard.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_51_perroquet_bavard", + "title": "Le perroquet bavard", + "narrative_context": "Le perroquet répète une phrase, une seule fois. Écoute bien et écris-la en entier.", + "rule_id": "regle_feminin_noms_adjectifs", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_52_crique_du_g_doux.json b/data/missions/mission_52_crique_du_g_doux.json new file mode 100644 index 0000000..66d46e6 --- /dev/null +++ b/data/missions/mission_52_crique_du_g_doux.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_52_crique_du_g_doux", + "title": "La crique du g doux", + "narrative_context": "Dans la crique, le « g » change de son selon la lettre qui le suit. Choisis la bonne écriture.", + "rule_id": "regle_g_ge_gu", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_53_pont_de_lianes.json b/data/missions/mission_53_pont_de_lianes.json new file mode 100644 index 0000000..4413952 --- /dev/null +++ b/data/missions/mission_53_pont_de_lianes.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_53_pont_de_lianes", + "title": "Le pont de lianes", + "narrative_context": "Sur le pont de lianes, un mot est mal écrit. Repère-le et corrige-le.", + "rule_id": "regle_g_ge_gu", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_54_cascade_chantante.json b/data/missions/mission_54_cascade_chantante.json new file mode 100644 index 0000000..095c84e --- /dev/null +++ b/data/missions/mission_54_cascade_chantante.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_54_cascade_chantante", + "title": "La cascade chantante", + "narrative_context": "La cascade chante une phrase, une seule fois. Écoute bien et écris-la sans faute.", + "rule_id": "regle_g_ge_gu", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_55_lettre_cachee.json b/data/missions/mission_55_lettre_cachee.json new file mode 100644 index 0000000..9ec8740 --- /dev/null +++ b/data/missions/mission_55_lettre_cachee.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_55_lettre_cachee", + "title": "La lettre cachée", + "narrative_context": "Une lettre muette se cache à la fin des mots. Trouve laquelle en pensant au féminin.", + "rule_id": "regle_lettre_muette_finale", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_56_tresor_du_pirate.json b/data/missions/mission_56_tresor_du_pirate.json new file mode 100644 index 0000000..8f2ef03 --- /dev/null +++ b/data/missions/mission_56_tresor_du_pirate.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_56_tresor_du_pirate", + "title": "Le trésor du pirate", + "narrative_context": "Le pirate a oublié une lettre finale sur sa carte. Trouve le mot fautif et corrige-le.", + "rule_id": "regle_lettre_muette_finale", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_57_bouteille_a_la_mer.json b/data/missions/mission_57_bouteille_a_la_mer.json new file mode 100644 index 0000000..8c5251e --- /dev/null +++ b/data/missions/mission_57_bouteille_a_la_mer.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_57_bouteille_a_la_mer", + "title": "La bouteille à la mer", + "narrative_context": "Une bouteille contient un message qu'on ne lit qu'une fois. Écoute bien et écris-le exactement.", + "rule_id": "regle_lettre_muette_finale", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/rules/regle_accord_sujet_verbe.json b/data/rules/regle_accord_sujet_verbe.json new file mode 100644 index 0000000..698916b --- /dev/null +++ b/data/rules/regle_accord_sujet_verbe.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_accord_sujet_verbe", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "statement": "Le verbe s'accorde avec son sujet, même si d'autres mots les séparent.", + "example": "Les chameaux du désert marchent lentement.", + "review_status": "draft" +} diff --git a/data/rules/regle_e_er_infinitif.json b/data/rules/regle_e_er_infinitif.json new file mode 100644 index 0000000..7040eea --- /dev/null +++ b/data/rules/regle_e_er_infinitif.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_e_er_infinitif", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "statement": "Pour choisir entre « é » et « er », remplace le verbe par « vendre » ou « vendu » : si « vendre » convient, on écrit « er » ; si « vendu » convient, on écrit « é ».", + "example": "Il faut manger (vendre). Il a mangé (vendu).", + "review_status": "draft" +} diff --git a/data/rules/regle_feminin_noms_adjectifs.json b/data/rules/regle_feminin_noms_adjectifs.json new file mode 100644 index 0000000..d7a2b25 --- /dev/null +++ b/data/rules/regle_feminin_noms_adjectifs.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_feminin_noms_adjectifs", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "statement": "Pour passer au féminin, on ajoute souvent un -e ; certains mots changent : -er devient -ère, -eur devient -euse, -teur devient -trice, -on devient -onne.", + "example": "Un boulanger, une boulangère. Un coiffeur, une coiffeuse. Un lion, une lionne.", + "review_status": "draft" +} diff --git a/data/rules/regle_futur_simple.json b/data/rules/regle_futur_simple.json new file mode 100644 index 0000000..cb37561 --- /dev/null +++ b/data/rules/regle_futur_simple.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_futur_simple", + "level": "CE2", + "domain": "grammaire", + "skill": "conjugaison_ce2", + "statement": "Au futur, les verbes en -er gardent leur infinitif et prennent -ai, -as, -a, -ons, -ez, -ont.", + "example": "Demain, je chanterai. Il chantera. Nous chanterons.", + "review_status": "draft" +} diff --git a/data/rules/regle_g_ge_gu.json b/data/rules/regle_g_ge_gu.json new file mode 100644 index 0000000..20e772f --- /dev/null +++ b/data/rules/regle_g_ge_gu.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_g_ge_gu", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "statement": "Devant a, o et u, on écrit « ge » pour garder le son doux [ʒ] (nous mangeons). Devant e et i, on écrit « gu » pour le son dur [g] (une guitare).", + "example": "Nous mangeons. Une guitare. Un garage.", + "review_status": "draft" +} diff --git a/data/rules/regle_lettre_muette_finale.json b/data/rules/regle_lettre_muette_finale.json new file mode 100644 index 0000000..aea8751 --- /dev/null +++ b/data/rules/regle_lettre_muette_finale.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_lettre_muette_finale", + "level": "CE2", + "domain": "orthographe", + "skill": "lettres_et_mots", + "statement": "Pour trouver la lettre muette à la fin d'un mot, cherche son féminin ou un mot de la même famille : grand (grande), petit (petite), chant (chanter).", + "example": "Un grand arbre : une grande maison. Un chant : chanter.", + "review_status": "draft" +} diff --git a/data/rules/regle_verbe_avoir_present.json b/data/rules/regle_verbe_avoir_present.json new file mode 100644 index 0000000..bd2bec4 --- /dev/null +++ b/data/rules/regle_verbe_avoir_present.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_verbe_avoir_present", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "statement": "Le verbe « avoir » change avec le sujet : j'ai, tu as, il a, nous avons, vous avez, ils ont.", + "example": "J'ai un chat. Tu as faim. Ils ont chaud.", + "review_status": "draft" +} diff --git a/data/rules/regle_verbe_er_present.json b/data/rules/regle_verbe_er_present.json new file mode 100644 index 0000000..280d609 --- /dev/null +++ b/data/rules/regle_verbe_er_present.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_verbe_er_present", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "statement": "Au présent, les verbes en -er se terminent par -e, -es, -e, -ons, -ez, -ent selon le sujet.", + "example": "Je chante. Tu chantes. Nous chantons. Ils chantent.", + "review_status": "draft" +} diff --git a/data/rules/regle_verbe_etre_present.json b/data/rules/regle_verbe_etre_present.json new file mode 100644 index 0000000..a6a4598 --- /dev/null +++ b/data/rules/regle_verbe_etre_present.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_verbe_etre_present", + "level": "CE1", + "domain": "grammaire", + "skill": "conjugaison_present", + "statement": "Le verbe « être » change avec le sujet : je suis, tu es, il est, nous sommes, vous êtes, ils sont.", + "example": "Je suis content. Tu es grand. Ils sont là.", + "review_status": "draft" +} diff --git a/data/schemas/curriculum.schema.json b/data/schemas/curriculum.schema.json index 3b72e2e..d9b38eb 100644 --- a/data/schemas/curriculum.schema.json +++ b/data/schemas/curriculum.schema.json @@ -16,7 +16,7 @@ "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"] }, + "backdrop": { "type": "string", "enum": ["forest", "marsh", "beach", "mountain", "desert", "island"] }, "rule_ids": { "type": "array", "minItems": 1, diff --git a/docs/review/content-review.md b/docs/review/content-review.md index 43ea9c1..9ba0867 100644 --- a/docs/review/content-review.md +++ b/docs/review/content-review.md @@ -188,6 +188,564 @@ Genere automatiquement depuis `data/` par `tools/generate_content_review.py`. Ne - Audio : provisoire - Statut : draft +## regle_accord_sujet_verbe (CE2, grammaire) + +**Enonce** : Le verbe s'accorde avec son sujet, même si d'autres mots les séparent. + +**Exemple** : Les chameaux du désert marchent lentement. + +**Statut** : draft + +### Choix multiples + +- **ce2_sujet_verbe_qcm_01** (difficulte 1) : Les chameaux ... dans le sable. + - Reponses : marchent, marche + - Reponse attendue : marchent + - Indice : Plusieurs chameaux : le verbe prend la marque du pluriel. + - Explication : Le sujet « les chameaux » est pluriel : le verbe s'écrit « marchent ». + - Statut : draft +- **ce2_sujet_verbe_qcm_02** (difficulte 1) : Le voyageur ... une tente. + - Reponses : installent, installe + - Reponse attendue : installe + - Indice : Un seul voyageur : le verbe reste au singulier. + - Explication : Le sujet « le voyageur » est singulier : le verbe s'écrit « installe ». + - Statut : draft +- **ce2_sujet_verbe_qcm_03** (difficulte 1) : Mes cousins ... en été. + - Reponses : voyagent, voyage + - Reponse attendue : voyagent + - Indice : Plusieurs cousins : le verbe prend la marque du pluriel. + - Explication : Le sujet « mes cousins » est pluriel : le verbe s'écrit « voyagent ». + - Statut : draft +- **ce2_sujet_verbe_qcm_04** (difficulte 2) : Les enfants du village ... au puits. + - Reponses : court, courent + - Reponse attendue : courent + - Indice : Cherche qui fait l'action : ce sont les enfants. + - Explication : Le sujet est « les enfants » (pluriel), même si « du village » s'intercale : « courent ». + - Statut : draft +- **ce2_sujet_verbe_qcm_05** (difficulte 2) : La caravane des marchands ... lentement. + - Reponses : avancent, avance + - Reponse attendue : avance + - Indice : Cherche qui fait l'action : c'est la caravane. + - Explication : Le sujet est « la caravane » (singulier), même si « des marchands » s'intercale : « avance ». + - Statut : draft +- **ce2_sujet_verbe_qcm_06** (difficulte 2) : Le soleil et le vent ... la peau. + - Reponses : brûlent, brûle + - Reponse attendue : brûlent + - Indice : Il y a deux sujets reliés par « et ». + - Explication : Deux sujets reliés par « et » donnent un sujet pluriel : « brûlent ». + - Statut : draft +- **ce2_sujet_verbe_qcm_07** (difficulte 3) : Les pas du chameau ... sur la dune. + - Reponses : résonne, résonnent + - Reponse attendue : résonnent + - Indice : Cherche qui fait l'action : ce sont les pas, pas le chameau. + - Explication : Le sujet est « les pas » (pluriel), même si « du chameau » s'intercale : « résonnent ». + - Statut : draft +- **ce2_sujet_verbe_qcm_08** (difficulte 3) : Mon oncle, avec ses amis, ... le désert. + - Reponses : traverse, traversent + - Reponse attendue : traverse + - Indice : Qui traverse ? Les mots entre virgules ne sont pas le sujet. + - Explication : Le sujet est « mon oncle » (singulier) : « traverse ». « Avec ses amis » n'est pas le sujet. + - Statut : draft + +### Corrections de phrase + +- **ce2_sujet_verbe_correction_01** (difficulte 1) : Les nomades [monte -> montent] leur tente. + - Indice : Plusieurs nomades : le verbe prend la marque du pluriel. + - Explication : Le sujet « les nomades » est pluriel : le verbe s'écrit « montent ». + - Statut : draft +- **ce2_sujet_verbe_correction_02** (difficulte 2) : Le guide des voyageurs [marchent -> marche] devant. + - Indice : Cherche qui marche : c'est le guide. + - Explication : Le sujet est « le guide » (singulier), même si « des voyageurs » s'intercale : « marche ». + - Statut : draft +- **ce2_sujet_verbe_correction_03** (difficulte 2) : Les oasis [apparaît -> apparaissent] au loin. + - Indice : Plusieurs oasis : le verbe prend la marque du pluriel. + - Explication : Le sujet « les oasis » est pluriel : le verbe s'écrit « apparaissent ». + - Statut : draft +- **ce2_sujet_verbe_correction_04** (difficulte 3) : Mon frère et ma sœur [prépare -> préparent] le repas. + - Indice : Il y a deux sujets reliés par « et ». + - Explication : Deux sujets reliés par « et » donnent un sujet pluriel : « préparent ». + - Statut : draft + +### Dictees + +- **ce2_sujet_verbe_dictee_01** : Les chameaux traversent le désert au lever du jour. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce2_sujet_verbe_dictee_02** : Le vent du soir soulève le sable doré. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce2_sujet_verbe_dictee_03** : Mes amis et moi, nous cherchons de l'ombre. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + +## regle_c_cedille (CE1, orthographe) + +**Enonce** : Devant a, o ou u, la lettre « c » se prononce [k]. Pour entendre le son [s], on écrit « ç » avec une cédille. + +**Exemple** : Un garçon. Une leçon. Ça va. + +**Statut** : draft + +### Choix multiples + +- **ce1_cedille_qcm_01** (difficulte 1) : Le petit ... joue au ballon. + - Reponses : garçon, garcon + - Reponse attendue : garçon + - Indice : Devant « o », pour entendre [s], il faut une cédille. + - Explication : Devant « o », « c » se lit [k] ; pour entendre [s], on écrit « ç » : « garçon ». + - Statut : draft +- **ce1_cedille_qcm_02** (difficulte 1) : Ma maîtresse nous donne une ... à apprendre. + - Reponses : leçon, lecon + - Reponse attendue : leçon + - Indice : Devant « o », pour entendre [s], il faut une cédille. + - Explication : On écrit « ç » devant « o » pour le son [s] : « leçon ». + - Statut : draft +- **ce1_cedille_qcm_03** (difficulte 1) : ... va très bien, merci ! + - Reponses : Ça, Ca + - Reponse attendue : Ça + - Indice : Devant « a », pour entendre [s], il faut une cédille. + - Explication : On écrit « ç » devant « a » pour le son [s] : « ça ». + - Statut : draft +- **ce1_cedille_qcm_04** (difficulte 2) : Le ... construit un mur en pierre. + - Reponses : macon, maçon + - Reponse attendue : maçon + - Indice : Le son [s] devant « o » s'écrit avec une cédille. + - Explication : On écrit « ç » devant « o » pour le son [s] : « maçon ». + - Statut : draft +- **ce1_cedille_qcm_05** (difficulte 2) : La ... de la maison est blanche. + - Reponses : facade, façade + - Reponse attendue : façade + - Indice : Devant « a », pour entendre [s], il faut une cédille. + - Explication : On écrit « ç » devant « a » pour le son [s] : « façade ». + - Statut : draft +- **ce1_cedille_qcm_06** (difficulte 2) : Mon livre est écrit en ... . + - Reponses : français, francais + - Reponse attendue : français + - Indice : Devant « a », le son [s] demande une cédille. + - Explication : On écrit « ç » devant « a » pour le son [s] : « français ». + - Statut : draft +- **ce1_cedille_qcm_07** (difficulte 3) : Papa a ... une lettre ce matin. + - Reponses : reçu, recu + - Reponse attendue : reçu + - Indice : Devant « u », pour entendre [s], il faut une cédille. + - Explication : On écrit « ç » devant « u » pour le son [s] : « reçu ». + - Statut : draft +- **ce1_cedille_qcm_08** (difficulte 3) : Les enfants forment un grand ... dans la cour. + - Reponses : cercle, çercle + - Reponse attendue : cercle + - Indice : Devant « e », la lettre « c » donne déjà le son [s]. + - Explication : Devant « e » et « i », « c » se lit [s] tout seul : pas de cédille, on écrit « cercle ». + - Statut : draft + +### Corrections de phrase + +- **ce1_cedille_correction_01** (difficulte 1) : Léo se balance sur la [balancoire -> balançoire] du parc. + - Indice : Devant « o », pour entendre [s], il faut une cédille. + - Explication : On écrit « ç » devant « o » pour le son [s] : « balançoire ». + - Statut : draft +- **ce1_cedille_correction_02** (difficulte 2) : Il y a un [glacon -> glaçon] dans mon verre d'eau. + - Indice : Devant « o », le son [s] demande une cédille. + - Explication : On écrit « ç » devant « o » pour le son [s] : « glaçon ». + - Statut : draft +- **ce1_cedille_correction_03** (difficulte 2) : Nous [commencons -> commençons] la dictée à neuf heures. + - Indice : Devant « o », le son [s] demande une cédille. + - Explication : On écrit « ç » devant « o » pour le son [s] : « commençons ». + - Statut : draft +- **ce1_cedille_correction_04** (difficulte 3) : La maman appelle son [garcon -> garçon] pour le dîner. + - Indice : Devant « o », pour entendre [s], il faut une cédille. + - Explication : On écrit « ç » devant « o » pour le son [s] : « garçon ». + - Statut : draft + +### Dictees + +- **ce1_cedille_dictee_01** : Ma leçon de français est facile. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce1_cedille_dictee_02** : Le maçon construit une façade neuve. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce1_cedille_dictee_03** : Hier, j'ai reçu une carte postale de Lola. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + +## regle_e_er_infinitif (CE2, grammaire) + +**Enonce** : Pour choisir entre « é » et « er », remplace le verbe par « vendre » ou « vendu » : si « vendre » convient, on écrit « er » ; si « vendu » convient, on écrit « é ». + +**Exemple** : Il faut manger (vendre). Il a mangé (vendu). + +**Statut** : draft + +### Choix multiples + +- **ce2_e_er_qcm_01** (difficulte 1) : Il faut ... la porte avant de partir. + - Reponses : fermé, fermer + - Reponse attendue : fermer + - Indice : Remplace par « vendre » : « il faut vendre la porte » a du sens. + - Explication : « Il faut vendre » convient : on écrit l'infinitif « fermer ». + - Statut : draft +- **ce2_e_er_qcm_02** (difficulte 1) : Papa a ... le garage à clé. + - Reponses : fermer, fermé + - Reponse attendue : fermé + - Indice : Remplace par « vendu » : « papa a vendu » a du sens. + - Explication : « Papa a vendu » convient : on écrit le participe « fermé ». + - Statut : draft +- **ce2_e_er_qcm_03** (difficulte 1) : Nous aimons ... des chansons. + - Reponses : chanté, chanter + - Reponse attendue : chanter + - Indice : Remplace par « vendre » : « nous aimons vendre » a du sens. + - Explication : « Nous aimons vendre » convient : on écrit « chanter ». + - Statut : draft +- **ce2_e_er_qcm_04** (difficulte 2) : Le maçon a ... un gros sac. + - Reponses : porter, porté + - Reponse attendue : porté + - Indice : Remplace par « vendu » : « il a vendu » a du sens. + - Explication : « Il a vendu » convient : on écrit le participe « porté ». + - Statut : draft +- **ce2_e_er_qcm_05** (difficulte 2) : Tu dois ... tes mains avant de manger. + - Reponses : lavé, laver + - Reponse attendue : laver + - Indice : Remplace par « vendre » : « tu dois vendre » a du sens. + - Explication : « Tu dois vendre » convient : on écrit « laver ». + - Statut : draft +- **ce2_e_er_qcm_06** (difficulte 2) : Elle a ... son chat toute la matinée. + - Reponses : dessiner, dessiné + - Reponse attendue : dessiné + - Indice : Remplace par « vendu » : « elle a vendu » a du sens. + - Explication : « Elle a vendu » convient : on écrit le participe « dessiné ». + - Statut : draft +- **ce2_e_er_qcm_07** (difficulte 3) : Ils ont beaucoup ... pour arriver à l'oasis. + - Reponses : marché, marcher + - Reponse attendue : marché + - Indice : Après « ils ont », essaie « vendu ». + - Explication : Après « ils ont », on écrit un participe : « marché ». + - Statut : draft +- **ce2_e_er_qcm_08** (difficulte 3) : Après avoir ... les fruits, nous rentrons. + - Reponses : ramassé, ramasser + - Reponse attendue : ramassé + - Indice : Après « avoir », le verbe est un participe : essaie « vendu ». + - Explication : Après « avoir », on écrit le participe : « ramassé ». + - Statut : draft + +### Corrections de phrase + +- **ce2_e_er_correction_01** (difficulte 1) : Nous allons [mangé -> manger] au restaurant. + - Indice : Remplace par « vendre » : « nous allons vendre » a du sens. + - Explication : « Nous allons vendre » convient : on écrit l'infinitif « manger ». + - Statut : draft +- **ce2_e_er_correction_02** (difficulte 2) : Hier, elle a [chanter -> chanté] une chanson. + - Indice : Remplace par « vendu » : « elle a vendu » a du sens. + - Explication : « Elle a vendu » convient : on écrit le participe « chanté ». + - Statut : draft +- **ce2_e_er_correction_03** (difficulte 2) : Tu peux [montré -> montrer] ton dessin à la classe. + - Indice : Remplace par « vendre » : « tu peux vendre » a du sens. + - Explication : « Tu peux vendre » convient : on écrit l'infinitif « montrer ». + - Statut : draft +- **ce2_e_er_correction_04** (difficulte 3) : Après avoir [goûter -> goûté] la soupe, il en redemande. + - Indice : Après « avoir », le verbe est un participe : essaie « vendu ». + - Explication : Après « avoir », on écrit le participe : « goûté ». + - Statut : draft + +### Dictees + +- **ce2_e_er_dictee_01** : Il faut arroser les fleurs chaque matin. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce2_e_er_dictee_02** : Hier, nous avons regardé un film au cinéma. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce2_e_er_dictee_03** : Elle a décidé de ranger sa chambre. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + +## regle_feminin_noms_adjectifs (CE2, orthographe) + +**Enonce** : Pour passer au féminin, on ajoute souvent un -e ; certains mots changent : -er devient -ère, -eur devient -euse, -teur devient -trice, -on devient -onne. + +**Exemple** : Un boulanger, une boulangère. Un coiffeur, une coiffeuse. Un lion, une lionne. + +**Statut** : draft + +### Choix multiples + +- **ce2_feminin_qcm_01** (difficulte 1) : Le chat blanc et la ... noire jouent. + - Reponses : chatte, chate + - Reponse attendue : chatte + - Indice : Le féminin de « chat » double la lettre « t ». + - Explication : Le féminin de « chat » est « chatte », avec deux t. + - Statut : draft +- **ce2_feminin_qcm_02** (difficulte 1) : Un lion et une ... vivent dans la savane. + - Reponses : lione, lionne + - Reponse attendue : lionne + - Indice : Les mots en -on doublent le « n » au féminin. + - Explication : Le féminin de « lion » est « lionne », avec deux n. + - Statut : draft +- **ce2_feminin_qcm_03** (difficulte 1) : Mon ami est gentil et ma ... est gentille. + - Reponses : amie, ami + - Reponse attendue : amie + - Indice : Au féminin, on ajoute un -e. + - Explication : Le féminin de « ami » est « amie » : on ajoute un -e. + - Statut : draft +- **ce2_feminin_qcm_04** (difficulte 2) : Le coiffeur et la ... travaillent dans le salon. + - Reponses : coiffeuse, coiffeure + - Reponse attendue : coiffeuse + - Indice : Les mots en -eur font souvent -euse au féminin. + - Explication : Le féminin de « coiffeur » est « coiffeuse » (-eur devient -euse). + - Statut : draft +- **ce2_feminin_qcm_05** (difficulte 2) : Un boulanger et une ... préparent le pain. + - Reponses : boulangeuse, boulangère + - Reponse attendue : boulangère + - Indice : Les mots en -er font -ère au féminin. + - Explication : Le féminin de « boulanger » est « boulangère » (-er devient -ère). + - Statut : draft +- **ce2_feminin_qcm_06** (difficulte 2) : Le directeur et la ... de l'école discutent. + - Reponses : directrice, directeuse + - Reponse attendue : directrice + - Indice : Les mots en -teur font souvent -trice au féminin. + - Explication : Le féminin de « directeur » est « directrice » (-teur devient -trice). + - Statut : draft +- **ce2_feminin_qcm_07** (difficulte 3) : Un voisin sportif et une voisine ... courent ensemble. + - Reponses : sportif, sportive, sportife + - Reponse attendue : sportive + - Indice : Les adjectifs en -f font -ve au féminin. + - Explication : Le féminin de « sportif » est « sportive » (-f devient -ve). + - Statut : draft +- **ce2_feminin_qcm_08** (difficulte 3) : Mon frère est joyeux, ma sœur est ... . + - Reponses : joyeux, joyeuse, joyeuxe + - Reponse attendue : joyeuse + - Indice : Les adjectifs en -eux font -euse au féminin. + - Explication : Le féminin de « joyeux » est « joyeuse » (-eux devient -euse). + - Statut : draft + +### Corrections de phrase + +- **ce2_feminin_correction_01** (difficulte 1) : Ma tante est une grande [chanteur. -> chanteuse.] + - Indice : Les mots en -eur font souvent -euse au féminin. + - Explication : Le féminin de « chanteur » est « chanteuse » (-eur devient -euse). + - Statut : draft +- **ce2_feminin_correction_02** (difficulte 2) : La [boulanger -> boulangère] prépare des croissants. + - Indice : Les mots en -er font -ère au féminin. + - Explication : Le féminin de « boulanger » est « boulangère » (-er devient -ère). + - Statut : draft +- **ce2_feminin_correction_03** (difficulte 2) : La [directeur -> directrice] de l'école sourit. + - Indice : Les mots en -teur font souvent -trice au féminin. + - Explication : Le féminin de « directeur » est « directrice » (-teur devient -trice). + - Statut : draft +- **ce2_feminin_correction_04** (difficulte 3) : Sa cousine est très [sportif. -> sportive.] + - Indice : Les adjectifs en -f font -ve au féminin. + - Explication : Le féminin de « sportif » est « sportive » (-f devient -ve). + - Statut : draft + +### Dictees + +- **ce2_feminin_dictee_01** : La chanteuse a une jolie voix. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce2_feminin_dictee_02** : Ma voisine est une excellente cuisinière. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce2_feminin_dictee_03** : La lionne surveille ses petits dans la savane. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + +## regle_futur_simple (CE2, grammaire) + +**Enonce** : Au futur, les verbes en -er gardent leur infinitif et prennent -ai, -as, -a, -ons, -ez, -ont. + +**Exemple** : Demain, je chanterai. Il chantera. Nous chanterons. + +**Statut** : draft + +### Choix multiples + +- **ce2_futur_qcm_01** (difficulte 1) : Demain, je ... une chanson. + - Reponses : chanterai, chantera, chanteras + - Reponse attendue : chanterai + - Indice : Avec « je », le futur finit par -ai. + - Explication : Avec « je », le futur finit par -ai : je chanterai. + - Statut : draft +- **ce2_futur_qcm_02** (difficulte 1) : Ce soir, tu ... aux cartes. + - Reponses : jouerai, jouera, joueras + - Reponse attendue : joueras + - Indice : Avec « tu », le futur finit par -as. + - Explication : Avec « tu », le futur finit par -as : tu joueras. + - Statut : draft +- **ce2_futur_qcm_03** (difficulte 1) : Samedi, Paul ... un film. + - Reponses : regardera, regarderai, regarderas + - Reponse attendue : regardera + - Indice : Avec « Paul » (= il), le futur finit par -a. + - Explication : Avec « il », le futur finit par -a : Paul regardera. + - Statut : draft +- **ce2_futur_qcm_04** (difficulte 2) : Cet été, nous ... en bateau. + - Reponses : voyagerez, voyagerons, voyageront + - Reponse attendue : voyagerons + - Indice : Avec « nous », le futur finit par -ons. + - Explication : Avec « nous », le futur finit par -ons : nous voyagerons. + - Statut : draft +- **ce2_futur_qcm_05** (difficulte 2) : Vous ... votre chambre avant le dîner. + - Reponses : rangerez, rangeront, rangerons + - Reponse attendue : rangerez + - Indice : Avec « vous », le futur finit par -ez. + - Explication : Avec « vous », le futur finit par -ez : vous rangerez. + - Statut : draft +- **ce2_futur_qcm_06** (difficulte 2) : Les élèves ... à la fête de l'école. + - Reponses : dansera, danserez, danseront + - Reponse attendue : danseront + - Indice : Plusieurs élèves : pense à « ils ». + - Explication : Avec « ils », le futur finit par -ont : les élèves danseront. + - Statut : draft +- **ce2_futur_qcm_07** (difficulte 3) : L'an prochain, mes sœurs ... une nouvelle langue. + - Reponses : étudierez, étudieront, étudiera + - Reponse attendue : étudieront + - Indice : Plusieurs sœurs : pense à « elles ». + - Explication : Avec « elles », le futur finit par -ont : mes sœurs étudieront. + - Statut : draft +- **ce2_futur_qcm_08** (difficulte 3) : Plus tard, toi et moi, nous ... un grand voyage. + - Reponses : organiseront, organiserez, organiserons + - Reponse attendue : organiserons + - Indice : « Toi et moi » peut se remplacer par « nous ». + - Explication : « Toi et moi » = « nous » : le futur finit par -ons. + - Statut : draft + +### Corrections de phrase + +- **ce2_futur_correction_01** (difficulte 1) : Demain, nous [jouera -> jouerons] dehors. + - Indice : Avec « nous », le futur finit par -ons. + - Explication : Avec « nous », le futur finit par -ons : nous jouerons. + - Statut : draft +- **ce2_futur_correction_02** (difficulte 2) : Samedi, les enfants [regardera -> regarderont] un spectacle. + - Indice : Plusieurs enfants : pense à « ils ». + - Explication : Avec « ils », le futur finit par -ont : les enfants regarderont. + - Statut : draft +- **ce2_futur_correction_03** (difficulte 2) : Cet été, tu [voyagerai -> voyageras] en train. + - Indice : Avec « tu », le futur finit par -as. + - Explication : Avec « tu », le futur finit par -as : tu voyageras. + - Statut : draft +- **ce2_futur_correction_04** (difficulte 3) : Dans une heure, vous [mangeront -> mangerez] avec nous. + - Indice : Avec « vous », le futur finit par -ez. + - Explication : Avec « vous », le futur finit par -ez : vous mangerez. + - Statut : draft + +### Dictees + +- **ce2_futur_dictee_01** : Demain, nous visiterons le musée du désert. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce2_futur_dictee_02** : Ce soir, tu raconteras une histoire à ta petite sœur. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce2_futur_dictee_03** : Les voyageurs camperont près de l'oasis. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + +## regle_g_ge_gu (CE2, orthographe) + +**Enonce** : Devant a, o et u, on écrit « ge » pour garder le son doux [ʒ] (nous mangeons). Devant e et i, on écrit « gu » pour le son dur [g] (une guitare). + +**Exemple** : Nous mangeons. Une guitare. Un garage. + +**Statut** : draft + +### Choix multiples + +- **ce2_g_ge_gu_qcm_01** (difficulte 1) : Julie joue de la ... . + - Reponses : guitare, gitare + - Reponse attendue : guitare + - Indice : Devant « i », pour le son dur [g], il faut « gu ». + - Explication : Devant « i », on écrit « gu » pour le son dur : « guitare ». + - Statut : draft +- **ce2_g_ge_gu_qcm_02** (difficulte 1) : Nous ... des fruits. + - Reponses : mangons, mangeons + - Reponse attendue : mangeons + - Indice : Devant « o », pour le son doux, il faut « ge ». + - Explication : Devant « o », on écrit « ge » pour garder le son doux : « mangeons ». + - Statut : draft +- **ce2_g_ge_gu_qcm_03** (difficulte 2) : Il fait un beau ... dans la mer. + - Reponses : plongon, plongeon + - Reponse attendue : plongeon + - Indice : Devant « o », pour le son doux, il faut « ge ». + - Explication : Devant « o », on écrit « ge » pour le son doux : « plongeon ». + - Statut : draft +- **ce2_g_ge_gu_qcm_04** (difficulte 2) : Le soldat part à la ... . + - Reponses : gerre, guerre + - Reponse attendue : guerre + - Indice : Devant « e », pour le son dur [g], il faut « gu ». + - Explication : Devant « e », on écrit « gu » pour le son dur : « guerre ». + - Statut : draft +- **ce2_g_ge_gu_qcm_05** (difficulte 2) : Nous ... dans la piscine. + - Reponses : nagons, nageons + - Reponse attendue : nageons + - Indice : Devant « o », pour le son doux, il faut « ge ». + - Explication : Devant « o », on écrit « ge » pour le son doux : « nageons ». + - Statut : draft +- **ce2_g_ge_gu_qcm_06** (difficulte 2) : Papa range la voiture dans le ... . + - Reponses : garage, gearage + - Reponse attendue : garage + - Indice : Le son dur [g] devant « a » s'écrit simplement « g ». + - Explication : Devant « a », le son dur s'écrit « g » : « garage ». + - Statut : draft +- **ce2_g_ge_gu_qcm_07** (difficulte 3) : Nous ... la vaisselle ensemble. + - Reponses : rangeons, rangons + - Reponse attendue : rangeons + - Indice : Devant « o », pour le son doux, il faut « ge ». + - Explication : Devant « o », on écrit « ge » pour le son doux : « rangeons ». + - Statut : draft +- **ce2_g_ge_gu_qcm_08** (difficulte 3) : Nous ... le pain en tranches. + - Reponses : partagons, partageons + - Reponse attendue : partageons + - Indice : Devant « o », pour le son doux, il faut « ge ». + - Explication : Devant « o », on écrit « ge » pour le son doux : « partageons ». + - Statut : draft + +### Corrections de phrase + +- **ce2_g_ge_gu_correction_01** (difficulte 1) : Nous [mangons -> mangeons] une pomme. + - Indice : Devant « o », pour le son doux, il faut « ge ». + - Explication : Devant « o », on écrit « ge » pour le son doux : « mangeons ». + - Statut : draft +- **ce2_g_ge_gu_correction_02** (difficulte 2) : Mon oncle joue de la [gitare -> guitare] le soir. + - Indice : Devant « i », pour le son dur [g], il faut « gu ». + - Explication : Devant « i », on écrit « gu » pour le son dur : « guitare ». + - Statut : draft +- **ce2_g_ge_gu_correction_03** (difficulte 2) : Le soldat est parti à la [gerre. -> guerre.] + - Indice : Devant « e », pour le son dur [g], il faut « gu ». + - Explication : Devant « e », on écrit « gu » pour le son dur : « guerre ». + - Statut : draft +- **ce2_g_ge_gu_correction_04** (difficulte 3) : Nous [partagons -> partageons] le gâteau en six parts. + - Indice : Devant « o », pour le son doux, il faut « ge ». + - Explication : Devant « o », on écrit « ge » pour le son doux : « partageons ». + - Statut : draft + +### Dictees + +- **ce2_g_ge_gu_dictee_01** : Nous mangeons des pommes sur la plage. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce2_g_ge_gu_dictee_02** : Mon frère joue de la guitare dans sa chambre. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce2_g_ge_gu_dictee_03** : Nous plongeons dans l'eau claire de l'île. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + ## regle_homophone_a_a (CE2, orthographe) **Enonce** : Pour choisir entre « a » et « à », essaie de remplacer par « avait ». Si ça marche, c'est le verbe avoir : on écrit « a » sans accent. Sinon, on écrit « à » avec un accent. @@ -560,6 +1118,192 @@ Genere automatiquement depuis `data/` par `tools/generate_content_review.py`. Ne - Audio : provisoire - Statut : draft +## regle_lettre_muette_finale (CE2, orthographe) + +**Enonce** : Pour trouver la lettre muette à la fin d'un mot, cherche son féminin ou un mot de la même famille : grand (grande), petit (petite), chant (chanter). + +**Exemple** : Un grand arbre : une grande maison. Un chant : chanter. + +**Statut** : draft + +### Choix multiples + +- **ce2_muette_qcm_01** (difficulte 1) : Un ... chat dort au soleil. + - Reponses : peti, petit + - Reponse attendue : petit + - Indice : Pense au féminin : une petite chatte. + - Explication : Au féminin, on entend « petite » : on écrit « petit » avec un -t final. + - Statut : draft +- **ce2_muette_qcm_02** (difficulte 1) : Mon frère est très ... . + - Reponses : gran, grand + - Reponse attendue : grand + - Indice : Pense au féminin : une grande sœur. + - Explication : Au féminin, on entend « grande » : on écrit « grand » avec un -d final. + - Statut : draft +- **ce2_muette_qcm_03** (difficulte 1) : Le ... du chat est doux. + - Reponses : poil, poi + - Reponse attendue : poil + - Indice : Pense à « poilu », un mot de la même famille. + - Explication : Le mot de la même famille « poilu » fait entendre le « l » : on écrit « poil ». + - Statut : draft +- **ce2_muette_qcm_04** (difficulte 2) : Il fait ... dehors. + - Reponses : froid, froi + - Reponse attendue : froid + - Indice : Pense au féminin : une soupe froide. + - Explication : Au féminin, on entend « froide » : on écrit « froid » avec un -d final. + - Statut : draft +- **ce2_muette_qcm_05** (difficulte 2) : Le ... de la chanson est joli. + - Reponses : chant, chan + - Reponse attendue : chant + - Indice : Pense au verbe de la même famille : chanter. + - Explication : Le verbe « chanter » fait entendre le « t » : on écrit « chant ». + - Statut : draft +- **ce2_muette_qcm_06** (difficulte 2) : Le mouton a un manteau ... . + - Reponses : blanc, blan + - Reponse attendue : blanc + - Indice : Pense au féminin : une laine blanche. + - Explication : Au féminin, on entend « blanche » : on écrit « blanc » avec un -c final. + - Statut : draft +- **ce2_muette_qcm_07** (difficulte 3) : Le vent est très ... ce soir. + - Reponses : for, fort + - Reponse attendue : fort + - Indice : Pense au féminin : une tempête forte. + - Explication : Au féminin, on entend « forte » : on écrit « fort » avec un -t final. + - Statut : draft +- **ce2_muette_qcm_08** (difficulte 3) : Cet enfant est toujours ... . + - Reponses : genti, gentil + - Reponse attendue : gentil + - Indice : Pense au féminin : une fille gentille. + - Explication : Au féminin, on entend « gentille » : on écrit « gentil » avec un -l final. + - Statut : draft + +### Corrections de phrase + +- **ce2_muette_correction_01** (difficulte 1) : Le chat [gri -> gris] dort sur le tapis. + - Indice : Pense au féminin : une souris grise. + - Explication : Au féminin, on entend « grise » : on écrit « gris » avec un -s final. + - Statut : draft +- **ce2_muette_correction_02** (difficulte 2) : Ce petit garçon est bien [gran. -> grand.] + - Indice : Pense au féminin : une grande fille. + - Explication : Au féminin, on entend « grande » : on écrit « grand » avec un -d final. + - Statut : draft +- **ce2_muette_correction_03** (difficulte 2) : J'écoute un [chan -> chant] de la radio. + - Indice : Pense au verbe de la même famille : chanter. + - Explication : Le verbe « chanter » fait entendre le « t » : on écrit « chant ». + - Statut : draft +- **ce2_muette_correction_04** (difficulte 3) : Elle porte un manteau [ver. -> vert.] + - Indice : Pense au féminin : une veste verte. + - Explication : Au féminin, on entend « verte » : on écrit « vert » avec un -t final. + - Statut : draft + +### Dictees + +- **ce2_muette_dictee_01** : Le petit chat blanc dort sur le canapé. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce2_muette_dictee_02** : Il fait froid et le vent est très fort. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce2_muette_dictee_03** : Ce long chant triste fait pleurer mon grand-père. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + +## regle_m_devant_mbp (CE1, orthographe) + +**Enonce** : Devant les lettres m, b et p, on écrit « m » et non « n ». + +**Exemple** : Une lampe. Une jambe. Un timbre. + +**Statut** : draft + +### Choix multiples + +- **ce1_m_mbp_qcm_01** (difficulte 1) : Papa allume la ... près du lit. + - Reponses : lanpe, lampe + - Reponse attendue : lampe + - Indice : Après la voyelle, on entend [p] : quelle lettre faut-il avant ? + - Explication : Devant « p », on écrit « m » : « lampe ». + - Statut : draft +- **ce1_m_mbp_qcm_02** (difficulte 1) : Le garçon a mal à la ... . + - Reponses : jambe, janbe + - Reponse attendue : jambe + - Indice : Regarde la lettre qui suit : un « b ». + - Explication : Devant « b », on écrit « m » : « jambe ». + - Statut : draft +- **ce1_m_mbp_qcm_03** (difficulte 1) : Je colle un ... sur l'enveloppe. + - Reponses : timbre, tinbre + - Reponse attendue : timbre + - Indice : Regarde la lettre qui suit : un « b ». + - Explication : Devant « b », on écrit « m » : « timbre ». + - Statut : draft +- **ce1_m_mbp_qcm_04** (difficulte 2) : Le ... éteint l'incendie. + - Reponses : ponpier, pompier + - Reponse attendue : pompier + - Indice : Devant « p », quelle lettre faut-il écrire ? + - Explication : Devant « p », on écrit « m » : « pompier ». + - Statut : draft +- **ce1_m_mbp_qcm_05** (difficulte 2) : Il joue du ... dans la fanfare. + - Reponses : tanbour, tambour + - Reponse attendue : tambour + - Indice : Devant « b », quelle lettre faut-il écrire ? + - Explication : Devant « b », on écrit « m » : « tambour ». + - Statut : draft +- **ce1_m_mbp_qcm_06** (difficulte 2) : Nous dormons sous une ... dans le camping. + - Reponses : temte, tente + - Reponse attendue : tente + - Indice : Attention : la lettre qui suit n'est ni « m », ni « b », ni « p ». + - Explication : Devant « t », on écrit « n » : « tente ». La règle du « m » ne vaut que devant m, b, p. + - Statut : draft +- **ce1_m_mbp_qcm_07** (difficulte 3) : Ma ... est au premier étage. + - Reponses : chambre, chanbre + - Reponse attendue : chambre + - Indice : Regarde la lettre qui suit : un « b ». + - Explication : Devant « b », on écrit « m » : « chambre ». + - Statut : draft +- **ce1_m_mbp_qcm_08** (difficulte 3) : Les vaches mangent dans le ... . + - Reponses : champ, chanp + - Reponse attendue : champ + - Indice : Devant « p », quelle lettre faut-il écrire ? + - Explication : Devant « p », on écrit « m » : « champ ». + - Statut : draft + +### Corrections de phrase + +- **ce1_m_mbp_correction_01** (difficulte 1) : Maman coupe du [janbon -> jambon] pour le pique-nique. + - Indice : Regarde la lettre qui suit : un « b ». + - Explication : Devant « b », on écrit « m » : « jambon ». + - Statut : draft +- **ce1_m_mbp_correction_02** (difficulte 2) : Le clown souffle dans sa [tronpette. -> trompette.] + - Indice : Devant « p », quelle lettre faut-il écrire ? + - Explication : Devant « p », on écrit « m » : « trompette ». + - Statut : draft +- **ce1_m_mbp_correction_03** (difficulte 2) : Il faut changer [l'anpoule -> l'ampoule] de la cuisine. + - Indice : Devant « p », quelle lettre faut-il écrire ? + - Explication : Devant « p », on écrit « m » : « ampoule ». + - Statut : draft +- **ce1_m_mbp_correction_04** (difficulte 3) : Lola va [enmener -> emmener] son chien chez le vétérinaire. + - Indice : Devant un « m », on écrit aussi « m ». + - Explication : Devant « m », on écrit « m » : « emmener » (deux m). + - Statut : draft + +### Dictees + +- **ce1_m_mbp_dictee_01** : Le pompier monte sur la grande échelle. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce1_m_mbp_dictee_02** : Il y a un timbre rouge sur la lettre. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce1_m_mbp_dictee_03** : Le campeur plante sa tente près de la rivière. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + ## regle_pluriel_nom (CE1, grammaire) **Enonce** : Le plus souvent, on forme le pluriel d'un nom en ajoutant un -s à la fin du mot. @@ -653,3 +1397,375 @@ Genere automatiquement depuis `data/` par `tools/generate_content_review.py`. Ne - Audio : provisoire - Statut : draft +## regle_s_ss (CE1, orthographe) + +**Enonce** : Entre deux voyelles, la lettre « s » seule se prononce [z]. Pour entendre le son [s], on écrit « ss ». + +**Exemple** : Une rose. Un poisson. Une tasse. + +**Statut** : draft + +### Choix multiples + +- **ce1_s_ss_qcm_01** (difficulte 1) : Le chat boit dans une ... . + - Reponses : tase, tasse + - Reponse attendue : tasse + - Indice : Pour entendre [s] entre deux voyelles, il faut deux s. + - Explication : Entre deux voyelles, on écrit « ss » pour le son [s] : « tasse ». + - Statut : draft +- **ce1_s_ss_qcm_02** (difficulte 1) : Il y a une ... près de la table. + - Reponses : chaisse, chaise + - Reponse attendue : chaise + - Indice : Ici, on entend le son [z], comme dans « rose ». + - Explication : On entend [z] entre deux voyelles : un seul « s » suffit, on écrit « chaise ». + - Statut : draft +- **ce1_s_ss_qcm_03** (difficulte 1) : Ma ... est près de l'école. + - Reponses : maisson, maison + - Reponse attendue : maison + - Indice : Écoute : tu entends [z], pas [s]. + - Explication : On entend [z] entre deux voyelles : un seul « s », on écrit « maison ». + - Statut : draft +- **ce1_s_ss_qcm_04** (difficulte 2) : Un ... nage dans l'aquarium. + - Reponses : poison, poisson + - Reponse attendue : poisson + - Indice : Pense à l'animal qui vit dans l'eau, et au son [s]. + - Explication : Pour le son [s] entre deux voyelles, on écrit « ss » : « poisson ». + - Statut : draft +- **ce1_s_ss_qcm_05** (difficulte 2) : Un petit ... chante sur la branche. + - Reponses : oiseau, oisseau + - Reponse attendue : oiseau + - Indice : Écoute bien : on entend [z] dans ce mot. + - Explication : On entend [z] entre deux voyelles : un seul « s », on écrit « oiseau ». + - Statut : draft +- **ce1_s_ss_qcm_06** (difficulte 2) : Léa fait un beau ... de son chat. + - Reponses : dessin, desin + - Reponse attendue : dessin + - Indice : Le son [s] entre deux voyelles s'écrit avec deux s. + - Explication : Pour entendre [s] entre « e » et « i », on écrit « ss » : « dessin ». + - Statut : draft +- **ce1_s_ss_qcm_07** (difficulte 3) : La maîtresse entre dans la ... . + - Reponses : clase, classe + - Reponse attendue : classe + - Indice : Entre « a » et « e », quel son entends-tu ? + - Explication : Pour le son [s] entre deux voyelles, on écrit « ss » : « classe ». + - Statut : draft +- **ce1_s_ss_qcm_08** (difficulte 3) : Le petit garçon ... sur la glace. + - Reponses : glisse, glise + - Reponse attendue : glisse + - Indice : Le son [s] se trouve entre le « i » et le « e ». + - Explication : Pour entendre [s] entre deux voyelles, on écrit « ss » : « glisse ». + - Statut : draft + +### Corrections de phrase + +- **ce1_s_ss_correction_01** (difficulte 1) : La fillette sent une belle [roze. -> rose.] + - Indice : Écoute : tu entends [z], comme dans « maison ». + - Explication : On entend [z] entre deux voyelles : un seul « s », on écrit « rose ». + - Statut : draft +- **ce1_s_ss_correction_02** (difficulte 2) : Tom [pouse -> pousse] la porte de la cabane. + - Indice : Tu entends le son [s] entre deux voyelles. + - Explication : Pour entendre [s] entre deux voyelles, on écrit « ss » : « pousse ». + - Statut : draft +- **ce1_s_ss_correction_03** (difficulte 2) : Sara se [brose -> brosse] les dents le soir. + - Indice : Tu entends le son [s] entre deux voyelles. + - Explication : Pour entendre [s] entre deux voyelles, on écrit « ss » : « brosse ». + - Statut : draft +- **ce1_s_ss_correction_04** (difficulte 3) : Les enfants sont [asis -> assis] autour de la table. + - Indice : Écoute le son [s] entre le « a » et le « i ». + - Explication : Pour entendre [s] entre deux voyelles, on écrit « ss » : « assis ». + - Statut : draft + +### Dictees + +- **ce1_s_ss_dictee_01** : Le poisson rouge nage dans le bocal. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce1_s_ss_dictee_02** : La grosse tasse est pleine de chocolat chaud. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce1_s_ss_dictee_03** : Mamie a mis ses chaussons dans la chambre. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + +## regle_verbe_avoir_present (CE1, grammaire) + +**Enonce** : Le verbe « avoir » change avec le sujet : j'ai, tu as, il a, nous avons, vous avez, ils ont. + +**Exemple** : J'ai un chat. Tu as faim. Ils ont chaud. + +**Statut** : draft + +### Choix multiples + +- **ce1_avoir_qcm_01** (difficulte 1) : J'... une grande trousse. + - Reponses : a, as, ai + - Reponse attendue : ai + - Indice : Avec « je », le verbe « avoir » s'écrit « ai ». + - Explication : Avec « je », on écrit « ai » : j'ai. + - Statut : draft +- **ce1_avoir_qcm_02** (difficulte 1) : Tu ... mal à la tête. + - Reponses : as, a, ai + - Reponse attendue : as + - Indice : Avec « tu », le verbe finit par -s. + - Explication : Avec « tu », on écrit « as » : tu as. + - Statut : draft +- **ce1_avoir_qcm_03** (difficulte 1) : Maman ... un beau livre. + - Reponses : as, a, ont + - Reponse attendue : a + - Indice : Une seule personne : pense à « elle ». + - Explication : Avec un sujet singulier comme « maman » (= elle), on écrit « a ». + - Statut : draft +- **ce1_avoir_qcm_04** (difficulte 2) : Nous ... une grande maison. + - Reponses : avez, avons, ont + - Reponse attendue : avons + - Indice : Avec « nous », le verbe finit par -ons. + - Explication : Avec « nous », on écrit « avons » : nous avons. + - Statut : draft +- **ce1_avoir_qcm_05** (difficulte 2) : Vous ... de la chance. + - Reponses : ont, avez, avons + - Reponse attendue : avez + - Indice : Avec « vous », le verbe finit par -ez. + - Explication : Avec « vous », on écrit « avez » : vous avez. + - Statut : draft +- **ce1_avoir_qcm_06** (difficulte 2) : Les filles ... de beaux ballons. + - Reponses : a, avez, ont + - Reponse attendue : ont + - Indice : Plusieurs filles : pense à « elles ». + - Explication : Avec un sujet pluriel comme « les filles » (= elles), on écrit « ont ». + - Statut : draft +- **ce1_avoir_qcm_07** (difficulte 3) : Toi et moi, nous ... le même âge. + - Reponses : avez, ont, avons + - Reponse attendue : avons + - Indice : « Toi et moi » peut se remplacer par « nous ». + - Explication : « Toi et moi » = « nous » : on écrit « avons ». + - Statut : draft +- **ce1_avoir_qcm_08** (difficulte 3) : Mes parents ... une voiture rouge. + - Reponses : as, ont, a + - Reponse attendue : ont + - Indice : Plusieurs personnes : pense à « ils ». + - Explication : « Mes parents » = « ils » : on écrit « ont ». + - Statut : draft + +### Corrections de phrase + +- **ce1_avoir_correction_01** (difficulte 1) : Tu [a -> as] une belle bicyclette. + - Indice : Avec « tu », le verbe finit par -s. + - Explication : Avec « tu », on écrit « as » : tu as. + - Statut : draft +- **ce1_avoir_correction_02** (difficulte 2) : Nous [avez -> avons] un chien noir. + - Indice : Avec « nous », le verbe finit par -ons. + - Explication : Avec « nous », on écrit « avons » : nous avons. + - Statut : draft +- **ce1_avoir_correction_03** (difficulte 2) : Vous [avons -> avez] du temps libre. + - Indice : Avec « vous », le verbe finit par -ez. + - Explication : Avec « vous », on écrit « avez » : vous avez. + - Statut : draft +- **ce1_avoir_correction_04** (difficulte 3) : Les voisins [a -> ont] un grand jardin. + - Indice : Plusieurs voisins : pense à « ils ». + - Explication : Avec un sujet pluriel comme « les voisins » (= ils), on écrit « ont ». + - Statut : draft + +### Dictees + +- **ce1_avoir_dictee_01** : J'ai un ballon bleu et rouge. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce1_avoir_dictee_02** : Vous avez de beaux crayons de couleur. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce1_avoir_dictee_03** : Mes cousins ont un petit bateau. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + +## regle_verbe_er_present (CE1, grammaire) + +**Enonce** : Au présent, les verbes en -er se terminent par -e, -es, -e, -ons, -ez, -ent selon le sujet. + +**Exemple** : Je chante. Tu chantes. Nous chantons. Ils chantent. + +**Statut** : draft + +### Choix multiples + +- **ce1_er_present_qcm_01** (difficulte 1) : Je ... dans la chorale. + - Reponses : chantent, chantes, chante + - Reponse attendue : chante + - Indice : Avec « je », le verbe en -er finit par -e. + - Explication : Avec « je », le verbe en -er finit par -e : je chante. + - Statut : draft +- **ce1_er_present_qcm_02** (difficulte 1) : Tu ... avec ton ami. + - Reponses : joue, joues, jouent + - Reponse attendue : joues + - Indice : Avec « tu », le verbe finit par -s. + - Explication : Avec « tu », le verbe finit par -es : tu joues. + - Statut : draft +- **ce1_er_present_qcm_03** (difficulte 1) : Le garçon ... une pomme. + - Reponses : mangent, manges, mange + - Reponse attendue : mange + - Indice : Un seul garçon : pense à « il ». + - Explication : Avec un sujet singulier, le verbe finit par -e : le garçon mange. + - Statut : draft +- **ce1_er_present_qcm_04** (difficulte 2) : Nous ... au marché. + - Reponses : marchent, marchons, marchez + - Reponse attendue : marchons + - Indice : Avec « nous », le verbe finit par -ons. + - Explication : Avec « nous », le verbe finit par -ons : nous marchons. + - Statut : draft +- **ce1_er_present_qcm_05** (difficulte 2) : Vous ... trop vite. + - Reponses : parlent, parlons, parlez + - Reponse attendue : parlez + - Indice : Avec « vous », le verbe finit par -ez. + - Explication : Avec « vous », le verbe finit par -ez : vous parlez. + - Statut : draft +- **ce1_er_present_qcm_06** (difficulte 2) : Les élèves ... leur leçon. + - Reponses : récite, récites, récitent + - Reponse attendue : récitent + - Indice : Plusieurs élèves : pense à « ils ». + - Explication : Avec un sujet pluriel, le verbe finit par -ent : les élèves récitent. + - Statut : draft +- **ce1_er_present_qcm_07** (difficulte 3) : Mon voisin et sa femme ... le soir. + - Reponses : danse, dansent, dansons + - Reponse attendue : dansent + - Indice : Deux personnes : pense à « ils ». + - Explication : Deux personnes, c'est « ils » : le verbe finit par -ent. + - Statut : draft +- **ce1_er_present_qcm_08** (difficulte 3) : Toi et ton frère, vous ... la table. + - Reponses : rangent, rangez, rangeons + - Reponse attendue : rangez + - Indice : « Toi et ton frère » peut se remplacer par « vous ». + - Explication : « Toi et ton frère » = « vous » : le verbe finit par -ez. + - Statut : draft + +### Corrections de phrase + +- **ce1_er_present_correction_01** (difficulte 1) : Tu [chante -> chantes] très bien. + - Indice : Avec « tu », le verbe finit par -s. + - Explication : Avec « tu », le verbe finit par -es : tu chantes. + - Statut : draft +- **ce1_er_present_correction_02** (difficulte 2) : Les écoliers [joue -> jouent] au ballon. + - Indice : Plusieurs écoliers : pense à « ils ». + - Explication : Avec un sujet pluriel, le verbe finit par -ent : les écoliers jouent. + - Statut : draft +- **ce1_er_present_correction_03** (difficulte 2) : Nous [cuisinez -> cuisinons] un gâteau au chocolat. + - Indice : Avec « nous », le verbe finit par -ons. + - Explication : Avec « nous », le verbe finit par -ons : nous cuisinons. + - Statut : draft +- **ce1_er_present_correction_04** (difficulte 3) : Vous [aimons -> aimez] beaucoup les histoires. + - Indice : Avec « vous », le verbe finit par -ez. + - Explication : Avec « vous », le verbe finit par -ez : vous aimez. + - Statut : draft + +### Dictees + +- **ce1_er_present_dictee_01** : Tu chantes une jolie chanson. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce1_er_present_dictee_02** : Nous préparons un gâteau pour la fête. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce1_er_present_dictee_03** : Les enfants dessinent avec des feutres de couleur. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + +## regle_verbe_etre_present (CE1, grammaire) + +**Enonce** : Le verbe « être » change avec le sujet : je suis, tu es, il est, nous sommes, vous êtes, ils sont. + +**Exemple** : Je suis content. Tu es grand. Ils sont là. + +**Statut** : draft + +### Choix multiples + +- **ce1_etre_qcm_01** (difficulte 1) : Je ... très content. + - Reponses : est, es, suis + - Reponse attendue : suis + - Indice : Avec « je », le verbe « être » s'écrit d'une manière particulière. + - Explication : Avec « je », on écrit « suis » : je suis. + - Statut : draft +- **ce1_etre_qcm_02** (difficulte 1) : Tu ... dans la cour. + - Reponses : suis, es, est + - Reponse attendue : es + - Indice : Avec « tu », le verbe finit par -s. + - Explication : Avec « tu », on écrit « es » : tu es. + - Statut : draft +- **ce1_etre_qcm_03** (difficulte 1) : Le chien ... fatigué. + - Reponses : sont, es, est + - Reponse attendue : est + - Indice : Un seul chien : pense à « il ». + - Explication : Avec un sujet singulier comme « le chien » (= il), on écrit « est ». + - Statut : draft +- **ce1_etre_qcm_04** (difficulte 2) : Nous ... en classe ce matin. + - Reponses : sont, êtes, sommes + - Reponse attendue : sommes + - Indice : Avec « nous », le verbe finit par -mes. + - Explication : Avec « nous », on écrit « sommes » : nous sommes. + - Statut : draft +- **ce1_etre_qcm_05** (difficulte 2) : Vous ... très gentils avec moi. + - Reponses : sont, sommes, êtes + - Reponse attendue : êtes + - Indice : Avec « vous », le verbe prend un accent circonflexe. + - Explication : Avec « vous », on écrit « êtes » : vous êtes. + - Statut : draft +- **ce1_etre_qcm_06** (difficulte 2) : Les canards ... sur le lac. + - Reponses : est, sont, êtes + - Reponse attendue : sont + - Indice : Plusieurs canards : pense à « ils ». + - Explication : Avec un sujet pluriel comme « les canards » (= ils), on écrit « sont ». + - Statut : draft +- **ce1_etre_qcm_07** (difficulte 2) : Léa et Tom ... dans le jardin. + - Reponses : es, est, sont + - Reponse attendue : sont + - Indice : Deux personnes : pense à « ils ». + - Explication : Léa et Tom, c'est « ils » : on écrit « sont ». + - Statut : draft +- **ce1_etre_qcm_08** (difficulte 3) : Mes amis et moi, nous ... au parc. + - Reponses : sommes, sont, êtes + - Reponse attendue : sommes + - Indice : « Mes amis et moi » peut se remplacer par « nous ». + - Explication : « Mes amis et moi » = « nous » : on écrit « sommes ». + - Statut : draft + +### Corrections de phrase + +- **ce1_etre_correction_01** (difficulte 1) : Tu [est -> es] très gentil. + - Indice : Avec « tu », le verbe finit par -s. + - Explication : Avec « tu », on écrit « es » : tu es. + - Statut : draft +- **ce1_etre_correction_02** (difficulte 2) : Ce soir, nous [sont -> sommes] à la maison. + - Indice : Avec « nous », le verbe finit par -mes. + - Explication : Avec « nous », on écrit « sommes » : nous sommes. + - Statut : draft +- **ce1_etre_correction_03** (difficulte 2) : Les enfants, vous [sommes -> êtes] en retard. + - Indice : Avec « vous », le verbe prend un accent circonflexe. + - Explication : Avec « vous », on écrit « êtes » : vous êtes. + - Statut : draft +- **ce1_etre_correction_04** (difficulte 3) : Mon frère et ma sœur [est -> sont] à l'école. + - Indice : Mon frère et ma sœur : pense à « ils ». + - Explication : Deux personnes, c'est « ils » : on écrit « sont ». + - Statut : draft + +### Dictees + +- **ce1_etre_dictee_01** : Je suis dans le jardin. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce1_etre_dictee_02** : Nous sommes tous en rang devant la porte. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **ce1_etre_dictee_03** : Tu es plus grand que ton cousin. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + diff --git a/docs/specs/decisions.md b/docs/specs/decisions.md index 4e9d3d5..44635ab 100644 --- a/docs/specs/decisions.md +++ b/docs/specs/decisions.md @@ -372,3 +372,19 @@ Demande utilisateur : chaque niveau peut avoir jusqu'à 3 tableaux (lieux : for **Tableau pilote CE1 « La plage des sons »** (`order` 2, décor plage) : 3 règles (s/ss entre deux voyelles, c/ç devant a-o-u, m devant m-b-p), 24 QCM, 12 corrections, 9 dictées (voix Piper provisoire, audio généré), 9 missions, compétence « sons et lettres ». Contenu entièrement `draft`. Unicité : tous les énoncés passent les gardes-fous de phrases en double et quasi doubles (points 34 et 36). **Reste à faire** : CE1 tableau 3 (« La montagne des verbes »), CE2 tableaux 2 et 3, CM1 et CM2 (3 tableaux chacun), d'autres décors et musiques par tableau. **Non vérifié** : lisibilité des nouvelles voix de dictée, pertinence pédagogique des règles et du niveau de difficulté (à relire), autres résolutions. + +## 39. Tableaux CE1 n°3, CE2 n°2 et n°3 (version 0.7.0) + +Suite du point 38, sur le même principe que le tableau pilote. Génération par script jetable, validée par les tests et les gardes-fous ; contenu entièrement `draft`. + +- **CE1 n°3 « La montagne des verbes »** (décor montagne, compétence « verbes au présent ») : être au présent, avoir au présent, verbes en -er au présent. +- **CE2 n°2 « Le désert des verbes »** (décor désert, compétence « verbes : accords et formes ») : accord sujet-verbe (sujet éloigné ou double), é/er (test « vendre/vendu »), futur simple des verbes en -er. +- **CE2 n°3 « L'île des lettres »** (décor île, compétence « lettres et mots ») : féminin des noms et adjectifs, g/ge/gu, lettre muette finale (féminin, mot de la même famille). + +Volume : 3 tableaux × 3 règles × (8 QCM + 4 corrections + 3 dictées) = 72 QCM, 36 corrections, 27 dictées (voix Piper provisoire, audio généré) et 27 missions (n° 31 à 57). CE1 compte maintenant 3 tableaux (27 missions), CE2 3 tableaux (30 missions). Nouveaux décors vectoriels : montagne, désert, île ; musique automatique associée (montagne → « prairie », désert → « nuit », île → « rivière »). + +**Correctif de contenu** : dans le tableau pilote, la bonne réponse des QCM était toujours en première position (devinable sans lire). Les réponses sont désormais mélangées de façon déterministe ; garde-fou `test_curriculum` : aucune règle ne peut avoir sa bonne réponse toujours au même rang. + +**Unicité** : les gardes-fous de doublons et de quasi-doublons ont attrapé 6 collisions pendant la rédaction, toutes corrigées avant livraison (phrases reformulées). + +**Reste** : CM1 puis CM2 (3 tableaux chacun), à lancer après relecture de ces tableaux. **Non vérifié** : voix des 27 nouvelles dictées, niveau de difficulté et justesse pédagogique (indices, formulations), notamment le test « vendre/vendu » et la règle du futur, à faire relire. diff --git a/docs/testing/manual-checklist.md b/docs/testing/manual-checklist.md index 02615cb..0d7cd46 100644 --- a/docs/testing/manual-checklist.md +++ b/docs/testing/manual-checklist.md @@ -26,6 +26,7 @@ Tout ce qui suit ne peut pas être vérifié sans écran (rendu, mise en page, a - Profil CE1 : la carte « La forêt des accords » propose « Aller : La plage des sons » ; le tableau de la plage s'affiche avec son décor (mer, sable), ses 9 lieux sans chevauchement, et le bouton ramène à la forêt. Après une mission, on revient au tableau d'où l'on vient. - Jouer une mission de chaque règle de la plage (s/ss, ç, m devant m-b-p), dont une dictée : voix claire, énoncés sans répétition, indices et explications justes. +- CE1 : trois tableaux (forêt, plage, montagne) ; CE2 : trois tableaux (marais, désert, île) ; chaque décor est distinct, le bouton « Aller : … » les parcourt en boucle. Jouer au moins une mission de chaque règle nouvelle (être/avoir/-er ; sujet-verbe, é/er, futur ; féminin, g/ge/gu, lettre muette) et vérifier : consigne claire, une seule bonne réponse, indice utile, aucune phrase déjà vue dans la même mission. - Création de profil : seuls CE1 et CE2 sont proposés (CM1/CM2 n'ont pas encore de contenu). ## Accessibilité et interface diff --git a/project.godot b/project.godot index 8487842..81965fd 100644 --- a/project.godot +++ b/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="Les Aventuriers des mots" -config/version="0.6.0" +config/version="0.7.0" run/main_scene="res://scenes/boot/boot.tscn" config/features=PackedStringArray("4.6", "Forward Plus") config/icon="res://icon.svg" diff --git a/scripts/ui/backdrop_kinds.gd b/scripts/ui/backdrop_kinds.gd index 0cb7f9f..d208898 100644 --- a/scripts/ui/backdrop_kinds.gd +++ b/scripts/ui/backdrop_kinds.gd @@ -9,6 +9,9 @@ const TEXTURES := { "forest": "res://assets/environments/forest_backdrop.svg", "marsh": "res://assets/environments/marsh_backdrop.svg", "beach": "res://assets/environments/beach_backdrop.svg", + "mountain": "res://assets/environments/mountain_backdrop.svg", + "desert": "res://assets/environments/desert_backdrop.svg", + "island": "res://assets/environments/island_backdrop.svg", } ## Morceau joue par defaut avec chaque decor (reglage « automatique »). @@ -16,6 +19,9 @@ const MUSIC := { "forest": "forest", "marsh": "marsh", "beach": "river", + "mountain": "meadow", + "desert": "night", + "island": "river", } const FALLBACK := "forest" diff --git a/tests/data/test_curriculum.gd b/tests/data/test_curriculum.gd index c73b1a4..c38053d 100644 --- a/tests/data/test_curriculum.gd +++ b/tests/data/test_curriculum.gd @@ -61,3 +61,21 @@ func test_school_levels_helpers() -> void: assert_eq(SchoolLevels.previous("CM1"), "CE2") assert_eq(SchoolLevels.previous("n_importe_quoi"), "") assert_true(SchoolLevels.rank("CM2") > SchoolLevels.rank("CE2")) + + +func test_correct_answer_position_is_not_always_the_same() -> void: + # Une regle dont la bonne reponse est toujours au meme rang se devine sans + # lire : les QCM d'une regle doivent varier la position de la bonne reponse. + var positions: Dictionary = {} + for rule_id: String in ExerciseEngine._rules: + for exercise: Dictionary in ExerciseEngine._candidates_for(rule_id, "multiple_choice"): + if not positions.has(rule_id): + positions[rule_id] = {} + positions[rule_id][int(exercise["correct_answer"])] = true + assert_gt(positions.size(), 5) + for rule_id: String in positions: + assert_gt( + (positions[rule_id] as Dictionary).size(), + 1, + "bonne reponse toujours au meme rang : %s" % rule_id + ) diff --git a/tests/exercises/test_exercise_engine.gd b/tests/exercises/test_exercise_engine.gd index b0062d8..cf945df 100644 --- a/tests/exercises/test_exercise_engine.gd +++ b/tests/exercises/test_exercise_engine.gd @@ -15,7 +15,7 @@ func test_unknown_rule_returns_empty_dictionary() -> void: func test_missions_are_loaded_and_sorted() -> void: var missions := ExerciseEngine.get_missions() - assert_eq(missions.size(), 30) + assert_eq(missions.size(), 57) var ids: Array = missions.map(func(m: Dictionary) -> String: return m["mission_id"]) assert_eq(ids, ids.duplicate()) # trivialement vrai, documente l'ordre stable assert_true(ids.has("mission_01_pre_des_mots")) @@ -24,14 +24,16 @@ func test_missions_are_loaded_and_sorted() -> void: func test_missions_are_filtered_by_the_level_of_their_rule() -> void: - assert_eq(ExerciseEngine.get_missions_for_level("CE1").size(), 18) - assert_eq(ExerciseEngine.get_missions_for_level("CE2").size(), 12) + assert_eq(ExerciseEngine.get_missions_for_level("CE1").size(), 27) + assert_eq(ExerciseEngine.get_missions_for_level("CE2").size(), 30) assert_eq(ExerciseEngine.get_missions_for_level("CM1").size(), 0) func test_regions_are_ordered_and_hold_their_missions() -> void: var ce1 := ExerciseEngine.get_regions_for_level("CE1") - assert_eq(ce1.size(), 2) + assert_eq(ce1.size(), 3) + assert_eq(ce1[2]["region_id"], "montagne_des_verbes") + assert_eq(ExerciseEngine.get_regions_for_level("CE2").size(), 3) assert_eq(ce1[0]["region_id"], "foret_des_accords") assert_eq(ce1[1]["region_id"], "plage_des_sons") assert_eq(ExerciseEngine.get_missions_for_region("foret_des_accords").size(), 9) diff --git a/tests/world/test_world_map.gd b/tests/world/test_world_map.gd index 019af38..9e62550 100644 --- a/tests/world/test_world_map.gd +++ b/tests/world/test_world_map.gd @@ -60,6 +60,10 @@ func test_ce1_profile_can_move_between_its_regions() -> void: assert_eq(map.get_node("%TitleLabel").text, "La plage des sons") assert_eq(map.get_node("%MapArea").get_child_count(), 9) + button.pressed.emit() + await wait_process_frames(1) + assert_eq(map.get_node("%TitleLabel").text, "La montagne des verbes") + button.pressed.emit() await wait_process_frames(1) assert_eq(map.get_node("%TitleLabel").text, "La forêt des accords")