``` ID: f-p8-cap8 Type: f A7. The k=1 argmax pattern has strength 8, and the fall-off is 1. DELIVERY. A k=1 application under B1 delivers min(8, w_s): forward, fwd[table[a]] = min(8, wsrc); backward, each predecessor a of b gets min(8, wsrc - ceil(log2 |preds|)) with the subtraction saturating at 0. The forward and backward applications are thereby the same rule with the same w_p. Under B2 the stored weights are the delivery and this alternative's only effect is the fall-off. The k=2 token applications are unchanged: their strength is in the file. FALL-OFF. The update is #f-p8-add's accumulation (LSA addition, vector-outer entry-inner nesting), with the decay 1 instead of 2. const: k1_strength = 8 const: falloff = 1 HISTORY. Generation 4 (#pprog_p8v2_gen4_goal_20260815). The two constants moved together because the delivery and the fall-off only make sense as a pair; the pair was the unit, which is how the no-cross-product rule was kept. Generation 5 splits them into axes G and H, and this alternative is what both were carved out of. WHY. 8 is the weight that makes the argmax carry half the mass of an ES whose other 255 events sit at 0, and the measured share of the argmax at its contexts expresses as 9 / 8 / 7 at e64 / e1k / e10k (tests/pprog/p8v2-k1-strength.py), so it is the measured value at e1k and within one unit of it at every sample size. Measured before it was built, unrecorded positions settling back to their true byte at e1k, v002 retained models: the pair recovers 223 of 833 against the generation-3 baseline's 165, converging at time step 16 against 47; either constant moved alone does worse than moving neither. The grid is in the generation-4 goal block and reproduces from the retained models with p8v2-k1-strength.py. ```