Skip to content

Verbes irréguliers anglais : une troisième matière (specs §16) - #101

Draft
isc wants to merge 17 commits into
mainfrom
claude/brave-johnson-yzl4fh
Draft

isc wants to merge 17 commits into
mainfrom
claude/brave-johnson-yzl4fh

Conversation

@isc

@isc isc commented Oct 3, 2026 •

Copy link
Copy Markdown
Owner

Ajoute la matière « Verbes anglais » : la spec du §16 et son implémentation.

Ce que fait la matière

  • Un fait = un verbe. L'app donne l'infinitif, affiché et lu par la voix anglaise. L'enfant produit le prétérit puis le participe (go → went, gone). « be » attend « was » et « were » ; « get » accepte « got » comme « gotten ».
  • 64 verbes, répartis en 10 familles, introduits par ordre de fréquence. Deux verbes nouveaux au plus par séance, et des séances de 12 à 15 questions, comme en conjugaison.
  • La voix est le mode par défaut, avec un réglage propre à la matière (multiplix-irr-input-mode). La reconnaissance se fait en en-US, quelle que soit la langue de l'interface :
    • l'infinitif récité en tête de la réponse est retiré ;
    • une réponse dite en deux fois attend sa seconde moitié ;
    • les homophones sont ramenés à la forme du verbe interrogé (eight → ate, one → won), uniquement pour ce verbe ;
    • appariement au son : la reconnaissance réécrit la récitation en phrase plausible (« go when gone », « go went gun ») ; chaque mot hors inventaire est ramené à la forme qui sonne le plus près. Une forme de l'inventaire dite telle quelle n'est jamais déplacée (thought pour bring reste une erreur) ;
    • une réponse juste est validée à la volée ;
    • l'écho de la voix de synthèse est filtré.
  • Clavier : on remplit les cases une par une, sur un clavier de 26 lettres. « Suivant → », Entrée, espace, virgule ou Tab passent à la case suivante ; un clic sur une case la reprend. Une coquille sur un mot de 5 lettres ou plus est acceptée mais ne fait pas monter la boîte (verdict almost), sauf si la faute donne une autre forme de l'inventaire (bought pour brought reste une erreur).
  • Introduction en 3 étapes : écouter la récitation, voir l'analogie avec un verbe déjà su de la même famille, puis recopier de mémoire.
  • Feedback : sans son négatif. En cas d'erreur, la récitation est rejouée, l'erreur est nommée quand on la reconnaît (goed, inversion des deux formes), sinon l'astuce de famille s'affiche pour les verbes en boîte ≤ 2.
  • Interférences : les faux-amis de famille (bring/sing, bring/ring, think/drink, win/swim, fall/feel, buy/bring) et la famille -ought ne cohabitent pas dans une séance avant consolidation, et leurs introductions sont espacées de 48 h. Deux verbes de la même famille ne se suivent jamais.
  • Placement : 10 sondes, à la voix ou au clavier, arrêt après 3 échecs consécutifs, sans inférence par dominance.
  • Récompenses et écrans :
    • image mystère 8×8 et un badge par famille ;
    • onglet « Verbes anglais » dans « Mes règles » ;
    • dans l'espace parent : une carte, une page de matière, la grille Leitner, la semaine, le bandeau d'activité, les faits à retravailler avec les réponses fausses récentes, et une idée pour aider à la maison.
  • Langue d'interface : la matière est proposée dans toutes les langues sauf l'anglais.

MP3

  • Les 128 clés irr-* sont générées par la preview et commitées sur la branche (anglais, depuis src/lib/irregularVerbs.ts) ; useTTS lit tout le préfixe irr- sous audio/tts/en/.
  • Prises trop longues refaites : Voxtral ajoutait parfois un « erhm » après le verbe. generate-tts.mjs mesure la durée de chaque prise (scripts/mp3-duration.mjs, lecture des trames MPEG) et refait celles qui dépassent 1,2 s (verbe seul) ou 3 s (récitation), jusqu'à 4 essais, en gardant la plus courte. Les 26 fichiers fautifs ont été régénérés.

Points d'attention

  • Accueil : il passe à trois tuiles, en grille de 3 colonnes à partir de 360 px.
  • Généralisations : Subject ('math' | 'conj' | 'irr', avec subjectOf) et le bandeau d'activité pour N matières. MathLevel exclut 'irr'.

