# HyperTwist Phase 4 dashboard template launch affordance packet

Created on `2026-05-06`

Status:

- first-party HyperTwist packet
- bounded Phase `4` dashboard template launch slice

## Purpose

This packet exposes one explicit template-backed launch affordance in the first-party coach dashboard.

The open tasks are:

- surface the highest-priority active review/recovery template in the dashboard itself
- make the corrected review-template launch lane reachable from the first-party dashboard UX
- keep the affordance narrow by reusing existing panel template caches and runtime launch wrappers

It is not:

- a dashboard redesign packet
- a template browser or editor packet
- a broader coach handoff rewrite
- a new template derivation packet

## Scope

Bounded lane:

- rank active session templates for dashboard launch priority
- prefer active review-plan, recovery, and coach-review templates
- add a dedicated dashboard template-launch status/detail section
- add one dashboard button that launches the preferred active template through `StartTrainingRunFromTemplate(...)`
- keep existing coach handoff, preview, and method-drill flows unchanged

Out of scope:

- adding multi-template pagination or selection UI
- changing template merge or derivation order in the repository/subsystem
- changing review-plan semantics
- changing coach queue or guidance decision logic

## Why this was the right next packet

The previous packet gave first-party panel and actor consumers parity with the runtime template APIs.

That still left one practical gap:

- the dashboard remained the main first-party operator surface
- but it still offered no direct session-template launch affordance
- so review-preferring templates were technically reachable yet still visually absent from the built-in dashboard workflow

The next honest move was therefore:

- keep template logic where it already lived
- rank the active template cache for one narrow review/recovery launch choice
- and surface that choice directly in the dashboard beside the existing handoff actions

## What landed

Primary code changes:

- `UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistCoachDashboardWidget.h`
  - added a Blueprint-callable dashboard action for starting the preferred active template
  - added dashboard text/button members for the new template-launch surface
  - added a private helper for selecting the preferred dashboard template launch target
- `UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistCoachDashboardWidget.cpp`
  - added narrow dashboard launch scoring for active session templates
  - added the new dashboard template-launch action and button handler
  - added a `[Template Launch]` status/detail section
  - added a direct template-launch button to the coach handoff action row
  - updates now describe and enable the highest-priority active review/recovery template when available

## Product effect

The first-party dashboard now makes the corrected template lane visible:

- operators can see whether an active review/recovery template is available
- the dashboard shows which active template won launch priority and why it is or is not launchable
- a direct dashboard button now launches that preferred template through the existing template-backed run path
- review-preferring templates now have a visible first-party dashboard entry point instead of living only behind lower-level calls

## Acceptance criteria

- dashboard surfaces a preferred active review/recovery template when one exists
- dashboard button launches that preferred template through `StartTrainingRunFromTemplate(...)`
- dashboard disables the template action while a live attempt or active run blocks launch
- full product build succeeds

## Validation checklist

1. build `UnrealHyperTwist.sln` / `UnrealHyperTwistEditor`
2. confirm the dashboard shows a `[Template Launch]` section
3. confirm the button label and enabled state track the preferred active template
4. confirm clicking the button launches the preferred active template-backed run

That is the packet.
