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

## Purpose

This packet persists the broader template-signal `support-bias earned/suppressed` state into template selection provenance at launch time. That keeps later audits honest: template history, recap, and other selector-detail surfaces now read the stored at-launch support-bias posture instead of inferring it from later analytics drift.

## Scope

- add a compact template-signal support-bias snapshot under template selection provenance
- capture:
  - whether support-bias was `earned` or `suppressed` at launch
  - the chosen template's retained `confidence-lane-bias` outcome count
  - the chosen template's retained `broader-outcome-only` outcome count
- stamp that snapshot whenever the dashboard records a broader `TemplateScopedOutcomeSignal` analytics tie-break launch
- append the stored `at-launch support-bias` fragment through the shared selector-detail formatter used by live detail, template history, and recap
- correct broader-outcome decision-summary wording so it no longer claims the chosen template lacked retained support-bias when that bias simply did not decide the winner

## What landed

- `HyperTwistTrainingTypes.h`
  - added `EHyperTwistTrainingTemplateLaunchTemplateSignalSupportBiasSnapshotState`
  - added `FHyperTwistTrainingTemplateLaunchTemplateSignalSupportBiasSnapshot`
  - nested `TemplateSignalSupportBiasSnapshot` under `FHyperTwistTrainingTemplateLaunchSelectionProvenance`
- `HyperTwistCoachDashboardWidget.cpp`
  - added `BuildTemplateLaunchTemplateSignalSupportBiasSnapshot(...)`
  - broader analytics provenance now stamps the selected template's support-bias snapshot at launch
  - added shared selector-detail rendering for:
    - `at-launch support-bias earned`
    - `at-launch support-bias suppressed`
  - renamed the local broader-analytics decision flag from the stale confidence-snapshot name to the actual support-bias meaning
  - broader-outcome decision-summary text now says the winner launched without support-bias reinforcement deciding the outcome, rather than claiming the chosen template lacked retained support-bias entirely

## Product effect

- template history and recap now preserve the dashboard's at-launch support-bias posture for broader analytics launches
- selector-detail audits can distinguish:
  - what kind of broader template-signal support actually decided the winner
  - versus whether support-bias was merely present or suppressed at launch
- stored decision summaries no longer overstate the absence of retained support-bias when it existed but did not change the winner

## Acceptance criteria

- broader `TemplateScopedOutcomeSignal` launch provenance persists an `earned/suppressed` support-bias snapshot with both retained outcome counts
- shared selector detail shows the stored at-launch support-bias fragment in live detail, template history, and recap
- older runs without the new snapshot keep rendering without fabricated support-bias detail
- broader-outcome decision summaries avoid claiming the chosen template lacked retained support-bias when that state was simply non-decisive

## Validation checklist

1. full `Development Editor|Win64` build succeeds
2. confirm broader analytics provenance stamps `TemplateSignalSupportBiasSnapshot`
3. confirm shared selector detail renders stored `at-launch support-bias earned/suppressed`
4. confirm broader-outcome decision summaries use the corrected non-decisive wording
