# HyperTwist Phase 6R-M HactarCE/Hyperspeedcube stats-shape and solve-record implementation packet

Created on `2026-05-22`

## Status

- first-party HyperTwist packet
- bounded permissive `Phase 6R-M` implementation slice

## Purpose

This packet lands the next narrower bounded slice from the retained `HactarCE/Hyperspeedcube`
runtime-anchor row.

The landed slice is:

- first-party hyper stats-shape and solve-record boundary

It is not:

- a whole `Hyperspeedcube` runtime transplant
- a puzzle-definition DSL packet
- a donor solve-summary UI shell packet
- a donor analytics dashboard packet
- a donor publication, leaderboard, or remote-service ownership packet

## Current authority basis

This implementation packet stands on:

- `docs/REPO_LICENSE_TRACKING.md`
- `docs/ops/HYPERTWIST_CROSS_LANE_AUTHORITY_HIERARCHY_AND_RECONCILIATION_2026-05-20.md`
- `docs/arch/HYPERTWIST_PHASE6R_M_HYPERSPEEDCUBE_STATS_SHAPE_AND_SOLVE_RECORD_PREPARATION_PACKET_2026-05-22.md`

The retained owner remains:

- `HactarCE/Hyperspeedcube`

The top-level runtime-anchor owner does not change here:

- first-party HyperTwist with the retained `Hyperspeedcube` runtime anchor remains the broader
  runtime owner
- this packet keeps `HactarCE/Hyperspeedcube` bounded to the narrower `A1 / R1 / F2`
  stats-shape and solve-record slice

## Landed scope

The current code now owns a retained `Hyperspeedcube` contract through:

- the existing first-party `UHyperTwistTrainingHyperspeedcubeLibrary`
- retained package references for:
  - the donor stats DB source
  - the donor solve-summary qualifier source
  - the already landed verification result types
- one bounded stats-shape contract for:
  - first solve, FMC, speed, and blind PB categories
  - new-PB classification
  - puzzle canonical id and puzzle version qualifiers
  - `blind`, `used_filters`, and `used_macros` qualifier propagation
  - bounded solve-proof result fields
- one bounded solve-record boundary for:
  - solve-log file association
  - solve completion and verified completion timestamps
  - file-backed FMC, speed, and blind PB records
  - bounded KDL persistence caveats
- updated donor-attribution boundary
- runtime-library accessors and package-checklist export through:
  - `UHyperTwistTrainingRuntimeLibrary`
- focused automation coverage in:
  - `HyperTwistHyperspeedcubePhase6RMStatsShapeContractTest.cpp`

## Why this is still intentionally bounded

This packet lands the retained stats-shape seam, but it does not widen into neighboring retained
families or broader product ownership.

Still deferred:

- puzzle-definition DSL parsing or authoring
- donor solve-summary UI shell ownership
- donor analytics dashboard ownership
- publication or leaderboard ownership
- broader `Hyperspeedcube` runtime-anchor widening beyond the next bounded packet

## Validation

Build validation:

- `C:\Program Files\Epic Games\UE_5.7\Engine\Build\BatchFiles\Build.bat UnrealHyperTwistEditor Win64 Development -Project='C:\HyperTwist\UnrealHyperTwist\UnrealHyperTwist.uproject' -WaitMutex -NoHotReloadFromIDE`

Focused automation validation:

- `C:\Program Files\Epic Games\UE_5.7\Engine\Binaries\Win64\UnrealEditor-Cmd.exe C:\HyperTwist\UnrealHyperTwist\UnrealHyperTwist.uproject -unattended -nop4 -nosplash -NullRHI -log -stdout -FullStdOutLogOutput -AbsLog=C:\HyperTwist\UnrealHyperTwist\Saved\Logs\Phase6R-M-Hyperspeedcube-Verify.log -ReportExportPath=C:\HyperTwist\UnrealHyperTwist\Saved\AutomationReports\Phase6R-M-Hyperspeedcube-Verify -ExecCmds="Automation RunTests HyperTwist.Permissive.Hyperspeedcube.Phase6R.M; Quit" -TestExit="Automation Test Queue Empty"`

Regression automation validation:

