The first piece of Big Picture to be shared, and it went first for one reason: useSelectionBus has ZERO domain references and imports nothing but `vue`, so it is the only piece that could move with no adapter and no behaviour change. The body is byte-for-byte what main shipped — verified by diffing everything from the first import onward — and only the file's header block is new. A move that also edits is a move nobody can verify, and nine of these have to be verifiable in a row. THE OLD PATH STILL WORKS, as a re-export, for one cycle. That is not politeness; it is what keeps this landing small enough to check. A landing that moved the file AND rewrote every import would be two changes whose failures look identical from the outside. The shim re-exports and does not duplicate: a second copy would drift silently while both halves kept passing their gates, which is the failure check:no-cross-plugin-imports and check:shared-reached exist to stop. It is deleted in the next landing. ★ THE GATE HAD TO MOVE WITH IT, and this is the part a move like this hides. check-facet-cascade reads the bus from a PATH (BUS_SRC) and, for its self-test, copies that file and poisons the copy to prove it can still catch a reverted cascade. Pointed at the shim, it would have copied and poisoned a RE-EXPORT: the mutation would match nothing, the "broken" copy would behave correctly, and the self-test would report that the gate no longer catches anything. One line, and without it landing 1 would have silently disarmed the only check that proves the hierarchy contract. Verified after the move: the gate PASSES at the new path and the self-test still catches a reverted cascade (13 assertions). The library index is regenerated in the same commit, per SPEC-LIBRARY-CURATION section 4: check:library-index compares REGENERATED BYTES, so a new file under composables/ turns it red until `bun run library-index` is re-run. Per-landing regeneration rather than one pass at the end, because nine landings with a knowingly-red staleness gate would train nine readings of "ignore that one". useSelectionBus now appears in the generated menu — which was the whole argument for the existing taxonomy over a new top-level area. NOTHING TO REGISTER IN package.json: the gate that guards this file, check:facet-cascade, was already wired, and check:no-orphan-gates confirms it. This commit does not touch package.json at all, so it cannot conflict with the three landings of mine that do. STILL COMING, deliberately not here: SPEC-DASHBOARD-KIT D1 makes filterSet multi-value. That changes this file's CONTENTS; this changes only its LOCATION. Keeping them apart is what makes "Big Picture is unchanged" provable. SOURCE ONLY — not built, by instruction. Green here on main's tree: check:facet-cascade and its self-test, check:library-index, check:no-orphan-gates, check:no-cross-plugin-imports, check:shared-reached, check:no-free-identifiers, check:mjs-parse, check:sfc-parse, check:descriptions. |
||
|---|---|---|
| .. | ||
| architecture | ||
| assets | ||
| contributing | ||
| needs-eyes | ||
| readme-images | ||
| screenshots | ||
| CONTRIBUTING.md | ||
| develop-a-plugin-and-see-it-live.md | ||
| explanation.md | ||
| how-to.md | ||
| README-embed-example.md | ||
| README-SECTION-3-cli-commands.md | ||
| README.md | ||
| reference-capability-exemplars.md | ||
| reference-library-index.md | ||
| reference-universal-props.md | ||
| reference.md | ||
| tutorial.md | ||
| vendored-font-noto-serif-devanagari.md | ||
| why.md | ||
documentation/ — pick your path
"what is this?" "teach me" "how do I …?" "look it up" "all the detail"
│ │ │ │ │
why.md ──────────► tutorial.md ────► how-to.md ────► reference.md ───► architecture/
(2 min, 1 diagram) (first map) (task recipes) (tables) (contracts)
- why.md — the problem and the "map islands" idea. Start here.
- tutorial.md — build your first map, no jargon.
- how-to.md — recipes: embed, iframe, SPA, colors, CDN, mobile, tokens.
- reference.md — config fields, build scripts, the
profile-configcontract. - explanation.md — the model in 15 lines.
- architecture/ — the deep end: full contracts, the per-file catalog.
- README-embed-example.md — the drop-in README used when this bundler is embedded inside a host repo.
Working on the repo:
- develop-a-plugin-and-see-it-live.md — ★ the golden path: zero to a plugin live, in 6 steps.
- README-SECTION-3-cli-commands.md — every command, per deployment method, with prerequisites.
- reference-capability-exemplars.md — which bundle is at which capability tier (generated).
- reference-library-index.md — the reusable
library/pieces you can import (generated). - CONTRIBUTING.md and contributing/ — how to contribute, and the bar for
library/.
Nothing on the simple path is longer than a few minutes; everything complex lives in
architecture/, linked from where you'd need it.