bulk commit changes!

This commit is contained in:
2026-02-13 02:32:06 -05:00
parent c8f98c54c9
commit bf4a40f533
152 changed files with 2210 additions and 19 deletions

View File

@@ -0,0 +1,27 @@
## ADDED Requirements
### Requirement: Hero primary action opens in-site TL;DR summary
The homepage hero primary CTA SHALL open the in-site summary modal for the hero article instead of navigating off-site.
#### Scenario: Hero CTA opens summary modal
- **WHEN** a user clicks the hero primary CTA
- **THEN** the system opens the summary modal for the current hero article
- **AND** no external navigation is triggered by that CTA
### Requirement: Hero source link remains available as secondary action
The hero section SHALL keep an explicit secondary source-link action for external navigation.
#### Scenario: Source link navigates externally
- **WHEN** a user clicks the hero source link
- **THEN** the system opens the article source URL in a new tab
### Requirement: Hero metadata readability over images
Hero metadata (`LATEST`, relative time, headline, and summary) SHALL remain visually legible across bright and dark images on desktop and mobile.
#### Scenario: Bright image background
- **WHEN** the hero image contains bright regions under metadata text
- **THEN** overlay and text styles preserve readable contrast for metadata and headline blocks
#### Scenario: Mobile viewport readability
- **WHEN** the hero renders on a mobile viewport
- **THEN** metadata and title remain readable without overlapping controls or clipping

View File

@@ -0,0 +1,33 @@
## ADDED Requirements
### Requirement: Modal width supports comfortable desktop reading
The summary modal SHALL render with a desktop width that is approximately half of viewport width or larger when space allows, while remaining responsive on small screens.
#### Scenario: Desktop width expansion
- **WHEN** the modal opens on desktop viewport widths
- **THEN** the modal content area renders wider than the previous narrow baseline
- **AND** text blocks are readable without excessive line wrapping
#### Scenario: Mobile responsiveness
- **WHEN** the modal opens on small mobile viewport widths
- **THEN** modal width remains fully usable without horizontal overflow
### Requirement: Modal height supports near-full viewport scrolling
The summary modal SHALL use near full-height viewport behavior when content overflows.
#### Scenario: Overflowing summary content
- **WHEN** summary content exceeds modal viewport height
- **THEN** modal body remains scrollable with close controls accessible
- **AND** modal container uses near full viewport height constraints
### Requirement: TL;DR loading placeholder is explicit
The modal SHALL show a horizontal shimmer placeholder for TL;DR content while TL;DR bullets are not yet available.
#### Scenario: TL;DR pending state
- **WHEN** the summary modal is open and TL;DR bullet data is pending
- **THEN** the system displays a low-height horizontal shimmer placeholder
#### Scenario: TL;DR loaded state
- **WHEN** TL;DR bullet data becomes available
- **THEN** shimmer placeholder is removed
- **AND** TL;DR bullet list is rendered

View File

@@ -0,0 +1,23 @@
## ADDED 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 attempt context-aware keyword retrieval before any generic fallback image is selected.
#### 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 these attempts fail