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

## Purpose

This packet persists when the new historical decision-bias snapshot guard actually changes a tied broader template-signal winner. That keeps selector audits precise: dashboard detail, template history, and recap can now distinguish plain `DecisionSplitGuard` wins from wins that were specifically reinforced by earned-vs-non-earned decision-bias snapshot history.

## Scope

- add a distinct structured provenance marker for the historical decision-bias snapshot guard
- stamp that marker only when the earned-vs-non-earned decision-bias snapshot guard decides a broader template-signal tie
- surface that marker through the shared selector-detail path already used by live template launch detail, template history, and template-backed recap

## What landed

- `HyperTwistTrainingTypes.h`
  - added `EHyperTwistTrainingTemplateLaunchSelectionTemplateSignalSupportDecisionBiasSnapshotDecisionKind`
  - added `TemplateSignalSupportDecisionBiasSnapshotDecisionKind` to `FHyperTwistTrainingTemplateLaunchSelectionProvenance`
- `HyperTwistCoachDashboardWidget.cpp`
  - broader analytics provenance now stamps:
    - `TemplateSignalSupportDecisionBiasKind = DecisionSplitGuard` when the current reinforced-vs-plain snapshot-guard lane breaks the tie
    - `TemplateSignalSupportDecisionBiasSnapshotDecisionKind = DecisionBiasSnapshotGuard` only when the new historical earned-vs-non-earned snapshot history then breaks the remaining tie
  - shared selector detail now appends:
    - `template-signal decision-bias decision-split-guard`
    - and, when applicable, `template-signal decision-bias-snapshot decision-bias-snapshot-guard`
  - decision summary wording now distinguishes:
    - plain decision-split wins
    - from wins where the decision-split lane tied again and historical decision-bias snapshot history became the final decider

## Product effect

- live `[Template Launch]` detail now explicitly shows when a broader template-signal winner came from the historical decision-bias snapshot guard
- template launch history and recap preserve that distinction instead of collapsing all reinforced broader wins into the same `DecisionSplitGuard` reason

## Acceptance criteria

- broader template-signal selection provenance persists a distinct decision kind when the decision-bias snapshot guard changes the winner
- live detail, template history, and recap all show that retained decision kind through the shared selector-detail path
- plain `DecisionSplitGuard` wins remain distinguishable from history-reinforced wins

## Validation checklist

1. full `Development Editor|Win64` build succeeds
2. confirm `FHyperTwistTrainingTemplateLaunchSelectionProvenance` persists `TemplateSignalSupportDecisionBiasSnapshotDecisionKind`
3. confirm broader analytics provenance stamps that field only when the historical decision-bias snapshot guard decides the tie
4. confirm shared selector detail shows `template-signal decision-bias-snapshot decision-bias-snapshot-guard` only for those history-reinforced wins
