{"ok":true,"generated_at":"2026-07-08T02:05:33+02:00","summary":{"source_count":110,"governed_sources":90,"catalog_only_sources":20,"product_count":104},"sources":[{"source_key":"reference_publication_gate","lineage_status":"governed","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","product_keys":["reference_kpi_publication_certificates","reference_profile_publication_queue","reference_user_need_navigator","reference_kpi_scorecard","reference_api_manifest","reference_launch_readiness","reference_citation_kit","reference_integration_guide","reference_data_contracts","reference_release_notes","reference_claim_guard","reference_live_kpi_board","reference_territory_score_calculator","reference_territory_kpi_formulas","territory_reference_page","reference_territory_page_kit","reference_data_product_index"],"product_labels":["KPI Publication Certificates","Profile Publication Queue","User Need Navigator","Reference KPI Scorecard","Reference API Manifest","Reference Launch Readiness","Reference Citation Kit","Reference Integration Guide","Reference Data Contracts","Reference Release Notes","Reference Claim Guard","Live KPI Board","Territory Score Calculator","Territory KPI Formula Book","Territory Reference Page","Territory Page Kit","Data Product Index"],"primary_kpis":["certificate_count","source_count","publication_status","badge_key","copy_receipt","schema_count","status_count","output_count","route_count","persona","hero_kpis","product_keys","missing_product_count","family_count","aggregation_level","source_products","visual_treatment","product_count","publish_count","complete_count","watch_count","endpoint_count","check_count","required_count","recommended_count","artifact_available_count","artifact_missing_count","citation_count","official_count","internal_count","license_label","caveat","recipe_count","markdown_endpoint","json_endpoint","csv_endpoint","contract_count","catalog_linked_count","required_fields","quality_gates","section_count","unique_product_count","shareable_count","runtime_validation_count","mode_count","source_state_count","channel_count","allowed_claims","forbidden_claims","live_count","partial_count","demo_count","blocked_count","display_mode","average_score","publishable_with_caveat_count","pipeline_count","score","publishability","metric_count","normalization_rule_count","formula","weights","minimum_gate","reference_score","publication_gate","copy_markdown","layout_count","kpi_slots","source_stack","html_snippet","stage_counts","kpi_count"],"exports":["/api/get_reference_kpi_publication_certificates.php?format=md","/api/get_reference_profile_publication_queue.php?format=md","/api/get_reference_user_need_navigator.php?format=md","/api/get_reference_kpi_scorecard.php?format=md","/api/get_reference_api_manifest.php?format=md","/api/get_reference_launch_readiness.php?format=md","/api/get_reference_citation_kit.php?format=md","/api/get_reference_integration_guide.php?format=md","/api/get_reference_data_contracts.php?format=md","/api/get_reference_release_notes.php?format=md","/api/get_reference_claim_guard.php?format=md","/api/get_reference_live_kpi_board.php?format=md","/api/get_reference_territory_scores.php?format=md","/api/get_reference_territory_kpi_formulas.php?format=md","/docs/territory-reference-page.md","/api/get_reference_territory_page_kit.php?format=md","/api/get_reference_data_product_index.php?format=md"],"caveats":["Certificat logique : ne prouve pas imports DB, normalisations, tests runtime ou revue metier.","Queue publication : controle editorial, ne vaut pas approbation finale, import DB ou validation endpoint.","Navigator éditorial : il route vers les produits, mais ne prouve pas la fraîcheur ni l’import effectif de chaque source.","Scorecard methode : elle structure les familles KPI mais ne remplace pas les valeurs dynamiques ni le Publication Gate.","Manifeste déclaratif issu du catalogue : vérifier le Publication Gate et les imports avant usage externe.","Checklist déclarative : elle ne remplace pas les imports DB, la validation runtime ni la validation métier finale.","Kit éditorial : vérifier l’URL, la fraîcheur et le Publication Gate avant diffusion externe.","Guide d’intégration : les exemples doivent conserver les caveats et vérifier le Publication Gate avant affichage externe.","Contrats logiques : ils documentent les champs attendus mais ne remplacent pas les tests runtime ni la validation des imports.","Release notes éditoriales : elles ne remplacent pas le Publication Gate ni la validation runtime.","Garde-fou editorial : ne remplace pas revue juridique, metier ou Publication Gate final.","Mode affichage logique : ne remplace pas revue metier finale ni Publication Gate externe.","Calculateur logique avec composants demo/overrides : les valeurs publiees doivent venir des sources actives.","Formules logiques : elles ne prouvent pas que les valeurs sources et jointures DB sont executees.","Page statique hydratee best-effort : les valeurs doivent etre controlees par le Publication Gate avant partage externe.","Kit de publication : les valeurs doivent venir des endpoints actifs et passer le Publication Gate.","Index de navigation : il reflète le catalogue produit configuré, pas la fraîcheur réelle des données importées."],"product_count":17,"kpi_count":73,"export_count":17,"copy_line":"reference_publication_gate alimente 17 produit(s) et 73 KPI slot(s). Action : verifier api/get_reference_publication_gate.php?format=md"},{"source_key":"reference_products","lineage_status":"governed","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","product_keys":["reference_copy_studio","reference_user_need_navigator","reference_publishable_snippets","reference_kpi_scorecard","reference_dashboard_blueprint","reference_source_lineage","reference_api_manifest","reference_kpi_dictionary","reference_kpi_card_deck"],"product_labels":["Reference Copy Studio","User Need Navigator","Publishable Snippet Board","Reference KPI Scorecard","Reference Dashboard Blueprint","Source-KPI Lineage Matrix","Reference API Manifest","Dictionnaire KPI Winerix","KPI Card Deck"],"primary_kpis":["persona","decision","metrics_to_pull","products","caveat","route_count","hero_kpis","product_keys","missing_product_count","snippet_count","kpi_slots","clipboard_block","family_count","aggregation_level","source_products","visual_treatment","section_count","layout","visual_direction","source_count","governed_sources","catalog_only_sources","product_count","publish_count","complete_count","watch_count","endpoint_count","definition","calculation","source_keys","copy_hint","title","value_placeholder","copy_sentence","style"],"exports":["/api/get_reference_copy_studio.php?format=md","/api/get_reference_user_need_navigator.php?format=md","/api/get_reference_publishable_snippets.php?format=md","/api/get_reference_kpi_scorecard.php?format=md","/api/get_reference_dashboard_blueprint.php?format=md","/api/get_reference_source_lineage.php?format=md","/api/get_reference_api_manifest.php?format=md","/api/get_reference_kpi_dictionary.php?format=md","/api/get_reference_kpi_card_deck.php?format=md"],"caveats":["Briefs éditoriaux : ils orientent la copie mais ne remplacent pas les chiffres dynamiques du KPI Pack.","Navigator éditorial : il route vers les produits, mais ne prouve pas la fraîcheur ni l’import effectif de chaque source.","Blocs éditoriaux : injecter les valeurs dynamiques et vérifier le Publication Gate avant diffusion externe.","Scorecard methode : elle structure les familles KPI mais ne remplace pas les valeurs dynamiques ni le Publication Gate.","Blueprint UI : il structure la page mais ne remplace pas les valeurs dynamiques, les imports ni le Publication Gate.","Lineage catalogue : il prouve les liens déclarés source/produit, pas l’import DB effectif ni la fraîcheur runtime.","Manifeste déclaratif issu du catalogue : vérifier le Publication Gate et les imports avant usage externe.","Dictionnaire sémantique : ne remplace pas les valeurs dynamiques ni les contrôles d’import.","Cartes éditoriales : remplacer les placeholders par les valeurs dynamiques avant publication."],"product_count":9,"kpi_count":35,"export_count":9,"copy_line":"reference_products alimente 9 produit(s) et 35 KPI slot(s). Action : verifier app/reference_product_catalog.php et /referentiels/produits"},{"source_key":"datatourisme_oenotourism","lineage_status":"governed","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","product_keys":["wine_reference_pack","datatourisme_oenotourism","reference_oenotourism_demand_offer","insee_tourism_occupancy","bnsc_bike_parking","qualite_tourisme_establishments","reference_citation_kit","reference_territory_kpi_crosswalk"],"product_labels":["Reference Pack Winerix","Offre locale DATAtourisme","Oenotourism Demand Offer Pack","Insee Tourism Occupancy Pack","BNSC Bike Parking Pack","Qualite Tourisme Establishments Pack","Reference Citation Kit","Territory KPI Crosswalk"],"primary_kpis":["reference_score","confidence_score","active_source_count","evidence_pack","offers","very_relevant","cities","places","experiences","routes","events","pillar_count","source_count","score_recipe","copy_blocks","trust_badge_keys","zip_available","sample_latest_period","sample_measure_count","sample_geo_level_count","zip_file_count","sampled_parkings","sample_commune_count","sample_capacity","sample_covered_count","sample_lit_count","sampled_establishments","wine_related_establishments","geocoded_rate","region_count","activity_count","citation_count","official_count","internal_count","license_label","caveat","join_key_count","recipe_count","source_stack","kpi_slots","quality_gates"],"exports":["/api/reference_export.php?type=wine_reference_pack&format=md","/api/reference_export.php?type=oenotourism_offers&format=md&min_relevance=55","/api/get_reference_oenotourism_demand_offer.php?format=md","/api/get_insee_tourism_occupancy.php?format=md","/api/get_bnsc_bike_parking.php?format=md","/api/get_qualite_tourisme_establishments.php?format=md","/api/get_reference_citation_kit.php?format=md","/api/get_reference_territory_kpi_crosswalk.php?format=md"],"caveats":["Synthèse de maturité : dépend des imports locaux et des caveats de chaque source.","Offre publiée par les territoires, pas fréquentation ni exhaustivité réelle.","Pack de lecture : il clarifie les usages mais ne remplace pas normalisation, hydratation KPI ou Publication Gate.","Demande touristique generale : ne pas attribuer au vin sans rapprochement territoire/offre oenotouristique.","Source OSM/ODbL contributive : signal mobilite douce non exhaustif, pas label Accueil Velo ni frequentation.","Label qualite accueil : ne mesure pas frequentation ni preuve vin sans rapprochement DATAtourisme/V&D/commune viticole.","Kit éditorial : vérifier l’URL, la fraîcheur et le Publication Gate avant diffusion externe.","Plan de rapprochement : ne prouve pas que les jointures DB ont ete executees ou validees."],"product_count":8,"kpi_count":41,"export_count":8,"copy_line":"datatourisme_oenotourism alimente 8 produit(s) et 41 KPI slot(s). Action : php scripts/ingest_datatourisme_oenotourism.php file=sources/datatourisme-oenotourism-offers.csv min_relevance=55"},{"source_key":"reference_kpi_dictionary","lineage_status":"governed","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","product_keys":["reference_user_need_navigator","reference_publishable_snippets","reference_kpi_scorecard","reference_source_lineage","reference_territory_kpi_formulas","reference_kpi_card_deck","reference_data_product_index","reference_publication_gate"],"product_labels":["User Need Navigator","Publishable Snippet Board","Reference KPI Scorecard","Source-KPI Lineage Matrix","Territory KPI Formula Book","KPI Card Deck","Data Product Index","Publication Gate"],"primary_kpis":["route_count","persona","hero_kpis","product_keys","missing_product_count","snippet_count","kpi_slots","clipboard_block","family_count","aggregation_level","source_products","visual_treatment","source_count","governed_sources","catalog_only_sources","product_count","metric_count","normalization_rule_count","formula","weights","minimum_gate","title","value_placeholder","copy_sentence","caveat","style","stage_counts","kpi_count","status","fail_count","warn_count","gates","activation_summary"],"exports":["/api/get_reference_user_need_navigator.php?format=md","/api/get_reference_publishable_snippets.php?format=md","/api/get_reference_kpi_scorecard.php?format=md","/api/get_reference_source_lineage.php?format=md","/api/get_reference_territory_kpi_formulas.php?format=md","/api/get_reference_kpi_card_deck.php?format=md","/api/get_reference_data_product_index.php?format=md","/api/get_reference_publication_gate.php?format=md"],"caveats":["Navigator éditorial : il route vers les produits, mais ne prouve pas la fraîcheur ni l’import effectif de chaque source.","Blocs éditoriaux : injecter les valeurs dynamiques et vérifier le Publication Gate avant diffusion externe.","Scorecard methode : elle structure les familles KPI mais ne remplace pas les valeurs dynamiques ni le Publication Gate.","Lineage catalogue : il prouve les liens déclarés source/produit, pas l’import DB effectif ni la fraîcheur runtime.","Formules logiques : elles ne prouvent pas que les valeurs sources et jointures DB sont executees.","Cartes éditoriales : remplacer les placeholders par les valeurs dynamiques avant publication.","Index de navigation : il reflète le catalogue produit configuré, pas la fraîcheur réelle des données importées.","Gate de readiness : ne remplace pas les tests d’import DB ni la validation métier finale."],"product_count":8,"kpi_count":33,"export_count":8,"copy_line":"reference_kpi_dictionary alimente 8 produit(s) et 33 KPI slot(s). Action : verifier api/get_reference_kpi_dictionary.php?format=md"},{"source_key":"eambrosia_gi","lineage_status":"governed","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","product_keys":["wine_reference_pack","eambrosia_gi","inao_siqo_products","appellation_evidence_pack","regulatory_gaps","reference_citation_kit"],"product_labels":["Reference Pack Winerix","Preuve réglementaire eAmbrosia","Produits SIQO INAO vin","Preuve appellation complète","Contrôle écarts appellations/eAmbrosia","Reference Citation Kit"],"primary_kpis":["reference_score","confidence_score","active_source_count","evidence_pack","gi_count","registered_count","pdo_count","pgi_count","specification_urls","products","published_products","appellations","denominations","signs","complete_evidence","coverage_rate","siqo_matched","inao_area_matched","eambrosia_matched","matched","missing_eambrosia","orphan_eambrosia","match_rate","citation_count","official_count","internal_count","license_label","caveat"],"exports":["/api/reference_export.php?type=wine_reference_pack&format=md","/api/reference_export.php?type=eambrosia_gis&format=md","/api/reference_export.php?type=inao_siqo_products&format=md&wine_only=1","/api/reference_export.php?type=appellation_evidence_pack&format=md","/api/reference_export.php?type=appellation_regulatory_gaps&format=md","/api/get_reference_citation_kit.php?format=md"],"caveats":["Synthèse de maturité : dépend des imports locaux et des caveats de chaque source.","Preuve UE à croiser avec INAO/COMAGRI et libellés locaux.","Source produit officielle : ne remplace pas les aires communales INAO ni les cahiers des charges eAmbrosia.","Matching normalisé accents/casse/ponctuation, mais encore textuel : relire les libellés avant usage juridique ou publication forte.","Matching textuel normalisé : relire avant usage juridique.","Kit éditorial : vérifier l’URL, la fraîcheur et le Publication Gate avant diffusion externe."],"product_count":6,"kpi_count":28,"export_count":6,"copy_line":"eambrosia_gi alimente 6 produit(s) et 28 KPI slot(s). Action : php scripts/ingest_eambrosia_gi.php file=sources/eambrosia-gi.csv"},{"source_key":"insee_tourism_capacity_communes","lineage_status":"governed","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","product_keys":["reference_oenotourism_demand_offer","insee_tourism_occupancy","insee_tourism_capacity_communes","source_opportunity_radar","reference_citation_kit","reference_territory_kpi_crosswalk"],"product_labels":["Oenotourism Demand Offer Pack","Insee Tourism Occupancy Pack","Capacité touristique communale INSEE","Source Opportunity Radar","Reference Citation Kit","Territory KPI Crosswalk"],"primary_kpis":["pillar_count","source_count","score_recipe","copy_blocks","trust_badge_keys","zip_available","sample_latest_period","sample_measure_count","sample_geo_level_count","zip_file_count","communes","total_tourism_capacity","hotel_rooms","camping_pitches","other_accommodation_bedplaces","opportunity_score","priority","impact","effort","confidence_score","citation_count","official_count","internal_count","license_label","caveat","join_key_count","recipe_count","source_stack","kpi_slots","quality_gates"],"exports":["/api/get_reference_oenotourism_demand_offer.php?format=md","/api/get_insee_tourism_occupancy.php?format=md","/api/reference_export.php?type=insee_tourism_capacity_communes&format=md","/api/get_source_opportunity_radar.php?format=md","/api/get_reference_citation_kit.php?format=md","/api/get_reference_territory_kpi_crosswalk.php?format=md"],"caveats":["Pack de lecture : il clarifie les usages mais ne remplace pas normalisation, hydratation KPI ou Publication Gate.","Demande touristique generale : ne pas attribuer au vin sans rapprochement territoire/offre oenotouristique.","Capacité officielle au 1er janvier : pas fréquentation réelle, pas nuitées, pas motivation vin.","Radar de priorisation : les sources listées ne sont pas toutes encore importées ni validées métier.","Kit éditorial : vérifier l’URL, la fraîcheur et le Publication Gate avant diffusion externe.","Plan de rapprochement : ne prouve pas que les jointures DB ont ete executees ou validees."],"product_count":6,"kpi_count":30,"export_count":6,"copy_line":"insee_tourism_capacity_communes alimente 6 produit(s) et 30 KPI slot(s). Action : php scripts/ingest_insee_tourism_capacity_communes.php file=sources/insee-tourism-capacity-communes-2026.csv"},{"source_key":"reference_kpi_scorecard","lineage_status":"governed","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","product_keys":["reference_dashboard_blueprint","reference_narrative_deck","reference_data_room_index","reference_story_builder","reference_embed_kit","reference_visual_system"],"product_labels":["Reference Dashboard Blueprint","Reference Narrative Deck","Reference Data Room Index","Reference Story Builder","Reference Embed Kit","Reference Visual System"],"primary_kpis":["section_count","layout","kpi_slots","product_keys","visual_direction","slide_count","speaker_note","caveat","collection_count","unique_product_count","markdown_export_count","copy_order","segment_count","storyline_count","core_kpis","required_sources","visual_family","block_count","css_tokens","copy_target","snippet_format","publication_rule","family_count","component_count","copy_rule_count","visual_treatment","copy_rule"],"exports":["/api/get_reference_dashboard_blueprint.php?format=md","/api/get_reference_narrative_deck.php?format=md","/api/get_reference_data_room_index.php?format=md","/api/get_reference_story_builder.php?format=md","/api/get_reference_embed_kit.php?format=md","/api/get_reference_visual_system.php?format=md"],"caveats":["Blueprint UI : il structure la page mais ne remplace pas les valeurs dynamiques, les imports ni le Publication Gate.","Deck narratif : injecter les valeurs dynamiques depuis les produits et vérifier le Publication Gate avant partage externe.","Index de navigation : vérifier les exports produits et le Publication Gate avant partage externe.","Les recits sont des patrons de publication : les valeurs doivent venir des endpoints actifs et du Publication Gate.","Kit de presentation : les snippets doivent etre alimentes par les endpoints actifs et controles par le Publication Gate.","Système visuel : il guide la présentation mais ne remplace pas les valeurs dynamiques ni le Publication Gate."],"product_count":6,"kpi_count":27,"export_count":6,"copy_line":"reference_kpi_scorecard alimente 6 produit(s) et 27 KPI slot(s). Action : verifier api/get_reference_kpi_scorecard.php?format=md"},{"source_key":"reference_source_fidelity","lineage_status":"governed","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","product_keys":["reference_source_attributions","reference_source_relationships","reference_normalization_runbook","reference_source_normalization_backlog","reference_territory_kpi_formulas","territory_reference_page"],"product_labels":["Source Attribution Pack","Source Relationship Pack","Reference Normalization Runbook","Source Normalization Backlog","Territory KPI Formula Book","Territory Reference Page"],"primary_kpis":["source_count","license_count","odbl_source_count","attribution","publication_caveat","tier_count","tier_counts","message_templates","relationship_goal","step_count","priority","input_file","output_file","command","item_count","top_priority_source","status_counts","target_file","publication_gain","metric_count","normalization_rule_count","formula","weights","minimum_gate","reference_score","section_count","publication_gate","copy_markdown"],"exports":["/api/get_reference_source_attributions.php?format=md","/api/get_reference_source_relationships.php?format=md","/api/get_reference_normalization_runbook.php?format=md","/api/get_reference_source_normalization_backlog.php?format=md","/api/get_reference_territory_kpi_formulas.php?format=md","/docs/territory-reference-page.md"],"caveats":["Attribution helper : ne remplace pas revue juridique finale ni verification de licence au moment de publication.","Pack relationnel : ne garantit pas reponse producteur ni stabilite future des schemas/licences.","Runbook execution : ne prouve pas que les scripts ont ete lances ni que les imports DB sont valides.","Backlog d execution : ne prouve pas que normalisations CSV ou imports DB sont realises.","Formules logiques : elles ne prouvent pas que les valeurs sources et jointures DB sont executees.","Page statique hydratee best-effort : les valeurs doivent etre controlees par le Publication Gate avant partage externe."],"product_count":6,"kpi_count":28,"export_count":6,"copy_line":"reference_source_fidelity alimente 6 produit(s) et 28 KPI slot(s). Action : verifier api/get_reference_source_fidelity.php?format=md"},{"source_key":"reference_source_radar","lineage_status":"governed","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","product_keys":["openagenda_wine_events","bnlc_carpooling_areas","insee_bpe_equipment","merimee_heritage_monuments","datatourisme_fidelity_monitor","reference_authority_index"],"product_labels":["OpenAgenda Wine Event Signal","BNLC Carpooling Areas","Insee BPE Equipment","Merimee Heritage Monuments","DATAtourisme Fidelity Monitor","Reference Authority Index"],"primary_kpis":["wine_event_signal","territory_activation_score","tourism_demand_context","wine_relevance_score","carpool_access_signal","low_carbon_access_score","access_signal","tourism_service_density","territory_readiness_score","culture_leisure_context","access_equipment_signal","heritage_pull_signal","culture_wine_context_score","territory_story_proof","heritage_signal","datatourisme_freshness_score","coverage_by_region","source_relationship_signal","regional_feed_watchlist","source_count","average_authority_score","normalization_ready_count","copy_ready_count","pillar_count"],"exports":["/api/get_openagenda_wine_events.php?format=md","/api/get_bnlc_carpooling_areas.php?format=md","/api/get_insee_bpe_equipment.php?format=md","/api/get_merimee_heritage_monuments.php?format=md","/api/get_datatourisme_fidelity_monitor.php?format=md","/api/get_reference_authority_index.php?format=md"],"caveats":["OpenAgenda contributif : couverture non exhaustive, taxonomy variable, frequentation non mesuree.","BNLC : presence infrastructure, pas usage reel, disponibilite instantanee ou desserte finale vers les domaines.","BPE : presence d equipements, pas qualite, frequentation ou satisfaction visiteur.","Merimee : patrimoine protege, pas frequentation, ouverture au public ou impact oenotouristique direct.","DATAtourisme : fraicheur ressource ne prouve pas exhaustivite ni qualite des POI territoriaux.","Index autorite : mesure la maturite source/KPI/produit, pas la verite terrain exhaustive ni les validations runtime."],"product_count":6,"kpi_count":24,"export_count":6,"copy_line":"reference_source_radar alimente 6 produit(s) et 24 KPI slot(s). Action : verifier api/get_reference_source_radar.php?format=md"},{"source_key":"reference_territory_scorecard_public_bundle","lineage_status":"governed","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","product_keys":["reference_source_to_score_activation_queue","reference_activation_outputs_manifest","reference_territory_kpi_score_table","reference_territory_pilot_profiles","reference_publishable_territory_profiles","reference_profile_publication_queue"],"product_labels":["Source to Score Activation Queue","Activation Outputs Manifest","Territory KPI Score Table","Territory Pilot Profiles","Publishable Territory Profiles","Profile Publication Queue"],"primary_kpis":["item_count","p1_count","normalize_next_count","publication_ready_count","output_count","activated_count","pending_heavy_count","schema_count","input_count","scorecard_count","rule_count","status_count"],"exports":["/api/get_reference_source_to_score_activation_queue.php?format=md","/api/get_reference_activation_outputs_manifest.php?format=md","/api/get_reference_territory_kpi_scores.php?format=md","/api/get_reference_territory_pilot_profiles.php?format=md","/api/get_reference_publishable_territory_profiles.php?format=md","/api/get_reference_profile_publication_queue.php?format=md"],"caveats":["Activation queue : prepare l execution, ne prouve pas scripts lances, sorties generees ou valeurs certifiees.","Manifeste activation : ne prouve pas import DB, validation endpoint ou valeurs publiques certifiees.","Scores KPI : calcules depuis sorties normalisees, ne prouvent pas import DB, validation endpoint ou certification finale.","Profils pilotes : generes depuis scores locaux, ne prouvent pas import DB, validation endpoint ou noms publics verifies.","Profils publiables : brouillons data/copy, demandent revue label, preuves, sources et approbation finale.","Queue publication : controle editorial, ne vaut pas approbation finale, import DB ou validation endpoint."],"product_count":6,"kpi_count":12,"export_count":6,"copy_line":"reference_territory_scorecard_public_bundle alimente 6 produit(s) et 12 KPI slot(s). Action : verifier api/get_reference_territory_scorecard_public_bundle.php?format=md"},{"source_key":"inao_aoc_aop_commune_areas","lineage_status":"governed","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","product_keys":["wine_reference_pack","inao_aoc_aop_communes","inao_siqo_products","appellation_evidence_pack","reference_citation_kit"],"product_labels":["Reference Pack Winerix","Aires AOC/AOP INAO par commune","Produits SIQO INAO vin","Preuve appellation complète","Reference Citation Kit"],"primary_kpis":["reference_score","confidence_score","active_source_count","evidence_pack","area_rows","areas","communes","matched_winerix_areas","departments","products","published_products","appellations","denominations","signs","complete_evidence","coverage_rate","siqo_matched","inao_area_matched","eambrosia_matched","citation_count","official_count","internal_count","license_label","caveat"],"exports":["/api/reference_export.php?type=wine_reference_pack&format=md","/api/reference_export.php?type=inao_aoc_aop_communes&format=md","/api/reference_export.php?type=inao_siqo_products&format=md&wine_only=1","/api/reference_export.php?type=appellation_evidence_pack&format=md","/api/get_reference_citation_kit.php?format=md"],"caveats":["Synthèse de maturité : dépend des imports locaux et des caveats de chaque source.","AOC/AOP toutes familles : filtrer/croiser avec les appellations vin Winerix, COMAGRI ou eAmbrosia avant usage juridique.","Source produit officielle : ne remplace pas les aires communales INAO ni les cahiers des charges eAmbrosia.","Matching normalisé accents/casse/ponctuation, mais encore textuel : relire les libellés avant usage juridique ou publication forte.","Kit éditorial : vérifier l’URL, la fraîcheur et le Publication Gate avant diffusion externe."],"product_count":5,"kpi_count":24,"export_count":5,"copy_line":"inao_aoc_aop_commune_areas alimente 5 produit(s) et 24 KPI slot(s). Action : php scripts/ingest_inao_aoc_aop_communes.php file=sources/inao-aoc-aop-communes.csv"},{"source_key":"kpi_pack","lineage_status":"governed","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","product_keys":["user_need_packs","reference_copy_studio","reference_kpi_dictionary","reference_kpi_card_deck","reference_kpi_cards"],"product_labels":["Packs KPI par usage","Reference Copy Studio","Dictionnaire KPI Winerix","KPI Card Deck","KPI Cards hydratées"],"primary_kpis":["paste_ready","decision","next_action","persona","metrics_to_pull","products","caveat","definition","calculation","source_keys","copy_hint","title","value_placeholder","copy_sentence","style","value","hydrated","copy_sentence_hydrated"],"exports":["/api/reference_export.php?type=kpi_user_packs&format=md","/api/get_reference_copy_studio.php?format=md","/api/get_reference_kpi_dictionary.php?format=md","/api/get_reference_kpi_card_deck.php?format=md","/api/get_reference_kpi_cards.php?format=md"],"caveats":["Formulation prête à coller : garder les caveats et le périmètre.","Briefs éditoriaux : ils orientent la copie mais ne remplacent pas les chiffres dynamiques du KPI Pack.","Dictionnaire sémantique : ne remplace pas les valeurs dynamiques ni les contrôles d’import.","Cartes éditoriales : remplacer les placeholders par les valeurs dynamiques avant publication.","Hydratation best-effort : si la DB échoue, les placeholders restent visibles."],"product_count":5,"kpi_count":18,"export_count":5,"copy_line":"kpi_pack alimente 5 produit(s) et 18 KPI slot(s). Action : verifier app/kpi_pack.php et api/reference_export.php?type=kpi_pack"},{"source_key":"reference_api_manifest","lineage_status":"governed","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","product_keys":["reference_launch_readiness","reference_integration_guide","reference_data_room_index","reference_data_contracts","reference_embed_kit"],"product_labels":["Reference Launch Readiness","Reference Integration Guide","Reference Data Room Index","Reference Data Contracts","Reference Embed Kit"],"primary_kpis":["check_count","required_count","recommended_count","artifact_available_count","artifact_missing_count","endpoint_count","recipe_count","markdown_endpoint","json_endpoint","csv_endpoint","collection_count","unique_product_count","markdown_export_count","product_keys","copy_order","contract_count","catalog_linked_count","missing_product_count","required_fields","quality_gates","block_count","css_tokens","copy_target","snippet_format","publication_rule"],"exports":["/api/get_reference_launch_readiness.php?format=md","/api/get_reference_integration_guide.php?format=md","/api/get_reference_data_room_index.php?format=md","/api/get_reference_data_contracts.php?format=md","/api/get_reference_embed_kit.php?format=md"],"caveats":["Checklist déclarative : elle ne remplace pas les imports DB, la validation runtime ni la validation métier finale.","Guide d’intégration : les exemples doivent conserver les caveats et vérifier le Publication Gate avant affichage externe.","Index de navigation : vérifier les exports produits et le Publication Gate avant partage externe.","Contrats logiques : ils documentent les champs attendus mais ne remplacent pas les tests runtime ni la validation des imports.","Kit de presentation : les snippets doivent etre alimentes par les endpoints actifs et controles par le Publication Gate."],"product_count":5,"kpi_count":25,"export_count":5,"copy_line":"reference_api_manifest alimente 5 produit(s) et 25 KPI slot(s). Action : verifier api/get_reference_api_manifest.php?format=md"},{"source_key":"reference_claim_guard","lineage_status":"governed","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","product_keys":["reference_territory_brief","reference_kpi_aggregation_rules","reference_source_attributions","reference_public_footnotes","reference_trust_badges"],"product_labels":["Territory Brief Composer","KPI Aggregation Rules","Source Attribution Pack","Public Footnote Pack","Trust Badge Pack"],"primary_kpis":["score_count","source_count","badge_count","copy_blocks","source_stack","territory_level_count","rule_count","recipe_count","territory_levels","rules","license_count","odbl_source_count","attribution","publication_caveat","footnote_count","template_count","license_counts","short_footnote","full_footnote","family","tone","html","copy_rule"],"exports":["/api/get_reference_territory_brief.php?format=md","/api/get_reference_kpi_aggregation_rules.php?format=md","/api/get_reference_source_attributions.php?format=md","/api/get_reference_public_footnotes.php?format=md","/api/get_reference_trust_badges.php?format=md"],"caveats":["Brief de composition : ne remplace pas normalisation source, validation DB, revue metier ou Publication Gate.","Regles methodologiques : ne prouvent pas normalisation, import ou validation metier des sources.","Attribution helper : ne remplace pas revue juridique finale ni verification de licence au moment de publication.","Footnotes publication : ne remplacent pas revue juridique finale ni verification de licence a date.","Badge visuel : ne remplace pas Claim Guard, Publication Gate ou revue metier finale."],"product_count":5,"kpi_count":23,"export_count":5,"copy_line":"reference_claim_guard alimente 5 produit(s) et 23 KPI slot(s). Action : verifier api/get_reference_claim_guard.php?format=md"},{"source_key":"reference_territory_kpi_scorecard_pack","lineage_status":"governed","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","product_keys":["reference_territory_scorecard_public_bundle","reference_source_to_score_activation_queue","reference_activation_outputs_manifest","reference_territory_source_fact_table","reference_territory_kpi_score_table"],"product_labels":["Territory Scorecard Public Bundle","Source to Score Activation Queue","Activation Outputs Manifest","Territory Source Fact Table","Territory KPI Score Table"],"primary_kpis":["audience_count","block_count","package_count","checklist_count","scorecard_count","item_count","p1_count","normalize_next_count","publication_ready_count","output_count","activated_count","pending_heavy_count","schema_count","input_count"],"exports":["/api/get_reference_territory_scorecard_public_bundle.php?format=md","/api/get_reference_source_to_score_activation_queue.php?format=md","/api/get_reference_activation_outputs_manifest.php?format=md","/api/get_reference_territory_source_facts.php?format=md","/api/get_reference_territory_kpi_scores.php?format=md"],"caveats":["Bundle copy : structure les blocs publics, ne remplace pas valeurs certifiees ni validation runtime.","Activation queue : prepare l execution, ne prouve pas scripts lances, sorties generees ou valeurs certifiees.","Manifeste activation : ne prouve pas import DB, validation endpoint ou valeurs publiques certifiees.","Table faits : ne prouve pas import DB, validation endpoint ou certification finale des scores publics.","Scores KPI : calcules depuis sorties normalisees, ne prouvent pas import DB, validation endpoint ou certification finale."],"product_count":5,"kpi_count":14,"export_count":5,"copy_line":"reference_territory_kpi_scorecard_pack alimente 5 produit(s) et 14 KPI slot(s). Action : verifier api/get_reference_territory_kpi_scorecards.php?format=md"},{"source_key":"ban_address_reference","lineage_status":"governed","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","product_keys":["bnsc_bike_parking","ban_address_quality","source_opportunity_radar","reference_territory_kpi_crosswalk"],"product_labels":["BNSC Bike Parking Pack","Qualité adresse BAN","Source Opportunity Radar","Territory KPI Crosswalk"],"primary_kpis":["sampled_parkings","sample_commune_count","sample_capacity","sample_covered_count","sample_lit_count","audit_rows","geocoded_rate","average_address_score","low_quality_rows","certified_address_rows","commune_count","opportunity_score","priority","impact","effort","confidence_score","join_key_count","recipe_count","source_stack","kpi_slots","quality_gates"],"exports":["/api/get_bnsc_bike_parking.php?format=md","/api/get_ban_address_quality.php?format=md","/api/get_source_opportunity_radar.php?format=md","/api/get_reference_territory_kpi_crosswalk.php?format=md"],"caveats":["Source OSM/ODbL contributive : signal mobilite douce non exhaustif, pas label Accueil Velo ni frequentation.","La BAN qualifie adresse et coordonnees ; elle ne prouve ni ouverture au public, ni pertinence vin, ni frequentation.","Radar de priorisation : les sources listées ne sont pas toutes encore importées ni validées métier.","Plan de rapprochement : ne prouve pas que les jointures DB ont ete executees ou validees."],"product_count":4,"kpi_count":21,"export_count":4,"copy_line":"ban_address_reference alimente 4 produit(s) et 21 KPI slot(s). Action : remplir sources/ban-address-quality-input.csv puis lancer scripts/normalize_ban_address_quality.php"},{"source_key":"inao_siqo_products","lineage_status":"governed","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","product_keys":["wine_reference_pack","inao_siqo_products","appellation_evidence_pack","reference_citation_kit"],"product_labels":["Reference Pack Winerix","Produits SIQO INAO vin","Preuve appellation complète","Reference Citation Kit"],"primary_kpis":["reference_score","confidence_score","active_source_count","evidence_pack","products","published_products","appellations","denominations","signs","complete_evidence","coverage_rate","siqo_matched","inao_area_matched","eambrosia_matched","citation_count","official_count","internal_count","license_label","caveat"],"exports":["/api/reference_export.php?type=wine_reference_pack&format=md","/api/reference_export.php?type=inao_siqo_products&format=md&wine_only=1","/api/reference_export.php?type=appellation_evidence_pack&format=md","/api/get_reference_citation_kit.php?format=md"],"caveats":["Synthèse de maturité : dépend des imports locaux et des caveats de chaque source.","Source produit officielle : ne remplace pas les aires communales INAO ni les cahiers des charges eAmbrosia.","Matching normalisé accents/casse/ponctuation, mais encore textuel : relire les libellés avant usage juridique ou publication forte.","Kit éditorial : vérifier l’URL, la fraîcheur et le Publication Gate avant diffusion externe."],"product_count":4,"kpi_count":19,"export_count":4,"copy_line":"inao_siqo_products alimente 4 produit(s) et 19 KPI slot(s). Action : php scripts/ingest_inao_siqo_products.php file=sources/inao-siqo-products.csv"},{"source_key":"reference_citation_kit","lineage_status":"governed","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","product_keys":["reference_source_attributions","reference_integration_guide","reference_data_room_index","reference_embed_kit"],"product_labels":["Source Attribution Pack","Reference Integration Guide","Reference Data Room Index","Reference Embed Kit"],"primary_kpis":["source_count","license_count","odbl_source_count","attribution","publication_caveat","endpoint_count","recipe_count","markdown_endpoint","json_endpoint","csv_endpoint","collection_count","unique_product_count","markdown_export_count","product_keys","copy_order","block_count","css_tokens","copy_target","snippet_format","publication_rule"],"exports":["/api/get_reference_source_attributions.php?format=md","/api/get_reference_integration_guide.php?format=md","/api/get_reference_data_room_index.php?format=md","/api/get_reference_embed_kit.php?format=md"],"caveats":["Attribution helper : ne remplace pas revue juridique finale ni verification de licence au moment de publication.","Guide d’intégration : les exemples doivent conserver les caveats et vérifier le Publication Gate avant affichage externe.","Index de navigation : vérifier les exports produits et le Publication Gate avant partage externe.","Kit de presentation : les snippets doivent etre alimentes par les endpoints actifs et controles par le Publication Gate."],"product_count":4,"kpi_count":20,"export_count":4,"copy_line":"reference_citation_kit alimente 4 produit(s) et 20 KPI slot(s). Action : verifier api/get_reference_citation_kit.php?format=md"},{"source_key":"reference_kpi_aggregation_rules","lineage_status":"governed","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","product_keys":["reference_kpi_publication_certificates","reference_territory_data_spine","reference_user_need_kpi_map","bnsc_bike_parking"],"product_labels":["KPI Publication Certificates","Territory Data Spine","User Need KPI Map","BNSC Bike Parking Pack"],"primary_kpis":["certificate_count","source_count","publication_status","badge_key","copy_receipt","grain_count","source_mapping_count","aggregation_rule_count","output_table_count","persona_count","need_count","unique_kpi_count","copy_block_count","sampled_parkings","sample_commune_count","sample_capacity","sample_covered_count","sample_lit_count"],"exports":["/api/get_reference_kpi_publication_certificates.php?format=md","/api/get_reference_territory_data_spine.php?format=md","/api/get_reference_user_need_kpi_map.php?format=md","/api/get_bnsc_bike_parking.php?format=md"],"caveats":["Certificat logique : ne prouve pas imports DB, normalisations, tests runtime ou revue metier.","Spine territoriale : definit les regles, ne prouve pas normalisation effective ni controles geographiques runtime.","Cartographie besoin : ne prouve pas la publiabilite individuelle des KPI sans certificat et attribution source.","Source OSM/ODbL contributive : signal mobilite douce non exhaustif, pas label Accueil Velo ni frequentation."],"product_count":4,"kpi_count":18,"export_count":4,"copy_line":"reference_kpi_aggregation_rules alimente 4 produit(s) et 18 KPI slot(s). Action : verifier api/get_reference_kpi_aggregation_rules.php?format=md"},{"source_key":"reference_kpi_copy_pack","lineage_status":"governed","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","product_keys":["reference_territory_kpi_scorecard_pack","reference_territory_scorecard_public_bundle","reference_user_need_kpi_map","reference_publishable_territory_page_pack"],"product_labels":["Territory KPI Scorecards","Territory Scorecard Public Bundle","User Need KPI Map","Publishable Territory Page Pack"],"primary_kpis":["card_count","rule_count","layout_count","authority_source_count","spine_source_mapping_count","audience_count","block_count","package_count","checklist_count","scorecard_count","persona_count","need_count","unique_kpi_count","copy_block_count","blueprint_count","section_count","cms_field_count","gate_count"],"exports":["/api/get_reference_territory_kpi_scorecards.php?format=md","/api/get_reference_territory_scorecard_public_bundle.php?format=md","/api/get_reference_user_need_kpi_map.php?format=md","/api/get_reference_publishable_territory_page.php?format=md"],"caveats":["Scorecards : modeles de KPI agreges et copy, ne prouvent pas recalcul runtime ni normalisation executee.","Bundle copy : structure les blocs publics, ne remplace pas valeurs certifiees ni validation runtime.","Cartographie besoin : ne prouve pas la publiabilite individuelle des KPI sans certificat et attribution source.","Pack page publiable : assemble la structure, mais ne remplace pas alimentation KPI, certificats ou controles runtime."],"product_count":4,"kpi_count":18,"export_count":4,"copy_line":"reference_kpi_copy_pack alimente 4 produit(s) et 18 KPI slot(s). Action : verifier api/get_reference_kpi_copy_pack.php?format=md"},{"source_key":"reference_live_kpi_board","lineage_status":"governed","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","product_keys":["reference_trust_badges","reference_claim_guard","reference_territory_share_pack","reference_territory_publication_bundle"],"product_labels":["Trust Badge Pack","Reference Claim Guard","Territory Share Pack","Territory Publication Bundle"],"primary_kpis":["badge_count","family","tone","html","copy_rule","mode_count","source_state_count","channel_count","allowed_claims","forbidden_claims","live_count","partial_count","demo_count","copy","section_count","copy_blocks"],"exports":["/api/get_reference_trust_badges.php?format=md","/api/get_reference_claim_guard.php?format=md","/api/get_reference_territory_share_pack.php?format=md","/api/get_reference_territory_publication_bundle.php?format=md"],"caveats":["Badge visuel : ne remplace pas Claim Guard, Publication Gate ou revue metier finale.","Garde-fou editorial : ne remplace pas revue juridique, metier ou Publication Gate final.","Pack editorial : ne remplace pas Publication Gate, validation runtime ni revue metier finale.","Bundle logique : ne remplace pas validation runtime, imports DB, revue metier ou Publication Gate externe."],"product_count":4,"kpi_count":16,"export_count":4,"copy_line":"reference_live_kpi_board alimente 4 produit(s) et 16 KPI slot(s). Action : verifier api/get_reference_live_kpi_board.php?format=md"},{"source_key":"reference_page_publication_kit","lineage_status":"governed","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","product_keys":["reference_public_distribution","reference_user_feedback","reference_user_need_kpi_map","reference_publishable_territory_page_pack"],"product_labels":["Public Distribution Pack","User Feedback Pack","User Need KPI Map","Publishable Territory Page Pack"],"primary_kpis":["audience_count","bundle_count","page_kit_sections","source_relationship_count","copy_email","segment_count","question_count","score_count","copy_ready_score","source_demand_score","persona_count","need_count","unique_kpi_count","copy_block_count","blueprint_count","section_count","cms_field_count","gate_count"],"exports":["/api/get_reference_public_distribution.php?format=md","/api/get_reference_user_feedback.php?format=md","/api/get_reference_user_need_kpi_map.php?format=md","/api/get_reference_publishable_territory_page.php?format=md"],"caveats":["Pack distribution : ne prouve pas execution endpoints, normalisation donnees ou revue juridique/metier.","Pack de collecte feedback : ne remplace pas tracking produit, CRM ou analyse statistique des reponses.","Cartographie besoin : ne prouve pas la publiabilite individuelle des KPI sans certificat et attribution source.","Pack page publiable : assemble la structure, mais ne remplace pas alimentation KPI, certificats ou controles runtime."],"product_count":4,"kpi_count":18,"export_count":4,"copy_line":"reference_page_publication_kit alimente 4 produit(s) et 18 KPI slot(s). Action : verifier api/get_reference_page_publication_kit.php?format=md"},{"source_key":"reference_public_footnotes","lineage_status":"governed","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","product_keys":["reference_page_publication_kit","reference_public_distribution","reference_territory_scorecard_public_bundle","reference_kpi_copy_pack"],"product_labels":["Page Publication Kit","Public Distribution Pack","Territory Scorecard Public Bundle","KPI Copy Pack"],"primary_kpis":["section_count","checklist_count","certificate_count","footnote_count","copy_blocks","audience_count","bundle_count","page_kit_sections","source_relationship_count","copy_email","block_count","package_count","scorecard_count","item_count","rule_count","copy_ready_status"],"exports":["/api/get_reference_page_publication_kit.php?format=md","/api/get_reference_public_distribution.php?format=md","/api/get_reference_territory_scorecard_public_bundle.php?format=md","/api/get_reference_kpi_copy_pack.php?format=md"],"caveats":["Kit de publication : ne prouve pas normalisations, imports DB, tests runtime ou revues metier/juridiques.","Pack distribution : ne prouve pas execution endpoints, normalisation donnees ou revue juridique/metier.","Bundle copy : structure les blocs publics, ne remplace pas valeurs certifiees ni validation runtime.","Pack copie : ne remplace pas les certificats de publication, attributions source ou controles de licence."],"product_count":4,"kpi_count":16,"export_count":4,"copy_line":"reference_public_footnotes alimente 4 produit(s) et 16 KPI slot(s). Action : verifier api/get_reference_public_footnotes.php?format=md"},{"source_key":"reference_publishable_territory_page_pack","lineage_status":"governed","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","product_keys":["reference_authority_index","reference_territory_kpi_scorecard_pack","reference_territory_scorecard_public_bundle","reference_territory_pilot_profiles"],"product_labels":["Reference Authority Index","Territory KPI Scorecards","Territory Scorecard Public Bundle","Territory Pilot Profiles"],"primary_kpis":["source_count","average_authority_score","normalization_ready_count","copy_ready_count","pillar_count","card_count","rule_count","layout_count","authority_source_count","spine_source_mapping_count","audience_count","block_count","package_count","checklist_count","scorecard_count","schema_count","output_count"],"exports":["/api/get_reference_authority_index.php?format=md","/api/get_reference_territory_kpi_scorecards.php?format=md","/api/get_reference_territory_scorecard_public_bundle.php?format=md","/api/get_reference_territory_pilot_profiles.php?format=md"],"caveats":["Index autorite : mesure la maturite source/KPI/produit, pas la verite terrain exhaustive ni les validations runtime.","Scorecards : modeles de KPI agreges et copy, ne prouvent pas recalcul runtime ni normalisation executee.","Bundle copy : structure les blocs publics, ne remplace pas valeurs certifiees ni validation runtime.","Profils pilotes : generes depuis scores locaux, ne prouvent pas import DB, validation endpoint ou noms publics verifies."],"product_count":4,"kpi_count":17,"export_count":4,"copy_line":"reference_publishable_territory_page_pack alimente 4 produit(s) et 17 KPI slot(s). Action : verifier api/get_reference_publishable_territory_page.php?format=md"},{"source_key":"reference_source_relationships","lineage_status":"governed","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","product_keys":["reference_public_distribution","reference_user_feedback","reference_source_demand_backlog","reference_source_acquisition_sprint"],"product_labels":["Public Distribution Pack","User Feedback Pack","Source Demand Backlog","Source Acquisition Sprint"],"primary_kpis":["audience_count","bundle_count","page_kit_sections","source_relationship_count","copy_email","segment_count","question_count","score_count","copy_ready_score","source_demand_score","item_count","research_now_count","recommended_status","target_kpis","phase_count","acceptance_gate_count","message_templates"],"exports":["/api/get_reference_public_distribution.php?format=md","/api/get_reference_user_feedback.php?format=md","/api/get_reference_source_demand_backlog.php?format=md","/api/get_reference_source_acquisition_sprint.php?format=md"],"caveats":["Pack distribution : ne prouve pas execution endpoints, normalisation donnees ou revue juridique/metier.","Pack de collecte feedback : ne remplace pas tracking produit, CRM ou analyse statistique des reponses.","Backlog de recherche : ne prouve pas disponibilite producteur, accord de partage ou publiabilite juridique.","Sprint acquisition : ne garantit pas reponse producteur, disponibilite donnees ou publiabilite juridique."],"product_count":4,"kpi_count":17,"export_count":4,"copy_line":"reference_source_relationships alimente 4 produit(s) et 17 KPI slot(s). Action : verifier api/get_reference_source_relationships.php?format=md"},{"source_key":"reference_territory_kpi_formulas","lineage_status":"governed","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","product_keys":["reference_kpi_aggregation_rules","reference_kpi_dependency_map","reference_territory_score_inputs","reference_territory_score_calculator"],"product_labels":["KPI Aggregation Rules","KPI Dependency Map","Territory Score Input Templates","Territory Score Calculator"],"primary_kpis":["territory_level_count","rule_count","recipe_count","territory_levels","rules","score_count","component_dependency_count","unique_source_count","normalization_output_count","template_count","component_value","source_status","publication_gate","score_url","average_score","publishable_with_caveat_count","pipeline_count","score","publishability"],"exports":["/api/get_reference_kpi_aggregation_rules.php?format=md","/api/get_reference_kpi_dependency_map.php?format=md","/api/get_reference_territory_score_inputs.php?format=md","/api/get_reference_territory_scores.php?format=md"],"caveats":["Regles methodologiques : ne prouvent pas normalisation, import ou validation metier des sources.","Carte logique : ne verifie ni existence fichier, ni qualite donnees, ni import DB.","Templates de demonstration/cadrage : remplacer par valeurs sources actives avant publication externe.","Calculateur logique avec composants demo/overrides : les valeurs publiees doivent venir des sources actives."],"product_count":4,"kpi_count":19,"export_count":4,"copy_line":"reference_territory_kpi_formulas alimente 4 produit(s) et 19 KPI slot(s). Action : verifier api/get_reference_territory_kpi_formulas.php?format=md"},{"source_key":"reference_territory_page_kit","lineage_status":"governed","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","product_keys":["reference_publishable_territory_page_pack","reference_territory_publication_bundle","reference_territory_score_calculator","territory_reference_page"],"product_labels":["Publishable Territory Page Pack","Territory Publication Bundle","Territory Score Calculator","Territory Reference Page"],"primary_kpis":["blueprint_count","section_count","cms_field_count","gate_count","copy_block_count","live_count","partial_count","demo_count","copy_blocks","average_score","publishable_with_caveat_count","pipeline_count","score","publishability","reference_score","source_count","publication_gate","copy_markdown"],"exports":["/api/get_reference_publishable_territory_page.php?format=md","/api/get_reference_territory_publication_bundle.php?format=md","/api/get_reference_territory_scores.php?format=md","/docs/territory-reference-page.md"],"caveats":["Pack page publiable : assemble la structure, mais ne remplace pas alimentation KPI, certificats ou controles runtime.","Bundle logique : ne remplace pas validation runtime, imports DB, revue metier ou Publication Gate externe.","Calculateur logique avec composants demo/overrides : les valeurs publiees doivent venir des sources actives.","Page statique hydratee best-effort : les valeurs doivent etre controlees par le Publication Gate avant partage externe."],"product_count":4,"kpi_count":18,"export_count":4,"copy_line":"reference_territory_page_kit alimente 4 produit(s) et 18 KPI slot(s). Action : verifier api/get_reference_territory_page_kit.php?format=md"},{"source_key":"reference_trust_badges","lineage_status":"governed","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","product_keys":["reference_territory_brief","reference_territory_comparison","reference_kpi_publication_certificates","agencebio_organic_wine"],"product_labels":["Territory Brief Composer","Territory Comparison Pack","KPI Publication Certificates","Agence Bio Organic Wine Pack"],"primary_kpis":["score_count","source_count","badge_count","copy_blocks","source_stack","territory_count","axis_count","row_count","badge_keys","certificate_count","publication_status","badge_key","copy_receipt","wine_related_operators","department_count","city_count","certifier_count","source_mode"],"exports":["/api/get_reference_territory_brief.php?format=md","/api/get_reference_territory_comparison.php?format=md","/api/get_reference_kpi_publication_certificates.php?format=md","/api/get_agencebio_organic_wine.php?format=md"],"caveats":["Brief de composition : ne remplace pas normalisation source, validation DB, revue metier ou Publication Gate.","Comparaison de cadrage : remplacer les placeholders par donnees normalisees par territoire avant publication.","Certificat logique : ne prouve pas imports DB, normalisations, tests runtime ou revue metier.","Annuaire declaratif Agence Bio : publier d abord des agregats territoire ; le groupe culture VI de l historique communal inclut une faible part de raisin de table."],"product_count":4,"kpi_count":18,"export_count":4,"copy_line":"reference_trust_badges alimente 4 produit(s) et 18 KPI slot(s). Action : verifier api/get_reference_trust_badges.php?format=md"},{"source_key":"reference_user_need_kpi_map","lineage_status":"governed","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","product_keys":["reference_source_radar","reference_authority_index","reference_territory_data_spine","reference_publishable_territory_page_pack"],"product_labels":["Reference Source Radar","Reference Authority Index","Territory Data Spine","Publishable Territory Page Pack"],"primary_kpis":["candidate_count","p1_count","sample_now_count","fidelize_now_count","research_now_count","source_count","average_authority_score","normalization_ready_count","copy_ready_count","pillar_count","grain_count","source_mapping_count","aggregation_rule_count","output_table_count","blueprint_count","section_count","cms_field_count","gate_count","copy_block_count"],"exports":["/api/get_reference_source_radar.php?format=md","/api/get_reference_authority_index.php?format=md","/api/get_reference_territory_data_spine.php?format=md","/api/get_reference_publishable_territory_page.php?format=md"],"caveats":["Radar source : chaque source doit etre reverifiee cote licence, schema, maille et fraicheur avant ingestion ou publication.","Index autorite : mesure la maturite source/KPI/produit, pas la verite terrain exhaustive ni les validations runtime.","Spine territoriale : definit les regles, ne prouve pas normalisation effective ni controles geographiques runtime.","Pack page publiable : assemble la structure, mais ne remplace pas alimentation KPI, certificats ou controles runtime."],"product_count":4,"kpi_count":19,"export_count":4,"copy_line":"reference_user_need_kpi_map alimente 4 produit(s) et 19 KPI slot(s). Action : verifier api/get_reference_user_need_kpi_map.php?format=md"},{"source_key":"reference_visual_system","lineage_status":"governed","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","product_keys":["reference_trust_badges","reference_territory_page_kit","reference_story_builder","reference_embed_kit"],"product_labels":["Trust Badge Pack","Territory Page Kit","Reference Story Builder","Reference Embed Kit"],"primary_kpis":["badge_count","family","tone","html","copy_rule","section_count","layout_count","kpi_slots","source_stack","html_snippet","segment_count","storyline_count","core_kpis","required_sources","visual_family","block_count","css_tokens","copy_target","snippet_format","publication_rule"],"exports":["/api/get_reference_trust_badges.php?format=md","/api/get_reference_territory_page_kit.php?format=md","/api/get_reference_story_builder.php?format=md","/api/get_reference_embed_kit.php?format=md"],"caveats":["Badge visuel : ne remplace pas Claim Guard, Publication Gate ou revue metier finale.","Kit de publication : les valeurs doivent venir des endpoints actifs et passer le Publication Gate.","Les recits sont des patrons de publication : les valeurs doivent venir des endpoints actifs et du Publication Gate.","Kit de presentation : les snippets doivent etre alimentes par les endpoints actifs et controles par le Publication Gate."],"product_count":4,"kpi_count":20,"export_count":4,"copy_line":"reference_visual_system alimente 4 produit(s) et 20 KPI slot(s). Action : verifier api/get_reference_visual_system.php?format=md"},{"source_key":"sirene_wine_establishments","lineage_status":"governed","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","product_keys":["agencebio_organic_wine","source_opportunity_radar","sirene_wine_establishments","reference_territory_kpi_crosswalk"],"product_labels":["Agence Bio Organic Wine Pack","Source Opportunity Radar","Établissements vin SIRENE","Territory KPI Crosswalk"],"primary_kpis":["wine_related_operators","department_count","city_count","certifier_count","source_mode","opportunity_score","priority","impact","effort","confidence_score","establishments","sirens","core_wine_establishments","communes","naf_codes","join_key_count","recipe_count","source_stack","kpi_slots","quality_gates"],"exports":["/api/get_agencebio_organic_wine.php?format=md","/api/get_source_opportunity_radar.php?format=md","/api/reference_export.php?type=sirene_wine_establishments&format=md","/api/get_reference_territory_kpi_crosswalk.php?format=md"],"caveats":["Annuaire declaratif Agence Bio : publier d abord des agregats territoire ; le groupe culture VI de l historique communal inclut une faible part de raisin de table.","Radar de priorisation : les sources listées ne sont pas toutes encore importées ni validées métier.","Activité administrative déclarée : codes adjacents non exclusivement vin et obligations RGPD pour usages nominatifs.","Plan de rapprochement : ne prouve pas que les jointures DB ont ete executees ou validees."],"product_count":4,"kpi_count":20,"export_count":4,"copy_line":"sirene_wine_establishments alimente 4 produit(s) et 20 KPI slot(s). Action : telecharger sources/sirene-stock-etablissements.csv puis lancer scripts/normalize_sirene_wine_establishments.php"},{"source_key":"source_activation_status","lineage_status":"governed","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","product_keys":["source_maintenance_board","reference_launch_readiness","reference_release_notes","reference_publication_gate"],"product_labels":["Board maintenance sources","Reference Launch Readiness","Reference Release Notes","Publication Gate"],"primary_kpis":["publication_action","freshness_status","priority","copy_ticket","check_count","required_count","recommended_count","artifact_available_count","artifact_missing_count","section_count","unique_product_count","shareable_count","runtime_validation_count","status","fail_count","warn_count","gates","activation_summary"],"exports":["/api/get_source_maintenance_board.php?format=md","/api/get_reference_launch_readiness.php?format=md","/api/get_reference_release_notes.php?format=md","/api/get_reference_publication_gate.php?format=md"],"caveats":["Board opérationnel : ne prouve pas l’import DB ni la validité métier des données.","Checklist déclarative : elle ne remplace pas les imports DB, la validation runtime ni la validation métier finale.","Release notes éditoriales : elles ne remplacent pas le Publication Gate ni la validation runtime.","Gate de readiness : ne remplace pas les tests d’import DB ni la validation métier finale."],"product_count":4,"kpi_count":18,"export_count":4,"copy_line":"source_activation_status alimente 4 produit(s) et 18 KPI slot(s). Action : verifier api/get_source_activation_status.php?format=md"},{"source_key":"reference_authority_index","lineage_status":"governed","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","product_keys":["reference_territory_data_spine","reference_territory_kpi_scorecard_pack","reference_source_to_score_activation_queue"],"product_labels":["Territory Data Spine","Territory KPI Scorecards","Source to Score Activation Queue"],"primary_kpis":["grain_count","source_mapping_count","aggregation_rule_count","output_table_count","card_count","rule_count","layout_count","authority_source_count","spine_source_mapping_count","item_count","p1_count","normalize_next_count","publication_ready_count"],"exports":["/api/get_reference_territory_data_spine.php?format=md","/api/get_reference_territory_kpi_scorecards.php?format=md","/api/get_reference_source_to_score_activation_queue.php?format=md"],"caveats":["Spine territoriale : definit les regles, ne prouve pas normalisation effective ni controles geographiques runtime.","Scorecards : modeles de KPI agreges et copy, ne prouvent pas recalcul runtime ni normalisation executee.","Activation queue : prepare l execution, ne prouve pas scripts lances, sorties generees ou valeurs certifiees."],"product_count":3,"kpi_count":13,"export_count":3,"copy_line":"reference_authority_index alimente 3 produit(s) et 13 KPI slot(s). Action : verifier api/get_reference_authority_index.php?format=md"},{"source_key":"reference_dashboard_blueprint","lineage_status":"governed","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","product_keys":["reference_narrative_deck","reference_launch_readiness","reference_visual_system"],"product_labels":["Reference Narrative Deck","Reference Launch Readiness","Reference Visual System"],"primary_kpis":["slide_count","kpi_slots","product_keys","speaker_note","caveat","check_count","required_count","recommended_count","artifact_available_count","artifact_missing_count","family_count","component_count","copy_rule_count","visual_treatment","copy_rule"],"exports":["/api/get_reference_narrative_deck.php?format=md","/api/get_reference_launch_readiness.php?format=md","/api/get_reference_visual_system.php?format=md"],"caveats":["Deck narratif : injecter les valeurs dynamiques depuis les produits et vérifier le Publication Gate avant partage externe.","Checklist déclarative : elle ne remplace pas les imports DB, la validation runtime ni la validation métier finale.","Système visuel : il guide la présentation mais ne remplace pas les valeurs dynamiques ni le Publication Gate."],"product_count":3,"kpi_count":15,"export_count":3,"copy_line":"reference_dashboard_blueprint alimente 3 produit(s) et 15 KPI slot(s). Action : verifier api/get_reference_dashboard_blueprint.php?format=md"},{"source_key":"reference_kpi_dependency_map","lineage_status":"governed","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","product_keys":["reference_source_demand_backlog","reference_territory_publication_bundle","reference_score_hydration"],"product_labels":["Source Demand Backlog","Territory Publication Bundle","Score Hydration Board"],"primary_kpis":["item_count","research_now_count","source_demand_score","recommended_status","target_kpis","live_count","partial_count","demo_count","section_count","copy_blocks","hydrated_ready_count","partially_hydratable_count","blocked_by_normalization_count","hydration_rate"],"exports":["/api/get_reference_source_demand_backlog.php?format=md","/api/get_reference_territory_publication_bundle.php?format=md","/api/get_reference_score_hydration.php?format=md"],"caveats":["Backlog de recherche : ne prouve pas disponibilite producteur, accord de partage ou publiabilite juridique.","Bundle logique : ne remplace pas validation runtime, imports DB, revue metier ou Publication Gate externe.","Hydratation logique : ne remplace pas revue metier, Publication Gate ni import DB valide."],"product_count":3,"kpi_count":14,"export_count":3,"copy_line":"reference_kpi_dependency_map alimente 3 produit(s) et 14 KPI slot(s). Action : verifier api/get_reference_kpi_dependency_map.php?format=md"},{"source_key":"reference_kpi_publication_certificates","lineage_status":"governed","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","product_keys":["reference_public_footnotes","reference_page_publication_kit","reference_kpi_copy_pack"],"product_labels":["Public Footnote Pack","Page Publication Kit","KPI Copy Pack"],"primary_kpis":["footnote_count","template_count","license_counts","short_footnote","full_footnote","section_count","checklist_count","certificate_count","copy_blocks","item_count","rule_count","copy_ready_status"],"exports":["/api/get_reference_public_footnotes.php?format=md","/api/get_reference_page_publication_kit.php?format=md","/api/get_reference_kpi_copy_pack.php?format=md"],"caveats":["Footnotes publication : ne remplacent pas revue juridique finale ni verification de licence a date.","Kit de publication : ne prouve pas normalisations, imports DB, tests runtime ou revues metier/juridiques.","Pack copie : ne remplace pas les certificats de publication, attributions source ou controles de licence."],"product_count":3,"kpi_count":12,"export_count":3,"copy_line":"reference_kpi_publication_certificates alimente 3 produit(s) et 12 KPI slot(s). Action : verifier api/get_reference_kpi_publication_certificates.php?format=md"},{"source_key":"reference_normalization_runbook","lineage_status":"governed","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","product_keys":["reference_kpi_dependency_map","reference_normalization_quality_gates","reference_normalization_readiness"],"product_labels":["KPI Dependency Map","Normalization Quality Gates","Reference Normalization Readiness"],"primary_kpis":["score_count","component_dependency_count","unique_source_count","normalization_output_count","qa_ready_count","blocked_count","status_counts","missing_columns","row_count","ready_to_run_count","normalized_file_available_count","missing_input_count","next_ready_source"],"exports":["/api/get_reference_kpi_dependency_map.php?format=md","/api/get_reference_normalization_quality_gates.php?format=md","/api/get_reference_normalization_readiness.php?format=md"],"caveats":["Carte logique : ne verifie ni existence fichier, ni qualite donnees, ni import DB.","QA structurelle : ne remplace pas revue metier, statistiques ni validation import DB.","Readiness fichiers : ne valide ni contenu CSV, ni execution script, ni import DB."],"product_count":3,"kpi_count":13,"export_count":3,"copy_line":"reference_normalization_runbook alimente 3 produit(s) et 13 KPI slot(s). Action : verifier api/get_reference_normalization_runbook.php?format=md"},{"source_key":"reference_publishable_snippets","lineage_status":"governed","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","product_keys":["reference_dashboard_blueprint","reference_narrative_deck","reference_visual_system"],"product_labels":["Reference Dashboard Blueprint","Reference Narrative Deck","Reference Visual System"],"primary_kpis":["section_count","layout","kpi_slots","product_keys","visual_direction","slide_count","speaker_note","caveat","family_count","component_count","copy_rule_count","visual_treatment","copy_rule"],"exports":["/api/get_reference_dashboard_blueprint.php?format=md","/api/get_reference_narrative_deck.php?format=md","/api/get_reference_visual_system.php?format=md"],"caveats":["Blueprint UI : il structure la page mais ne remplace pas les valeurs dynamiques, les imports ni le Publication Gate.","Deck narratif : injecter les valeurs dynamiques depuis les produits et vérifier le Publication Gate avant partage externe.","Système visuel : il guide la présentation mais ne remplace pas les valeurs dynamiques ni le Publication Gate."],"product_count":3,"kpi_count":13,"export_count":3,"copy_line":"reference_publishable_snippets alimente 3 produit(s) et 13 KPI slot(s). Action : verifier api/get_reference_publishable_snippets.php?format=md"},{"source_key":"reference_source_attributions","lineage_status":"governed","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","product_keys":["reference_public_footnotes","reference_source_relationships","reference_kpi_copy_pack"],"product_labels":["Public Footnote Pack","Source Relationship Pack","KPI Copy Pack"],"primary_kpis":["footnote_count","template_count","license_counts","short_footnote","full_footnote","source_count","tier_count","tier_counts","message_templates","relationship_goal","section_count","item_count","rule_count","copy_ready_status"],"exports":["/api/get_reference_public_footnotes.php?format=md","/api/get_reference_source_relationships.php?format=md","/api/get_reference_kpi_copy_pack.php?format=md"],"caveats":["Footnotes publication : ne remplacent pas revue juridique finale ni verification de licence a date.","Pack relationnel : ne garantit pas reponse producteur ni stabilite future des schemas/licences.","Pack copie : ne remplace pas les certificats de publication, attributions source ou controles de licence."],"product_count":3,"kpi_count":14,"export_count":3,"copy_line":"reference_source_attributions alimente 3 produit(s) et 14 KPI slot(s). Action : verifier api/get_reference_source_attributions.php?format=md"},{"source_key":"reference_source_demand_backlog","lineage_status":"governed","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","product_keys":["reference_source_acquisition_sprint","reference_source_radar","reference_kpi_copy_pack"],"product_labels":["Source Acquisition Sprint","Reference Source Radar","KPI Copy Pack"],"primary_kpis":["phase_count","item_count","research_now_count","acceptance_gate_count","message_templates","candidate_count","p1_count","sample_now_count","fidelize_now_count","section_count","rule_count","copy_ready_status"],"exports":["/api/get_reference_source_acquisition_sprint.php?format=md","/api/get_reference_source_radar.php?format=md","/api/get_reference_kpi_copy_pack.php?format=md"],"caveats":["Sprint acquisition : ne garantit pas reponse producteur, disponibilite donnees ou publiabilite juridique.","Radar source : chaque source doit etre reverifiee cote licence, schema, maille et fraicheur avant ingestion ou publication.","Pack copie : ne remplace pas les certificats de publication, attributions source ou controles de licence."],"product_count":3,"kpi_count":12,"export_count":3,"copy_line":"reference_source_demand_backlog alimente 3 produit(s) et 12 KPI slot(s). Action : verifier api/get_reference_source_demand_backlog.php?format=md"},{"source_key":"reference_source_lineage","lineage_status":"governed","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","product_keys":["reference_api_manifest","reference_launch_readiness","reference_data_room_index"],"product_labels":["Reference API Manifest","Reference Launch Readiness","Reference Data Room Index"],"primary_kpis":["product_count","publish_count","complete_count","watch_count","endpoint_count","check_count","required_count","recommended_count","artifact_available_count","artifact_missing_count","collection_count","unique_product_count","markdown_export_count","product_keys","copy_order"],"exports":["/api/get_reference_api_manifest.php?format=md","/api/get_reference_launch_readiness.php?format=md","/api/get_reference_data_room_index.php?format=md"],"caveats":["Manifeste déclaratif issu du catalogue : vérifier le Publication Gate et les imports avant usage externe.","Checklist déclarative : elle ne remplace pas les imports DB, la validation runtime ni la validation métier finale.","Index de navigation : vérifier les exports produits et le Publication Gate avant partage externe."],"product_count":3,"kpi_count":15,"export_count":3,"copy_line":"reference_source_lineage alimente 3 produit(s) et 15 KPI slot(s). Action : verifier api/get_reference_source_lineage.php?format=md"},{"source_key":"reference_territory_data_spine","lineage_status":"governed","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","product_keys":["reference_territory_kpi_scorecard_pack","reference_source_to_score_activation_queue","reference_territory_source_fact_table"],"product_labels":["Territory KPI Scorecards","Source to Score Activation Queue","Territory Source Fact Table"],"primary_kpis":["card_count","rule_count","layout_count","authority_source_count","spine_source_mapping_count","item_count","p1_count","normalize_next_count","publication_ready_count","schema_count","input_count","output_count"],"exports":["/api/get_reference_territory_kpi_scorecards.php?format=md","/api/get_reference_source_to_score_activation_queue.php?format=md","/api/get_reference_territory_source_facts.php?format=md"],"caveats":["Scorecards : modeles de KPI agreges et copy, ne prouvent pas recalcul runtime ni normalisation executee.","Activation queue : prepare l execution, ne prouve pas scripts lances, sorties generees ou valeurs certifiees.","Table faits : ne prouve pas import DB, validation endpoint ou certification finale des scores publics."],"product_count":3,"kpi_count":12,"export_count":3,"copy_line":"reference_territory_data_spine alimente 3 produit(s) et 12 KPI slot(s). Action : verifier api/get_reference_territory_data_spine.php?format=md"},{"source_key":"reference_territory_kpi_crosswalk","lineage_status":"governed","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","product_keys":["reference_territory_kpi_formulas","territory_reference_page","reference_territory_page_kit"],"product_labels":["Territory KPI Formula Book","Territory Reference Page","Territory Page Kit"],"primary_kpis":["metric_count","normalization_rule_count","formula","weights","minimum_gate","reference_score","section_count","source_count","publication_gate","copy_markdown","layout_count","kpi_slots","source_stack","html_snippet"],"exports":["/api/get_reference_territory_kpi_formulas.php?format=md","/docs/territory-reference-page.md","/api/get_reference_territory_page_kit.php?format=md"],"caveats":["Formules logiques : elles ne prouvent pas que les valeurs sources et jointures DB sont executees.","Page statique hydratee best-effort : les valeurs doivent etre controlees par le Publication Gate avant partage externe.","Kit de publication : les valeurs doivent venir des endpoints actifs et passer le Publication Gate."],"product_count":3,"kpi_count":14,"export_count":3,"copy_line":"reference_territory_kpi_crosswalk alimente 3 produit(s) et 14 KPI slot(s). Action : verifier api/get_reference_territory_kpi_crosswalk.php?format=md"},{"source_key":"reference_territory_score_calculator","lineage_status":"governed","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","product_keys":["reference_live_kpi_board","reference_score_hydration","reference_territory_score_inputs"],"product_labels":["Live KPI Board","Score Hydration Board","Territory Score Input Templates"],"primary_kpis":["live_count","partial_count","demo_count","blocked_count","display_mode","hydrated_ready_count","partially_hydratable_count","blocked_by_normalization_count","hydration_rate","template_count","component_value","source_status","publication_gate","score_url"],"exports":["/api/get_reference_live_kpi_board.php?format=md","/api/get_reference_score_hydration.php?format=md","/api/get_reference_territory_score_inputs.php?format=md"],"caveats":["Mode affichage logique : ne remplace pas revue metier finale ni Publication Gate externe.","Hydratation logique : ne remplace pas revue metier, Publication Gate ni import DB valide.","Templates de demonstration/cadrage : remplacer par valeurs sources actives avant publication externe."],"product_count":3,"kpi_count":14,"export_count":3,"copy_line":"reference_territory_score_calculator alimente 3 produit(s) et 14 KPI slot(s). Action : verifier api/get_reference_territory_scores.php?format=md"},{"source_key":"agreste_viticulture_territorial","lineage_status":"governed","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","product_keys":["wine_reference_pack","agreste_viticulture"],"product_labels":["Reference Pack Winerix","Cadrage Agreste viticulture"],"primary_kpis":["reference_score","confidence_score","active_source_count","evidence_pack","surface_vigne","production_vin","exploitations_viticoles"],"exports":["/api/reference_export.php?type=wine_reference_pack&format=md","/api/reference_export.php?type=agreste_viticulture&format=md"],"caveats":["Synthèse de maturité : dépend des imports locaux et des caveats de chaque source.","Statistique territoriale, pas preuve parcellaire ni domaine."],"product_count":2,"kpi_count":7,"export_count":2,"copy_line":"agreste_viticulture_territorial alimente 2 produit(s) et 7 KPI slot(s). Action : php scripts/ingest_macro_indicators.php kind=macro_wine file=sources/agreste-viticulture-territorial.csv source_key=agreste_viticulture_territorial"},{"source_key":"atout_france_classified_accommodations","lineage_status":"governed","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","product_keys":["wine_reference_pack","classified_accommodations"],"product_labels":["Reference Pack Winerix","Hébergements touristiques classés"],"primary_kpis":["reference_score","confidence_score","active_source_count","evidence_pack","establishments","rooms","beds","communes","five_star_establishments"],"exports":["/api/reference_export.php?type=wine_reference_pack&format=md","/api/reference_export.php?type=classified_accommodations&format=md"],"caveats":["Synthèse de maturité : dépend des imports locaux et des caveats de chaque source.","Hébergements classés uniquement : pas toute l’offre, pas fréquentation réelle."],"product_count":2,"kpi_count":9,"export_count":2,"copy_line":"atout_france_classified_accommodations alimente 2 produit(s) et 9 KPI slot(s). Action : php scripts/ingest_classified_accommodations.php file=sources/atout-france-classified-accommodations.csv"},{"source_key":"hve_certified_estates","lineage_status":"governed","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","product_keys":["hve_certified_estates","reference_territory_kpi_crosswalk"],"product_labels":["Exploitations certifiées HVE","Territory KPI Crosswalk"],"primary_kpis":["certified_estates","wine_related_estates","wine_related_rate","region_count","department_count","commune_count","join_key_count","recipe_count","source_stack","kpi_slots","quality_gates"],"exports":["/api/get_hve_certified_estates.php?format=md","/api/get_reference_territory_kpi_crosswalk.php?format=md"],"caveats":["Annuaire volontaire et filtrage vin textuel : relire avant publication forte ou usage nominatif.","Plan de rapprochement : ne prouve pas que les jointures DB ont ete executees ou validees."],"product_count":2,"kpi_count":11,"export_count":2,"copy_line":"hve_certified_estates alimente 2 produit(s) et 11 KPI slot(s). Action : lancer scripts/normalize_hve_certified_estates.php puis rapprocher domaines Winerix/Sirene/BAN"},{"source_key":"insee_tourism_occupancy","lineage_status":"governed","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","product_keys":["reference_oenotourism_demand_offer","insee_tourism_occupancy"],"product_labels":["Oenotourism Demand Offer Pack","Insee Tourism Occupancy Pack"],"primary_kpis":["pillar_count","source_count","score_recipe","copy_blocks","trust_badge_keys","zip_available","sample_latest_period","sample_measure_count","sample_geo_level_count","zip_file_count"],"exports":["/api/get_reference_oenotourism_demand_offer.php?format=md","/api/get_insee_tourism_occupancy.php?format=md"],"caveats":["Pack de lecture : il clarifie les usages mais ne remplace pas normalisation, hydratation KPI ou Publication Gate.","Demande touristique generale : ne pas attribuer au vin sans rapprochement territoire/offre oenotouristique."],"product_count":2,"kpi_count":10,"export_count":2,"copy_line":"insee_tourism_occupancy alimente 2 produit(s) et 10 KPI slot(s). Action : rafraichir sources/insee-tourism-occupancy.zip puis lancer scripts/normalize_insee_tourism_occupancy.php"},{"source_key":"qualite_tourisme_establishments","lineage_status":"governed","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","product_keys":["reference_oenotourism_demand_offer","qualite_tourisme_establishments"],"product_labels":["Oenotourism Demand Offer Pack","Qualite Tourisme Establishments Pack"],"primary_kpis":["pillar_count","source_count","score_recipe","copy_blocks","trust_badge_keys","sampled_establishments","wine_related_establishments","geocoded_rate","region_count","activity_count"],"exports":["/api/get_reference_oenotourism_demand_offer.php?format=md","/api/get_qualite_tourisme_establishments.php?format=md"],"caveats":["Pack de lecture : il clarifie les usages mais ne remplace pas normalisation, hydratation KPI ou Publication Gate.","Label qualite accueil : ne mesure pas frequentation ni preuve vin sans rapprochement DATAtourisme/V&D/commune viticole."],"product_count":2,"kpi_count":10,"export_count":2,"copy_line":"qualite_tourisme_establishments alimente 2 produit(s) et 10 KPI slot(s). Action : rafraichir sources/qualite-tourisme-establishments.csv puis lancer scripts/normalize_qualite_tourisme_establishments.php"},{"source_key":"reference_embed_kit","lineage_status":"governed","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","product_keys":["reference_territory_page_kit","reference_story_builder"],"product_labels":["Territory Page Kit","Reference Story Builder"],"primary_kpis":["section_count","layout_count","kpi_slots","source_stack","html_snippet","segment_count","storyline_count","core_kpis","required_sources","visual_family"],"exports":["/api/get_reference_territory_page_kit.php?format=md","/api/get_reference_story_builder.php?format=md"],"caveats":["Kit de publication : les valeurs doivent venir des endpoints actifs et passer le Publication Gate.","Les recits sont des patrons de publication : les valeurs doivent venir des endpoints actifs et du Publication Gate."],"product_count":2,"kpi_count":10,"export_count":2,"copy_line":"reference_embed_kit alimente 2 produit(s) et 10 KPI slot(s). Action : verifier api/get_reference_embed_kit.php?format=md"},{"source_key":"reference_launch_readiness","lineage_status":"governed","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","product_keys":["reference_data_room_index","reference_release_notes"],"product_labels":["Reference Data Room Index","Reference Release Notes"],"primary_kpis":["collection_count","unique_product_count","markdown_export_count","product_keys","copy_order","section_count","shareable_count","runtime_validation_count"],"exports":["/api/get_reference_data_room_index.php?format=md","/api/get_reference_release_notes.php?format=md"],"caveats":["Index de navigation : vérifier les exports produits et le Publication Gate avant partage externe.","Release notes éditoriales : elles ne remplacent pas le Publication Gate ni la validation runtime."],"product_count":2,"kpi_count":8,"export_count":2,"copy_line":"reference_launch_readiness alimente 2 produit(s) et 8 KPI slot(s). Action : verifier api/get_reference_launch_readiness.php?format=md"},{"source_key":"reference_normalization_quality_gates","lineage_status":"governed","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","product_keys":["reference_score_hydration","reference_kpi_dependency_map"],"product_labels":["Score Hydration Board","KPI Dependency Map"],"primary_kpis":["hydrated_ready_count","partially_hydratable_count","blocked_by_normalization_count","hydration_rate","score_count","component_dependency_count","unique_source_count","normalization_output_count"],"exports":["/api/get_reference_score_hydration.php?format=md","/api/get_reference_kpi_dependency_map.php?format=md"],"caveats":["Hydratation logique : ne remplace pas revue metier, Publication Gate ni import DB valide.","Carte logique : ne verifie ni existence fichier, ni qualite donnees, ni import DB."],"product_count":2,"kpi_count":8,"export_count":2,"copy_line":"reference_normalization_quality_gates alimente 2 produit(s) et 8 KPI slot(s). Action : verifier api/get_reference_normalization_quality_gates.php?format=md"},{"source_key":"reference_oenotourism_demand_offer","lineage_status":"governed","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","product_keys":["reference_territory_brief","reference_territory_comparison"],"product_labels":["Territory Brief Composer","Territory Comparison Pack"],"primary_kpis":["score_count","source_count","badge_count","copy_blocks","source_stack","territory_count","axis_count","row_count","badge_keys"],"exports":["/api/get_reference_territory_brief.php?format=md","/api/get_reference_territory_comparison.php?format=md"],"caveats":["Brief de composition : ne remplace pas normalisation source, validation DB, revue metier ou Publication Gate.","Comparaison de cadrage : remplacer les placeholders par donnees normalisees par territoire avant publication."],"product_count":2,"kpi_count":9,"export_count":2,"copy_line":"reference_oenotourism_demand_offer alimente 2 produit(s) et 9 KPI slot(s). Action : verifier api/get_reference_oenotourism_demand_offer.php?format=md"},{"source_key":"reference_publishable_territory_profiles","lineage_status":"governed","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","product_keys":["reference_profile_publication_queue","reference_profile_proof_cards"],"product_labels":["Profile Publication Queue","Profile Proof Cards"],"primary_kpis":["schema_count","status_count","output_count"],"exports":["/api/get_reference_profile_publication_queue.php?format=md","/api/get_reference_profile_proof_cards.php?format=md"],"caveats":["Queue publication : controle editorial, ne vaut pas approbation finale, import DB ou validation endpoint.","Proof cards : soutiennent la revue editoriale, ne prouvent pas exhaustivite terrain ni approbation finale."],"product_count":2,"kpi_count":3,"export_count":2,"copy_line":"reference_publishable_territory_profiles alimente 2 produit(s) et 3 KPI slot(s). Action : lancer scripts/build_reference_territory_label_registry.php puis scripts/build_reference_publishable_territory_profiles.php"},{"source_key":"reference_source_acquisition_sprint","lineage_status":"governed","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","product_keys":["reference_source_radar","reference_user_need_kpi_map"],"product_labels":["Reference Source Radar","User Need KPI Map"],"primary_kpis":["candidate_count","p1_count","sample_now_count","fidelize_now_count","research_now_count","persona_count","need_count","unique_kpi_count","copy_block_count"],"exports":["/api/get_reference_source_radar.php?format=md","/api/get_reference_user_need_kpi_map.php?format=md"],"caveats":["Radar source : chaque source doit etre reverifiee cote licence, schema, maille et fraicheur avant ingestion ou publication.","Cartographie besoin : ne prouve pas la publiabilite individuelle des KPI sans certificat et attribution source."],"product_count":2,"kpi_count":9,"export_count":2,"copy_line":"reference_source_acquisition_sprint alimente 2 produit(s) et 9 KPI slot(s). Action : verifier api/get_reference_source_acquisition_sprint.php?format=md"},{"source_key":"reference_source_normalization_backlog","lineage_status":"governed","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","product_keys":["reference_normalization_readiness","reference_normalization_runbook"],"product_labels":["Reference Normalization Readiness","Reference Normalization Runbook"],"primary_kpis":["ready_to_run_count","normalized_file_available_count","missing_input_count","next_ready_source","step_count","priority","input_file","output_file","command"],"exports":["/api/get_reference_normalization_readiness.php?format=md","/api/get_reference_normalization_runbook.php?format=md"],"caveats":["Readiness fichiers : ne valide ni contenu CSV, ni execution script, ni import DB.","Runbook execution : ne prouve pas que les scripts ont ete lances ni que les imports DB sont valides."],"product_count":2,"kpi_count":9,"export_count":2,"copy_line":"reference_source_normalization_backlog alimente 2 produit(s) et 9 KPI slot(s). Action : verifier api/get_reference_source_normalization_backlog.php?format=md"},{"source_key":"reference_territory_brief","lineage_status":"governed","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","product_keys":["reference_territory_comparison","reference_page_publication_kit"],"product_labels":["Territory Comparison Pack","Page Publication Kit"],"primary_kpis":["territory_count","axis_count","row_count","copy_blocks","badge_keys","section_count","checklist_count","certificate_count","footnote_count"],"exports":["/api/get_reference_territory_comparison.php?format=md","/api/get_reference_page_publication_kit.php?format=md"],"caveats":["Comparaison de cadrage : remplacer les placeholders par donnees normalisees par territoire avant publication.","Kit de publication : ne prouve pas normalisations, imports DB, tests runtime ou revues metier/juridiques."],"product_count":2,"kpi_count":9,"export_count":2,"copy_line":"reference_territory_brief alimente 2 produit(s) et 9 KPI slot(s). Action : verifier api/get_reference_territory_brief.php?format=md"},{"source_key":"reference_territory_comparison","lineage_status":"governed","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","product_keys":["reference_kpi_aggregation_rules","reference_page_publication_kit"],"product_labels":["KPI Aggregation Rules","Page Publication Kit"],"primary_kpis":["territory_level_count","rule_count","recipe_count","territory_levels","rules","section_count","checklist_count","certificate_count","footnote_count","copy_blocks"],"exports":["/api/get_reference_kpi_aggregation_rules.php?format=md","/api/get_reference_page_publication_kit.php?format=md"],"caveats":["Regles methodologiques : ne prouvent pas normalisation, import ou validation metier des sources.","Kit de publication : ne prouve pas normalisations, imports DB, tests runtime ou revues metier/juridiques."],"product_count":2,"kpi_count":10,"export_count":2,"copy_line":"reference_territory_comparison alimente 2 produit(s) et 10 KPI slot(s). Action : verifier api/get_reference_territory_comparison.php?format=md"},{"source_key":"reference_territory_kpi_score_table","lineage_status":"governed","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","product_keys":["reference_territory_pilot_profiles","reference_publishable_territory_profiles"],"product_labels":["Territory Pilot Profiles","Publishable Territory Profiles"],"primary_kpis":["schema_count","output_count","rule_count"],"exports":["/api/get_reference_territory_pilot_profiles.php?format=md","/api/get_reference_publishable_territory_profiles.php?format=md"],"caveats":["Profils pilotes : generes depuis scores locaux, ne prouvent pas import DB, validation endpoint ou noms publics verifies.","Profils publiables : brouillons data/copy, demandent revue label, preuves, sources et approbation finale."],"product_count":2,"kpi_count":3,"export_count":2,"copy_line":"reference_territory_kpi_score_table alimente 2 produit(s) et 3 KPI slot(s). Action : lancer scripts/build_reference_territory_kpi_scores.php puis verifier api/get_reference_territory_kpi_scores.php?format=md"},{"source_key":"reference_territory_publication_bundle","lineage_status":"governed","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","product_keys":["reference_publishable_territory_page_pack","reference_territory_share_pack"],"product_labels":["Publishable Territory Page Pack","Territory Share Pack"],"primary_kpis":["blueprint_count","section_count","cms_field_count","gate_count","copy_block_count","channel_count","live_count","partial_count","demo_count","copy"],"exports":["/api/get_reference_publishable_territory_page.php?format=md","/api/get_reference_territory_share_pack.php?format=md"],"caveats":["Pack page publiable : assemble la structure, mais ne remplace pas alimentation KPI, certificats ou controles runtime.","Pack editorial : ne remplace pas Publication Gate, validation runtime ni revue metier finale."],"product_count":2,"kpi_count":10,"export_count":2,"copy_line":"reference_territory_publication_bundle alimente 2 produit(s) et 10 KPI slot(s). Action : verifier api/get_reference_territory_publication_bundle.php?format=md"},{"source_key":"reference_territory_source_fact_table","lineage_status":"governed","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","product_keys":["reference_territory_kpi_score_table","reference_profile_proof_cards"],"product_labels":["Territory KPI Score Table","Profile Proof Cards"],"primary_kpis":["schema_count","input_count","output_count","scorecard_count","status_count"],"exports":["/api/get_reference_territory_kpi_scores.php?format=md","/api/get_reference_profile_proof_cards.php?format=md"],"caveats":["Scores KPI : calcules depuis sorties normalisees, ne prouvent pas import DB, validation endpoint ou certification finale.","Proof cards : soutiennent la revue editoriale, ne prouvent pas exhaustivite terrain ni approbation finale."],"product_count":2,"kpi_count":5,"export_count":2,"copy_line":"reference_territory_source_fact_table alimente 2 produit(s) et 5 KPI slot(s). Action : lancer scripts/build_reference_territory_source_facts.php puis verifier api/get_reference_territory_source_facts.php?format=md"},{"source_key":"reference_user_feedback","lineage_status":"governed","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","product_keys":["reference_source_demand_backlog","reference_source_acquisition_sprint"],"product_labels":["Source Demand Backlog","Source Acquisition Sprint"],"primary_kpis":["item_count","research_now_count","source_demand_score","recommended_status","target_kpis","phase_count","acceptance_gate_count","message_templates"],"exports":["/api/get_reference_source_demand_backlog.php?format=md","/api/get_reference_source_acquisition_sprint.php?format=md"],"caveats":["Backlog de recherche : ne prouve pas disponibilite producteur, accord de partage ou publiabilite juridique.","Sprint acquisition : ne garantit pas reponse producteur, disponibilite donnees ou publiabilite juridique."],"product_count":2,"kpi_count":8,"export_count":2,"copy_line":"reference_user_feedback alimente 2 produit(s) et 8 KPI slot(s). Action : verifier api/get_reference_user_feedback.php?format=md"},{"source_key":"reference_user_need_navigator","lineage_status":"governed","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","product_keys":["reference_publishable_snippets","reference_story_builder"],"product_labels":["Publishable Snippet Board","Reference Story Builder"],"primary_kpis":["snippet_count","kpi_slots","product_keys","clipboard_block","segment_count","storyline_count","core_kpis","required_sources","visual_family"],"exports":["/api/get_reference_publishable_snippets.php?format=md","/api/get_reference_story_builder.php?format=md"],"caveats":["Blocs éditoriaux : injecter les valeurs dynamiques et vérifier le Publication Gate avant diffusion externe.","Les recits sont des patrons de publication : les valeurs doivent venir des endpoints actifs et du Publication Gate."],"product_count":2,"kpi_count":9,"export_count":2,"copy_line":"reference_user_need_navigator alimente 2 produit(s) et 9 KPI slot(s). Action : verifier api/get_reference_user_need_navigator.php?format=md"},{"source_key":"rpg_parcels","lineage_status":"governed","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","product_keys":["wine_reference_pack","rpg_vineyard_parcels"],"product_labels":["Reference Pack Winerix","Parcelles viticoles RPG"],"primary_kpis":["reference_score","confidence_score","active_source_count","evidence_pack","parcels","surface_ha","communes","latest_year"],"exports":["/api/reference_export.php?type=wine_reference_pack&format=md","/api/reference_export.php?type=rpg_vineyard_parcels&format=md"],"caveats":["Synthèse de maturité : dépend des imports locaux et des caveats de chaque source.","Déclaratif PAC : pas propriété cadastrale ni exhaustivité vigne."],"product_count":2,"kpi_count":8,"export_count":2,"copy_line":"rpg_parcels alimente 2 produit(s) et 8 KPI slot(s). 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"},{"source_key":"source_opportunity_radar","lineage_status":"governed","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","product_keys":["reference_source_normalization_backlog","reference_source_fidelity"],"product_labels":["Source Normalization Backlog","Source Fidelity Ledger"],"primary_kpis":["item_count","top_priority_source","status_counts","target_file","publication_gain","source_count","official_source_count","average_fidelity_score","pipeline_count","relationship_action"],"exports":["/api/get_reference_source_normalization_backlog.php?format=md","/api/get_reference_source_fidelity.php?format=md"],"caveats":["Backlog d execution : ne prouve pas que normalisations CSV ou imports DB sont realises.","Score de gouvernance source : il ne remplace pas la validation runtime des imports ni la verification metier."],"product_count":2,"kpi_count":10,"export_count":2,"copy_line":"source_opportunity_radar alimente 2 produit(s) et 10 KPI slot(s). Action : verifier api/get_source_opportunity_radar.php?format=md"},{"source_key":"tourisme_handicap_establishments","lineage_status":"governed","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","product_keys":["wine_reference_pack","tourism_handicap_establishments"],"product_labels":["Reference Pack Winerix","Établissements Tourisme & Handicap"],"primary_kpis":["reference_score","confidence_score","active_source_count","evidence_pack","establishments","all_four_disabilities","cities","departments","activities"],"exports":["/api/reference_export.php?type=wine_reference_pack&format=md","/api/reference_export.php?type=tourism_handicap_establishments&format=md"],"caveats":["Synthèse de maturité : dépend des imports locaux et des caveats de chaque source.","Label accessibilité : ne mesure pas fréquentation, satisfaction ni exhaustivité de toute l’offre touristique."],"product_count":2,"kpi_count":9,"export_count":2,"copy_line":"tourisme_handicap_establishments alimente 2 produit(s) et 9 KPI slot(s). Action : rafraichir sources/tourisme-handicap-establishments.csv puis lancer scripts/normalize_tourisme_handicap_establishments.php"},{"source_key":"agencebio_organic_wine","lineage_status":"governed","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","product_keys":["agencebio_organic_wine"],"product_labels":["Agence Bio Organic Wine Pack"],"primary_kpis":["wine_related_operators","department_count","city_count","certifier_count","source_mode"],"exports":["/api/get_agencebio_organic_wine.php?format=md"],"caveats":["Annuaire declaratif Agence Bio : publier d abord des agregats territoire ; le groupe culture VI de l historique communal inclut une faible part de raisin de table."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"agencebio_organic_wine alimente 1 produit(s) et 5 KPI slot(s). Action : rafraichir sources/agencebio-professionnels-bio.csv puis verifier api/get_agencebio_organic_wine.php?format=md"},{"source_key":"agreste_vineyard_land_values","lineage_status":"governed","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","product_keys":["agreste_vineyard_land_values"],"product_labels":["Foncier viticole Agreste"],"primary_kpis":["normalized_rows","vineyard_rows","territory_count","average_price_eur_ha","price_min_eur_ha","price_max_eur_ha"],"exports":["/api/get_agreste_vineyard_land_values.php?format=md"],"caveats":["Valeurs vignes lissees avec concours SAFER : contexte foncier, pas prix transactionnel brut."],"product_count":1,"kpi_count":6,"export_count":1,"copy_line":"agreste_vineyard_land_values alimente 1 produit(s) et 6 KPI slot(s). Action : remplir sources/agreste-vineyard-land-values-input.csv puis lancer scripts/normalize_agreste_vineyard_land_values.php"},{"source_key":"atout_france_vignobles_decouvertes_destinations","lineage_status":"governed","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","product_keys":["vignobles_decouvertes"],"product_labels":["Destinations Vignobles & Découvertes"],"primary_kpis":["destinations","wine_regions"],"exports":["/api/reference_export.php?type=vignobles_decouvertes_destinations&format=md"],"caveats":["Label destination : pas fréquentation, pas performance de chaque prestataire."],"product_count":1,"kpi_count":2,"export_count":1,"copy_line":"atout_france_vignobles_decouvertes_destinations alimente 1 produit(s) et 2 KPI slot(s). Action : php scripts/ingest_macro_indicators.php kind=oenotourism file=sources/vignobles-decouvertes-destinations-sample.csv"},{"source_key":"bnlc_carpooling_areas","lineage_status":"governed","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","product_keys":["bnlc_carpooling_areas"],"product_labels":["BNLC Carpooling Areas"],"primary_kpis":["carpool_access_signal","low_carbon_access_score","access_signal"],"exports":["/api/get_bnlc_carpooling_areas.php?format=md"],"caveats":["BNLC : presence infrastructure, pas usage reel, disponibilite instantanee ou desserte finale vers les domaines."],"product_count":1,"kpi_count":3,"export_count":1,"copy_line":"bnlc_carpooling_areas alimente 1 produit(s) et 3 KPI slot(s). Action : mettre a jour sources/bnlc-carpooling-areas.csv puis normaliser scripts/normalize_bnlc_carpooling_areas.php"},{"source_key":"bnsc_bike_parking","lineage_status":"governed","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","product_keys":["bnsc_bike_parking"],"product_labels":["BNSC Bike Parking Pack"],"primary_kpis":["sampled_parkings","sample_commune_count","sample_capacity","sample_covered_count","sample_lit_count"],"exports":["/api/get_bnsc_bike_parking.php?format=md"],"caveats":["Source OSM/ODbL contributive : signal mobilite douce non exhaustif, pas label Accueil Velo ni frequentation."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"bnsc_bike_parking alimente 1 produit(s) et 5 KPI slot(s). Action : rafraichir sources/bnsc-bike-parking.zip puis lancer scripts/normalize_bnsc_bike_parking.php"},{"source_key":"datatourisme_fidelity_monitor","lineage_status":"governed","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","product_keys":["reference_authority_index"],"product_labels":["Reference Authority Index"],"primary_kpis":["source_count","average_authority_score","normalization_ready_count","copy_ready_count","pillar_count"],"exports":["/api/get_reference_authority_index.php?format=md"],"caveats":["Index autorite : mesure la maturite source/KPI/produit, pas la verite terrain exhaustive ni les validations runtime."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"datatourisme_fidelity_monitor alimente 1 produit(s) et 5 KPI slot(s). Action : mettre a jour sources/datatourisme-datagouv.json et sources/datatourisme-resource-snapshot.csv puis lancer scripts/monitor_datatourisme_freshness.php"},{"source_key":"dgddi_vitivinicole_stocks_harvests","lineage_status":"governed","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","product_keys":["dgddi_vitivinicole_supply"],"product_labels":["Récoltes et stocks vitivinicoles DGDDI"],"primary_kpis":["harvest_resource_count","stock_resource_count","surface_ha_total","production_hl_total","stock_hl_total","stock_to_production_ratio"],"exports":["/api/get_dgddi_vitivinicole_supply.php?format=md"],"caveats":["Jeu historique data.gouv ancien ; basculer/valider DataDouane avant publication de chiffres recents."],"product_count":1,"kpi_count":6,"export_count":1,"copy_line":"dgddi_vitivinicole_stocks_harvests alimente 1 produit(s) et 6 KPI slot(s). Action : remplir sources/dgddi-vitivinicole-stocks-harvests-input.csv puis lancer scripts/normalize_dgddi_vitivinicole_supply.php"},{"source_key":"franceagrimer_campagne_viticulture","lineage_status":"governed","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","product_keys":["bulk_wine_prices"],"product_labels":["Prix vrac FranceAgriMer"],"primary_kpis":["series","campaigns","latest_price","avg_price","categories"],"exports":["/api/reference_export.php?type=bulk_wine_prices&format=md"],"caveats":["Prix vrac France entière VSIG/IGP : pas prix domaine, pas contrats privés, pas cotation appellation fine."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"franceagrimer_campagne_viticulture alimente 1 produit(s) et 5 KPI slot(s). Action : remplir sources/franceagrimer-prices-input.csv puis lancer scripts/normalize_franceagrimer_bulk_prices.php"},{"source_key":"kpi_evidence","lineage_status":"governed","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","product_keys":["reference_copy_studio"],"product_labels":["Reference Copy Studio"],"primary_kpis":["persona","decision","metrics_to_pull","products","caveat"],"exports":["/api/get_reference_copy_studio.php?format=md"],"caveats":["Briefs éditoriaux : ils orientent la copie mais ne remplacent pas les chiffres dynamiques du KPI Pack."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"kpi_evidence alimente 1 produit(s) et 5 KPI slot(s). Action : verifier api/reference_export.php?type=kpi_evidence&format=md"},{"source_key":"reference_activation_outputs_manifest","lineage_status":"governed","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","product_keys":["reference_territory_source_fact_table"],"product_labels":["Territory Source Fact Table"],"primary_kpis":["schema_count","input_count","output_count"],"exports":["/api/get_reference_territory_source_facts.php?format=md"],"caveats":["Table faits : ne prouve pas import DB, validation endpoint ou certification finale des scores publics."],"product_count":1,"kpi_count":3,"export_count":1,"copy_line":"reference_activation_outputs_manifest alimente 1 produit(s) et 3 KPI slot(s). Action : verifier api/get_reference_activation_outputs_manifest.php?format=md"},{"source_key":"reference_copy_studio","lineage_status":"governed","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","product_keys":["reference_publication_gate"],"product_labels":["Publication Gate"],"primary_kpis":["status","fail_count","warn_count","gates","activation_summary"],"exports":["/api/get_reference_publication_gate.php?format=md"],"caveats":["Gate de readiness : ne remplace pas les tests d’import DB ni la validation métier finale."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"reference_copy_studio alimente 1 produit(s) et 5 KPI slot(s). Action : verifier api/get_reference_copy_studio.php?format=md"},{"source_key":"reference_data_room_index","lineage_status":"governed","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","product_keys":["reference_release_notes"],"product_labels":["Reference Release Notes"],"primary_kpis":["section_count","unique_product_count","shareable_count","runtime_validation_count"],"exports":["/api/get_reference_release_notes.php?format=md"],"caveats":["Release notes éditoriales : elles ne remplacent pas le Publication Gate ni la validation runtime."],"product_count":1,"kpi_count":4,"export_count":1,"copy_line":"reference_data_room_index alimente 1 produit(s) et 4 KPI slot(s). Action : verifier api/get_reference_data_room_index.php?format=md"},{"source_key":"reference_integration_guide","lineage_status":"governed","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","product_keys":["reference_data_contracts"],"product_labels":["Reference Data Contracts"],"primary_kpis":["contract_count","catalog_linked_count","missing_product_count","required_fields","quality_gates"],"exports":["/api/get_reference_data_contracts.php?format=md"],"caveats":["Contrats logiques : ils documentent les champs attendus mais ne remplacent pas les tests runtime ni la validation des imports."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"reference_integration_guide alimente 1 produit(s) et 5 KPI slot(s). Action : verifier api/get_reference_integration_guide.php?format=md"},{"source_key":"reference_kpi_card_deck","lineage_status":"governed","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","product_keys":["reference_kpi_cards"],"product_labels":["KPI Cards hydratées"],"primary_kpis":["value","hydrated","copy_sentence_hydrated","caveat"],"exports":["/api/get_reference_kpi_cards.php?format=md"],"caveats":["Hydratation best-effort : si la DB échoue, les placeholders restent visibles."],"product_count":1,"kpi_count":4,"export_count":1,"copy_line":"reference_kpi_card_deck alimente 1 produit(s) et 4 KPI slot(s). Action : verifier api/get_reference_kpi_card_deck.php?format=md"},{"source_key":"reference_normalization_readiness","lineage_status":"governed","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","product_keys":["reference_normalization_quality_gates"],"product_labels":["Normalization Quality Gates"],"primary_kpis":["qa_ready_count","blocked_count","status_counts","missing_columns","row_count"],"exports":["/api/get_reference_normalization_quality_gates.php?format=md"],"caveats":["QA structurelle : ne remplace pas revue metier, statistiques ni validation import DB."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"reference_normalization_readiness alimente 1 produit(s) et 5 KPI slot(s). Action : verifier api/get_reference_normalization_readiness.php?format=md"},{"source_key":"reference_product_catalog","lineage_status":"governed","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","product_keys":["reference_data_product_index"],"product_labels":["Data Product Index"],"primary_kpis":["product_count","stage_counts","source_count","kpi_count"],"exports":["/api/get_reference_data_product_index.php?format=md"],"caveats":["Index de navigation : il reflète le catalogue produit configuré, pas la fraîcheur réelle des données importées."],"product_count":1,"kpi_count":4,"export_count":1,"copy_line":"reference_product_catalog alimente 1 produit(s) et 4 KPI slot(s). Action : verifier app/reference_product_catalog.php"},{"source_key":"reference_profile_publication_queue","lineage_status":"governed","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","product_keys":["reference_profile_proof_cards"],"product_labels":["Profile Proof Cards"],"primary_kpis":["schema_count","output_count","status_count"],"exports":["/api/get_reference_profile_proof_cards.php?format=md"],"caveats":["Proof cards : soutiennent la revue editoriale, ne prouvent pas exhaustivite terrain ni approbation finale."],"product_count":1,"kpi_count":3,"export_count":1,"copy_line":"reference_profile_publication_queue alimente 1 produit(s) et 3 KPI slot(s). Action : lancer scripts/build_reference_profile_publication_queue.php puis verifier api/get_reference_profile_publication_queue.php?format=md"},{"source_key":"reference_public_distribution","lineage_status":"governed","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","product_keys":["reference_user_feedback"],"product_labels":["User Feedback Pack"],"primary_kpis":["segment_count","question_count","score_count","copy_ready_score","source_demand_score"],"exports":["/api/get_reference_user_feedback.php?format=md"],"caveats":["Pack de collecte feedback : ne remplace pas tracking produit, CRM ou analyse statistique des reponses."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"reference_public_distribution alimente 1 produit(s) et 5 KPI slot(s). Action : verifier api/get_reference_public_distribution.php?format=md"},{"source_key":"reference_score_hydration","lineage_status":"governed","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","product_keys":["reference_live_kpi_board"],"product_labels":["Live KPI Board"],"primary_kpis":["live_count","partial_count","demo_count","blocked_count","display_mode"],"exports":["/api/get_reference_live_kpi_board.php?format=md"],"caveats":["Mode affichage logique : ne remplace pas revue metier finale ni Publication Gate externe."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"reference_score_hydration alimente 1 produit(s) et 5 KPI slot(s). Action : verifier api/get_reference_score_hydration.php?format=md"},{"source_key":"reference_source_to_score_activation_queue","lineage_status":"governed","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","product_keys":["reference_activation_outputs_manifest"],"product_labels":["Activation Outputs Manifest"],"primary_kpis":["output_count","activated_count","pending_heavy_count"],"exports":["/api/get_reference_activation_outputs_manifest.php?format=md"],"caveats":["Manifeste activation : ne prouve pas import DB, validation endpoint ou valeurs publiques certifiees."],"product_count":1,"kpi_count":3,"export_count":1,"copy_line":"reference_source_to_score_activation_queue alimente 1 produit(s) et 3 KPI slot(s). Action : verifier api/get_reference_source_to_score_activation_queue.php?format=md"},{"source_key":"reference_story_builder","lineage_status":"governed","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","product_keys":["reference_territory_page_kit"],"product_labels":["Territory Page Kit"],"primary_kpis":["section_count","layout_count","kpi_slots","source_stack","html_snippet"],"exports":["/api/get_reference_territory_page_kit.php?format=md"],"caveats":["Kit de publication : les valeurs doivent venir des endpoints actifs et passer le Publication Gate."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"reference_story_builder alimente 1 produit(s) et 5 KPI slot(s). Action : verifier api/get_reference_story_builder.php?format=md"},{"source_key":"reference_territory_pilot_profiles","lineage_status":"governed","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","product_keys":["reference_publishable_territory_profiles"],"product_labels":["Publishable Territory Profiles"],"primary_kpis":["schema_count","output_count","rule_count"],"exports":["/api/get_reference_publishable_territory_profiles.php?format=md"],"caveats":["Profils publiables : brouillons data/copy, demandent revue label, preuves, sources et approbation finale."],"product_count":1,"kpi_count":3,"export_count":1,"copy_line":"reference_territory_pilot_profiles alimente 1 produit(s) et 3 KPI slot(s). Action : lancer scripts/build_reference_territory_pilot_profiles.php puis verifier api/get_reference_territory_pilot_profiles.php?format=md"},{"source_key":"reference_territory_share_pack","lineage_status":"governed","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","product_keys":["reference_claim_guard"],"product_labels":["Reference Claim Guard"],"primary_kpis":["mode_count","source_state_count","channel_count","allowed_claims","forbidden_claims"],"exports":["/api/get_reference_claim_guard.php?format=md"],"caveats":["Garde-fou editorial : ne remplace pas revue juridique, metier ou Publication Gate final."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"reference_territory_share_pack alimente 1 produit(s) et 5 KPI slot(s). Action : verifier api/get_reference_territory_share_pack.php?format=md"},{"source_key":"sirene_insee","lineage_status":"governed","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","product_keys":["sirene_wine_establishments"],"product_labels":["Établissements vin SIRENE"],"primary_kpis":["establishments","sirens","core_wine_establishments","communes","naf_codes"],"exports":["/api/reference_export.php?type=sirene_wine_establishments&format=md"],"caveats":["Activité administrative déclarée : codes adjacents non exclusivement vin et obligations RGPD pour usages nominatifs."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"sirene_insee alimente 1 produit(s) et 5 KPI slot(s). Action : php scripts/ingest_sirene_insee.php"},{"source_key":"source_refresh_policy","lineage_status":"catalog_only","source_family":"","recommended_cadence":"","stale_after_days":"","critical_after_days":"","evidence_required":"","primary_action":"","fallback_action":"","product_keys":["kpi_evidence","reference_source_relationships","datatourisme_fidelity_monitor","source_refresh_policy","source_activation_status","source_maintenance_board","reference_source_lineage","reference_normalization_runbook","reference_source_normalization_backlog","reference_source_fidelity","reference_kpi_dictionary"],"product_labels":["Evidence Pack KPI","Source Relationship Pack","DATAtourisme Fidelity Monitor","Politique de fraîcheur sources","Statut activation sources","Board maintenance sources","Source-KPI Lineage Matrix","Reference Normalization Runbook","Source Normalization Backlog","Source Fidelity Ledger","Dictionnaire KPI Winerix"],"primary_kpis":["source_name","source_url","citation","caveat","source_count","tier_count","tier_counts","message_templates","relationship_goal","datatourisme_freshness_score","coverage_by_region","source_relationship_signal","regional_feed_watchlist","recommended_cadence","stale_after_days","critical_after_days","evidence_required","db_ready","ready_to_run","required_missing_files","optional_missing_files","publication_action","freshness_status","priority","copy_ticket","governed_sources","catalog_only_sources","product_count","step_count","input_file","output_file","command","item_count","top_priority_source","status_counts","target_file","publication_gain","official_source_count","average_fidelity_score","pipeline_count","relationship_action","definition","calculation","source_keys","copy_hint"],"exports":["/api/reference_export.php?type=kpi_evidence&format=md","/api/get_reference_source_relationships.php?format=md","/api/get_datatourisme_fidelity_monitor.php?format=md","/api/reference_export.php?type=source_refresh_policy&format=md","/api/get_source_activation_status.php?format=md","/api/get_source_maintenance_board.php?format=md","/api/get_reference_source_lineage.php?format=md","/api/get_reference_normalization_runbook.php?format=md","/api/get_reference_source_normalization_backlog.php?format=md","/api/get_reference_source_fidelity.php?format=md","/api/get_reference_kpi_dictionary.php?format=md"],"caveats":["La preuve ne valide pas automatiquement la fraîcheur : vérifier les dates et gates.","Pack relationnel : ne garantit pas reponse producteur ni stabilite future des schemas/licences.","DATAtourisme : fraicheur ressource ne prouve pas exhaustivite ni qualite des POI territoriaux.","Runbook de gouvernance : ne remplace pas l’import effectif.","Statut fichiers/config uniquement : ne prouve pas que l’import DB a réussi.","Board opérationnel : ne prouve pas l’import DB ni la validité métier des données.","Lineage catalogue : il prouve les liens déclarés source/produit, pas l’import DB effectif ni la fraîcheur runtime.","Runbook execution : ne prouve pas que les scripts ont ete lances ni que les imports DB sont valides.","Backlog d execution : ne prouve pas que normalisations CSV ou imports DB sont realises.","Score de gouvernance source : il ne remplace pas la validation runtime des imports ni la verification metier.","Dictionnaire sémantique : ne remplace pas les valeurs dynamiques ni les contrôles d’import."],"product_count":11,"kpi_count":45,"export_count":11,"copy_line":"source_refresh_policy alimente 11 produit(s) et 45 KPI slot(s). Action : qualifier la gouvernance source."},{"source_key":"source_registry","lineage_status":"catalog_only","source_family":"","recommended_cadence":"","stale_after_days":"","critical_after_days":"","evidence_required":"","primary_action":"","fallback_action":"","product_keys":["wine_reference_pack","kpi_pack","kpi_evidence","source_activation_status"],"product_labels":["Reference Pack Winerix","KPI Pack central","Evidence Pack KPI","Statut activation sources"],"primary_kpis":["reference_score","confidence_score","active_source_count","evidence_pack","communes","appellations","estates","wines","source_name","source_url","citation","caveat","db_ready","ready_to_run","required_missing_files","optional_missing_files"],"exports":["/api/reference_export.php?type=wine_reference_pack&format=md","/api/get_kpis.php?format=md","/api/reference_export.php?type=kpi_evidence&format=md","/api/get_source_activation_status.php?format=md"],"caveats":["Synthèse de maturité : dépend des imports locaux et des caveats de chaque source.","Pack agrégé : ne remplace pas les fiches source ni les contrôles de publication.","La preuve ne valide pas automatiquement la fraîcheur : vérifier les dates et gates.","Statut fichiers/config uniquement : ne prouve pas que l’import DB a réussi."],"product_count":4,"kpi_count":16,"export_count":4,"copy_line":"source_registry alimente 4 produit(s) et 16 KPI slot(s). Action : qualifier la gouvernance source."},{"source_key":"appellations","lineage_status":"catalog_only","source_family":"","recommended_cadence":"","stale_after_days":"","critical_after_days":"","evidence_required":"","primary_action":"","fallback_action":"","product_keys":["inao_aoc_aop_communes","appellation_evidence_pack","regulatory_gaps"],"product_labels":["Aires AOC/AOP INAO par commune","Preuve appellation complète","Contrôle écarts appellations/eAmbrosia"],"primary_kpis":["area_rows","areas","communes","matched_winerix_areas","departments","complete_evidence","coverage_rate","siqo_matched","inao_area_matched","eambrosia_matched","matched","missing_eambrosia","orphan_eambrosia","match_rate"],"exports":["/api/reference_export.php?type=inao_aoc_aop_communes&format=md","/api/reference_export.php?type=appellation_evidence_pack&format=md","/api/reference_export.php?type=appellation_regulatory_gaps&format=md"],"caveats":["AOC/AOP toutes familles : filtrer/croiser avec les appellations vin Winerix, COMAGRI ou eAmbrosia avant usage juridique.","Matching normalisé accents/casse/ponctuation, mais encore textuel : relire les libellés avant usage juridique ou publication forte.","Matching textuel normalisé : relire avant usage juridique."],"product_count":3,"kpi_count":14,"export_count":3,"copy_line":"appellations alimente 3 produit(s) et 14 KPI slot(s). Action : qualifier la gouvernance source."},{"source_key":"reference_territory_scores","lineage_status":"catalog_only","source_family":"","recommended_cadence":"","stale_after_days":"","critical_after_days":"","evidence_required":"","primary_action":"","fallback_action":"","product_keys":["reference_territory_brief","reference_territory_comparison","reference_kpi_publication_certificates"],"product_labels":["Territory Brief Composer","Territory Comparison Pack","KPI Publication Certificates"],"primary_kpis":["score_count","source_count","badge_count","copy_blocks","source_stack","territory_count","axis_count","row_count","badge_keys","certificate_count","publication_status","badge_key","copy_receipt"],"exports":["/api/get_reference_territory_brief.php?format=md","/api/get_reference_territory_comparison.php?format=md","/api/get_reference_kpi_publication_certificates.php?format=md"],"caveats":["Brief de composition : ne remplace pas normalisation source, validation DB, revue metier ou Publication Gate.","Comparaison de cadrage : remplacer les placeholders par donnees normalisees par territoire avant publication.","Certificat logique : ne prouve pas imports DB, normalisations, tests runtime ou revue metier."],"product_count":3,"kpi_count":13,"export_count":3,"copy_line":"reference_territory_scores alimente 3 produit(s) et 13 KPI slot(s). Action : qualifier la gouvernance source."},{"source_key":"vignobles_decouvertes","lineage_status":"catalog_only","source_family":"","recommended_cadence":"","stale_after_days":"","critical_after_days":"","evidence_required":"","primary_action":"","fallback_action":"","product_keys":["reference_oenotourism_demand_offer","insee_tourism_occupancy","qualite_tourisme_establishments"],"product_labels":["Oenotourism Demand Offer Pack","Insee Tourism Occupancy Pack","Qualite Tourisme Establishments Pack"],"primary_kpis":["pillar_count","source_count","score_recipe","copy_blocks","trust_badge_keys","zip_available","sample_latest_period","sample_measure_count","sample_geo_level_count","zip_file_count","sampled_establishments","wine_related_establishments","geocoded_rate","region_count","activity_count"],"exports":["/api/get_reference_oenotourism_demand_offer.php?format=md","/api/get_insee_tourism_occupancy.php?format=md","/api/get_qualite_tourisme_establishments.php?format=md"],"caveats":["Pack de lecture : il clarifie les usages mais ne remplace pas normalisation, hydratation KPI ou Publication Gate.","Demande touristique generale : ne pas attribuer au vin sans rapprochement territoire/offre oenotouristique.","Label qualite accueil : ne mesure pas frequentation ni preuve vin sans rapprochement DATAtourisme/V&D/commune viticole."],"product_count":3,"kpi_count":15,"export_count":3,"copy_line":"vignobles_decouvertes alimente 3 produit(s) et 15 KPI slot(s). Action : qualifier la gouvernance source."},{"source_key":"tourism_handicap_establishments","lineage_status":"catalog_only","source_family":"","recommended_cadence":"","stale_after_days":"","critical_after_days":"","evidence_required":"","primary_action":"","fallback_action":"","product_keys":["reference_oenotourism_demand_offer","qualite_tourisme_establishments"],"product_labels":["Oenotourism Demand Offer Pack","Qualite Tourisme Establishments Pack"],"primary_kpis":["pillar_count","source_count","score_recipe","copy_blocks","trust_badge_keys","sampled_establishments","wine_related_establishments","geocoded_rate","region_count","activity_count"],"exports":["/api/get_reference_oenotourism_demand_offer.php?format=md","/api/get_qualite_tourisme_establishments.php?format=md"],"caveats":["Pack de lecture : il clarifie les usages mais ne remplace pas normalisation, hydratation KPI ou Publication Gate.","Label qualite accueil : ne mesure pas frequentation ni preuve vin sans rapprochement DATAtourisme/V&D/commune viticole."],"product_count":2,"kpi_count":10,"export_count":2,"copy_line":"tourism_handicap_establishments alimente 2 produit(s) et 10 KPI slot(s). Action : qualifier la gouvernance source."},{"source_key":"ban_address_quality","lineage_status":"catalog_only","source_family":"","recommended_cadence":"","stale_after_days":"","critical_after_days":"","evidence_required":"","primary_action":"","fallback_action":"","product_keys":["agencebio_organic_wine"],"product_labels":["Agence Bio Organic Wine Pack"],"primary_kpis":["wine_related_operators","department_count","city_count","certifier_count","source_mode"],"exports":["/api/get_agencebio_organic_wine.php?format=md"],"caveats":["Annuaire declaratif Agence Bio : publier d abord des agregats territoire ; le groupe culture VI de l historique communal inclut une faible part de raisin de table."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"ban_address_quality alimente 1 produit(s) et 5 KPI slot(s). Action : qualifier la gouvernance source."},{"source_key":"ban_commune_status","lineage_status":"catalog_only","source_family":"","recommended_cadence":"","stale_after_days":"","critical_after_days":"","evidence_required":"","primary_action":"","fallback_action":"","product_keys":["ban_address_quality"],"product_labels":["Qualité adresse BAN"],"primary_kpis":["audit_rows","geocoded_rate","average_address_score","low_quality_rows","certified_address_rows","commune_count"],"exports":["/api/get_ban_address_quality.php?format=md"],"caveats":["La BAN qualifie adresse et coordonnees ; elle ne prouve ni ouverture au public, ni pertinence vin, ni frequentation."],"product_count":1,"kpi_count":6,"export_count":1,"copy_line":"ban_commune_status alimente 1 produit(s) et 6 KPI slot(s). Action : qualifier la gouvernance source."},{"source_key":"classified_accommodations","lineage_status":"catalog_only","source_family":"","recommended_cadence":"","stale_after_days":"","critical_after_days":"","evidence_required":"","primary_action":"","fallback_action":"","product_keys":["qualite_tourisme_establishments"],"product_labels":["Qualite Tourisme Establishments Pack"],"primary_kpis":["sampled_establishments","wine_related_establishments","geocoded_rate","region_count","activity_count"],"exports":["/api/get_qualite_tourisme_establishments.php?format=md"],"caveats":["Label qualite accueil : ne mesure pas frequentation ni preuve vin sans rapprochement DATAtourisme/V&D/commune viticole."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"classified_accommodations alimente 1 produit(s) et 5 KPI slot(s). Action : qualifier la gouvernance source."},{"source_key":"comagri_ao_2025","lineage_status":"catalog_only","source_family":"","recommended_cadence":"","stale_after_days":"","critical_after_days":"","evidence_required":"","primary_action":"","fallback_action":"","product_keys":["inao_aoc_aop_communes"],"product_labels":["Aires AOC/AOP INAO par commune"],"primary_kpis":["area_rows","areas","communes","matched_winerix_areas","departments"],"exports":["/api/reference_export.php?type=inao_aoc_aop_communes&format=md"],"caveats":["AOC/AOP toutes familles : filtrer/croiser avec les appellations vin Winerix, COMAGRI ou eAmbrosia avant usage juridique."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"comagri_ao_2025 alimente 1 produit(s) et 5 KPI slot(s). Action : qualifier la gouvernance source."},{"source_key":"datatourisme_resources","lineage_status":"catalog_only","source_family":"","recommended_cadence":"","stale_after_days":"","critical_after_days":"","evidence_required":"","primary_action":"","fallback_action":"","product_keys":["datatourisme_fidelity_monitor"],"product_labels":["DATAtourisme Fidelity Monitor"],"primary_kpis":["datatourisme_freshness_score","coverage_by_region","source_relationship_signal","regional_feed_watchlist"],"exports":["/api/get_datatourisme_fidelity_monitor.php?format=md"],"caveats":["DATAtourisme : fraicheur ressource ne prouve pas exhaustivite ni qualite des POI territoriaux."],"product_count":1,"kpi_count":4,"export_count":1,"copy_line":"datatourisme_resources alimente 1 produit(s) et 4 KPI slot(s). Action : qualifier la gouvernance source."},{"source_key":"estate_profiles","lineage_status":"catalog_only","source_family":"","recommended_cadence":"","stale_after_days":"","critical_after_days":"","evidence_required":"","primary_action":"","fallback_action":"","product_keys":["kpi_pack"],"product_labels":["KPI Pack central"],"primary_kpis":["communes","appellations","estates","wines","confidence_score"],"exports":["/api/get_kpis.php?format=md"],"caveats":["Pack agrégé : ne remplace pas les fiches source ni les contrôles de publication."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"estate_profiles alimente 1 produit(s) et 5 KPI slot(s). Action : qualifier la gouvernance source."},{"source_key":"franceagrimer_bulk_wine_prices","lineage_status":"catalog_only","source_family":"","recommended_cadence":"","stale_after_days":"","critical_after_days":"","evidence_required":"","primary_action":"","fallback_action":"","product_keys":["source_opportunity_radar"],"product_labels":["Source Opportunity Radar"],"primary_kpis":["opportunity_score","priority","impact","effort","confidence_score"],"exports":["/api/get_source_opportunity_radar.php?format=md"],"caveats":["Radar de priorisation : les sources listées ne sont pas toutes encore importées ni validées métier."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"franceagrimer_bulk_wine_prices alimente 1 produit(s) et 5 KPI slot(s). Action : qualifier la gouvernance source."},{"source_key":"inao_aoc_aop_communes","lineage_status":"catalog_only","source_family":"","recommended_cadence":"","stale_after_days":"","critical_after_days":"","evidence_required":"","primary_action":"","fallback_action":"","product_keys":["reference_territory_kpi_crosswalk"],"product_labels":["Territory KPI Crosswalk"],"primary_kpis":["join_key_count","recipe_count","source_stack","kpi_slots","quality_gates"],"exports":["/api/get_reference_territory_kpi_crosswalk.php?format=md"],"caveats":["Plan de rapprochement : ne prouve pas que les jointures DB ont ete executees ou validees."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"inao_aoc_aop_communes alimente 1 produit(s) et 5 KPI slot(s). Action : qualifier la gouvernance source."},{"source_key":"inao_aoc_aop_igp_areas_products","lineage_status":"catalog_only","source_family":"","recommended_cadence":"","stale_after_days":"","critical_after_days":"","evidence_required":"","primary_action":"","fallback_action":"","product_keys":["source_opportunity_radar"],"product_labels":["Source Opportunity Radar"],"primary_kpis":["opportunity_score","priority","impact","effort","confidence_score"],"exports":["/api/get_source_opportunity_radar.php?format=md"],"caveats":["Radar de priorisation : les sources listées ne sont pas toutes encore importées ni validées métier."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"inao_aoc_aop_igp_areas_products alimente 1 produit(s) et 5 KPI slot(s). Action : qualifier la gouvernance source."},{"source_key":"insee_bpe_2024","lineage_status":"catalog_only","source_family":"","recommended_cadence":"","stale_after_days":"","critical_after_days":"","evidence_required":"","primary_action":"","fallback_action":"","product_keys":["insee_bpe_equipment"],"product_labels":["Insee BPE Equipment"],"primary_kpis":["tourism_service_density","territory_readiness_score","culture_leisure_context","access_equipment_signal"],"exports":["/api/get_insee_bpe_equipment.php?format=md"],"caveats":["BPE : presence d equipements, pas qualite, frequentation ou satisfaction visiteur."],"product_count":1,"kpi_count":4,"export_count":1,"copy_line":"insee_bpe_2024 alimente 1 produit(s) et 4 KPI slot(s). Action : qualifier la gouvernance source."},{"source_key":"macro_oenotourism_indicators","lineage_status":"catalog_only","source_family":"","recommended_cadence":"","stale_after_days":"","critical_after_days":"","evidence_required":"","primary_action":"","fallback_action":"","product_keys":["kpi_pack"],"product_labels":["KPI Pack central"],"primary_kpis":["communes","appellations","estates","wines","confidence_score"],"exports":["/api/get_kpis.php?format=md"],"caveats":["Pack agrégé : ne remplace pas les fiches source ni les contrôles de publication."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"macro_oenotourism_indicators alimente 1 produit(s) et 5 KPI slot(s). Action : qualifier la gouvernance source."},{"source_key":"macro_wine_indicators","lineage_status":"catalog_only","source_family":"","recommended_cadence":"","stale_after_days":"","critical_after_days":"","evidence_required":"","primary_action":"","fallback_action":"","product_keys":["kpi_pack"],"product_labels":["KPI Pack central"],"primary_kpis":["communes","appellations","estates","wines","confidence_score"],"exports":["/api/get_kpis.php?format=md"],"caveats":["Pack agrégé : ne remplace pas les fiches source ni les contrôles de publication."],"product_count":1,"kpi_count":5,"export_count":1,"copy_line":"macro_wine_indicators alimente 1 produit(s) et 5 KPI slot(s). Action : qualifier la gouvernance source."},{"source_key":"merimee_monuments_historiques","lineage_status":"catalog_only","source_family":"","recommended_cadence":"","stale_after_days":"","critical_after_days":"","evidence_required":"","primary_action":"","fallback_action":"","product_keys":["merimee_heritage_monuments"],"product_labels":["Merimee Heritage Monuments"],"primary_kpis":["heritage_pull_signal","culture_wine_context_score","territory_story_proof","heritage_signal"],"exports":["/api/get_merimee_heritage_monuments.php?format=md"],"caveats":["Merimee : patrimoine protege, pas frequentation, ouverture au public ou impact oenotouristique direct."],"product_count":1,"kpi_count":4,"export_count":1,"copy_line":"merimee_monuments_historiques alimente 1 produit(s) et 4 KPI slot(s). Action : qualifier la gouvernance source."},{"source_key":"openagenda_public_events","lineage_status":"catalog_only","source_family":"","recommended_cadence":"","stale_after_days":"","critical_after_days":"","evidence_required":"","primary_action":"","fallback_action":"","product_keys":["openagenda_wine_events"],"product_labels":["OpenAgenda Wine Event Signal"],"primary_kpis":["wine_event_signal","territory_activation_score","tourism_demand_context","wine_relevance_score"],"exports":["/api/get_openagenda_wine_events.php?format=md"],"caveats":["OpenAgenda contributif : couverture non exhaustive, taxonomy variable, frequentation non mesuree."],"product_count":1,"kpi_count":4,"export_count":1,"copy_line":"openagenda_public_events alimente 1 produit(s) et 4 KPI slot(s). Action : qualifier la gouvernance source."}],"copy_markdown":"# Source-KPI Lineage Matrix Winerix\n\nMatrice de tracabilite source -> produits -> KPI -> exports -> caveats.\n\n## Synthese\n\n- Sources reliees : 110\n- Sources gouvernees : 90\n- Sources catalogue uniquement : 20\n- Produits couverts : 104\n\n## Table copiable\n\n| Source | Statut | Cadence | Produits | KPI slots | Action / caveat |\n|---|---|---|---|---|---|\n| reference_publication_gate | governed | daily | KPI Publication Certificates, Profile Publication Queue, User Need Navigator, Reference KPI Scorecard +13 | certificate_count, source_count, publication_status, badge_key, copy_receipt +68 | verifier api/get_reference_publication_gate.php?format=md |\n| reference_products | governed | weekly | Reference Copy Studio, User Need Navigator, Publishable Snippet Board, Reference KPI Scorecard +5 | persona, decision, metrics_to_pull, products, caveat +30 | verifier app/reference_product_catalog.php et /referentiels/produits |\n| datatourisme_oenotourism | governed | weekly | Reference Pack Winerix, Offre locale DATAtourisme, Oenotourism Demand Offer Pack, Insee Tourism Occupancy Pack +4 | reference_score, confidence_score, active_source_count, evidence_pack, offers +36 | php scripts/ingest_datatourisme_oenotourism.php file=sources/datatourisme-oenotourism-offers.csv min_relevance=55 |\n| reference_kpi_dictionary | governed | weekly | User Need Navigator, Publishable Snippet Board, Reference KPI Scorecard, Source-KPI Lineage Matrix +4 | route_count, persona, hero_kpis, product_keys, missing_product_count +28 | verifier api/get_reference_kpi_dictionary.php?format=md |\n| eambrosia_gi | governed | monthly | Reference Pack Winerix, Preuve réglementaire eAmbrosia, Produits SIQO INAO vin, Preuve appellation complète +2 | reference_score, confidence_score, active_source_count, evidence_pack, gi_count +23 | php scripts/ingest_eambrosia_gi.php file=sources/eambrosia-gi.csv |\n| insee_tourism_capacity_communes | governed | annual | Oenotourism Demand Offer Pack, Insee Tourism Occupancy Pack, Capacité touristique communale INSEE, Source Opportunity Radar +2 | pillar_count, source_count, score_recipe, copy_blocks, trust_badge_keys +25 | php scripts/ingest_insee_tourism_capacity_communes.php file=sources/insee-tourism-capacity-communes-2026.csv |\n| reference_kpi_scorecard | governed | weekly | Reference Dashboard Blueprint, Reference Narrative Deck, Reference Data Room Index, Reference Story Builder +2 | section_count, layout, kpi_slots, product_keys, visual_direction +22 | verifier api/get_reference_kpi_scorecard.php?format=md |\n| reference_source_fidelity | governed | weekly | Source Attribution Pack, Source Relationship Pack, Reference Normalization Runbook, Source Normalization Backlog +2 | source_count, license_count, odbl_source_count, attribution, publication_caveat +23 | verifier api/get_reference_source_fidelity.php?format=md |\n| reference_source_radar | governed | weekly | OpenAgenda Wine Event Signal, BNLC Carpooling Areas, Insee BPE Equipment, Merimee Heritage Monuments +2 | wine_event_signal, territory_activation_score, tourism_demand_context, wine_relevance_score, carpool_access_signal +19 | verifier api/get_reference_source_radar.php?format=md |\n| reference_territory_scorecard_public_bundle | governed | weekly | Source to Score Activation Queue, Activation Outputs Manifest, Territory KPI Score Table, Territory Pilot Profiles +2 | item_count, p1_count, normalize_next_count, publication_ready_count, output_count +7 | verifier api/get_reference_territory_scorecard_public_bundle.php?format=md |\n| inao_aoc_aop_commune_areas | governed | monthly | Reference Pack Winerix, Aires AOC/AOP INAO par commune, Produits SIQO INAO vin, Preuve appellation complète +1 | reference_score, confidence_score, active_source_count, evidence_pack, area_rows +19 | php scripts/ingest_inao_aoc_aop_communes.php file=sources/inao-aoc-aop-communes.csv |\n| kpi_pack | governed | weekly | Packs KPI par usage, Reference Copy Studio, Dictionnaire KPI Winerix, KPI Card Deck +1 | paste_ready, decision, next_action, persona, metrics_to_pull +13 | verifier app/kpi_pack.php et api/reference_export.php?type=kpi_pack |\n| reference_api_manifest | governed | weekly | Reference Launch Readiness, Reference Integration Guide, Reference Data Room Index, Reference Data Contracts +1 | check_count, required_count, recommended_count, artifact_available_count, artifact_missing_count +20 | verifier api/get_reference_api_manifest.php?format=md |\n| reference_claim_guard | governed | weekly | Territory Brief Composer, KPI Aggregation Rules, Source Attribution Pack, Public Footnote Pack +1 | score_count, source_count, badge_count, copy_blocks, source_stack +18 | verifier api/get_reference_claim_guard.php?format=md |\n| reference_territory_kpi_scorecard_pack | governed | weekly | Territory Scorecard Public Bundle, Source to Score Activation Queue, Activation Outputs Manifest, Territory Source Fact Table +1 | audience_count, block_count, package_count, checklist_count, scorecard_count +9 | verifier api/get_reference_territory_kpi_scorecards.php?format=md |\n| ban_address_reference | governed | weekly | BNSC Bike Parking Pack, Qualité adresse BAN, Source Opportunity Radar, Territory KPI Crosswalk | sampled_parkings, sample_commune_count, sample_capacity, sample_covered_count, sample_lit_count +16 | remplir sources/ban-address-quality-input.csv puis lancer scripts/normalize_ban_address_quality.php |\n| inao_siqo_products | governed | monthly | Reference Pack Winerix, Produits SIQO INAO vin, Preuve appellation complète, Reference Citation Kit | reference_score, confidence_score, active_source_count, evidence_pack, products +14 | php scripts/ingest_inao_siqo_products.php file=sources/inao-siqo-products.csv |\n| reference_citation_kit | governed | weekly | Source Attribution Pack, Reference Integration Guide, Reference Data Room Index, Reference Embed Kit | source_count, license_count, odbl_source_count, attribution, publication_caveat +15 | verifier api/get_reference_citation_kit.php?format=md |\n| reference_kpi_aggregation_rules | governed | weekly | KPI Publication Certificates, Territory Data Spine, User Need KPI Map, BNSC Bike Parking Pack | certificate_count, source_count, publication_status, badge_key, copy_receipt +13 | verifier api/get_reference_kpi_aggregation_rules.php?format=md |\n| reference_kpi_copy_pack | governed | weekly | Territory KPI Scorecards, Territory Scorecard Public Bundle, User Need KPI Map, Publishable Territory Page Pack | card_count, rule_count, layout_count, authority_source_count, spine_source_mapping_count +13 | verifier api/get_reference_kpi_copy_pack.php?format=md |\n| reference_live_kpi_board | governed | daily | Trust Badge Pack, Reference Claim Guard, Territory Share Pack, Territory Publication Bundle | badge_count, family, tone, html, copy_rule +11 | verifier api/get_reference_live_kpi_board.php?format=md |\n| reference_page_publication_kit | governed | weekly | Public Distribution Pack, User Feedback Pack, User Need KPI Map, Publishable Territory Page Pack | audience_count, bundle_count, page_kit_sections, source_relationship_count, copy_email +13 | verifier api/get_reference_page_publication_kit.php?format=md |\n| reference_public_footnotes | governed | weekly | Page Publication Kit, Public Distribution Pack, Territory Scorecard Public Bundle, KPI Copy Pack | section_count, checklist_count, certificate_count, footnote_count, copy_blocks +11 | verifier api/get_reference_public_footnotes.php?format=md |\n| reference_publishable_territory_page_pack | governed | weekly | Reference Authority Index, Territory KPI Scorecards, Territory Scorecard Public Bundle, Territory Pilot Profiles | source_count, average_authority_score, normalization_ready_count, copy_ready_count, pillar_count +12 | verifier api/get_reference_publishable_territory_page.php?format=md |\n| reference_source_relationships | governed | weekly | Public Distribution Pack, User Feedback Pack, Source Demand Backlog, Source Acquisition Sprint | audience_count, bundle_count, page_kit_sections, source_relationship_count, copy_email +12 | verifier api/get_reference_source_relationships.php?format=md |\n| reference_territory_kpi_formulas | governed | weekly | KPI Aggregation Rules, KPI Dependency Map, Territory Score Input Templates, Territory Score Calculator | territory_level_count, rule_count, recipe_count, territory_levels, rules +14 | verifier api/get_reference_territory_kpi_formulas.php?format=md |\n| reference_territory_page_kit | governed | weekly | Publishable Territory Page Pack, Territory Publication Bundle, Territory Score Calculator, Territory Reference Page | blueprint_count, section_count, cms_field_count, gate_count, copy_block_count +13 | verifier api/get_reference_territory_page_kit.php?format=md |\n| reference_trust_badges | governed | weekly | Territory Brief Composer, Territory Comparison Pack, KPI Publication Certificates, Agence Bio Organic Wine Pack | score_count, source_count, badge_count, copy_blocks, source_stack +13 | verifier api/get_reference_trust_badges.php?format=md |\n| reference_user_need_kpi_map | governed | weekly | Reference Source Radar, Reference Authority Index, Territory Data Spine, Publishable Territory Page Pack | candidate_count, p1_count, sample_now_count, fidelize_now_count, research_now_count +14 | verifier api/get_reference_user_need_kpi_map.php?format=md |\n| reference_visual_system | governed | weekly | Trust Badge Pack, Territory Page Kit, Reference Story Builder, Reference Embed Kit | badge_count, family, tone, html, copy_rule +15 | verifier api/get_reference_visual_system.php?format=md |\n| sirene_wine_establishments | governed | monthly | Agence Bio Organic Wine Pack, Source Opportunity Radar, Établissements vin SIRENE, Territory KPI Crosswalk | wine_related_operators, department_count, city_count, certifier_count, source_mode +15 | telecharger sources/sirene-stock-etablissements.csv puis lancer scripts/normalize_sirene_wine_establishments.php |\n| source_activation_status | governed | daily | Board maintenance sources, Reference Launch Readiness, Reference Release Notes, Publication Gate | publication_action, freshness_status, priority, copy_ticket, check_count +13 | verifier api/get_source_activation_status.php?format=md |\n| reference_authority_index | governed | weekly | Territory Data Spine, Territory KPI Scorecards, Source to Score Activation Queue | grain_count, source_mapping_count, aggregation_rule_count, output_table_count, card_count +8 | verifier api/get_reference_authority_index.php?format=md |\n| reference_dashboard_blueprint | governed | weekly | Reference Narrative Deck, Reference Launch Readiness, Reference Visual System | slide_count, kpi_slots, product_keys, speaker_note, caveat +10 | verifier api/get_reference_dashboard_blueprint.php?format=md |\n| reference_kpi_dependency_map | governed | weekly | Source Demand Backlog, Territory Publication Bundle, Score Hydration Board | item_count, research_now_count, source_demand_score, recommended_status, target_kpis +9 | verifier api/get_reference_kpi_dependency_map.php?format=md |\n| reference_kpi_publication_certificates | governed | weekly | Public Footnote Pack, Page Publication Kit, KPI Copy Pack | footnote_count, template_count, license_counts, short_footnote, full_footnote +7 | verifier api/get_reference_kpi_publication_certificates.php?format=md |\n| reference_normalization_runbook | governed | weekly | KPI Dependency Map, Normalization Quality Gates, Reference Normalization Readiness | score_count, component_dependency_count, unique_source_count, normalization_output_count, qa_ready_count +8 | verifier api/get_reference_normalization_runbook.php?format=md |\n| reference_publishable_snippets | governed | weekly | Reference Dashboard Blueprint, Reference Narrative Deck, Reference Visual System | section_count, layout, kpi_slots, product_keys, visual_direction +8 | verifier api/get_reference_publishable_snippets.php?format=md |\n| reference_source_attributions | governed | weekly | Public Footnote Pack, Source Relationship Pack, KPI Copy Pack | footnote_count, template_count, license_counts, short_footnote, full_footnote +9 | verifier api/get_reference_source_attributions.php?format=md |\n| reference_source_demand_backlog | governed | weekly | Source Acquisition Sprint, Reference Source Radar, KPI Copy Pack | phase_count, item_count, research_now_count, acceptance_gate_count, message_templates +7 | verifier api/get_reference_source_demand_backlog.php?format=md |\n| reference_source_lineage | governed | weekly | Reference API Manifest, Reference Launch Readiness, Reference Data Room Index | product_count, publish_count, complete_count, watch_count, endpoint_count +10 | verifier api/get_reference_source_lineage.php?format=md |\n| reference_territory_data_spine | governed | weekly | Territory KPI Scorecards, Source to Score Activation Queue, Territory Source Fact Table | card_count, rule_count, layout_count, authority_source_count, spine_source_mapping_count +7 | verifier api/get_reference_territory_data_spine.php?format=md |\n| reference_territory_kpi_crosswalk | governed | weekly | Territory KPI Formula Book, Territory Reference Page, Territory Page Kit | metric_count, normalization_rule_count, formula, weights, minimum_gate +9 | verifier api/get_reference_territory_kpi_crosswalk.php?format=md |\n| reference_territory_score_calculator | governed | weekly | Live KPI Board, Score Hydration Board, Territory Score Input Templates | live_count, partial_count, demo_count, blocked_count, display_mode +9 | verifier api/get_reference_territory_scores.php?format=md |\n| agreste_viticulture_territorial | governed | annual | Reference Pack Winerix, Cadrage Agreste viticulture | reference_score, confidence_score, active_source_count, evidence_pack, surface_vigne +2 | php scripts/ingest_macro_indicators.php kind=macro_wine file=sources/agreste-viticulture-territorial.csv source_key=agreste_viticulture_territorial |\n| atout_france_classified_accommodations | governed | monthly | Reference Pack Winerix, Hébergements touristiques classés | reference_score, confidence_score, active_source_count, evidence_pack, establishments +4 | php scripts/ingest_classified_accommodations.php file=sources/atout-france-classified-accommodations.csv |\n| hve_certified_estates | governed | annual | Exploitations certifiées HVE, Territory KPI Crosswalk | certified_estates, wine_related_estates, wine_related_rate, region_count, department_count +6 | lancer scripts/normalize_hve_certified_estates.php puis rapprocher domaines Winerix/Sirene/BAN |\n| insee_tourism_occupancy | governed | monthly | Oenotourism Demand Offer Pack, Insee Tourism Occupancy Pack | pillar_count, source_count, score_recipe, copy_blocks, trust_badge_keys +5 | rafraichir sources/insee-tourism-occupancy.zip puis lancer scripts/normalize_insee_tourism_occupancy.php |\n| qualite_tourisme_establishments | governed | monthly | Oenotourism Demand Offer Pack, Qualite Tourisme Establishments Pack | pillar_count, source_count, score_recipe, copy_blocks, trust_badge_keys +5 | rafraichir sources/qualite-tourisme-establishments.csv puis lancer scripts/normalize_qualite_tourisme_establishments.php |\n| reference_embed_kit | governed | weekly | Territory Page Kit, Reference Story Builder | section_count, layout_count, kpi_slots, source_stack, html_snippet +5 | verifier api/get_reference_embed_kit.php?format=md |\n| reference_launch_readiness | governed | daily | Reference Data Room Index, Reference Release Notes | collection_count, unique_product_count, markdown_export_count, product_keys, copy_order +3 | verifier api/get_reference_launch_readiness.php?format=md |\n| reference_normalization_quality_gates | governed | daily | Score Hydration Board, KPI Dependency Map | hydrated_ready_count, partially_hydratable_count, blocked_by_normalization_count, hydration_rate, score_count +3 | verifier api/get_reference_normalization_quality_gates.php?format=md |\n| reference_oenotourism_demand_offer | governed | weekly | Territory Brief Composer, Territory Comparison Pack | score_count, source_count, badge_count, copy_blocks, source_stack +4 | verifier api/get_reference_oenotourism_demand_offer.php?format=md |\n| reference_publishable_territory_profiles | governed | weekly | Profile Publication Queue, Profile Proof Cards | schema_count, status_count, output_count | lancer scripts/build_reference_territory_label_registry.php puis scripts/build_reference_publishable_territory_profiles.php |\n| reference_source_acquisition_sprint | governed | weekly | Reference Source Radar, User Need KPI Map | candidate_count, p1_count, sample_now_count, fidelize_now_count, research_now_count +4 | verifier api/get_reference_source_acquisition_sprint.php?format=md |\n| reference_source_normalization_backlog | governed | weekly | Reference Normalization Readiness, Reference Normalization Runbook | ready_to_run_count, normalized_file_available_count, missing_input_count, next_ready_source, step_count +4 | verifier api/get_reference_source_normalization_backlog.php?format=md |\n| reference_territory_brief | governed | weekly | Territory Comparison Pack, Page Publication Kit | territory_count, axis_count, row_count, copy_blocks, badge_keys +4 | verifier api/get_reference_territory_brief.php?format=md |\n| reference_territory_comparison | governed | weekly | KPI Aggregation Rules, Page Publication Kit | territory_level_count, rule_count, recipe_count, territory_levels, rules +5 | verifier api/get_reference_territory_comparison.php?format=md |\n| reference_territory_kpi_score_table | governed | weekly | Territory Pilot Profiles, Publishable Territory Profiles | schema_count, output_count, rule_count | lancer scripts/build_reference_territory_kpi_scores.php puis verifier api/get_reference_territory_kpi_scores.php?format=md |\n| reference_territory_publication_bundle | governed | daily | Publishable Territory Page Pack, Territory Share Pack | blueprint_count, section_count, cms_field_count, gate_count, copy_block_count +5 | verifier api/get_reference_territory_publication_bundle.php?format=md |\n| reference_territory_source_fact_table | governed | weekly | Territory KPI Score Table, Profile Proof Cards | schema_count, input_count, output_count, scorecard_count, status_count | lancer scripts/build_reference_territory_source_facts.php puis verifier api/get_reference_territory_source_facts.php?format=md |\n| reference_user_feedback | governed | weekly | Source Demand Backlog, Source Acquisition Sprint | item_count, research_now_count, source_demand_score, recommended_status, target_kpis +3 | verifier api/get_reference_user_feedback.php?format=md |\n| reference_user_need_navigator | governed | weekly | Publishable Snippet Board, Reference Story Builder | snippet_count, kpi_slots, product_keys, clipboard_block, segment_count +4 | verifier api/get_reference_user_need_navigator.php?format=md |\n| rpg_parcels | governed | annual | Reference Pack Winerix, Parcelles viticoles RPG | reference_score, confidence_score, active_source_count, evidence_pack, parcels +3 | 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| source_opportunity_radar | governed | monthly | Source Normalization Backlog, Source Fidelity Ledger | item_count, top_priority_source, status_counts, target_file, publication_gain +5 | verifier api/get_source_opportunity_radar.php?format=md |\n| tourisme_handicap_establishments | governed | monthly | Reference Pack Winerix, Établissements Tourisme & Handicap | reference_score, confidence_score, active_source_count, evidence_pack, establishments +4 | rafraichir sources/tourisme-handicap-establishments.csv puis lancer scripts/normalize_tourisme_handicap_establishments.php |\n| agencebio_organic_wine | governed | daily | Agence Bio Organic Wine Pack | wine_related_operators, department_count, city_count, certifier_count, source_mode | rafraichir sources/agencebio-professionnels-bio.csv puis verifier api/get_agencebio_organic_wine.php?format=md |\n| agreste_vineyard_land_values | governed | annual | Foncier viticole Agreste | normalized_rows, vineyard_rows, territory_count, average_price_eur_ha, price_min_eur_ha +1 | remplir sources/agreste-vineyard-land-values-input.csv puis lancer scripts/normalize_agreste_vineyard_land_values.php |\n| atout_france_vignobles_decouvertes_destinations | governed | monthly | Destinations Vignobles & Découvertes | destinations, wine_regions | php scripts/ingest_macro_indicators.php kind=oenotourism file=sources/vignobles-decouvertes-destinations-sample.csv |\n| bnlc_carpooling_areas | governed | monthly | BNLC Carpooling Areas | carpool_access_signal, low_carbon_access_score, access_signal | mettre a jour sources/bnlc-carpooling-areas.csv puis normaliser scripts/normalize_bnlc_carpooling_areas.php |\n| bnsc_bike_parking | governed | weekly | BNSC Bike Parking Pack | sampled_parkings, sample_commune_count, sample_capacity, sample_covered_count, sample_lit_count | rafraichir sources/bnsc-bike-parking.zip puis lancer scripts/normalize_bnsc_bike_parking.php |\n| datatourisme_fidelity_monitor | governed | daily | Reference Authority Index | source_count, average_authority_score, normalization_ready_count, copy_ready_count, pillar_count | mettre a jour sources/datatourisme-datagouv.json et sources/datatourisme-resource-snapshot.csv puis lancer scripts/monitor_datatourisme_freshness.php |\n| dgddi_vitivinicole_stocks_harvests | governed | annual | Récoltes et stocks vitivinicoles DGDDI | harvest_resource_count, stock_resource_count, surface_ha_total, production_hl_total, stock_hl_total +1 | remplir sources/dgddi-vitivinicole-stocks-harvests-input.csv puis lancer scripts/normalize_dgddi_vitivinicole_supply.php |\n| franceagrimer_campagne_viticulture | governed | weekly | Prix vrac FranceAgriMer | series, campaigns, latest_price, avg_price, categories | remplir sources/franceagrimer-prices-input.csv puis lancer scripts/normalize_franceagrimer_bulk_prices.php |\n| kpi_evidence | governed | weekly | Reference Copy Studio | persona, decision, metrics_to_pull, products, caveat | verifier api/reference_export.php?type=kpi_evidence&format=md |\n| reference_activation_outputs_manifest | governed | weekly | Territory Source Fact Table | schema_count, input_count, output_count | verifier api/get_reference_activation_outputs_manifest.php?format=md |\n| reference_copy_studio | governed | weekly | Publication Gate | status, fail_count, warn_count, gates, activation_summary | verifier api/get_reference_copy_studio.php?format=md |\n| reference_data_room_index | governed | weekly | Reference Release Notes | section_count, unique_product_count, shareable_count, runtime_validation_count | verifier api/get_reference_data_room_index.php?format=md |\n| reference_integration_guide | governed | weekly | Reference Data Contracts | contract_count, catalog_linked_count, missing_product_count, required_fields, quality_gates | verifier api/get_reference_integration_guide.php?format=md |\n| reference_kpi_card_deck | governed | weekly | KPI Cards hydratées | value, hydrated, copy_sentence_hydrated, caveat | verifier api/get_reference_kpi_card_deck.php?format=md |\n| reference_normalization_readiness | governed | daily | Normalization Quality Gates | qa_ready_count, blocked_count, status_counts, missing_columns, row_count | verifier api/get_reference_normalization_readiness.php?format=md |\n| reference_product_catalog | governed | weekly | Data Product Index | product_count, stage_counts, source_count, kpi_count | verifier app/reference_product_catalog.php |\n| reference_profile_publication_queue | governed | weekly | Profile Proof Cards | schema_count, output_count, status_count | lancer scripts/build_reference_profile_publication_queue.php puis verifier api/get_reference_profile_publication_queue.php?format=md |\n| reference_public_distribution | governed | weekly | User Feedback Pack | segment_count, question_count, score_count, copy_ready_score, source_demand_score | verifier api/get_reference_public_distribution.php?format=md |\n| reference_score_hydration | governed | daily | Live KPI Board | live_count, partial_count, demo_count, blocked_count, display_mode | verifier api/get_reference_score_hydration.php?format=md |\n| reference_source_to_score_activation_queue | governed | weekly | Activation Outputs Manifest | output_count, activated_count, pending_heavy_count | verifier api/get_reference_source_to_score_activation_queue.php?format=md |\n| reference_story_builder | governed | weekly | Territory Page Kit | section_count, layout_count, kpi_slots, source_stack, html_snippet | verifier api/get_reference_story_builder.php?format=md |\n| reference_territory_pilot_profiles | governed | weekly | Publishable Territory Profiles | schema_count, output_count, rule_count | lancer scripts/build_reference_territory_pilot_profiles.php puis verifier api/get_reference_territory_pilot_profiles.php?format=md |\n| reference_territory_share_pack | governed | weekly | Reference Claim Guard | mode_count, source_state_count, channel_count, allowed_claims, forbidden_claims | verifier api/get_reference_territory_share_pack.php?format=md |\n| sirene_insee | governed | monthly | Établissements vin SIRENE | establishments, sirens, core_wine_establishments, communes, naf_codes | php scripts/ingest_sirene_insee.php |\n| source_refresh_policy | catalog_only | n/a | Evidence Pack KPI, Source Relationship Pack, DATAtourisme Fidelity Monitor, Politique de fraîcheur sources +7 | source_name, source_url, citation, caveat, source_count +40 | La preuve ne valide pas automatiquement la fraîcheur : vérifier les dates et gates. +10 |\n| source_registry | catalog_only | n/a | Reference Pack Winerix, KPI Pack central, Evidence Pack KPI, Statut activation sources | reference_score, confidence_score, active_source_count, evidence_pack, communes +11 | Synthèse de maturité : dépend des imports locaux et des caveats de chaque source. +3 |\n| appellations | catalog_only | n/a | Aires AOC/AOP INAO par commune, Preuve appellation complète, Contrôle écarts appellations/eAmbrosia | area_rows, areas, communes, matched_winerix_areas, departments +9 | AOC/AOP toutes familles : filtrer/croiser avec les appellations vin Winerix, COMAGRI ou eAmbrosia avant usage juridique. +2 |\n| reference_territory_scores | catalog_only | n/a | Territory Brief Composer, Territory Comparison Pack, KPI Publication Certificates | score_count, source_count, badge_count, copy_blocks, source_stack +8 | Brief de composition : ne remplace pas normalisation source, validation DB, revue metier ou Publication Gate. +2 |\n| vignobles_decouvertes | catalog_only | n/a | Oenotourism Demand Offer Pack, Insee Tourism Occupancy Pack, Qualite Tourisme Establishments Pack | pillar_count, source_count, score_recipe, copy_blocks, trust_badge_keys +10 | Pack de lecture : il clarifie les usages mais ne remplace pas normalisation, hydratation KPI ou Publication Gate. +2 |\n| tourism_handicap_establishments | catalog_only | n/a | Oenotourism Demand Offer Pack, Qualite Tourisme Establishments Pack | pillar_count, source_count, score_recipe, copy_blocks, trust_badge_keys +5 | Pack de lecture : il clarifie les usages mais ne remplace pas normalisation, hydratation KPI ou Publication Gate. +1 |\n| ban_address_quality | catalog_only | n/a | Agence Bio Organic Wine Pack | wine_related_operators, department_count, city_count, certifier_count, source_mode | Annuaire declaratif Agence Bio : publier d abord des agregats territoire ; le groupe culture VI de l historique communal inclut une faible part de raisin de table. |\n| ban_commune_status | catalog_only | n/a | Qualité adresse BAN | audit_rows, geocoded_rate, average_address_score, low_quality_rows, certified_address_rows +1 | La BAN qualifie adresse et coordonnees ; elle ne prouve ni ouverture au public, ni pertinence vin, ni frequentation. |\n| classified_accommodations | catalog_only | n/a | Qualite Tourisme Establishments Pack | sampled_establishments, wine_related_establishments, geocoded_rate, region_count, activity_count | Label qualite accueil : ne mesure pas frequentation ni preuve vin sans rapprochement DATAtourisme/V&D/commune viticole. |\n| comagri_ao_2025 | catalog_only | n/a | Aires AOC/AOP INAO par commune | area_rows, areas, communes, matched_winerix_areas, departments | AOC/AOP toutes familles : filtrer/croiser avec les appellations vin Winerix, COMAGRI ou eAmbrosia avant usage juridique. |\n| datatourisme_resources | catalog_only | n/a | DATAtourisme Fidelity Monitor | datatourisme_freshness_score, coverage_by_region, source_relationship_signal, regional_feed_watchlist | DATAtourisme : fraicheur ressource ne prouve pas exhaustivite ni qualite des POI territoriaux. |\n| estate_profiles | catalog_only | n/a | KPI Pack central | communes, appellations, estates, wines, confidence_score | Pack agrégé : ne remplace pas les fiches source ni les contrôles de publication. |\n| franceagrimer_bulk_wine_prices | catalog_only | n/a | Source Opportunity Radar | opportunity_score, priority, impact, effort, confidence_score | Radar de priorisation : les sources listées ne sont pas toutes encore importées ni validées métier. |\n| inao_aoc_aop_communes | catalog_only | n/a | Territory KPI Crosswalk | join_key_count, recipe_count, source_stack, kpi_slots, quality_gates | Plan de rapprochement : ne prouve pas que les jointures DB ont ete executees ou validees. |\n| inao_aoc_aop_igp_areas_products | catalog_only | n/a | Source Opportunity Radar | opportunity_score, priority, impact, effort, confidence_score | Radar de priorisation : les sources listées ne sont pas toutes encore importées ni validées métier. |\n| insee_bpe_2024 | catalog_only | n/a | Insee BPE Equipment | tourism_service_density, territory_readiness_score, culture_leisure_context, access_equipment_signal | BPE : presence d equipements, pas qualite, frequentation ou satisfaction visiteur. |\n| macro_oenotourism_indicators | catalog_only | n/a | KPI Pack central | communes, appellations, estates, wines, confidence_score | Pack agrégé : ne remplace pas les fiches source ni les contrôles de publication. |\n| macro_wine_indicators | catalog_only | n/a | KPI Pack central | communes, appellations, estates, wines, confidence_score | Pack agrégé : ne remplace pas les fiches source ni les contrôles de publication. |\n| merimee_monuments_historiques | catalog_only | n/a | Merimee Heritage Monuments | heritage_pull_signal, culture_wine_context_score, territory_story_proof, heritage_signal | Merimee : patrimoine protege, pas frequentation, ouverture au public ou impact oenotouristique direct. |\n| openagenda_public_events | catalog_only | n/a | OpenAgenda Wine Event Signal | wine_event_signal, territory_activation_score, tourism_demand_context, wine_relevance_score | OpenAgenda contributif : couverture non exhaustive, taxonomy variable, frequentation non mesuree. |\n\n## Gaps gouvernance\n\n- source_refresh_policy : ajouter une ligne dans `sources/source-refresh-policy.csv` ou confirmer que c'est un produit interne.\n- source_registry : ajouter une ligne dans `sources/source-refresh-policy.csv` ou confirmer que c'est un produit interne.\n- appellations : ajouter une ligne dans `sources/source-refresh-policy.csv` ou confirmer que c'est un produit interne.\n- reference_territory_scores : ajouter une ligne dans `sources/source-refresh-policy.csv` ou confirmer que c'est un produit interne.\n- vignobles_decouvertes : ajouter une ligne dans `sources/source-refresh-policy.csv` ou confirmer que c'est un produit interne.\n- tourism_handicap_establishments : ajouter une ligne dans `sources/source-refresh-policy.csv` ou confirmer que c'est un produit interne.\n- ban_address_quality : ajouter une ligne dans `sources/source-refresh-policy.csv` ou confirmer que c'est un produit interne.\n- ban_commune_status : ajouter une ligne dans `sources/source-refresh-policy.csv` ou confirmer que c'est un produit interne.\n- classified_accommodations : ajouter une ligne dans `sources/source-refresh-policy.csv` ou confirmer que c'est un produit interne.\n- comagri_ao_2025 : ajouter une ligne dans `sources/source-refresh-policy.csv` ou confirmer que c'est un produit interne.\n- datatourisme_resources : ajouter une ligne dans `sources/source-refresh-policy.csv` ou confirmer que c'est un produit interne.\n- estate_profiles : ajouter une ligne dans `sources/source-refresh-policy.csv` ou confirmer que c'est un produit interne.\n- franceagrimer_bulk_wine_prices : ajouter une ligne dans `sources/source-refresh-policy.csv` ou confirmer que c'est un produit interne.\n- inao_aoc_aop_communes : ajouter une ligne dans `sources/source-refresh-policy.csv` ou confirmer que c'est un produit interne.\n- inao_aoc_aop_igp_areas_products : ajouter une ligne dans `sources/source-refresh-policy.csv` ou confirmer que c'est un produit interne.\n- insee_bpe_2024 : ajouter une ligne dans `sources/source-refresh-policy.csv` ou confirmer que c'est un produit interne.\n- macro_oenotourism_indicators : ajouter une ligne dans `sources/source-refresh-policy.csv` ou confirmer que c'est un produit interne.\n- macro_wine_indicators : ajouter une ligne dans `sources/source-refresh-policy.csv` ou confirmer que c'est un produit interne.\n- merimee_monuments_historiques : ajouter une ligne dans `sources/source-refresh-policy.csv` ou confirmer que c'est un produit interne.\n- openagenda_public_events : ajouter une ligne dans `sources/source-refresh-policy.csv` ou confirmer que c'est un produit interne.\n"}