doxa-maps/documentation/reference-capability-exemplars.md
doxa-maps 236fef5682
Some checks are pending
build-gate / build (push) Waiting to run
Give nested ProfileLoader children the profile-config they require
Two composites nested a child by tag and URL without a profile-config. Those
children do not render a component directly — their bundle entry mounts
ProfileLoader, which reads profile-config.profile to choose which view to load.
With none, the element still mounts and still reports its tag, so every
structural check said both children were present, while the loader rendered
"missing or invalid profile-config prop" where the map should be. The grid half
of each page worked, which is how it survived.

Found by reading a regenerated README screenshot, not by any gate. The mobile
screenshot showed an error card and an empty pane; the fixed one shows the real
research map with its data, controls and progress figures.

research-map-plus-grid was mine, shipped that way. stack-demo predates it and had
the same defect against research-dashboard. Both now pass the shape their own
generated leaf pages use, so nested and standalone mounts ask for the same thing.

check:composite-srcs now requires a profile-config on any child whose bundle
mounts ProfileLoader, derived from which entries import it rather than a list.
The first version of that check tested for the word and passed on its own
explanatory comment; it now matches the quoted attribute key, and a negative test
that mutates only the key fails as it should.

Also regenerates three derived artifacts that had drifted behind this flight's
changes: the library index, the capability exemplars table, and all twelve README
screenshots.
2026-09-22 09:37:35 +00:00

87 lines
3.9 KiB
Markdown

# 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 19 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` |
| `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` |
## 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` |
| `dashboard-plus-grid` | `dashboard-plus-grid` | `nested-elements-mfe` |
| `my-upg-100-list` | `upg-100-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` |