Skip to content

Operating the Receiver

Receiver changes are safest when they begin at the earliest stage whose meaning changes. Start there, preserve the evidence passed to the next stage, and only then inspect the final run result. A position solution can look plausible while acquisition ambiguity, tracking continuity, or observation quality has already regressed.

Find the Owning Surface

Change Start with Evidence that must survive
Configuration, defaults, clocks, sinks, or injected effects Runtime contracts and port contracts validated configuration, explicit defaults, and controlled side effects
Candidate search, ranking, ambiguity, or assistance Acquisition stage contract accepted hypothesis, uncertainty, diagnostics, and refusal
Code or carrier loops, lock state, fades, or reacquisition Tracking stage contract ordered epochs, channel transitions, continuity, and uncertainty
Measurement construction or quality decisions Observation stage contract typed epochs, exclusions, residuals, and measurement quality
Navigation invocation from receiver output Navigation handoff contract explicit handoff, feature behavior, validation, and refusal
Reports, diagnostics, or receiver-owned run products Artifact contracts typed evidence and stable interpretation before persistence
Synthetic scenarios or truth comparisons Fixture and simulation care independent expectation, scenario identity, units, and coverage
Throughput, latency, or allocation cost Receiver performance evidence comparable measurements plus unchanged scientific proof

If the change does not alter receiver execution, stage handoff, or receiver-owned evidence, confirm the owner before editing. Signal definitions, navigation science, persisted repository layout, and command presentation have different owners.

Change from the Inside Out

flowchart LR
    claim["state the changed<br/>receiver claim"]
    stage["locate the earliest<br/>owning stage"]
    boundary["preserve input, output,<br/>and refusal contracts"]
    proof["run stage-local<br/>proof"]
    handoff["exercise the next<br/>affected boundary"]
    outcome["inspect artifacts and<br/>operator-visible outcome"]

    claim --> stage --> boundary --> proof --> handoff --> outcome

Use the change sequence for runtime configuration, stage, port, and validation work. The receiver extension guide helps decide whether a new capability belongs in this crate at all. Before committing, use the verification guide to choose the narrowest command that proves the changed contract rather than the largest command available.

Keep Truth Independent

Synthetic generation and expected results must not become two expressions of the same implementation. When a scenario or fixture changes, state whether the model, receiver, threshold, or expected output was wrong. Regenerating an expectation from changed receiver output cannot establish correctness.

flowchart TD
    scenario["declared scenario<br/>and injected conditions"]
    receiver["receiver under test"]
    evidence["stage evidence and<br/>run artifacts"]
    truth["independent truth,<br/>reference, or invariant"]
    decision{"claim supported?"}

    scenario --> receiver --> evidence --> decision
    scenario --> truth --> decision
    decision -- no --> diagnose["identify model, runtime,<br/>or budget failure"]
    decision -- yes --> review["record scope and<br/>remaining limits"]

The simulation guide defines what the receiver simulation surface owns. Use the quality guide to decide whether the available evidence is sufficient for the claim.

Review the Real Blast Radius

A receiver change crosses a boundary when it changes any of these:

  • the meaning or ordering of stage output
  • a lock, degraded, refused, or recovered state
  • uncertainty, units, tolerances, or validation budgets
  • optional navigation behavior or feature-gated output
  • receiver artifact fields or diagnostic interpretation
  • deterministic replay or externally controlled effects

Use review scope when more than one family is affected. Release-facing compatibility and version decisions belong in release and versioning.

Commit when one receiver claim is implemented, its owning-stage proof passes, the first affected handoff is exercised, and any remaining evidence limit is written plainly. Do not combine unrelated acquisition, tracking, observation, and artifact changes merely because they share a full receiver run.