Wear-history freshness

Live calculator for the freshness tie-breaker in history_tool.get_freshness. Move the sliders. The score, the breakdown, and the verdict all update from the same formula the agent uses internally.
Times the agent has confirmed wearing this piece. After worn_count = 4 the frequency penalty stops getting worse — the much-loved blouse never gets punished forever.
Slide left to “never worn” (−1). The recency penalty only fires inside the 3-day window — past day 3, items climb back up.
1.00
FRESH Never worn — first pick when items tie.
0.40 (floor) 0.70 1.00 (never worn)

How the score is computed

Start at 1.00 (never worn) +1.00
Frequency penalty (worn_count = 0) −0.00
Recency penalty (—) −0.00
Clamp to [0.40, 1.00] no change
Final freshness score 1.00
In a tie between two equally-eligible items, the higher freshness wins.
Why this matters. Freshness contributes 0.4 × score to the agent's candidate scoring (_score_main_piece in styling_agent.py). That weighting is small enough never to override a formality mismatch, but big enough to break a tie. The 0.40 floor means a heavily- loved piece is never made ineligible — only outranked. See skills/wearly-styling-agent/wear-history-rules.md for the rule pack and tests/test_wear_history.py for the unit-test contract this sim is the visual companion to.