{
  "_lisez_moi": [
    "Écarts que le diff de schéma rapportera encore une fois la séquence terminée, et",
    "qu'on accepte SCIEMMENT. Toute entrée ici doit citer sa source documentaire ; un",
    "écart non documenté n'a rien à y faire — il fait échouer la séquence, et c'est le",
    "but. Cette liste est la seule tolérance de la porte de sortie : elle remplace le",
    "« aucun écart hors FK attendues » du runbook §4 phase 5 par quelque chose de",
    "vérifiable.",
    "Chaque entrée est aussi un arbitrage EN ATTENTE : la trancher, c'est soit corriger",
    "la référence, soit corriger la production — pas la séquence."
  ],
  "indexes_extra_in_prod": [
    {
      "table": "completed_courses",
      "columns": ["learner_id"],
      "unique": false,
      "source": "docs/roadmap/19_DIFF_SCHEMA_PROD.md §4, « Index en trop »",
      "justification": "Index simple hérité de l'ancienne clé étrangère. Redondant une fois l'unique (learner_id, course_id) posé par 2026_08_05_000002, mais sans risque : le supprimer serait une modification de la production qu'aucune décision ne couvre.",
      "arbitrage": "à trancher hors séquence — le supprimer ou l'acter"
    }
  ],
  "columns_divergent": [],
  "columns_extra_in_prod": [],
  "columns_missing_in_prod": [],
  "tables_extra_in_prod": [],
  "tables_missing_in_prod": [],
  "indexes_missing_in_prod": [],
  "fks_missing_in_prod": []
}
