43 lines
2.2 KiB
Markdown
43 lines
2.2 KiB
Markdown
## Purpose
|
|
|
|
Canonical specification for news-image-relevance-and-fallbacks requirements synced from OpenSpec change deltas.
|
|
|
|
## Requirements
|
|
|
|
### Requirement: Image query fallback uses AI-focused defaults
|
|
When extracted image keywords are insufficient, the system SHALL use AI-focused default fallback terms.
|
|
|
|
#### Scenario: Empty keyword extraction
|
|
- **WHEN** keyword extraction yields no usable topic keywords
|
|
- **THEN** the system uses default fallback terms including AI-domain keywords (for example `ai`, `machine learning`, `deep learning`)
|
|
|
|
### Requirement: Generic AI image fallback is guaranteed
|
|
If provider lookups fail to return a usable summary image, the system SHALL use a generic AI-themed fallback image.
|
|
|
|
#### Scenario: Provider chain failure
|
|
- **WHEN** all configured image providers return no usable image
|
|
- **THEN** the system assigns a generic AI fallback image URL/path for summary image
|
|
|
|
### Requirement: Fallback behavior remains context-aware first
|
|
The system SHALL evaluate context-aware candidates before fallback and require refetched summary images to be relevant, non-redundant alternatives.
|
|
|
|
#### Scenario: Context-aware attempt precedes fallback
|
|
- **WHEN** summary image selection runs for a news item
|
|
- **THEN** the system first attempts provider queries from extracted context-aware keywords
|
|
- **AND** only falls back to generic AI image if candidate evaluation fails
|
|
|
|
#### Scenario: Finance-story relevance guard
|
|
- **WHEN** article topic contains finance/market terms (for example stocks, shares, plunge, earnings)
|
|
- **THEN** image selection rejects obviously unrelated animal/portrait outcomes
|
|
- **AND** system retries with finance-safe query refinements before final fallback
|
|
|
|
#### Scenario: Guarded fallback remains deterministic
|
|
- **WHEN** provider chain cannot return a relevant finance-safe image
|
|
- **THEN** system uses deterministic generic fallback that is topic-safe
|
|
- **AND** avoids unrelated imagery classes flagged by guardrails
|
|
|
|
#### Scenario: Refetch rejects unrelated and duplicate outcomes
|
|
- **WHEN** candidate images are evaluated during refetch
|
|
- **THEN** the system rejects candidates matching current image identity for the same article
|
|
- **AND** rejects clearly unrelated animal/pet imagery classes before final selection
|