feat(map): historical burn scars charred polygon vector layer #128
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/burn-scars-layer"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Renders historical burn scar perimeters across Indonesian peatlands as a MapLibre vector tile layer (
burn_scars_historical.pmtiles) using deep charred burgundy styling (#3f1d24fill at 0.5 opacity,#7f1d1doutline at 1.5 width) and adds dynamic year filtering (2015, 2019, 2023, ALL) with toggle controls inLayerToggles.Closes #71
Principles applied
principle-model-the-domain: Typed year filter options against canonicalHistoricalBurnYearcontract (@/types/burn-scars) without duplicate enums.principle-boundary-discipline: Validated vector filter specifications and coerced numeric years through MapLibre expressions to prevent tile filtering runtime errors.principle-subtract-before-you-add: ReusedresolveTileUrl("burn_scars_historical")PMTiles resolver and unified layer toggle primitives without bespoke UI state containers.principle-test-behavior-not-implementation: Validated layer creation, charred color tokens, visibility changes, and year filter expressions against mock map abstractions across 309 passing tests.principle-prove-it-works: Verified cleanvp check, 45/45 passing test suites (309 tests), and successful Next.js production build.Executed playbook:
skill://poteto-mode/playbooks/feature.mdImpact
Verification proof
pnpm exec vp check: Pass (0 errors, 0 warnings across 147 files).pnpm test: All 45 test suites and 309 unit tests passed.pnpm build: Next.js production build compiled in 3.5s.node scripts/verify-pr.mjs: Verified against PR quality and architectural gate.Code Review & Ponytail Audit Summary: Historical Burn Scars Charred Polygon Vector Layer
1. Mechanical Verification Gate (
scripts/verify-pr.mjs)Closes #71.2. Subsystem Boundary & Discipline
src/components/controls/layer-toggles.tsx,src/components/dashboard/dashboard-client.tsx,src/components/map/layers/burn-scars-layer.tsx,src/components/map/map-view.tsx, and corresponding unit tests.3. Ponytail Audit & Implementation Quality
burn_scars_historical.pmtilesviaresolveTileUrl.HistoricalBurnYearcontract (@/types/burn-scars) without duplicate enums.4. Verification Gates
vp check: All 316 files correctly formatted, 0 warnings or lint errors.pnpm test: All 309 tests passed across 45 test files.next build: Turbopack production build succeeded cleanly.5. Acceptance Criteria
Decision: APPROVED for squash merge into
main.