Phase acceptance delivered (eight connected drafts, VC-01/VC-02, M1-SeedReview). Independent human review, fresh-scenario replication and M1 re-assessment move to residual FEP-WP-0009 (origin_ref FEP-WP-0002). WP-0003/0004/0008 dependencies now point to FEP-WP-0009-T03. M1 gate remains open. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 260325@bnt-lap001 Assistant-Session: 9fd4a535-80cb-4d87-825e-ac95a9162531
13 KiB
Frontend Patterns Research Program
Status: ongoing · Program established: 2026-09-24
Start with Research Protocol, the executable research bench, then the validation cases. Source families and pattern names below are a research agenda, not completed evidence.
1. Objective
Develop a coherent Alexander-style pattern language for frontend architecture and design that is useful to both human practitioners and software agents.
The work should move from source collection toward:
- common vocabulary,
- recurring forces,
- candidate patterns,
- pattern relations,
- generative sequences,
- architecture decompositions,
- technology mappings,
- machine-readable retrieval and reasoning.
2. Research thesis
Frontend architecture is not fundamentally organized around frameworks.
It is organized around recurring decisions concerning:
- authority,
- addressability,
- projection,
- interaction,
- mutation,
- synchronization,
- reconciliation,
- composition,
- execution,
- quality boundaries.
Named architectures and frameworks are configurations or implementations of these decisions.
3. First research case
Use Ryan Carniato's "The Grand Unifying Architecture of Frontend" as the first extraction exercise.
Research tasks:
- reconstruct its Navigation → Content → Affordance model,
- identify implicit assumptions,
- extract candidate patterns,
- identify the forces each pattern resolves,
- identify where server-authority assumptions cease to hold,
- compare against local-first architectures,
- compare against hypermedia architectures,
- compare against SPA and server-component architectures,
- map findings into the responsibility model,
- retain useful concepts without treating the article as the canonical ontology.
4. Research streams
Stream A — Historical GUI architecture
Study:
- MVC,
- MVP,
- Presentation Model,
- Presentation / Domain Separation,
- Flux / Redux,
- Elm architecture,
- event-driven UI.
Goal:
Identify durable state, dependency and interaction patterns that predate current web frameworks.
Stream B — Web navigation and hypermedia
Study:
- document web,
- REST/hypermedia,
- progressive enhancement,
- HTML forms,
- HTMX-style server interaction,
- browser navigation semantics.
Goal:
Understand addressability, navigation, mutation and server projection.
Stream C — Rendering and execution
Study:
- CSR,
- SSR,
- SSG,
- hydration,
- partial hydration,
- islands,
- server components,
- resumability,
- streaming,
- edge execution.
Goal:
Separate projection patterns from execution placement and delivery mechanisms.
Stream D — State authority and synchronization
Study:
- client/server state,
- remote caches,
- optimistic UI,
- local-first,
- CRDTs,
- event sourcing,
- offline-first,
- subscriptions,
- push/pull synchronization.
Goal:
Establish a coherent authority/synchronization/reconciliation language.
Stream E — Composition and organizational architecture
Study:
- component composition,
- feature slicing,
- microfrontends,
- design systems,
- frontend platform architecture,
- backend-for-frontend patterns,
- monorepos and deployment independence.
Goal:
Separate software composition from ownership and deployment boundaries.
Stream F — Quality patterns
Study:
- accessibility,
- progressive enhancement,
- performance,
- fault containment,
- security,
- privacy,
- observability,
- recovery.
Goal:
Represent cross-cutting frontend qualities as architectural patterns and forces rather than afterthoughts.
5. Research method
For each source or architecture:
Step 1 — Extract claims
Record what the source says without prematurely normalizing terminology.
Step 2 — Identify forces
Ask what competing constraints make the proposed solution useful.
Step 3 — Extract candidate patterns
Look for recurring configurations rather than named technologies.
Step 4 — Normalize vocabulary
Map source-specific language into the current canon where possible.
Step 5 — Find counterexamples
Test whether the pattern still holds under:
- offline operation,
- local authority,
- real-time collaboration,
- very low interaction density,
- high interaction density,
- independent deployment,
- unreliable networks,
- strong accessibility requirements.
Step 6 — Establish relations
Record:
- requires,
- enables,
- refines,
- alternatives,
- conflicts,
- resulting contexts.
Step 7 — Test generativity
Ask whether the pattern helps produce a next architectural decision.
Step 8 — Promote cautiously
Move a concept into patterns/ only when it is sufficiently stable and reusable.
6. Initial source families
Create a source catalog spanning:
- Christopher Alexander and pattern-language literature,
- Martin Fowler GUI architecture,
- REST and hypermedia literature,
- Redux / Elm / Flux,
- Feature-Sliced Design,
- microfrontends,
- local-first,
- web.dev rendering literature,
- Patterns.dev,
- framework architectural documentation,
- accessibility and progressive-enhancement literature,
- distributed-systems synchronization concepts.
7. Initial pattern extraction targets
Priority candidate patterns:
Authority
- Server Authority
- Local Authority
- Replicated Authority
- Derived State
- Single Writer
Address & navigation
- URL as Application State
- Resource Address
- Hierarchical Route
- Progressive Navigation
Projection
- Static Projection
- Server Projection
- Client Projection
- Streaming Projection
- Islands of Interactivity
Interaction
- Local Interaction State
- Immediate Feedback
- Pending State
- Optimistic Overlay
Synchronization
- Invalidate and Reproject
- Pull Synchronization
- Push Synchronization
- Persistent Subscription
- Conflict-Free Merge
- Explicit Conflict
Composition
- Presentation / Domain Separation
- Vertical Feature Slice
- Independent Feature Boundary
- Backend for Frontend
Quality
- Progressive Enhancement
- Failure Boundary
- Accessible by Construction
- Performance Budget
- Observable Interaction
8. Validation architectures
The emerging language should be tested against at least these application types:
- mostly-static publication,
- e-commerce storefront,
- administrative CRUD application,
- high-interaction SaaS workspace,
- real-time dashboard,
- collaborative editor,
- offline field application,
- local-first personal tool,
- large microfrontend estate,
- mobile-web/PWA application.
A useful language should explain all ten without forcing them into one preferred architecture.
9. Agentic use cases
The infospace should eventually support prompts such as:
Given this application description, identify the dominant forces and propose applicable patterns.
Explain why the current architecture exhibits this failure mode.
Which patterns are incompatible with our offline requirement?
Decompose this framework architecture into technology-independent patterns.
What pattern should be considered next after choosing server authority and streaming projection?
Compare two architectures in terms of forces, not framework features.
This requires graph-friendly metadata and stable identifiers.
10. Execution and review gates
The phases are ordered by evidence dependencies, not calendar deadlines. A failed review gate returns to the relevant research question; it does not force promotion. Workplan files own execution status. This table defines intended outcomes.
| Phase | Work record | Deliverable and exit criterion |
|---|---|---|
| M0 — Scaffold | FEP-WP-0001, finished | Intent, repository structure and State Hub integration exist. |
| M1 — Seed investigation | FEP-WP-0002, finished (M1 revise/defer; independent validation in FEP-WP-0009) | Reconciled schema; first source case and local-first contrast; 6–10 connected draft patterns; two completed case walkthroughs with evidence and counterexamples. |
| M2 — Broaden and challenge | FEP-WP-0003, blocked (M1 open; bounded exploration permitted) | Evidence from all six streams; coverage matrix for all ten application types; revise, merge or reject candidates; complete at least four further contrasting cases. |
| M3 — Retrieval and empirical use | FEP-WP-0004, blocked (M1/M2 prerequisites) | Validated metadata and graph export; held-out retrieval cases; at least two real repository studies tied to revisions; publish limitations. |
M1 does not require a large catalog. Six to ten patterns is a working scope cap, not a maturity score. Expand toward the original 20–30 candidate ambition only when additional patterns explain decisions the seed corpus cannot express.
First research cycle
- T01 of FEP-WP-0002 resolves the metadata contradictions in
REVIEW.mdwith worked examples. Source extraction can begin while that contract is explored. - T02 completes the Carniato case and an independently sourced local-first case. Use the source-review template and record claims before normalizing vocabulary.
- T03 selects a connected subset around authority, addressability, projection, local interaction, mutation and reconciliation. Walk through VC-01 and VC-02.
- Review the evidence and question ledger. Record rejected patterns, missing responsibilities and ordering failures as carefully as supporting examples.
- Write an M1 review under
research/reviews/with pass/revise/defer for each criterion and links to artifacts. Hand unresolved work into the next workplan.
Working rhythm and ownership
The executing repository agent owns artifact updates and State Hub synchronization;
owner: codex does not imply a scheduled or autonomous background run. Each research
session takes one bounded question or case, records evidence, updates the question
ledger and task status, and commits and syncs the result. Review at every phase gate
and whenever contradictory evidence changes the ontology. Review roles are explicit
in the resulting review document; a self-review must be identified as such.
User-directed operational reuse — 2026-09-27
WP-0008 establishes the minimal discovery → use receipt → bounded improvement loop with monthly human oversight. Qualified draft use and feedback-led research can proceed before M1/M2/M3; those gates still control their original evidence/admission claims. Independent-human validation remains unclaimed and is not a routine operation dependency. Prioritize real consumer outcomes and instrumentation over unprompted source expansion. Explicit scheduler/executor proof is required before claiming unattended operation.
11. Open research questions
- Is the current responsibility model minimal?
- Should mutation be separate from intent?
- Is reconciliation a responsibility or a synchronization subfamily?
- Is addressability a frontend responsibility or a system-level concern?
- Should rendering and projection remain distinct terms?
- How should temporal behavior be represented?
- How should pattern strength or evidence be measured?
- Can pattern selection be meaningfully represented as constraint solving?
- How should anti-patterns be modeled?
- Can architecture health be described as unresolved or contradictory forces?
12. Definition of useful progress
The project is not advanced by adding pattern names alone.
Useful progress means improving one or more of:
- conceptual precision,
- pattern reuse,
- relation quality,
- generative power,
- evidence quality,
- applicability across architectures,
- retrieval quality for humans and agents.
13. Continuous learning and transparent evolution
Milestones are finite review boundaries within an ongoing research program. Passing a gate does not finish the language. Evidence can narrow, supersede or demote a pattern; preserve those changes as part of the knowledge base.
FEP-WP-0006 establishes the evidence baseline and evolution method. Its generated report separates current maturity, support tiers, coverage, usefulness and learning outcomes. Early rapid learning and later diminishing returns are testable expectations, not a prescribed curve or catalog-size target. Measure prospective comparable cycles, retain unknown historical effort, and record corroboration separately from consequential revisions. Broaden contexts when they expose new decisions; improve structure when ambiguity prevents use; seek independent validation when mechanisms stabilize. Keep fresh evaluation tasks separate from consumed development anchors, including the immutable language pilot.