# HyperTwist Phase 4 template-signal support bias guard packet

## Purpose

This packet feeds the new `broader-outcome-only` versus `confidence-lane-bias` support split back into tied dashboard analytics selection. A template no longer gets the extra broader template-signal bias just because its retained confidence-snapshot lane looks eligible; it now also needs enough stored `confidence-lane-bias` outcomes and those outcomes need to beat plain broader-outcome wins.

## Scope

- add a support-split guard helper for broader template-signal bias
- require the older confidence-snapshot bias to be earned first
- require minimum outcome history in both:
  - `confidence-lane-bias`
  - `broader-outcome-only`
- require the confidence-lane-bias bucket to beat the broader-outcome-only bucket on score or meaningful success / mistake improvement
- use that stricter helper in tied analytics selection
- surface the same `support-bias earned/suppressed` state in shared template analytics detail

## What landed

- `HyperTwistCoachDashboardWidget.cpp`
  - added `HasTemplateLaunchTemplateSignalSupportBias(...)`
  - the helper only returns true when:
    - `HasTemplateLaunchTemplateSignalConfidenceSnapshotBias(...)` already clears
    - the template has at least `2` confidence-lane-bias outcome runs
    - the template has at least `2` broader-outcome-only outcome runs
    - the confidence-lane-bias bucket beats broader-outcome-only on lane score or shows meaningful success / mistake improvement
  - `ResolveTemplateAnalyticsPreferenceDecision(...)` now uses this stricter support bias when breaking otherwise tied broader analytics outcomes
  - shared `template-signal support` analytics detail now appends:
    - `support-bias earned`
    - or `support-bias suppressed`
    - plus the stored bias / broader outcome counts
  - the older confidence-snapshot fragment now labels its state as `snapshot-bias` so the two guards are not conflated

## Product effect

- broader template-signal bias only reinforces future tied selections when stored confidence-lane-bias outcomes have enough depth and are outperforming plain broader-outcome wins
- templates with sparse or weaker confidence-lane-bias history no longer get that extra tie-break preference
- live `[Template Launch]` detail, template history, and recap now show both the snapshot-bias state and the stricter support-bias state

## Acceptance criteria

- tied analytics selection uses the stricter support bias instead of the older snapshot bias alone
- support bias requires minimum outcome history in both compared support buckets
- support bias only clears when confidence-lane-bias beats broader-outcome-only on score or meaningful quality deltas
- shared analytics detail exposes `support-bias earned/suppressed` with both bucket counts

## Validation checklist

1. full `Development Editor|Win64` build succeeds
2. confirm tied analytics selection now checks `HasTemplateLaunchTemplateSignalSupportBias(...)`
3. confirm the helper requires both bucket minimums and a positive lane comparison
4. confirm shared analytics detail shows both `snapshot-bias` and `support-bias`
