Back to roadmap
US-1203

Saved Filters

IN PROGRESS
Agent working · step 4 of 6Last verified 4 min ago
User story
filterspersistencesharing
Channels & integrations · auto-detected from this story
In-app
Acceptance criteria
2 / 3 verified
Each scenario is run as a Playwright test by the QA agent
Scenario 1: Save a filter Verified
Givenan active set of order filters
Whenthe operator saves it with a name
Thenit appears in their saved filters list
Scenario 2: Apply a saved filter Verified
Givena previously saved filter
Whenthe operator selects it
Thenthe order list updates to match the saved query
Scenario 3: Share a filter Failing
Givena saved filter
Whenthe operator copies its link
Thena teammate opens the same filtered view, read-only
QA agentPlaywright· ran 4 min agoView run
Expected the assertion to hold · Actual: mismatch
Likely cause: Retry & Fallback Flow
Spec quality · craft learnings applied
7/10 passing

Generalisable rules the agent applies to every spec — they grow from review feedback & flaky scenarios, and act as a self-improving linter.

Assert one outcome per scenarioAtomicity
Each scenario asserts a single outcome
One trigger per scenarioAtomicity
Every scenario has exactly one trigger
Keep implementation out of Given/When/ThenClarity
Scenarios describe behaviour, not implementation
Make every outcome machine-checkableTestability
Outcomes are concrete and observable
Bound time-sensitive outcomesTestability
Time-sensitive outcomes carry a bound
Pair every happy path with a failure pathCoverage
No failure or edge-case scenario — add the unhappy path
Happy-path-only specs ship bugs; the failure modes are where the real spec lives.
Assert the negative spaceCoverage
At least one scenario asserts the negative
State actor, capability and benefitClarity
Story is missing a clear actor/benefit
“As a [role], I want [capability], so that [benefit]” — a missing benefit means the goal is unclear.
One promise per storyScope
The story promises more than one capability — consider splitting
If the “I want …” clause has an “and” joining two capabilities, split it into two stories.
Keep the slice thinScope
3 scenarios — a thin, shippable slice
Learnings applied · from the library
Related specs · graph neighbours