1## ADDED Requirements23### Requirement: Full-text task search4The system SHALL return tasks whose title or description match a free-text query, limited to projects the requesting user is a member of.56#### Scenario: Match in title7- **WHEN** a member searches for "invoice"8- **THEN** results include every accessible task whose title contains "invoice" or a stemmed variant such as "invoices"910#### Scenario: Inaccessible project11- **WHEN** a task matching the query belongs to a project the user is not a member of12- **THEN** that task is not included in the results1314#### Scenario: Empty query15- **WHEN** a member submits a query that is empty after trimming whitespace16- **THEN** the system responds with a 422 validation error1718### Requirement: Search result ranking19Search results MUST be ordered by relevance score, with ties broken by most recently updated first, and SHALL return at most 25 results per page.2021#### Scenario: Title match outranks description match22- **WHEN** task A matches the query in its title and task B matches only in its description23- **THEN** task A appears before task B2425#### Scenario: Tie broken by recency26- **WHEN** two tasks have the same relevance score27- **THEN** the more recently updated task appears first