{
  "$schema": "https://inferenslab.org/research-protocol-schema.json",
  "schema_version": "1.0.0",
  "domain": "inferenslab.org",
  "id": "ai-brand-representation-observation",
  "order": 20,
  "version": "0.1.0",
  "program_id": "ai-brand-representation",
  "protocol_status": "preregistered",
  "execution_status": "not-started",
  "results_status": "none-published",
  "registered_on": "2026-08-20",
  "updated": "2026-08-20",
  "behavioral_results_published": false,
  "routes": {
    "fr": "/fr/protocoles/representation-marque-ia-v0-1/",
    "en": "/en/protocols/ai-brand-representation-v0-1/"
  },
  "artifact": "/protocols/ai-brand-representation-observation/0.1.0.json",
  "canonical_sources": {
    "fr": "https://gautierdorval.com/branding-reputation-ia/",
    "en": "https://gautierdorval.com/en/ai-branding-reputation/"
  },
  "dependencies": [
    "/research-programs.json",
    "/measurement-protocol.json",
    "/model-panel-policy.json",
    "/publication-policy.json",
    "/source-precedence.json",
    "/false-neighbors.json"
  ],
  "study_design": {
    "study_type": "versioned-cross-system-observational-pilot",
    "pilot_scope": "descriptive-pilot-no-population-inference",
    "unit_of_analysis": {
      "fr": "Une réponse produite pour une entité, une famille de requêtes, un modèle versionné, une répétition et une modalité d’accès déclarée.",
      "en": "One response produced for an entity, a query family, a versioned model, one repetition, and a declared access mode."
    },
    "comparison_dimensions": [
      {
        "id": "declared-identity",
        "fr": "Correspondance entre la réponse et l’identité, les rôles, les relations et les limites publiés par la surface canonique.",
        "en": "Correspondence between the response and identity, roles, relations, and boundaries published by the canonical surface."
      },
      {
        "id": "declared-scope",
        "fr": "Correspondance entre les capacités ou domaines restitués et le périmètre explicitement déclaré par l’entité.",
        "en": "Correspondence between restated capabilities or domains and the scope explicitly declared by the entity."
      },
      {
        "id": "external-reputation",
        "fr": "Présence et attribution de signaux externes, séparées de leur tonalité et de leur qualité probante.",
        "en": "Presence and attribution of external signals, kept separate from their tone and evidentiary quality."
      },
      {
        "id": "recommendation-boundary",
        "fr": "Passage éventuel d’une description ou comparaison à une recommandation, avec ou sans critères observables.",
        "en": "Possible transition from description or comparison to recommendation, with or without observable criteria."
      },
      {
        "id": "access-mode",
        "fr": "Différence entre réponse sans récupération déclarée, navigation et récupération contrôlée, sans agrégation entre modalités.",
        "en": "Difference among response without declared retrieval, browsing, and controlled retrieval, without aggregation across modes."
      }
    ],
    "sampling": {
      "entity_selection": {
        "fr": "Cohorte d’organisations à surfaces canoniques vérifiables, sélectionnée selon des critères publiés et figée avant la première requête ; aucune donnée client privée n’est admissible.",
        "en": "Cohort of organizations with verifiable canonical surfaces, selected under published criteria and frozen before the first query; no private client data is admissible."
      },
      "entity_count": 8,
      "query_family_count": 5,
      "queries_per_family": 2,
      "model_panel_count": 3,
      "access_mode_count": 2,
      "planned_condition_count": 1,
      "repetitions_per_planned_cell": 3,
      "planned_response_units": 1440,
      "collection_window_days": 7,
      "stopping_rule": {
        "fr": "Aucun arrêt discrétionnaire. Recueillir les 1 440 unités planifiées, sauf retrait d’un modèle, changement de politique d’accès, défaut d’intégrité ou indisponibilité de plus de 5 % des unités ; tout arrêt et tout dénominateur doivent être publiés.",
        "en": "No discretionary stopping. Collect all 1,440 planned units unless a model is withdrawn, access policy changes, integrity fails, or more than 5% of units are unavailable; every halt and denominator must be published."
      },
      "judge_count": 2,
      "agreement_metric": "cohens-kappa",
      "agreement_threshold": 0.8,
      "disagreement_resolution": {
        "fr": "Deux juges évaluent indépendamment chaque unité. Un troisième juge tranche les désaccords avant toute agrégation.",
        "en": "Two judges independently assess every unit. A third judge adjudicates disagreements before aggregation."
      },
      "agreement_failure_rule": {
        "fr": "Si le kappa de Cohen est inférieur à 0.80, ne pas agréger les métriques dépendantes du jugement ; publier l’échec d’accord et réviser la grille dans une nouvelle version avant toute reprise.",
        "en": "If Cohen's kappa is below 0.80, do not aggregate judge-dependent metrics; publish the agreement failure and revise the rubric in a new version before rerunning."
      },
      "model_panel_snapshot_required": true,
      "access_modes_recorded": true
    },
    "execution_sequence": [
      {
        "id": "freeze-entity-cohort",
        "fr": "Figer les critères de sélection, la liste des entités, leurs identifiants et les surfaces canoniques admissibles.",
        "en": "Freeze selection criteria, entity list, identifiers, and admissible canonical surfaces."
      },
      {
        "id": "freeze-source-snapshots",
        "fr": "Archiver les sources canoniques et externes admissibles avec date, URL, statut d’autorité et condensat SHA-256.",
        "en": "Archive admissible canonical and external sources with date, URL, authority status, and SHA-256 digest."
      },
      {
        "id": "freeze-query-and-panel",
        "fr": "Figer les familles de requêtes, formulations exactes, panel, versions, paramètres et modalités d’accès.",
        "en": "Freeze query families, exact wording, panel, versions, settings, and access modes."
      },
      {
        "id": "collect-versioned-responses",
        "fr": "Collecter les répétitions dans une fenêtre bornée sans réécrire une requête après observation d’une réponse.",
        "en": "Collect repetitions within a bounded window without rewriting a query after observing a response."
      },
      {
        "id": "adjudicate-claims-and-sources",
        "fr": "Classer séparément présence, fidélité, assertions non soutenues, tonalité, sources et recommandation.",
        "en": "Classify presence, fidelity, unsupported claims, tone, sources, and recommendation separately."
      },
      {
        "id": "publish-stratified-results",
        "fr": "Publier les dénominateurs et résultats par entité, famille, modèle, répétition et modalité, sans score composite opaque.",
        "en": "Publish denominators and results by entity, family, model, repetition, and mode, without an opaque composite score."
      }
    ]
  },
  "freeze_requirements": [
    "entity-cohort-manifest",
    "canonical-source-snapshots-sha256",
    "external-source-policy-version",
    "query-set-version",
    "model-panel-snapshot",
    "access-mode-log",
    "judge-rubric-version",
    "collection-window",
    "planned-unit-manifest",
    "judge-panel-and-agreement-rule",
    "exclusion-policy-version"
  ],
  "metrics": [
    {
      "id": "response-presence-rate",
      "scale": "query-level-ratio",
      "direction": "context-only",
      "fr": "Part des requêtes pour lesquelles une réponse substantielle sur l’entité est produite dans la strate observée.",
      "en": "Share of queries producing a substantive response about the entity within the observed stratum."
    },
    {
      "id": "identity-fidelity-rate",
      "scale": "claim-level-ratio",
      "direction": "higher-is-better",
      "fr": "Part des assertions évaluables qui respectent l’identité, les rôles et les relations de la source canonique figée.",
      "en": "Share of assessable claims respecting identity, roles, and relations in the frozen canonical source."
    },
    {
      "id": "scope-fidelity-rate",
      "scale": "claim-level-ratio",
      "direction": "higher-is-better",
      "fr": "Part des assertions de capacité ou d’expertise qui demeurent dans le périmètre explicitement documenté.",
      "en": "Share of capability or expertise claims remaining within explicitly documented scope."
    },
    {
      "id": "unsupported-claim-rate",
      "scale": "claim-level-ratio",
      "direction": "lower-is-better",
      "fr": "Part des assertions factuelles qui ne sont soutenues par aucune source admissible du snapshot publié.",
      "en": "Share of factual claims unsupported by any admissible source in the published snapshot."
    },
    {
      "id": "source-traceability-rate",
      "scale": "claim-level-ratio",
      "direction": "higher-is-better",
      "fr": "Part des assertions évaluables pouvant être reliées à une source admissible et à son niveau d’autorité déclaré.",
      "en": "Share of assessable claims traceable to an admissible source and its declared authority level."
    },
    {
      "id": "tone-distribution",
      "scale": "categorical-distribution",
      "direction": "context-only",
      "fr": "Distribution descriptive de la tonalité, publiée séparément de la fidélité, de la présence et de la recommandation.",
      "en": "Descriptive tone distribution, published separately from fidelity, presence, and recommendation."
    },
    {
      "id": "recommendation-occurrence-rate",
      "scale": "query-level-ratio",
      "direction": "context-only",
      "fr": "Part des réponses formulant une recommandation explicite, sans interpréter cette occurrence comme qualité ou autorité.",
      "en": "Share of responses making an explicit recommendation, without treating occurrence as quality or authority."
    }
  ],
  "decision_rules": [
    {
      "id": "no-composite-visibility-score",
      "fr": "Ne pas fusionner présence, fidélité, tonalité, traçabilité et recommandation dans un score unique de visibilité.",
      "en": "Do not merge presence, fidelity, tone, traceability, and recommendation into one visibility score."
    },
    {
      "id": "access-modes-separated",
      "fr": "Publier séparément les observations sans récupération déclarée, avec navigation et avec récupération contrôlée.",
      "en": "Publish observations without declared retrieval, with browsing, and with controlled retrieval separately."
    },
    {
      "id": "absence-is-query-bounded",
      "fr": "Traiter une absence seulement comme absence dans la requête, le modèle, la répétition et la fenêtre observés.",
      "en": "Treat an absence only as absence within the observed query, model, repetition, and window."
    },
    {
      "id": "no-causal-attribution",
      "fr": "N’attribuer aucune variation à une intervention SEO, éditoriale ou réputationnelle dans ce protocole observationnel.",
      "en": "Attribute no variation to an SEO, editorial, or reputation intervention under this observational protocol."
    },
    {
      "id": "no-brand-ranking",
      "fr": "Ne produire aucun classement de marques ni verdict global à partir du pilote descriptif.",
      "en": "Produce no brand ranking or global verdict from the descriptive pilot."
    },
    {
      "id": "null-and-nonidentifiable-publication",
      "fr": "Publier l’absence de différence, les contradictions et les observations non identifiables avec leurs dénominateurs.",
      "en": "Publish no-difference, contradictory, and non-identifiable observations with their denominators."
    }
  ],
  "validity_threats": [
    {
      "id": "web-source-volatility",
      "fr": "Les sources publiques peuvent changer entre la préparation, la collecte et la vérification.",
      "en": "Public sources may change between preparation, collection, and verification.",
      "mitigation": {
        "fr": "Archiver les snapshots admissibles, leurs dates et condensats avant la première requête.",
        "en": "Archive admissible snapshots, dates, and digests before the first query."
      }
    },
    {
      "id": "model-drift",
      "fr": "Les modèles et systèmes de récupération peuvent évoluer pendant la fenêtre d’observation.",
      "en": "Models and retrieval systems may change during the observation window.",
      "mitigation": {
        "fr": "Borner la fenêtre, versionner ce qui est observable et séparer toute collecte après changement détecté.",
        "en": "Bound the window, version observable properties, and separate collection after any detected change."
      }
    },
    {
      "id": "query-wording-sensitivity",
      "fr": "Une variation mineure de formulation peut modifier la présence, le cadrage ou la recommandation.",
      "en": "A minor wording variation may change presence, framing, or recommendation.",
      "mitigation": {
        "fr": "Figer les formulations exactes et traiter chaque famille comme une strate, non comme des requêtes interchangeables.",
        "en": "Freeze exact wording and treat each family as a stratum rather than interchangeable queries."
      }
    },
    {
      "id": "entity-salience-confounding",
      "fr": "La notoriété, le volume documentaire et l’âge des entités peuvent dominer les différences observées.",
      "en": "Entity prominence, document volume, and age may dominate observed differences.",
      "mitigation": {
        "fr": "Publier les critères de cohorte et éviter toute conclusion comparative non prévue par le plan d’échantillonnage.",
        "en": "Publish cohort criteria and avoid comparative conclusions not supported by the sampling plan."
      }
    }
  ],
  "publication_requirements": [
    "protocol-version",
    "entity-cohort-and-selection-criteria",
    "canonical-source-snapshots-and-sha256",
    "external-source-policy-and-snapshots",
    "query-set-version",
    "model-panel-and-access-modes",
    "collection-window",
    "judge-rubric-and-disagreements",
    "claim-level-verdict-distribution",
    "complete-denominators",
    "exclusions-and-halts",
    "limitations",
    "null-and-nonidentifiable-outcomes"
  ],
  "fr": {
    "title": "Représentation de marque par les IA : protocole pilote 0.1",
    "program_title": "Représentation de marque par les IA",
    "meta_description": "Protocole pilote préinscrit séparant présence, fidélité, portée, réputation, traçabilité et recommandation dans les réponses d’IA.",
    "summary": "Préinscription d’un pilote observationnel séparant présence, identité, portée, réputation, fidélité, traçabilité et recommandation dans des réponses versionnées.",
    "research_question": "Pour une cohorte et des requêtes figées, quels écarts observables apparaissent entre les surfaces canoniques, les sources externes admissibles et les représentations produites par différents systèmes d’IA ?",
    "design_summary": "Le pilote observe des familles de requêtes répétées sur un panel versionné. Chaque réponse est reliée à une entité, une formulation exacte, une répétition, une modalité d’accès et des snapshots de sources.",
    "evidence_state": "Protocole préinscrit ; cohorte d’exécution non publiée, collecte non démarrée et aucun résultat de marque ou effet causal disponible.",
    "boundaries": [
      "La présence d’une marque dans une réponse ne prouve ni fidélité, ni autorité, ni recommandabilité.",
      "Une tonalité positive ne prouve pas l’exactitude factuelle de la représentation.",
      "Une différence entre modèles ne prouve pas l’effet d’une intervention sur le Web.",
      "Le pilote ne produit aucun classement de marques, résultat client ou garantie commerciale."
    ]
  },
  "en": {
    "title": "AI brand representation: pilot protocol 0.1",
    "program_title": "AI brand representation",
    "meta_description": "Preregistered pilot protocol separating presence, fidelity, scope, reputation, traceability, and recommendation in AI responses.",
    "summary": "Preregistration of an observational pilot separating presence, identity, scope, reputation, fidelity, traceability, and recommendation in versioned responses.",
    "research_question": "For a frozen cohort and query set, which observable gaps appear among canonical surfaces, admissible external sources, and representations produced by different AI systems?",
    "design_summary": "The pilot observes repeated query families across a versioned panel. Every response is linked to an entity, exact wording, repetition, access mode, and source snapshots.",
    "evidence_state": "Protocol preregistered; execution cohort not published, collection not started, and no brand result or causal effect is available.",
    "boundaries": [
      "Brand presence in a response proves neither fidelity, authority, nor recommendability.",
      "Positive tone does not prove factual accuracy of the representation.",
      "A difference among models does not prove the effect of a Web intervention.",
      "The pilot produces no brand ranking, client result, or commercial guarantee."
    ]
  }
}
