Driver decisions (cards BUILD-OUTPUT-IS-ONE-FOLDER, BUILD-PLUGIN-STUDIO-IS-THE-OUTPUT-FRONT-PAGE).
- public/ holds only <tree>/ and a generated README.md. The build no longer writes public/index.html,
public/assets/ or public/__gallery/; `rm -rf public && bun run build` recreates exactly these two.
- The Plugin Studio is <tree>/index.html (tree-base "."), replacing the staging-forge chooser; nothing
is written above the tree. check:staging-lang, which tested that chooser, is retired with it.
- Assets are gathered in a temp directory and the fetched allowlist staged into <tree>/assets/ as
before. fonts/, images/, brand/ and legacy/ existed ONLY in public/assets: they are sources and move
to data/ (git mv). Poster previews keep their tracked sources in plugin-designs/*/assets/previews
(all 378 verified present).
- __gallery/ is archived out of public/ (a copy kept in the umbrella's _qa-cycle/archive) and out of
the build; generate-gallery renders only on request, into a directory you name, never public/.
- Native shells load the output folder: capacitor webDir public/<tree> (cap copy needs an index.html
there), Tauri frontendDist + window url relative to it. internal/sync-app-shells.mjs keeps both in
step with the tree's name on every build, so the coming rename stays one config line; the Capacitor
start page resolves its leaf tree-relative.
- dropin.include now lists only extras (README.md): the tree is always shipped and never named twice;
excludes are tree-relative ({tree}/...). clean.mjs removes the old root entries from existing
checkouts; the build lock and public/.gitignore's rules move out of public/.
- check:wp-embed read the BUILT manifest from gates:pre, before the build, so a from-scratch build
could never pass; it runs in gates:post and reads the tree name from config.
- Stale bundles refreshed by the clean build (key-cities, template-bundle, wall-of-people-groups);
the CLI doc's quoted scripts re-synced; capability exemplars regenerated; the '#' note leaves
check:stale-sweep-claim's command (it was already in //scripts).
Proof: rm -rf public && bun run build -> public/ = README.md + doxa-maps/; check:sri, check:drop,
check:parse, check:public-hygiene, check:quoted-scripts, check:capability-exemplars PASS; all 57 pages
(the front page + 56 leaves) mount under /doxa-maps/ on this tree. check:facet-cascade is red as on main.
4.3 KiB
Reference — capability exemplars (GENERATED)
Do not hand-edit. Regenerate with
bun run capability-exemplars;bun run check:capability-exemplarsfails 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-designerskill. The trap is that a folder's apparent simplicity does not decide its tier — an*.instances.jsonmakes a bundleparameterized(cap-2) no matter how light it looks, and ameta.jsontypedeclares tiers 3/4/5.
Generated from 23 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 |
pplr-data-maps |
| 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-designerskill, which lives outside this repo and so cannot be gated from here):unified-research-dashboardas the cap-4 reference — that bundle does not exist; it becameresearch-dashboard(cap-3) plusdashboard-plus-grid(cap-4). Anddoxa-vision-cardas the cap-1 example — it ships adoxa-vision-card.instances.jsonwith 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 |
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 |
Capability 3 — multi-view-element (monolithic)
| Bundle | Profile | Machine key |
|---|---|---|
doxa-research-map |
research-map |
monolithic |
pplr-data-maps |
pplr-data-maps |
monolithic |
research-dashboard |
research-dashboard |
monolithic |
upg-neighbor |
upg-neighbor |
monolithic |
wall-of-people-groups |
wall-of-people-groups |
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 |
gospel-resources |
gospel-dashboard |
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 |