diff --git a/internal/decisions/README.md b/internal/decisions/README.md index bad5a7d1..ac0ce8d6 100644 --- a/internal/decisions/README.md +++ b/internal/decisions/README.md @@ -1,4 +1,4 @@ -# Decisions +# Internal decisions ADR-style records of single tactical decisions. @@ -48,14 +48,25 @@ Why this came up. What problem triggered the decision. Link related decisions. Why this choice wins. Keep concise. ``` -## File Naming +## Layout + +| Area | Decisions | +| --- | --- | +| `player/` | Provider, container, media discovery, and player composition | +| `spf/` | Stream-processing ownership and coordination | +| `store/` | State-management contracts | +| `ui/` | Components, gestures, captions, and interaction | + +Put new records in the narrowest existing area. Add an area only when several related decisions belong together. + +## File naming Lowercase with hyphens, name after the subject of the decision: ``` -captions.md -gestures-as-components.md -provider-attach.md +ui/captions.md +ui/gestures-as-components.md +player/provider-attach.md ``` ## See Also diff --git a/internal/decisions/context-media-discovery.md b/internal/decisions/player/context-media-discovery.md similarity index 100% rename from internal/decisions/context-media-discovery.md rename to internal/decisions/player/context-media-discovery.md diff --git a/internal/decisions/player-container-separation.md b/internal/decisions/player/player-container-separation.md similarity index 100% rename from internal/decisions/player-container-separation.md rename to internal/decisions/player/player-container-separation.md diff --git a/internal/decisions/provider-attach.md b/internal/decisions/player/provider-attach.md similarity index 100% rename from internal/decisions/provider-attach.md rename to internal/decisions/player/provider-attach.md diff --git a/internal/decisions/spf-signal-ownership.md b/internal/decisions/spf/signal-ownership.md similarity index 100% rename from internal/decisions/spf-signal-ownership.md rename to internal/decisions/spf/signal-ownership.md diff --git a/internal/decisions/store-reactive-state.md b/internal/decisions/store/reactive-state.md similarity index 100% rename from internal/decisions/store-reactive-state.md rename to internal/decisions/store/reactive-state.md diff --git a/internal/decisions/captions.md b/internal/decisions/ui/captions.md similarity index 100% rename from internal/decisions/captions.md rename to internal/decisions/ui/captions.md diff --git a/internal/decisions/gestures-as-components.md b/internal/decisions/ui/gestures-as-components.md similarity index 100% rename from internal/decisions/gestures-as-components.md rename to internal/decisions/ui/gestures-as-components.md diff --git a/internal/design/spf/conventions/signals.md b/internal/design/spf/conventions/signals.md index 71cac4aa..8f8a1c2e 100644 --- a/internal/design/spf/conventions/signals.md +++ b/internal/design/spf/conventions/signals.md @@ -51,7 +51,7 @@ If a slot has more than one writer and **doesn't** fit one of these shapes, that **When the multi-writer is a behavior-decomposition smell** rather than a slot-decomposition smell: the writers share a decision-making domain (same inputs, same options) rather than reflecting genuinely different inputs. That's a signal of one purpose split across two behaviors, not one slot that needs splitting. See [`behaviors.md` → Decomposition check](behaviors.md#6-decomposition-check) for the diagnostic. -A future lint rule may make shared writers more visible, but it must allow documented intent. See the [signal ownership decision](../../../decisions/spf-signal-ownership.md) for why composition does not enforce a writer-count invariant. +A future lint rule may make shared writers more visible, but it must allow documented intent. See the [signal ownership decision](../../../decisions/spf/signal-ownership.md) for why composition does not enforce a writer-count invariant. ## Seeding 0-writer slots: `initialState` / `initialContext`