Broaden pattern hypotheses across presentation composition and quality

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a0cffe-206f-7323-89d3-b20ca4cf4bf9
This commit is contained in:
tegwick 2026-09-26 21:46:28 +02:00
parent 642163a1ed
commit 50c68575f1
15 changed files with 402 additions and 6 deletions

View file

@ -24,7 +24,7 @@ and agent reference, following the preliminary direction in `INTENT.md`.
Research scaffold with an infospace-bench adapter as of 2026-09-26. The adapter
has deterministic integration tests, completed bounded live investigations through
llm-connect, and three synthetic architecture walkthroughs (VC-03 provisional). Ten developed research
llm-connect, and three synthetic architecture walkthroughs (VC-03 provisional). Sixteen developed research
drafts remain hypotheses; none is canonically admitted. No frontend application runtime exists. See `research/bench/README.md`,
`REVIEW.md` (the initial review) and `workplans/` for follow-up work.

View file

@ -242,15 +242,21 @@ research/bench/sources/joplin-conflicts.md
research/bench/sources/kubernetes-stale-writes.md
research/bench/sources/obsidian-conflicts.md
research/candidates/ConflictCopy.md
research/candidates/DerivedState.md
research/candidates/ExplicitReconciliation.md
research/candidates/FailureBoundary.md
research/candidates/FocusReturn.md
research/candidates/InvalidateAndReproject.md
research/candidates/IslandsOfInteractivity.md
research/candidates/LocalCommitBoundary.md
research/candidates/LocalDraftState.md
research/candidates/MutationOutcomeTracking.md
research/candidates/PendingSynchronization.md
research/candidates/PresentationModel.md
research/candidates/ProgressiveEnhancement.md
research/candidates/URLAddressableState.md
research/candidates/VersionCheckedMutation.md
research/candidates/VerticalFeatureSlice.md
research/cases/CarniatoGrandUnifyingArchitecture.md
research/cases/LocalFirstAuthority.md
research/catalog/PatternCandidateCatalog.md
@ -364,6 +370,7 @@ research/reviews/MatrixRecoveryExperiment.md
research/reviews/NavigationCoverage.md
research/reviews/NavigationRenderingEvidence.md
research/reviews/ObsidianConflictScreen.json
research/reviews/PatternBreadthExpansion.md
research/reviews/RecoveryReviewMetrics.json
research/reviews/RecoveryWalkthroughReview.md
research/reviews/ResearchOptimization.md

View file

