5 min read
Feature Flags
StateAnchor uses feature flags for production rollouts of gate-engine machinery, shadow-mode calibration, and advisory signals. This page documents every flag currently shipping in production, its value, what it does in plain English, and whether it affects user-visible behavior.
Flag values shown are the production defaults as of April 2026. They are set globally (not per project); a future roadmap item lets teams override them via project policy.
Currently on
STAGE_B_ICE_VALIDATOR
Value: true
Enables the three-round ICE ensemble for IR generation. Round 1 is Haiku (temp 0, standard prompt); round 2 is Sonnet with the ambiguity- first prompt variant; round 3 is Sonnet with the critique-and-produce prompt variant, invoked only on the slow path when R1 and R2 disagree.
User-visible effect: improved gate reliability on ambiguous specs. If all three rounds disagree the sync is blocked as a genuine ambiguity finding rather than silently proceeding.
CLOSURE_PHASE_SCORER
Value: true
Enables scorer-driven evaluator selection in Stage C. The closure-phase scorer inspects evaluator output and decides which evaluator runs on each sync based on current confidence signals.
User-visible effect: when the scorer detects high evaluator spread, the evaluator_disagreement_high finding (WARN lane, advisory) is appended and the ADVISORY signal appears in the PredictiveWarnBanner on the dashboard. See Gate engine — Evaluator confidence scoring.
BAYESIAN_SE_CALIBRATOR
Value: true (shadow mode)
Collects Bayesian standard-error calibration data alongside live gate decisions. Does not alter gate output yet — purely observational. Will graduate to active skipping logic once ~200 runs of calibration data are collected.
User-visible effect: none today. You may see a calibration block in the sync-run JSON.
LLM_VERSION_CANARY
Value: true
Monitors for silent model-version changes by running a response-length probe against a fixed baseline (mean 652.17, stddev 66.54, n=30 runs). If the probe rejects the null hypothesis at p < 0.05, the current run is tagged llm_version_uncertain.
User-visible effect: triggers the CANARY signal in the PredictiveWarnBanneron the dashboard with the message “LLM version uncertain”. The gate still runs and produces its normal lane; the canary is an uncertainty overlay, not a block.
OOD_SPEC_DETECTOR
Value: true
Out-of-distribution detector for spec structure. Flags specs whose topology signature is unusually far from the training distribution.
User-visible effect: when ood_novelty_score ≥ 0.65 on a sync, the OOD signal appears in the PredictiveWarnBannerwith the message “Spec structure novel — ICE reliability reduced on unfamiliar topology”. The gate still runs; the OOD tag is an uncertainty overlay.
Currently off
ANERGIC_EXCEPTIONS_ENABLED
Value: false
The two-signal exception model modeled on B-cell anergy (ADR-006). Exception grants would require two independent attestations before bypassing the gate. Off until first-user data validates the calibration.
User-visible effect: none today. When flipped on, you may see two attestations required on the exception ledger.
STAGE_B0_DETERMINISTIC_PREVERIFICATION
Value: false
Z3 / Datalog deterministic pre-verification pass that runs before the ICE ensemble (ADR-024). Intended to cheaply reject obviously-broken specs without consuming LLM calls. Off until P4 production data validates the rule set.
User-visible effect: none today. When enabled, gate decisions on obviously-broken specs will arrive faster and with lower token cost.
Sources of truth
Flag values are maintained in docs/master-plan-v26.md (Feature Flags section) and set in the production environment. Flag effects are implemented across lib/sync-gate.js, lib/sync.js, and the Stage-B validator pipeline. Flags are not currently project-scoped.