doxa-maps/internal
doxa-maps-88655c70 cac041da42 Gospel access: a bridge for the Deaf, and screen the links nobody was screening
Of the 369 Doxa groups with nothing in their language, 94 had no bridge either,
and 93 of those were Deaf — 17.5 million people, the largest untouched number on
the map. That was structural, not bad luck: every bridge here is a spoken
language widely used in the same country, and a spoken bridge is worthless to a
Deaf community, so the build correctly refused to offer one and then had nothing
else to say.

SUN is a signed language built to be learnt across sign languages, with the Old
Testament, New Testament and Bible stories in it. It is carried the way a spoken
bridge is — something to learn, no substitute for Scripture in a group's own
sign language — in its own columns, never folded into the access rung, which
stays the honest "nothing found in their language". 28 countries where it is
already being taught come with the named local Deaf church or organisation
doing the teaching, which is the difference between a resource and a lead.

Only URLs verified by their content ship. sun.bible answers 200 for
/sun/<anything> and /resource/<anything>, so a per-language URL built by pattern
would look valid and could be empty; the fetcher re-measures that catch-all on
every run rather than trusting a note. Hosts left out are listed with the reason,
including three that are reachable by a person but not by a script.

Doctrine was checked harder here, not less. The Deaf are the most heavily
targeted group in this dataset by publishers this build must never carry, and
the thinner the pickings the stronger the pull. SUN is Wycliffe Associates'.

Screening the result exposed the bigger hole. The doctrine scan read the pin
index only, and within it skipped the Words of Life and Scripture Earth fields,
so the access table — the one the page renders and the one exported to CSV for
posters and QR codes — was never screened at all. The least supervised links in
the build were the ones most likely to be printed and handed to a stranger.
Scanning both, and both fully, takes the screened count from 6,497 to 16,960.

