SUPERSEDED FOR THE CANONICAL ARMS — read
docs/receipts/canonical-tp1-refusal-measurements-2026-09-11.txt first.
-----------------------------------------------------------------------
The three `canonical-*` arms below are the OLD canonical lane: Qwen3.6-27B-AWQ
-INT4 at TP2 with MTP5, which is not the config we serve. The lane was
corrected on the same branch to Qwen3.8-27B-exl3-4.0bpw at TP1 with its DFlash2
drafter at K=7 — and that lane BOOTS ON ONE CARD with a clean smoke, so every
serve-window row this receipt marks unmeasured was measured there.

Three of its conclusions invert on the corrected lane:
`exl3_int8_verify_min_rows` reads 0/0 here ("no EXL3 linear to bind") and is a
stable refusal there; `drafter_penalty_align` and `dflash2_penalty_align` are
NOT-REGISTERED here and record flag_off on all six boots there. Its reading of
`prefill_replay` — that "chunked-prefill continuation chunk" is never observed
— holds only because no arm here drove a prompt past --chunk-prefill.

What survives unchanged, and is why this receipt stays: the TP2+MTP serving
bug, the caching_precompile TP2 boot blocker, and the diag-on / piecewise-08b
arms, which are the same lanes either way.

refusal census for the 14 MustRefuse candidates — measured 2026-09-11
box arbi-whitebox-201 (2x RTX 4090, sm_89); code e2a3ebe1eba2358866dc098f7f291b8eb689d32a

Arms (all booted; `f=` fired, `r=` refused, then the refusals dict):
  canonical-tp2-no-mtp     TP2 27B-AWQ-INT4 tkv k4v4, MTP OFF   -- smoke CLEAN (19/19 served)
  canonical-no-precompile  TP2 27B-AWQ-INT4 tkv k4v4, MTP5      -- smoke 19/19 HTTP 500
  canonical-no-devdrafts   TP2 27B, MTP5, ARBI_MTP_DEVICE_DRAFTS=0 -- smoke 19/19 HTTP 500
  diag-on                  Qwen3.5-0.8B tp1                     -- smoke CLEAN
  piecewise-08b            Qwen3.5-0.8B tp1 --prefill-capture piecewise -- smoke CLEAN

READ THIS BEFORE PROMOTING ANYTHING
-----------------------------------
The only canonical arm with a CLEAN smoke has MTP OFF. TP2+MTP cannot serve a
token on this tree, so for every drafter/MTP-dependent flag below the serve
window is UNMEASURED on the canonical config -- not zero, unmeasured. The two
MTP arms' BOOT windows are valid (the drafter attaches at boot); their SERVE
windows are not, because every request 500'd.

Counter names come from the refuse/fire sites, not the contract: five of the
14 are MustFire on origin/main (prefill_replay, recurrent_prefill_chunk,
decode_pad_cudagraph, persistent_recurrent_index, savepoint_decode_write), so
if they read Inapplicable on the integ branch the two tables have diverged.

### gdn_prefill_capture
  counter 'piecewise_sweep'
    canonical-tp2-no-mtp     boot f=0 r=1 {"disabled by config (prefill_capture='eager')": 1} | serv f=0 r=0 
    canonical-no-precompile  boot f=0 r=1 {"disabled by config (prefill_capture='eager')": 1} | serv f=0 r=0 
    canonical-no-devdrafts   boot f=0 r=1 {"disabled by config (prefill_capture='eager')": 1} | serv f=0 r=0 
    diag-on                  boot f=0 r=1 {"disabled by config (prefill_capture='eager')": 1} | serv f=0 r=0 
    piecewise-08b            boot f=1 r=0  | serv f=0 r=0 
  counter 'prefill_capture_sweep'
    canonical-tp2-no-mtp     boot f=0 r=1 {"disabled by config (prefill_capture='eager')": 1} | serv f=0 r=0 
    canonical-no-precompile  boot f=0 r=1 {"disabled by config (prefill_capture='eager')": 1} | serv f=0 r=0 
    canonical-no-devdrafts   boot f=0 r=1 {"disabled by config (prefill_capture='eager')": 1} | serv f=0 r=0 
    diag-on                  boot f=0 r=1 {"disabled by config (prefill_capture='eager')": 1} | serv f=0 r=0 
    piecewise-08b            boot f=0 r=1 {"disabled by config (prefill_capture='piecewise')": 1} | serv f=0 r=0 

