{
  "gab_id": "GAB-328",
  "renderer_key": "text_cta",
  "synthesis_grid_id": "sgrid-synthese-multi-sources-demo",
  "_note_dev": "SOURCE DE VÉRITÉ. Grille de synthèse multi-sources : chaque ligne croise une idée, sa source et sa preuve. Une ligne marquée contradiction=true déclenche un avertissement. Le bouton CTA est verrouillé tant que toutes les lignes ne sont pas cochées. Le plan de réponse généré vient entièrement du JSON. Anti-invention : contenu extrait du HTML source GAB-328.",
  "title": "Grille de synthèse",
  "instruction": "Remplis la grille idée → source → preuve. Coche chaque ligne complétée :",
  "grid_rows": [
    {
      "row_id": "row-1",
      "idea": "Cause économique",
      "source_ref": "Doc graphique",
      "evidence": "prix +88%",
      "contradiction": false
    },
    {
      "row_id": "row-2",
      "idea": "Cause sociale",
      "source_ref": "Doc A",
      "evidence": "inégalité fiscale",
      "contradiction": false
    },
    {
      "row_id": "row-3",
      "idea": "Point de vue noble",
      "source_ref": "Doc B",
      "evidence": "contredit Doc A",
      "contradiction": true
    }
  ],
  "contradiction_warning": "Contradiction repérée entre Doc A et Doc B — à intégrer comme tension dans le plan.",
  "answer_plan": {
    "parts": ["causes économiques", "causes sociales", "tension des points de vue"],
    "note": "Chaque partie appuyée sur sa source."
  },
  "primary_cta": {
    "label": "Générer le plan de réponse",
    "action": "generate_plan"
  },
  "cta_locked_label": "Générer le plan de réponse",
  "cta_done_label": "Plan généré",
  "fallback_text_summary": "Grille de synthèse : 3 lignes idée/source/preuve — dont une contradiction Doc B vs Doc A. Plan en 3 parties généré après validation complète de la grille."
}
