frontend-patterns/research/catalog/SourceCatalog.md

246 lines
18 KiB
Markdown
Raw Normal View History

# Source Catalog
## Identified primary sources
| ID | Source and edition | State | Prepared input |
| --- | --- | --- | --- |
| SRC-0001 | Ryan Carniato, [The Grand Unifying Architecture of Frontend](https://dev.to/playfulprogramming/the-grand-unifying-architecture-of-frontend-bhk); web edition accessed 2026-09-24; displayed Sep 22, year unverified | extracted; [initial manual review](../cases/CarniatoGrandUnifyingArchitecture.md); live draft completed; admission rejected ([review](../reviews/LLMConnectPilot.md)) | [Authority and feedback packet](../bench/infospaces/carniato-authority-01/artifacts/sources/source.md) |
| SRC-0002 | Martin Kleppmann, Adam Wiggins, Peter van Hardenberg, Mark McGranaghan, [Local-first software](https://www.inkandswitch.com/essay/local-first/); April 2019 web essay; DOI 10.1145/3359591.3359737; accessed 2026-09-24 | extracted; [initial manual review](../cases/LocalFirstAuthority.md); live bounded investigation completed; no candidates justified ([review](../reviews/TruncationDiagnosis.md)) | [Local authority packet](../bench/infospaces/local-first-authority-01/artifacts/sources/source.md) |
| SRC-0003 | Joplin, [Architecture](https://joplinapp.org/help/dev/spec/architecture/); living docs accessed 2026-09-25, release/date unknown | extracted; E04 in [expansion review](../reviews/LocalFirstEvidenceExpansion.md) | Manual located review |
| SRC-0004 | Joplin, [Synchronisation](https://joplinapp.org/help/dev/spec/sync/); living docs accessed 2026-09-25, release/date unknown | extracted; E05–E06 in expansion review | Manual located review |
| SRC-0005 | Joplin, [What is a conflict?](https://joplinapp.org/help/apps/conflict/); living docs accessed 2026-09-25, release/date unknown | extracted; live run completed, editorial revision needed | [Conflict packet](../bench/sources/joplin-conflicts.md) |
| SRC-0006 | Obsidian, [Troubleshoot Sync](https://obsidian.md/help/sync/troubleshoot); living docs accessed 2026-09-25, release/date unknown | extracted; live run completed, proposed relations rejected | [Conflict packet](../bench/sources/obsidian-conflicts.md) |
| SRC-0007 | Obsidian, [Back up files](https://obsidian.md/help/backup); living docs accessed 2026-09-25, release/date unknown | extracted; E11–E12 in expansion review | Manual located review |
| SRC-0008 | Kubernetes, [API Concepts](https://kubernetes.io/docs/reference/using-api/api-concepts/); living docs accessed 2026-09-25, revision unknown | T01; bounded live extraction and editorial review | [Stale-write packet](../bench/sources/kubernetes-stale-writes.md) |
| SRC-0009 | GitLab, [Repository files API](https://docs.gitlab.com/api/repository_files/); living docs accessed 2026-09-25, revision unknown | T02; manual located review | [Transactional review](../reviews/TransactionalEvidenceExpansion.md) |
| SRC-0010 | Stripe, [Idempotent requests](https://docs.stripe.com/api/idempotent_requests); living docs accessed 2026-09-25, revision unknown | T03; manual located review | Transactional review |
| SRC-0011 | React Router, [Network Concurrency Management](https://reactrouter.com/explanation/concurrency); living docs accessed 2026-09-25, revision unknown | T04; manual located review | Transactional review |
| SRC-0012 | React Router, [Pending UI](https://reactrouter.com/start/framework/pending-ui); living docs accessed 2026-09-25, revision unknown | T05; manual located review | Transactional review |
Queued does not mean reviewed. Bibliography and hashes live in each workspace's
source artifact and manifest. [Preparation review](../reviews/SchemaAndSourcePreparation.md)
records selection, provenance limits and remaining work. Claim IDs will resolve
inside completed source reviews; preparation packets do not establish a pattern.
## Source families to investigate
| Family | Representative sources | Research purpose |
|---|---|---|
| Pattern languages | Christopher Alexander, Hillside/PLoP literature | Pattern form, relations, generative sequences |
| GUI architecture | Martin Fowler, MVC/MVP/Presentation Model | Presentation/domain/state separation |
| Unidirectional state | Flux, Redux, Elm | State transition and dependency direction |
| Hypermedia | REST, HTML forms, HTMX | Navigation, mutation, server projection |
| Rendering | web.dev, framework docs, Patterns.dev | CSR/SSR/SSG/hydration/islands/streaming |
| Local-first | Ink & Switch and related work | Local authority, sync, conflict handling |
| Distributed state | CRDT/event sourcing/sync literature | Reconciliation and replication |
| Modularity | Feature-Sliced Design | Feature boundaries and dependency rules |
| Organizational architecture | Microfrontend literature | Independent ownership/deployment |
| Quality | WCAG, progressive enhancement, web performance | Cross-cutting architectural forces |
## Catalog policy
Each source should eventually capture:
- source identity,
- date/version,
- scope,
- vocabulary used,
- candidate patterns,
- dominant forces,
- assumptions,
- contradictions,
- known implementations,
- evidence quality.
2026-09-24: initial authority-focused reviews are recorded as extracted. They have
not passed a full-source or independent review gate. Live calls failed before any
artifact generation. See [AuthorityPilot](../reviews/AuthorityPilot.md) for findings,
execution evidence and limitations.
2026-09-25: local-first `-06` completed after replacing padded claim tables with
compact records. Its bounded negative result does not complete full-source review.
Source state remains extracted; recurrence and independent implementations remain open.
## Pinned frontend implementations — 2026-09-25
SRC-0013 Zulip, SRC-0014 Element Web, SRC-0015 Matrix JS SDK and SRC-0016 Matrix
client-server specification v1.15 are inspected in the
[frontend recovery review](../reviews/FrontendRecoveryImplementations.md).
The [manifest](../reviews/FrontendRecoverySources.json) records exact revisions,
file URLs and SHA-256 hashes. State: bounded static review; no runtime validation.
Element and its SDK are one implementation family. Complete-pattern recurrence
remains unproven despite two partial draft-preservation uses.
## Executable SDK follow-up — 2026-09-25
SRC-0017: published matrix-js-sdk 42.3.0; npm archive and integrity recorded in
[experiment provenance](../experiments/matrix-recovery/provenance.json). State:
executed under controlled synthetic transport. Four cases pass; server guarantees
remain assumptions. This is the SRC-0014/0015 implementation family, not another
independent application. [Review](../reviews/MatrixRecoveryExperiment.md).
## Navigation/rendering documents — 2026-09-26
| ID | Primary source | Scope / state |
| --- | --- | --- |
| SRC-0018 | [htmx documentation](https://htmx.org/docs/) | History and representation caching; bounded documentary review |
| SRC-0019 | [htmx hx-boost](https://htmx.org/attributes/hx-boost/) | Native link/form enhancement; same publisher family as SRC-0018 |
| SRC-0020 | [SvelteKit form actions](https://svelte.dev/docs/kit/form-actions) | Native forms and scoped use:enhance contract |
| SRC-0021 | [SvelteKit page options](https://svelte.dev/docs/kit/page-options) | Initial HTML and optional client execution; same family as SRC-0020 |
| SRC-0022 | [MDN History.pushState](https://developer.mozilla.org/en-US/docs/Web/API/History/pushState) | Browser history API; not an application known use |
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.
## Browser boundary execution — 2026-09-26
SRC-0029: React 19.3.0 / React DOM 19.3.0 and Radix Dialog 1.1.23, with pinned
transitive dependencies and inspected published modules. [Provenance](../experiments/boundary-recovery/provenance.json)
and lockfile identify archives/integrity; synthetic Chromium fixture, not a deployed
application. One mechanism study, not independent full-pattern recurrence.
SRC-0030: [Radix Dialog documentation](https://www.radix-ui.com/primitives/docs/components/dialog),
Content API and keyboard interaction; living page accessed 2026-09-26, revision
unknown. Displayed documentation version differs from executed package; runtime
claims use the pinned archive, not an assumption that the page exactly matches it.
[Results and limits](../reviews/BoundaryRecoveryExperiment.md).
SRC-0029 follow-up: [nested dismissal isolation](../reviews/NestedDismissalIsolation.md)
reuses the same pinned packages across two browsers/build modes. Instrumented and
experimentally modified bundles are explicitly separated from the unmodified control;
this is additional evidence from the same family, not a new independent use.
SRC-0029 further follow-up: [experimental ownership routing](../reviews/NestedOwnershipRouting.md)
compares unchanged packages with an explicitly modified in-memory Escape mechanism.
The routed results are evidence for our proposed design, not observations of shipped
vendor behavior. Current raw control also reproduces production wrong-owner dismissal
in the new controlled fixture. Prior receipts remain unchanged.
## Feature organization and release contrast — 2026-09-26
| ID | Source | Revision / evidence scope |
| --- | --- | --- |
| SRC-0031 | [FSD todo example](https://github.com/feature-sliced/examples/tree/3050d1080506823df79c77457b96b47a835f87c8/todo-app) | 3050d1080506823df79c77457b96b47a835f87c8; feature interfaces and application build |
| SRC-0032 | [React microfrontends root-config](https://github.com/react-microfrontends/root-config/tree/b5414dcf7b4ecda95f11ada3821e30d2acfd9e4e) | b5414dcf7b4ecda95f11ada3821e30d2acfd9e4e; composition and workflow |
| SRC-0033 | [React microfrontends navbar](https://github.com/react-microfrontends/navbar/tree/55ff88e74714d12d3e3447250e34a2b7742e91f6) | 55ff88e74714d12d3e3447250e34a2b7742e91f6; lifecycle and workflow, same family as SRC-0032 |
| SRC-0034 | [single-spa recommended setup](https://single-spa.js.org/docs/recommended-setup/) | Living 6.x documentation; runtime binding and deployment contracts |
| SRC-0035 | [webpack Module Federation](https://webpack.js.org/concepts/module-federation/) | Living documentation; separately built containers and shared dependencies |
Accessed 2026-09-26. [17-file hash manifest](../reviews/FeatureDeploymentSources.json)
and [claims D01–D09](../reviews/FeatureDeploymentBoundaries.md). Static example-source
inspection, no builds or deployments run. Documentation revisions unknown; examples
and docs do not establish independent recurrence of a complete release contract.
## Native-module release experiment — 2026-09-26
SRC-0036: [feature release fixture](../experiments/feature-release/README.md), authored
synthetic host/artifacts with locked Playwright and hashed browser/input provenance.
Seven cases in Chromium/Firefox, 14/14 expected observations. Distinct from the earlier
pinned source examples; no deployed release workflow was executed.
SRC-0037: [MDN dynamic import](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/import#module_namespace_object),
Module namespace object; living documentation accessed 2026-09-26, exact revision
unknown. Context for evaluated module reuse versus HTTP caching. [Review](../reviews/FeatureReleaseExperiment.md).
SRC-0036 follow-up: [activation conflicts and update reload](../reviews/ActivationConflictsAndReload.md)
adds an authored conditional-write server and reload policy with sessionStorage.
Three HTTP cases plus nine cases per browser, 21/21 expected observations; negative
controls included. Same synthetic evidence family, not an independently deployed use.
## Prospective navigation runtime — 2026-09-27
SRC-0038: [navigation/history fixture](../experiments/navigation-history/README.md),
htmx 2.0.11 and Playwright 1.63.0 with locked packages and hashed inputs/browser
binaries. Authored HTTP application; 18 browser cases plus explicit HTTP validator
sequence repeated twice. [NH01–NH06 review](../reviews/NavigationHistoryExperiment.md),
preregistered prospective corroboration. This is one implementation family, not
an independent production deployment. Initial launch failure receipt preserved.
## Navigation focus and feedback — 2026-09-27
SRC-0038 follow-up: [NF01–NF06](../reviews/NavigationFocusExperiment.md), separate
focus runner and authored policy using the same pinned htmx fixture family. 22
registered keyboard/DOM rows; not assistive-technology validation or independent use.
SRC-0039: [W3C Understanding Focus Order](https://www.w3.org/WAI/WCAG22/Understanding/focus-order.html)
and [Status Messages](https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html),
primary interpretive guidance accessed 2026-09-27; living revision unknown. One W3C
family, not two application uses. NF review limits the inference to meaningful focus
order and programmatically exposed feedback; no conformance claim from this fixture.
SRC-0040: [htmx events](https://htmx.org/events/), lifecycle-hook reference accessed
2026-09-27, living revision unknown. Same htmx family as SRC-0018/0019 and SRC-0038.
Runtime conclusions use pinned 2.0.11 code and hashed receipts.
SRC-0038 ownership follow-up, 2026-09-27: [NO01–NO06](../reviews/NavigationOwnershipExperiment.md)
compares the unchanged prior focus policy with an authored generation/focus guard.
24 completed rows, guard 12/12 full obligations versus baseline 0/12, with initial
keyboard-helper failures retained. Same fixture family and pinned htmx package.
SRC-0040 event documentation and pinned loadHistoryFromServer source delimit the
experimental history-XHR adapter; no vendor patch or production claim.
## Zulip navigation/search source contrast — 2026-09-27
SRC-0013 follow-up at existing pinned revision
`5b06fa3d34f28fa01f459fbf3ba053e3c0858e9c`: [ZN01–ZN08](../reviews/ZulipNavigationSourceStudy.md),
[twelve-file hash/range manifest](../reviews/ZulipNavigationSources.json). New hash,
search, message-fetch/list and continuation paths, distinct from prior draft/send
reads; same application family. Static partial mechanisms and limiting branches; no
upstream tests or application executed. No full-pattern/no-script or bug claim.
## Authority/projection comparison — 2026-09-27
Six primary documents read under LEARN-0015; living versions accessed 2026-09-27,
exact revisions unknown. [AP01–AP06](../reviews/AuthorityProjectionComparison.md)
records section locators, interpretations and limits. Documentary evidence only.
| ID | Source | Family |
| --- | --- | --- |
| SRC-0041 | [Firestore offline data](https://firebase.google.com/docs/firestore/manage-data/enable-offline) | Firestore |
| SRC-0042 | [Firestore transactions and batched writes](https://firebase.google.com/docs/firestore/manage-data/transactions) | Firestore |
| SRC-0043 | [Automerge introduction](https://automerge.org/docs/hello/) | Automerge |
| SRC-0021 (reused) | [SvelteKit page options](https://svelte.dev/docs/kit/page-options) | SvelteKit |
| SRC-0044 | [SvelteKit loading data](https://svelte.dev/docs/kit/load) | SvelteKit |
| SRC-0045 | [React renderToPipeableStream](https://react.dev/reference/react-dom/server/renderToPipeableStream) | React |
Six documents are four families, not six independent applications. No runtime,
source-code verification, complete pattern recurrence or new maturity is established.
## Capability contract boundary — 2026-09-27
A pasted AI-chat exploration (`history/260927-ComplexWebAppUiComponents_chatgpt.txt`)
was reviewed as a **leads document only, not a source**: it is unauthored, has
unverifiable broken citation markers, and does not meet this catalog's primary-source
bar. It is not assigned a SRC ID and carries no evidentiary weight. The two real specs
it pointed to were read directly instead.
| ID | Source and edition | Family |
| --- | --- | --- |
| SRC-0046 | [MDN, Using custom elements](https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_custom_elements); living docs, accessed 2026-09-27, revision unknown | Web Components |
| SRC-0047 | [webpack, Module Federation](https://webpack.js.org/concepts/module-federation/); living docs, accessed 2026-09-27, webpack 5, revision unknown | webpack |
[CC01–CC03](../reviews/CapabilityContractSources.md) locates Custom Elements'
attribute/event/lifecycle mechanism and Module Federation's expose/consume module
contract, and the boundary between them: neither spec defines a semantic
props/events/commands/slots capability contract as a first-class concept. Documentary
evidence only; no application/runtime execution. See
[Capability Contract Boundary](../candidates/CapabilityContractBoundary.md) (CAND-0018).