{
  "$schema": "https://inferenslab.org/research-protocol-schema.json",
  "schema_version": "1.1.0",
  "domain": "inferenslab.org",
  "id": "doctrine-execution-traceability",
  "order": 70,
  "version": "0.1.0",
  "program_id": "doctrine-execution-chain",
  "protocol_status": "preregistered",
  "execution_status": "not-started",
  "results_status": "none-published",
  "registered_on": "2026-08-23",
  "updated": "2026-08-23",
  "behavioral_results_published": false,
  "routes": {
    "fr": "/fr/protocoles/doctrine-execution-v0-1/",
    "en": "/en/protocols/doctrine-execution-v0-1/"
  },
  "artifact": "/protocols/doctrine-execution-traceability/0.1.0.json",
  "canonical_sources": {
    "fr": "https://gautierdorval.com/de-la-doctrine-a-lexecution/",
    "en": "https://gautierdorval.com/en/from-doctrine-to-execution/"
  },
  "dependencies": [
    "/research-programs.json",
    "/governance-registry.json",
    "/change-control.json",
    "/claims.json",
    "/publication-policy.json",
    "/source-precedence.json"
  ],
  "study_design": {
    "study_type": "claim-to-evidence-chain-traceability-assessment",
    "pilot_scope": "descriptive-pilot-no-population-inference",
    "design_family": "traceability",
    "unit_of_analysis": {
      "fr": "Un point de contrôle versionné reliant une revendication, sa source d’autorité, un artefact, un état de cycle et une classe de preuve.",
      "en": "One versioned checkpoint connecting a claim, its authority source, an artifact, a lifecycle state, and an evidence class."
    },
    "comparison_dimensions": [
      {
        "id": "authority-source-traceability",
        "fr": "Capacité de chaque revendication à pointer vers la source qui en définit le sens, la portée et le statut.",
        "en": "Ability of every claim to point to the source defining its meaning, scope, and status."
      },
      {
        "id": "lifecycle-state-separation",
        "fr": "Séparation explicite entre proposition, implémentation locale, publication, déploiement et observation.",
        "en": "Explicit separation among proposal, local implementation, publication, deployment, and observation."
      },
      {
        "id": "evidence-class-fit",
        "fr": "Correspondance entre la classe de preuve disponible et la force de la conclusion attachée au point de contrôle.",
        "en": "Fit between the available evidence class and the strength of the conclusion attached to the checkpoint."
      }
    ],
    "unit_plan": {
      "selection": {
        "fr": "Chaînes synthétiques complètes, partielles, désynchronisées et contradictoires, figées avec leurs états attendus avant toute revue.",
        "en": "Synthetic complete, partial, desynchronized, and conflicting chains, frozen with expected states before review."
      },
      "factors": [
        {
          "id": "chain-archetype",
          "count": 10,
          "fr": "Dix archétypes couvrant chaîne complète, maillon manquant, source divergente, état périmé et revendication excessive.",
          "en": "Ten archetypes covering complete chain, missing link, divergent source, stale state, and excessive claim."
        },
        {
          "id": "lifecycle-state",
          "count": 5,
          "fr": "Cinq états distincts : proposé, implémenté localement, publié, déployé ou observé.",
          "en": "Five distinct states: proposed, locally implemented, published, deployed, or observed."
        },
        {
          "id": "evidence-class",
          "count": 4,
          "fr": "Quatre classes de preuve : documentaire, artefact, exécution contrôlée ou observation bornée.",
          "en": "Four evidence classes: documentary, artifact, controlled execution, or bounded observation."
        }
      ],
      "repetitions_per_cell": 2,
      "planned_units": 400,
      "window_days": 7,
      "stopping_rule": {
        "fr": "Aucun arrêt discrétionnaire. Évaluer les 400 unités, sauf corruption du manifeste ou indisponibilité supérieure à 5 % ; publier chaque arrêt et dénominateur.",
        "en": "No discretionary stopping. Assess all 400 units unless manifest integrity fails or more than 5% are unavailable; publish every halt and denominator."
      },
      "reviewer_count": 2,
      "agreement_metric": "cohens-kappa",
      "agreement_threshold": 0.8,
      "disagreement_resolution": {
        "fr": "Deux juges classent indépendamment source, état, classe de preuve et conclusion admissible. Un troisième tranche les désaccords.",
        "en": "Two judges independently classify source, state, evidence class, and admissible conclusion. A third judge adjudicates disagreements."
      },
      "agreement_failure_rule": {
        "fr": "Si le kappa de Cohen est inférieur à 0.80, ne pas agréger les métriques de chaîne ; publier l’échec et versionner la grille avant reprise.",
        "en": "If Cohen's kappa is below 0.80, do not aggregate chain metrics; publish the failure and version the rubric before rerunning."
      },
      "reference_snapshots_required": true,
      "source_access_recorded": true
    },
    "execution_sequence": [
      {
        "id": "freeze-chain-manifest",
        "fr": "Figer revendications, sources, artefacts, états, classes de preuve, liens attendus et condensats.",
        "en": "Freeze claims, sources, artifacts, states, evidence classes, expected links, and digests."
      },
      {
        "id": "review-links-independently",
        "fr": "Faire vérifier indépendamment chaque lien et interdire qu’un état aval soit déduit d’un état amont.",
        "en": "Independently verify every link and prohibit inferring a downstream state from an upstream state."
      },
      {
        "id": "adjudicate-claim-strength",
        "fr": "Trancher les désaccords et limiter la conclusion à la classe de preuve et à l’état effectivement démontrés.",
        "en": "Adjudicate disagreements and limit the conclusion to the evidence class and state actually demonstrated."
      },
      {
        "id": "publish-traceability-matrix",
        "fr": "Publier les chaînes complètes et incomplètes, les écarts temporels, les maillons absents et les conclusions refusées.",
        "en": "Publish complete and incomplete chains, temporal gaps, missing links, and refused conclusions."
      }
    ]
  },
  "freeze_requirements": [
    "unit-manifest",
    "factor-manifest",
    "reference-snapshot-manifest",
    "review-rubric-version",
    "review-panel-and-agreement-rule",
    "review-window",
    "source-access-policy",
    "expected-state-manifest",
    "claim-source-manifest",
    "artifact-and-state-registry",
    "evidence-class-registry",
    "exclusion-policy-version"
  ],
  "metrics": [
    {
      "id": "authority-source-completeness-rate",
      "scale": "claim-level-ratio",
      "direction": "higher-is-better",
      "fr": "Part des revendications reliées à une source d’autorité versionnée qui définit explicitement leur portée.",
      "en": "Share of claims linked to a versioned authority source explicitly defining their scope."
    },
    {
      "id": "state-separation-fidelity-rate",
      "scale": "checkpoint-level-ratio",
      "direction": "higher-is-better",
      "fr": "Part des points de contrôle qui conservent distincts proposition, implémentation, publication, déploiement et observation.",
      "en": "Share of checkpoints keeping proposal, implementation, publication, deployment, and observation distinct."
    },
    {
      "id": "evidence-chain-completeness-rate",
      "scale": "required-link-ratio",
      "direction": "higher-is-better",
      "fr": "Part des liens requis présents entre revendication, source, artefact, état, preuve et conclusion.",
      "en": "Share of required links present among claim, source, artifact, state, evidence, and conclusion."
    },
    {
      "id": "premature-readiness-claim-rate",
      "scale": "claim-level-ratio",
      "direction": "lower-is-better",
      "fr": "Part des conclusions qui présentent un état partiel comme chaîne complète, disponibilité ou préparation produit.",
      "en": "Share of conclusions presenting a partial state as a complete chain, availability, or product readiness."
    }
  ],
  "decision_rules": [
    {
      "id": "each-layer-requires-own-proof",
      "fr": "Chaque état de la chaîne exige sa propre preuve ; aucun état aval ne peut être hérité d’un état amont.",
      "en": "Every chain state requires its own evidence; no downstream state can be inherited from an upstream state."
    },
    {
      "id": "missing-link-remains-missing",
      "fr": "Un maillon absent, inaccessible ou périmé demeure explicitement absent et ne peut être comblé par plausibilité.",
      "en": "A missing, inaccessible, or stale link remains explicitly missing and cannot be filled through plausibility."
    },
    {
      "id": "publication-is-not-observation",
      "fr": "La publication d’un artefact ne prouve ni son déploiement, ni son utilisation, ni un résultat comportemental.",
      "en": "Publishing an artifact proves neither deployment, use, nor a behavioral result."
    },
    {
      "id": "no-product-readiness-inference",
      "fr": "Une chaîne documentaire ou un protocole ne démontre aucune disponibilité, préparation ou capacité produit non publiée.",
      "en": "A documentary chain or protocol demonstrates no unpublished product availability, readiness, or capability."
    }
  ],
  "validity_threats": [
    {
      "id": "registry-self-reference",
      "fr": "Un registre peut citer ses propres états et donner l’apparence d’une preuve indépendante inexistante.",
      "en": "A registry may cite its own states and create the appearance of nonexistent independent evidence.",
      "mitigation": {
        "fr": "Exiger un artefact ou une source externe au registre pour chaque état autre que la simple déclaration.",
        "en": "Require an artifact or source external to the registry for every state beyond mere declaration."
      }
    },
    {
      "id": "inaccessible-evidence",
      "fr": "Une preuve privée ou indisponible peut être mentionnée sans pouvoir être vérifiée par le public.",
      "en": "Private or unavailable evidence may be referenced without being publicly verifiable.",
      "mitigation": {
        "fr": "Classer la preuve comme non vérifiable publiquement et interdire toute conclusion qui exige sa vérification.",
        "en": "Classify the evidence as not publicly verifiable and prohibit conclusions requiring its verification."
      }
    },
    {
      "id": "temporal-desynchronization",
      "fr": "Une source, un artefact, un déploiement ou une observation peut changer sans mise à jour simultanée du registre.",
      "en": "A source, artifact, deployment, or observation may change without a simultaneous registry update.",
      "mitigation": {
        "fr": "Figer les timestamps et condensats, déclarer l’âge des preuves et invalider les chaînes désynchronisées.",
        "en": "Freeze timestamps and digests, declare evidence age, and invalidate desynchronized chains."
      }
    }
  ],
  "publication_requirements": [
    "protocol-version",
    "unit-manifest",
    "factor-manifest",
    "reference-snapshots",
    "source-access-log",
    "expected-state-manifest",
    "review-rubric-and-disagreements",
    "claim-source-manifest",
    "artifact-and-state-registry",
    "evidence-class-registry",
    "complete-denominators",
    "exclusions-and-halts",
    "limitations",
    "null-and-nonidentifiable-outcomes"
  ],
  "fr": {
    "title": "Doctrine à exécution : traçabilité pilote 0.1",
    "program_title": "Chaîne doctrine, implémentation et preuve",
    "meta_description": "Protocole préinscrit vérifiant la chaîne entre revendication, autorité, artefact, état de cycle, preuve et conclusion admissible.",
    "summary": "Préinscription d’une matrice de traçabilité qui sépare source doctrinale, artefact, implémentation, publication, déploiement et observation.",
    "research_question": "Une chaîne versionnée peut-elle empêcher qu’une proposition, une implémentation locale ou une publication soit présentée comme preuve de préparation complète ?",
    "design_summary": "Le pilote croise dix archétypes de chaîne, cinq états de cycle et quatre classes de preuve. Chaque point de contrôle est doublement codé.",
    "evidence_state": "Protocole 0.1 préinscrit ; manifeste d’exécution non publié, revue non démarrée et aucune chaîne complète ou préparation produit démontrée.",
    "boundaries": [
      "Une source doctrinale ne prouve pas qu’une implémentation existe.",
      "Une implémentation locale ne prouve ni publication, ni déploiement, ni observation.",
      "Un registre public ne constitue pas une preuve indépendante des états qu’il déclare.",
      "Aucune disponibilité, préparation produit ou capacité opérationnelle non publiée n’est revendiquée."
    ]
  },
  "en": {
    "title": "Doctrine to execution: pilot traceability 0.1",
    "program_title": "Doctrine, implementation, and evidence chain",
    "meta_description": "Preregistered protocol verifying the chain among claim, authority, artifact, lifecycle state, evidence, and admissible conclusion.",
    "summary": "Preregistration of a traceability matrix separating doctrinal source, artifact, implementation, publication, deployment, and observation.",
    "research_question": "Can a versioned chain prevent a proposal, local implementation, or publication from being presented as proof of complete readiness?",
    "design_summary": "The pilot crosses ten chain archetypes, five lifecycle states, and four evidence classes. Every checkpoint is double-coded.",
    "evidence_state": "Protocol 0.1 preregistered; execution manifest not published, review not started, and no complete chain or product readiness demonstrated.",
    "boundaries": [
      "A doctrinal source does not prove that an implementation exists.",
      "A local implementation proves neither publication, deployment, nor observation.",
      "A public registry is not independent evidence for the states it declares.",
      "No unpublished availability, product readiness, or operational capability is claimed."
    ]
  }
}
