doxa-maps/documentation
Doxa Maps cc65f40c1e Gate hygiene: three gates:post reds on development, and two things that hid failures
- check:no-orphan-gates stopped at internal/check-grid-merge-defaults.mjs, which had no script. It
  asserts defaults of three grid props that are not on development (the grid merge has not landed),
  so it is registered ON DEMAND with that reason, not chained red. Past that first arm, its chain arm
  found check:grid-image-loading and check:retry-fetch run by no chain; both depend only on code and
  pass in under 300 ms, so they join gates:pre.
- A tracked vite.config.js.timestamp-*.mjs (395 KB, eight absolute paths) failed check:no-abs-paths.
  Removed, and ignored at the source: vite writes one beside its config while it bundles it.
- check:library-index: documentation/reference-library-index.md regenerated for retryFetch.js.
- run-parallel printed a failed step's output only with --verbose: the unbraced else bound to the
  inner if. Braced; a failing step now prints why.
- The Pages workflow ran bun run build without BUILD_ALLOW=1, so build-lock refused it with exit 75
  and the workflow ran no gate at all. A CI runner is the only builder on its machine; it opts in.
2026-09-29 18:35:37 +00:00
..
architecture Delete useMapPacket.js: nothing imports it since both packets print through the shared HTML renderer 2026-09-28 06:44:14 +00:00
assets consolidate docs into documentation/ and deployment shells into deployment/ 2026-09-21 23:23:23 +00:00
contributing README: lead with the objectives, showcase the Research Gallery, teach the agent swarm 2026-09-24 18:34:02 +00:00
needs-eyes Docs and the plugin-designer skill: keep the reason, drop the speaker (6 lines) 2026-09-29 09:48:51 +00:00
readme-images README: show Rudder running as a desktop app 2026-09-29 01:32:16 +00:00
screenshots consolidate docs into documentation/ and deployment shells into deployment/ 2026-09-21 23:23:23 +00:00
CLOUD-DEVELOPMENT-ENVIRONMENT.md A laptop that follows the table says when it needs credentials, and the last main defaults say development 2026-09-29 00:59:14 +00:00
CONTRIBUTING.md CONTRIBUTING: source and build output as two commits in one push (not two pushes), with the two exemptions 2026-09-28 13:05:56 +00:00
DEPLOY.md README + DEPLOY: no links into private repos; the web folder's size is measured by a gate 2026-09-29 05:26:25 +00:00
develop-a-plugin-and-see-it-live.md README: three outputs, not five methods; a Languages section; screenshot gates see every shot again 2026-09-25 19:40:03 +00:00
explanation.md consolidate docs into documentation/ and deployment shells into deployment/ 2026-09-21 23:23:23 +00:00
how-to.md README and docs: a plugin's own page is /__leaf/<plugin>/<profile>, and auto is MapLibre 2026-09-29 11:04:22 +00:00
HOWTO-build-the-desktop-app.md bun run desktop:build <plugin> packages a desktop plugin as an app; check:targets keeps non-web plugins out of the web build 2026-09-28 06:44:14 +00:00
HOWTO-join-the-table.md README, HOWTO and .env.example: a changed port takes effect when bun run dev restarts (V8, third fresh reader) 2026-09-29 11:56:47 +00:00
HOWTO-which-gates-need-a-browser.md documentation: the browser guard, and ask the repo rather than grepping 2026-09-28 09:07:30 +00:00
PRESET-PLUGIN-STANDARD.md A preset keeps its profile's defaults: instance props merge over the meta config instead of replacing it 2026-09-28 03:12:45 +00:00
README-embed-example.md consolidate docs into documentation/ and deployment shells into deployment/ 2026-09-21 23:23:23 +00:00
README-embed-gospel-resources.md The map learned to name peoples, not just their languages 2026-09-27 02:40:12 +00:00
README-SECTION-3-cli-commands.md Docs: an iframe updates itself; a script embed's integrity hash pins the bytes, so re-copy it after each release 2026-09-26 02:07:14 +00:00
README.md The embed contract, written down for partners 2026-09-26 17:24:55 +00:00
reference-capability-exemplars.md Three post-landing gates green again: the library index, the capability table, Path2D 2026-09-29 02:35:35 +00:00
reference-library-index.md Gate hygiene: three gates:post reds on development, and two things that hid failures 2026-09-29 18:35:37 +00:00
reference-universal-props.md List names speak the reader's language: listLabel and listDefinition 2026-09-26 08:39:52 +00:00
reference.md README and docs: a plugin's own page is /__leaf/<plugin>/<profile>, and auto is MapLibre 2026-09-29 11:04:22 +00:00
THIRD-PARTY.md Docs and the plugin-designer skill: keep the reason, drop the speaker (6 lines) 2026-09-29 09:48:51 +00:00
tutorial.md Docs: every build line a reader copies now carries BUILD_ALLOW=1 2026-09-25 03:07:52 +00:00
vendored-font-noto-serif-devanagari.md Move the vendored font's README out of the served folder 2026-09-24 04:15:26 +00:00
vendored-fonts.md Every vendored font ships its own licence 2026-09-28 01:30:47 +00:00
why.md consolidate docs into documentation/ and deployment shells into deployment/ 2026-09-21 23:23:23 +00:00

documentation/ — pick your path

        "what is this?"          "teach me"        "how do I …?"       "look it up"      "all the detail"
             │                       │                   │                  │                  │
         why.md  ──────────►  tutorial.md  ────►  how-to.md  ────►  reference.md  ───►  architecture/
        (2 min, 1 diagram)   (first map)         (task recipes)     (tables)           (contracts)
  • why.md — the problem and the "map islands" idea. Start here.
  • tutorial.md — build your first map, no jargon.
  • how-to.md — recipes: embed, iframe, SPA, colors, CDN, mobile, tokens.
  • reference.md — config fields, build scripts, the profile-config contract.
  • explanation.md — the model in 15 lines.
  • architecture/ — the deep end: full contracts, the per-file catalog.
  • README-embed-example.md — the drop-in README used when this bundler is embedded inside a host repo.
  • README-embed-gospel-resources.md — the gospel map's URL contract for partner embeds: bring your own ISO 639-3 list, one country, one group, or the zero-access view.

Working on the repo:

Nothing on the simple path is longer than a few minutes; everything complex lives in architecture/, linked from where you'd need it.