The gate also now proves the server holds these tables. It adopted a server from
another worktree on the default port and reported PASS on it: all three
manifests are byte-identical, because a manifest describes bundles and the
change was to a data asset it never mentions. A planted excluded-publisher link
went undetected, which is the worst possible failure for this particular check.
2026-09-25 17:47:00 +00:00
..
acceptance Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
element-census Match the live page's wording where we differed only by case 2026-09-25 17:08:16 +00:00
fixtures Gate the scrim-covers-viewport rule, and say what was not verified 2026-09-22 21:54:39 +00:00
lib Add deepFindAll to the shared browser helper, so counting probes stop being hand-rolled 2026-09-22 06:19:13 +00:00
plugin-gallery Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
_serve-reaped.mjs Make a gate's dev server die with the gate 2026-09-24 22:54:11 +00:00
_serves-this-tree.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
_tree-name.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
atomic-public-swap.sh Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
browser-slot.sh browser-slot: a long gate declares its own hold limit; check:host-locale-contract takes 2700 s 2026-09-25 16:25:22 +00:00
build-lock.sh Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
build-packet-fixtures.mjs packets: fixtures at the PAGE BOUNDARY, which nothing had ever rendered 2026-09-24 23:53:07 +00:00
check-a11y-button-names.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-aria-labels-localized.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-backlog-refs.mjs poster cards: the print-options row stays inside its own card 2026-09-24 19:19:02 +00:00
check-backlog-status-enum.mjs The backlog-status enum was too narrow, not the nine cards wrong 2026-09-24 11:58:39 +00:00
check-basemap-labels-localized.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-capability-citations.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-capability-exemplars.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-card-deck.mjs Browser gates: measure THIS build, or measure nothing 2026-09-25 08:20:11 +00:00
check-catalog-currency.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-catalog-identity.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-composite-embed-knobs.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-composite-freshness.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-composite-registration.mjs Compare every silently-failing side effect, not just strategy keys 2026-09-22 20:09:46 +00:00
check-composite-srcs.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-csv-export-shape.mjs Checkpoint the swarm's in-flight work 2026-09-22 21:42:18 +00:00
check-deck-click.mjs Browser gates: measure THIS build, or measure nothing 2026-09-25 08:20:11 +00:00
check-dependency-names.mjs Gate: every declared dependency must be a real package name 2026-09-22 06:49:21 +00:00
check-doc-quotes-scripts.mjs Check that the CLI doc still quotes package.json correctly 2026-09-23 04:19:42 +00:00
check-done-evidence.mjs check:done-evidence knew one card schema and failed the best-evidenced cards on the board 2026-09-24 11:38:17 +00:00
check-dxlife-untouched.mjs add a VCS-independent witness for the read-only DX-life clone 2026-09-20 09:45:25 +00:00
check-element-census-vs-live.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-embed-base-resolution.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-embed-basemap-paints.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-embed-targets-exist.mjs Track the embed-target gate, which was registered but never committed 2026-09-22 14:57:36 +00:00
check-embedded-rtl.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-experimental-shelf.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-facet-cascade.mjs Land the swarm's dashboard work: colour, rails, cascade, scroll 2026-09-22 18:57:39 +00:00
check-facet-changes-map.mjs Merge main into bundler-2/work 2026-09-24 17:00:25 +00:00
check-facet-one-field.mjs Gate the scrim-covers-viewport rule, and say what was not verified 2026-09-22 21:54:39 +00:00
check-filter-width-stable.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-fits-the-screen.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-fixed-anchoring.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-gospel-all.mjs A gate that looks at the map, because every other one passed over a blank rectangle 2026-09-25 15:54:03 +00:00
check-gospel-composed-filters.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-gospel-coverage-consistent.mjs Hold the gap table to the split it publishes 2026-09-25 00:24:29 +00:00
check-gospel-english-leaks.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-gospel-leaves-mount.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-gospel-map-paints.mjs check-gospel-map-paints reads the tree's name from the build config too 2026-09-25 16:26:03 +00:00
check-gospel-rtl-shaping.mjs Gospel map: shape Arabic, Hebrew and Persian place names 2026-09-25 17:10:04 +00:00
check-heartbeat-threshold.mjs Assert the shipped heartbeat ramp, not just the panel's fallback 2026-09-22 22:44:10 +00:00
check-host-locale-contract.mjs browser-slot: a long gate declares its own hold limit; check:host-locale-contract takes 2700 s 2026-09-25 16:25:22 +00:00
check-i18n-never-translated.mjs The never-translated gate goes green on what it has settled 2026-09-25 15:49:47 +00:00
check-i18n-parity.mjs All eleven locales complete — the last 162 keys of i18n debt, and the ratchet empties 2026-09-24 08:48:02 +00:00
check-kpi-unit-once.mjs Translate the chrome that was English in all eleven locales 2026-09-25 06:10:27 +00:00
check-label-joins.mjs add a label-join gate: fail on any new equality predicate comparing two independently-derived values 2026-09-20 09:05:18 +00:00
check-legend-export-reachable.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-legend-info-localized.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-legend-matches-source.mjs gates: two unwired checks were red on main, and nothing could tell us 2026-09-24 15:53:58 +00:00
check-library-index.mjs library-index gate: ask whether the menu drifted, not whether a file is older 2026-09-24 13:29:58 +00:00
check-link-rot-sample.mjs Check 5fish links too, and say why YouVersion stays out 2026-09-25 02:44:37 +00:00
check-locale-reachable.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-manifest-covers-discovery.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-map-embed-cells.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-map-unmount-guard.mjs useMapInstance: a map unmounted mid-initialise returns quietly instead of throwing 2026-09-25 05:01:13 +00:00
check-map-unmount-mid-init.mjs Browser gates: measure THIS build, or measure nothing 2026-09-25 08:20:11 +00:00
check-maplibre-layer-drops.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-mfe-two-tab.mjs Browser gates: measure THIS build, or measure nothing 2026-09-25 08:20:11 +00:00
check-mjs-parses.mjs Parse the build scripts before the build runs them 2026-09-22 21:33:32 +00:00
check-nav-reachable-mobile.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-nested-token-delivery.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-no-absolute-paths.mjs Keep the development-era internal code name out of shipped files 2026-09-22 22:18:18 +00:00
check-no-conflict-markers.mjs Correct the record: the dead bundle was my merge, not a duplicate import 2026-09-25 10:19:07 +00:00
check-no-internal-codename.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-no-orphan-gates.mjs Wire the seven gates that could run, and make wave membership visible 2026-09-24 11:24:01 +00:00
check-no-public-binds.mjs Bind local preview servers to loopback only 2026-09-22 17:32:33 +00:00
check-no-stale-sweep-claim.mjs Stop telling readers the audio sweep is unfinished — it finished 2026-09-25 02:57:50 +00:00
check-one-palette.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-packet-browser.mjs Queue the browser gates, and let them serve their own tree 2026-09-24 17:43:32 +00:00
check-packet-render.mjs Six more browser gates measure THIS build or nothing 2026-09-25 10:03:16 +00:00
check-packet-strings-parity.mjs Guard the packet catalog: the 12 prayer points and the wheel had no parity gate 2026-09-24 08:57:34 +00:00
check-packets-all.mjs packets: the all-packets gate says how many ZONES it covered 2026-09-24 22:49:23 +00:00
check-poster-card-fits.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-poster-degrades-honestly.mjs Browser gates: measure THIS build, or measure nothing 2026-09-25 08:20:11 +00:00
check-poster-print-fallback.mjs Browser gates: measure THIS build, or measure nothing 2026-09-25 08:20:11 +00:00
check-poster-prints.mjs Six more browser gates measure THIS build or nothing 2026-09-25 10:03:16 +00:00
check-poster-raster.mjs Browser gates: measure THIS build, or measure nothing 2026-09-25 08:20:11 +00:00
check-poster-wall-localised.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-prayer-walk-planner.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-print-geometry.mjs Browser gates: measure THIS build, or measure nothing 2026-09-25 08:20:11 +00:00
check-profile-descriptions.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-provider-switch.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-published-matches-build.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-published-tree-weight.mjs gate: the tree we publish has a weight, and nothing was watching it 2026-09-25 00:20:02 +00:00
check-quoted-scripts.mjs consolidate docs into documentation/ and deployment shells into deployment/ 2026-09-21 23:23:23 +00:00
check-research-gallery-embed.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-scrim-covers-viewport.mjs Browser gates: measure THIS build, or measure nothing 2026-09-25 08:20:11 +00:00
check-script-flags-reachable.mjs Make advertised script flags actually reachable 2026-09-22 17:44:02 +00:00
check-sfc-script-parses.mjs Localize tab labels for it/ro/zh, and prove the catalog is actually read 2026-09-24 06:23:30 +00:00
check-share-policy.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-shared-component-reached-bundles.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-shot-distinctness.mjs consolidate docs into documentation/ and deployment shells into deployment/ 2026-09-21 23:23:23 +00:00
check-shot-fidelity.mjs Shoot the README with the token the bundles ship, and make the fidelity gate ask 2026-09-23 06:26:39 +00:00
check-shot-fonts.mjs Make the flagship capability-5 screenshot show the studio doing something 2026-09-22 09:48:20 +00:00
check-shot-freshness.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-snapshot-guard.mjs A half-finished catalogue fetch can no longer overwrite a good one 2026-09-24 11:59:48 +00:00
check-spa-tab-order.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-staging-forwards-lang.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-studio-every-plugin.mjs Browser gates: measure THIS build, or measure nothing 2026-09-25 08:20:11 +00:00
check-surfaces-read-the-tier.mjs Tell the curated tables that GRN and Scripture Earth exist 2026-09-24 22:15:53 +00:00
check-synced-css-copies.mjs Teach the synced-CSS gate what a selector is, and turn it on 2026-09-23 01:22:36 +00:00
check-tab-radius-token.mjs Gate the tab radius so a superseded rationale cannot quietly restore the pill 2026-09-23 01:08:10 +00:00
check-tabs-localized.mjs Six more browser gates measure THIS build or nothing 2026-09-25 10:03:16 +00:00
check-tauri-config.mjs Commit Cargo.lock: it was ignored by association with real build output 2026-09-22 06:53:27 +00:00
check-upg-map-data-painted.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
check-url-resolver.mjs Gate the URL-resolver rule the build could never have caught 2026-09-22 14:18:26 +00:00
check-verification-tags.mjs Record which kind of verification closed each card 2026-09-22 17:00:26 +00:00
check-vision-card-numbers.mjs Six more browser gates measure THIS build or nothing 2026-09-25 10:03:16 +00:00
check-zone-census.mjs zone-census: default to this repo, not one author's worktree 2026-09-24 04:18:24 +00:00
clean.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
drop-portability-check.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
embed-smoke.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
fix-sri.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
generate-capability-exemplars.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
generate-gallery.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
generate-library-index.mjs consolidate docs into documentation/ and deployment shells into deployment/ 2026-09-21 23:23:23 +00:00
generate-packet-fixture.mjs packets: give CI something to check, instead of a sweep that always SKIPs 2026-09-24 14:33:36 +00:00
generate-tree.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
inline-parse-check.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
install-shell.mjs Brand-neutral shared VerticalTabsLayout with lazy nested-element hosting; fix cap-5 prayer tab leaf path; neutralize library identifiers; add Forgejo CI build-gate workflow 2026-09-19 17:24:30 +00:00
legend-columns-probe.mjs The last browser scripts refuse to measure a tree or dev server that is not this checkout 2026-09-25 11:10:34 +00:00
long-frames-probe.mjs The last browser scripts refuse to measure a tree or dev server that is not this checkout 2026-09-25 11:10:34 +00:00
measure-map-load.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
mobile-sheet-probe.mjs The last browser scripts refuse to measure a tree or dev server that is not this checkout 2026-09-25 11:10:34 +00:00
plugin-gallery-smoke.mjs The last browser scripts refuse to measure a tree or dev server that is not this checkout 2026-09-25 11:10:34 +00:00
public-hygiene-check.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
readme-shots-fix.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
readme-shots.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
run-parallel.mjs Browser gates: two slots with a memory floor, not one mutex 2026-09-25 07:37:26 +00:00
serve-strict.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
set-app-start-page.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
settled-tree-gate.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
share-roundtrip-smoke.mjs The last browser scripts refuse to measure a tree or dev server that is not this checkout 2026-09-25 11:10:34 +00:00
smoke-studio.mjs The last browser scripts refuse to measure a tree or dev server that is not this checkout 2026-09-25 11:10:34 +00:00
smoke.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
sri-consistency-check.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
staging-forge.css feat: map provider swap — mapbox|maplibre engine + hybrid geocoder + provider badge; staging title doxa-maps 2026-09-11 21:47:25 +00:00
staging-forge.js Host locale: gate the profile-config contract, forward ?lang= into staging embeds, stop losing gate stderr 2026-09-25 12:18:26 +00:00
staging-reference-v2.html Host locale: gate the profile-config contract, forward ?lang= into staging embeds, stop losing gate stderr 2026-09-25 12:18:26 +00:00
sync-dropin.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
template-literal-check.mjs Scan all of library/ for backticks in shadow-CSS comments 2026-09-22 18:25:18 +00:00
theme-flash-probe.mjs The last browser scripts refuse to measure a tree or dev server that is not this checkout 2026-09-25 11:10:34 +00:00
verify-5-capabilities.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
verify-browser-all.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
verify-gospel-map.mjs Gospel access: a bridge for the Deaf, and screen the links nobody was screening 2026-09-25 17:47:00 +00:00
verify-map-paint.mjs Merge branch 'main' of https://git.nuxtbase.app/doxa-life/doxa-maps into bundler-3/work 2026-09-25 16:39:46 +00:00
verify-shell-scroll.mjs Tooling reads the tree's name from the build config, in one place 2026-09-25 16:25:22 +00:00
vite-plugin-strip-shadow-css-comments.mjs Complete app-profiles->plugin-designs sweep across comments/docs; build green; layouts kept at root (load-bearing) 2026-09-17 18:18:19 +00:00
write-token.mjs write the extensionless token path the client actually requests; ignore it too 2026-09-20 09:55:39 +00:00