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:
parent
642163a1ed
commit
50c68575f1
15 changed files with 402 additions and 6 deletions
2
SCOPE.md
2
SCOPE.md
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
7
TREE.md
7
TREE.md
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
38
research/candidates/DerivedState.md
Normal file
38
research/candidates/DerivedState.md
Normal 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.
|
||||
40
research/candidates/FailureBoundary.md
Normal file
40
research/candidates/FailureBoundary.md
Normal 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.
|
||||
42
research/candidates/FocusReturn.md
Normal file
42
research/candidates/FocusReturn.md
Normal 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.
|
||||
39
research/candidates/IslandsOfInteractivity.md
Normal file
39
research/candidates/IslandsOfInteractivity.md
Normal 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.
|
||||
39
research/candidates/PresentationModel.md
Normal file
39
research/candidates/PresentationModel.md
Normal 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.
|
||||
40
research/candidates/VerticalFeatureSlice.md
Normal file
40
research/candidates/VerticalFeatureSlice.md
Normal 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.
|
||||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
85
research/reviews/PatternBreadthExpansion.md
Normal file
85
research/reviews/PatternBreadthExpansion.md
Normal 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.
|
||||
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue