# HyperTwist Classic-Cube State/History And Beginner-Solver Hierarchy Reconciliation - 2026-05-27

## Status

This document is the source-backed reconciliation note for the current
classic-cube state/history and beginner-solver family across:

- `vwcwong/CubeSim`
- the first-party canonical replay and training-history surfaces
- the landed bounded classic-cube `Phase 6R-Q`, `Phase 6R-R`, and `Phase 6R-S`
  seams

It answers one narrow question:

- does the current `CubeSim` source require reopening already landed HyperTwist
  replay/history or explanation packets before any future small classic-cube
  helper packet is considered

Result:

- no product-code reopening is required
- yes selective authority backfill is required so the retained `CubeSim` slice
  stays narrow and does not blur into the current first-party replay/history or
  classic-cube explanation families

## Source basis

- `C:\HyperTwist\docs\HYPERTWIST_PHASE_0R_PACKET_0R_E_EVALUATION_2026-05-13.md`
- `C:\HyperTwist\docs\REPO_LICENSE_TRACKING.md`
- `C:\HyperTwist\docs\v6_5_deep_manual_pack\HyperTwist\FEATURE_REGISTRY.md`
- `C:\Workspaces\HyperTwist\repos.manifest.json`
- `C:\Workspaces\HyperTwist\clean-room-specs\vwcwong-cubesim.model-a.md`
- `C:\Workspaces\HyperTwist\mirrors\restrictive\vwcwong\CubeSim\README.md`
- `C:\Workspaces\HyperTwist\mirrors\restrictive\vwcwong\CubeSim\src\cube\cube.py`
- `C:\Workspaces\HyperTwist\mirrors\restrictive\vwcwong\CubeSim\src\cube\history_cube.py`
- `C:\Workspaces\HyperTwist\mirrors\restrictive\vwcwong\CubeSim\src\cube\solver.py`
- `C:\Workspaces\HyperTwist\mirrors\restrictive\vwcwong\CubeSim\src\scramble\parser.py`
- current first-party runtime and packet authority under:
  - `C:\HyperTwist\UnrealHyperTwist\Source\UnrealHyperTwist`
  - `C:\HyperTwist\docs\ops\HYPERTWIST_IMPLEMENTATION_PHASE_1_KICKOFF.md`

## Slice-local verdict

| Slice | Primary authority | Secondary value kept | Route | Width | Result |
| --- | --- | --- | --- | --- | --- |
| Landed canonical replay packet, replay-event schema, review analytics, and training attempt/solve/review histories | first-party replay and training surfaces | none required from `CubeSim` | existing landed permissive route | `F2` | unchanged live implementation owner |
| Landed bounded classic-cube reconstruction follow-up, solve-guidance stage ladder, correction explanation, and correction-resolution closure seams | first-party landed `Phase 6R-Q`, `Phase 6R-R`, and `Phase 6R-S` seams | none required from `CubeSim` | existing landed permissive route | `F2` | unchanged live implementation owner |
| Readable renderer-independent classic-cube state/history split, scramble parse/invert behavior, and beginner layer-by-layer decomposition benchmark for later clean-room lesson/debug/helper use | `vwcwong/CubeSim` | current first-party replay/history and classic-cube explanation families remain adjacent non-overlapping owners | `R4` now, `R3` only if an explicit clean-room packet is opened later | `F2` | restrictive benchmark authority kept explicit |

## Why no product-code reopening is required

### `vwcwong/CubeSim`

`CubeSim` still has retained value, but it is narrow:

- a readable sticker-array classic-cube kernel
- a clean split between base state mutation and optional move-history capture
- simple scramble parse, stringify, and inversion behavior
- a legible beginner `LBL` solve decomposition into explicit stages

That retained value is explicit in the current source:

