{
    "ok": true,
    "generated_at": "2026-07-08T00:10:19+02:00",
    "filters": {
        "source_key": null,
        "source_family": null,
        "q": null
    },
    "summary": {
        "count": 148,
        "with_command": 148,
        "families": {
            "DATAtourisme/data.gouv": 2,
            "FranceAgriMer/data.gouv": 1,
            "Insee": 1,
            "Ministere de la Culture/data.gouv": 1,
            "OpenAgenda/data.gouv": 1,
            "institutional_publication": 6,
            "internal_or_imported": 2,
            "internal_reference_product": 95,
            "odbl_transport_open_data": 1,
            "official_annual_csv_open_data": 1,
            "official_geocoded_csv_open_data": 1,
            "official_geojson_open_data": 1,
            "official_meta_catalog_csv": 1,
            "official_monthly_open_data": 1,
            "official_open_api": 1,
            "official_open_data": 12,
            "official_reference_data": 1,
            "open_data_licence_ouverte": 15,
            "sncf_open_data": 1,
            "third_party_api": 1,
            "transport.data.gouv.fr/data.gouv": 1,
            "transport_open_data": 1
        },
        "cadences": {
            "annual": 15,
            "daily": 16,
            "monthly": 23,
            "quarterly": 4,
            "weekly": 90
        }
    },
    "copy_variants": {
        "weekly_ops": {
            "label": "Routine hebdo data ops",
            "text": "Contrôler les sources en priorité avec `due_level=critical`, puis les sources `due`, en utilisant `evidence_required` comme preuve minimale et `primary_action` comme commande de reprise. Si la source ne répond pas, appliquer `fallback_action` et conserver le dernier snapshot cité."
        },
        "publication_guardrail": {
            "label": "Garde-fou publication",
            "text": "Une source sans preuve attendue, sans date de snapshot ou au-delà du seuil critique ne doit pas être utilisée comme preuve principale dans un KPI copiable."
        }
    },
    "results": [
        {
            "source_key": "agence_bio",
            "source_family": "open_data_licence_ouverte",
            "recommended_cadence": "monthly",
            "stale_after_days": 45,
            "critical_after_days": 90,
            "evidence_required": "date API, numero bio, SIRET, statut certificat",
            "primary_action": "php scripts/ingest_bio.php",
            "fallback_action": "ne pas presenter comme preuve parcellaire"
        },
        {
            "source_key": "agencebio_organic_viticulture_surfaces",
            "source_family": "official_open_data",
            "recommended_cadence": "annual",
            "stale_after_days": 395,
            "critical_after_days": 760,
            "evidence_required": "surfaces bio viticulture VI, commune, AB, conversion, surf_bio",
            "primary_action": "lancer scripts/normalize_agencebio_organic_viticulture_surfaces.php depuis le flux Agence Bio surfaces production",
            "fallback_action": "groupe VI viticulture incluant une faible part de raisin de table, publier en agregat territoire"
        },
        {
            "source_key": "agencebio_organic_wine",
            "source_family": "official_open_data",
            "recommended_cadence": "daily",
            "stale_after_days": 7,
            "critical_after_days": 21,
            "evidence_required": "operateurs bio, viticulture bio VI, certificateurs, SIRET, date engagement",
            "primary_action": "rafraichir sources/agencebio-professionnels-bio.csv puis verifier api/get_agencebio_organic_wine.php?format=md",
            "fallback_action": "annuaire declaratif public, publier agregats territoire avant listings nominaux"
        },
        {
            "source_key": "agreste_vineyard_land_values",
            "source_family": "official_open_data",
            "recommended_cadence": "annual",
            "stale_after_days": 395,
            "critical_after_days": 760,
            "evidence_required": "metadata data.gouv, ressources Agreste, template manuel, normaliseur, prix moyens/min/max vigne",
            "primary_action": "remplir sources/agreste-vineyard-land-values-input.csv puis lancer scripts/normalize_agreste_vineyard_land_values.php",
            "fallback_action": "valeurs vignes lissees SAFER, contexte foncier uniquement"
        },
        {
            "source_key": "agreste_viticulture_territorial",
            "source_family": "open_data_licence_ouverte",
            "recommended_cadence": "annual",
            "stale_after_days": 400,
            "critical_after_days": 760,
            "evidence_required": "millesime Agreste, territoire, indicateur, unite, URL data.gouv",
            "primary_action": "php scripts/ingest_macro_indicators.php kind=macro_wine file=sources/agreste-viticulture-territorial.csv source_key=agreste_viticulture_territorial",
            "fallback_action": "garder l'indicateur comme cadrage filiere et bloquer les interpretations parcellaires"
        },
        {
            "source_key": "api_recherche_entreprises_wine_actor_signal",
            "source_family": "official_open_api",
            "recommended_cadence": "daily",
            "stale_after_days": 3,
            "critical_after_days": 15,
            "evidence_required": "signaux API Recherche d Entreprises pour acteurs economiques vin, NAF 01.21Z et 11.02B, regions vin prioritaires",
            "primary_action": "php scripts/fetch_api_recherche_entreprises_wine_actor_counts.php sources/api-recherche-entreprises-wine-actor-counts.csv sources/api-recherche-entreprises-wine-actor-counts-summary.csv puis php scripts/build_reference_public_api_recherche_entreprises_wine_actor_board.php sources/reference-public-api-recherche-entreprises-wine-actor-board.csv sources/reference-public-api-recherche-entreprises-wine-actor-board.html sources/reference-public-api-recherche-entreprises-wine-actor-board.md sources/reference-public-api-recherche-entreprises-wine-actor-board-summary.csv",
            "fallback_action": "signal de resultats API, les valeurs a 10000 sont des bornes basses, pas stock Sirene complet, demande, frequentation, prix, satisfaction, revenu ou performance touristique"
        },
        {
            "source_key": "atout_france_classified_accommodations",
            "source_family": "open_data_licence_ouverte",
            "recommended_cadence": "monthly",
            "stale_after_days": 45,
            "critical_after_days": 120,
            "evidence_required": "CSV data.gouv, date de mise a jour, categorie, etoiles, commune/INSEE",
            "primary_action": "php scripts/ingest_classified_accommodations.php file=sources/atout-france-classified-accommodations.csv",
            "fallback_action": "ne pas assimiler a toute capacite d hebergement ni a la frequentation"
        },
        {
            "source_key": "atout_france_oenotourisme",
            "source_family": "institutional_publication",
            "recommended_cadence": "quarterly",
            "stale_after_days": 120,
            "critical_after_days": 240,
            "evidence_required": "publication ou page source, millesime, URL",
            "primary_action": "php scripts/ingest_macro_indicators.php kind=oenotourism file=sources/atout-france-oenotourisme-indicators.csv",
            "fallback_action": "garder les chiffres en cadrage national avec caveat visible"
        },
        {
            "source_key": "atout_france_vignobles_decouvertes_destinations",
            "source_family": "institutional_publication",
            "recommended_cadence": "monthly",
            "stale_after_days": 60,
            "critical_after_days": 180,
            "evidence_required": "liste Atout France, destination, vignoble, URL officielle",
            "primary_action": "php scripts/ingest_macro_indicators.php kind=oenotourism file=sources/vignobles-decouvertes-destinations-sample.csv",
            "fallback_action": "ne pas presenter comme frequentation ou performance prestataire"
        },
        {
            "source_key": "ban_address_reference",
            "source_family": "official_reference_data",
            "recommended_cadence": "weekly",
            "stale_after_days": 10,
            "critical_after_days": 30,
            "evidence_required": "metadata BAN, ressources CSV/API, statut commune, template audit, normaliseur adresse",
            "primary_action": "remplir sources/ban-address-quality-input.csv puis lancer scripts/normalize_ban_address_quality.php",
            "fallback_action": "qualifie adresse/geocodage, pas existence commerciale ni frequentation"
        },
        {
            "source_key": "ban_ign_geocoding",
            "source_family": "third_party_api",
            "recommended_cadence": "monthly",
            "stale_after_days": 45,
            "critical_after_days": 90,
            "evidence_required": "adresse normalisee, score geocodage, source BAN",
            "primary_action": "php scripts/ingest_ban_geocode.php",
            "fallback_action": "masquer les distances/cartes si geocodage faible"
        },
        {
            "source_key": "bnlc_carpooling_areas",
            "source_family": "transport.data.gouv.fr/data.gouv",
            "recommended_cadence": "monthly",
            "stale_after_days": 35,
            "critical_after_days": 90,
            "evidence_required": "lieux covoiturage, commune, coordonnees, capacite, pmr, acces bas carbone",
            "primary_action": "mettre a jour sources/bnlc-carpooling-areas.csv puis normaliser scripts/normalize_bnlc_carpooling_areas.php",
            "fallback_action": "infrastructure de covoiturage, ne mesure pas usage reel ni desserte finale"
        },
        {
            "source_key": "bnsc_bike_parking",
            "source_family": "transport_open_data",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "stationnement cyclable, capacite velo, code commune, couverture, surveillance, lumiere",
            "primary_action": "rafraichir sources/bnsc-bike-parking.zip puis lancer scripts/normalize_bnsc_bike_parking.php",
            "fallback_action": "source OSM ODbL contributive, attribution obligatoire, non exhaustive"
        },
        {
            "source_key": "culture_basilic_places",
            "source_family": "official_geocoded_csv_open_data",
            "recommended_cadence": "quarterly",
            "stale_after_days": 120,
            "critical_after_days": 240,
            "evidence_required": "metadata data.gouv, snapshot CSV Basilic, compte lieux, couverture departements, geocodage, caveat doublons BPE/Merimee",
            "primary_action": "php scripts/fetch_culture_basilic_places.php sources/culture-basilic-places.csv sources/culture-basilic-places-metadata.json sources/culture-basilic-places-fetch-summary.csv && php scripts/normalize_culture_basilic_places.php sources/culture-basilic-places.csv sources/culture-basilic-places-department-summary.csv sources/culture-basilic-places-type-summary.csv sources/culture-basilic-places-summary.csv sources/culture-basilic-places-metadata.json && php scripts/build_reference_public_culture_basilic_places_board.php sources/reference-public-culture-basilic-places-board.csv sources/reference-public-culture-basilic-places-board.html sources/reference-public-culture-basilic-places-board.md sources/reference-public-culture-basilic-places-board-summary.csv sources/culture-basilic-places-department-summary.csv sources/culture-basilic-places-type-summary.csv sources/culture-basilic-places-summary.csv",
            "fallback_action": "conserver dernier snapshot, bloquer claims culturels nouveaux et verifier doublons BPE/Merimee avant publication"
        },
        {
            "source_key": "cvl_cyclotourisme_label_zones",
            "source_family": "open_data_licence_ouverte",
            "recommended_cadence": "monthly",
            "stale_after_days": 45,
            "critical_after_days": 120,
            "evidence_required": "date Region Centre-Val de Loire, compte zones, communes, couverture, labels Accueil Velo/Loire a Velo",
            "primary_action": "rafraichir sources/cyclotourisme-zones-eligibles-labels.csv puis lancer scripts/normalize_cyclotourisme_label_zones.php",
            "fallback_action": "utiliser comme signal acces velo territorial, pas demande, usage reel, securite itineraire, etablissement labellise ou desserte finale domaine"
        },
        {
            "source_key": "datatourisme_cvl_wine_pois",
            "source_family": "official_open_data",
            "recommended_cadence": "daily",
            "stale_after_days": 7,
            "critical_after_days": 21,
            "evidence_required": "POI DATAtourisme Centre-Val de Loire, signaux vin/oenotourisme, producteurs, communes, caveats",
            "primary_action": "telecharger datatourisme-reg-cvl.csv depuis data.gouv puis lancer php scripts/normalize_datatourisme_cvl_wine_pois.php sources/datatourisme-reg-cvl.csv sources/datatourisme-cvl-wine-pois-normalized.csv sources/datatourisme-cvl-wine-pois-summary.csv",
            "fallback_action": "offre touristique declaree volontairement, pas exhaustivite, frequentation, qualite visite, demande ou revenu"
        },
        {
            "source_key": "datatourisme_fidelity_monitor",
            "source_family": "DATAtourisme/data.gouv",
            "recommended_cadence": "daily",
            "stale_after_days": 3,
            "critical_after_days": 15,
            "evidence_required": "ressources DATAtourisme, flux regionaux, fraicheur, couverture, source health",
            "primary_action": "mettre a jour sources/datatourisme-datagouv.json et sources/datatourisme-resource-snapshot.csv puis lancer scripts/monitor_datatourisme_freshness.php",
            "fallback_action": "fraicheur ressource ne prouve pas exhaustivite ni qualite des POI territoriaux"
        },
        {
            "source_key": "datatourisme_national_feed_monitor",
            "source_family": "DATAtourisme/data.gouv",
            "recommended_cadence": "daily",
            "stale_after_days": 3,
            "critical_after_days": 15,
            "evidence_required": "metadata data.gouv, ressources latest, formats, disponibilite, last_modified, exports regionaux CSV",
            "primary_action": "curl -sSL https://www.data.gouv.fr/api/1/datasets/datatourisme-la-base-nationale-des-donnees-publiques-dinformation-touristique-en-open-data/ -o sources/datatourisme-national-feed/datatourisme-datagouv-metadata.json puis php scripts/build_reference_public_datatourisme_national_feed_monitor.php sources/datatourisme-national-feed/datatourisme-datagouv-metadata.json sources/datatourisme-national-feed-resource-snapshot.csv sources/reference-public-datatourisme-national-feed-monitor.csv sources/reference-public-datatourisme-national-feed-monitor.html sources/reference-public-datatourisme-national-feed-monitor.md sources/reference-public-datatourisme-national-feed-monitor-summary.csv",
            "fallback_action": "monitor source uniquement, ne prouve pas exhaustivite, demande, frequentation, prix, disponibilite, satisfaction ou performance"
        },
        {
            "source_key": "datatourisme_oenotourism",
            "source_family": "open_data_licence_ouverte",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 30,
            "evidence_required": "snapshot CSV ou flux API, date lastupdate, filtres vin appliques",
            "primary_action": "php scripts/ingest_datatourisme_oenotourism.php file=sources/datatourisme-oenotourism-offers.csv min_relevance=55",
            "fallback_action": "marquer la source due et conserver le dernier snapshot cite"
        },
        {
            "source_key": "datatourisme_priority_wine_regions_pois",
            "source_family": "official_open_data",
            "recommended_cadence": "daily",
            "stale_after_days": 3,
            "critical_after_days": 15,
            "evidence_required": "POI DATAtourisme regions vin prioritaires, signaux vin/oenotourisme, createurs, communes, caveats",
            "primary_action": "telecharger datatourisme-reg-naq.csv datatourisme-reg-occ.csv datatourisme-reg-bfc.csv depuis data.gouv puis lancer php scripts/normalize_datatourisme_priority_wine_regions.php sources/datatourisme-priority-wine-regions/priority-regions.csv sources/datatourisme-priority-wine-regions-pois-normalized.csv sources/datatourisme-priority-wine-regions-pois-summary.csv",
            "fallback_action": "offre touristique declaree volontairement, pas exhaustivite, frequentation, qualite visite, demande, disponibilite, prix, satisfaction ou revenu"
        },
        {
            "source_key": "dgddi_vitivinicole_planted_surface_commune",
            "source_family": "official_open_data",
            "recommended_cadence": "annual",
            "stale_after_days": 395,
            "critical_after_days": 760,
            "evidence_required": "DGDDI/Douane superficies plantees en vigne par commune, surface ha, secret statistique, Champagne exclue",
            "primary_action": "telecharger le dernier XLSX superficies plantees depuis la page Douane vigne-et-vin puis lancer php scripts/normalize_dgddi_vitivinicole_planted_surface_commune.php sources/dgddi-vitivinicole/raw/planted_surface_commune_2025.xlsx sources/dgddi-vitivinicole-planted-surface-commune-normalized.csv sources/dgddi-vitivinicole-planted-surface-commune-summary.csv 2025",
            "fallback_action": "surface plantee uniquement, Champagne AOP exclue et cellules confidentielles masquees, pas production, demande, prix, revenu, qualite ou performance commerciale"
        },
        {
            "source_key": "dgddi_vitivinicole_production_department",
            "source_family": "official_open_data",
            "recommended_cadence": "annual",
            "stale_after_days": 395,
            "critical_after_days": 760,
            "evidence_required": "DGDDI/Douane production vitivinicole par departement, surfaces, declarations, AOP, IGP, VSIG, production hl",
            "primary_action": "telecharger le dernier XLSX production depuis la page Douane vigne-et-vin puis lancer php scripts/normalize_dgddi_vitivinicole_production_department.php sources/dgddi-vitivinicole/raw/production_department_2025.xlsx sources/dgddi-vitivinicole-production-department-normalized.csv sources/dgddi-vitivinicole-production-department-summary.csv 2025",
            "fallback_action": "preuve production/surface officielle, pas demande, ventes, prix, revenu, qualite, frequentation, satisfaction ou performance commerciale"
        },
        {
            "source_key": "dgddi_vitivinicole_stocks",
            "source_family": "official_open_data",
            "recommended_cadence": "annual",
            "stale_after_days": 395,
            "critical_after_days": 760,
            "evidence_required": "DGDDI/Douane stocks de vins a la production et au commerce, campagne, categories, origines, volumes hl",
            "primary_action": "telecharger le dernier XLSX stocks depuis la page Douane vigne-et-vin puis lancer php scripts/normalize_dgddi_vitivinicole_stocks.php sources/dgddi-vitivinicole/raw/stocks_2024_2025.xlsx sources/dgddi-vitivinicole-stocks-normalized.csv sources/dgddi-vitivinicole-stocks-summary.csv 2024-2025 2025-07-31",
            "fallback_action": "stock declare uniquement, pas demande, sell-through, ventes, prix, revenu, qualite ou performance commerciale"
        },
        {
            "source_key": "dgddi_vitivinicole_stocks_harvests",
            "source_family": "official_open_data",
            "recommended_cadence": "annual",
            "stale_after_days": 395,
            "critical_after_days": 760,
            "evidence_required": "metadata data.gouv, ressources XLS recoltes/stocks, template manuel, normaliseur, caveat DataDouane",
            "primary_action": "remplir sources/dgddi-vitivinicole-stocks-harvests-input.csv puis lancer scripts/normalize_dgddi_vitivinicole_supply.php",
            "fallback_action": "jeu historique ancien, verifier DataDouane pour statistiques recentes"
        },
        {
            "source_key": "douanes_nc8_nomenclature",
            "source_family": "open_data_licence_ouverte",
            "recommended_cadence": "annual",
            "stale_after_days": 400,
            "critical_after_days": 760,
            "evidence_required": "annee nomenclature, code NC8, libelle",
            "primary_action": "php scripts/ingest_macro_indicators.php kind=trade_nc8 file=sources/douanes-nc8-vin-prioritaires.csv",
            "fallback_action": "bloquer les lectures export fines si le mapping est absent"
        },
        {
            "source_key": "eambrosia_gi",
            "source_family": "institutional_publication",
            "recommended_cadence": "monthly",
            "stale_after_days": 45,
            "critical_after_days": 90,
            "evidence_required": "snapshot registre, statut GI, URL cahier des charges",
            "primary_action": "php scripts/ingest_eambrosia_gi.php file=sources/eambrosia-gi.csv",
            "fallback_action": "exporter la file de revue via api/reference_export.php?type=appellation_regulatory_gaps"
        },
        {
            "source_key": "eu_wine_market_observatory",
            "source_family": "institutional_publication",
            "recommended_cadence": "monthly",
            "stale_after_days": 60,
            "critical_after_days": 120,
            "evidence_required": "serie UE, periode, pays, indicateur",
            "primary_action": "php scripts/ingest_macro_indicators.php kind=macro_wine file=sources/eu-wine-market-observatory.csv source_key=eu_wine_market_observatory",
            "fallback_action": "marquer benchmark UE a qualifier"
        },
        {
            "source_key": "franceagrimer_bulk_wine_prices_guarded",
            "source_family": "FranceAgriMer/data.gouv",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "metadata data.gouv, URL Visionet, probe ressource, probe API tabulaire, schema prix vrac VSIG/IGP, export stable",
            "primary_action": "php scripts/fetch_franceagrimer_bulk_price_source_watch.php sources/franceagrimer-bulk-wine-prices/franceagrimer-bulk-prices-datagouv-metadata.json sources/franceagrimer-bulk-wine-prices/franceagrimer-bulk-prices-probe-summary.csv && php scripts/build_reference_public_franceagrimer_bulk_price_source_watch.php sources/franceagrimer-bulk-wine-prices/franceagrimer-bulk-prices-datagouv-metadata.json sources/reference-public-franceagrimer-bulk-price-source-watch.csv sources/reference-public-franceagrimer-bulk-price-source-watch.html sources/reference-public-franceagrimer-bulk-price-source-watch.md sources/reference-public-franceagrimer-bulk-price-source-watch-summary.csv sources/franceagrimer-bulk-wine-prices/franceagrimer-bulk-prices-probe-summary.csv",
            "fallback_action": "source prix gardee tant que Visionet/API tabulaire ne fournit pas export stable, pas KPI prix public"
        },
        {
            "source_key": "franceagrimer_campagne_viticulture",
            "source_family": "institutional_publication",
            "recommended_cadence": "weekly",
            "stale_after_days": 21,
            "critical_after_days": 45,
            "evidence_required": "semaine campagne, categorie, URL publication, template export manuel, normaliseur",
            "primary_action": "remplir sources/franceagrimer-prices-input.csv puis lancer scripts/normalize_franceagrimer_bulk_prices.php",
            "fallback_action": "afficher prix vrac n/a plutot qu'un signal ancien"
        },
        {
            "source_key": "hve_certified_estates",
            "source_family": "official_open_data",
            "recommended_cadence": "annual",
            "stale_after_days": 395,
            "critical_after_days": 760,
            "evidence_required": "metadata data.gouv, CSV officiel, normaliseur HVE, schema, filtre vin textuel",
            "primary_action": "lancer scripts/normalize_hve_certified_estates.php puis rapprocher domaines Winerix/Sirene/BAN",
            "fallback_action": "annuaire volontaire, seules exploitations ayant accepte de figurer, filtrage vin a relire"
        },
        {
            "source_key": "inao_aoc_aop_commune_areas",
            "source_family": "open_data_licence_ouverte",
            "recommended_cadence": "monthly",
            "stale_after_days": 45,
            "critical_after_days": 90,
            "evidence_required": "date mise a jour data.gouv, snapshot CSV, compte lignes, encodage controle",
            "primary_action": "php scripts/ingest_inao_aoc_aop_communes.php file=sources/inao-aoc-aop-communes.csv",
            "fallback_action": "croiser avec appellations/eAmbrosia et signaler les libelles non matches"
        },
        {
            "source_key": "inao_siqo_products",
            "source_family": "open_data_licence_ouverte",
            "recommended_cadence": "monthly",
            "stale_after_days": 45,
            "critical_after_days": 90,
            "evidence_required": "date extraction SIQO, compte produits, statuts publies, filtre vin",
            "primary_action": "php scripts/ingest_inao_siqo_products.php file=sources/inao-siqo-products.csv",
            "fallback_action": "croiser produits SIQO avec aires INAO et eAmbrosia avant preuve complete"
        },
        {
            "source_key": "insee_bpe_equipment",
            "source_family": "Insee",
            "recommended_cadence": "annual",
            "stale_after_days": 400,
            "critical_after_days": 730,
            "evidence_required": "base permanente equipements, tourisme, transports, culture loisirs, commerces, services, denombrement",
            "primary_action": "mettre a jour sources/insee-bpe-2024-counts.zip et normaliser scripts/normalize_insee_bpe_equipment.php",
            "fallback_action": "presence equipements, ne mesure pas qualite frequentation satisfaction ni disponibilite"
        },
        {
            "source_key": "insee_hebergements_touristiques",
            "source_family": "open_data_licence_ouverte",
            "recommended_cadence": "quarterly",
            "stale_after_days": 120,
            "critical_after_days": 240,
            "evidence_required": "millesime INSEE, URL, champ indicateur",
            "primary_action": "php scripts/ingest_macro_indicators.php kind=oenotourism file=sources/insee-hebergements-touristiques-2024.csv",
            "fallback_action": "ne pas extrapoler localement si le millesime manque"
        },
        {
            "source_key": "insee_tourism_capacity_communes",
            "source_family": "open_data_licence_ouverte",
            "recommended_cadence": "annual",
            "stale_after_days": 400,
            "critical_after_days": 760,
            "evidence_required": "CSV Insee DS_TOUR_CAP, millesime, GEO_OBJECT=COM, compte communes",
            "primary_action": "php scripts/ingest_insee_tourism_capacity_communes.php file=sources/insee-tourism-capacity-communes-2026.csv",
            "fallback_action": "publier comme capacite d accueil officielle, pas comme frequentation ni motivation vin"
        },
        {
            "source_key": "insee_tourism_occupancy",
            "source_family": "official_open_data",
            "recommended_cadence": "monthly",
            "stale_after_days": 45,
            "critical_after_days": 120,
            "evidence_required": "frequentation hebergements, nuitees, arrivees, taux occupation, demande touristique",
            "primary_action": "rafraichir sources/insee-tourism-occupancy.zip puis lancer scripts/normalize_insee_tourism_occupancy.php",
            "fallback_action": "demande touristique generale, pas attribution vin sans rapprochement offre/territoire"
        },
        {
            "source_key": "kpi_evidence",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "citations, sources, confiance, limites",
            "primary_action": "verifier api/reference_export.php?type=kpi_evidence&format=md",
            "fallback_action": "ne pas publier de citation sans URL source"
        },
        {
            "source_key": "kpi_pack",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "definition KPI runtime, valeurs disponibles, fallback DB",
            "primary_action": "verifier app/kpi_pack.php et api/reference_export.php?type=kpi_pack",
            "fallback_action": "afficher n/a ou fallback si DB indisponible"
        },
        {
            "source_key": "local_business_profiles",
            "source_family": "internal_or_imported",
            "recommended_cadence": "monthly",
            "stale_after_days": 45,
            "critical_after_days": 90,
            "evidence_required": "provenance, champs enrichis, date import",
            "primary_action": "php scripts/ingest_import_profiles.php",
            "fallback_action": "ne pas exposer les attributs non gouvernes"
        },
        {
            "source_key": "local_wine_catalog",
            "source_family": "internal_or_imported",
            "recommended_cadence": "monthly",
            "stale_after_days": 45,
            "critical_after_days": 90,
            "evidence_required": "provenance amont, nombre lignes, date import",
            "primary_action": "php scripts/ingest_import_profiles.php",
            "fallback_action": "garder les chiffres comme signal Winerix interne"
        },
        {
            "source_key": "merimee_heritage_monuments",
            "source_family": "Ministere de la Culture/data.gouv",
            "recommended_cadence": "monthly",
            "stale_after_days": 45,
            "critical_after_days": 120,
            "evidence_required": "monuments historiques, patrimoine protege, commune, protection, coordonnees, signal culturel",
            "primary_action": "mettre a jour sources/merimee-monuments.csv puis normaliser scripts/normalize_merimee_heritage_monuments.php",
            "fallback_action": "patrimoine protege, ne mesure pas frequentation ouverture au public ni impact oenotouristique"
        },
        {
            "source_key": "oiv_world_wine_sector",
            "source_family": "institutional_publication",
            "recommended_cadence": "annual",
            "stale_after_days": 400,
            "critical_after_days": 760,
            "evidence_required": "rapport OIV, annee, indicateur, unite",
            "primary_action": "php scripts/ingest_macro_indicators.php kind=macro_wine file=sources/oiv.csv source_key=oiv_world_wine_sector",
            "fallback_action": "conserver uniquement comme contexte historique"
        },
        {
            "source_key": "openagenda_wine_events",
            "source_family": "OpenAgenda/data.gouv",
            "recommended_cadence": "daily",
            "stale_after_days": 3,
            "critical_after_days": 15,
            "evidence_required": "evenements publics futurs, vin, vignoble, degustation, oenotourisme, geolocalisation, agenda",
            "primary_action": "php scripts/fetch_openagenda_wine_events.php sources/openagenda-wine-events-sample.json sources/openagenda-wine-events-fetch-summary.csv 2026-07-06 puis php scripts/normalize_openagenda_wine_events.php sources/openagenda-wine-events-sample.json sources/openagenda-wine-events-normalized.csv 35 puis php scripts/summarize_openagenda_wine_events.php sources/openagenda-wine-events-normalized.csv sources/openagenda-wine-events-summary.csv",
            "fallback_action": "source evenementielle contributive, couverture non exhaustive et frequentation non mesuree"
        },
        {
            "source_key": "qualite_tourisme_establishments",
            "source_family": "official_open_data",
            "recommended_cadence": "monthly",
            "stale_after_days": 45,
            "critical_after_days": 120,
            "evidence_required": "label qualite tourisme, accueil, prestations, geocodage, signal vin textuel",
            "primary_action": "rafraichir sources/qualite-tourisme-establishments.csv puis lancer scripts/normalize_qualite_tourisme_establishments.php",
            "fallback_action": "label accueil, pas frequentation ni lien vin sans rapprochement"
        },
        {
            "source_key": "reference_activation_outputs_manifest",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 7,
            "critical_after_days": 30,
            "evidence_required": "manifest outputs activation, fichiers normalises, kpi, scorecards, jobs lourds restants",
            "primary_action": "verifier api/get_reference_activation_outputs_manifest.php?format=md",
            "fallback_action": "manifest outputs, ne prouve pas import db ni validation endpoint"
        },
        {
            "source_key": "reference_api_manifest",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "manifeste API, endpoints, formats, personas, KPI",
            "primary_action": "verifier api/get_reference_api_manifest.php?format=md",
            "fallback_action": "manifeste declaratif, verifier le Publication Gate avant usage externe"
        },
        {
            "source_key": "reference_authority_index",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "sources autorite, kpi servis, statut pipeline, score maturite, prochaines actions",
            "primary_action": "verifier api/get_reference_authority_index.php?format=md",
            "fallback_action": "index autorite, ne remplace pas normalisation runtime ni audit couverture"
        },
        {
            "source_key": "reference_citation_kit",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "citations sources, licences, usages, caveats",
            "primary_action": "verifier api/get_reference_citation_kit.php?format=md",
            "fallback_action": "verifier URL source et Publication Gate avant diffusion externe"
        },
        {
            "source_key": "reference_claim_guard",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "claims autorises, claims interdits, modes KPI, etats source, canaux",
            "primary_action": "verifier api/get_reference_claim_guard.php?format=md",
            "fallback_action": "garde-fou editorial, ne remplace pas revue juridique/metier ni Publication Gate final"
        },
        {
            "source_key": "reference_copy_studio",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "briefs persona, KPI, caveats, exports",
            "primary_action": "verifier api/get_reference_copy_studio.php?format=md",
            "fallback_action": "remplacer les placeholders par valeurs dynamiques"
        },
        {
            "source_key": "reference_dashboard_blueprint",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "sections UI, KPI slots, produits, directions visuelles",
            "primary_action": "verifier api/get_reference_dashboard_blueprint.php?format=md",
            "fallback_action": "blueprint sans valeurs dynamiques"
        },
        {
            "source_key": "reference_data_contracts",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "contrats API, champs requis, formats, quality gates, caveats",
            "primary_action": "verifier api/get_reference_data_contracts.php?format=md",
            "fallback_action": "ne remplace pas tests runtime ni validation des imports"
        },
        {
            "source_key": "reference_data_product_index",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "sommaire produits, priorites, stages, exports",
            "primary_action": "verifier api/get_reference_data_product_index.php?format=md",
            "fallback_action": "index de navigation, pas preuve de fraicheur"
        },
        {
            "source_key": "reference_data_room_index",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "sommaire data room, collections, produits, ordre de copie, caveats",
            "primary_action": "verifier api/get_reference_data_room_index.php?format=md",
            "fallback_action": "index de navigation, verifier les exports produits et le Publication Gate avant partage externe"
        },
        {
            "source_key": "reference_embed_kit",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "blocs HTML Markdown CSV JS, tokens CSS, regles publication",
            "primary_action": "verifier api/get_reference_embed_kit.php?format=md",
            "fallback_action": "snippets de presentation a alimenter avec endpoints actifs et Publication Gate"
        },
        {
            "source_key": "reference_integration_guide",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "guide integration API, snippets curl/fetch/PHP, endpoints prioritaires",
            "primary_action": "verifier api/get_reference_integration_guide.php?format=md",
            "fallback_action": "conserver les caveats et verifier le Publication Gate avant affichage externe"
        },
        {
            "source_key": "reference_kpi_aggregation_rules",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "regles aggregation KPI, mailles territoire, denominateurs, temporalites, privacy",
            "primary_action": "verifier api/get_reference_kpi_aggregation_rules.php?format=md",
            "fallback_action": "regles methodologiques, ne prouvent pas normalisation ni import"
        },
        {
            "source_key": "reference_kpi_card_deck",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "cartes KPI, style, placeholders, caveats",
            "primary_action": "verifier api/get_reference_kpi_card_deck.php?format=md",
            "fallback_action": "remplacer les placeholders avant publication"
        },
        {
            "source_key": "reference_kpi_cards",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "cartes KPI hydratees ou fallback explicite",
            "primary_action": "verifier api/get_reference_kpi_cards.php?format=md",
            "fallback_action": "si DB indisponible, garder fallback visible"
        },
        {
            "source_key": "reference_kpi_copy_pack",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "snippets kpi copiables, wording public, sources, caveats, placeholders",
            "primary_action": "verifier api/get_reference_kpi_copy_pack.php?format=md",
            "fallback_action": "pack copie, ne remplace pas certificat publication ni controle licence"
        },
        {
            "source_key": "reference_kpi_dependency_map",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "dependances KPI, composants, sources, outputs normalisation, gates",
            "primary_action": "verifier api/get_reference_kpi_dependency_map.php?format=md",
            "fallback_action": "carte logique, ne verifie pas existence fichiers ni qualite donnees"
        },
        {
            "source_key": "reference_kpi_dictionary",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "definitions, calculs, sources, caveats",
            "primary_action": "verifier api/get_reference_kpi_dictionary.php?format=md",
            "fallback_action": "ne remplace pas les valeurs runtime"
        },
        {
            "source_key": "reference_kpi_publication_certificates",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "recus publication KPI, score, badge, sources, regles aggregation, caveats",
            "primary_action": "verifier api/get_reference_kpi_publication_certificates.php?format=md",
            "fallback_action": "certificat logique, ne prouve pas imports DB ni revue metier"
        },
        {
            "source_key": "reference_kpi_scorecard",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "familles KPI, niveaux aggregation, exports, caveats",
            "primary_action": "verifier api/get_reference_kpi_scorecard.php?format=md",
            "fallback_action": "ne remplace pas le Publication Gate"
        },
        {
            "source_key": "reference_launch_readiness",
            "source_family": "internal_reference_product",
            "recommended_cadence": "daily",
            "stale_after_days": 7,
            "critical_after_days": 21,
            "evidence_required": "checklist launch, preuves, risques, actions, go/no-go",
            "primary_action": "verifier api/get_reference_launch_readiness.php?format=md",
            "fallback_action": "ne remplace pas imports DB, validation runtime ni validation metier finale"
        },
        {
            "source_key": "reference_live_kpi_board",
            "source_family": "internal_reference_product",
            "recommended_cadence": "daily",
            "stale_after_days": 3,
            "critical_after_days": 10,
            "evidence_required": "modes affichage KPI, live, partial, demo, blocked, copy caveat",
            "primary_action": "verifier api/get_reference_live_kpi_board.php?format=md",
            "fallback_action": "mode affichage logique, ne remplace pas revue metier finale ni Publication Gate externe"
        },
        {
            "source_key": "reference_narrative_deck",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "slides, KPI slots, notes orateur, caveats",
            "primary_action": "verifier api/get_reference_narrative_deck.php?format=md",
            "fallback_action": "injecter valeurs dynamiques avant partage externe"
        },
        {
            "source_key": "reference_normalization_quality_gates",
            "source_family": "internal_reference_product",
            "recommended_cadence": "daily",
            "stale_after_days": 3,
            "critical_after_days": 10,
            "evidence_required": "quality gates CSV normalises, schema, output, lignes, source_key, caveat",
            "primary_action": "verifier api/get_reference_normalization_quality_gates.php?format=md",
            "fallback_action": "QA structurelle, pas revue metier ni validation import DB"
        },
        {
            "source_key": "reference_normalization_readiness",
            "source_family": "internal_reference_product",
            "recommended_cadence": "daily",
            "stale_after_days": 3,
            "critical_after_days": 10,
            "evidence_required": "readiness fichiers normalisation, inputs, outputs, schemas, statut pret/manquant",
            "primary_action": "verifier api/get_reference_normalization_readiness.php?format=md",
            "fallback_action": "verifie existence fichiers, pas qualite contenu ni imports DB"
        },
        {
            "source_key": "reference_normalization_runbook",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "runbook normalisation, commandes, inputs, outputs, schemas, gates, caveats",
            "primary_action": "verifier api/get_reference_normalization_runbook.php?format=md",
            "fallback_action": "runbook execution, ne prouve pas scripts lances ni imports DB"
        },
        {
            "source_key": "reference_oenotourism_demand_offer",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "lecture offre demande oenotourisme, caveats, blocs copiables, score guide",
            "primary_action": "verifier api/get_reference_oenotourism_demand_offer.php?format=md",
            "fallback_action": "pack de lecture, ne remplace pas normalisation ni Publication Gate"
        },
        {
            "source_key": "reference_page_publication_kit",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "kit publication page, sections, checklist, certificats KPI, footnotes, copy blocks",
            "primary_action": "verifier api/get_reference_page_publication_kit.php?format=md",
            "fallback_action": "kit assemblage, ne prouve pas normalisation imports DB tests ou revues"
        },
        {
            "source_key": "reference_product_catalog",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "catalogue produit, matrice publication, endpoints, caveats",
            "primary_action": "verifier app/reference_product_catalog.php",
            "fallback_action": "publier les exports avec mention catalogue interne"
        },
        {
            "source_key": "reference_products",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "catalogue produit, exports, persona, caveats, priorites",
            "primary_action": "verifier app/reference_product_catalog.php et /referentiels/produits",
            "fallback_action": "marquer le produit interne comme a relire si le catalogue change"
        },
        {
            "source_key": "reference_profile_proof_cards",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 7,
            "critical_after_days": 30,
            "evidence_required": "proof cards profils, bpe, merimee, bnlc, preuves multi-sources, copy lines",
            "primary_action": "lancer scripts/build_reference_profile_proof_cards.php puis verifier api/get_reference_profile_proof_cards.php?format=md",
            "fallback_action": "proof cards, ne prouvent pas exhaustivite terrain ni approbation finale"
        },
        {
            "source_key": "reference_profile_publication_queue",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 7,
            "critical_after_days": 30,
            "evidence_required": "queue publication profils, statuts editoriaux, preuve multi-source, gates, actions",
            "primary_action": "lancer scripts/build_reference_profile_publication_queue.php puis verifier api/get_reference_profile_publication_queue.php?format=md",
            "fallback_action": "queue editoriale, ne vaut pas approbation finale import db ou validation endpoint"
        },
        {
            "source_key": "reference_public_api_recherche_entreprises_wine_actor_board",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "board public acteurs economiques vin officiels, densite culture vigne, vinification, priorisation departements, guardrails",
            "primary_action": "php scripts/build_reference_public_api_recherche_entreprises_wine_actor_board.php sources/reference-public-api-recherche-entreprises-wine-actor-board.csv sources/reference-public-api-recherche-entreprises-wine-actor-board.html sources/reference-public-api-recherche-entreprises-wine-actor-board.md sources/reference-public-api-recherche-entreprises-wine-actor-board-summary.csv",
            "fallback_action": "signal economique officiel, pas inventaire exhaustif, demande, frequentation, prix, satisfaction, revenu ou performance touristique"
        },
        {
            "source_key": "reference_public_classified_accommodation_board",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "board hebergements classes, capacite, qualite, typologies, overlap DATAtourisme CVL, copy blocks",
            "primary_action": "php scripts/build_reference_public_classified_accommodation_board.php sources/reference-public-classified-accommodation-board.csv sources/reference-public-classified-accommodation-board.html sources/reference-public-classified-accommodation-board.md sources/reference-public-classified-accommodation-board-summary.csv",
            "fallback_action": "contexte hebergement classe, pas demande, frequentation, disponibilite, prix, satisfaction ou lien vin par defaut"
        },
        {
            "source_key": "reference_public_data_room",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "data room publique, assets recommandes, endpoints, packs preuve/copie/source/caveat",
            "primary_action": "php scripts/build_reference_public_data_room.php sources/reference-public-data-room.csv sources/reference-public-data-room.html sources/reference-public-data-room.md sources/reference-public-data-room-summary.csv",
            "fallback_action": "route vers assets source-backed, pas preuve terrain, demande, frequentation, revenu, satisfaction ou performance commerciale"
        },
        {
            "source_key": "reference_public_datatourisme_cvl_wine_offer_board",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "board public offre oenotouristique CVL, KPI DATAtourisme, communes, producteurs, copy blocks",
            "primary_action": "php scripts/build_reference_public_datatourisme_cvl_wine_offer_board.php sources/reference-public-datatourisme-cvl-wine-offer-board.csv sources/reference-public-datatourisme-cvl-wine-offer-board.html sources/reference-public-datatourisme-cvl-wine-offer-board.md sources/reference-public-datatourisme-cvl-wine-offer-board-summary.csv",
            "fallback_action": "contexte offre DATAtourisme, pas exhaustivite, demande, frequentation, qualite visite ou revenu"
        },
        {
            "source_key": "reference_public_datatourisme_priority_wine_regions_board",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "board public offre oenotouristique regions vin prioritaires, KPI DATAtourisme, regions, communes, createurs, copy blocks",
            "primary_action": "php scripts/build_reference_public_datatourisme_priority_wine_regions_board.php sources/reference-public-datatourisme-priority-wine-regions-board.csv sources/reference-public-datatourisme-priority-wine-regions-board.html sources/reference-public-datatourisme-priority-wine-regions-board.md sources/reference-public-datatourisme-priority-wine-regions-board-summary.csv",
            "fallback_action": "contexte offre DATAtourisme, pas exhaustivite, demande, frequentation, disponibilite, prix, satisfaction, qualite visite ou revenu"
        },
        {
            "source_key": "reference_public_dgddi_vitivinicole_production_board",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "board public DGDDI production vitivinicole, KPI volumes, surfaces, declarations, mix categorie, top departements",
            "primary_action": "php scripts/build_reference_public_dgddi_vitivinicole_production_board.php sources/reference-public-dgddi-vitivinicole-production-board.csv sources/reference-public-dgddi-vitivinicole-production-board.html sources/reference-public-dgddi-vitivinicole-production-board.md sources/reference-public-dgddi-vitivinicole-production-board-summary.csv",
            "fallback_action": "surface/production uniquement, pas preuve demande touristique, ventes, prix, revenu, qualite ou performance commerciale"
        },
        {
            "source_key": "reference_public_dgddi_vitivinicole_supply_depth_board",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "board public DGDDI supply depth, production, surfaces communales, stocks production et commerce",
            "primary_action": "php scripts/build_reference_public_dgddi_vitivinicole_supply_depth_board.php sources/reference-public-dgddi-vitivinicole-supply-depth-board.csv sources/reference-public-dgddi-vitivinicole-supply-depth-board.html sources/reference-public-dgddi-vitivinicole-supply-depth-board.md sources/reference-public-dgddi-vitivinicole-supply-depth-board-summary.csv",
            "fallback_action": "supply officiel uniquement, pas preuve demande touristique, ventes, prix, revenu, qualite, frequentation, satisfaction ou performance commerciale"
        },
        {
            "source_key": "reference_public_distribution",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "distribution publique, audiences, bundles, ordre envoi, emails copiables, risques",
            "primary_action": "verifier api/get_reference_public_distribution.php?format=md",
            "fallback_action": "pack distribution, ne prouve pas execution endpoints ni revue juridique"
        },
        {
            "source_key": "reference_public_footnotes",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "footnotes publiques, sources, licences, KPI relies, caveats, ODbL",
            "primary_action": "verifier api/get_reference_public_footnotes.php?format=md",
            "fallback_action": "footnotes publication, ne remplacent pas revue juridique ni verification licence"
        },
        {
            "source_key": "reference_public_inao_wine_appellation_territory_pack",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "pack public INAO appellations viticoles par territoire, communes, liens commune-aire, copy blocks",
            "primary_action": "php scripts/build_reference_public_inao_wine_appellation_territory_pack.php sources/reference-public-inao-wine-appellation-territory-pack.csv sources/reference-public-inao-wine-appellation-territory-pack.html sources/reference-public-inao-wine-appellation-territory-pack.md sources/reference-public-inao-wine-appellation-territory-pack-summary.csv",
            "fallback_action": "preuve identite vin officielle, pas demande, frequentation, disponibilite, prix, satisfaction, performance ou validation juridique"
        },
        {
            "source_key": "reference_public_low_carbon_access_board",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "board acces bas-carbone, rail, velo, covoiturage, signaux, caveats, copy blocks",
            "primary_action": "php scripts/build_reference_public_low_carbon_access_board.php sources/reference-public-low-carbon-access-board.csv sources/reference-public-low-carbon-access-board.html sources/reference-public-low-carbon-access-board.md sources/reference-public-low-carbon-access-board-summary.csv",
            "fallback_action": "board de contexte acces, pas preuve de demande, temps de trajet, frequence, usage reel ou desserte finale domaine"
        },
        {
            "source_key": "reference_public_low_carbon_access_leaderboard",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "leaderboard acces bas-carbone, scores departements, composants rail velo covoiturage, copy blocks",
            "primary_action": "php scripts/build_reference_public_low_carbon_access_leaderboard.php sources/reference-public-low-carbon-access-leaderboard.csv sources/reference-public-low-carbon-access-leaderboard.html sources/reference-public-low-carbon-access-leaderboard.md sources/reference-public-low-carbon-access-leaderboard-summary.csv 40",
            "fallback_action": "classement infrastructure/contexte, pas preuve de demande, temps de trajet, frequence, usage reel ou desserte finale domaine"
        },
        {
            "source_key": "reference_public_one_pager",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "one-pager public externe, positionnement, chiffres heros, source moat, qualite, partner ask",
            "primary_action": "php scripts/build_reference_public_one_pager.php sources/reference-public-one-pager.csv sources/reference-public-one-pager.html sources/reference-public-one-pager.md sources/reference-public-one-pager-summary.csv",
            "fallback_action": "resume des assets source-backed, pas preuve terrain, demande, frequentation, revenu, satisfaction ou performance commerciale"
        },
        {
            "source_key": "reference_public_openagenda_wine_event_board",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "board public OpenAgenda evenements futurs vin, communes, agendas, pertinence, guardrails",
            "primary_action": "php scripts/build_reference_public_openagenda_wine_event_board.php sources/reference-public-openagenda-wine-event-board.csv sources/reference-public-openagenda-wine-event-board.html sources/reference-public-openagenda-wine-event-board.md sources/reference-public-openagenda-wine-event-board-summary.csv",
            "fallback_action": "contexte evenementiel contributif, pas exhaustivite, demande, frequentation, prix, satisfaction, revenu ou performance touristique"
        },
        {
            "source_key": "reference_public_reference_coverage_board",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "board public couverture reference par pilier, scores, assets recommandes, gaps source, caveats",
            "primary_action": "php scripts/build_reference_public_reference_coverage_board.php sources/reference-public-reference-coverage-board.csv sources/reference-public-reference-coverage-board.html sources/reference-public-reference-coverage-board.md sources/reference-public-reference-coverage-board-summary.csv",
            "fallback_action": "mesure readiness source/produit et largeur reference, pas preuve terrain, demande, frequentation, revenu, satisfaction ou performance commerciale"
        },
        {
            "source_key": "reference_public_source_partner_outreach_pack",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "messages partenaires source, validation attribution, refresh, caveats, copy emails",
            "primary_action": "php scripts/build_reference_public_source_partner_outreach_pack.php sources/reference-public-source-partner-outreach-pack.csv sources/reference-public-source-partner-outreach-pack.html sources/reference-public-source-partner-outreach-pack.md sources/reference-public-source-partner-outreach-pack-summary.csv",
            "fallback_action": "workflow relation source, pas accord partenaire, endorsement, validation juridique ou preuve locale de demande"
        },
        {
            "source_key": "reference_public_source_portfolio_board",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "board portefeuille source, score fidelite, priorite relationnelle, usages KPI, copy blocks",
            "primary_action": "php scripts/build_reference_public_source_portfolio_board.php sources/reference-public-source-portfolio-board.csv sources/reference-public-source-portfolio-board.html sources/reference-public-source-portfolio-board.md sources/reference-public-source-portfolio-board-summary.csv",
            "fallback_action": "board gouvernance/relation source, pas accord partenaire, validation legale, preuve locale, performance terrain ou engagement producteur"
        },
        {
            "source_key": "reference_public_territory_decision_scoreboard",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "scoreboard decision territoire, routes utilisateur, KPI, assets, endpoints, caveats",
            "primary_action": "php scripts/build_reference_public_territory_decision_scoreboard.php sources/reference-public-territory-decision-scoreboard.csv sources/reference-public-territory-decision-scoreboard.html sources/reference-public-territory-decision-scoreboard.md sources/reference-public-territory-decision-scoreboard-summary.csv",
            "fallback_action": "route des preuves et assets, ne remplace pas validation locale, juridique, metier ou execution terrain"
        },
        {
            "source_key": "reference_public_territory_hospitality_stack_board",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "stack hospitalite territoire, hebergements classes, DATAtourisme vin, inclusion, copy blocks",
            "primary_action": "php scripts/build_reference_public_territory_hospitality_stack_board.php sources/reference-public-territory-hospitality-stack-board.csv sources/reference-public-territory-hospitality-stack-board.html sources/reference-public-territory-hospitality-stack-board.md sources/reference-public-territory-hospitality-stack-board-summary.csv",
            "fallback_action": "contexte offre/readiness hospitalite, pas demande, frequentation, disponibilite, prix, satisfaction, qualite visite ou performance partenaire"
        },
        {
            "source_key": "reference_public_vignobles_decouvertes_destination_board",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "board public Vignobles & Decouvertes, destinations, KPI nationaux, reseau label, caveats",
            "primary_action": "php scripts/build_reference_public_vignobles_decouvertes_destination_board.php sources/reference-public-vignobles-decouvertes-destination-board.csv sources/reference-public-vignobles-decouvertes-destination-board.html sources/reference-public-vignobles-decouvertes-destination-board.md sources/reference-public-vignobles-decouvertes-destination-board-summary.csv",
            "fallback_action": "label destination et benchmark France, pas demande locale, frequentation, depense, satisfaction, performance ou prestataires geocodes exhaustifs"
        },
        {
            "source_key": "reference_public_wine_tourism_kpi_atlas",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "atlas public KPI vin/oenotourisme, routes besoin utilisateur, assets, endpoints, copy blocks, sources, caveats",
            "primary_action": "php scripts/build_reference_public_wine_tourism_kpi_atlas.php sources/reference-public-wine-tourism-kpi-atlas.csv sources/reference-public-wine-tourism-kpi-atlas.html sources/reference-public-wine-tourism-kpi-atlas.md sources/reference-public-wine-tourism-kpi-atlas-summary.csv",
            "fallback_action": "atlas de decision, ne remplace pas validation locale, juridique, metier, terrain ou Publication Gate"
        },
        {
            "source_key": "reference_publication_gate",
            "source_family": "internal_reference_product",
            "recommended_cadence": "daily",
            "stale_after_days": 7,
            "critical_after_days": 21,
            "evidence_required": "decision publier/annoter/bloquer, erreurs, warnings",
            "primary_action": "verifier api/get_reference_publication_gate.php?format=md",
            "fallback_action": "controle readiness, pas validation metier finale"
        },
        {
            "source_key": "reference_publishable_snippets",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "blocs publication, KPI slots, CTA, caveats",
            "primary_action": "verifier api/get_reference_publishable_snippets.php?format=md",
            "fallback_action": "injecter les valeurs dynamiques avant diffusion"
        },
        {
            "source_key": "reference_publishable_territory_page_pack",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "blueprints page territoire, sections, champs cms, gates, blocs copiables",
            "primary_action": "verifier api/get_reference_publishable_territory_page.php?format=md",
            "fallback_action": "pack page, ne remplace pas alimentation kpi certifiee ni controles runtime"
        },
        {
            "source_key": "reference_publishable_territory_profiles",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 7,
            "critical_after_days": 30,
            "evidence_required": "profils territoire publiables, labels source, mailles lisibles, scorecards, confiance, caveats",
            "primary_action": "lancer scripts/build_reference_territory_label_registry.php puis scripts/build_reference_publishable_territory_profiles.php",
            "fallback_action": "profils brouillon, demandent revue labels preuves sources et approbation finale"
        },
        {
            "source_key": "reference_release_notes",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "notes de version, messages partageables, limites, promesses interdites",
            "primary_action": "verifier api/get_reference_release_notes.php?format=md",
            "fallback_action": "ne remplace pas le Publication Gate ni la validation runtime"
        },
        {
            "source_key": "reference_score_hydration",
            "source_family": "internal_reference_product",
            "recommended_cadence": "daily",
            "stale_after_days": 3,
            "critical_after_days": 10,
            "evidence_required": "hydratation scores, dependances KPI, Quality Gates, live/partial/pipeline",
            "primary_action": "verifier api/get_reference_score_hydration.php?format=md",
            "fallback_action": "hydratation logique, ne remplace pas revue metier ni import DB"
        },
        {
            "source_key": "reference_source_acquisition_sprint",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "sprint acquisition source, gates acceptation, contacts producteurs, echantillons, decisions",
            "primary_action": "verifier api/get_reference_source_acquisition_sprint.php?format=md",
            "fallback_action": "sprint acquisition, ne garantit pas reponse producteur ni publiabilite juridique"
        },
        {
            "source_key": "reference_source_attributions",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "attributions sources, licences, obligations, wording public, caveats",
            "primary_action": "verifier api/get_reference_source_attributions.php?format=md",
            "fallback_action": "helper attribution, ne remplace pas revue juridique ni verification licence"
        },
        {
            "source_key": "reference_source_demand_backlog",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "backlog demande source, gaps utilisateurs, producteurs candidats, scoring, actions",
            "primary_action": "verifier api/get_reference_source_demand_backlog.php?format=md",
            "fallback_action": "backlog recherche source, ne prouve pas disponibilite ni publiabilite juridique"
        },
        {
            "source_key": "reference_source_fidelity",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "score source, tier, cadence, preuve, besoin utilisateur, action relation/source",
            "primary_action": "verifier api/get_reference_source_fidelity.php?format=md",
            "fallback_action": "score de gouvernance source, pas validation runtime des imports"
        },
        {
            "source_key": "reference_source_lineage",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "source->produit->KPI->exports->caveats, gaps gouvernance",
            "primary_action": "verifier api/get_reference_source_lineage.php?format=md",
            "fallback_action": "lineage declaratif, pas import DB effectif"
        },
        {
            "source_key": "reference_source_normalization_backlog",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "priorites normalisation, fichiers cibles, tables cibles, impact utilisateur, caveats",
            "primary_action": "verifier api/get_reference_source_normalization_backlog.php?format=md",
            "fallback_action": "backlog execution, ne prouve pas imports DB ni CSV normalises"
        },
        {
            "source_key": "reference_source_radar",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "radar nouvelles sources, scoring utilite, faisabilite, clarte juridique, prochaines actions",
            "primary_action": "verifier api/get_reference_source_radar.php?format=md",
            "fallback_action": "radar source, ne vaut pas autorisation ingestion ou redistribution"
        },
        {
            "source_key": "reference_source_relationships",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "relation sources, tiers, demandes producteurs, risques, messages copiables",
            "primary_action": "verifier api/get_reference_source_relationships.php?format=md",
            "fallback_action": "pack relationnel, ne garantit pas reponse producteur ni stabilite schema"
        },
        {
            "source_key": "reference_source_to_score_activation_queue",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 7,
            "critical_after_days": 30,
            "evidence_required": "file activation, sources recuperees, scripts, outputs attendus, scorecards, publication gates",
            "primary_action": "verifier api/get_reference_source_to_score_activation_queue.php?format=md",
            "fallback_action": "file execution, ne prouve pas scripts lances ni sorties certifiees"
        },
        {
            "source_key": "reference_story_builder",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "segments utilisateurs, storylines KPI, sources requises, snippets markdown",
            "primary_action": "verifier api/get_reference_story_builder.php?format=md",
            "fallback_action": "patrons narratifs a alimenter avec valeurs dynamiques et Publication Gate"
        },
        {
            "source_key": "reference_territory_brief",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "brief territoire, scores, sources, badges, blocs copiables, caveats",
            "primary_action": "verifier api/get_reference_territory_brief.php?format=md",
            "fallback_action": "brief de composition, ne remplace pas normalisation source ni Publication Gate"
        },
        {
            "source_key": "reference_territory_comparison",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "comparaison territoire, axes KPI, badges, caveats, exports benchmark, template input",
            "primary_action": "verifier api/get_reference_territory_comparison.php?format=md",
            "fallback_action": "comparaison de cadrage, remplacer placeholders par donnees normalisees"
        },
        {
            "source_key": "reference_territory_data_spine",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "spine territoire, mailles, cles, mappings sources, regles aggregation, sorties kpi",
            "primary_action": "verifier api/get_reference_territory_data_spine.php?format=md",
            "fallback_action": "spine regles, ne prouve pas normalisation effective ni controles geographiques"
        },
        {
            "source_key": "reference_territory_kpi_crosswalk",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "cles jointure, recettes KPI territoire, sources, quality gates, caveats",
            "primary_action": "verifier api/get_reference_territory_kpi_crosswalk.php?format=md",
            "fallback_action": "plan de rapprochement, ne prouve pas execution des jointures DB"
        },
        {
            "source_key": "reference_territory_kpi_formulas",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "formules KPI territoire, poids, sources, gates, regles normalisation",
            "primary_action": "verifier api/get_reference_territory_kpi_formulas.php?format=md",
            "fallback_action": "formules logiques, ne prouvent pas valeurs sources ni jointures DB"
        },
        {
            "source_key": "reference_territory_kpi_score_table",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 7,
            "critical_after_days": 30,
            "evidence_required": "scores kpi territoire, confidence, copy, caveats, score hydration",
            "primary_action": "lancer scripts/build_reference_territory_kpi_scores.php puis verifier api/get_reference_territory_kpi_scores.php?format=md",
            "fallback_action": "scores calcules, ne prouvent pas import db endpoint ou certification finale"
        },
        {
            "source_key": "reference_territory_kpi_scorecard_pack",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "scorecards kpi territoire, scores, layouts, wording, sources, caveats",
            "primary_action": "verifier api/get_reference_territory_kpi_scorecards.php?format=md",
            "fallback_action": "scorecards modeles, ne prouvent pas recalcul runtime ni normalisation executee"
        },
        {
            "source_key": "reference_territory_page_kit",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "sections page territoire, layouts, KPI slots, sources, snippet HTML, caveats",
            "primary_action": "verifier api/get_reference_territory_page_kit.php?format=md",
            "fallback_action": "kit de publication, valeurs a alimenter via endpoints actifs et Publication Gate"
        },
        {
            "source_key": "reference_territory_pilot_profiles",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 7,
            "critical_after_days": 30,
            "evidence_required": "profils pilotes territoire, score moyen, confidence, scorecards, copy, caveats",
            "primary_action": "lancer scripts/build_reference_territory_pilot_profiles.php puis verifier api/get_reference_territory_pilot_profiles.php?format=md",
            "fallback_action": "profils pilotes, ne prouvent pas import db endpoint noms publics verifies ou publication finale"
        },
        {
            "source_key": "reference_territory_publication_bundle",
            "source_family": "internal_reference_product",
            "recommended_cadence": "daily",
            "stale_after_days": 3,
            "critical_after_days": 10,
            "evidence_required": "bundle publication territoire, sections, live KPI, dependances, copy blocks",
            "primary_action": "verifier api/get_reference_territory_publication_bundle.php?format=md",
            "fallback_action": "bundle logique, ne remplace pas validation runtime ni Publication Gate externe"
        },
        {
            "source_key": "reference_territory_score_calculator",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "scores ponderes, composants demo, overrides query, plafond pipeline, gate logique",
            "primary_action": "verifier api/get_reference_territory_scores.php?format=md",
            "fallback_action": "calculateur logique, valeurs publiees a alimenter par sources actives"
        },
        {
            "source_key": "reference_territory_score_inputs",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "templates inputs scores, composants 0-100, gates, statuts source, urls score",
            "primary_action": "verifier api/get_reference_territory_score_inputs.php?format=md",
            "fallback_action": "templates demo/cadrage, remplacer par valeurs sources actives"
        },
        {
            "source_key": "reference_territory_scorecard_public_bundle",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "bundle public scorecards, blocs copiables, page, deck, crm, citation, caveats",
            "primary_action": "verifier api/get_reference_territory_scorecard_public_bundle.php?format=md",
            "fallback_action": "bundle copy, ne remplace pas valeurs certifiees ni validation runtime"
        },
        {
            "source_key": "reference_territory_share_pack",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "textes partageables territoire, canaux, caveats, copy blocks",
            "primary_action": "verifier api/get_reference_territory_share_pack.php?format=md",
            "fallback_action": "pack editorial, ne remplace pas Publication Gate ni revue metier finale"
        },
        {
            "source_key": "reference_territory_source_fact_table",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 7,
            "critical_after_days": 30,
            "evidence_required": "faits territoire source kpi, sorties normalisees, score hydration, caveats",
            "primary_action": "lancer scripts/build_reference_territory_source_facts.php puis verifier api/get_reference_territory_source_facts.php?format=md",
            "fallback_action": "table faits, ne prouve pas import db ni certification finale des scores"
        },
        {
            "source_key": "reference_trust_badges",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "badges confiance, modes KPI, etats source, gate publication, html css",
            "primary_action": "verifier api/get_reference_trust_badges.php?format=md",
            "fallback_action": "badge visuel, ne remplace pas Claim Guard ni Publication Gate final"
        },
        {
            "source_key": "reference_user_feedback",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "feedback utilisateurs, copy intent, trust gap, source demand, friction publication",
            "primary_action": "verifier api/get_reference_user_feedback.php?format=md",
            "fallback_action": "pack collecte feedback, ne remplace pas tracking produit ni analyse statistique"
        },
        {
            "source_key": "reference_user_need_kpi_map",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "besoins utilisateurs, kpi primaires, sources requises, gates, formats copiables",
            "primary_action": "verifier api/get_reference_user_need_kpi_map.php?format=md",
            "fallback_action": "cartographie besoin, ne prouve pas publiabilite individuelle des kpi"
        },
        {
            "source_key": "reference_user_need_navigator",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "persona, decisions, KPI heros, produits routes",
            "primary_action": "verifier api/get_reference_user_need_navigator.php?format=md",
            "fallback_action": "ne prouve pas la fraicheur des produits routes"
        },
        {
            "source_key": "reference_visual_system",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "tokens visuels, composants KPI, regles copy, do/dont",
            "primary_action": "verifier api/get_reference_visual_system.php?format=md",
            "fallback_action": "guide la presentation mais ne remplace pas valeurs dynamiques ni Publication Gate"
        },
        {
            "source_key": "road_traffic_tmja",
            "source_family": "official_annual_csv_open_data",
            "recommended_cadence": "annual",
            "stale_after_days": 420,
            "critical_after_days": 760,
            "evidence_required": "metadata data.gouv, dernier CSV TMJA, millesime, sections, departements, veh-km, caveat pression routiere",
            "primary_action": "php scripts/fetch_road_traffic_tmja.php sources/road-traffic-tmja-latest.csv sources/road-traffic-tmja-metadata.json sources/road-traffic-tmja-fetch-summary.csv && php scripts/normalize_road_traffic_tmja.php sources/road-traffic-tmja-latest.csv sources/road-traffic-tmja-department-summary.csv sources/road-traffic-tmja-summary.csv sources/road-traffic-tmja-metadata.json && php scripts/build_reference_public_road_traffic_tmja_board.php sources/reference-public-road-traffic-tmja-board.csv sources/reference-public-road-traffic-tmja-board.html sources/reference-public-road-traffic-tmja-board.md sources/reference-public-road-traffic-tmja-board-summary.csv sources/road-traffic-tmja-department-summary.csv sources/road-traffic-tmja-summary.csv",
            "fallback_action": "conserver dernier millesime et bloquer tout claim demande/frequentation/emissions sans source complementaire"
        },
        {
            "source_key": "rpc_carpooling_trips",
            "source_family": "official_monthly_open_data",
            "recommended_cadence": "monthly",
            "stale_after_days": 45,
            "critical_after_days": 120,
            "evidence_required": "ressource mensuelle RPC, mois, trajets, sieges passagers, departements, flux origine-destination, anonymisation/filtrage",
            "primary_action": "php scripts/fetch_rpc_carpooling_trips.php sources/rpc-carpooling-trips-latest.csv sources/rpc-carpooling-trips-latest-metadata.json sources/rpc-carpooling-trips-fetch-summary.csv && php scripts/normalize_rpc_carpooling_trips.php sources/rpc-carpooling-trips-latest.csv sources/rpc-carpooling-trips-department-summary.csv sources/rpc-carpooling-trips-top-flows.csv sources/rpc-carpooling-trips-summary.csv && php scripts/build_reference_public_rpc_carpooling_usage_board.php sources/reference-public-rpc-carpooling-usage-board.csv sources/reference-public-rpc-carpooling-usage-board.html sources/reference-public-rpc-carpooling-usage-board.md sources/reference-public-rpc-carpooling-usage-board-summary.csv",
            "fallback_action": "utiliser comme usage covoiturage intermedie, pas covoiturage informel, demande oenotouristique, flux visiteurs, satisfaction ou desserte finale domaine"
        },
        {
            "source_key": "rpg_parcels",
            "source_family": "open_data_licence_ouverte",
            "recommended_cadence": "annual",
            "stale_after_days": 400,
            "critical_after_days": 760,
            "evidence_required": "metadata RPG data.gouv, referentiel cultures 2024, code culture vigne, WFS parcelles, puis surface ha uniquement apres import agrege",
            "primary_action": "php scripts/fetch_rpg_vineyard_reference.php sources/rpg-dataset-metadata.json sources/rpg-cultures-2024.csv sources/rpg-vineyard-reference-fetch-summary.csv && php scripts/normalize_rpg_vineyard_reference.php sources/rpg-cultures-2024.csv sources/rpg-dataset-metadata.json sources/rpg-vineyard-culture-codes.csv sources/rpg-vineyard-reference-summary.csv && php scripts/build_reference_public_rpg_vineyard_activation_board.php sources/reference-public-rpg-vineyard-activation-board.csv sources/reference-public-rpg-vineyard-activation-board.html sources/reference-public-rpg-vineyard-activation-board.md sources/reference-public-rpg-vineyard-activation-board-summary.csv sources/rpg-vineyard-reference-summary.csv sources/rpg-vineyard-culture-codes.csv",
            "fallback_action": "activation gardee: ne pas publier surface RPG, propriete domaine ou exhaustivite vigne sans import parcellaire, agregation territoriale et audit"
        },
        {
            "source_key": "sirene_insee",
            "source_family": "open_data_licence_ouverte",
            "recommended_cadence": "monthly",
            "stale_after_days": 45,
            "critical_after_days": 90,
            "evidence_required": "SIREN/SIRET, date unite legale, adresse",
            "primary_action": "php scripts/ingest_sirene_insee.php",
            "fallback_action": "laisser les rattachements entreprise en revue"
        },
        {
            "source_key": "sirene_wine_establishments",
            "source_family": "open_data_licence_ouverte",
            "recommended_cadence": "monthly",
            "stale_after_days": 45,
            "critical_after_days": 90,
            "evidence_required": "stock etablissement Sirene, date fichier, mapping NAF vin, normaliseur, actifs seulement",
            "primary_action": "telecharger sources/sirene-stock-etablissements.csv puis lancer scripts/normalize_sirene_wine_establishments.php",
            "fallback_action": "publier les volumes agreges avant tout usage nominatif ; codes adjacents a qualifier"
        },
        {
            "source_key": "sncf_passenger_stations",
            "source_family": "odbl_transport_open_data",
            "recommended_cadence": "monthly",
            "stale_after_days": 45,
            "critical_after_days": 120,
            "evidence_required": "date transport.data.gouv/SNCF, compte gares voyageurs, geocodage, codes commune, segments DRG, codes UIC",
            "primary_action": "rafraichir sources/sncf-passenger-stations.csv puis lancer scripts/normalize_sncf_passenger_stations.php",
            "fallback_action": "utiliser comme signal presence rail, pas temps de trajet, frequence, ponctualite, demande, accessibilite PMR ou desserte finale domaine"
        },
        {
            "source_key": "sncf_station_footfall",
            "source_family": "sncf_open_data",
            "recommended_cadence": "annual",
            "stale_after_days": 400,
            "critical_after_days": 760,
            "evidence_required": "export SNCF frequentation-gares, annee la plus recente, voyageurs annuels, gares, segments DRG, caveat methodologique",
            "primary_action": "php scripts/fetch_sncf_station_footfall.php sources/sncf-station-footfall.csv sources/sncf-station-footfall-fetch-summary.csv && php scripts/normalize_sncf_station_footfall.php sources/sncf-station-footfall.csv sources/sncf-station-footfall-normalized.csv sources/sncf-station-footfall-summary.csv && php scripts/build_reference_public_sncf_station_footfall_board.php sources/reference-public-sncf-station-footfall-board.csv sources/reference-public-sncf-station-footfall-board.html sources/reference-public-sncf-station-footfall-board.md sources/reference-public-sncf-station-footfall-board-summary.csv",
            "fallback_action": "utiliser comme flux voyageurs gare, pas motif oenotouristique, demande locale, frequence, horaires, ponctualite, capacite, accessibilite PMR, satisfaction ou desserte finale domaine"
        },
        {
            "source_key": "source_activation_status",
            "source_family": "internal_reference_product",
            "recommended_cadence": "daily",
            "stale_after_days": 7,
            "critical_after_days": 21,
            "evidence_required": "presence fichiers, configuration DB, statut import",
            "primary_action": "verifier api/get_source_activation_status.php?format=md",
            "fallback_action": "ne pas assimiler readiness fichiers a import DB reussi"
        },
        {
            "source_key": "source_maintenance_board",
            "source_family": "internal_reference_product",
            "recommended_cadence": "daily",
            "stale_after_days": 7,
            "critical_after_days": 21,
            "evidence_required": "tickets P1/P2/P3, action, fallback, fraicheur",
            "primary_action": "verifier api/get_source_maintenance_board.php?format=md",
            "fallback_action": "traiter P1/P2 avant publication externe"
        },
        {
            "source_key": "source_opportunity_radar",
            "source_family": "internal_reference_product",
            "recommended_cadence": "monthly",
            "stale_after_days": 45,
            "critical_after_days": 90,
            "evidence_required": "sources candidates, score opportunite, URLs officielles",
            "primary_action": "verifier api/get_source_opportunity_radar.php?format=md",
            "fallback_action": "ne pas presenter les sources candidates comme deja importees"
        },
        {
            "source_key": "territory_reference_page",
            "source_family": "internal_reference_product",
            "recommended_cadence": "weekly",
            "stale_after_days": 14,
            "critical_after_days": 45,
            "evidence_required": "page HTML territoire, hydration endpoints, copy buttons, fallback statique, caveats",
            "primary_action": "ouvrir territory-reference.html et verifier les endpoints references",
            "fallback_action": "prototype public, ne valide pas DB ni publication externe sans Gate"
        },
        {
            "source_key": "tourism_data_cartography",
            "source_family": "official_meta_catalog_csv",
            "recommended_cadence": "monthly",
            "stale_after_days": 45,
            "critical_after_days": 120,
            "evidence_required": "metadata data.gouv, snapshot CSV data.economie, compte sources, compte P1, caveat meta-source",
            "primary_action": "php scripts/fetch_tourism_data_cartography.php sources/tourism-data-cartography.csv sources/tourism-data-cartography-metadata.json sources/tourism-data-cartography-fetch-summary.csv && php scripts/normalize_tourism_data_cartography.php sources/tourism-data-cartography.csv sources/tourism-data-cartography-normalized.csv sources/tourism-data-cartography-summary.csv sources/tourism-data-cartography-metadata.json && php scripts/build_reference_public_tourism_data_cartography_board.php sources/reference-public-tourism-data-cartography-board.csv sources/reference-public-tourism-data-cartography-board.html sources/reference-public-tourism-data-cartography-board.md sources/reference-public-tourism-data-cartography-board-summary.csv sources/tourism-data-cartography-normalized.csv sources/tourism-data-cartography-summary.csv",
            "fallback_action": "conserver le dernier snapshot et qualifier manuellement les P1 si le portail est indisponible"
        },
        {
            "source_key": "tourisme_handicap",
            "source_family": "open_data_licence_ouverte",
            "recommended_cadence": "quarterly",
            "stale_after_days": 120,
            "critical_after_days": 240,
            "evidence_required": "dataset data.gouv, date de mise a jour, familles couvertes",
            "primary_action": "php scripts/ingest_macro_indicators.php kind=oenotourism file=sources/tourisme-handicap-indicators.csv",
            "fallback_action": "utiliser uniquement comme cadre accessibilite"
        },
        {
            "source_key": "tourisme_handicap_establishments",
            "source_family": "open_data_licence_ouverte",
            "recommended_cadence": "monthly",
            "stale_after_days": 45,
            "critical_after_days": 90,
            "evidence_required": "date data.gouv/data.economie, compte etablissements actifs, familles handicap, coordonnees",
            "primary_action": "rafraichir sources/tourisme-handicap-establishments.csv puis lancer scripts/normalize_tourisme_handicap_establishments.php",
            "fallback_action": "garder le dernier snapshot et publier avec caveat label accessibilite"
        },
        {
            "source_key": "zfe_low_emission_zones",
            "source_family": "official_geojson_open_data",
            "recommended_cadence": "monthly",
            "stale_after_days": 45,
            "critical_after_days": 120,
            "evidence_required": "metadata transport.data.gouv.fr, BNZFE aires/voies, autorites, regles actives, exceptions, caveat contrainte acces",
            "primary_action": "php scripts/fetch_zfe_low_emission_zones.php sources/zfe-low-emission-zones-aires.geojson sources/zfe-low-emission-zones-voies.geojson sources/zfe-low-emission-zones-metadata.json sources/zfe-low-emission-zones-fetch-summary.csv && php scripts/normalize_zfe_low_emission_zones.php sources/zfe-low-emission-zones-aires.geojson sources/zfe-low-emission-zones-voies.geojson sources/zfe-low-emission-zones-authority-summary.csv sources/zfe-low-emission-zones-summary.csv sources/zfe-low-emission-zones-metadata.json && php scripts/build_reference_public_zfe_low_emission_zones_board.php sources/reference-public-zfe-low-emission-zones-board.csv sources/reference-public-zfe-low-emission-zones-board.html sources/reference-public-zfe-low-emission-zones-board.md sources/reference-public-zfe-low-emission-zones-board-summary.csv sources/zfe-low-emission-zones-authority-summary.csv sources/zfe-low-emission-zones-summary.csv",
            "fallback_action": "contexte reglementaire acces uniquement, pas preuve demande, emissions evitees, qualite air, respect effectif ou performance commerciale"
        }
    ],
    "copy_markdown": "# Politique de fraîcheur sources Winerix\n\n- Sources avec politique : 148\n- Sources avec commande : 148\n- Familles : DATAtourisme/data.gouv (2), FranceAgriMer/data.gouv (1), Insee (1), Ministere de la Culture/data.gouv (1), OpenAgenda/data.gouv (1), institutional_publication (6), internal_or_imported (2), internal_reference_product (95), odbl_transport_open_data (1), official_annual_csv_open_data (1), official_geocoded_csv_open_data (1), official_geojson_open_data (1), official_meta_catalog_csv (1), official_monthly_open_data (1), official_open_api (1), official_open_data (12), official_reference_data (1), open_data_licence_ouverte (15), sncf_open_data (1), third_party_api (1), transport.data.gouv.fr/data.gouv (1), transport_open_data (1)\n\n## Routine hebdo data ops\n\nContrôler les sources en priorité avec `due_level=critical`, puis les sources `due`, en utilisant `evidence_required` comme preuve minimale et `primary_action` comme commande de reprise. Si la source ne répond pas, appliquer `fallback_action` et conserver le dernier snapshot cité.\n\n## Garde-fou publication\n\nUne source sans preuve attendue, sans date de snapshot ou au-delà du seuil critique ne doit pas être utilisée comme preuve principale dans un KPI copiable.\n\n## Sources\n\n### agence_bio\n- Famille : open_data_licence_ouverte\n- Cadence : monthly · stale 45j · critique 90j\n- Preuve attendue : date API, numero bio, SIRET, statut certificat\n- Reprise : php scripts/ingest_bio.php\n- Fallback : ne pas presenter comme preuve parcellaire\n\n### agencebio_organic_viticulture_surfaces\n- Famille : official_open_data\n- Cadence : annual · stale 395j · critique 760j\n- Preuve attendue : surfaces bio viticulture VI, commune, AB, conversion, surf_bio\n- Reprise : lancer scripts/normalize_agencebio_organic_viticulture_surfaces.php depuis le flux Agence Bio surfaces production\n- Fallback : groupe VI viticulture incluant une faible part de raisin de table, publier en agregat territoire\n\n### agencebio_organic_wine\n- Famille : official_open_data\n- Cadence : daily · stale 7j · critique 21j\n- Preuve attendue : operateurs bio, viticulture bio VI, certificateurs, SIRET, date engagement\n- Reprise : rafraichir sources/agencebio-professionnels-bio.csv puis verifier api/get_agencebio_organic_wine.php?format=md\n- Fallback : annuaire declaratif public, publier agregats territoire avant listings nominaux\n\n### agreste_vineyard_land_values\n- Famille : official_open_data\n- Cadence : annual · stale 395j · critique 760j\n- Preuve attendue : metadata data.gouv, ressources Agreste, template manuel, normaliseur, prix moyens/min/max vigne\n- Reprise : remplir sources/agreste-vineyard-land-values-input.csv puis lancer scripts/normalize_agreste_vineyard_land_values.php\n- Fallback : valeurs vignes lissees SAFER, contexte foncier uniquement\n\n### agreste_viticulture_territorial\n- Famille : open_data_licence_ouverte\n- Cadence : annual · stale 400j · critique 760j\n- Preuve attendue : millesime Agreste, territoire, indicateur, unite, URL data.gouv\n- Reprise : php scripts/ingest_macro_indicators.php kind=macro_wine file=sources/agreste-viticulture-territorial.csv source_key=agreste_viticulture_territorial\n- Fallback : garder l'indicateur comme cadrage filiere et bloquer les interpretations parcellaires\n\n### api_recherche_entreprises_wine_actor_signal\n- Famille : official_open_api\n- Cadence : daily · stale 3j · critique 15j\n- Preuve attendue : signaux API Recherche d Entreprises pour acteurs economiques vin, NAF 01.21Z et 11.02B, regions vin prioritaires\n- Reprise : php scripts/fetch_api_recherche_entreprises_wine_actor_counts.php sources/api-recherche-entreprises-wine-actor-counts.csv sources/api-recherche-entreprises-wine-actor-counts-summary.csv puis php scripts/build_reference_public_api_recherche_entreprises_wine_actor_board.php sources/reference-public-api-recherche-entreprises-wine-actor-board.csv sources/reference-public-api-recherche-entreprises-wine-actor-board.html sources/reference-public-api-recherche-entreprises-wine-actor-board.md sources/reference-public-api-recherche-entreprises-wine-actor-board-summary.csv\n- Fallback : signal de resultats API, les valeurs a 10000 sont des bornes basses, pas stock Sirene complet, demande, frequentation, prix, satisfaction, revenu ou performance touristique\n\n### atout_france_classified_accommodations\n- Famille : open_data_licence_ouverte\n- Cadence : monthly · stale 45j · critique 120j\n- Preuve attendue : CSV data.gouv, date de mise a jour, categorie, etoiles, commune/INSEE\n- Reprise : php scripts/ingest_classified_accommodations.php file=sources/atout-france-classified-accommodations.csv\n- Fallback : ne pas assimiler a toute capacite d hebergement ni a la frequentation\n\n### atout_france_oenotourisme\n- Famille : institutional_publication\n- Cadence : quarterly · stale 120j · critique 240j\n- Preuve attendue : publication ou page source, millesime, URL\n- Reprise : php scripts/ingest_macro_indicators.php kind=oenotourism file=sources/atout-france-oenotourisme-indicators.csv\n- Fallback : garder les chiffres en cadrage national avec caveat visible\n\n### atout_france_vignobles_decouvertes_destinations\n- Famille : institutional_publication\n- Cadence : monthly · stale 60j · critique 180j\n- Preuve attendue : liste Atout France, destination, vignoble, URL officielle\n- Reprise : php scripts/ingest_macro_indicators.php kind=oenotourism file=sources/vignobles-decouvertes-destinations-sample.csv\n- Fallback : ne pas presenter comme frequentation ou performance prestataire\n\n### ban_address_reference\n- Famille : official_reference_data\n- Cadence : weekly · stale 10j · critique 30j\n- Preuve attendue : metadata BAN, ressources CSV/API, statut commune, template audit, normaliseur adresse\n- Reprise : remplir sources/ban-address-quality-input.csv puis lancer scripts/normalize_ban_address_quality.php\n- Fallback : qualifie adresse/geocodage, pas existence commerciale ni frequentation\n\n### ban_ign_geocoding\n- Famille : third_party_api\n- Cadence : monthly · stale 45j · critique 90j\n- Preuve attendue : adresse normalisee, score geocodage, source BAN\n- Reprise : php scripts/ingest_ban_geocode.php\n- Fallback : masquer les distances/cartes si geocodage faible\n\n### bnlc_carpooling_areas\n- Famille : transport.data.gouv.fr/data.gouv\n- Cadence : monthly · stale 35j · critique 90j\n- Preuve attendue : lieux covoiturage, commune, coordonnees, capacite, pmr, acces bas carbone\n- Reprise : mettre a jour sources/bnlc-carpooling-areas.csv puis normaliser scripts/normalize_bnlc_carpooling_areas.php\n- Fallback : infrastructure de covoiturage, ne mesure pas usage reel ni desserte finale\n\n### bnsc_bike_parking\n- Famille : transport_open_data\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : stationnement cyclable, capacite velo, code commune, couverture, surveillance, lumiere\n- Reprise : rafraichir sources/bnsc-bike-parking.zip puis lancer scripts/normalize_bnsc_bike_parking.php\n- Fallback : source OSM ODbL contributive, attribution obligatoire, non exhaustive\n\n### culture_basilic_places\n- Famille : official_geocoded_csv_open_data\n- Cadence : quarterly · stale 120j · critique 240j\n- Preuve attendue : metadata data.gouv, snapshot CSV Basilic, compte lieux, couverture departements, geocodage, caveat doublons BPE/Merimee\n- Reprise : php scripts/fetch_culture_basilic_places.php sources/culture-basilic-places.csv sources/culture-basilic-places-metadata.json sources/culture-basilic-places-fetch-summary.csv && php scripts/normalize_culture_basilic_places.php sources/culture-basilic-places.csv sources/culture-basilic-places-department-summary.csv sources/culture-basilic-places-type-summary.csv sources/culture-basilic-places-summary.csv sources/culture-basilic-places-metadata.json && php scripts/build_reference_public_culture_basilic_places_board.php sources/reference-public-culture-basilic-places-board.csv sources/reference-public-culture-basilic-places-board.html sources/reference-public-culture-basilic-places-board.md sources/reference-public-culture-basilic-places-board-summary.csv sources/culture-basilic-places-department-summary.csv sources/culture-basilic-places-type-summary.csv sources/culture-basilic-places-summary.csv\n- Fallback : conserver dernier snapshot, bloquer claims culturels nouveaux et verifier doublons BPE/Merimee avant publication\n\n### cvl_cyclotourisme_label_zones\n- Famille : open_data_licence_ouverte\n- Cadence : monthly · stale 45j · critique 120j\n- Preuve attendue : date Region Centre-Val de Loire, compte zones, communes, couverture, labels Accueil Velo/Loire a Velo\n- Reprise : rafraichir sources/cyclotourisme-zones-eligibles-labels.csv puis lancer scripts/normalize_cyclotourisme_label_zones.php\n- Fallback : utiliser comme signal acces velo territorial, pas demande, usage reel, securite itineraire, etablissement labellise ou desserte finale domaine\n\n### datatourisme_cvl_wine_pois\n- Famille : official_open_data\n- Cadence : daily · stale 7j · critique 21j\n- Preuve attendue : POI DATAtourisme Centre-Val de Loire, signaux vin/oenotourisme, producteurs, communes, caveats\n- Reprise : telecharger datatourisme-reg-cvl.csv depuis data.gouv puis lancer php scripts/normalize_datatourisme_cvl_wine_pois.php sources/datatourisme-reg-cvl.csv sources/datatourisme-cvl-wine-pois-normalized.csv sources/datatourisme-cvl-wine-pois-summary.csv\n- Fallback : offre touristique declaree volontairement, pas exhaustivite, frequentation, qualite visite, demande ou revenu\n\n### datatourisme_fidelity_monitor\n- Famille : DATAtourisme/data.gouv\n- Cadence : daily · stale 3j · critique 15j\n- Preuve attendue : ressources DATAtourisme, flux regionaux, fraicheur, couverture, source health\n- Reprise : mettre a jour sources/datatourisme-datagouv.json et sources/datatourisme-resource-snapshot.csv puis lancer scripts/monitor_datatourisme_freshness.php\n- Fallback : fraicheur ressource ne prouve pas exhaustivite ni qualite des POI territoriaux\n\n### datatourisme_national_feed_monitor\n- Famille : DATAtourisme/data.gouv\n- Cadence : daily · stale 3j · critique 15j\n- Preuve attendue : metadata data.gouv, ressources latest, formats, disponibilite, last_modified, exports regionaux CSV\n- Reprise : curl -sSL https://www.data.gouv.fr/api/1/datasets/datatourisme-la-base-nationale-des-donnees-publiques-dinformation-touristique-en-open-data/ -o sources/datatourisme-national-feed/datatourisme-datagouv-metadata.json puis php scripts/build_reference_public_datatourisme_national_feed_monitor.php sources/datatourisme-national-feed/datatourisme-datagouv-metadata.json sources/datatourisme-national-feed-resource-snapshot.csv sources/reference-public-datatourisme-national-feed-monitor.csv sources/reference-public-datatourisme-national-feed-monitor.html sources/reference-public-datatourisme-national-feed-monitor.md sources/reference-public-datatourisme-national-feed-monitor-summary.csv\n- Fallback : monitor source uniquement, ne prouve pas exhaustivite, demande, frequentation, prix, disponibilite, satisfaction ou performance\n\n### datatourisme_oenotourism\n- Famille : open_data_licence_ouverte\n- Cadence : weekly · stale 14j · critique 30j\n- Preuve attendue : snapshot CSV ou flux API, date lastupdate, filtres vin appliques\n- Reprise : php scripts/ingest_datatourisme_oenotourism.php file=sources/datatourisme-oenotourism-offers.csv min_relevance=55\n- Fallback : marquer la source due et conserver le dernier snapshot cite\n\n### datatourisme_priority_wine_regions_pois\n- Famille : official_open_data\n- Cadence : daily · stale 3j · critique 15j\n- Preuve attendue : POI DATAtourisme regions vin prioritaires, signaux vin/oenotourisme, createurs, communes, caveats\n- Reprise : telecharger datatourisme-reg-naq.csv datatourisme-reg-occ.csv datatourisme-reg-bfc.csv depuis data.gouv puis lancer php scripts/normalize_datatourisme_priority_wine_regions.php sources/datatourisme-priority-wine-regions/priority-regions.csv sources/datatourisme-priority-wine-regions-pois-normalized.csv sources/datatourisme-priority-wine-regions-pois-summary.csv\n- Fallback : offre touristique declaree volontairement, pas exhaustivite, frequentation, qualite visite, demande, disponibilite, prix, satisfaction ou revenu\n\n### dgddi_vitivinicole_planted_surface_commune\n- Famille : official_open_data\n- Cadence : annual · stale 395j · critique 760j\n- Preuve attendue : DGDDI/Douane superficies plantees en vigne par commune, surface ha, secret statistique, Champagne exclue\n- Reprise : telecharger le dernier XLSX superficies plantees depuis la page Douane vigne-et-vin puis lancer php scripts/normalize_dgddi_vitivinicole_planted_surface_commune.php sources/dgddi-vitivinicole/raw/planted_surface_commune_2025.xlsx sources/dgddi-vitivinicole-planted-surface-commune-normalized.csv sources/dgddi-vitivinicole-planted-surface-commune-summary.csv 2025\n- Fallback : surface plantee uniquement, Champagne AOP exclue et cellules confidentielles masquees, pas production, demande, prix, revenu, qualite ou performance commerciale\n\n### dgddi_vitivinicole_production_department\n- Famille : official_open_data\n- Cadence : annual · stale 395j · critique 760j\n- Preuve attendue : DGDDI/Douane production vitivinicole par departement, surfaces, declarations, AOP, IGP, VSIG, production hl\n- Reprise : telecharger le dernier XLSX production depuis la page Douane vigne-et-vin puis lancer php scripts/normalize_dgddi_vitivinicole_production_department.php sources/dgddi-vitivinicole/raw/production_department_2025.xlsx sources/dgddi-vitivinicole-production-department-normalized.csv sources/dgddi-vitivinicole-production-department-summary.csv 2025\n- Fallback : preuve production/surface officielle, pas demande, ventes, prix, revenu, qualite, frequentation, satisfaction ou performance commerciale\n\n### dgddi_vitivinicole_stocks\n- Famille : official_open_data\n- Cadence : annual · stale 395j · critique 760j\n- Preuve attendue : DGDDI/Douane stocks de vins a la production et au commerce, campagne, categories, origines, volumes hl\n- Reprise : telecharger le dernier XLSX stocks depuis la page Douane vigne-et-vin puis lancer php scripts/normalize_dgddi_vitivinicole_stocks.php sources/dgddi-vitivinicole/raw/stocks_2024_2025.xlsx sources/dgddi-vitivinicole-stocks-normalized.csv sources/dgddi-vitivinicole-stocks-summary.csv 2024-2025 2025-07-31\n- Fallback : stock declare uniquement, pas demande, sell-through, ventes, prix, revenu, qualite ou performance commerciale\n\n### dgddi_vitivinicole_stocks_harvests\n- Famille : official_open_data\n- Cadence : annual · stale 395j · critique 760j\n- Preuve attendue : metadata data.gouv, ressources XLS recoltes/stocks, template manuel, normaliseur, caveat DataDouane\n- Reprise : remplir sources/dgddi-vitivinicole-stocks-harvests-input.csv puis lancer scripts/normalize_dgddi_vitivinicole_supply.php\n- Fallback : jeu historique ancien, verifier DataDouane pour statistiques recentes\n\n### douanes_nc8_nomenclature\n- Famille : open_data_licence_ouverte\n- Cadence : annual · stale 400j · critique 760j\n- Preuve attendue : annee nomenclature, code NC8, libelle\n- Reprise : php scripts/ingest_macro_indicators.php kind=trade_nc8 file=sources/douanes-nc8-vin-prioritaires.csv\n- Fallback : bloquer les lectures export fines si le mapping est absent\n\n### eambrosia_gi\n- Famille : institutional_publication\n- Cadence : monthly · stale 45j · critique 90j\n- Preuve attendue : snapshot registre, statut GI, URL cahier des charges\n- Reprise : php scripts/ingest_eambrosia_gi.php file=sources/eambrosia-gi.csv\n- Fallback : exporter la file de revue via api/reference_export.php?type=appellation_regulatory_gaps\n\n### eu_wine_market_observatory\n- Famille : institutional_publication\n- Cadence : monthly · stale 60j · critique 120j\n- Preuve attendue : serie UE, periode, pays, indicateur\n- Reprise : php scripts/ingest_macro_indicators.php kind=macro_wine file=sources/eu-wine-market-observatory.csv source_key=eu_wine_market_observatory\n- Fallback : marquer benchmark UE a qualifier\n\n### franceagrimer_bulk_wine_prices_guarded\n- Famille : FranceAgriMer/data.gouv\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : metadata data.gouv, URL Visionet, probe ressource, probe API tabulaire, schema prix vrac VSIG/IGP, export stable\n- Reprise : php scripts/fetch_franceagrimer_bulk_price_source_watch.php sources/franceagrimer-bulk-wine-prices/franceagrimer-bulk-prices-datagouv-metadata.json sources/franceagrimer-bulk-wine-prices/franceagrimer-bulk-prices-probe-summary.csv && php scripts/build_reference_public_franceagrimer_bulk_price_source_watch.php sources/franceagrimer-bulk-wine-prices/franceagrimer-bulk-prices-datagouv-metadata.json sources/reference-public-franceagrimer-bulk-price-source-watch.csv sources/reference-public-franceagrimer-bulk-price-source-watch.html sources/reference-public-franceagrimer-bulk-price-source-watch.md sources/reference-public-franceagrimer-bulk-price-source-watch-summary.csv sources/franceagrimer-bulk-wine-prices/franceagrimer-bulk-prices-probe-summary.csv\n- Fallback : source prix gardee tant que Visionet/API tabulaire ne fournit pas export stable, pas KPI prix public\n\n### franceagrimer_campagne_viticulture\n- Famille : institutional_publication\n- Cadence : weekly · stale 21j · critique 45j\n- Preuve attendue : semaine campagne, categorie, URL publication, template export manuel, normaliseur\n- Reprise : remplir sources/franceagrimer-prices-input.csv puis lancer scripts/normalize_franceagrimer_bulk_prices.php\n- Fallback : afficher prix vrac n/a plutot qu'un signal ancien\n\n### hve_certified_estates\n- Famille : official_open_data\n- Cadence : annual · stale 395j · critique 760j\n- Preuve attendue : metadata data.gouv, CSV officiel, normaliseur HVE, schema, filtre vin textuel\n- Reprise : lancer scripts/normalize_hve_certified_estates.php puis rapprocher domaines Winerix/Sirene/BAN\n- Fallback : annuaire volontaire, seules exploitations ayant accepte de figurer, filtrage vin a relire\n\n### inao_aoc_aop_commune_areas\n- Famille : open_data_licence_ouverte\n- Cadence : monthly · stale 45j · critique 90j\n- Preuve attendue : date mise a jour data.gouv, snapshot CSV, compte lignes, encodage controle\n- Reprise : php scripts/ingest_inao_aoc_aop_communes.php file=sources/inao-aoc-aop-communes.csv\n- Fallback : croiser avec appellations/eAmbrosia et signaler les libelles non matches\n\n### inao_siqo_products\n- Famille : open_data_licence_ouverte\n- Cadence : monthly · stale 45j · critique 90j\n- Preuve attendue : date extraction SIQO, compte produits, statuts publies, filtre vin\n- Reprise : php scripts/ingest_inao_siqo_products.php file=sources/inao-siqo-products.csv\n- Fallback : croiser produits SIQO avec aires INAO et eAmbrosia avant preuve complete\n\n### insee_bpe_equipment\n- Famille : Insee\n- Cadence : annual · stale 400j · critique 730j\n- Preuve attendue : base permanente equipements, tourisme, transports, culture loisirs, commerces, services, denombrement\n- Reprise : mettre a jour sources/insee-bpe-2024-counts.zip et normaliser scripts/normalize_insee_bpe_equipment.php\n- Fallback : presence equipements, ne mesure pas qualite frequentation satisfaction ni disponibilite\n\n### insee_hebergements_touristiques\n- Famille : open_data_licence_ouverte\n- Cadence : quarterly · stale 120j · critique 240j\n- Preuve attendue : millesime INSEE, URL, champ indicateur\n- Reprise : php scripts/ingest_macro_indicators.php kind=oenotourism file=sources/insee-hebergements-touristiques-2024.csv\n- Fallback : ne pas extrapoler localement si le millesime manque\n\n### insee_tourism_capacity_communes\n- Famille : open_data_licence_ouverte\n- Cadence : annual · stale 400j · critique 760j\n- Preuve attendue : CSV Insee DS_TOUR_CAP, millesime, GEO_OBJECT=COM, compte communes\n- Reprise : php scripts/ingest_insee_tourism_capacity_communes.php file=sources/insee-tourism-capacity-communes-2026.csv\n- Fallback : publier comme capacite d accueil officielle, pas comme frequentation ni motivation vin\n\n### insee_tourism_occupancy\n- Famille : official_open_data\n- Cadence : monthly · stale 45j · critique 120j\n- Preuve attendue : frequentation hebergements, nuitees, arrivees, taux occupation, demande touristique\n- Reprise : rafraichir sources/insee-tourism-occupancy.zip puis lancer scripts/normalize_insee_tourism_occupancy.php\n- Fallback : demande touristique generale, pas attribution vin sans rapprochement offre/territoire\n\n### kpi_evidence\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : citations, sources, confiance, limites\n- Reprise : verifier api/reference_export.php?type=kpi_evidence&format=md\n- Fallback : ne pas publier de citation sans URL source\n\n### kpi_pack\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : definition KPI runtime, valeurs disponibles, fallback DB\n- Reprise : verifier app/kpi_pack.php et api/reference_export.php?type=kpi_pack\n- Fallback : afficher n/a ou fallback si DB indisponible\n\n### local_business_profiles\n- Famille : internal_or_imported\n- Cadence : monthly · stale 45j · critique 90j\n- Preuve attendue : provenance, champs enrichis, date import\n- Reprise : php scripts/ingest_import_profiles.php\n- Fallback : ne pas exposer les attributs non gouvernes\n\n### local_wine_catalog\n- Famille : internal_or_imported\n- Cadence : monthly · stale 45j · critique 90j\n- Preuve attendue : provenance amont, nombre lignes, date import\n- Reprise : php scripts/ingest_import_profiles.php\n- Fallback : garder les chiffres comme signal Winerix interne\n\n### merimee_heritage_monuments\n- Famille : Ministere de la Culture/data.gouv\n- Cadence : monthly · stale 45j · critique 120j\n- Preuve attendue : monuments historiques, patrimoine protege, commune, protection, coordonnees, signal culturel\n- Reprise : mettre a jour sources/merimee-monuments.csv puis normaliser scripts/normalize_merimee_heritage_monuments.php\n- Fallback : patrimoine protege, ne mesure pas frequentation ouverture au public ni impact oenotouristique\n\n### oiv_world_wine_sector\n- Famille : institutional_publication\n- Cadence : annual · stale 400j · critique 760j\n- Preuve attendue : rapport OIV, annee, indicateur, unite\n- Reprise : php scripts/ingest_macro_indicators.php kind=macro_wine file=sources/oiv.csv source_key=oiv_world_wine_sector\n- Fallback : conserver uniquement comme contexte historique\n\n### openagenda_wine_events\n- Famille : OpenAgenda/data.gouv\n- Cadence : daily · stale 3j · critique 15j\n- Preuve attendue : evenements publics futurs, vin, vignoble, degustation, oenotourisme, geolocalisation, agenda\n- Reprise : php scripts/fetch_openagenda_wine_events.php sources/openagenda-wine-events-sample.json sources/openagenda-wine-events-fetch-summary.csv 2026-07-06 puis php scripts/normalize_openagenda_wine_events.php sources/openagenda-wine-events-sample.json sources/openagenda-wine-events-normalized.csv 35 puis php scripts/summarize_openagenda_wine_events.php sources/openagenda-wine-events-normalized.csv sources/openagenda-wine-events-summary.csv\n- Fallback : source evenementielle contributive, couverture non exhaustive et frequentation non mesuree\n\n### qualite_tourisme_establishments\n- Famille : official_open_data\n- Cadence : monthly · stale 45j · critique 120j\n- Preuve attendue : label qualite tourisme, accueil, prestations, geocodage, signal vin textuel\n- Reprise : rafraichir sources/qualite-tourisme-establishments.csv puis lancer scripts/normalize_qualite_tourisme_establishments.php\n- Fallback : label accueil, pas frequentation ni lien vin sans rapprochement\n\n### reference_activation_outputs_manifest\n- Famille : internal_reference_product\n- Cadence : weekly · stale 7j · critique 30j\n- Preuve attendue : manifest outputs activation, fichiers normalises, kpi, scorecards, jobs lourds restants\n- Reprise : verifier api/get_reference_activation_outputs_manifest.php?format=md\n- Fallback : manifest outputs, ne prouve pas import db ni validation endpoint\n\n### reference_api_manifest\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : manifeste API, endpoints, formats, personas, KPI\n- Reprise : verifier api/get_reference_api_manifest.php?format=md\n- Fallback : manifeste declaratif, verifier le Publication Gate avant usage externe\n\n### reference_authority_index\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : sources autorite, kpi servis, statut pipeline, score maturite, prochaines actions\n- Reprise : verifier api/get_reference_authority_index.php?format=md\n- Fallback : index autorite, ne remplace pas normalisation runtime ni audit couverture\n\n### reference_citation_kit\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : citations sources, licences, usages, caveats\n- Reprise : verifier api/get_reference_citation_kit.php?format=md\n- Fallback : verifier URL source et Publication Gate avant diffusion externe\n\n### reference_claim_guard\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : claims autorises, claims interdits, modes KPI, etats source, canaux\n- Reprise : verifier api/get_reference_claim_guard.php?format=md\n- Fallback : garde-fou editorial, ne remplace pas revue juridique/metier ni Publication Gate final\n\n### reference_copy_studio\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : briefs persona, KPI, caveats, exports\n- Reprise : verifier api/get_reference_copy_studio.php?format=md\n- Fallback : remplacer les placeholders par valeurs dynamiques\n\n### reference_dashboard_blueprint\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : sections UI, KPI slots, produits, directions visuelles\n- Reprise : verifier api/get_reference_dashboard_blueprint.php?format=md\n- Fallback : blueprint sans valeurs dynamiques\n\n### reference_data_contracts\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : contrats API, champs requis, formats, quality gates, caveats\n- Reprise : verifier api/get_reference_data_contracts.php?format=md\n- Fallback : ne remplace pas tests runtime ni validation des imports\n\n### reference_data_product_index\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : sommaire produits, priorites, stages, exports\n- Reprise : verifier api/get_reference_data_product_index.php?format=md\n- Fallback : index de navigation, pas preuve de fraicheur\n\n### reference_data_room_index\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : sommaire data room, collections, produits, ordre de copie, caveats\n- Reprise : verifier api/get_reference_data_room_index.php?format=md\n- Fallback : index de navigation, verifier les exports produits et le Publication Gate avant partage externe\n\n### reference_embed_kit\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : blocs HTML Markdown CSV JS, tokens CSS, regles publication\n- Reprise : verifier api/get_reference_embed_kit.php?format=md\n- Fallback : snippets de presentation a alimenter avec endpoints actifs et Publication Gate\n\n### reference_integration_guide\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : guide integration API, snippets curl/fetch/PHP, endpoints prioritaires\n- Reprise : verifier api/get_reference_integration_guide.php?format=md\n- Fallback : conserver les caveats et verifier le Publication Gate avant affichage externe\n\n### reference_kpi_aggregation_rules\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : regles aggregation KPI, mailles territoire, denominateurs, temporalites, privacy\n- Reprise : verifier api/get_reference_kpi_aggregation_rules.php?format=md\n- Fallback : regles methodologiques, ne prouvent pas normalisation ni import\n\n### reference_kpi_card_deck\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : cartes KPI, style, placeholders, caveats\n- Reprise : verifier api/get_reference_kpi_card_deck.php?format=md\n- Fallback : remplacer les placeholders avant publication\n\n### reference_kpi_cards\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : cartes KPI hydratees ou fallback explicite\n- Reprise : verifier api/get_reference_kpi_cards.php?format=md\n- Fallback : si DB indisponible, garder fallback visible\n\n### reference_kpi_copy_pack\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : snippets kpi copiables, wording public, sources, caveats, placeholders\n- Reprise : verifier api/get_reference_kpi_copy_pack.php?format=md\n- Fallback : pack copie, ne remplace pas certificat publication ni controle licence\n\n### reference_kpi_dependency_map\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : dependances KPI, composants, sources, outputs normalisation, gates\n- Reprise : verifier api/get_reference_kpi_dependency_map.php?format=md\n- Fallback : carte logique, ne verifie pas existence fichiers ni qualite donnees\n\n### reference_kpi_dictionary\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : definitions, calculs, sources, caveats\n- Reprise : verifier api/get_reference_kpi_dictionary.php?format=md\n- Fallback : ne remplace pas les valeurs runtime\n\n### reference_kpi_publication_certificates\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : recus publication KPI, score, badge, sources, regles aggregation, caveats\n- Reprise : verifier api/get_reference_kpi_publication_certificates.php?format=md\n- Fallback : certificat logique, ne prouve pas imports DB ni revue metier\n\n### reference_kpi_scorecard\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : familles KPI, niveaux aggregation, exports, caveats\n- Reprise : verifier api/get_reference_kpi_scorecard.php?format=md\n- Fallback : ne remplace pas le Publication Gate\n\n### reference_launch_readiness\n- Famille : internal_reference_product\n- Cadence : daily · stale 7j · critique 21j\n- Preuve attendue : checklist launch, preuves, risques, actions, go/no-go\n- Reprise : verifier api/get_reference_launch_readiness.php?format=md\n- Fallback : ne remplace pas imports DB, validation runtime ni validation metier finale\n\n### reference_live_kpi_board\n- Famille : internal_reference_product\n- Cadence : daily · stale 3j · critique 10j\n- Preuve attendue : modes affichage KPI, live, partial, demo, blocked, copy caveat\n- Reprise : verifier api/get_reference_live_kpi_board.php?format=md\n- Fallback : mode affichage logique, ne remplace pas revue metier finale ni Publication Gate externe\n\n### reference_narrative_deck\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : slides, KPI slots, notes orateur, caveats\n- Reprise : verifier api/get_reference_narrative_deck.php?format=md\n- Fallback : injecter valeurs dynamiques avant partage externe\n\n### reference_normalization_quality_gates\n- Famille : internal_reference_product\n- Cadence : daily · stale 3j · critique 10j\n- Preuve attendue : quality gates CSV normalises, schema, output, lignes, source_key, caveat\n- Reprise : verifier api/get_reference_normalization_quality_gates.php?format=md\n- Fallback : QA structurelle, pas revue metier ni validation import DB\n\n### reference_normalization_readiness\n- Famille : internal_reference_product\n- Cadence : daily · stale 3j · critique 10j\n- Preuve attendue : readiness fichiers normalisation, inputs, outputs, schemas, statut pret/manquant\n- Reprise : verifier api/get_reference_normalization_readiness.php?format=md\n- Fallback : verifie existence fichiers, pas qualite contenu ni imports DB\n\n### reference_normalization_runbook\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : runbook normalisation, commandes, inputs, outputs, schemas, gates, caveats\n- Reprise : verifier api/get_reference_normalization_runbook.php?format=md\n- Fallback : runbook execution, ne prouve pas scripts lances ni imports DB\n\n### reference_oenotourism_demand_offer\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : lecture offre demande oenotourisme, caveats, blocs copiables, score guide\n- Reprise : verifier api/get_reference_oenotourism_demand_offer.php?format=md\n- Fallback : pack de lecture, ne remplace pas normalisation ni Publication Gate\n\n### reference_page_publication_kit\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : kit publication page, sections, checklist, certificats KPI, footnotes, copy blocks\n- Reprise : verifier api/get_reference_page_publication_kit.php?format=md\n- Fallback : kit assemblage, ne prouve pas normalisation imports DB tests ou revues\n\n### reference_product_catalog\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : catalogue produit, matrice publication, endpoints, caveats\n- Reprise : verifier app/reference_product_catalog.php\n- Fallback : publier les exports avec mention catalogue interne\n\n### reference_products\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : catalogue produit, exports, persona, caveats, priorites\n- Reprise : verifier app/reference_product_catalog.php et /referentiels/produits\n- Fallback : marquer le produit interne comme a relire si le catalogue change\n\n### reference_profile_proof_cards\n- Famille : internal_reference_product\n- Cadence : weekly · stale 7j · critique 30j\n- Preuve attendue : proof cards profils, bpe, merimee, bnlc, preuves multi-sources, copy lines\n- Reprise : lancer scripts/build_reference_profile_proof_cards.php puis verifier api/get_reference_profile_proof_cards.php?format=md\n- Fallback : proof cards, ne prouvent pas exhaustivite terrain ni approbation finale\n\n### reference_profile_publication_queue\n- Famille : internal_reference_product\n- Cadence : weekly · stale 7j · critique 30j\n- Preuve attendue : queue publication profils, statuts editoriaux, preuve multi-source, gates, actions\n- Reprise : lancer scripts/build_reference_profile_publication_queue.php puis verifier api/get_reference_profile_publication_queue.php?format=md\n- Fallback : queue editoriale, ne vaut pas approbation finale import db ou validation endpoint\n\n### reference_public_api_recherche_entreprises_wine_actor_board\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : board public acteurs economiques vin officiels, densite culture vigne, vinification, priorisation departements, guardrails\n- Reprise : php scripts/build_reference_public_api_recherche_entreprises_wine_actor_board.php sources/reference-public-api-recherche-entreprises-wine-actor-board.csv sources/reference-public-api-recherche-entreprises-wine-actor-board.html sources/reference-public-api-recherche-entreprises-wine-actor-board.md sources/reference-public-api-recherche-entreprises-wine-actor-board-summary.csv\n- Fallback : signal economique officiel, pas inventaire exhaustif, demande, frequentation, prix, satisfaction, revenu ou performance touristique\n\n### reference_public_classified_accommodation_board\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : board hebergements classes, capacite, qualite, typologies, overlap DATAtourisme CVL, copy blocks\n- Reprise : php scripts/build_reference_public_classified_accommodation_board.php sources/reference-public-classified-accommodation-board.csv sources/reference-public-classified-accommodation-board.html sources/reference-public-classified-accommodation-board.md sources/reference-public-classified-accommodation-board-summary.csv\n- Fallback : contexte hebergement classe, pas demande, frequentation, disponibilite, prix, satisfaction ou lien vin par defaut\n\n### reference_public_data_room\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : data room publique, assets recommandes, endpoints, packs preuve/copie/source/caveat\n- Reprise : php scripts/build_reference_public_data_room.php sources/reference-public-data-room.csv sources/reference-public-data-room.html sources/reference-public-data-room.md sources/reference-public-data-room-summary.csv\n- Fallback : route vers assets source-backed, pas preuve terrain, demande, frequentation, revenu, satisfaction ou performance commerciale\n\n### reference_public_datatourisme_cvl_wine_offer_board\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : board public offre oenotouristique CVL, KPI DATAtourisme, communes, producteurs, copy blocks\n- Reprise : php scripts/build_reference_public_datatourisme_cvl_wine_offer_board.php sources/reference-public-datatourisme-cvl-wine-offer-board.csv sources/reference-public-datatourisme-cvl-wine-offer-board.html sources/reference-public-datatourisme-cvl-wine-offer-board.md sources/reference-public-datatourisme-cvl-wine-offer-board-summary.csv\n- Fallback : contexte offre DATAtourisme, pas exhaustivite, demande, frequentation, qualite visite ou revenu\n\n### reference_public_datatourisme_priority_wine_regions_board\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : board public offre oenotouristique regions vin prioritaires, KPI DATAtourisme, regions, communes, createurs, copy blocks\n- Reprise : php scripts/build_reference_public_datatourisme_priority_wine_regions_board.php sources/reference-public-datatourisme-priority-wine-regions-board.csv sources/reference-public-datatourisme-priority-wine-regions-board.html sources/reference-public-datatourisme-priority-wine-regions-board.md sources/reference-public-datatourisme-priority-wine-regions-board-summary.csv\n- Fallback : contexte offre DATAtourisme, pas exhaustivite, demande, frequentation, disponibilite, prix, satisfaction, qualite visite ou revenu\n\n### reference_public_dgddi_vitivinicole_production_board\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : board public DGDDI production vitivinicole, KPI volumes, surfaces, declarations, mix categorie, top departements\n- Reprise : php scripts/build_reference_public_dgddi_vitivinicole_production_board.php sources/reference-public-dgddi-vitivinicole-production-board.csv sources/reference-public-dgddi-vitivinicole-production-board.html sources/reference-public-dgddi-vitivinicole-production-board.md sources/reference-public-dgddi-vitivinicole-production-board-summary.csv\n- Fallback : surface/production uniquement, pas preuve demande touristique, ventes, prix, revenu, qualite ou performance commerciale\n\n### reference_public_dgddi_vitivinicole_supply_depth_board\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : board public DGDDI supply depth, production, surfaces communales, stocks production et commerce\n- Reprise : php scripts/build_reference_public_dgddi_vitivinicole_supply_depth_board.php sources/reference-public-dgddi-vitivinicole-supply-depth-board.csv sources/reference-public-dgddi-vitivinicole-supply-depth-board.html sources/reference-public-dgddi-vitivinicole-supply-depth-board.md sources/reference-public-dgddi-vitivinicole-supply-depth-board-summary.csv\n- Fallback : supply officiel uniquement, pas preuve demande touristique, ventes, prix, revenu, qualite, frequentation, satisfaction ou performance commerciale\n\n### reference_public_distribution\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : distribution publique, audiences, bundles, ordre envoi, emails copiables, risques\n- Reprise : verifier api/get_reference_public_distribution.php?format=md\n- Fallback : pack distribution, ne prouve pas execution endpoints ni revue juridique\n\n### reference_public_footnotes\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : footnotes publiques, sources, licences, KPI relies, caveats, ODbL\n- Reprise : verifier api/get_reference_public_footnotes.php?format=md\n- Fallback : footnotes publication, ne remplacent pas revue juridique ni verification licence\n\n### reference_public_inao_wine_appellation_territory_pack\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : pack public INAO appellations viticoles par territoire, communes, liens commune-aire, copy blocks\n- Reprise : php scripts/build_reference_public_inao_wine_appellation_territory_pack.php sources/reference-public-inao-wine-appellation-territory-pack.csv sources/reference-public-inao-wine-appellation-territory-pack.html sources/reference-public-inao-wine-appellation-territory-pack.md sources/reference-public-inao-wine-appellation-territory-pack-summary.csv\n- Fallback : preuve identite vin officielle, pas demande, frequentation, disponibilite, prix, satisfaction, performance ou validation juridique\n\n### reference_public_low_carbon_access_board\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : board acces bas-carbone, rail, velo, covoiturage, signaux, caveats, copy blocks\n- Reprise : php scripts/build_reference_public_low_carbon_access_board.php sources/reference-public-low-carbon-access-board.csv sources/reference-public-low-carbon-access-board.html sources/reference-public-low-carbon-access-board.md sources/reference-public-low-carbon-access-board-summary.csv\n- Fallback : board de contexte acces, pas preuve de demande, temps de trajet, frequence, usage reel ou desserte finale domaine\n\n### reference_public_low_carbon_access_leaderboard\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : leaderboard acces bas-carbone, scores departements, composants rail velo covoiturage, copy blocks\n- Reprise : php scripts/build_reference_public_low_carbon_access_leaderboard.php sources/reference-public-low-carbon-access-leaderboard.csv sources/reference-public-low-carbon-access-leaderboard.html sources/reference-public-low-carbon-access-leaderboard.md sources/reference-public-low-carbon-access-leaderboard-summary.csv 40\n- Fallback : classement infrastructure/contexte, pas preuve de demande, temps de trajet, frequence, usage reel ou desserte finale domaine\n\n### reference_public_one_pager\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : one-pager public externe, positionnement, chiffres heros, source moat, qualite, partner ask\n- Reprise : php scripts/build_reference_public_one_pager.php sources/reference-public-one-pager.csv sources/reference-public-one-pager.html sources/reference-public-one-pager.md sources/reference-public-one-pager-summary.csv\n- Fallback : resume des assets source-backed, pas preuve terrain, demande, frequentation, revenu, satisfaction ou performance commerciale\n\n### reference_public_openagenda_wine_event_board\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : board public OpenAgenda evenements futurs vin, communes, agendas, pertinence, guardrails\n- Reprise : php scripts/build_reference_public_openagenda_wine_event_board.php sources/reference-public-openagenda-wine-event-board.csv sources/reference-public-openagenda-wine-event-board.html sources/reference-public-openagenda-wine-event-board.md sources/reference-public-openagenda-wine-event-board-summary.csv\n- Fallback : contexte evenementiel contributif, pas exhaustivite, demande, frequentation, prix, satisfaction, revenu ou performance touristique\n\n### reference_public_reference_coverage_board\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : board public couverture reference par pilier, scores, assets recommandes, gaps source, caveats\n- Reprise : php scripts/build_reference_public_reference_coverage_board.php sources/reference-public-reference-coverage-board.csv sources/reference-public-reference-coverage-board.html sources/reference-public-reference-coverage-board.md sources/reference-public-reference-coverage-board-summary.csv\n- Fallback : mesure readiness source/produit et largeur reference, pas preuve terrain, demande, frequentation, revenu, satisfaction ou performance commerciale\n\n### reference_public_source_partner_outreach_pack\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : messages partenaires source, validation attribution, refresh, caveats, copy emails\n- Reprise : php scripts/build_reference_public_source_partner_outreach_pack.php sources/reference-public-source-partner-outreach-pack.csv sources/reference-public-source-partner-outreach-pack.html sources/reference-public-source-partner-outreach-pack.md sources/reference-public-source-partner-outreach-pack-summary.csv\n- Fallback : workflow relation source, pas accord partenaire, endorsement, validation juridique ou preuve locale de demande\n\n### reference_public_source_portfolio_board\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : board portefeuille source, score fidelite, priorite relationnelle, usages KPI, copy blocks\n- Reprise : php scripts/build_reference_public_source_portfolio_board.php sources/reference-public-source-portfolio-board.csv sources/reference-public-source-portfolio-board.html sources/reference-public-source-portfolio-board.md sources/reference-public-source-portfolio-board-summary.csv\n- Fallback : board gouvernance/relation source, pas accord partenaire, validation legale, preuve locale, performance terrain ou engagement producteur\n\n### reference_public_territory_decision_scoreboard\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : scoreboard decision territoire, routes utilisateur, KPI, assets, endpoints, caveats\n- Reprise : php scripts/build_reference_public_territory_decision_scoreboard.php sources/reference-public-territory-decision-scoreboard.csv sources/reference-public-territory-decision-scoreboard.html sources/reference-public-territory-decision-scoreboard.md sources/reference-public-territory-decision-scoreboard-summary.csv\n- Fallback : route des preuves et assets, ne remplace pas validation locale, juridique, metier ou execution terrain\n\n### reference_public_territory_hospitality_stack_board\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : stack hospitalite territoire, hebergements classes, DATAtourisme vin, inclusion, copy blocks\n- Reprise : php scripts/build_reference_public_territory_hospitality_stack_board.php sources/reference-public-territory-hospitality-stack-board.csv sources/reference-public-territory-hospitality-stack-board.html sources/reference-public-territory-hospitality-stack-board.md sources/reference-public-territory-hospitality-stack-board-summary.csv\n- Fallback : contexte offre/readiness hospitalite, pas demande, frequentation, disponibilite, prix, satisfaction, qualite visite ou performance partenaire\n\n### reference_public_vignobles_decouvertes_destination_board\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : board public Vignobles & Decouvertes, destinations, KPI nationaux, reseau label, caveats\n- Reprise : php scripts/build_reference_public_vignobles_decouvertes_destination_board.php sources/reference-public-vignobles-decouvertes-destination-board.csv sources/reference-public-vignobles-decouvertes-destination-board.html sources/reference-public-vignobles-decouvertes-destination-board.md sources/reference-public-vignobles-decouvertes-destination-board-summary.csv\n- Fallback : label destination et benchmark France, pas demande locale, frequentation, depense, satisfaction, performance ou prestataires geocodes exhaustifs\n\n### reference_public_wine_tourism_kpi_atlas\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : atlas public KPI vin/oenotourisme, routes besoin utilisateur, assets, endpoints, copy blocks, sources, caveats\n- Reprise : php scripts/build_reference_public_wine_tourism_kpi_atlas.php sources/reference-public-wine-tourism-kpi-atlas.csv sources/reference-public-wine-tourism-kpi-atlas.html sources/reference-public-wine-tourism-kpi-atlas.md sources/reference-public-wine-tourism-kpi-atlas-summary.csv\n- Fallback : atlas de decision, ne remplace pas validation locale, juridique, metier, terrain ou Publication Gate\n\n### reference_publication_gate\n- Famille : internal_reference_product\n- Cadence : daily · stale 7j · critique 21j\n- Preuve attendue : decision publier/annoter/bloquer, erreurs, warnings\n- Reprise : verifier api/get_reference_publication_gate.php?format=md\n- Fallback : controle readiness, pas validation metier finale\n\n### reference_publishable_snippets\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : blocs publication, KPI slots, CTA, caveats\n- Reprise : verifier api/get_reference_publishable_snippets.php?format=md\n- Fallback : injecter les valeurs dynamiques avant diffusion\n\n### reference_publishable_territory_page_pack\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : blueprints page territoire, sections, champs cms, gates, blocs copiables\n- Reprise : verifier api/get_reference_publishable_territory_page.php?format=md\n- Fallback : pack page, ne remplace pas alimentation kpi certifiee ni controles runtime\n\n### reference_publishable_territory_profiles\n- Famille : internal_reference_product\n- Cadence : weekly · stale 7j · critique 30j\n- Preuve attendue : profils territoire publiables, labels source, mailles lisibles, scorecards, confiance, caveats\n- Reprise : lancer scripts/build_reference_territory_label_registry.php puis scripts/build_reference_publishable_territory_profiles.php\n- Fallback : profils brouillon, demandent revue labels preuves sources et approbation finale\n\n### reference_release_notes\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : notes de version, messages partageables, limites, promesses interdites\n- Reprise : verifier api/get_reference_release_notes.php?format=md\n- Fallback : ne remplace pas le Publication Gate ni la validation runtime\n\n### reference_score_hydration\n- Famille : internal_reference_product\n- Cadence : daily · stale 3j · critique 10j\n- Preuve attendue : hydratation scores, dependances KPI, Quality Gates, live/partial/pipeline\n- Reprise : verifier api/get_reference_score_hydration.php?format=md\n- Fallback : hydratation logique, ne remplace pas revue metier ni import DB\n\n### reference_source_acquisition_sprint\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : sprint acquisition source, gates acceptation, contacts producteurs, echantillons, decisions\n- Reprise : verifier api/get_reference_source_acquisition_sprint.php?format=md\n- Fallback : sprint acquisition, ne garantit pas reponse producteur ni publiabilite juridique\n\n### reference_source_attributions\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : attributions sources, licences, obligations, wording public, caveats\n- Reprise : verifier api/get_reference_source_attributions.php?format=md\n- Fallback : helper attribution, ne remplace pas revue juridique ni verification licence\n\n### reference_source_demand_backlog\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : backlog demande source, gaps utilisateurs, producteurs candidats, scoring, actions\n- Reprise : verifier api/get_reference_source_demand_backlog.php?format=md\n- Fallback : backlog recherche source, ne prouve pas disponibilite ni publiabilite juridique\n\n### reference_source_fidelity\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : score source, tier, cadence, preuve, besoin utilisateur, action relation/source\n- Reprise : verifier api/get_reference_source_fidelity.php?format=md\n- Fallback : score de gouvernance source, pas validation runtime des imports\n\n### reference_source_lineage\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : source->produit->KPI->exports->caveats, gaps gouvernance\n- Reprise : verifier api/get_reference_source_lineage.php?format=md\n- Fallback : lineage declaratif, pas import DB effectif\n\n### reference_source_normalization_backlog\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : priorites normalisation, fichiers cibles, tables cibles, impact utilisateur, caveats\n- Reprise : verifier api/get_reference_source_normalization_backlog.php?format=md\n- Fallback : backlog execution, ne prouve pas imports DB ni CSV normalises\n\n### reference_source_radar\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : radar nouvelles sources, scoring utilite, faisabilite, clarte juridique, prochaines actions\n- Reprise : verifier api/get_reference_source_radar.php?format=md\n- Fallback : radar source, ne vaut pas autorisation ingestion ou redistribution\n\n### reference_source_relationships\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : relation sources, tiers, demandes producteurs, risques, messages copiables\n- Reprise : verifier api/get_reference_source_relationships.php?format=md\n- Fallback : pack relationnel, ne garantit pas reponse producteur ni stabilite schema\n\n### reference_source_to_score_activation_queue\n- Famille : internal_reference_product\n- Cadence : weekly · stale 7j · critique 30j\n- Preuve attendue : file activation, sources recuperees, scripts, outputs attendus, scorecards, publication gates\n- Reprise : verifier api/get_reference_source_to_score_activation_queue.php?format=md\n- Fallback : file execution, ne prouve pas scripts lances ni sorties certifiees\n\n### reference_story_builder\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : segments utilisateurs, storylines KPI, sources requises, snippets markdown\n- Reprise : verifier api/get_reference_story_builder.php?format=md\n- Fallback : patrons narratifs a alimenter avec valeurs dynamiques et Publication Gate\n\n### reference_territory_brief\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : brief territoire, scores, sources, badges, blocs copiables, caveats\n- Reprise : verifier api/get_reference_territory_brief.php?format=md\n- Fallback : brief de composition, ne remplace pas normalisation source ni Publication Gate\n\n### reference_territory_comparison\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : comparaison territoire, axes KPI, badges, caveats, exports benchmark, template input\n- Reprise : verifier api/get_reference_territory_comparison.php?format=md\n- Fallback : comparaison de cadrage, remplacer placeholders par donnees normalisees\n\n### reference_territory_data_spine\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : spine territoire, mailles, cles, mappings sources, regles aggregation, sorties kpi\n- Reprise : verifier api/get_reference_territory_data_spine.php?format=md\n- Fallback : spine regles, ne prouve pas normalisation effective ni controles geographiques\n\n### reference_territory_kpi_crosswalk\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : cles jointure, recettes KPI territoire, sources, quality gates, caveats\n- Reprise : verifier api/get_reference_territory_kpi_crosswalk.php?format=md\n- Fallback : plan de rapprochement, ne prouve pas execution des jointures DB\n\n### reference_territory_kpi_formulas\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : formules KPI territoire, poids, sources, gates, regles normalisation\n- Reprise : verifier api/get_reference_territory_kpi_formulas.php?format=md\n- Fallback : formules logiques, ne prouvent pas valeurs sources ni jointures DB\n\n### reference_territory_kpi_score_table\n- Famille : internal_reference_product\n- Cadence : weekly · stale 7j · critique 30j\n- Preuve attendue : scores kpi territoire, confidence, copy, caveats, score hydration\n- Reprise : lancer scripts/build_reference_territory_kpi_scores.php puis verifier api/get_reference_territory_kpi_scores.php?format=md\n- Fallback : scores calcules, ne prouvent pas import db endpoint ou certification finale\n\n### reference_territory_kpi_scorecard_pack\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : scorecards kpi territoire, scores, layouts, wording, sources, caveats\n- Reprise : verifier api/get_reference_territory_kpi_scorecards.php?format=md\n- Fallback : scorecards modeles, ne prouvent pas recalcul runtime ni normalisation executee\n\n### reference_territory_page_kit\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : sections page territoire, layouts, KPI slots, sources, snippet HTML, caveats\n- Reprise : verifier api/get_reference_territory_page_kit.php?format=md\n- Fallback : kit de publication, valeurs a alimenter via endpoints actifs et Publication Gate\n\n### reference_territory_pilot_profiles\n- Famille : internal_reference_product\n- Cadence : weekly · stale 7j · critique 30j\n- Preuve attendue : profils pilotes territoire, score moyen, confidence, scorecards, copy, caveats\n- Reprise : lancer scripts/build_reference_territory_pilot_profiles.php puis verifier api/get_reference_territory_pilot_profiles.php?format=md\n- Fallback : profils pilotes, ne prouvent pas import db endpoint noms publics verifies ou publication finale\n\n### reference_territory_publication_bundle\n- Famille : internal_reference_product\n- Cadence : daily · stale 3j · critique 10j\n- Preuve attendue : bundle publication territoire, sections, live KPI, dependances, copy blocks\n- Reprise : verifier api/get_reference_territory_publication_bundle.php?format=md\n- Fallback : bundle logique, ne remplace pas validation runtime ni Publication Gate externe\n\n### reference_territory_score_calculator\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : scores ponderes, composants demo, overrides query, plafond pipeline, gate logique\n- Reprise : verifier api/get_reference_territory_scores.php?format=md\n- Fallback : calculateur logique, valeurs publiees a alimenter par sources actives\n\n### reference_territory_score_inputs\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : templates inputs scores, composants 0-100, gates, statuts source, urls score\n- Reprise : verifier api/get_reference_territory_score_inputs.php?format=md\n- Fallback : templates demo/cadrage, remplacer par valeurs sources actives\n\n### reference_territory_scorecard_public_bundle\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : bundle public scorecards, blocs copiables, page, deck, crm, citation, caveats\n- Reprise : verifier api/get_reference_territory_scorecard_public_bundle.php?format=md\n- Fallback : bundle copy, ne remplace pas valeurs certifiees ni validation runtime\n\n### reference_territory_share_pack\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : textes partageables territoire, canaux, caveats, copy blocks\n- Reprise : verifier api/get_reference_territory_share_pack.php?format=md\n- Fallback : pack editorial, ne remplace pas Publication Gate ni revue metier finale\n\n### reference_territory_source_fact_table\n- Famille : internal_reference_product\n- Cadence : weekly · stale 7j · critique 30j\n- Preuve attendue : faits territoire source kpi, sorties normalisees, score hydration, caveats\n- Reprise : lancer scripts/build_reference_territory_source_facts.php puis verifier api/get_reference_territory_source_facts.php?format=md\n- Fallback : table faits, ne prouve pas import db ni certification finale des scores\n\n### reference_trust_badges\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : badges confiance, modes KPI, etats source, gate publication, html css\n- Reprise : verifier api/get_reference_trust_badges.php?format=md\n- Fallback : badge visuel, ne remplace pas Claim Guard ni Publication Gate final\n\n### reference_user_feedback\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : feedback utilisateurs, copy intent, trust gap, source demand, friction publication\n- Reprise : verifier api/get_reference_user_feedback.php?format=md\n- Fallback : pack collecte feedback, ne remplace pas tracking produit ni analyse statistique\n\n### reference_user_need_kpi_map\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : besoins utilisateurs, kpi primaires, sources requises, gates, formats copiables\n- Reprise : verifier api/get_reference_user_need_kpi_map.php?format=md\n- Fallback : cartographie besoin, ne prouve pas publiabilite individuelle des kpi\n\n### reference_user_need_navigator\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : persona, decisions, KPI heros, produits routes\n- Reprise : verifier api/get_reference_user_need_navigator.php?format=md\n- Fallback : ne prouve pas la fraicheur des produits routes\n\n### reference_visual_system\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : tokens visuels, composants KPI, regles copy, do/dont\n- Reprise : verifier api/get_reference_visual_system.php?format=md\n- Fallback : guide la presentation mais ne remplace pas valeurs dynamiques ni Publication Gate\n\n### road_traffic_tmja\n- Famille : official_annual_csv_open_data\n- Cadence : annual · stale 420j · critique 760j\n- Preuve attendue : metadata data.gouv, dernier CSV TMJA, millesime, sections, departements, veh-km, caveat pression routiere\n- Reprise : php scripts/fetch_road_traffic_tmja.php sources/road-traffic-tmja-latest.csv sources/road-traffic-tmja-metadata.json sources/road-traffic-tmja-fetch-summary.csv && php scripts/normalize_road_traffic_tmja.php sources/road-traffic-tmja-latest.csv sources/road-traffic-tmja-department-summary.csv sources/road-traffic-tmja-summary.csv sources/road-traffic-tmja-metadata.json && php scripts/build_reference_public_road_traffic_tmja_board.php sources/reference-public-road-traffic-tmja-board.csv sources/reference-public-road-traffic-tmja-board.html sources/reference-public-road-traffic-tmja-board.md sources/reference-public-road-traffic-tmja-board-summary.csv sources/road-traffic-tmja-department-summary.csv sources/road-traffic-tmja-summary.csv\n- Fallback : conserver dernier millesime et bloquer tout claim demande/frequentation/emissions sans source complementaire\n\n### rpc_carpooling_trips\n- Famille : official_monthly_open_data\n- Cadence : monthly · stale 45j · critique 120j\n- Preuve attendue : ressource mensuelle RPC, mois, trajets, sieges passagers, departements, flux origine-destination, anonymisation/filtrage\n- Reprise : php scripts/fetch_rpc_carpooling_trips.php sources/rpc-carpooling-trips-latest.csv sources/rpc-carpooling-trips-latest-metadata.json sources/rpc-carpooling-trips-fetch-summary.csv && php scripts/normalize_rpc_carpooling_trips.php sources/rpc-carpooling-trips-latest.csv sources/rpc-carpooling-trips-department-summary.csv sources/rpc-carpooling-trips-top-flows.csv sources/rpc-carpooling-trips-summary.csv && php scripts/build_reference_public_rpc_carpooling_usage_board.php sources/reference-public-rpc-carpooling-usage-board.csv sources/reference-public-rpc-carpooling-usage-board.html sources/reference-public-rpc-carpooling-usage-board.md sources/reference-public-rpc-carpooling-usage-board-summary.csv\n- Fallback : utiliser comme usage covoiturage intermedie, pas covoiturage informel, demande oenotouristique, flux visiteurs, satisfaction ou desserte finale domaine\n\n### rpg_parcels\n- Famille : open_data_licence_ouverte\n- Cadence : annual · stale 400j · critique 760j\n- Preuve attendue : metadata RPG data.gouv, referentiel cultures 2024, code culture vigne, WFS parcelles, puis surface ha uniquement apres import agrege\n- Reprise : php scripts/fetch_rpg_vineyard_reference.php sources/rpg-dataset-metadata.json sources/rpg-cultures-2024.csv sources/rpg-vineyard-reference-fetch-summary.csv && php scripts/normalize_rpg_vineyard_reference.php sources/rpg-cultures-2024.csv sources/rpg-dataset-metadata.json sources/rpg-vineyard-culture-codes.csv sources/rpg-vineyard-reference-summary.csv && php scripts/build_reference_public_rpg_vineyard_activation_board.php sources/reference-public-rpg-vineyard-activation-board.csv sources/reference-public-rpg-vineyard-activation-board.html sources/reference-public-rpg-vineyard-activation-board.md sources/reference-public-rpg-vineyard-activation-board-summary.csv sources/rpg-vineyard-reference-summary.csv sources/rpg-vineyard-culture-codes.csv\n- Fallback : activation gardee: ne pas publier surface RPG, propriete domaine ou exhaustivite vigne sans import parcellaire, agregation territoriale et audit\n\n### sirene_insee\n- Famille : open_data_licence_ouverte\n- Cadence : monthly · stale 45j · critique 90j\n- Preuve attendue : SIREN/SIRET, date unite legale, adresse\n- Reprise : php scripts/ingest_sirene_insee.php\n- Fallback : laisser les rattachements entreprise en revue\n\n### sirene_wine_establishments\n- Famille : open_data_licence_ouverte\n- Cadence : monthly · stale 45j · critique 90j\n- Preuve attendue : stock etablissement Sirene, date fichier, mapping NAF vin, normaliseur, actifs seulement\n- Reprise : telecharger sources/sirene-stock-etablissements.csv puis lancer scripts/normalize_sirene_wine_establishments.php\n- Fallback : publier les volumes agreges avant tout usage nominatif ; codes adjacents a qualifier\n\n### sncf_passenger_stations\n- Famille : odbl_transport_open_data\n- Cadence : monthly · stale 45j · critique 120j\n- Preuve attendue : date transport.data.gouv/SNCF, compte gares voyageurs, geocodage, codes commune, segments DRG, codes UIC\n- Reprise : rafraichir sources/sncf-passenger-stations.csv puis lancer scripts/normalize_sncf_passenger_stations.php\n- Fallback : utiliser comme signal presence rail, pas temps de trajet, frequence, ponctualite, demande, accessibilite PMR ou desserte finale domaine\n\n### sncf_station_footfall\n- Famille : sncf_open_data\n- Cadence : annual · stale 400j · critique 760j\n- Preuve attendue : export SNCF frequentation-gares, annee la plus recente, voyageurs annuels, gares, segments DRG, caveat methodologique\n- Reprise : php scripts/fetch_sncf_station_footfall.php sources/sncf-station-footfall.csv sources/sncf-station-footfall-fetch-summary.csv && php scripts/normalize_sncf_station_footfall.php sources/sncf-station-footfall.csv sources/sncf-station-footfall-normalized.csv sources/sncf-station-footfall-summary.csv && php scripts/build_reference_public_sncf_station_footfall_board.php sources/reference-public-sncf-station-footfall-board.csv sources/reference-public-sncf-station-footfall-board.html sources/reference-public-sncf-station-footfall-board.md sources/reference-public-sncf-station-footfall-board-summary.csv\n- Fallback : utiliser comme flux voyageurs gare, pas motif oenotouristique, demande locale, frequence, horaires, ponctualite, capacite, accessibilite PMR, satisfaction ou desserte finale domaine\n\n### source_activation_status\n- Famille : internal_reference_product\n- Cadence : daily · stale 7j · critique 21j\n- Preuve attendue : presence fichiers, configuration DB, statut import\n- Reprise : verifier api/get_source_activation_status.php?format=md\n- Fallback : ne pas assimiler readiness fichiers a import DB reussi\n\n### source_maintenance_board\n- Famille : internal_reference_product\n- Cadence : daily · stale 7j · critique 21j\n- Preuve attendue : tickets P1/P2/P3, action, fallback, fraicheur\n- Reprise : verifier api/get_source_maintenance_board.php?format=md\n- Fallback : traiter P1/P2 avant publication externe\n\n### source_opportunity_radar\n- Famille : internal_reference_product\n- Cadence : monthly · stale 45j · critique 90j\n- Preuve attendue : sources candidates, score opportunite, URLs officielles\n- Reprise : verifier api/get_source_opportunity_radar.php?format=md\n- Fallback : ne pas presenter les sources candidates comme deja importees\n\n### territory_reference_page\n- Famille : internal_reference_product\n- Cadence : weekly · stale 14j · critique 45j\n- Preuve attendue : page HTML territoire, hydration endpoints, copy buttons, fallback statique, caveats\n- Reprise : ouvrir territory-reference.html et verifier les endpoints references\n- Fallback : prototype public, ne valide pas DB ni publication externe sans Gate\n\n### tourism_data_cartography\n- Famille : official_meta_catalog_csv\n- Cadence : monthly · stale 45j · critique 120j\n- Preuve attendue : metadata data.gouv, snapshot CSV data.economie, compte sources, compte P1, caveat meta-source\n- Reprise : php scripts/fetch_tourism_data_cartography.php sources/tourism-data-cartography.csv sources/tourism-data-cartography-metadata.json sources/tourism-data-cartography-fetch-summary.csv && php scripts/normalize_tourism_data_cartography.php sources/tourism-data-cartography.csv sources/tourism-data-cartography-normalized.csv sources/tourism-data-cartography-summary.csv sources/tourism-data-cartography-metadata.json && php scripts/build_reference_public_tourism_data_cartography_board.php sources/reference-public-tourism-data-cartography-board.csv sources/reference-public-tourism-data-cartography-board.html sources/reference-public-tourism-data-cartography-board.md sources/reference-public-tourism-data-cartography-board-summary.csv sources/tourism-data-cartography-normalized.csv sources/tourism-data-cartography-summary.csv\n- Fallback : conserver le dernier snapshot et qualifier manuellement les P1 si le portail est indisponible\n\n### tourisme_handicap\n- Famille : open_data_licence_ouverte\n- Cadence : quarterly · stale 120j · critique 240j\n- Preuve attendue : dataset data.gouv, date de mise a jour, familles couvertes\n- Reprise : php scripts/ingest_macro_indicators.php kind=oenotourism file=sources/tourisme-handicap-indicators.csv\n- Fallback : utiliser uniquement comme cadre accessibilite\n\n### tourisme_handicap_establishments\n- Famille : open_data_licence_ouverte\n- Cadence : monthly · stale 45j · critique 90j\n- Preuve attendue : date data.gouv/data.economie, compte etablissements actifs, familles handicap, coordonnees\n- Reprise : rafraichir sources/tourisme-handicap-establishments.csv puis lancer scripts/normalize_tourisme_handicap_establishments.php\n- Fallback : garder le dernier snapshot et publier avec caveat label accessibilite\n\n### zfe_low_emission_zones\n- Famille : official_geojson_open_data\n- Cadence : monthly · stale 45j · critique 120j\n- Preuve attendue : metadata transport.data.gouv.fr, BNZFE aires/voies, autorites, regles actives, exceptions, caveat contrainte acces\n- Reprise : php scripts/fetch_zfe_low_emission_zones.php sources/zfe-low-emission-zones-aires.geojson sources/zfe-low-emission-zones-voies.geojson sources/zfe-low-emission-zones-metadata.json sources/zfe-low-emission-zones-fetch-summary.csv && php scripts/normalize_zfe_low_emission_zones.php sources/zfe-low-emission-zones-aires.geojson sources/zfe-low-emission-zones-voies.geojson sources/zfe-low-emission-zones-authority-summary.csv sources/zfe-low-emission-zones-summary.csv sources/zfe-low-emission-zones-metadata.json && php scripts/build_reference_public_zfe_low_emission_zones_board.php sources/reference-public-zfe-low-emission-zones-board.csv sources/reference-public-zfe-low-emission-zones-board.html sources/reference-public-zfe-low-emission-zones-board.md sources/reference-public-zfe-low-emission-zones-board-summary.csv sources/zfe-low-emission-zones-authority-summary.csv sources/zfe-low-emission-zones-summary.csv\n- Fallback : contexte reglementaire acces uniquement, pas preuve demande, emissions evitees, qualite air, respect effectif ou performance commerciale\n\n"
}