9cb4fb62d8
Discovery session 0003. Web-based, Docker-on-localhost simulator to feel the
selection model: real hef.selection wired to a synthetic fixture catalog, with
a full-transparency X-ray (ranked pool + distances + brain/mood grid maps) and
live model knobs (weights, pool size, approved-only).
- docs/superpowers/specs/2026-06-04-experience-simulator-design.md
- features/{selection_xray,model_knobs,fixture_catalog,simulator_service}.feature
- one additive hef.selection.ranked_candidates() change planned (single source of truth)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
33 lines
1.6 KiB
Gherkin
33 lines
1.6 KiB
Gherkin
Feature: Feeling the model's own parameters
|
|
As a curator tuning the algorithm, not just the curation
|
|
I want to adjust the selection model's parameters live
|
|
So that I can feel how weighting, pool size, and the approved gate reshape picks
|
|
|
|
Background:
|
|
Given the simulator is loaded with the synthetic fixture catalog
|
|
And the dials are set to a fixed knob position with mode "av"
|
|
|
|
Scenario: Reweighting the brain plane can change the winner
|
|
Given the brain and mood weights are equal
|
|
And the current pick is recorded
|
|
When I increase the brain weight relative to the mood weight
|
|
Then the ranked pool may reorder so that brain-plane distance dominates
|
|
And the picked piece can differ from the recorded pick
|
|
|
|
Scenario: Pool size controls how many candidates are shown and shuffled
|
|
When I set the pool size to 1
|
|
Then the pool shows exactly the single nearest candidate
|
|
When I set the pool size to 5
|
|
Then the pool shows up to the five nearest candidates
|
|
|
|
Scenario: Approved-only narrows the pool to human-blessed records
|
|
Given the fixture catalog contains both "proposed" and "approved" records
|
|
When I turn the approved-only toggle on
|
|
Then every candidate in the pool has review_status "approved"
|
|
When I turn the approved-only toggle off
|
|
Then "proposed" records may appear in the pool again
|
|
|
|
Scenario: Default model parameters reproduce the shipped selection behavior
|
|
Given the weights are equal, the pool size is the default, and approved-only is off
|
|
Then the picked piece matches what hef.selection.select would return for the same dials
|