- `cube.py` keeps state mutation and face-turn behavior renderer-independent
- `history_cube.py` layers move-history capture above the base cube class
- `parser.py` keeps scramble parse and invert behavior separate from rendering
- `solver.py` exposes the staged `solve_cross`, `solve_corners`,
  `solve_middle_edges`, `solve_eoll`, `solve_ocll`, `solve_cpll`, and
  `solve_epll` flow

Those strengths make `CubeSim` a good readable benchmark. They do not make it
the owner of HyperTwist's live replay/history or explanation families.

### Current first-party replay/history surfaces

HyperTwist already owns the current live replay/history family in first-party
code:

- `FHyperTwistReplayPacket` is the canonical replay event container
- training session state already carries a replay packet and replay event
- training session summaries already keep attempt, solve, and review history
  families

Those surfaces are broader, more product-specific, and already live. `CubeSim`
does not reopen them.

### Landed classic-cube `Phase 6R-Q/R/S`

The landed classic-cube explanation and correction seams are already first-party
and bounded:

- correction state already routes into explicit recommended stages
- solve explanation already gates on reconstruction and correction completion
- the bounded stage ladder already resumes at `orient-centers`

`CubeSim`'s readable beginner-method solver decomposition does not reopen those
shell/state families. It only remains a later clean-room comparison surface if
HyperTwist ever wants a smaller helper or lesson-oriented classic-cube lane.

## Selective backfill result

### Earlier packet reopened

- `C:\HyperTwist\docs\HYPERTWIST_PHASE_0R_PACKET_0R_E_EVALUATION_2026-05-13.md`

### Earlier standing note reopened

- `C:\Workspaces\HyperTwist\clean-room-specs\vwcwong-cubesim.model-a.md`

### Reason

Later comparison against the now-landed HyperTwist replay/history and
classic-cube explanation surfaces sharpened the exact retained `CubeSim` slice:

- `CubeSim` is not a generic replay owner
- `CubeSim` is not a generic explanation-shell owner
- `CubeSim` remains the readable clean-room benchmark only for the smaller
  renderer-independent state/history split, scramble parse/invert, and
  beginner `LBL` decomposition slice

### Change class

- repo-local extraction did not change
- cross-lane authority wording was sharpened for the exact retained slice
- no cleanup interpretation changed
- no product-code change occurred

### What remained valid

- the original `0R-E` decision to keep `CubeSim` restrictive and non-live
  remained valid
- the current first-party replay/history surfaces remained valid
- the current first-party classic-cube `Phase 6R-Q/R/S` seams remained valid
- the existing scrubbed `Model A` handoff remained valid as a seed

### What changed

The dependent canon now makes the exact non-live role explicit:

- keep `CubeSim` only as the readable clean-room benchmark for the narrower
  state/history and beginner-helper slice
- keep canonical replay and training-history ownership with the live
  first-party surfaces
- keep bounded classic-cube explanation and correction ownership with the
  landed `Phase 6R-Q/R/S` seams

## Propagation result

### Feature registry

Updated.

The registry now explicitly records the retained `CubeSim` benchmark slice
instead of leaving it implicit in the older `0R-E` packet alone.

### Cross-lane doctrine

No doctrine wording change was needed.

This pass applied the existing `A/R/F` hierarchy; it did not change the
hierarchy rules themselves.

### Skillization

No doctrine or `SKILLS.md` change was needed.

This pass did not create or reopen any command or skill surface.

### Legal evidence

No license-status or mirror-custody change occurred.

The repo-row tracker, feature registry, manifest, and scrubbed handoff were
sharpened instead.

## Operational answer

Before any future small classic-cube helper, lesson, or replay-adjacent packet
is opened, the correct move was this evaluation and selective backfill pass
first.

After this pass:

- do not reopen the live product code
- do not reinterpret `CubeSim` as proof that replay/history or explanation
  ownership is still pending
- if HyperTwist later opens a true small classic-cube helper lane, start from
  the retained `CubeSim` benchmark slice only and keep it clean-room routed
  rather than donor-routed