- `C:\Program Files\Epic Games\UE_5.7\Engine\Binaries\Win64\UnrealEditor-Cmd.exe C:\HyperTwist\UnrealHyperTwist\UnrealHyperTwist.uproject -unattended -nop4 -nosplash -NullRHI -log -stdout -FullStdOutLogOutput -AbsLog=C:\HyperTwist\UnrealHyperTwist\Saved\Logs\Phase6R-L-Hyperspeedcube-Verify.log -ReportExportPath=C:\HyperTwist\UnrealHyperTwist\Saved\AutomationReports\Phase6R-L-Hyperspeedcube-Verify -ExecCmds="Automation RunTests HyperTwist.Permissive.Hyperspeedcube.Phase6R.L; Quit" -TestExit="Automation Test Queue Empty"`
- `C:\Program Files\Epic Games\UE_5.7\Engine\Binaries\Win64\UnrealEditor-Cmd.exe C:\HyperTwist\UnrealHyperTwist\UnrealHyperTwist.uproject -unattended -nop4 -nosplash -NullRHI -log -stdout -FullStdOutLogOutput -AbsLog=C:\HyperTwist\UnrealHyperTwist\Saved\Logs\Phase6R-K-Hyperspeedcube-Verify.log -ReportExportPath=C:\HyperTwist\UnrealHyperTwist\Saved\AutomationReports\Phase6R-K-Hyperspeedcube-Verify -ExecCmds="Automation RunTests HyperTwist.Permissive.Hyperspeedcube.Phase6R.K; Quit" -TestExit="Automation Test Queue Empty"`
- `C:\Program Files\Epic Games\UE_5.7\Engine\Binaries\Win64\UnrealEditor-Cmd.exe C:\HyperTwist\UnrealHyperTwist\UnrealHyperTwist.uproject -unattended -nop4 -nosplash -NullRHI -log -stdout -FullStdOutLogOutput -AbsLog=C:\HyperTwist\UnrealHyperTwist\Saved\Logs\Phase6R-A-Hyperspeedcube-Verify.log -ReportExportPath=C:\HyperTwist\UnrealHyperTwist\Saved\AutomationReports\Phase6R-A-Hyperspeedcube-Verify -ExecCmds="Automation RunTests HyperTwist.Permissive.Hyperspeedcube.Phase6R.A; Quit" -TestExit="Automation Test Queue Empty"`
- `C:\Program Files\Epic Games\UE_5.7\Engine\Binaries\Win64\UnrealEditor-Cmd.exe C:\HyperTwist\UnrealHyperTwist\UnrealHyperTwist.uproject -unattended -nop4 -nosplash -NullRHI -log -stdout -FullStdOutLogOutput -AbsLog=C:\HyperTwist\UnrealHyperTwist\Saved\Logs\Phase6R-J-MagicCube5D-Verify.log -ReportExportPath=C:\HyperTwist\UnrealHyperTwist\Saved\AutomationReports\Phase6R-J-MagicCube5D-Verify -ExecCmds="Automation RunTests HyperTwist.Permissive.MagicCube5D.Phase6R.J; Quit" -TestExit="Automation Test Queue Empty"`
- `C:\Program Files\Epic Games\UE_5.7\Engine\Binaries\Win64\UnrealEditor-Cmd.exe C:\HyperTwist\UnrealHyperTwist\UnrealHyperTwist.uproject -unattended -nop4 -nosplash -NullRHI -log -stdout -FullStdOutLogOutput -AbsLog=C:\HyperTwist\UnrealHyperTwist\Saved\Logs\Phase6R-I-Magic120Cell-Verify.log -ReportExportPath=C:\HyperTwist\UnrealHyperTwist\Saved\AutomationReports\Phase6R-I-Magic120Cell-Verify -ExecCmds="Automation RunTests HyperTwist.Permissive.Magic120Cell.Phase6R.I; Quit" -TestExit="Automation Test Queue Empty"`
- `C:\Program Files\Epic Games\UE_5.7\Engine\Binaries\Win64\UnrealEditor-Cmd.exe C:\HyperTwist\UnrealHyperTwist\UnrealHyperTwist.uproject -unattended -nop4 -nosplash -NullRHI -log -stdout -FullStdOutLogOutput -AbsLog=C:\HyperTwist\UnrealHyperTwist\Saved\Logs\Phase6R-D-MagicTile-Verify.log -ReportExportPath=C:\HyperTwist\UnrealHyperTwist\Saved\AutomationReports\Phase6R-D-MagicTile-Verify -ExecCmds="Automation RunTests HyperTwist.Permissive.MagicTile.Phase6R.D; Quit" -TestExit="Automation Test Queue Empty"`
- `C:\Program Files\Epic Games\UE_5.7\Engine\Binaries\Win64\UnrealEditor-Cmd.exe C:\HyperTwist\UnrealHyperTwist\UnrealHyperTwist.uproject -unattended -nop4 -nosplash -NullRHI -log -stdout -FullStdOutLogOutput -AbsLog=C:\HyperTwist\UnrealHyperTwist\Saved\Logs\CubeDesk-Regression-Phase6R-M-Verify.log -ReportExportPath=C:\HyperTwist\UnrealHyperTwist\Saved\AutomationReports\CubeDesk-Regression-Phase6R-M-Verify -ExecCmds="Automation RunTests HyperTwist.CleanRoom.CubeDesk; Quit" -TestExit="Automation Test Queue Empty"`

Expected covered tests:

- `StatsShapeContract`
- `SolveRecordBoundary`
- `PackageChecklist`
- existing `Hyperspeedcube`, `MagicCube5D`, `Magic120Cell`, `MagicTile`, and `CubeDesk`
  regression suites

## Queue effect

This packet consumes the current `Phase 6R-M` implementation slice.

`HactarCE/Hyperspeedcube` remains only partially incorporated:

- landed now:
  - puzzle catalog contract
  - notation contract
  - replay-log serialization boundary
  - replay verification boundary
  - stats-shape and solve-record boundary
- still deferred:
  - puzzle-definition DSL authoring

The next clean move is:

- source-backed `Phase 6R-N` `HactarCE/Hyperspeedcube` puzzle-definition DSL
  preparation/control pass

Keep the future sequencing guards visible:

- keep the next widening slice on puzzle-definition DSL authoring rather than reopening broader
  runtime, analytics, publication, or shell ownership in the same packet
- keep generic hyper-runtime ownership first-party and broader than this donor slice
