# V297 Rehydrated V286 Base Report

## Executive summary

V297 is the first safe recovery step after losing the latest active V294 root. It starts from the last full buildable root, V267, and ports only the parts of V286 that are compatible with the clean-solver architecture:

- entry-frame truth as a named gate,
- no active replacement of V267 solver,
- hard child-layer finger block until palm contract passes,
- active-side diagnostics instead of R-only diagnostics.

## Why this is safe

V267 was the first cleanup after rejecting the old patch-chain. The active path calls `gripV1ApplyPalmContract(...)` and old V189/V198/V199/V266 decision nodes are compatibility markers only.

V286's instrumented runtime is not used as a replacement because it does not contain the V267 clean solver. Its workbench neutralizer is preserved as reference evidence and V297 ports the idea as a non-mutating stage gate.

## Code changes

### `gripV297EntryFrameGate`

Measures:

- active side,
- signed MCP-mid outside distance against active limb outside axis,
- palm-base outside distance,
- required outward shift to reach a 55 mm outside shell,
- whether the entry frame is usable before solveGrip commits contact.

This gate does not mutate targets.

### `v297BlockedFingerChildLayer`

Replaces unconditional finger application when palm contract fails. This enforces the existing V267/V286/V291 rule: fingers are child-layer only.

### Active-side diagnostics

Replaced hardcoded `R` diagnostic calls with `activeGripSide`.

## Static audit result

See `diagnostics/V297_STATIC_REHYDRATION_AUDIT.json`.

## Non-goals

This package does not claim to be V294-equivalent. It does not yet include V291 active entry semantics, V293 baked foot-data fix, or V294 shifted-surface gate.
