First deployment
Some checks failed
quality-gates / lint-and-test (push) Has been cancelled
quality-gates / security-scan (push) Has been cancelled

This commit is contained in:
2026-02-13 09:14:04 -05:00
parent 0e21e035f5
commit 679561bcdb
128 changed files with 3479 additions and 120 deletions

View File

@@ -0,0 +1,19 @@
## MODIFIED Requirements
### Requirement: Deep-link loads article modal in open state
The system SHALL open the matching article modal when the page is loaded with a valid article permalink, regardless of whether the target is hero or feed content.
#### Scenario: Hero permalink opens parity modal
- **WHEN** a user lands with a permalink for the current hero article
- **THEN** the modal opens with the same structure and behaviors as feed-opened modal
- **AND** summary image render path is executed normally
#### Scenario: Escape closes deep-linked modal
- **WHEN** a modal opened from permalink is focused
- **THEN** pressing `Escape` closes the modal
- **AND** URL deep-link state is cleared consistently
#### Scenario: Invalid permalink fails safely
- **WHEN** permalink article id does not resolve to an existing item
- **THEN** modal is not opened
- **AND** main page remains fully usable

View File

@@ -0,0 +1,14 @@
## MODIFIED Requirements
### Requirement: Footer exposes policy navigation links
The system SHALL keep policy links while supporting sticky compact footer behavior and floating back-to-top control.
#### Scenario: Sticky compact footer
- **WHEN** user scrolls through content
- **THEN** footer remains sticky at viewport bottom
- **AND** footer height stays compact enough to avoid readability obstruction
#### Scenario: Floating back-to-top island
- **WHEN** page is scrolled beyond initial viewport
- **THEN** a floating back-to-top control is visible
- **AND** activating it returns viewport to top smoothly

View File

@@ -0,0 +1,16 @@
## MODIFIED Requirements
### Requirement: Infinite scroll news feed
The system SHALL display feed cards without redundant per-card permalink text link when primary CTA and source link are present.
#### Scenario: Card chrome remains minimal
- **WHEN** feed cards are rendered
- **THEN** redundant small "Link" affordance is not shown
- **AND** card still exposes required source and TL;DR interactions
### Requirement: Hero block display
The system SHALL maintain hero-to-modal behavior parity with feed cards.
#### Scenario: Hero-origin modal consistency
- **WHEN** modal opens from hero context (including permalink-triggered entry)
- **THEN** modal image, content, and close controls behave consistently with feed-origin modal flows

View File

@@ -0,0 +1,14 @@
## MODIFIED Requirements
### Requirement: Fallback behavior remains context-aware first
The system SHALL apply stricter relevance guardrails before accepting summary images for finance/market stories.
#### 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

View File

@@ -0,0 +1,14 @@
## MODIFIED Requirements
### Requirement: Core layout is device-agnostic and responsive
The system SHALL preserve responsive readability while enabling sticky header and footer surfaces.
#### Scenario: Sticky shrinking glass header
- **WHEN** user scrolls downward
- **THEN** header remains sticky with slight height reduction, subtle elevation, and glass blur effect
- **AND** controls remain readable and usable at all breakpoints
#### Scenario: Sticky footer does not overlap core reading zones
- **WHEN** footer is sticky
- **THEN** content remains readable and interactive controls are not obscured
- **AND** mobile/tablet/desktop layouts stay overflow-safe

View File

@@ -0,0 +1,22 @@
## MODIFIED Requirements
### Requirement: Modal/footer exposes minimal icon-based share actions
The system SHALL provide visible, accessible icon-only share actions for article permalinks.
#### Scenario: Light-theme icon visibility
- **WHEN** the site is in light mode
- **THEN** share icons remain visibly distinguishable with accessible contrast
- **AND** icon controls remain keyboard focusable
#### Scenario: Copy-link share action
- **WHEN** a user activates the copy-to-clipboard share control
- **THEN** the article permalink is written to clipboard
- **AND** action succeeds without navigating away
### Requirement: Footer supports env-driven GitHub and contact links
The system SHALL render contact email link when `CONTACT_EMAIL` is configured.
#### Scenario: Contact link visible when configured
- **WHEN** `CONTACT_EMAIL` is present in frontend config payload
- **THEN** footer shows the contact email affordance
- **AND** hover microcopy behavior remains enabled