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>
49 lines
2.1 KiB
Gherkin
49 lines
2.1 KiB
Gherkin
Feature: Curator's X-ray of the selection model
|
|
As a curator
|
|
I want to turn the installation's dials against a representative catalog and see
|
|
the full ranked pool the nearest-match algorithm picks from
|
|
So that I can judge whether the tagging rubric and selection surface fitting pieces
|
|
|
|
Background:
|
|
Given the simulator is loaded with the synthetic fixture catalog
|
|
And the fixture catalog spans the brain plane and the mood plane across all content modes
|
|
|
|
Scenario: A pick is always accompanied by its candidate pool
|
|
When I set the mode to "av" and the dials to left=1 right=3 dark=4 light=1
|
|
Then a piece is picked
|
|
And the ranked pool is shown nearest-first with each candidate's distance
|
|
And the picked piece is the rank-1 candidate in the pool
|
|
|
|
Scenario: Turning Dark up while Light stays low pulls the pick toward somber pieces
|
|
Given the mode is "av" and the dials are left=2 right=2 dark=0 light=0
|
|
When I raise the Dark dial from 0 to 4
|
|
Then the picked piece's dark coordinate is higher than before
|
|
And the pool's nearest candidates cluster toward the high-dark / low-light region
|
|
|
|
Scenario: Turning a dial moves the knob point on the coordinate map
|
|
Given the mode is "av"
|
|
When I change any of the Left, Right, Dark, or Light dials
|
|
Then the knob point on the brain or mood grid map moves to the new coordinate
|
|
And the candidate dots reflect the new neighborhood
|
|
|
|
Scenario: None mode is the void / rest state
|
|
When I set the mode to "none"
|
|
Then no piece is picked
|
|
And the pool is empty
|
|
And the screen shows the void / rest state
|
|
|
|
Scenario: A+V mode falls back to audio and video when av records are thin
|
|
Given the fixture catalog has fewer than the pool size of native "av" records near the knob point
|
|
When I set the mode to "av"
|
|
Then the pool includes "audio" and "video" records so it is not starved
|
|
|
|
Scenario Outline: Each content mode restricts the pool to eligible records
|
|
When I set the mode to "<mode>"
|
|
Then every candidate in the pool is eligible for "<mode>"
|
|
|
|
Examples:
|
|
| mode |
|
|
| audio |
|
|
| video |
|
|
| av |
|