# HyperTwist Phase 4 template-signal decision-bias snapshot provenance packet

## Purpose

This packet stops template launch history and recap from recomputing the stricter template-signal decision-bias guard from whatever reinforced-vs-plain snapshot-guard analytics happen to exist later. It stores the dashboard's at-launch `decision-bias earned/suppressed` state directly in template selection provenance and reuses that retained snapshot when rendering selector detail.

## Scope

- add a persisted template-signal decision-bias snapshot to launch selection provenance
- stamp that snapshot whenever a broader `TemplateScopedOutcomeSignal` analytics tie-break builds selection provenance
- append the stored at-launch decision-bias snapshot to the shared selector-detail path used by dashboard template history and template-backed recap

## What landed

- `HyperTwistTrainingTypes.h`
  - added `EHyperTwistTrainingTemplateLaunchTemplateSignalSupportDecisionBiasSnapshotState`
  - added `FHyperTwistTrainingTemplateLaunchTemplateSignalSupportDecisionBiasSnapshot`
  - added `TemplateSignalSupportDecisionBiasSnapshot` to `FHyperTwistTrainingTemplateLaunchSelectionProvenance`
- `HyperTwistCoachDashboardWidget.cpp`
  - added `BuildTemplateLaunchTemplateSignalSupportDecisionBiasSnapshot(...)`
  - broader analytics selection provenance now stamps the current `decision-bias earned/suppressed` state with reinforced and plain snapshot-guard outcome counts
  - shared selector detail now renders:
    - `at-launch decision-bias earned ...`
    - or `at-launch decision-bias suppressed ...`

## Product effect

- template launch history and recap now preserve the dashboard's at-launch decision-bias posture instead of drifting with later reinforced-vs-plain snapshot-guard analytics
- selector audits can distinguish the persisted at-launch decision-bias state from the separately persisted `DecisionSplitGuard` winner-reason flag

## Acceptance criteria

- broader `TemplateScopedOutcomeSignal` selection provenance stores an at-launch decision-bias snapshot
- template launch history and recap read that stored snapshot back through shared selector detail
- the new selector detail uses retained reinforced vs plain snapshot-guard counts instead of recomputing them from current analytics

## Validation checklist

1. full `Development Editor|Win64` build succeeds
2. confirm `FHyperTwistTrainingTemplateLaunchSelectionProvenance` persists `TemplateSignalSupportDecisionBiasSnapshot`
3. confirm broader analytics provenance stamping calls `BuildTemplateLaunchTemplateSignalSupportDecisionBiasSnapshot(...)`
4. confirm shared selector detail shows `at-launch decision-bias earned ...` or `at-launch decision-bias suppressed ...`
