Warden plan
tier: hermetic requires: []
Pending stub — GATED criterion. The precondition below is not built; this plan reports the criterion as pending (skip, never fail) until it lands. When it does, replace this stub with a real plan in the shape of
25-cr-18/26-cr-25/27-cr-20.
Register: ~/.studio/master.withrobin.ai/project/rfc.one/criteria-register.md (status there: PENDING OWNER ACCEPTANCE; accepted by the 2026-08-31 proxy screen).
### CR-06 — Claim-branch position filter - Statement: The Claim branch of the contradiction check finds positioned opposing Claims, and the position filter raises candidate precision over similarity alone without hurting recall. - Metric: Claim-branch precision and recall on branch-tagged edges; candidate recall; fraction of checks where the position filter applied; candidate precision with filter vs similarity-alone at the same k (over checks where the filter applied); model calls per injected Claim including projection. - Dataset/inputs: Per workspace, 100 accepted target Claims each with ≥1 active Dimension at relevance ≥ τ_r; per target one contradicting Signal + opposing Claim justified by it, plus distractor pair, written as units through the ordinary path. - Threshold: Precision ≥0.7 and recall ≥0.8 on Claim-branch edges; candidate recall ≥0.9; position filter raises candidate precision without lowering candidate recall below 0.9; ≤ k+1 check calls plus ≤ K projection calls. - Drop condition: If the position filter lowers candidate recall below 0.9, the filter is removed and the Claim branch falls back to similarity alone (also removing the §5.3 signature from the check). - Source: Anchor §10.3. - Tier: gated — requires Claims layer, active Dimensions, projection.
Precondition: requires the Claims layer, active Dimensions, and projection machinery. Not built at HEAD 7f379974 (verified 2026-08-31: no 'claims', 'dimensions', or 'initiatives' tables in server/src/db/schema.ts, and no conflicts_with edges anywhere in server/src or packages/). Projection machinery has no code marker to probe.
set -uo pipefail
source "$WARDEN_LIB/assert.sh"
cd "${PROJECT_ROOT:-$(git rev-parse --show-toplevel)}"
SCHEMA=server/src/db/schema.ts
MISSING=""
grep -q "'claims'" "$SCHEMA" || MISSING="$MISSING claims-tables"
grep -q "'dimensions'" "$SCHEMA" || MISSING="$MISSING dimensions-tables"
if [ -n "$MISSING" ]; then
warden_skip "CR-06 — Claim-branch position filter" "pending: requires the Claims layer, active Dimensions, and projection machinery — gated criterion, precondition not built (probes missing:$MISSING)"
else
warden_skip "CR-06 — Claim-branch position filter" "schema probes now pass — upgrade this pending stub to a real plan before CR-06 can bind (probes are heuristic, not proof)"
fi
Pending stub, hermetic on purpose: the guard reads the checkout only and emits skip in every branch, so this plan can never red a run — the criterion surfaces in every summary as pending with its precondition named. The probes are heuristic activation bells, not proof: quoted table names (and conflicts_with where the contradiction check is a precondition) flip the detail text when the machinery lands. The real plan must quote the criterion verbatim, turn its thresholds into warden_pass/warden_fail gates, and follow the conventions the three runnable plans set: machine-local fixtures (25-cr-18), NLI probe and versioned judge prompts (26-cr-25), data-keyed guard activation (27-cr-20).