# AUDIT 8ÈME — GÉOMÉTRIE — ÉTAT *AVANT* CORRECTION

> Rapport d'inventaire (lecture seule). **Aucun fichier n'a été modifié à ce stade.**
> Date : 2026-07-14 · Branche git : `SNAPSHOT-avant-audit-2026-07-14`
> Périmètre : `8eme/SymCent`, `8eme/Triangles_isom`, `8eme/Quadri8`, `8eme/Angles8`

---

## 0. Méthode d'audit

- Inventaire des fichiers `.html/.htm/.js/.css` par récursion dans les 4 dossiers.
- Résolution + vérification d'existence de **toutes** les références `<link href>`, `@import`, `<script src>`
  (chemins relatifs, `../`, absolus `/assets/...`, externes ignorés).
- Détection des chargements MathJax multiples et de l'ordre config/CDN.
- Recherche récursive **insensible à la casse** des notions hors-programme (FR / EN / AR), puis
  **relecture contextuelle** de chaque occurrence pour distinguer :
  - **VIOLATION** — méthode interdite réellement employée dans un énoncé, une correction, une aide ;
  - **DISTRACTEUR PÉDAGOGIQUE** — le terme interdit apparaît comme *mauvaise réponse* d'un QCM ou dans une explication qui enseigne la distinction (légitime) ;
  - **CONTRAINTE** — la page dit explicitement « sans Pythagore / sans Thalès » (légitime) ;
  - **FAUX POSITIF** — sous-chaîne fortuite (ex. `ميل` dans `تحميل`=« chargement »).

---

## 1. Inventaire des fichiers

| Dossier | HTML | JS | CSS |
|---|---:|---:|---:|
| SymCent | 266 | 9 | 1 |
| Triangles_isom | 212 | 46 | 0 |
| Quadri8 | 210 | 153 | 5 |
| Angles8 | 65 | 13 | 0 |
| **Total** | **753** | **221** | **6** |

Assets partagés confirmés présents : `/assets/css/basic.css`, `/assets/css/devoirs15.css`,
`/assets/js/core/utils.js`, `/assets/js/core/mathjax-config.js`, `/assets/js/ghali/ghali_annotations.js`.

---

## 2. Références CSS cassées (404 local) — 54 occurrences / ~46 fichiers LIVE

