# HyperTwist Phase 3 schedule-policy feedback closure packet

Created on `2026-05-06`

Status:

- first-party HyperTwist packet
- bounded coaching-stack closure slice

## Purpose

This packet defines the next logical Phase 3 closure task after the linked-state rebuild closure packet landed.

The open task is:

- fold resolved live coach queue schedule-policy and execution summaries back into coach brief shaping
- close the remaining one-way gap where current queue policy/execution truth is derived, surfaced, and persisted, but does not directly refine the active coach brief in the same refresh pass

It is not:

- a new queue model
- a broad coaching heuristic rewrite
- a dashboard flow redesign
- a donor widening task

## Scope

Bounded lane:

- final first-party schedule-friction feedback closure between resolved coach queue state and coach brief shaping

Required result:

- the subsystem derives the current coach brief first, resolves queue state from that brief, derives live schedule-policy and queue-execution summaries, and then runs a second-pass coach brief refinement from those resolved summaries
- the feedback signal uses current first-party queue policy/execution truth, not only previously persisted memory-derived friction fields
- the resulting brief keeps existing launch/recovery action labels when they are already more specific than the feedback signal id

Out of scope:

- rebuilding queue state more than once per refresh
- changing queue creation heuristics
- changing generated-mode executor behavior
- changing external plugin copies

## Current owned product truth

These pieces are already live in first-party code:

- coach memory snapshot derivation from repository state
- coach brief derivation from learner/review/coach-memory inputs
- queue summary, queue state, queue horizon, schedule policy, and queue execution derivation
- dashboard surfaces for queue policy/execution truth

What was still missing:

- a same-pass feedback loop from the resolved live queue schedule/execution summaries back into the active coach brief
- explicit live schedule-policy pressure participating in coach signal ordering after queue state resolution

## Implementation target

The slice should do the following:

1. derive a live schedule-policy feedback signal from:
   - `FHyperTwistCoachSchedulePolicySummary`
   - `FHyperTwistTrainingCoachSessionQueueExecutionSummary`
   - current coach memory preference state
   - current coach brief
2. refine the active coach brief with that signal after queue state, horizon, policy, and execution summaries are resolved
3. preserve existing launch/recovery labels when the prior brief was already carrying a more specific schedule-facing action label

## Suggested file ownership

Primary edit surfaces:

- `UnrealHyperTwist/Source/UnrealHyperTwist/Public/HyperTwistTraining/HyperTwistTrainingCoachLibrary.h`
- `UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingCoachLibrary.cpp`
- `UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingSubsystem.cpp`

## Acceptance criteria

- a new second-pass schedule-policy feedback signal is available in first-party coach derivation
- `RefreshRepositoryViews()` refines `ActiveCoachBrief` from resolved queue policy/execution summaries in the same refresh pass
- the full UE build still succeeds

## Validation checklist

1. build `UnrealHyperTwist.sln`
2. confirm the new signal compiles through coach library and subsystem consumers
3. confirm the active coach brief now receives live schedule-policy / execution feedback after queue state resolution

That is the packet.
