Skip to content

Commit d22ef5e

Browse files
committed
Document the "Public" naming trap: read-only viewer, not a visibility property
Caught live while explaining PublicDistrictLayers/PUBLIC_SOURCE_ID during unrelated work on feat/ftv-proportionality-test: "Public" reads as an access-control term (implying a "private district" counterpart that doesn't exist) when it actually means "the read-only share-link/Evaluate viewer," as opposed to MainMap/CoiMap's interactive editor. Added to map-rendering/SKILL.md's Vocabulary section (the terminology-seam trigger) and docs/overview.md's page-composition paragraph, which was also missing PublicMap from the MapPage.tsx composition entirely.
1 parent fff5460 commit d22ef5e

2 files changed

Lines changed: 16 additions & 5 deletions

File tree

agent-skills/map-rendering/SKILL.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@ user-invocable: false
2727
(`ACTIVE_TOOLS.SHATTER`, ~45 files); the toolbar label is "Break"; user copy says
2828
"break down into blocks"; the pill component is `BlockModePill`; the tool is gated
2929
behind "Super Draw" mode. Grepping the UI word "break" misses the implementation.
30+
- **"Public" means "read-only viewer," not a permissions/visibility property**:
31+
`PublicMap`/`PublicDistrictLayers`/`PUBLIC_SOURCE_ID` render a plan's already-computed
32+
district geometry (`GET /document/{id}/stats`) for the share-link/Evaluate view;
33+
`MainMap` is the interactive block-level editor, picked instead via `isPublicPage` in
34+
`MapPage.tsx`. There is no "private district" — reading "Public" as an access-control
35+
term is the trap.
3036

3137
## Where the rest lives
3238

docs/overview.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,16 @@ keys. Cross-store reactions are mostly wired in one place (`store/subscriptions.
102102
Assignments buffer during a gesture (`accumulatedAssignments`) and ingest once at
103103
gesture end — one coalesced write, one undo entry.
104104

105-
Page composition: `components/MapPage/MapPage.tsx``MainMap.tsx` (district mode) /
106-
`CoiMap.tsx` (community mode) over a shared `MapContainer.tsx` shell. Layer components
107-
live under `components/Map/PolygonLayers/`; layer/style constants under
108-
`constants/map/`; the render subscriber is `utils/map/mapRenderSubs.ts`; MapLibre event
109-
wiring is `utils/events/mapEvents.ts`.
105+
Page composition: `components/MapPage/MapPage.tsx` picks, via `isPublicPage`, between the
106+
interactive editor — `MainMap.tsx` (district mode) / `CoiMap.tsx` (community mode) — and
107+
`PublicMap.tsx`, the read-only map shown on a plan's share-link/Evaluate page. "Public"
108+
here means "read-only viewer," not a visibility/permissions property, and has no
109+
"private" counterpart; `PublicMap` renders pre-aggregated district geometry fetched from
110+
`/document/{id}/stats`, not the live block-level assignment state the editor works from.
111+
All three sit over a shared `MapContainer.tsx` shell. Layer components live under
112+
`components/Map/PolygonLayers/`; layer/style constants under `constants/map/`; the render
113+
subscriber is `utils/map/mapRenderSubs.ts`; MapLibre event wiring is
114+
`utils/events/mapEvents.ts`.
110115

111116
## Saving and syncing
112117

0 commit comments

Comments
 (0)