README: a one-map build needs fix:sri; a snippet is pasted whole; the agent table names maps honestly

Found re-reading 10be43d2b:
- "BUNDLE=<map> bun x vite build" alone leaves the map's pages and the manifest pinned to the OLD hash,
  so the map's own page and any pasted snippet refuse the new file. It is now followed by bun run fix:sri.
  Measured two-sided: one byte added to a pinned map's built file made check:sri FAIL (4 of its pages
  disagreed); fix:sri rewrote them and the manifest, and check:sri PASSED. The probe files were restored.
  A one-map build rewrote only that map's .js, never the manifest or a page.
- "A snippet is two parts" was wrong. The snippet also preloads the map engine and sets
  window.MAP_APP_API_URL, so the README now says to paste it whole and names what it does.
- The agent table:
  - Cities with Internet works by country (internet use), so it moved from "Reach a city" to
    "Plan outreach". The production maps work by country and region; city-level planning (Prayer Walk
    Planner) is experimental, and the row says so.
  - Maps carry the names the app shows (Simple Research, UPG 100 List).
  - "Frozen" was a tonight-only rule; the line now reads "leave them as they are unless your task is one
    of them".
This commit is contained in:
Doxa Maps 2026-09-29 21:00:07 +00:00
parent 87f10ceda0
commit 225eadef11

View file

@ -76,17 +76,20 @@ bun run dev # open the address it prints: that page is the P
**2. Build.** The built maps are already in the repo. After a change, rebuild just that map, or all of them:
```bash
BUNDLE=<map> bun x vite build # one map (seconds)
BUILD_ALLOW=1 bun run build # every map (~4 min); the output is public/dx-maps/
BUNDLE=<map> bun x vite build && bun run fix:sri # one map, then refresh its integrity hashes
BUILD_ALLOW=1 bun run build # every map (~4 min); the output is public/dx-maps/
```
When the DX Life site's repo sits next to this one (`../doxa-life`), the full build also copies the maps into
Skip `fix:sri` after a one-map build and the map's own page and any pasted snippet refuse the new file, because
they still carry the old integrity hash. When the DX Life site's repo sits next to this one (`../doxa-life`), the full build also copies the maps into
its `public/`. That is the one path set in `vite.doxa-maps-build-config.json` (`dropin.dest`); nothing else on
your computer is searched. No site there: the step says so and skips. `DOXA_DROPIN=off` turns it off, and
`bun run dropin` copies on demand.
**3. Embed a map.** Every map has its own embed script: its `embed.script` in `public/dx-maps/manifest.json` (an
`embed.iframe` too). A snippet is two parts, the map's script and its tag:
`embed.iframe` too). Paste it whole. It preloads the map engine, points the map at its data
(`window.MAP_APP_API_URL`), loads the map's script with its integrity hash, and places the map's tag. The two
lines at its core:
```html
<script src="/dx-maps/doxa-simple-map/doxa-simple-map.js" integrity="sha384-…" crossorigin="anonymous"></script>
@ -104,10 +107,10 @@ people groups of the world. When you work here, the goal is one of these:
| Goal | The production maps that serve it |
|---|---|
| **Reach a city** | Cities with Internet (`cities-internet`); Regions (`regions-dashboard`) and the country map (`country-map`) |
| **Mobilize for people groups** | Big Picture (`dashboard-plus-grid`); Research Map + Grid (`research-map-plus-grid`) |
| **Plan outreach** | Gospel Resources (`gospel-resources`): what exists in each language; Regions, by country |
| **Pray: packets and prayer resources** | UPG-100 (`my-upg-100-list`): prayer packets; Prayer Progress (`doxa-simple-map`) |
| **Reach a city** | Regions (`regions-dashboard`) and the country map (`country-map`): the people groups of each country. The production maps work by country and region; city-level planning (Prayer Walk Planner) is still experimental |
| **Mobilize for people groups** | Big Picture (`dashboard-plus-grid`); Simple Research (`research-map-plus-grid`) |
| **Plan outreach** | Gospel Resources (`gospel-resources`): what exists in each language; Cities with Internet (`cities-internet`): whether a group can be reached online |
| **Pray: packets and prayer resources** | UPG 100 List (`my-upg-100-list`), Regions and Simple Research: posters and prayer packets; Prayer Progress (`doxa-simple-map`) |
- **Start with the skill:** [`skills/plugin-designer`](./skills/plugin-designer) teaches the patterns, the shared
library and the checks.
@ -115,7 +118,8 @@ people groups of the world. When you work here, the goal is one of these:
every other plugin.
- **Land on `development`**, one change at a time through the lock, with `bun run gates:pre` passing. `main` is
production and moves only on a publish.
- These 8 maps are in production. The experimental maps are frozen: leave them as they are.
- These 8 maps are in production. The other maps are experimental: leave them as they are unless your task is one
of them.
*Click any ▸ to read more. Everything below is folded so you can scroll the pictures first.*