File size: 3,090 Bytes
7b0b49b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# profilefix-no-short-no-counter-v1

This candidate composes two causal Profilefix ablations:

1. `profilefix-no-short-v1`: genuine short emissions are disabled while the
   original short selector and length-bucket RNG draws are still consumed.
2. `profilefix-no-counter-v1`: rows assigned to
   `prefix_cumulative_counter` are causally replaced.

Relative to `profilefix-no-short-v1`, it changes only counter-assigned rows.
Every emitted array is full-length (4096).

For each such row, the generator:

1. calls and discards the complete original counter builder on Profilefix's
   main RNG stream;
2. samples a replacement family from the normalized fourteen-family UID131
   composition on a deterministic tagged `SeedSequence` substream;
3. builds a full-length replacement and applies UID131's ordinary measurement
   artifact path and original seasonal bank on that side stream.

The 2.5% counter selector mass is not renormalized. Consequently all selector
draws, all main-stream builder/artifact draws, and every non-counter row remain
byte-identical to `profilefix-no-short-v1` into later chunks. A thread-local
seasonal-bank selector confines UID131's original bank to replacement calls,
without mutating the Profilefix bank observed by non-counter rows or concurrent
generator threads. Its thread-local subclass initializes `uid131 = False` for
each thread and uses direct attribute reads accepted by the campaign inventory
scanner.

The extra discarded build adds a small amount of CPU work on about 2.5% of
rows. This is intentional: causal identity is more important at the screening
stage than optimizing away unmeasured work.

## Causal validation

The identity test wraps `profilefix-no-short-v1`'s counter builder with a
sentinel while still consuming its original draws. Across 193 rows and four
chunks, every non-counter row is byte-identical and every tagged counter row is
replaced. A separate test proves replacement-stream determinism and another
checks the replacement seasonal path against exact UID131. A two-thread
coordination test proves that enabling the UID131 bank in one thread cannot
leak into either another worker or the main thread.

From `/root/91`:

```bash
PYTHONPATH=cascade cascade/.venv/bin/pytest -q \
  champion/candidate/profilefix-no-short-no-counter-v1/tests
cascade/.venv/bin/ruff check \
  champion/candidate/profilefix-no-short-no-counter-v1
PYTHONPATH=cascade cascade/.venv/bin/python -m cascade.miner.cli verify \
  champion/candidate/profilefix-no-short-no-counter-v1 \
  --chain-toml cascade/chain.toml
PYTHONPATH=cascade:champion/harness cascade/.venv/bin/python \
  -m champion.generic_screen_v040_v1 inventory-candidate \
  --workspace /root/91 \
  --source-path champion/candidate/profilefix-no-short-no-counter-v1
```

Current result: 21 tests pass, Ruff passes, Cascade verify accepts the
deterministic seed-0 corpus, and the generic-screen campaign inventory accepts
the complete source tree.

Status: **prepared-unscored**. Promotion requires source-disjoint public heat
and then a full paired GPU duel against exact UID131.