# HyperTwist Phase 6R-Q rubix-cube-solver solve explanation recommendation preparation packet

Created on `2026-05-23`

## Status

- historical consumed preparation authority
- bounded post-`Phase 6R-P` control slice
- the first bounded implementation slice now lands separately after this packet

## Purpose

This packet freezes the next widening order after the landed `Phase 6R-P`
`vivaansinghvi07/rubix-cube-solver` browser/webcam shell slice.

The open task was:

- define the next bounded source-backed widening packet for `vivaansinghvi07/rubix-cube-solver`
  as a solve explanation/recommendation seam above the already landed reconstruction and
  browser-shell seams

It is not:

- a full `rubix-cube-solver` row transplant
- a bundled `twistysim.min.js` redistribution packet
- a generalized solver backend packet
- a broad multi-face correction shell packet
- a `qbr` multilingual shell packet
- a `qbr` bundled-font packet

## Current authority basis

This preparation packet stands on already-closed authority:

- `docs/REPO_LICENSE_TRACKING.md`
- `docs/v6_5_deep_manual_pack/HyperTwist/ROADMAP.md`
- `docs/arch/HYPERTWIST_PHASE6R_C_RUBIX_CUBE_SOLVER_RECONSTRUCTION_IMPLEMENTATION_PACKET_2026-05-20.md`
- `docs/arch/HYPERTWIST_PHASE6R_O_QBR_WEBCAM_UI_SHELL_IMPLEMENTATION_PACKET_2026-05-22.md`
- `docs/arch/HYPERTWIST_PHASE6R_P_RUBIX_CUBE_SOLVER_BROWSER_WEBCAM_SHELL_IMPLEMENTATION_PACKET_2026-05-22.md`

The key accepted routing facts are:

- `vivaansinghvi07/rubix-cube-solver` remains the retained recognition-companion donor for the
  bounded browser-assisted correction and solve-guidance seam
- the already landed `Phase 6R-C` slice owns:
  - committed-face reconstruction session
  - face-vote replacement ledger
  - final classic-net shaping above aggregated committed faces
- the already landed `Phase 6R-P` slice owns:
  - classic-cube browser shell profile
  - browser-stage routing
  - websocket transport metadata
  - manual cube-edit handoff
- the donor value now strongest for the next narrower slice is:
  - solve-stage recommendation semantics
  - bounded step-ladder authoring
  - explanation-state readiness after full reconstruction
  - next/previous/restart explanation action routing
- ownership denied here is:
  - do not widen into bundled `twistysim.min.js` redistribution
  - do not widen into generalized solver backend ownership
  - do not widen into `qbr` multilingual or bundled-font ownership
  - do not widen into the broader multi-face correction shell in the same packet

## Why this was the next packet

The earlier retained queue heads were already landed:

- `Phase 6R-A` `HactarCE/Hyperspeedcube`
- `Phase 6R-B` `kkoomen/qbr`
- `Phase 6R-C` `vivaansinghvi07/rubix-cube-solver`
- `Phase 6R-D` `roice3/MagicTile`
- `Phase 6R-E` `ggml-org/whisper.cpp`
- `Phase 6R-F` `SYSTRAN/faster-whisper`
- `Phase 6R-G` `rhasspy/piper`
- `Phase 6R-H` `coqui-ai/TTS`
- `Phase 6R-I` `roice3/Magic120Cell`
- `Phase 6R-J` `roice3/MagicCube5D`
- `Phase 6R-K` `HactarCE/Hyperspeedcube`
- `Phase 6R-L` `HactarCE/Hyperspeedcube`
- `Phase 6R-M` `HactarCE/Hyperspeedcube`
- `Phase 6R-N` `HactarCE/Hyperspeedcube`
- `Phase 6R-O` `kkoomen/qbr`
- `Phase 6R-P` `vivaansinghvi07/rubix-cube-solver`

That advanced the live queue to:

- `Phase 6R-Q` `vivaansinghvi07/rubix-cube-solver`

with the adjacent retained recognition remainder ordered behind it:

