doxa-maps/documentation/reference-capability-exemplars.md
doxa-maps-88655c70 e8ad1d56e6
Some checks are pending
build-gate / build (push) Waiting to run
packet: a partial translation renders 12 prayer points, not 3
packet-render.js resolved the prayer points with `L.points || EN.points`.
That is a whole-block fallback when the key is ABSENT, and TRUNCATING when a
translator has done some of the 12 — a 3-element array is truthy. Measured at
the rendered layer with a deliberately partial locale block: a page headed
"12 Prayer Points" containing THREE, points 4..12 silently gone, including the
Mark 5:1-20 passage point 4 prints in full. Nothing blank, no error raised.

Invisible in all 11 shipping locales because every one of them is complete.
It would have appeared on the next language added — and "a new language is a
NEW BLOCK, never a code change" only holds if a PARTIAL block degrades per key,
since half-finished is the normal state of a language in progress.

Now merges per point and per field against English: English fixes the LENGTH
and supplies every missing field, so a point translated for `text` but not
`sub` keeps the English `sub` — and keeps its NUMBER, which the merge supplies.

The sheet-sum invariant could not see this: a 3-point page is still exactly one
sheet, so every number check-packet-render printed stayed correct while nine
points were missing. It now measures and asserts the count. Mutation-tested —
reverting the fix prints "prayer points : 2 / 12" and fails.

All 11 locales regenerated with photos and swept: check:packets-all 11/11, each
12/12 points, including RTL ar and Devanagari hi. Renderer, generator and gate
synced to doxa-maps-plugin-studio, which also lacked the .points-title and
.wheel-title test hooks the new assertion needs.

Also wires check:capability-exemplars into gates:post (33 -> 34 steps). It reads
public/doxa-maps/manifest.json, a build artifact, so ordering mattered: `tree`
writes the manifest and is &&-chained immediately before gates:post, and the
gate SKIPs rather than fails when the manifest is absent. Full wave: 34/34.
The quoted gates:post line in the README is re-synced in the same commit,
because check:quoted-scripts goes red on the drift this commit creates.
2026-09-24 12:20:38 +00:00

4.2 KiB

Reference — capability exemplars (GENERATED)

Do not hand-edit. Regenerate with bun run capability-exemplars; bun run check:capability-exemplars fails if this file falls behind the manifest.

This answers one question authoritatively: which bundles are the capability-N examples right now? It is derived from public/doxa-maps/manifest.json, which is what the build computed from each folder's real shape — so it cannot drift from what ships.

Cite this file rather than remembering. The same citation has been wrong in three separate places: a gate, the README, and the /plugin-designer skill. The trap is that a folder's apparent simplicity does not decide its tier — an *.instances.json makes a bundle parameterized (cap-2) no matter how light it looks, and a meta.json type declares tiers 3/4/5.

Generated from 22 bundle(s).

One canonical exemplar per tier (generated — quote these)

Capability Machine key Cite this
1 — single-element single all-people-groups
2 — preset-element (prop-table) parameterized doxa-simple-map
3 — multi-view-element (monolithic) monolithic research-dashboard
4 — composite-element (nested-element SPA) nested-elements-mfe big-picture
5 — app-shell (nested-SPA) nested-mfe-spa doxa-maps-spa

Known-wrong citations this block replaces (both measured 2026-09-22, both in the /plugin-designer skill, which lives outside this repo and so cannot be gated from here): unified-research-dashboard as the cap-4 reference — that bundle does not exist; it became research-dashboard (cap-3) plus dashboard-plus-grid (cap-4). And doxa-vision-card as the cap-1 example — it ships a doxa-vision-card.instances.json with 2 instances, which makes it cap-2 parameterized by the project's own rule.

Capability 1 — single-element

Bundle Profile Machine key
all-people-groups all-people-groups single
cities-internet connectivity-list single
cities-internet connectivity-map single
cities-internet data-tables single
country-posters countries-map single
country-posters country-poster-wall single
golden-path-check golden-path-check single
gospel-resources charts single
gospel-resources data-tables single
gospel-resources resources-list single
gospel-resources resources-map single
my-upg-100-list poster-wall single
my-upg-100-list upg-100-list single
prayer-walk-planner prayer-walk-planner single
regions-dashboard region-dashboards single
regions-dashboard regions-list single
template-bundle template-map-a single
template-bundle template-map-b single

Capability 2 — preset-element (prop-table)

Bundle Profile Machine key
demo-map demo-map parameterized
doxa-simple-map doxa-simple-map parameterized
doxa-vision-card doxa-vision-card parameterized
people-groups-grid people-groups-grid parameterized
upg-neighbor upg-neighbor parameterized

Capability 3 — multi-view-element (monolithic)

Bundle Profile Machine key
doxa-research-map research-map monolithic
research-dashboard research-dashboard monolithic

Capability 4 — composite-element (nested-element SPA)

Bundle Profile Machine key
big-picture big-picture nested-elements-mfe
country-posters country-posters-mfe nested-elements-mfe
dashboard-plus-grid dashboard-plus-grid nested-elements-mfe
my-upg-100-list upg-100-mfe nested-elements-mfe
regions-dashboard regions-mfe nested-elements-mfe
research-map-plus-grid research-map-plus-grid nested-elements-mfe
stack-demo stack-demo nested-elements-mfe

Capability 5 — app-shell (nested-SPA)

Bundle Profile Machine key
doxa-maps-spa doxa-maps-spa nested-mfe-spa
plugin-studio plugin-studio nested-mfe-spa