@ -43,3 +43,8 @@ Current follow-up: [shared guidance corrections](reviews/SharedGuidanceRevision.
and [navigation/rendering evidence](reviews/NavigationRenderingEvidence.md), with
[provisional VC-03](walkthroughs/VC03-ContentPublication.md). Ten developed hypotheses;
M1 remains open and the broader M2 evidence gate is not satisfied.
Latest expansion: [six broader candidates and decision probes](reviews/PatternBreadthExpansion.md)
cover presentation logic, derived state, feature organization, client activation,
failure containment and modal focus. Current total: sixteen developed hypotheses;
previous counts above describe earlier slices. No additional runtime or model runs.

View file

@ -0,0 +1,38 @@
---
title: Derived State
status: draft
maturity: hypothesis
families: [projection, affordance]
scales: [L3, L6]
admission: research-candidate-only
---
# Derived State
Context: totals, filters and enabled states can be calculated from existing inputs.
Keeping separate mutable copies risks disagreement; repeated computation costs time.
Proposed solution: identify the authoritative inputs and derive a read-only result
from a coherent input snapshot. Cache expensive results only with explicit dependency
and invalidation rules. An independently editable proposal is a new input, not a
computed value to overwrite when its source changes.
Result: fewer mutable synchronization obligations, at the cost of computation and
cache bookkeeping. Deriving from stale input does not make the output fresh. Time,
locale and access context must be represented when they influence the result.
Evidence: B02 locates Redux selector guidance. This is a documented mechanism,
not a requirement to adopt Redux or a global store. Alternative: a maintained
materialized view when recomputation is too expensive, with its consistency contract.
Historical snapshots and user overrides must retain their distinct meanings.
Proposed relations: supplies [Presentation Model](PresentationModel.md); refreshing
inputs through [Invalidate and Reproject](InvalidateAndReproject.md) is conditional.
Next test: change a filtered record and its filter together; verify list and total
use the same snapshot, then challenge a cached result with a changed locale.
Evidence locators: [breadth review](../reviews/PatternBreadthExpansion.md).
All relations are research proposals; no canonical identity or admitted graph edges.
The next test is planned, not executed. Known uses of the complete proposed contract
have not been verified in this investigation.

View file

@ -0,0 +1,40 @@
---
title: Failure Boundary
status: draft
maturity: hypothesis
families: [quality, composition]
scales: [L5, L6]
admission: research-candidate-only
---
# Failure Boundary
Context: a failing region should not remove unrelated useful work. Continuity
competes with the cost of partial-state recovery and boundary coordination.
Proposed solution: define which failures a boundary contains, replace the affected
region with usable feedback, and give recovery an explicit reset/retry contract.
Keep required navigation and recoverable intent outside the failing subtree when
appropriate. If containment itself fails, define the next enclosing recovery path.
Result: some work can continue; shared state corruption or global runtime failure
may still cross the boundary. Resetting presentation does not undo remote effects.
Never replay a write merely because a region remounted. Distinguish expected domain
rejection and network errors from uncaught rendering faults.
Evidence: B05 locates React's rendering-error boundary and documented exclusions;
this proposal does not claim it catches every asynchronous or event-handler error.
Alternative: fail the entire task when partial continuation would mislead users.
A fallback is a product state that needs accessible controls, not just logging.
Proposed relations: [Mutation Outcome Tracking](MutationOutcomeTracking.md) handles
uncertain writes separately; [Focus Return](FocusReturn.md) applies to modal dismissal,
not automatically to every error replacement.
Next test: inject render, event-handler, network and fallback failures separately;
record which are contained and whether retry duplicates an accepted operation.
Evidence locators: [breadth review](../reviews/PatternBreadthExpansion.md).
All relations are research proposals; no canonical identity or admitted graph edges.
The next test is planned, not executed. Known uses of the complete proposed contract
have not been verified in this investigation.

View file

@ -0,0 +1,42 @@
---
title: Focus Return
status: draft
maturity: hypothesis
families: [quality, affordance]
scales: [L6]
admission: research-candidate-only
---
# Focus Return
Context: a modal task temporarily interrupts another keyboard workflow. Closing it
can leave users without a meaningful continuation point. Continuity competes with
changing document structure and the next task's needs.
Proposed solution: retain the invocation context and choose a meaningful focus
location inside the modal. On closing, return focus to the invoker when appropriate;
if it disappeared or completion changes the next step, choose a logical surviving
target. Define ownership for nested dialogs so an obsolete close callback cannot
move focus out of the current task.
Result: interruption has an explicit return path, but dynamic targets need lifecycle
handling. Do not steal focus on unrelated background updates or apply modal focus
containment to ordinary page regions. This narrow candidate does not claim complete
accessibility conformance; labeling, inert background and keyboard behavior remain
part of the containing dialog contract.
Evidence: B06 locates APG's modal focus guidance and return exceptions. Generalizing
to route transitions requires separate evidence. Alternative: inline interaction
when modal interruption adds no value. Defer merging this into a broader accessible
interaction pattern until contrasting cases support that scope.
Proposed relation: can support [Explicit Reconciliation](ExplicitReconciliation.md)
when comparison uses a modal; reconciliation does not require a modal.
Next test: close nested dialogs, delete the invoking row, and complete a task that
creates the next target; verify keyboard and assistive-technology behavior.
Evidence locators: [breadth review](../reviews/PatternBreadthExpansion.md).
All relations are research proposals; no canonical identity or admitted graph edges.
The next test is planned, not executed. Known uses of the complete proposed contract
have not been verified in this investigation.

View file

@ -0,0 +1,39 @@
---
title: Islands of Interactivity
status: draft
maturity: hypothesis
families: [projection, execution]
scales: [L3, L5]
admission: research-candidate-only
---
# Islands of Interactivity
Context: a document contains a few interactive regions surrounded by readable
content. Client execution cost competes with interaction readiness and coordination.
Proposed solution: deliver useful document content, then activate selected regions
with separately scoped client behavior and an explicit loading policy. Declare what
works before activation and how regions exchange shared state, if needed.
Result: the execution surface can shrink, but delayed activation, shared dependencies
and cross-region state introduce complexity. A region is not a security sandbox or
proof of fault containment. Loading several runtimes can erase the intended savings.
A dense application with tightly coupled interactions may benefit from one client
root instead; measure before claiming faster delivery.
Evidence: B04 locates Astro's client-island mechanism. Server islands are a separate
mechanism and are not generalized here. No application benchmark or independent
full-pattern recurrence is established by this documentation.
Proposed relations: can complement [Progressive Enhancement](ProgressiveEnhancement.md)
but does not guarantee a no-script task; [Failure Boundary](FailureBoundary.md)
requires its own contract.
Next test: fail one region's script download and delay another; verify document
reading, pre-activation controls, focus continuity and cross-region consistency.
Evidence locators: [breadth review](../reviews/PatternBreadthExpansion.md).
All relations are research proposals; no canonical identity or admitted graph edges.
The next test is planned, not executed. Known uses of the complete proposed contract
have not been verified in this investigation.

View file

@ -0,0 +1,39 @@
---
title: Presentation Model
status: draft
maturity: hypothesis
families: [composition, affordance]
scales: [L4, L6]
admission: research-candidate-only
---
# Presentation Model
Context: a screen contains presentation decisions that are difficult to exercise
through widget APIs. Testability and reuse compete with binding complexity.
Proposed solution: represent presentation state and decisions independently of the
concrete controls; adapt that model into the view and translate interaction back
into intents. Domain authority stays outside presentation decisions. Specify the
binding direction and ownership of each editable value to avoid feedback loops.
Result: logic can be tested without mounting the full interface, but model/view
synchronization becomes another failure surface. This is broader than Local Draft
State: a presentation model may contain selection and enablement without any draft.
Do not create a second editable copy of every domain object by default.
Evidence: B01 locates Fowler's named pattern and its synchronization trade-off.
The source is a historical draft, not a verified deployment in this research.
Alternative: keep a trivial screen's logic in its view; another controller style
may be sufficient. Full-pattern recurrence here remains unverified.
Proposed relations: may contain [Local Draft State](LocalDraftState.md) and compute
[Derived State](DerivedState.md); neither is mandatory.
Next test: edit, refresh and change selection; verify ownership of draft versus
server observation and ensure a binding update does not trigger duplicate commands.
Evidence locators: [breadth review](../reviews/PatternBreadthExpansion.md).
All relations are research proposals; no canonical identity or admitted graph edges.
The next test is planned, not executed. Known uses of the complete proposed contract
have not been verified in this investigation.

View file

@ -0,0 +1,40 @@
---
title: Vertical Feature Slice
status: draft
maturity: hypothesis
families: [composition]
scales: [L4]
admission: research-candidate-only
---
# Vertical Feature Slice
Context: one product change spans UI, state and service interaction scattered across
technical folders. Change locality competes with reuse and cross-feature coordination.
Proposed solution: group the frontend parts of a cohesive capability behind an
explicit public interface. Declare permitted dependencies and compose capabilities
at a higher boundary. Put shared primitives where their ownership is clear; do not
hide cross-feature workflows inside another feature's private modules.
Result: a capability can evolve internally, but interface design and shared concepts
need maintenance. A folder or barrel export does not enforce isolation. This is a
source-code boundary, not proof of independent deployment, team autonomy, security
isolation or an end-to-end backend service boundary.
Evidence: B03 locates Feature-Sliced Design's product-oriented grouping and public
API rules. The proposed pattern abstracts those mechanisms without adopting its
entire layer taxonomy. Full-pattern application recurrence remains unverified.
Alternative: technical layers for a small cohesive application; extract shared
behavior only when its ownership and consumers justify the new coupling.
Proposed relation: may contain [Presentation Model](PresentationModel.md); feature
boundaries need not coincide with [Failure Boundary](FailureBoundary.md).
Next test: change one capability's storage adapter; inspect imports and consumer
contracts. Change only deployment cadence next and identify new obligations.
Evidence locators: [breadth review](../reviews/PatternBreadthExpansion.md).
All relations are research proposals; no canonical identity or admitted graph edges.
The next test is planned, not executed. Known uses of the complete proposed contract
have not been verified in this investigation.

View file

@ -103,3 +103,22 @@ documentation mechanisms do not establish full-pattern recurrence or decision be
Six existing drafts received [shared guidance corrections](../reviews/SharedGuidanceRevision.md)
outside the frozen pilot. Stop adding drafts for this slice; next gather implementation
evidence and challenge the proposed contracts.
## Broader decisions — 2026-09-26
The user's request to broaden supersedes the previous slice's pause on candidate
addition. Six further developed hypotheses bring the current total to **sixteen**:
| Draft | Family / scale | Decision |
| --- | --- | --- |
| [Presentation Model](../candidates/PresentationModel.md) | composition, affordance / L4, L6 | Separate presentation decisions from widget APIs |
| [Derived State](../candidates/DerivedState.md) | projection, affordance / L3, L6 | Compute values instead of maintaining competing mutable copies |
| [Vertical Feature Slice](../candidates/VerticalFeatureSlice.md) | composition / L4 | Organize a capability behind a public module interface |
| [Islands of Interactivity](../candidates/IslandsOfInteractivity.md) | projection, execution / L3, L5 | Activate selected document regions |
| [Failure Boundary](../candidates/FailureBoundary.md) | quality, composition / L5, L6 | Contain a declared failure class and define recovery |
| [Focus Return](../candidates/FocusReturn.md) | quality, affordance / L6 | Resume keyboard work after modal interruption |
[Breadth review](../reviews/PatternBreadthExpansion.md) records primary claims,
non-overlap, counterexamples, synthetic probes and deferred candidates. Initial seed
rows above are historical inventory, not additional developed records. No canonical
admission, proven recurrence or demonstrated presentation benefit is claimed.

View file

@ -93,3 +93,19 @@ independent application. [Review](../reviews/MatrixRecoveryExperiment.md).
Living pages accessed 2026-09-26, exact revisions unknown; no runtime checks.
[Claim locators, dispositions and limits](../reviews/NavigationRenderingEvidence.md).
## Presentation, composition and quality expansion — 2026-09-26
| ID | Primary source | Scope / revision |
| --- | --- | --- |
| SRC-0023 | [Fowler: Presentation Model](https://martinfowler.com/eaaDev/PresentationModel.html) | 2004-07-19 historical draft; presentation/view synchronization |
| SRC-0024 | [Redux: Deriving Data with Selectors](https://redux.js.org/usage/deriving-data-selectors) | Minimal stored state and computed views |
| SRC-0025 | [FSD slices/segments](https://github.com/feature-sliced/documentation/blob/6691676119fc998b6d58a2b32582c0074a072f2d/src/content/docs/docs/reference/slices-segments.mdx) | Pinned revision 6691676119fc998b6d58a2b32582c0074a072f2d; product grouping and public interfaces |
| SRC-0026 | [Astro islands](https://docs.astro.build/en/concepts/islands/) | Client activation boundaries |
| SRC-0027 | [React Component](https://react.dev/reference/react/Component#catching-rendering-errors-with-an-error-boundary) | Rendering-error fallback and exclusions |
| SRC-0028 | [WAI APG modal dialog](https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/) | Focus entry/return and exceptions |
All accessed 2026-09-26; exact revisions unknown unless stated. Bounded documentary
review, no runtime or deployment validation. [Claims B01–B06 and dispositions](../reviews/PatternBreadthExpansion.md).
These sources address different mechanisms and do not establish independent
recurrence of any one complete candidate.

View file

@ -71,3 +71,11 @@ are 18/24 for each condition after four corrections. No presentation benefit is
established; equal totals do not establish equivalence. Worksheet declares model
authorship and prior aggregate-result exposure. Q04 remains open; future rubrics
should split compound obligations before execution.
## Breadth update — 2026-09-26
[Six-candidate review](../reviews/PatternBreadthExpansion.md) extends Q03/Q05/Q06.
Q06 separates module interfaces, client activation, fault containment and independent
release contracts. Q05 asks when modal focus/lifecycle requirements must shape
composition. Q03 still lacks verified recurrence for these complete contracts;
Q04 still lacks demonstrated decision benefit. Synthetic probes do not close cases.

View file

@ -4,13 +4,15 @@ WP-0003 T01 working matrix. Entries mark located evidence, not completed streams
| Stream | Current evidence | Key gap / disagreement |
| --- | --- | --- |
| A — GUI architecture | No dedicated primary-source comparison yet | Presentation/domain separation and competing historical models |
| A — GUI architecture | [B01/B02](PatternBreadthExpansion.md): Presentation Model and selectors | Independent application uses and comparison with other controller/state models |
| B — Navigation/hypermedia | [N01–N04/N06](NavigationRenderingEvidence.md): htmx, SvelteKit and browser history | Framework examples versus pinned application behavior; direct entry versus transient state |
| C — Rendering/execution | [N05](NavigationRenderingEvidence.md): SvelteKit HTML/client options; existing SRC-0001 interpretation | Pre-rendering, hydration, islands and streaming lack comparable implementation coverage |
| C — Rendering/execution | [N05](NavigationRenderingEvidence.md): SvelteKit HTML/client options; existing SRC-0001 interpretation | [B04](PatternBreadthExpansion.md) adds client-island docs; implementation comparisons and performance evidence remain missing |
| D — Authority/synchronization | [Transactional evidence](TransactionalEvidenceExpansion.md), [frontend recovery](FrontendRecoveryImplementations.md), [Matrix experiment](MatrixRecoveryExperiment.md) | Synthetic receiver cannot prove production durability/deduplication; canonical admission remains open |
| E — Composition/organization | Seed catalog only | Independent feature/deployment boundaries and their operational cost |
| F — Quality | Retention/recovery guidance; navigation resilience requirements | No accessibility/performance validation; no-script support is narrower than resilience |
| E — Composition/organization | [B03](PatternBreadthExpansion.md): feature grouping and public interfaces | Independent feature/deployment boundaries and their operational cost |
| F — Quality | Retention/recovery guidance; [B05/B06](PatternBreadthExpansion.md): rendering failures and modal focus | No accessibility/performance validation; no-script support is narrower than resilience |
Next slice is implementation evidence for B/C, not expansion of the candidate count.
The user subsequently requested broader coverage: six drafts and documentary probes
were added in the breadth review. Implementation evidence for B/C remains pending.
All six streams now have some documentary material; none is thereby complete.
VC-01/02 are synthetic reviewed drafts; VC-03 is provisional; VC-04–10 remain planned.
No source count is used as a recurrence score or evidence-gate substitute.

View file

@ -0,0 +1,85 @@
# 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](https://martinfowler.com/eaaDev/PresentationModel.html), 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](https://redux.js.org/usage/deriving-data-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](https://github.com/feature-sliced/documentation/blob/6691676119fc998b6d58a2b32582c0074a072f2d/src/content/docs/docs/reference/slices-segments.mdx), 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](https://docs.astro.build/en/concepts/islands/), 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](https://react.dev/reference/react/Component#catching-rendering-errors-with-an-error-boundary), 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](https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/), 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](../candidates/PresentationModel.md) | Where does presentation behavior live independently of widgets? | A trivial page needs no extra object; Local Draft State concerns intent lifetime instead |
| [Derived State](../candidates/DerivedState.md) | 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](../candidates/VerticalFeatureSlice.md) | Which changes belong behind one module interface? | A coupled backend/API contract can still force coordinated releases |
| [Islands of Interactivity](../candidates/IslandsOfInteractivity.md) | Which document regions need client activation? | A tightly coupled editor may justify one runtime root; enhancement and fault isolation remain separate |
| [Failure Boundary](../candidates/FailureBoundary.md) | Which failure can this region contain, and how does it recover? | Partial continuation can be unsafe; rendering recovery cannot reverse a payment |
| [Focus Return](../candidates/FocusReturn.md) | 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](../../workplans/FEP-WP-0003-contrasting-schools.md) 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.

View file

@ -65,3 +65,19 @@ Next bounded action under T01: select and pin one implementation, test direct lo
no-script navigation, history misses and full/fragment cache behavior. Under T02,
independently review the trace and resolve the offline availability gap before
calling it complete. T03 remains todo; keep M1 human validation in WP-0002 T03.
## User-directed pattern broadening — 2026-09-26
The user explicitly requested broader pattern coverage, superseding the previous
slice's candidate-count pause. T01 remains progress: reviewed SRC-0023–0028 and
added six hypotheses (Presentation Model, Derived State, Vertical Feature Slice,
Islands of Interactivity, Failure Boundary, Focus Return). Sixteen drafts now exist;
M1's original seed cap describes its initial subset, not a global admission quota.
See research/reviews/PatternBreadthExpansion.md for B01–B06, five synthetic decision
probes, counterexamples and deferred candidates. No new runtime/inference calls.
T02/T03 remain todo: probes do not complete VC-04–10 or M2. Next evidence under T01:
pin an application and inspect feature imports versus release coupling; exercise
render versus request failures and modal focus after invoker removal. Previous
navigation/history/cache checks remain open. WP-0002 retains independent-human
validation. No frozen-pilot edits, canonical promotion or evidence-gate completion.