### prefill_replay
  counter 'prefill_graph_lookup'
    canonical-tp2-no-mtp     boot f=0 r=1 {"multi-row prefill batch": 1} | serv f=0 r=13 {"real_N above every captured prefill rung": 3, "multi-row prefill batch": 10}
    canonical-no-precompile  boot f=0 r=1 {"multi-row prefill batch": 1} | serv f=0 r=12 {"real_N above every captured prefill rung": 11, "multi-row prefill batch": 1}
    canonical-no-devdrafts   boot f=0 r=1 {"multi-row prefill batch": 1} | serv f=0 r=12 {"real_N above every captured prefill rung": 11, "multi-row prefill batch": 1}
    diag-on                  boot f=0 r=3 {"real_N above every captured prefill rung": 3} | serv f=0 r=12 {"real_N above every captured prefill rung": 11, "multi-row prefill batch": 1}
    piecewise-08b            boot f=0 r=3 {"real_N above every captured prefill rung": 3} | serv f=0 r=12 {"real_N above every captured prefill rung": 11, "multi-row prefill batch": 1}

### recurrent_prefill_chunk
  counter 'recurrent_prefill_chunk_cap'
    canonical-tp2-no-mtp     boot f=0 r=14 {"unset_no_aggregate_cap": 14} | serv f=0 r=411 {"unset_no_aggregate_cap": 411}
    canonical-no-precompile  boot f=0 r=1 {"unset_no_aggregate_cap": 1} | serv f=0 r=65 {"unset_no_aggregate_cap": 65}
    canonical-no-devdrafts   boot f=0 r=2 {"unset_no_aggregate_cap": 2} | serv f=0 r=65 {"unset_no_aggregate_cap": 65}
    diag-on                  boot f=0 r=23 {"unset_no_aggregate_cap": 23} | serv f=0 r=763 {"unset_no_aggregate_cap": 763}
    piecewise-08b            boot f=0 r=23 {"unset_no_aggregate_cap": 23} | serv f=0 r=763 {"unset_no_aggregate_cap": 763}

### decode_pad_cudagraph
  counter 'decode_pad_replay'
    canonical-tp2-no-mtp     boot f=0 r=0  | serv f=0 r=0 
    canonical-no-precompile  boot f=0 r=0  | serv f=0 r=0 
    canonical-no-devdrafts   boot f=0 r=0  | serv f=0 r=0 
    diag-on                  boot f=1 r=0  | serv f=0 r=0 
    piecewise-08b            boot f=1 r=0  | serv f=0 r=0 

### split_mixed_min_decode_rows
  counter 'split_mixed_forward'
    canonical-tp2-no-mtp     boot f=0 r=0  | serv f=0 r=0 
    canonical-no-precompile  boot f=0 r=0  | serv f=0 r=0 
    canonical-no-devdrafts   boot f=0 r=0  | serv f=0 r=0 
    diag-on                  boot f=4 r=2 {"no decode row co-admitted": 2} | serv f=1 r=12 {"no decode row co-admitted": 12}
    piecewise-08b            boot f=4 r=2 {"no decode row co-admitted": 2} | serv f=1 r=12 {"no decode row co-admitted": 12}

### mtp_fused_rejection
  counter 'mtp_fused_rejection_sample'
    canonical-tp2-no-mtp     boot f=0 r=0  | serv f=0 r=0 
    canonical-no-precompile  boot f=0 r=0  | serv f=0 r=0 
    canonical-no-devdrafts   boot f=0 r=0  | serv f=0 r=0 
    diag-on                  boot f=0 r=0  | serv f=0 r=0 
    piecewise-08b            boot f=0 r=0  | serv f=0 r=0 

### persistent_recurrent_index
  counter 'persistent_recurrent_index_reuse'
    canonical-tp2-no-mtp     boot f=0 r=0  | serv f=0 r=0 
    canonical-no-precompile  boot f=0 r=0  | serv f=0 r=0 
    canonical-no-devdrafts   boot f=0 r=0  | serv f=0 r=0 
    diag-on                  boot f=0 r=0  | serv f=1 r=0 
    piecewise-08b            boot f=0 r=0  | serv f=1 r=0 

### tp_copy_engine_on_p2p
  counter 'tp_copy_engine_armed'
    canonical-tp2-no-mtp     boot f=0 r=1 {"flag_off": 1} | serv f=0 r=0 
    canonical-no-precompile  boot f=0 r=1 {"flag_off": 1} | serv f=0 r=0 
    canonical-no-devdrafts   boot f=0 r=1 {"flag_off": 1} | serv f=0 r=0 
    diag-on                  boot f=0 r=1 {"flag_off": 1} | serv f=0 r=0 
    piecewise-08b            boot f=0 r=1 {"flag_off": 1} | serv f=0 r=0 

