trails/openspec/changes/hiking-foot-profile/specs/brouter-integration/spec.md
Ullrich Schäfer 5dd4968626 docs+openspec: prior-art research (Organic Maps, Endurain, wanderer) and 15 proposals
Add docs/inspirations.md as the durable record of the 2026-07-05/06
prior-art research — per-project learnings with source paths, canonical
credit lines, and the changes each spawned — and extend the
acknowledgment lists in philosophy.md/architecture.md (Organic Maps,
Endurain, wanderer).

New OpenSpec changes (proposal/design/specs/tasks each):
- Organic Maps: elevation-profile-hardening, gpx-parser-robustness,
  hiking-time-estimate, poi-index, hiking-foot-profile
- Endurain: account-export, activity-duplicate-review,
  fit-parsing-hardening, activity-locations, self-hosting-guide,
  activity-privacy-controls
- wanderer: federation-hardening, link-share-tokens
- credits-page (user-visible acknowledgments)

Updated in-flight changes with wanderer prior-art sections:
route-federation, route-discovery.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 07:23:00 +02:00

25 lines
1.5 KiB
Markdown

## MODIFIED Requirements
### Requirement: Profile selection
The Planner SHALL support selecting a routing profile that determines how BRouter computes the route.
#### Scenario: Switch routing profile
- **WHEN** a user changes the routing profile (available profiles: `hiking`, `trekking`, `fastbike`, `safety`, `shortest`, `car`)
- **THEN** the profile change syncs via Yjs and the routing host recomputes the route
#### Scenario: Profiles labeled by sport
- **WHEN** the profile selector is displayed
- **THEN** `hiking` is labeled as hiking and `trekking` is labeled as a cycling profile in every locale
## ADDED Requirements
### Requirement: Foot routing profile
The BRouter image SHALL provide a pedestrian routing profile named `hiking` that routes according to foot access rules (footpaths, stairs, and foot-permitted ways are usable; bicycle-specific preferences do not apply). The image build SHALL fail if the `hiking` profile is absent, and the profile SHALL emit the same extra WayTags as the patched stock profiles.
#### Scenario: Hiking profile routes on foot
- **WHEN** a route is requested with profile `hiking` between two points connected directly by a foot-only path
- **THEN** the returned route follows the foot path rather than a road detour
#### Scenario: Existing sessions unaffected
- **WHEN** a session whose Yjs document stores profile `trekking` is opened after the change
- **THEN** routing behavior is identical to before (trekking remains a valid profile)