doxa-maps/library/components/WARNING.md
Doxa Maps 70ea389db3 Docs: "reusable by default" in the library guides, and Deep Research by its name
- library/components/WARNING.md, library/dashboards/README.md and
  documentation/contributing/README.md taught "graduate into the library at the second
  consumer". They now teach the plugin-designer skill's rule (section 3): a component that
  could serve more than one map is built once in library/, driven by props, and landed through
  the build owner; one-off or experimental pieces stay in a map's folder; a new pattern is a
  pilot, then approved, then rolled out. The contributing guide's "full reasoning" link pointed
  to an index without it; it now points to the skill.
- The app shell doxa-maps-spa is labelled Deep Research. Ten docs still called it the Research
  Gallery (15 mentions): DEPLOY.md, the desktop how-to, embeddability, develop-a-plugin,
  reference-universal-props, reference.md, the shell's EMBED.md, and the plugin-designer skill
  with two of its references. Identifiers (doxa-maps-spa, branch and route names) are unchanged;
  README.md is not touched.
2026-10-01 08:27:04 +00:00

20 lines
1.4 KiB
Markdown

# ⚠️ Read before you touch these components
**These are the SHARED, REUSABLE components — every map in `plugin-designs/` depends on them.**
A change here does not affect one map. It ripples to **all** of them. So:
- **Prototyping or experimenting? Don't edit these.** Put your custom, one-off, not-yet-proven component
inside your own map's folder (`plugin-designs/<your-map>/`), where it can be as messy as you need and
breaks nothing else.
- **Reusable by default.** If a component could serve more than one map, build it here once, driven by props,
and land it through the build owner, so other maps adopt it instead of copying it. If it has hard-coded
values or assumptions about one specific map, it is **not** ready to live here: parameterize it first.
- **A reusable component takes props, not assumptions.** Before you move something in, make it parameterized:
the map, the legend, the controls, the search bar all take configuration — yours should too.
- **If you must change a shared component, check every map that uses it.** Run `bun run dev` and click through
the maps before you commit. The whole point of this library is that maps *don't* have to be rewritten —
don't undo that by breaking the shared pieces.
Rule of thumb: **custom code in your app-profile, reusable code in the library — and things only move from the
first to the second once they've earned it.**