# HaTchi-MaXchi stems — index

| Stem | One line |
|------|----------|
| [hyperpart-not-component](hyperpart-not-component.md) | Partial + exchange (+ controller)—not a React component |
| [three-layers](three-layers.md) | L0 recipe → L1 surface → L2 host; shape ≠ identity |
| [composition-declared](composition-declared.md) | composes / does_not_compose / extensions; never silent dogfood |
| [invention-ladder](invention-ladder.md) | Reuse → refuse+spike → promote → new Hyperpart |
| [morph-safe-hypermedia](morph-safe-hypermedia.md) | htmx4 morph for stable surfaces; DOM identity/state; no Alpine in core |
| [details-open-intent](details-open-intent.md) | Multi-`<details>`: declare exclusive vs multi_open; chrome needs dismiss |
| [affordance-disclosure-chrome](affordance-disclosure-chrome.md) | Expand affordances: CSS/SVG chevron ≥0.75–1rem, not tiny Unicode |
| [selection-strip-honest](selection-strip-honest.md) | Tabs/segments: button vs link by intent; square indicators; no half ARIA |
| [shortcut-hint-chrome](shortcut-hint-chrome.md) | ⌘K chips: visually + spatially secondary (adjacent gap / trailing auto) |
| [overlay-light-dismiss](overlay-light-dismiss.md) | Transient overlays: Esc + outside; spatial vs temporal abandon |
| [chrome-vs-protocol](chrome-vs-protocol.md) | Same modal chrome ≠ same L1; addressing vs request gating |
| [host-chrome-symmetry](host-chrome-symmetry.md) | Overlay shells: form_shell vs exchange_shell; guests keep DOM contracts |
| [pragmatic-gallery-aesthetics](pragmatic-gallery-aesthetics.md) | Demos teach by looking intentional: full-bleed media, observable autoplay, in-family hypermedia |
| [page-chrome-toast](page-chrome-toast.md) | Toast is viewport page chrome: one host, OOB/Trigger/client parity, no Alpine store |
| [chrome-cue-opt-in](chrome-cue-opt-in.md) | Sound/haptic cues are opt-in page policy; controllers call dzCue/dzHaptic |
| [ssr-client-slot-parity](ssr-client-slot-parity.md) | Shared slot model for OOB HTML and CustomEvent.detail — one dual-lock shape |

**Framework parent:** [monorepo stems](../../../stems/INDEX.md)
**Playbooks:** `docs/agent/`
**Decisions (expressions):** `docs/decisions/`
**Interaction probes (machine expressions):** `GALLERY_PROBES.md`, `tools/gallery_probes.py`
**Composition matrix (host × guest):** `tools/composition_matrix.py` · `COMPOSITION_MATRIX.md`
