CHECKLIST — CHAPITRE 03 (Stabilité de f(R), MCGT)

[OBJECTIF & PORTÉE]
- [ ] Ce checklist couvre la production des données/figures et l’intégration LaTeX pour l’étude de stabilité f(R) (Chapitre 3).
- [ ] Cohérence de nommage (EN), formats (CSV/JSON/PNG), grilles et lissage alignés avec les chapitres 1–2.

[ARBORESCENCE & FICHIERS ATTENDUS]
- [ ] Sources LaTeX (03-stabilite-fR/):
      • 03_stabilite_fR_conceptuel.tex
      • 03_stabilite_fR_details.tex
- [ ] Configs communes (zz-configuration/):
      • gw_phase.ini   (section [scan]: fmin, fmax, dlog)
      • mcgt-global-config.ini
- [ ] Données (zz-data/chapter03/):
      • 03_ricci_fR_milestones.csv
      • 03_fR_stability_data.csv
      • 03_fR_stability_domain.csv
      • 03_fR_stability_boundary.csv
      • 03_fR_stability_meta.json
      • 03_ricci_fR_vs_z.csv
      • 03_ricci_fR_vs_T.csv
- [ ] Scripts (zz-scripts/chapter03/):
      • generate_data_chapter03.py
      • plot_fig01_fR_stability_domain.py
      • plot_fig02_fR_fRR_vs_f.py
      • plot_fig03_ms2_R0_vs_f.py
      • plot_fig04_fR_fRR_vs_f.py
      • plot_fig05_interpolated_milestones.py
      • plot_fig06_grid_quality.py
      • plot_fig07_ricci_fR_vs_z.py
      • plot_fig08_ricci_fR_vs_T.py
- [ ] Figures (zz-figures/chapter03/):
      • fig_01_fR_stability_domain.png
      • fig_02_fR_fRR_vs_R.png
      • fig_03_ms2_R0_vs_R.png
      • fig_04_fR_fRR_vs_R.png
      • fig_05_interpolated_milestones.png
      • fig_06_grid_quality.png
      • fig_07_ricci_fR_vs_z.png
      • fig_08_ricci_fR_vs_T.png

[ENTRÉES & SPÉCIFICATIONS]
- [ ] 03_ricci_fR_milestones.csv (UTF-8, ‘,’):
      Colonnes et unités:
      • R_over_R0 [–]  (jalons)
      • f_R      [–]   (f′(R))
      • f_RR     [–]   (f″(R))
- [ ] gw_phase.ini → [scan] définit la grille log-uniforme (fmin, fmax, dlog) lue par generate_data_chapter03.py.
- [ ] mcgt-global-config.ini cohérent (paramètres globaux utilisés par le pipeline).

[SORTIES ATTENDUES & COLONNES]
- [ ] 03_fR_stability_data.csv:
      • R_over_R0, f_R, f_RR,
      • m_s2_over_R0 = (f_R − (R/R0)*f_RR) / (3*f_RR)
- [ ] 03_fR_stability_domain.csv:
      • beta, gamma_min (≥0), gamma_max (déduite de m_s2_over_R0)
- [ ] 03_fR_stability_boundary.csv:
      • beta, gamma_limit (= gamma_max sur le domaine)
- [ ] 03_ricci_fR_vs_z.csv:
      • R_over_R0, f_R, f_RR, z
- [ ] 03_ricci_fR_vs_T.csv:
      • R_over_R0, f_R, f_RR, T_Gyr
- [ ] 03_fR_stability_meta.json:
      • { "n_points": <int>, "files": [ … ] }

[PARAMÈTRES & MÉTHODES]
- [ ] Grille induite par les jalons (densification contrôlée par [scan]).
- [ ] Interpolation: PCHIP en log10 pour f_R et f_RR afin de limiter les oscillations.
- [ ] Contraintes de stabilité: f_R > 0 ; f_RR > 0 ; m_s2_over_R0 ≥ 0 ; gamma_min ≥ 0.
- [ ] Qualité de grille: pas log-uniforme (tolérance ~1e−12) vérifié par fig_06_grid_quality.png.

