Fast orientation for automated maintainers working in fab.
Read the task-specific note before changing map, routing, UI, data, or release behavior.
FAB has three destinations: Cemetery Map, Search Tours, and Burial Locator. The ARCE website is an external action. Cemetery Map is the default web route.
FABFG is a native shell over hosted FAB routes. Its WebViews should use
embed=fabfg, which hides web navigation so there is one visible tab owner.
src/App.jsx: destination and selected-record orchestrationsrc/app/routes.js: route and FABFG URL contractsrc/features/map/MapView.jsx: MapLibre lifecycle onlysrc/features/map/mapStyle.js: map sources, layers, cartography, and attributionsrc/features/locator/: burial worker/search/result deliverysrc/features/tours/: tour runtime and matchingsrc/features/fab/: Albany-specific configurationsrc/shared/: domain-neutral helpers
Use the owning module directly. Do not add barrel files, renderer adapters, UI frameworks, or duplicate state registries without a demonstrated need.
Source of truth:
src/data/Geo_Burials.jsonsrc/data/ARC_Sections.jsonsrc/data/ARC_Roads.jsonsrc/data/ARC_Boundary.json- tour files declared in
src/features/fab/tours.js
Generated:
public/data/Search_Burials.jsonsrc/data/TourMatches.jsonsrc/data/TourBiographyAliases.jsonsrc/features/map/generatedBounds.js
Run bun run build:data after source-data changes. Do not add shapefile,
GeoParquet, PMTiles, or local ortho pipelines without measured evidence.
bun run doctorbun run lintbun run testbun run buildbun run test:e2efor rendered product flows
Map changes must verify Tours, Locator search, tour selection, record deep links, section selection, desktop/mobile navigation, and the FABFG embedded boundary. Installed-iPhone acceptance remains separate from browser automation.
main is the only long-lived branch. Focused PRs target main; a green merge
deploys dist/ to GitHub Pages. Do not create staging or promotion branches.
GitHub publishing or human-directed comments require explicit user authorization.