Doc / Technique / Modification du cours
Modifier le cours : la carte complète.
Chaque objet du cours est écrit par un moyen parmi trois : l'apprenant l'édite directement, une génération IA l'écrit, ou un algorithme déterministe le calcule. Aucun objet n'en influence un autre sans passer par un mécanisme qui lit certains objets en contexte. Cette page est la référence exhaustive, vérifiée contre le code du moteur.
Objet × moyen.
Qui a le droit d'écrire chaque objet d'état. Plusieurs objets ont plusieurs écrivains (le plan : édité à la main, ou re-généré par trois mécanismes IA).
| Objet | Édition directe | Génération IA | Déterministe | Statut |
|---|---|---|---|---|
| Brief | updateSkillDescription | · | · | |
| Compétence | updateSkillCompetency / createSkill (ratifiée dans l'assistant) | restate_competency / preview_competency | · | |
| Objectif + dimensions | · | classify_objective | · | lecture seule |
| Notes apprenant | setSkillLearnerNotes | · | · | |
| Calendrier | updateSkillSchedule | · | nourrit le planner | |
| Paramètres | setSkill* | · | · | |
| Sources | addSource / deleteSource | · | · | |
| Résumé de placement | · | generate_placement | · | produit |
| Plan | updatePlan | generate_plan propose_plan_edit generate_graph | · | |
| Structure (sections + LP) | via le plan | · | compute_session_plan | |
| Type de concept | setSkillNodeClass | · | · | |
| Arêtes du graphe | add/removeSkillGraphEdge | generate_graph | sanitize_edges | |
| Contenu de section | saveCourseSectionEdit | generate_course_section revise / request_revision | · | |
| Glossaire | · | insert_terms | · | lecture seule |
| Projet | · | generate_project update_module_project | · | |
| Sessions | · | generate_session | compute_session_plan compose_*_lps | |
| Exercices + questions | applyExercisePatch | generate_session | grille PED-32, term-games | détail |
| Tentatives | regradeAttempt addAttemptExplanation | jury LLM | notation déterministe | |
| Maîtrise / FSRS | via regrade | · | mastery::update | |
| Cycle de vie / maintenance | · | · | maintenance_tick | non câblé |
Read-models (jamais écrits, recalculés à la demande) : états de frontière (disponible / verrouillé / maîtrisé / à réviser), bandes de maîtrise, prévision de rétention, cibles de rétention, rapport de faisabilité, sélection de maintenance, cadence.
Contexte exact par génération.
Ce que chaque mécanisme IA lit réellement. Il n'existe aucun assembleur de contexte partagé : chacun construit son propre prompt.
| Mécanisme | Ressources injectées | Écrit | Sources ? |
|---|---|---|---|
| generate_plan | brief (parsé) · compétence · objectif + dimensions (si performance) · résumé de placement · params | plan → planner | oui |
| generate_graph | brief (brut) · compétence · bilan de positionnement | plan → planner | non |
| generate_course_section | points d'apprentissage (Bloom) · sections précédentes · structure du plan · forward-refs · termes bankés · brief · compétence · registre | nouvelle version de section + termes du glossaire | oui |
| revise_course_section difficultés | état antérieur · points faibles + conceptions erronées cumulées · + contexte de génération | version (en place) | oui |
| request_course_section_revision requête | état antérieur · dernière requête seulement · + contexte de génération | version (en place) | oui |
| propose_plan_edit | plan actuel · compétence · résumé de performance · remarques cumulées (max 5 fils) · requête (opt.) | proposition (diff client) | non |
| generate_session | compétence · notes · registre · points cibles + état de rétention live · contenu d'enseignement · file de révision · grille d'exercices · le glossaire, groupé par notion | exercices, questions | non |
| generate_project | plan complet · brief | brief de projet | non |
| update_module_project | section du module · maîtrise par point | section du projet | non |
| generate_placement | brief (profondeur / objectif / prérequis) | résumé de placement | oui |
| restate_competency / preview_competency / classify_objective | titre · objectif du brief · profondeur | compétence, type d'objectif | non |
Tout ce qui entre et tout ce qui sort.
La table précédente se lit par mécanisme. Celle-ci se lit par objet : ce qui entre dans un cours et dans une séance d'exercices, et ce qui en sort. Vérifié contre le code du moteur. Le dernier bloc est la part qui est enregistrée et pas encore lue, et c'est la moitié honnête.
Ce qui entre dans un cours
| Quoi | D'où ça vient | Qui le lit |
|---|---|---|
| Le brief | vous, à la saisie : objectif, profondeur, acquis, temps par séance, niveau | plan, graphe de notions, positionnement, chaque leçon |
| Reformulation de la compétence | restate_competency | plan, graphe, leçon, édition du plan |
| Type d'objectif + dimensions | classify_objective | le plan, quand l'objectif est une performance |
| Résumé de positionnement | generate_placement | plan et graphe |
| Sources | vous | plan, leçon, positionnement. Ni le graphe, ni le projet |
| Vos remarques | vous, en fils de discussion | révision du plan uniquement, les cinq fils les plus récents |
| Idées fausses relevées | la correction de vos réponses | révision de leçon, et un emplacement d'exercice par séance |
| État de rétention | le moteur de rétention | composition de séance, révision de leçon, mise à jour du projet |
Ce qui sort d'un cours
| Quoi | Écrit par | Durée de vie |
|---|---|---|
| Le plan | generate_plan ou generate_graph, puis le planificateur déterministe | remplacé si vous replanifiez |
| Les notions | le planificateur | une par notion, chacune avec son niveau cognitif |
| Le graphe de notions | generate_graph | les liens de prérequis |
| Les versions de leçon | generate_course_section | versionnées, une révision réécrit sur place |
| Les termes du glossaire | la génération de leçon uniquement, une insertion sans écrasement par leçon | durable : on ne fait qu'ajouter, jamais supprimer |
| Le brief de projet | generate_project, puis les mises à jour par module | un par cours |
Ce qui entre dans une séance d'exercices
| Quoi | Détail |
|---|---|
| L'état de rétention en direct | par notion visée : maîtrise, répétitions, oublis, intervalle, prochaine révision |
| Les emplacements de la grille | notion, palier cognitif, types autorisés, barreau d'étayage, sonde de transfert |
| Le glossaire, groupé par notion | un emplacement que le glossaire peut couvrir est écrit localement et n'atteint jamais le modèle |
| Le contenu des leçons | les leçons que la séance vise |
| La file de révision | ce qui est dû, le plus en retard d'abord |
| Compétence, notes, registre | pour que les formulations collent au cours |
| Les idées fausses ouvertes | un emplacement en plus, dont le type est forcé à vrai ou faux |
Ce qui sort d'une séance d'exercices
| Quoi | Détail | Durée de vie |
|---|---|---|
| Exercices et questions | les items rédigés | éphémères : supprimés et réécrits à chaque séance |
| Une ligne de tentative par réponse | votre réponse, la note, le retour, votre estimation de confiance, l'idée fausse éventuellement nommée, et si l'item était nouveau pour vous | conservée |
| La mise à jour de rétention | maîtrise, répétitions, oublis, échecs depuis la dernière réussite, intervalle, dernière et prochaine révision, stabilité, difficulté, indicateur de première réussite, indicateur de transfert | conservée |
Enregistré, et lu par rien pour l'instant
- Le fait que vous ayez pris un indice. La carte propose les indices un barreau à la fois et, après un échec, une seconde tentative. Cette seconde tentative part marquée comme assistée, et le marqueur est perdu à la frontière de l'API : la ligne de tentative n'a pas de colonne pour lui. Une réponse trouvée avec un indice et une réponse trouvée seul sont enregistrées à l'identique.
- Le barreau d'étayage. La grille décide si un exercice arrive déjà résolu, partiellement estompé, ou sans aide. Le code de correction ne le relit pas, donc le modèle de rétention est facturé pareil dans les deux cas.
- Trois colonnes du glossaire lui-même. Les synonymes acceptés, le champ supplémentaire (nature du mot, glose, traduction) et le marqueur disant si un terme vient de l'IA ou de vous sont enregistrés et lus par aucun générateur.
- Les fils sur une leçon, un exercice ou une tentative. Enregistrés, mais seuls les fils portant sur le plan sont relus par une génération.
- La rétention par terme. Un terme du glossaire est programmé à travers sa notion, pas pour lui-même. Un terme que vous savez et un terme que vous ratez reviennent en même temps.
Les trois flux de données.
Pointillé vert = ressource lue en contexte · plein ember = un mécanisme écrit son objet · plein bleu = algorithme déterministe · épais ember (flux 2) = édition directe de l'apprenant.
Brief → compétence → plan (ou graphe) → le planificateur déterministe → sections, points d'apprentissage. Les sources nourrissent le plan, la section et le placement, mais pas le graphe ni le projet.
Trois gestes : édition directe, déclenchement d'un mécanisme, et le contexte qu'il lit. Une révision régénère en place : l'état antérieur est toujours réinjecté.
Planner → sessions → exercices → vos tentatives → le moteur de rétention (FSRS) → la maîtrise, qui nourrit la génération de sessions, la révision de sections et la maintenance.
L'asymétrie d'accumulation
Réviser le plan réinjecte vos remarques cumulées (jusqu'à 5 fils récents). Réviser une section ne lit pas vos fils. Son canal cumulé, ce sont les conceptions erronées de vos tentatives, et une requête de révision n'utilise que votre dernière saisie.
Notes & points ouverts.
- Les remarques ne s'accumulent que pour le plan. Le digest des fils est lu à un seul endroit ; les fils de section / exercice / tentative sont stockés mais aucune génération ne les relit aujourd'hui.
- Deux objets sont en lecture seule. L'objectif (type + dimensions) et le glossaire n'ont pas de commande d'écriture, donc l'apprenant les voit mais ne peut pas les corriger.
- Régrader écrit l'état d'apprentissage. Corriger une note réécrit le score et rejoue le modèle de rétention de ce concept, un des rares leviers où l'apprenant écrit la maîtrise.
- Déterministe là où ça compte. La planification, la sélection des révisions, la grille d'exercices et l'essentiel de la notation sont du calcul pur, pas de l'IA : l'IA rédige le contenu dans des emplacements que le moteur a déjà choisis.
- La génération de session a sa propre référence. La grille qui fixe l'ensemble d'exercices (ses six étapes, chaque constante de calibration, le prompt qu'elle assemble et ses manques connus) est documentée sur la page moteur de session.