### savepoint_decode_write
  counter 'savepoint_decode_write'
    canonical-tp2-no-mtp     boot f=0 r=0  | serv f=0 r=0 
    canonical-no-precompile  boot f=0 r=0  | serv f=0 r=0 
    canonical-no-devdrafts   boot f=0 r=0  | serv f=0 r=0 
    diag-on                  boot f=0 r=228 {"cache disabled for this request": 228} | serv f=0 r=1184 {"length strode past the resume grid": 1184}
    piecewise-08b            boot f=0 r=228 {"cache disabled for this request": 228} | serv f=0 r=1184 {"length strode past the resume grid": 1184}

### dflash_dynamic_k
  counter 'dspark_dynamic_k_consulted'
    canonical-tp2-no-mtp     boot=NOT-REGISTERED | serv=NOT-REGISTERED
    canonical-no-precompile  boot=NOT-REGISTERED | serv=NOT-REGISTERED
    canonical-no-devdrafts   boot=NOT-REGISTERED | serv=NOT-REGISTERED
    diag-on                  boot=NOT-REGISTERED | serv=NOT-REGISTERED
    piecewise-08b            boot=NOT-REGISTERED | serv=NOT-REGISTERED

### exl3_int8_verify_min_rows
  counter 'exl3_int8_verify_gemm'
    canonical-tp2-no-mtp     boot f=0 r=0  | serv f=0 r=0 
    canonical-no-precompile  boot f=0 r=0  | serv f=0 r=0 
    canonical-no-devdrafts   boot f=0 r=0  | serv f=0 r=0 
    diag-on                  boot f=0 r=0  | serv f=0 r=0 
    piecewise-08b            boot f=0 r=0  | serv f=0 r=0 
  counter 'exl3_int8_verify_gemm_captured'
    canonical-tp2-no-mtp     boot f=0 r=0  | serv f=0 r=0 
    canonical-no-precompile  boot f=0 r=0  | serv f=0 r=0 
    canonical-no-devdrafts   boot f=0 r=0  | serv f=0 r=0 
    diag-on                  boot f=0 r=0  | serv f=0 r=0 
    piecewise-08b            boot f=0 r=0  | serv f=0 r=0 

### serve_flat_cache_max_gb
  counter 'flat_cache_lru_evict'
    canonical-tp2-no-mtp     boot f=0 r=0  | serv f=0 r=0 
    canonical-no-precompile  boot f=0 r=0  | serv f=0 r=0 
    canonical-no-devdrafts   boot f=0 r=0  | serv f=0 r=0 
    diag-on                  boot f=0 r=0  | serv f=0 r=0 
    piecewise-08b            boot f=0 r=0  | serv f=0 r=0 

### drafter_penalty_align
  counter 'drafter_penalty_align'
    canonical-tp2-no-mtp     boot f=0 r=0  | serv f=0 r=0 
    canonical-no-precompile  boot f=0 r=1 {"flag_off": 1} | serv f=0 r=1 {"flag_off": 1}
    canonical-no-devdrafts   boot f=0 r=1 {"flag_off": 1} | serv f=0 r=1 {"flag_off": 1}
    diag-on                  boot f=0 r=0  | serv f=0 r=0 
    piecewise-08b            boot f=0 r=0  | serv f=0 r=0 

### dflash2_penalty_align
  counter 'dflash2_penalty_align'
    canonical-tp2-no-mtp     boot=NOT-REGISTERED | serv=NOT-REGISTERED
    canonical-no-precompile  boot=NOT-REGISTERED | serv=NOT-REGISTERED
    canonical-no-devdrafts   boot=NOT-REGISTERED | serv=NOT-REGISTERED
    diag-on                  boot=NOT-REGISTERED | serv=NOT-REGISTERED
    piecewise-08b            boot=NOT-REGISTERED | serv=NOT-REGISTERED