| Réf. cassée | Nb fichiers | Où | Diagnostic | Correction envisagée |
|---|---:|---|---|---|
| `design_elegant.css` (relatif) | 23 | `SymCent/3etapes/serie1/{cercle,droite,exercices_divers,repere,angle}` | Fichier absent des sous-dossiers ; **une copie existe** dans `SymCent/depart/design_elegant.css`. Les pages chargent aussi `/assets/css/basic.css` + un bloc `<style>` intégré → CSS **supplémentaire**, pages non totalement cassées. | Repointer vers la copie existante (chemin relatif correct) **ou** déposer le fichier dans les sous-dossiers. À confirmer que le fichier est bien nécessaire. |
| `para.css` (relatif) | 22 | `Quadri8/3etapes/divers/*` | **Fichier introuvable dans TOUT le dépôt.** Les pages ont un `<style>` inline + `/assets/css/devoirs15.css` → CSS supplémentaire mort. | Supprimer la balise `<link para.css>` morte (aucune cible n'existe). |
| `powersQ-v1.css` | 1 | `Quadri8/quiz/quiz/easy/revision_mixte_coordonnees_geo_qcm_01.html` | Réf. isolée. | À vérifier ; probablement supprimer ou repointer. |
| `menuhautdroite.css` | 1 | `Angles8/cours/ResumAnglesDroites.html` | Copies existent ailleurs (`7eme/...`, `9eme/...`) mais pas localement. | Repointer ou retirer (héritage d'un ancien template). |

*Aucune référence CSS cassée détectée dans des dossiers d'archive.*

---

## 3. Références JavaScript cassées (404 local) — ~81 fichiers LIVE

| Réf. cassée | Nb fichiers | Diagnostic | Correction envisagée |
|---|---:|---|---|
| `../../../annotations/ghali_annotations.js` | 81 | Résout vers `8eme/annotations/…` **inexistant**. Le script canonique existe en `/assets/js/ghali/ghali_annotations.js` (et copies `./annotations/`, `/assets/js/core/`). Concerne surtout `Triangles_isom/3etapes/**`. | Repointer vers `/assets/js/ghali/ghali_annotations.js` (chemin absolu, cf. mémoire projet « annotations-contextual-architecture »). Fonctionnalité = calque d'annotation ; 404 non bloquant mais à corriger. |

*Aucune référence JS cassée détectée dans des dossiers d'archive.*

---

## 4. MathJax / LaTeX

### 4.1 Double chargement de MathJax — ~237 pages
**Cause racine identifiée.** Les pages contiennent en dur :
```html
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
```
**et** incluent `/assets/js/core/mathjax-config.js`, qui **injecte lui-même** le même CDN :
```js
if (document.getElementById('mathjax-cdn-script')) return; // anti-doublon
var s = document.createElement('script'); s.id = 'mathjax-cdn-script';
s.src = 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js';
```
Le garde anti-doublon teste l'`id` **`mathjax-cdn-script`**, alors que la balise en dur porte l'`id`
**`MathJax-script`** → le garde ne détecte pas le doublon → **MathJax est chargé 2×**.
Conséquence : avertissement « MathJax loaded twice » au démarrage, risque de typeset incohérent.

### 4.2 Ordre config/CDN
Dans les pages concernées, le bloc `window.MathJax = {…}` (config, macros) est placé **après** la
balise `<script>` du CDN (chargée `async`) → configuration parfois appliquée trop tard.
`mathjax-config.js` fait l'inverse (config puis CDN) — c'est la référence correcte du projet.

**Correction envisagée (uniforme, scriptée, vérifiée) :** retirer la balise CDN en dur (et son bloc
config inline redondant) sur les pages qui incluent déjà `mathjax-config.js`, en conservant toute
macro custom éventuelle. À dérouler prudemment, page-type par page-type.

### 4.3 Contenu mathématique sans balise MathJax locale
0 page « à math sans aucun MathJax » : toutes ont soit la balise CDN, soit l'inclusion config.

---

## 5. Notions HORS-PROGRAMME (cœur pédagogique)

### 5.1 Occurrences brutes après filtrage des faux positifs

| Notion | Occurrences (relues) |
|---|---:|
| Pente / ميل (slope) | 74 (163 avant retrait de `تحميل`) |
| Vecteur / متجه | 68 |
| Pythagore / فيثاغورس | 57 |
| « semblables » / متشابه | 30 (dont ~7 distracteurs pédagogiques) |
| Équation de droite / معادلة مستقيم | 17 |
| Thalès / طاليس | 13 |
| **Al-Kashi (loi des cosinus)** / الكاشي | 10 |

> **Faux positifs écartés** : `ميل` dans `تحميل` (« chargement », messages JS) — 28 fichiers
> `TRIISO_ex_001…028` blanchis. `متشابه` dans les explications QCM « métacognitives » qui enseignent
> *isométrie ≠ similitude* (légitime et souhaitable dans ce chapitre).

### 5.2 SymCent — 18 fichiers à traiter (+1 contrainte OK)

| Fichier | Notion | Nature probable |
|---|---|---|
| `3etapes/serie1/cercle/SymCentExeCercles6.html` | Pythagore | Correction : « utilise Pythagore dans le triangle rectangle » |
| `3etapes/serie1/droite/1SymCentr1.html` | Pythagore | Aide : « Pythagore dans les triangles rectangles » |
| `3etapes/serie1/exercices_divers/SymCentS5.html` | Pythagore (réciproque `a²+b²=c²`) + Vecteur | Correction complète à réécrire |
| `3etapes/serie1/exercices_divers/SymCentSer678.html` | Pythagore (`AC²=BC²−AB²`) | Correction |
| `3etapes/serie1/exercices_divers/SymCentSerie1530.html` | Pythagore | À relire |
| `3etapes/serie1/exercices_divers/SymCentSerie16_20.html` | **Thalès** | Correction basée Thalès → à refaire (théorème des milieux) |
| `3etapes/serie1/exercices_divers/SymCentSerie3_2.html` | Pythagore | Correction |
| `3etapes/serie1/exercices_divers/symcentDem.html` | Vecteur | À relire |
| `3etapes/serie1/repere/repere3.html` | Pythagore (réciproque) | Repère : preuve triangle rectangle |
| `3etapes/serie1/repere/repere4.html` | Pente | Repère : parallélisme par pente |
| `3etapes/serie1/repere/repere5.html` | Pente + Pythagore | Repère : « produit des pentes = −1 » (perpendiculaire) |
| `cours/1SymcentCours.html` | **Vecteur** | **Leçon** : symétrie centrale décrite via « المتجه AB » |
| `cours/PropSymCent.html` | Vecteur | Leçon |
| `cours/phrasesSymcent.html` | Vecteur | Leçon |
| `depart/Demonstration3.html` | « semblables » | À relire (peut être contrainte) |
| `depart/Demonstration4.html` | « semblables » | À relire (contient déjà « لا فيثاغورس، لا طاليس… ») |
| `depart/ExeSymCent8_Depart4.html` | Vecteur | À relire |
| `quiz/qcm_repere2.html` | « semblables » | Distracteur probable |
| `depart/ExeSymCent8_Depart3.html` | *(contrainte « بدون طاليس » — OK)* | Aucune action |

### 5.3 Triangles_isom — 23 fichiers à relire (majorité = distracteurs / QCM d'erreur)

- **Vraies violations (Pythagore dans corrections)** : `3etapes/3emecas/trianglesIsomeCas3.html`,
  `3etapes/triangle_isocele/quiz_equilateral_hard.html`, `quiz_isocele_hard.html`,
  `3etapes/triangles_rectangle/TRiSoExe7_1.html`, `TRiSoExe13_1.html`, `trianglesIsomeRectCas1.html`,
  `quizRectCas2.html`, `2emecas/quizCas2hard.html` — corrections qui « démontrent » l'égalité du 3ᵉ côté
  par Pythagore au lieu des **cas d'isométrie**.
- **Thalès** : `3etapes/bissectrice/AppTRiSoSerie1.html` (note : « … et Thalès »),
  `combat/…/page_11_…` (à relire).
- **Distracteurs / QCM d'erreur légitimes** (« متشابهة » enseigné comme piège) :
  `quizCas1`, `quizCas2`, `quizCas3`, `IndexTRiSo22`, `QuizTriIso`, `cours/Mafahim1.html`,
  plusieurs `combat/combat_erreur_taqayos_QCM/page_*` → **à confirmer, a priori NON modifiés**.
- **Pente** : `quizCas3hard.html`, `quizRectCas1hard.html` — à relire (probable faux positif ou distracteur).

### 5.4 Quadri8 — 50 fichiers flaggés

- **Corrections « paralelogramme » utilisant Pythagore / Al-Kashi / Thalès** (vraies violations, cœur du
  travail) : `Quadri8_00, _1, _3, _4, _5, _42, _51, _Fort1, _Fort5, AnglesQuadri, RelatQuari`.
  ⚠️ `Quadri8_3.html` emploie **« مبرهنة الكاشي (فيثاغورس المعممة) »** = loi des cosinus (lycée).
- **`paralelo11.html`** (présent en 3 exemplaires : `parallelo/`, `parallelo (2)/`, `series/`) : Pente + Pythagore.
- **Cours** : `cours/PropQuadri.html` (Pente+Pythagore), `cours/CasParticQuari.html` (Pente),
  `cours/ConsParalQuadri.html` (Vecteur), `cours/ActiviteApproRecLosCar2.html` (Pythagore `a²+b²=c²`).
- **`IndexQuadri8Vancienne.html`** : page **entièrement bâtie sur la géométrie analytique**
  (calcul de pentes `m=(y_B−y_A)/(x_B−x_A)`, coordonnées, « متجهات ومعادلات مستقيم »). Nom « Vancienne »
  = ancienne version. **Décision structurelle requise** (réécriture lourde *vs* quarantaine si superseded).
- **24 fichiers `quiz/zip/quiz_quadrilateres_js_pack*` + `quiz_pack7_complet`** : QCM **générés**
  proposant « استعمال متجهات ومعادلات مستقيم » et « فيثاغورس » comme *critère le plus fort*. Situés sous
  `quiz/zip/` (extraction). **À vérifier s'ils sont réellement chargés** par une page live ; sinon,
  candidats quarantaine + signalement (peuvent réintroduire du hors-programme s'ils repassent en prod).
- Divers : `3etapes/divers/{exercise_13, general_hard6, serie1_medium}.html`, `parallelo/dashboard.html`
  (« الهندسة - نظرية طاليس » dans un libellé de chapitre), `parallelo/fraction 81.html`.

### 5.5 Angles8 — 8 fichiers flaggés

- **Vecteur** : `exercices/ExeAng8_S6.html` (+ `ExeAng8_S6.aide.js`), `serie/serieangles1.html`, `serieangles7.html` — à relire (usage réel ou mot isolé).
- **« semblables »** : `IndexAngles8.html`, `exercices/ExeAng8_S1.html`, `ExeAng8_S3.html` — distracteurs probables.
- **Pente** : `cours/Moulakhasat.html` — à relire.

---

## 6. Classement des anomalies par gravité

| Gravité | Catégorie | Volume estimé |
|---|---|---|
| 🔴 Haute | Corrections/leçons employant Pythagore, Thalès, Al-Kashi, vecteurs, pente pour *démontrer* | ~35–45 fichiers (SymCent, Triangles_isom rectangles, Quadri8 paralelogramme, cours) |
| 🟠 Moyenne | `IndexQuadri8Vancienne.html` + 24 QCM générés `quiz/zip/` (hors-programme structurel) | ~25 fichiers (décision structurelle) |
| 🟡 Basse-tech | Double chargement MathJax | ~237 pages (fix uniforme) |
| 🟡 Basse-tech | JS cassé `ghali_annotations.js` | 81 fichiers (repoint) |
| 🟡 Basse-tech | CSS cassé `design_elegant.css` / `para.css` / divers | ~46 fichiers |
| 🟢 À écarter | Distracteurs QCM « متشابهة », contraintes « بدون طاليس », faux positifs `تحميل` | ~35 occurrences (aucune action) |

---

## 7. Points nécessitant une décision (avant Phase B)

1. **`IndexQuadri8Vancienne.html`** — réécrire en méthode 8ᵉ (propriétés des quadrilatères) ou
   mettre en quarantaine s'il est remplacé par un index courant ?
2. **24 QCM `Quadri8/quiz/zip/**`** — corriger en place ou quarantaine (vérifier d'abord s'ils sont
   référencés par une page live) ?
3. **Exercices potentiellement insolubles au niveau 8ᵉ** (ex. calcul d'une longueur de diagonale qui
   *exige* Pythagore) — la consigne autorise une modification **minimale** d'énoncé : à valider au cas par cas.
4. **Fix MathJax de masse (~237 pages)** — appliquer maintenant (changement uniforme vérifié) ou
   traiter par échantillon puis généraliser ?

---

## 7 bis. ⚠️ LACUNE D'AUDIT DÉCOUVERTE EN PHASE B (correction du présent rapport)

L'audit initial (section 5) s'appuyait sur la liste de termes fournie, qui **ne couvrait pas** trois
formes d'écriture réellement présentes dans les corrections. Découvertes pendant la correction de SymCent :

| Forme manquée | Nature | Détectée par |
|---|---|---|
| `\cos`, `\sin`, `\tan`, `cos(60°)` (LaTeX/texte) | **Trigonométrie** (patron 30-60-90 : `cos(∠)=AB/BC`, `FG=EF/cos(60°)`) | ripgrep `\\cos\|\\sin\|\\tan` |
| `\vec{...}`, `⃗` (LaTeX/Unicode) | **Vecteurs** — non captés par la recherche du seul mot arabe `متجه` | ripgrep `\\vec\{\|⃗` |
| `∘`, `⁻¹`, `S_A ∘ S_B` | **Composition / inverse de transformations** (hors programme) | ripgrep `∘\|⁻¹` |

**Impact sur SymCent** (chiffres fiables ripgrep, après les ~13 fichiers déjà corrigés) :
- Trigonométrie résiduelle : **5 fichiers** (`SymCentSer18`, `SymCentSer456`, `SymCentSerie3_1`,
  `SymCentSerie3_2`, `SymCentSerie4`) — même patron 30-60-90, corrigible par « I milieu de [FH] →
  triangle équilatéral → FG = 2·EF » et « médiane relative à l'hypoténuse = ½ hypoténuse ».
- Vecteurs résiduels : **9 fichiers** (`SymCentS5` ex.27+, `SymCentSer18`, `SymCentSerie3/3_1/3_2/4`,
  `SymCentSerie11_15`, `repere00`, `repere000`, `imageDroite`).
- Composition/inverse : `1SymcentCours` (3 propriétés restantes), `1SymCentr1`, `1SymCentr2`.

> ⚠️ **Cette lacune concerne aussi les 3 autres dossiers** (Triangles_isom, Quadri8, Angles8) : leur
> volume réel de trig/vecteurs/composition est donc probablement supérieur aux chiffres de la section 5.
> La recherche finale (rapport APRÈS) utilisera ripgrep avec ces formes ajoutées.

**Note méthodo** : le shell Git-Bash interprète `\t` dans `\\tan` comme une tabulation → faux positifs
massifs (230/266 fichiers). **Utiliser l'outil ripgrep** (ou `grep -F`/classes de caractères), pas
`grep "\\\\tan"`, pour les recherches finales.

## 8. Prochaine étape (Phase B — ordre imposé)

1. `SymCent` → 2. `Triangles_isom` → 3. `Quadri8` → 4. `Angles8`.
Pour chaque dossier : CSS → JS → MathJax → contenu hors-programme → vérif réponses → navigation → RTL.
**Aucune modification tant que ce rapport n'est pas validé.** Le rapport *APRÈS* sera écrit dans
`8eme/AUDIT_8EME_GEOMETRIE_APRES.md`.
