diff --git a/docs/arch/HYPERTWIST_PHASE6R_A_HYPERSPEEDCUBE_RUNTIME_ANCHOR_PREPARATION_PACKET_2026-05-20.md b/docs/arch/HYPERTWIST_PHASE6R_A_HYPERSPEEDCUBE_RUNTIME_ANCHOR_PREPARATION_PACKET_2026-05-20.md index 11dffce..c79c1bb 100644 --- a/docs/arch/HYPERTWIST_PHASE6R_A_HYPERSPEEDCUBE_RUNTIME_ANCHOR_PREPARATION_PACKET_2026-05-20.md +++ b/docs/arch/HYPERTWIST_PHASE6R_A_HYPERSPEEDCUBE_RUNTIME_ANCHOR_PREPARATION_PACKET_2026-05-20.md @@ -72,27 +72,94 @@ with the later adjacent retained rows still ordered behind it: ## Required result -The first actual `6R-A` widening packet should: +The source-backed control pass for this packet is now complete. -- use source-backed repo authority, not README-level queue posture +The first actual `6R-A` implementation packet should: + +- use the retained `0R-A` and `2R-A` authority surfaces plus the inspected `Hyperspeedcube` + source basis - define one bounded retained slice from `Hyperspeedcube` - keep the slice inside the ownership granted by `2R-A` -- name the exact first-party contracts to widen first +- widen only the first retained runtime-anchor contract that can stand on its own without dragging + in later neighbor families - explicitly state which neighboring retained rows stay closed in that packet -## Strongest first widening targets +## Source-backed retained basis -The first `6R-A` packet should prefer contract-first runtime-anchor surfaces over shell-level UI or -tooling: +The queue-head decision is now source-backed rather than README-only. + +Inspected retained donor basis: + +- `Cargo.toml` +- `crates/hyperpuzzle_core/src/lib.rs` +- `crates/hyperpuzzle_core/src/catalog/mod.rs` +- `crates/hyperpuzzle_core/src/catalog/builder.rs` +- `crates/hyperpuzzle_core/src/catalog/metadata.rs` +- `crates/hyperpuzzle_core/src/catalog/params.rs` +- `crates/hyperpuzzle_core/src/catalog/generator.rs` +- `crates/hyperpuzzlescript/src/lib.rs` +- `crates/hypuz_notation/src/lib.rs` +- `crates/hyperpuzzle_view/src/replay_event.rs` +- `crates/hyperpuzzle_log/src/verify.rs` +- `crates/hyperstats/src/lib.rs` + +Inspected first-party receiving basis: + +- `UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistCore/HyperTwistCoreTypes.h` +- `UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingTypes.h` +- `UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingCatalogImportTypes.h` +- `UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistBootstrap/HyperTwistContractLibrary.cpp` +- `UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingCatalogLibrary.cpp` +- `UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingLibrary.cpp` +- `UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingSubsystem.cpp` + +## Narrowed 6R-A slice decision + +The first widening slice is now fixed as: 1. puzzle catalog contract -2. puzzle-definition DSL boundary -3. notation grammar and serialization contract -4. replay-event taxonomy and verification contract -5. stats-shape / solve-record contract -The packet may include the minimum first-party runtime abstraction needed to bind those contracts -together for higher-dimensional puzzle ownership. +not as the broader multi-family runtime bundle. + +That narrowed slice should cover: + +- first-party hyper puzzle catalog ids +- first-party hyper puzzle catalog metadata: + - name + - aliases + - tags + - version +- registration boundaries for hyper puzzle definitions and families +- generator / variant parameter shape needed to refer to retained hyper puzzle definitions +- the minimum bridge from catalog entries into first-party puzzle-definition references + +The first packet should treat the current sample and heuristic hyper-definition handling as the +first-party gap to replace: + +- `UHyperTwistContractLibrary::MakeSampleHyperPuzzleDefinition(...)` +- `UHyperTwistTrainingLibrary::MakeDefinitionForCase(...)` +- `UHyperTwistTrainingSubsystem` puzzle-id / notation-profile heuristics + +## Deferred neighboring families + +The first `6R-A` implementation packet must keep these capability families closed: + +- puzzle-definition DSL parsing and authoring +- notation parsing and serialization +- replay-event taxonomy widening and replay verification +- stats-shape / solve-record widening +- broad view / simulation UX +- non-Euclidean topology ownership that stays with `MagicTile` +- `qbr` calibration / perception ownership +- `rubix-cube-solver` correction / explanation ownership + +Why this slice is first: + +- `hyperpuzzle_core::catalog` is the smallest upstream retained donor seam that already exposes + the needed identity, metadata, and registration shape +- the DSL, notation, replay, and stats crates all broaden scope or depend on the catalog boundary +- current first-party code already has thin hyper-definition refs and training-catalog import + patterns, but it does not yet own a real hyper puzzle catalog contract ## Out of scope for the first 6R-A packet @@ -118,20 +185,33 @@ Before widening starts, that packet should: The next explicit implementation-facing packet after this preparation slice should be: -- a bounded source-backed `Phase 6R-A` `HactarCE/Hyperspeedcube` runtime-anchor widening packet +- a bounded permissive `Phase 6R-A` `HactarCE/Hyperspeedcube` puzzle-catalog contract widening + packet The packet should be framed as: -- first-party runtime contract widening for hyper puzzle catalog, DSL, notation, replay - verification, and stats shape +- first-party runtime contract widening for hyper puzzle catalog only + +## Queue-adjacent legal sequencing guards + +Do not omit the already-recorded legal caveats when the neighboring retained rows later come up: + +- `Phase 6R-B` `kkoomen/qbr` + - confirm or replace the bundled `src/assets/arial-unicode-ms.ttf` before direct + redistribution if any packet copies or ships that asset +- `Phase 6R-C` `vivaansinghvi07/rubix-cube-solver` + - preserve or replace the bundled `frontend/lib/twistysim.min.js` with its upstream + provenance/license intact before redistribution if any packet copies or ships that dependency ## Acceptance criteria - the packet records why the first-party `Phase 4` / `Phase 5` hold is now consumed - the packet promotes `Hyperspeedcube` as the live queue head without widening the neighboring retained rows prematurely -- the packet states the strongest first owned contracts for `6R-A` +- the packet records that the first `6R-A` widening slice is puzzle catalog only - the packet states exact out-of-scope families for the first `6R-A` pass +- the packet keeps the `qbr` font and `rubix-cube-solver` bundled dependency caveats visible in + later queue sequencing ## Validation checklist diff --git a/docs/v6_5_deep_manual_pack/HyperTwist/ROADMAP.md b/docs/v6_5_deep_manual_pack/HyperTwist/ROADMAP.md index 8572f07..97e3135 100644 --- a/docs/v6_5_deep_manual_pack/HyperTwist/ROADMAP.md +++ b/docs/v6_5_deep_manual_pack/HyperTwist/ROADMAP.md @@ -14,8 +14,9 @@ Status update on `2026-05-20`: - `d4f4ad3` `Add primary coach orchestration entry lane` - `1860f14` `Add provider-backed recognition sidecar client` - `2473665` `Overlay imported training catalog packs and finite bundles` -- the current next bounded move is the source-backed `Phase 6R-A` `HactarCE/Hyperspeedcube` - runtime-anchor widening packet +- the generic source-backed `Phase 6R-A` `HactarCE/Hyperspeedcube` control pass is now consumed +- the current next bounded move is the bounded permissive `Phase 6R-A` + `HactarCE/Hyperspeedcube` puzzle-catalog contract widening packet - the repo-row implementation queue is now live from that `Phase 6R-A` entry point rather than waiting on another first-party packet @@ -77,8 +78,8 @@ Current routing truth: - active non-live implementation-board rows: `39` - retained benchmark, oracle, or clean-room-later rows outside the active implementation board: `9` -The next bounded move is the bounded `Phase 6R-A` `HactarCE/Hyperspeedcube` runtime-anchor -widening packet. +The next bounded move is the bounded `Phase 6R-A` `HactarCE/Hyperspeedcube` puzzle-catalog +contract widening packet. Queue interpretation after that packet: @@ -87,6 +88,13 @@ Queue interpretation after that packet: - `kkoomen/qbr` - `vivaansinghvi07/rubix-cube-solver` - the bounded speech-input / voice sidecar set +- keep the adjacent legal sequencing guards visible when those rows come up: + - `kkoomen/qbr` + - do not copy or redistribute `src/assets/arial-unicode-ms.ttf` without separate confirmation + or replacement + - `vivaansinghvi07/rubix-cube-solver` + - do not copy or redistribute `frontend/lib/twistysim.min.js` without preserving or replacing + its upstream provenance/license - keep the optional `Phase 3R-G` browser comparison lane deferred unless the landed primary browser spatial stack exposes a real gap