Docs: 07-21 heavy feel lock session log

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-21 00:13:50 -07:00
parent ce0faafb72
commit 4e795a38e9
@@ -0,0 +1,42 @@
# 2026-07-21 (F) — HEAVY FEEL LOCKED (the A/B winner folded into code defaults)
**Operator:** "lets lock the heavy feel, commit everything." The `heavy-committed` profile wins the A/B; per the
bench rule the winner folds into code defaults and the profile stays as the record.
## The locked numbers (TuningConfig.Defaults / FeelConfig.ResetDefaults)
| Knob | Was | LOCKED | Note |
|---|---|---|---|
| MeleeRecoverTicks | 30 | **36** | 0.60s light lock; finisher x1.5 = 54t (0.90s) |
| MeleeDamage | 30 | **36** | DPS 60 held (dmg = recover) |
| MeleeContactTicks | 16 | **20** | blade lands 20/12/25t per step |
| MeleeChainGraceTicks | 24 | **28** | |
| MeleeBufferTicks | 8 | **10** | |
| MeleeSwingMoveScale | 0.35 | **0.25** | deeper commit |
| MeleeArcIntensity | 1.0 | **0.8** | the weapon is the read |
| FinisherHoldFrames | 5 | **7** | ~117ms beat |
| MeleeConnectFovKick | 0.8 | **1.1** | |
**Honesty correction while locking:** the profile as played had damage at 20/12/25t while the clips' VISUAL
contacts sat at 16/10/20t (45t drift, the audit flagged it). The lock keeps the approved DAMAGE timing and
retimes the clip state speeds to match — wire-tool swaps now **1.0 / 0.85 / 0.88** → audit shows **ZERO drift**
(derived == configured at every step). Coupling note baked into the knob comment: step-3 contact (25t) sits ONE
tick under CastFacingTicks (26) — never raise the contact knob without raising the cast window.
## Verified
- Audit: zero drift, DPS 60.0 per-light AND full-chain, buffer 10t + batch slack 4t.
- Probe (server-measured, in play): gaps exactly 36/36/54/36/36, contacts +20/+12/+25 exactly, damage 42/42/63
(base 36 x class seed, finisher x1.5).
- 414/414 EditMode green (mechanics tests pin their own config — default drift can't break them, by design).
- **The grip-anchor flow got its first real operator use**: the anchor moved from the seed (0, .06, .02) to the
hand-tuned (0.115, .06, .061) and the baked mesh matches it exactly (expected-radius recompute == baked 1.53m).
Reach with the tuned grip: swept ~1.98m vs 2.2m cone = **x1.11** base (in budget); finisher x1.39 — slightly
over the 1.25 guideline, watch it in play (trim MeleeFinisherRangeMult toward ~1.15 if the finisher reads long).
Profiles: `baseline-0720.json` now carries the LOCKED defaults (display name `baseline-heavy-0721`, the reset
button); `heavy-committed.json` marked as the locked record; `snappier.json` stays as the contrast experiment.
**Next:** hit-react pass (the last missing impact layer: pack React/Stagger clips + a damage-edge anim param +
the Rukhanka-compatible victim-flinch that replaces the cut vibrate) · finisher-reach eyes-on (x1.39) ·
G6 zone-socket telegraph + the SpecialSlam socket's damage-at-contact (same honesty fix melee got).