Skip to content

LI pre-pulse auto calibration (prepulse calibration_source) #258

Description

@SoichiroYamane

Purpose

Enable JointHarmonicGls without prebuilt calibration artifacts: derive the per-channel noise model once per LI run from pulse.background_before, with digest provenance. No manual model files or hashes.

Scope

  • New calibration_source field on the joint GLS config: artifact (default, current behavior) or prepulse
  • prepulse: derive once per LI run (pmoke li standalone or inside analyze), per channel, from background_before; record prepulse_calibration_digest
  • Validation: prepulse requires empty calibrations (ambiguous mix is an error); artifact per-channel rule unchanged; boxcar_legacy unchanged
  • Mirror the validation change in pmoke-config-core; bilingual reference updates via docs-export only

Non-goals

Per-window or per-shot adaptive refit; background_before redefinition; artifact deprecation or forced migration; boxcar changes; schema version bump; failure_policy extension; live hardware operation.

Acceptance criteria

  • prepulse with empty calibrations starts on both analyze and standalone li and yields LI output
  • Deterministic reruns: same digest and equivalent LI output
  • Named-error abort (no fallback) on empty, adequacy-failing, or non-finite pre-pulse intervals
  • artifact mode unchanged (missing entry still blocks); prepulse with non-empty calibrations is an error
  • noise_mode=identity with prepulse still derives and records; boxcar output unchanged
  • config-core parity with native validation; bilingual refs with zero generated drift

Compatibility impact

Existing configs behave identically (default artifact). One additive provenance digest field. New configs are unreadable by old binaries (deny_unknown_fields, one direction only).

Security impact

Recorded-data only, synthetic fixtures for tests, no external I/O. No private data in the repo or PRs.

Validation plan

Nix shell: fmt, clippy -D warnings, affected unit and integration tests, docs-export zero drift, EN/JA parity. Review 1 (design/behavior) and Review 2 (staged diff) per repo gates. Merge only on green exact head with explicit authorization; close this issue explicitly afterwards.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions