Conjured items degrade twice as fast: -2 before sell-by, -4 after,
never below 0. Registered in ItemUpdaterFactory.Default() and resolved
by the Conjured prefix rule, so the whole Conjured family is covered.
The four Conjured spec tests go green. The ThirtyDays approval snapshot
now shows the intended Conjured-only diff; it is re-approved in the
next commit.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
GildedRose now resolves each item to its strategy and applies it; all
rules live in the strategies. The original one-arg constructor keeps
working by delegating to ItemUpdaterFactory.Default(); a second
constructor allows injecting a custom IItemUpdaterFactory.
No behaviour change: the ThirtyDays approval snapshot and all
existing-type spec tests pass unchanged.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Introduce the Strategy + Factory design: IItemUpdater (Name + Update),
an ItemUpdaterBase with the single shared [0,50] clamp helper, stateless
strategies for normal/Aged Brie/Sulfuras/Backstage, and a factory with
two-tier resolution (exact name via case-insensitive dictionary, then
Conjured prefix rule, then the default fallback).
Not wired into GildedRose yet; no behaviour change. The Conjured
strategy itself arrives in the feature commit.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Conjured items must degrade twice as fast: -2 before sell-by, -4 after,
never below 0. Red on purpose (TDD) - the legacy code still treats
Conjured as a normal item; they go green once ConjuredItemUpdater lands.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Green against the legacy implementation: normal items (-1/-2, floor 0),
Aged Brie (+1/+2, cap 50), Sulfuras (immutable at SellIn 0 and -1),
Backstage passes (+1 / +2 at <=10 / +3 at <=5, 0 after concert, cap 50).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Approve the Foo approval snapshot and the pre-existing ThirtyDays
snapshot as the locked-down record of current (Conjured-still-broken)
behaviour. Replace the failing fixme placeholder with a passing
sanity check so the suite is fully green before refactoring.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Fixes issue where newer versions of texttest produce .exe files instead of .py files. Updated start_texttest_from_python.bat to use texttestc.exe instead of texttestc.py. Also enhanced documentation for Windows users with recommendations for tools like Meld and fc.