\subsection*{Validator predicate specification (audit interface)}

The completeness claim in the declared regime is enforced by a finite suite of \emph{validator predicates}.
Each predicate $\mathrm{V}_{\mathrm{XX}}$ corresponds to one canonical obstruction code \codeid{WOB-XX}.
For an issued WSC, the applicable predicates must hold; otherwise the correct output is a WOB with the associated code.

For audit-level synchronization between the paper and the runnable artifacts, the normative mapping is also recorded in:
\begin{itemize}[leftmargin=*]
\item \codeid{engine/contracts/VALIDATOR_PREDICATE_SPEC.md}
\item \codeid{engine/contracts/validator_predicates.json}
\item \codeid{engine/contracts/wob_codebook.json}
\end{itemize}

\begin{longtable}{@{}p{0.08\linewidth}p{0.27\linewidth}p{0.27\linewidth}p{0.28\linewidth}@{}}
\toprule
\textbf{Pred.} & \textbf{Canonical WOB code} & \textbf{Applicability (minimal)} & \textbf{Audit hook (artifact-level)}\\
\midrule
\endhead
\textbf{V01} & \codeid{WOB-01-no-subsystem} & always & \texttt{audit\_wsc.py}: requires a nonempty target and a predicate ledger entry for V01 \\
\textbf{V02} & \codeid{WOB-02-trivial-winding} & mechanisms LDW/HW & \texttt{audit\_wsc.py}: requires witness integer $k\neq 0$ and a V02 ledger entry \\
\textbf{V03} & \codeid{WOB-03-pinch} & when arc-neighborhood coverage is asserted & recorded as an evidence reference (no recomputation in v0.1) \\
\textbf{V04} & \codeid{WOB-04-tear} & mechanisms LDW/HW & \texttt{audit\_wsc.py}: requires declared perturbation model + margins and a V04 ledger entry \\
\textbf{V05} & \codeid{WOB-05-holonomy-defect} & when holonomy multiple is invoked & \texttt{audit\_wsc.py}: requires \texttt{margins.HMR\_P} and a V05 ledger entry \\
\textbf{V06} & \codeid{WOB-06-coupling-mismatch} & target is CST (or mechanism CMT) & CTP/CHT (coupling target correctness) enforced: requires \texttt{target\_type=cst} and baseline declaring coupled Haar on CST \\
\textbf{V07} & \codeid{WOB-07-mixing-not-justified} & mechanism MXC & \texttt{audit\_wsc.py}: requires a convergence certificate (RNF or NDB+MXC) and a V07 ledger entry \\
\textbf{V08} & \codeid{WOB-08-orbit-collapse} & mechanism AWT & \texttt{audit\_wsc.py}: requires a V08 ledger entry with evidence reference \\
\textbf{V09} & \codeid{WOB-09-equivariance-defect} & mechanism AWT & \texttt{audit\_wsc.py}: requires a V09 ledger entry with evidence reference \\
\textbf{V10} & \codeid{WOB-10-resonant-locking} & when full-torus target is asserted & recorded as an evidence reference (rank/constraint inference expands in SFT III) \\
\textbf{V11} & \codeid{WOB-11-disconnected-slice} & when component restriction is used & recorded as an evidence reference (connectedness tests expand with payloads) \\
\textbf{V12} & \codeid{WOB-12-slope-zero-quotient-nonsurjective} & when $\chi$ is trivial and quotient is invoked & recorded as an evidence reference (quotient surjectivity expands with payloads) \\
\textbf{V13} & \codeid{WOB-13-ambiguity} & when CST/constraint inference is invoked & recorded as a benchmark/tool evidence reference (no recomputation in v0.1) \\
\textbf{V14} & \codeid{WOB-14-insufficient-excitation} & when CST/constraint inference is invoked & recorded as a benchmark/tool evidence reference (no recomputation in v0.1) \\
\textbf{V15} & \codeid{WOB-15-resonance-masking} & when CST/constraint inference is invoked & recorded as a benchmark/tool evidence reference (no recomputation in v0.1) \\
\bottomrule
\end{longtable}

The WSC artifact format includes a lightweight predicate ledger field \texttt{validator\_predicates} that records the applicable predicates as ``holds'' with short evidence references.
The audit layer checks the parts that are readable from the artifact interface and rejects target-incorrect coupled claims.
