Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a0cffe-206f-7323-89d3-b20ca4cf4bf9
8.5 KiB
Pattern breadth expansion — 2026-09-26
Status: editorial source review and synthetic decision probes by Codex, under WP-0003 T01. The user explicitly requested broader pattern coverage after the navigation slice. This supersedes its immediate pause on adding candidates, while preserving the open evidence gates and pending implementation tests.
Six drafts cover decisions absent or implicit in the previous ten: presentation logic placement, derived-value ownership, feature boundaries, selective execution, rendering-failure containment and return from modal interaction. They are research hypotheses, not six new inventions or canonical admissions. Most develop existing program targets. Focus Return deliberately narrows the broad accessibility seed. No additional live inference was run; future live execution remains on llm-connect.
Primary claims before normalization
Accessed 2026-09-26. Except the dated Fowler article and pinned FSD document, these are living pages with exact revisions/publication dates unknown. Documentation examples are not observed production deployments. No application was executed.
| Claim / source | Locator | Source observation | Proposed interpretation and limit |
|---|---|---|---|
| B01 / SRC-0023 | Fowler: Presentation Model, How it Works / When to Use It; 2004-07-19, author-marked draft | Presentation decisions can live outside GUI controls; synchronizing model and view adds work | Develop Presentation Model as a particular separation mechanism, not a universal controller architecture |
| B02 / SRC-0024 | Redux: Deriving Data with Selectors, Deriving Data / Calculating Derived Data | Compute additional values from minimal stored state; selectors encapsulate lookups and calculations | Develop Derived State independently of the library; editable overrides and historical snapshots require different ownership |
| B03 / SRC-0025 | FSD: Slices and segments, pinned source, Slices / Public API rule | Product-oriented groups expose public interfaces and constrain imports | Develop Vertical Feature Slice; module organization alone says nothing about release independence |
| B04 / SRC-0026 | Astro: Islands architecture, What is an island? / Client Islands | Client islands activate selected components separately; regions can communicate and share state | Develop selective client execution; do not infer security isolation, fault containment or measured speed |
| B05 / SRC-0027 | React: Component, Catching rendering errors | Rendering boundaries show a fallback; exclusions include event handlers, SSR, boundary-self errors and ordinary async callbacks; documented transition exception exists | Develop a boundary with a stated failure scope, not a catch-all recovery guarantee |
| B06 / SRC-0028 | WAI APG: Modal dialog, Keyboard Interaction, notes 1–2 | Focus enters the dialog and normally returns to its invoker; removed invokers and subsequent workflow steps justify another target | Develop Focus Return narrowly around modal tasks, not arbitrary route changes or a conformance certification |
Source integrity note: the rendered FSD page contained unrelated footer links. The substantive grouping/interface claims were checked against the project's pinned repository source above; footer material was excluded. This corroborates the text, not an independent implementation or publisher.
Distinct decisions and counterexamples
| Candidate | Decision newly made explicit | Counterexample / overlap boundary |
|---|---|---|
| Presentation Model | Where does presentation behavior live independently of widgets? | A trivial page needs no extra object; Local Draft State concerns intent lifetime instead |
| Derived State | Which values can be recomputed rather than independently changed? | A user override or historical snapshot is not merely a cache; derivation does not establish freshness |
| Vertical Feature Slice | Which changes belong behind one module interface? | A coupled backend/API contract can still force coordinated releases |
| Islands of Interactivity | Which document regions need client activation? | A tightly coupled editor may justify one runtime root; enhancement and fault isolation remain separate |
| Failure Boundary | Which failure can this region contain, and how does it recover? | Partial continuation can be unsafe; rendering recovery cannot reverse a payment |
| Focus Return | Where does keyboard work continue after a modal closes? | Returning to a deleted invoker is invalid; ordinary background updates should not move focus |
Synthetic probes — not full validation cases
These are author-generated design traces, not runtime observations or an independent comparison with a baseline. They provide provisional links to planned cases without marking VC-04–10 covered or complete.
| Probe | Baseline decision in plain language | Candidate contribution / changed constraint |
|---|---|---|
| Dense workspace, relevant to VC-08 | Keep selection, editable intent and server data distinct; compute visible totals | Presentation Model organizes the decisions; Derived State avoids another mutable total. Add user override: store the override as an explicit input instead of recomputing it away |
| Publication with one calculator, extension of VC-03 | Deliver readable content and activate the calculator separately | Islands describe activation placement. Change to tightly coupled whole-page editing: reconsider the split; no automatic performance advantage |
| Two feature teams, relevant to VC-06 | Keep capability internals private and compose through interfaces | Vertical Feature Slice explains module boundaries. Change to independent releases: add compatibility/version/deployment contracts; the slice alone is insufficient |
| Optional dashboard panel, relevant to VC-05 | A rendering fault shows a local fallback while other panels remain usable | Failure Boundary makes the caught failure class explicit. Change the fault to a rejected network request: handle request state separately; do not assume the render boundary caught it |
| Reconciliation dialog over a record list, extension of VC-01 | Closing should restore a usable keyboard continuation | Focus Return identifies invocation ownership. Remove the invoking row during the task: choose the next logical surviving target, with a nested-dialog ownership check |
These baseline narratives already express the decisions. Naming them has not been shown to improve outcomes. Each draft records a concrete next test and an alternative.
Dispositions and unresolved questions
Retain six separate hypotheses for now, giving sixteen developed drafts. Keep Presentation Model distinct from its optional Derived State and Local Draft State; keep module, activation and failure boundaries distinct even when they coincide. Focus Return may ultimately belong inside a broader interaction pattern, but its current evidence only supports a narrower investigation.
Defer Independent Feature Boundary until deployment evidence is located; defer Persistent Subscription and Conflict-Free Merge until ordering/reconnect or merge semantics are studied. No need to add those names just to populate every family.
Q03 recurrence and Q04 usefulness remain open. Q06 now has an explicit counterexample: a source module boundary can exist within a single coordinated deployment. Q05 gains a question: should interruption/focus contracts shape composition before components are selected? Neither question is closed by these documentary probes.
WP-0003 owns the next evidence: inspect a pinned application for feature imports and release boundaries; execute rendering versus request-failure probes; exercise modal return with a removed invoker. Keep the earlier navigation runtime checks and WP-0002 human-validation obligation open. Evidence gaps do not prevent this authorized exploratory expansion, and the expansion does not satisfy the M1/M2 gates.