The scraper prompt and the progress list were scaffolding for work that has since landed in the code. Left in the tree they describe a plan rather than what is there, which is worse than nothing to read. The generate binary joins atlas and crawl as something built rather than kept.
- commit
- 5f836d24caba756d35f8fa24a858f960d345d23a
- parent
- e0c67a0d1f9eb212057236f63285d11d56060751
- author
- Dami <dami.etoile@gmail.com>
| M | .gitignore | 1 | + |
| D | SCRAPER_PROMPT.md | 60 | ------------------------- |
| D | progress.md | 71 | ------------------------------ |
@@ -1,60 +0,0 @@
1-# Prompt: preserve MapGenie text labels and zones2-3-Use this prompt in the `gamemap` scraper repository:4-5-> Extend the FMG scraper/archive pipeline so downstream map clients can render6-> MapGenie text labels and geographic zones without inferring behavior from7-> category names.8->9-> First inspect the current full-map response and archive format. The raw10-> snapshots may already contain some or all of these fields; do not add a11-> second representation when preservation through the existing pipeline is12-> sufficient.13->14-> Preserve these category and location fields:15->16-> - `groups[].categories[].display_type` exactly as returned by MapGenie.17-> Known values are `marker` and `text`; retain unknown future values.18-> - `groups[].categories[].icon`, `id`, `title`, `visible`, and `locations`.19-> - `locations[].region_id`, including explicit `null`.20-> - Existing location `id`, `title`, `description`, `latitude`, and21-> `longitude`.22->23-> Preserve the map's complete `regions` collection. For every region and24-> nested subregion retain:25->26-> - `id`, `map_id`, `title`, `subtitle`, and `order`27-> - `parent_region_id`28-> - `center_x` and `center_y`, preserving nulls and numeric strings29-> - `features[]` as valid GeoJSON Features, including the complete30-> `geometry.type` and `geometry.coordinates`31-> - `subregions[]` recursively32->33-> Do not flatten away hierarchy, discard polygon holes, reduce coordinate34-> precision, calculate centers during scraping, or classify a category as text35-> merely because its title is `Area`. Behavior must be driven by36-> `display_type`.37->38-> Keep the archive deterministic: stable key ordering where the project39-> already guarantees it, no timestamps beyond the existing capture metadata,40-> and no changes to tile paths or content hashes for an unchanged response.41-> Update the JSON schema emitted beside snapshots so these fields are covered.42->43-> Add fixtures and tests proving:44->45-> 1. Marathon / Cryo Archive / Locations / Area retains46-> `display_type: "text"` and the `PANOPTICON` location with its original47-> latitude and longitude.48-> 2. All four Marathon `Area` categories remain text categories. The current49-> fixture set contains 40 such locations in total.50-> 3. Forza Horizon 6 / Japan retains its 10 titled regions, polygon geometry,51-> hierarchy, and the `region_id` on all 806 current locations.52-> 4. Polygon coordinates round-trip without precision loss.53-> 5. Pokémon FireRed/LeafGreen's category titled `Area` remains54-> `display_type: "marker"`; category names must not control rendering.55-> 6. Older snapshots lacking these optional fields still decode.56->57-> Document the downstream contract: `display_type: "text"` is rendered as a58-> floating title at the location coordinate; `marker` is rendered as an59-> ordinary pin; `regions[].features[].geometry` supplies optional zone60-> boundaries and region titles.@@ -1,71 +0,0 @@
1-Original prompt: Implement a toggleable geohash telescoping layer with keyboard and click navigation.2-3-- In progress: standard base32 hierarchy over the Atlas pixel extent.4-- Controls: G toggles; click or type descends; Escape ascends.5-- Selected cells should render all enabled annotations without decluttering.6-- Implemented the OpenLayers grid source/layer, base32 extents, cell promotion,7- dedicated geohash input, click navigation, G/Escape controls, and diagnostics.8-- Added per-cell annotation counts to diagnostics and refresh promotion when9- switching raster variants.10-- Verified root and click descent, typed input, editable-focus shortcut11- isolation, Escape ascent, and the pixel-map fourth level in Chromium.12-- Added recursively shaded ancestor sibling cells above ordinary annotations13- so all space outside the current cell is dimmed and directly traversable.14-- Verified the shaded context visually at `s4`; clicking the precision-minus-one15- `s5` sibling traversed laterally and changed promoted annotations from 17 to 3.16-- `go generate .`, frontend build, and `go test ./...` pass after the migration.17-- `go vet ./...` and `go build -tags dev .` pass.18-- Remaining: repository diff review only; migration changes intentionally remain19- uncommitted after the requested initial baseline commit.20-21-Follow-up: focus the map viewport by default so wheel zoom works before a click.22-23-- Added semantic autofocus and a post-initialization focus call that runs only24- once; later search, geohash, and selector focus remains user-controlled.25-- Verified a fresh page starts with `activeElement === "map"` and wheel zoom26- changes zoom from 1.94 to 2.94 without a preceding click.27-- Verified search retains focus and its entered value afterward; no new browser28- console errors.29-30-Follow-up: add a zone table of contents with direct navigation and per-zone31-highlighting.32-33-- Added a hierarchical, alphabetized zone index above the category legend.34-- Left-click fits the OpenLayers view to the selected zone.35-- Right-click toggles a persistent high-contrast zone highlight; the global36- zone control still hides or shows all boundary and title layers.37-- Visually verified navigation and highlight toggling on Clair Obscur's Ancient38- Sanctuary and on the nested Pokémon Celadon City / Celadon Gym hierarchy.39-- Verified right-clicking a zone restores the global zone layer when hidden,40- and the browser console remains free of errors.41-- Verified a map with no zones removes the index without stale entries.42-- `npm run build`, `go test ./...`, `go vet ./...`, and `git diff --check` pass.43-44-Follow-up: make map wheel zoom independent of sidebar focus and dim zone45-context around active highlights.46-47-- The map target now takes focus during wheel capture, so the same wheel event48- reaches OpenLayers immediately after a filter or zone-list interaction.49-- Highlighting one or more zones darkens unrelated zone geometry and labels;50- ancestors remain undimmed so a highlighted child is not shaded by its parent.51-- Pins outside the highlighted zone union are culled, while pins inside it are52- rendered in an independent declutter group. This gives the focused zones more53- annotation capacity without stacking every colliding pin. Selected and54- searched pins remain exempt from zone culling.55-- Explicitly enabled OpenLayers wheel interactions without its focus-only56- default. Browser verification confirmed a filter can retain focus while a57- wheel gesture over the map changes zoom from 1.646 to 2.646; the same gesture58- over the sidebar leaves map zoom unchanged.59-- Verified a two-zone focus reports 56 enabled annotations and renders a60- decluttered 40-annotation sample after fitting Crimson Forest. No browser61- console errors were reported.62-- Final `go generate .`, `go test ./...`, `go vet ./...`,63- `go build -tags dev .`, and `git diff --check` all pass.64-65-Follow-up: cap geohash precision at three characters and make terminal cells66-inspectable.67-68-- Geohash input and click descent now stop at three characters for every map.69-- All raster types permit two display-only overzoom levels. The source tile70- grid remains bounded at native detail, so overzoom reuses the final native71- tiles with each map's configured nearest-neighbor or smooth interpolation.