docs(design): organize decision records

This commit is contained in:
Rahim
2026-07-14 16:00:31 -07:00
parent fb2a4af02a
commit c87c06f3f2
9 changed files with 17 additions and 6 deletions
+16 -5
View File
@@ -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
+1 -1
View File
@@ -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`