# Verified production pipelines in WFC 2.0

A WFC 2.0 pipeline stores method and validation settings but does not construct an unreviewed target at run time. It accepts an unchanged `wf_design_data` and an unchanged `wf_verified_target`.

    spec <- wf_pipeline(
      target = target,
      stages = list(
        calibrate = list(method = "raking", tol = 1e-8)
      ),
      validate = list(max_deff = 6, max_margin_dev = 0.01)
    )

    weights <- wf_run(spec, design, dims)

The explicit population mode receives a verified population target, not a raw population table:

    population_spec <- wf_pipeline(
      target = list(mode = "population"),
      stages = list(calibrate = list(method = "raking"))
    )

    weights <- wf_run(
      population_spec,
      design,
      dims,
      population = target
    )

Reference mode works the same way with a target produced by `wf_import_reference()` and supplied through `reference`.

Runtime changes to ID or base-weight roles are blocked. A runtime propensity stage cannot be inserted before verified calibration. Declare design roles in `wf_prepare_design()` and review every weighting method before execution.

    wf_audit_export(
      weights,
      "pipeline-audit.json",
      inputs = list(design = design, target = target)
    )

The audit records pipeline, design, and target identities. Package release approval does not authorize the specific analysis represented by that audit.