{
  "$schema": "https://inferenslab.org/research-protocol-schema.json",
  "schema_version": "1.0.0",
  "domain": "inferenslab.org",
  "id": "interpretive-conditioning-observation",
  "order": 10,
  "version": "0.1.0",
  "program_id": "interpretive-conditioning",
  "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/conditionnement-interpretatif-v0-1/",
    "en": "/en/protocols/interpretive-conditioning-v0-1/"
  },
  "artifact": "/protocols/interpretive-conditioning-observation/0.1.0.json",
  "canonical_sources": {
    "fr": "https://gautierdorval.com/doctrine/couche-conditionnement-interpretatif/",
    "en": "https://gautierdorval.com/en/doctrine/interpretive-conditioning-layer/"
  },
  "dependencies": [
    "/research-programs.json",
    "/measurement-protocol.json",
    "/model-panel-policy.json",
    "/publication-policy.json",
    "/interpretation-policy.json",
    "/response-legitimacy.json"
  ],
  "study_design": {
    "study_type": "controlled-randomized-synthetic-corpus-experiment",
    "pilot_scope": "descriptive-pilot-no-population-inference",
    "unit_of_analysis": {
      "fr": "Une réponse produite pour une requête figée, un modèle versionné, un mode d’accès déclaré et une condition de corpus.",
      "en": "One response produced for a frozen query, a versioned model, a declared access mode, and one corpus condition."
    },
    "comparison_dimensions": [
      {
        "id": "canonical-baseline",
        "fr": "Représentation de référence où l’identité, les invariants, la portée et les limites sont explicitement déclarés.",
        "en": "Reference representation in which identity, invariants, scope, and boundaries are explicitly declared."
      },
      {
        "id": "underspecified-context",
        "fr": "Représentation où une relation contextuelle est présente, mais où ses conditions, son expiration ou sa portée sont sous-spécifiées.",
        "en": "Representation in which a contextual relation is present but its conditions, expiry, or scope are underspecified."
      },
      {
        "id": "bounded-context",
        "fr": "Représentation où la même relation contextuelle est accompagnée de ses conditions, de ses exclusions et de sa temporalité.",
        "en": "Representation in which the same contextual relation includes its conditions, exclusions, and temporality."
      }
    ],
    "sampling": {
      "entity_selection": {
        "fr": "Jeu d’entités synthétiques et de faits inventés, figé avant la première exécution, sans donnée client ni personne réelle.",
        "en": "A synthetic entity set and invented facts, frozen before the first run, with no client data or real person."
      },
      "entity_count": 6,
      "query_family_count": 5,
      "queries_per_family": 2,
      "model_panel_count": 3,
      "access_mode_count": 2,
      "planned_condition_count": 3,
      "repetitions_per_planned_cell": 3,
      "planned_response_units": 3240,
      "collection_window_days": 7,
      "stopping_rule": {
        "fr": "Aucun arrêt discrétionnaire. Recueillir les 3 240 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 3,240 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-corpus",
        "fr": "Figer chaque document, fait attendu, relation, exclusion et condition avec son condensat SHA-256.",
        "en": "Freeze every document, expected fact, relation, exclusion, and condition with its SHA-256 digest."
      },
      {
        "id": "freeze-panel",
        "fr": "Figer les modèles, versions, paramètres disponibles, modes d’accès et date de collecte avant toute requête.",
        "en": "Freeze models, versions, available settings, access modes, and collection date before any query."
      },
      {
        "id": "randomize-runs",
        "fr": "Randomiser l’ordre des conditions sans changer le texte figé des requêtes ni mélanger les modes d’accès.",
        "en": "Randomize condition order without changing frozen query text or mixing access modes."
      },
      {
        "id": "adjudicate-blind",
        "fr": "Évaluer les assertions contre le manifeste de faits avant de révéler la condition du corpus aux juges humains.",
        "en": "Judge claims against the fact manifest before revealing corpus condition to human adjudicators."
      },
      {
        "id": "publish-complete-denominators",
        "fr": "Publier tous les dénominateurs, sorties valides, exclusions, désaccords et arrêts, y compris en l’absence d’effet identifiable.",
        "en": "Publish all denominators, valid outputs, exclusions, disagreements, and stops, including when no identifiable effect exists."
      }
    ]
  },
  "freeze_requirements": [
    "corpus-manifest-sha256",
    "fact-manifest-sha256",
    "query-set-version",
    "model-panel-snapshot",
    "access-mode-log",
    "judge-rubric-version",
    "planned-unit-manifest",
    "judge-panel-and-agreement-rule",
    "collection-window",
    "run-order-seed",
    "exclusion-policy-version"
  ],
  "metrics": [
    {
      "id": "entity-identification-fidelity",
      "scale": "three-level-ordinal",
      "direction": "higher-is-better",
      "fr": "Degré selon lequel la réponse conserve l’identité attendue sans fusionner l’entité avec un voisin sémantique.",
      "en": "Degree to which the response preserves expected identity without merging the entity with a semantic neighbor."
    },
    {
      "id": "invariant-fidelity-rate",
      "scale": "claim-level-ratio",
      "direction": "higher-is-better",
      "fr": "Part des assertions évaluables qui restituent correctement les invariants présents dans le manifeste de faits.",
      "en": "Share of assessable claims that correctly restate invariants present in the fact manifest."
    },
    {
      "id": "unsupported-intrinsic-claim-rate",
      "scale": "claim-level-ratio",
      "direction": "lower-is-better",
      "fr": "Part des assertions qui transforment sans preuve une relation locale ou temporaire en propriété intrinsèque.",
      "en": "Share of claims that turn a local or temporary relation into an intrinsic property without evidence."
    },
    {
      "id": "legitimate-abstention-rate",
      "scale": "query-level-ratio",
      "direction": "context-only",
      "fr": "Part des cas sous-déterminés où la réponse refuse correctement de conclure plutôt que de compléter les preuves absentes.",
      "en": "Share of underdetermined cases in which the response correctly declines to conclude instead of filling missing evidence."
    },
    {
      "id": "cross-run-stability",
      "scale": "categorical-agreement-rate",
      "direction": "higher-is-better",
      "fr": "Accord entre répétitions d’une même unité d’analyse, présenté séparément pour chaque modèle, condition et mode d’accès.",
      "en": "Agreement across repetitions of the same unit of analysis, reported separately by model, condition, and access mode."
    }
  ],
  "decision_rules": [
    {
      "id": "within-stratum-comparison",
      "fr": "Comparer seulement des observations partageant la même entité, requête, version de modèle et modalité d’accès.",
      "en": "Compare only observations sharing the same entity, query, model version, and access mode."
    },
    {
      "id": "no-causal-language",
      "fr": "Ne jamais transformer une différence descriptive entre conditions en effet causal du conditionnement interprétatif.",
      "en": "Never turn a descriptive difference among conditions into a causal effect of interpretive conditioning."
    },
    {
      "id": "complete-denominator-required",
      "fr": "Ne publier aucun taux sans le nombre total d’unités prévues, valides, exclues, manquantes et interrompues.",
      "en": "Publish no rate without counts of planned, valid, excluded, missing, and halted units."
    },
    {
      "id": "no-population-generalization",
      "fr": "Limiter toute conclusion au corpus synthétique, au panel et à la fenêtre d’observation effectivement publiés.",
      "en": "Limit every conclusion to the synthetic corpus, panel, and observation window actually published."
    },
    {
      "id": "null-and-nonidentifiable-publication",
      "fr": "Publier les résultats nuls, contradictoires ou non identifiables selon les mêmes exigences que le résultat attendu.",
      "en": "Publish null, contradictory, or non-identifiable outcomes under the same requirements as the expected outcome."
    }
  ],
  "validity_threats": [
    {
      "id": "synthetic-corpus-external-validity",
      "fr": "Un corpus synthétique améliore le contrôle, mais ne représente pas automatiquement la complexité d’entités réelles.",
      "en": "A synthetic corpus improves control but does not automatically represent the complexity of real entities.",
      "mitigation": {
        "fr": "Présenter le lot comme pilote descriptif et exiger un protocole distinct avant toute réplication sur des entités réelles.",
        "en": "Present the batch as a descriptive pilot and require a separate protocol before replication with real entities."
      }
    },
    {
      "id": "model-drift",
      "fr": "Une mise à jour silencieuse d’un modèle peut modifier les réponses pendant ou après la collecte.",
      "en": "A silent model update may change responses during or after collection.",
      "mitigation": {
        "fr": "Versionner les identifiants disponibles, borner la fenêtre et ne jamais fusionner des observations provenant de fenêtres incompatibles.",
        "en": "Version available identifiers, bound the window, and never merge observations from incompatible windows."
      }
    },
    {
      "id": "access-mode-asymmetry",
      "fr": "La mémoire, la navigation et la récupération contrôlée n’exposent pas les mêmes sources ni les mêmes mécanismes.",
      "en": "Memory, browsing, and controlled retrieval do not expose the same sources or mechanisms.",
      "mitigation": {
        "fr": "Enregistrer la modalité d’accès pour chaque unité et publier les résultats dans des strates séparées.",
        "en": "Record access mode for every unit and publish results in separate strata."
      }
    },
    {
      "id": "judge-subjectivity",
      "fr": "La distinction entre variation légitime et propriété intrinsèque peut produire des désaccords d’adjudication.",
      "en": "The distinction between legitimate variation and intrinsic property may produce adjudication disagreement.",
      "mitigation": {
        "fr": "Utiliser une grille figée, une double lecture indépendante et publier les désaccords avant arbitrage.",
        "en": "Use a frozen rubric, independent dual review, and publish disagreements before adjudication."
      }
    }
  ],
  "publication_requirements": [
    "protocol-version",
    "corpus-manifest-and-sha256",
    "fact-manifest-and-sha256",
    "query-set-version",
    "model-panel-and-access-modes",
    "judge-rubric-and-disagreements",
    "raw-verdict-distribution",
    "complete-denominators",
    "exclusions-and-halts",
    "limitations",
    "null-and-nonidentifiable-outcomes"
  ],
  "fr": {
    "title": "Conditionnement interprétatif : protocole pilote 0.1",
    "program_title": "Conditionnement interprétatif",
    "meta_description": "Protocole pilote préinscrit pour observer la fidélité des représentations d’entités lorsque leurs limites contextuelles sont explicites.",
    "summary": "Préinscription d’un pilote descriptif destiné à observer si des limites contextuelles explicites réduisent la transformation de relations locales en propriétés intrinsèques.",
    "research_question": "À entité, requête, modèle et modalité d’accès constants, comment la présence de conditions, d’exclusions et d’une temporalité explicites modifie-t-elle la fidélité des réponses aux invariants du corpus ?",
    "design_summary": "Le pilote compare trois représentations contrôlées d’entités synthétiques. Les requêtes, faits, conditions, versions de modèles, modes d’accès et règles de jugement doivent être figés avant la première exécution.",
    "evidence_state": "Protocole préinscrit ; exécution non démarrée, corpus d’exécution non publié et aucun résultat comportemental disponible.",
    "boundaries": [
      "Cette préinscription ne prouve pas que le conditionnement interprétatif produit un effet.",
      "Les observations du pilote ne peuvent pas être généralisées à l’ensemble des modèles ou des entités.",
      "Une stabilité accrue ne prouve ni vérité globale, ni recommandabilité, ni conséquence commerciale.",
      "Aucune information produit ou donnée client ne fait partie du protocole public."
    ]
  },
  "en": {
    "title": "Interpretive conditioning: pilot protocol 0.1",
    "program_title": "Interpretive conditioning",
    "meta_description": "Preregistered pilot protocol observing entity-representation fidelity when contextual boundaries are made explicit.",
    "summary": "Preregistration of a descriptive pilot observing whether explicit contextual boundaries reduce the conversion of local relations into intrinsic properties.",
    "research_question": "Holding entity, query, model, and access mode constant, how does the presence of explicit conditions, exclusions, and temporality change response fidelity to corpus invariants?",
    "design_summary": "The pilot compares three controlled representations of synthetic entities. Queries, facts, conditions, model versions, access modes, and judging rules must be frozen before the first run.",
    "evidence_state": "Protocol preregistered; execution not started, execution corpus not published, and no behavioral result is available.",
    "boundaries": [
      "This preregistration does not prove that interpretive conditioning produces an effect.",
      "Pilot observations cannot be generalized to all models or entities.",
      "Greater stability proves neither global truth, recommendability, nor commercial consequence.",
      "No product information or client data belongs to the public protocol."
    ]
  }
}
