Proposed changes (all with proposal, design, specs, tasks): - app-navigation (9 tasks) — nav bars for both apps - planner-landing-page (7 tasks) — standalone landing page - planner-multiplayer-awareness (13 tasks) — participants, cursors, names - changelog (13 tasks) — public changelog with "what's new" - transactional-emails (15 tasks) — magic link + welcome emails - planner-features (18 tasks) — no-go areas, notes, recovery, rate limits - komoot-import (23 tasks) — Komoot tour import - route-features (37 tasks) — sharing, multi-day, spatial, photos Also adds docs/old-trails-analysis.md with feature analysis from the older trails project. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1.5 KiB
1.5 KiB
ADDED Requirements
Requirement: Changelog listing page
The system SHALL provide a public /changelog page showing all entries newest-first.
Scenario: View changelog
- WHEN a user visits
/changelog - THEN all changelog entries are listed with date, title, and preview text
Requirement: Individual entry pages
Each changelog entry SHALL have a shareable page at /changelog/:date.
Scenario: View single entry
- WHEN a user visits
/changelog/2026-03-25 - THEN the full markdown content of that entry is rendered
Scenario: Social sharing meta
- WHEN a changelog entry page is loaded
- THEN Open Graph meta tags are set (og:title, og:description, og:url)
Requirement: Markdown file authoring
Changelog entries SHALL be authored as markdown files with YAML frontmatter in the repository.
Scenario: Add new entry
- WHEN a developer adds a
.mdfile to the changelog directory with date frontmatter - THEN it appears on the changelog page after the next deploy
Requirement: What's New indicator
The system SHALL show a visual indicator when there are changelog entries the user hasn't seen.
Scenario: New entry available
- WHEN a user visits the app and a changelog entry is newer than their last visit to /changelog
- THEN a dot or badge appears on the "Changelog" nav link
Scenario: Indicator dismissed
- WHEN a user visits the /changelog page
- THEN the indicator is dismissed (localStorage timestamp updated)