VERDICT PER FLAG (measurement only — no contract written here)
--------------------------------------------------------------
REACHED AND DECLINING BY A STABLE NAMED REASON — safe MustRefuse candidates:

  recurrent_prefill_chunk    recurrent_prefill_chunk_cap
      "unset_no_aggregate_cap" only, on all five arms, both windows, 14-763
      counts. Single reason, no variance. The strongest candidate here.

  tp_copy_engine_on_p2p      tp_copy_engine_armed
      "flag_off" only, all five arms, boot window. Stable — but the counter is
      shared with ~9 other refusal reasons from parallel_state/nccl_staging,
      and its ON branch records "armed_on_p2p_override" AND THEN fires. So a
      because= must accept that pair, and a MustRefuse on this counter is
      asserting about the copy-engine tier, not uniquely about this flag.

  prefill_replay             prefill_graph_lookup
      Reached everywhere, never fires. BUT the reason MIX is workload-dependent:
      canonical serve was {rung:3, multi-row:10}; the two MTP arms and both
      0.8B arms were {rung:11, multi-row:1}. Both reasons always appear across
      a boot, neither dominates reliably. A because= naming ONE reason is FLAKY.
      A because= accepting the SET {real_N above every captured prefill rung,
      multi-row prefill batch} holds on all five arms. NOTE the contract's
      third clause, "chunked-prefill continuation chunk", was NOT observed on
      any arm — a because= listing all three would fail.

REACHED, DECLINING, BUT ONLY ON A NON-CANONICAL ARM:

  drafter_penalty_align      drafter_penalty_align
      "flag_off" on both MTP arms (boot AND serve), absent on the MTP-off arm
      and on both 0.8B arms. So it IS reached once a drafter attaches, and the
      reason is stable — but the only arms that reach it are the ones that
      cannot serve. Promote only after TP2+MTP serves again.

  split_mixed_min_decode_rows  split_mixed_forward
      0.8B: f=4 r=2 boot, f=1 r=12 serve, reason "no decode row co-admitted".
      Canonical: 0/0 in both windows. And "no decode row co-admitted" is the
      MIXED-SLATE refusal, not the threshold's own — the threshold's literal is
      "too few decode rows to pay for the split (<N rows)" and it was NEVER
      observed. The knob's own decline is unmeasured everywhere.

UNREACHED ON CANONICAL — the reason prose is FALSE, rewrite rather than promote:

  gdn_prefill_capture        piecewise_sweep / prefill_capture_sweep
      Both counters refuse on every arm, but with "disabled by config
      (prefill_capture='eager')" — the PREFLIGHT refusal, which lands before
      the flag is consulted. The flag's own branch emits "recurrent model and
      gdn_prefill_capture OFF" (layer.py:399) and that string appears on NO
      arm. A MustRefuse quoting the flag's reason would fail; quoting the
      config's reason would assert something about --prefill-capture, not
      about this flag.

  decode_pad_cudagraph       decode_pad_replay        canonical 0/0, 0.8B boot f=1
  persistent_recurrent_index persistent_recurrent_index_reuse
                                                      canonical 0/0, 0.8B serve f=1
  savepoint_decode_write     savepoint_decode_write   canonical 0/0, 0.8B r=228/1184
      All three are exercised on the 0.8B lanes and record NOTHING on any
      canonical arm. The canonical 27B IS GDN-hybrid (65 layers, 17 paged, 96
      recurrent slabs — checked in the boot log), so "no recurrent layers" is
      NOT the explanation and I am not going to invent one. Measured fact:
      unreached on canonical, reached on 0.8B. Needs a boot-level investigation
      before any contract is written against it.

  mtp_fused_rejection        mtp_fused_rejection_sample   0/0 on all five arms
      Genuinely unmeasured: the canonical arms that had MTP could not serve,
      and the arm that served had no MTP.

  exl3_int8_verify_min_rows  exl3_int8_verify_gemm(_captured)  0/0 on all arms
      Expected and explainable: the canonical checkpoint is AWQ. The boot log
      says "EXL3 kernel-shape pin DECLINED ... no EXL3 linear was bound" and
      "0 of 0 bound linears". There is no EXL3 linear to decline a slate, so
      the counter cannot record anything on this config at all.

  serve_flat_cache_max_gb    flat_cache_lru_evict     0/0 on all five arms
      The eviction sweep only runs after a publish, and the cap's own decline
      ("under_cap") needs the root to be under the cap at that moment. Not
      reached by any boot here.

NEVER REGISTERED IN THE PROCESS (distinct from 0/0):

  dflash_dynamic_k           dspark_dynamic_k_consulted
  dflash2_penalty_align      dflash2_penalty_align
      Absent from all 5 dumps, i.e. the module holding the registration was
      never imported — none of these boots attached a DSpark/DFlash2 drafter.
      Additionally dflash_dynamic_k's counter is FIRE-ONLY: its gate has zero
      .refuse() sites (the ineligible cases early-return unmarked, and the boot
      guard raises instead). MustRefuse is structurally impossible on it as
      written; it would need a refuse site added first.
