# Obstruction Engine

## Purpose

Turn the obstruction taxonomy into an output-ready obstruction pipeline.

For each obstruction code, this contract specifies:

- minimal evidence checklist
- typical causes
- recommended next moves

This is the obstruction-side dual of the Witness Stability Certificate discipline.

---

## WOB-0 slope zero

Evidence checklist
- the phase response map is trivial (slope zero)
- equivalently, equivariance implies no phase advance along the cyclic parameter

Typical causes
- observable does not genuinely track the symmetry parameter
- the chosen phase observable is constant along symmetry orbits

Next moves
- change the observable to one with nonzero slope
- change the symmetry parameterization if the physical cycle is misidentified

---

## WOB-1 no subsystem

Evidence checklist
- no cycle-valued phase observable is defined in the measured quantities
- no meaningful periodic subsystem (loop, orbit, periodic coordinate) is present or accessible

Next moves
- change observable: identify an $S^1$-phase (angle, wave phase, order parameter)
- restrict to a subsystem supporting a loop or orbit

---

## WOB-2 trivial winding

Evidence checklist
- for all candidate loops $\gamma$, computed degree is 0, or holonomy multiple is 0

Typical causes
- the loop does not encircle a defect
- the observable is a gradient phase with no winding

Next moves
- locate loops where winding is nontrivial
- change subsystem (encircle defect, choose different orbit)

---

## WOB-2 orbit collapse

Evidence checklist
- in the claimed forcing domain, there is no circle-type orbit on which an equivariant response can act
- equivalently: for every point in the domain, the symmetry action is not realized as a nontrivial circle sweep (the orbit is a point in the admissible model)

Typical causes
- the putative symmetry is only discrete or only visible after quotienting
- the orbit-bearing component is excluded by the measurement domain
- the observable/symmetry pairing is mis-specified so equivariance can only hold on a degenerate set

Next moves
- enlarge or change the forcing domain to include a genuine orbit-bearing component
- re-specify the symmetry action to an actual continuous circle action in the admissible class
- switch from slice-level forcing to embedded-witness mode (degree/holonomy on a loop subsystem)

---

## WOB-3 pinch

Evidence checklist
- explicit arc $I\subset \mathbb{T}_P$ such that the intended image misses $I$

Typical causes
- saturation or clipping in measurement
- incomplete orbit sweep

Next moves
- verify whether the phase response is nonzero slope on the witness subsystem
- check for clipping, aliasing, or restricted range in the observable

---

## WOB-3 equivariance defect

Evidence checklist
- no homomorphism $\chi$ makes the observable equivariant within the adopted model class
- equivalently, the equivariance defect cannot be made small in the chosen perturbation metric

Typical causes
- missing state variables required for equivariance
- incorrect choice of symmetry action or period

Next moves
- expand the state to restore equivariance
- replace the observable with a genuine phase coordinate

---

## WOB-4 tear

Evidence checklist
- discontinuity or ambiguity prevents defining degree or holonomy robustly
- inability to produce WSC margins

Typical causes
- sharp defects with unresolved branch choices
- sampling artifacts or discontinuous reconstruction

Next moves
- regularize the observable
- adopt a lift-atlas or connection framework when a global lift fails

---

## WOB-5 holonomy defect

Evidence checklist
- local lifts exist but the cocycle or connection class is inconsistent with the intended holonomy interpretation

Typical causes
- branch inconsistencies across overlaps
- gauge choices not fixed consistently

Next moves
- reinterpret the witness as holonomy-based (HW) rather than global-lift based
- restrict to a simply connected domain if a global lift is required

---

## WOB-6 coupling mismatch

Evidence checklist
- coupling constraints do not define a consistent CST target across slices
- diagnostics were computed against the wrong baseline (full-torus Haar instead of coupled Haar)

Typical causes
- incorrect coupling class
- CST parameterization not computed

Next moves
- restate coupling explicitly (SOL, affine, integer-matrix)
- compute CST parameterization and coupled Haar baseline

---

## WOB-7 mixing not justified

Evidence checklist
- only deterministic transport is specified
- diffusion or noise model is not stated, and nonresonant equidistribution is not verified

Typical causes
- implicit mixing claims without a mechanism

Next moves
- adopt an explicit diffusion or noise model
- or verify a nonresonance condition on the driving frequencies

---

## WOB-8 resonant locking

Evidence checklist
- rank deficiency collapses the intended torus target
- observed phases lie on a lower-dimensional subtorus due to resonance

Typical causes
- rational relations among drive frequencies
- slope matrix not full rank

Next moves
- restate the correct lower-dimensional target
- move to a coupled-target formulation rather than a full-torus claim

---

## WOB-9 disconnected slice

Evidence checklist
- the slice decomposes into components and the measurement domain does not intersect the component that carries the needed orbit or loop witness

Typical causes
- modeling domain restriction
- subsystem embedding omitted from the slice

Next moves
- enlarge the measurement domain
- switch to the correct component or embedded subsystem

---

## Acceptance gates

- every WOB code enumerated in \texttt{engine/schemas/witness\_obstruction\_schema.json} has evidence and next moves
- obstructions cover both the action-forcing regime and the embedded-witness regime
