# ADR-0136.S.3-post-rescan — Refusal Rescan v3: Barrier-Shift Ledger

**Status:** Accepted
**Parent:** [ADR-0136](./ADR-0136-statement-layer-corridor.md)
**Previous rescan:** [ADR-0136.S2-post-rescan](./ADR-0136.S2-post-rescan.md)
**Date:** 2026-05-23

## Context

The v2 refusal taxonomy was written before S.3 (compound initial-mutation)
landed. S.3 added one closed-shape extractor for `<Entity> had N <unit>,
but then <verb> M` and produced 0 direct admissions + 1 barrier shift
(gsm8k-0010). This rescan re-runs `parse_and_solve` on all 50 GSM8K
train-sample cases against current main (post-S.3) and refreshes the
ledger so any next phase inherits measured truth.

## Summary

| Metric | v2 | v3 | Δ |
|---|---|---|---|
| Admitted (correct) | 3 | 3 | 0 |
| Wrong | 0 | 0 | 0 |
| Refused | 47 | 47 | 0 |
| Cases shifted v2 → v3 | — | 1 | — |

## Current Admissions (unchanged from v2)

| Case | Answer | Path |
|---|---|---|
| gsm8k-0014 | 240.0 | S.1 capacity rate (short-circuit) |
| gsm8k-0018 | 16.0 | S.0 classifier + S.1 capacity (short-circuit) |
| gsm8k-0042 | 30.0 | S.2 conditional-op question (short-circuit) |

## Barrier-Shifted Cases (v2 → v3)

| Case | v2 barrier | v3 barrier | Reason |
|---|---|---|---|
| gsm8k-0010 | compound_statement | fraction_operand | S.3's `_INIT_MUTATION_RE` resolves sentence 1 ("Yun had 20 paperclips initially, but then lost 12") to `InitialPossession(Yun, 8, paperclips)`. Refuses on sentence 2: "Marion has 1/4 more than what Yun currently has, plus 7" — needs fraction-operand parsing + coreference to Yun's current quantity + comparative-additive arithmetic. |

S.3 produced exactly one barrier shift, as predicted by its brief
("0–1 new admissions; the real return is rescan v3 barrier-shifts").
The shape coverage worked as designed; the downstream barriers on the
other 5 `compound_statement` cases are structurally different and remain
deferred (see ADR-0136.S.3).

## Current Primary Barrier Distribution (v3)

| Barrier | v2 | v3 | Δ |
|---|---|---|---|
| compound_statement | 6 | 5 | −1 |
| novel_initial_form | 5 | 5 | 0 |
| fraction_operand | 3 | 4 | +1 |
| novel_initial_verb | 4 | 4 | 0 |
| admitted | 3 | 3 | 0 |
| compound_comparative | 3 | 3 | 0 |
| conditional_question | 3 | 3 | 0 |
| context_filler | 3 | 3 | 0 |
| distributive_multiply | 2 | 2 | 0 |
| multi_entity_initial | 2 | 2 | 0 |
| rate_price | 2 | 2 | 0 |
| temporal_frequency | 2 | 2 | 0 |
| capacity_rate | 1 | 1 | 0 |
| complex_question | 1 | 1 | 0 |
| compound_multi_event | 1 | 1 | 0 |
| conditional_branch | 1 | 1 | 0 |
| distributive_each_actor | 1 | 1 | 0 |
| goal_statement | 1 | 1 | 0 |
| multi_attribute_accumulation | 1 | 1 | 0 |
| multi_day_accumulation | 1 | 1 | 0 |
| partition_divide | 1 | 1 | 0 |
| percentage_rate | 1 | 1 | 0 |
| rate_earnings | 1 | 1 | 0 |
| temporal_age_anchor | 1 | 1 | 0 |

`compound_statement` (5) and `novel_initial_form` (5) are now tied for
the largest blocker bucket. `fraction_operand` (4) is now in the top 4
— a side-effect of S.3 exposing the sentence-2 barrier on gsm8k-0010.

## Next-Phase Candidates

The ledger does not dictate the next phase, but the largest tractable
clusters are:

- **novel_initial_form (5)** — sentence shapes the parser doesn't ground
  (`A school has 100 students`, `In a building, there are a hundred
  ladies`, etc.). Likely a widening of `_INITIAL_HAS_RE` /
  `_INITIAL_THERE_ARE_RE` with the indefinite-article and impersonal-
  existential cases. Possibly the lowest-cost statement-layer extension.
- **novel_initial_verb (4)** — `donated`, `collected`, `gained`, `bakes`
  outside current closed sets. Pure vocabulary extension; probably
  composes with the existing acquire-verb table.
- **compound_statement (5)** — five heterogeneous shapes (fraction +
  coreference, nested temporal, comparative arithmetic, verb conjunction,
  age-multiplier). Per ADR-0136.S.3 each is its own capability and
  should not be bundled.

S.4 should target one of these clusters as a single closed shape, in
the same one-PR / one-shape / honest-delta discipline as S.1, S.2, S.3.

## Evidence

- Rescan ledger: `evals/gsm8k_math/train_sample/v1/refusal_rescan_v3.json`
- Taxonomy v3: `evals/gsm8k_math/train_sample/v1/refusal_taxonomy_v3.json`
- Script: `evals/gsm8k_math/train_sample/v1/rescan_v3.py`
- Tests: `tests/test_rescan_v3_invariants.py`