- retained classic-cube recognition multi-face correction/explanation shell

## Required result

The source-backed control pass for this packet is now complete.

The first actual `6R-Q` implementation packet should:

- define one bounded retained solve explanation/recommendation slice from `rubix-cube-solver`
- keep the slice inside the accepted recognition-shell seam above the landed reconstruction and
  browser-shell routes
- widen only the first stage-ladder guidance family that can stand on its own without dragging in
  bundled frontend-asset redistribution or generalized solver backend ownership
- explicitly state which neighboring retained rows stay closed in that packet

## Source-backed retained basis

The queue-head decision is now source-backed rather than README-only.

Inspected retained donor basis:

- `README.md`
- `backend/server.py`
- `backend/cv.py`
- `frontend/src/script.js`

Inspected first-party receiving basis:

- `UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistRecognition/HyperTwistRecognitionTypes.h`
- `UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistBootstrap/HyperTwistContractLibrary.cpp`
- `UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingSubsystem.cpp`
- `UnrealHyperTwist/Source/UnrealHyperTwist/Tests/HyperTwistRubixCubeSolverPhase6RCReconstructionContractTest.cpp`
- `UnrealHyperTwist/Source/UnrealHyperTwist/Tests/HyperTwistRubixCubeSolverPhase6RPBrowserShellContractTest.cpp`

## Narrowed 6R-Q slice decision

The first widening slice is fixed as:

1. classic-cube solve explanation/recommendation profile and commit-state composition

not as bundled frontend playback or generalized solver backend ownership.

That narrowed slice covers:

- first-party solve explanation profile for:
  - ordered bounded stage ids:
    - `orient-centers`
    - `solve-white-cross`
    - `solve-first-layer-corners`
    - `solve-second-layer-edges`
    - `solve-oll-edges`
    - `solve-oll-corners`
    - `solve-pll-corners`
    - `solve-pll-edges`
  - bounded action bindings:
    - `start-solve-explanation`
    - `step-solve-forward`
    - `step-solve-backward`
    - `restart-solve-explanation`
- first-party solve explanation state readout for:
  - explanation readiness after full reconstruction
  - current recommendation stage
  - recommendation status/detail lines
  - total bounded step count
  - start/previous/next visibility
  - playback deferred state
- subsystem normalization and focused automation coverage

## Deferred neighboring families

The first `6R-Q` implementation packet must keep these capability families closed:

- bundled `twistysim.min.js` shipping or redistribution
- generalized solver backend ownership
- `qbr` multilingual shell ownership
- `qbr` bundled-font redistribution
- broad multi-face correction shell ownership
- broad playback runtime ownership

## Why this slice was first

- `rubix-cube-solver` is strongest for the bounded solve-ladder guidance that sits directly above
  the already landed reconstruction and browser-shell seams
- current first-party recognition code already had the session, preview, commit, reconstruction,
  and browser-shell envelopes, but it did not yet own a first-party solve explanation profile or
  recommendation state
- widening into bundled frontend assets or generalized backend ownership would prematurely absorb
  adjacent legal and routing concerns that are still narrower and separately governed

## Out of scope for the first 6R-Q packet

- bundled `twistysim.min.js` shipping
- generalized solver backend ownership
- `qbr` multilingual or bundled-font ownership
- broad multi-face correction shell ownership
- broad playback runtime ownership

## Acceptance criteria

- the packet records why the live queue advanced to `6R-Q`
- the packet records that the first `6R-Q` widening slice is solve explanation/recommendation only
- the packet states exact out-of-scope families for the first `6R-Q` pass
- the packet keeps the `rubix-cube-solver` frontend-asset guard visible
- the packet keeps the `qbr` bundled-font guard visible

## Validation checklist

1. confirm the retained `rubix-cube-solver` seam narrows cleanly to a bounded solve explanation
   profile and recommendation-state contract
2. confirm the implementation packet is framed as bounded source-backed widening rather than a
   donor frontend transplant
3. confirm bundled frontend-asset redistribution, generalized solver backend widening, and broader
   multi-face correction remain explicitly deferred

That is the packet.