[GÉNÉRATION DES DONNÉES]
- [ ] Exécuter (exemple):
      python zz-scripts/chapter03/generate_data_chapter03.py \
        --config zz-configuration/gw_phase.ini \
        --npts 700
- [ ] Confirmer la création/écrasement contrôlé des 6 sorties listées ci-dessus.

[PRODUCTION DES FIGURES]
- [ ] Générer au minimum:
      python zz-scripts/chapter03/plot_fig01_fR_stability_domain.py
      python zz-scripts/chapter03/plot_fig07_ricci_fR_vs_z.py
      python zz-scripts/chapter03/plot_fig08_ricci_fR_vs_T.py
- [ ] Vérifier DPI≥300, axes/échelles (log si requis), légendes/units, style multi-chapitres.

[CONTRÔLES DE QUALITÉ & DRAPEAUX ROUGES]
- [ ] Intégrité CSV/JSON: UTF-8, séparateur ‘,’, décimale ‘.’, pas de NaN/Inf.
- [ ] Monotonicité et domaine:
      • R_over_R0 monotone si attendu par les scripts de tracé.
      • z et T_Gyr cohérents et monotones aux endroits requis.
- [ ] Stabilité physique:
      • f_R > 0 et f_RR > 0 sur le domaine utilisé.
      • m_s2_over_R0 ≥ 0 (sinon exclure la région ou revoir interpolation).
- [ ] Frontière non vide:
      • 03_fR_stability_boundary.csv doit contenir des lignes (gamma_limit renseigné).
- [ ] Domaines:
      • gamma_min = 0 partout (selon spéc.) et gamma_max fini (pas d’infinis).
- [ ] Méta:
      • 03_fR_stability_meta.json: n_points > 0, liste “files” couvrant toutes les sorties.

[VALIDATION AUTOMATISÉE (RECOMMANDÉE)]
- [ ] JSON (métadonnées):
      python zz-schemas/validate_json.py \
        zz-schemas/meta_schema.json \
        zz-data/chapter03/03_fR_stability_meta.json
- [ ] Tables (adapter si schémas dédiés):
      python zz-schemas/validate_csv_table.py \
        zz-schemas/comparison_milestones_table_schema.json \
        zz-data/chapter03/03_ricci_fR_milestones.csv
      (répéter avec un schéma ad hoc si disponible pour *stability_domain*/*boundary*/*data*)
- [ ] Diagnostic manifeste (optionnel mais utile):
      python zz-manifests/diag_consistency.py --chapter 03 --strict --report md \
        > zz-manifests/reports/chap03.md
      (report non vide, “errors: 0”)

[COMPILATION LaTeX]
- [ ] pdflatex -jobname=chap3_conceptuel  03-stabilite-fR/03_stabilite_fR_conceptuel.tex
- [ ] pdflatex -jobname=chap3_details     03-stabilite-fR/03_stabilite_fR_details.tex
- [ ] Zéro références manquantes; figures incluses depuis zz-figures/chapter03/.

[MANIFESTES & TRAÇABILITÉ]
- [ ] Mettre à jour zz-manifests/figure_manifest.csv pour les 8 figures.
- [ ] Synchroniser zz-manifests/chapters/chapter_manifest_03.json si fichiers ajoutés/renommés.
- [ ] Versionner (mcgt/CHANGELOG.md); conserver chemins relatifs et encodage UTF-8.

[COMMANDES RAPIDES]
- [ ] Données   :  python zz-scripts/chapter03/generate_data_chapter03.py --config zz-configuration/gw_phase.ini --npts 700
- [ ] Figures   :  exécuter les scripts “plot_fig..” listés
- [ ] Schémas   :  validate_json.py & validate_csv_table.py (voir “Validation”)
- [ ] LaTeX     :  commandes pdflatex ci-dessus
- [ ] Diagnostic:  diag_consistency.py (report MD) + mise à jour du chapitre dans les manifestes