Vérifications

  • npm test : 733 tests passent. irregularVerbs.test.ts couvre l'inventaire, le jugement, la voix (dont l'appariement au son), la composition et le placement. irrIntegration.test.tsx couvre le parcours accueil → placement → séance → récap, la migration et l'import. irrVoiceSession.test.tsx simule la reconnaissance vocale. irrAnswerInput.test.tsx couvre la saisie case par case au clavier physique. Le test de couverture TTS est étendu.
  • npm run lint, tsc -b et npm run build passent.
  • Rendu vérifié dans Chromium à 360 et 375 px (accueil, placement, introduction, question au clavier et à la voix).

🤖 Generated with Claude Code

https://claude.ai/code/session_01RZKuXTJUA75jCTdpwDngjD

Nouveau chapitre, statut proposition : 64 verbes en familles, un fait par
verbe (infinitif → prétérit + participe), réponse vocale en anglais dès la
v1, interférences entre faux-amis de famille (bring/sing, fall/feel…).
Évolutions et Références passent en §17 et §18.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZKuXTJUA75jCTdpwDngjD
@github-actions

github-actions Bot commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Preview déployée pour cette PR :

Commit : 73b20e5f692e0625b28de377ff0e3beb97d84acd
Le preview est mis à jour à chaque push et supprimé à la fermeture de la PR.

claude added 4 commits October 3, 2026 11:39
Un enfant anglophone n'apprend pas ses irréguliers en liste ; la matière est
proposée dans toute langue d'interface sauf l'anglais.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZKuXTJUA75jCTdpwDngjD
64 verbes en familles, un fait par verbe : l'infinitif est donné (affiché et
lu en anglais), l'enfant produit le prétérit et le participe. Réponse à voix
haute par défaut (reconnaissance en anglais, homophones ramenés à la forme,
réponse en deux fois attendue), ou au clavier case par case. Introduction en
trois étapes avec l'analogie de famille, feedback qui nomme le -ed plaqué et
l'inversion, interférences entre faux-amis de famille, placement de dix
sondes, image mystère 8×8, un badge par famille, onglet de familles dans
« Mes règles », carte et page dans l'espace parent.

Proposée dans toute langue d'interface sauf l'anglais. Les MP3 (clés irr-*)
sont déclarés dans generate-tts et lus en anglais quelle que soit la langue.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZKuXTJUA75jCTdpwDngjD
@isc isc changed the title Specs : proposition d'une matière « verbes irréguliers anglais » (§16) Verbes irréguliers anglais : une troisième matière (specs §16) Oct 3, 2026
claude added 3 commits October 3, 2026 17:28
Factorise ce que la matière recopiait : seuil de rapidité par nombre de
lettres, boîte et ensemencement du placement, critère de maîtrise d'un
groupe (leitner), store du mode de saisie, entrée en séance et série de
bonnes réponses dans App, constantes du vocal et du « presque ». Matière
d'une séance (isWordItem, subjectOf) et champ de date par matière en table ;
bandeau d'activité et point de la semaine sans variables par matière.
Moins de travail par résultat vocal intermédiaire, familles et libellés
précalculés, séance des verbes recomposée seulement quand les verbes changent.
Chaînes mortes retirées, « Écris les deux formes » branché au clavier.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZKuXTJUA75jCTdpwDngjD
Jusqu'ici, generate-tts.yml ne tournait que sur main, après la fusion : une
matière nouvelle se testait muette en preview, puis il fallait fusionner,
lancer le workflow et attendre son déploiement.

Le nouveau job `tts` de preview.yml génère les MP3 manquants (idempotent :
rien sur une PR sans nouvelle clé), les passe au build de la preview, les
commite sur la branche de la PR et relance la CI sur ce commit. Hors du
groupe de concurrence gh-pages, pour ne pas retenir les déploiements pendant
la génération. Les PR de forks, sans le secret, s'en passent.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZKuXTJUA75jCTdpwDngjD
claude and others added 5 commits October 3, 2026 19:28
…sans « erhm »

- Clavier : espace, virgule et Tab passent à la case suivante (bouton
  « Suivant → »), et un clic sur une case la reprend.
- Voix : chaque mot entendu hors inventaire est ramené à la forme qui sonne
  le plus près (« go when gone », « go went gun »), la reconnaissance
  réécrivant la récitation en phrase plausible.
- TTS : les prises trop longues (un « erhm » après le verbe) sont refaites,
  jusqu'à 4 essais, la plus courte gardée ; les 26 MP3 fautifs sont retirés
  pour être régénérés par la preview.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZKuXTJUA75jCTdpwDngjD

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants