frontend-patterns/reference/0.1/index.json
tegwick 53bb65e7a6 Complete the bounded language 0.1 research preview
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a0e241-8285-7a63-8c0c-51c9cb824dc3
2026-09-27 11:49:48 +02:00

1324 lines
47 KiB
JSON

{
"schema_version": 1,
"version": "0.1",
"status": "research-preview",
"corpus_revision": "8cc7016e1fbcb08b670091a174672fcdd8d07640",
"candidates": [
{
"id": "CAND-0001",
"path": "research/candidates/ConflictCopy.md",
"title": "Conflict Copy",
"sha256": "24f250d89ac17d96df287d67c275b5320b48c8356b57ae126a6c941e92a1c6e9",
"status": "draft",
"maturity": "hypothesis",
"decision": "Preserve competing versions instead of silently losing one.",
"evidence": [
{
"kind": "documentary",
"family": "Joplin",
"ref": "research/reviews/LocalFirstEvidenceExpansion.md",
"scope": "Documented detected-note conflict copy."
},
{
"kind": "documentary",
"family": "Obsidian",
"ref": "research/reviews/LocalFirstEvidenceExpansion.md",
"scope": "Optional conflict-file mode, not default behavior."
}
],
"independent_full_contract_uses": null,
"review": {
"assessed_at": "2026-09-26",
"reviewer": "Codex",
"role": "author-model",
"independent_human": false,
"last_substantive_review_date": null
},
"gaps": [
"Authorized retention and export are separate decisions.",
"Complete contract recurrence and fault-tested deployed behavior remain unverified."
],
"superseded_by": [],
"subset": "core",
"classification": {
"path": "research/candidates/ConflictCopy.md",
"sha256": "24f250d89ac17d96df287d67c275b5320b48c8356b57ae126a6c941e92a1c6e9",
"title": "Conflict Copy",
"responsibilities": [
"reconciliation"
],
"forces": {
"improves": [
"recoverability",
"information-completeness"
],
"worsens": [
"cognitive-load",
"reconciliation-complexity"
]
},
"rationale": "Preserves divergent content for later semantic resolution; unresolved copies impose review and merge work."
},
"classification_status": "provisional author-model interpretation",
"families": [
"synchronization"
],
"scales": [
"L2",
"L6"
]
},
{
"id": "CAND-0002",
"path": "research/candidates/LocalCommitBoundary.md",
"title": "Local Commit Boundary",
"sha256": "22165fc2979e8f4d8859b34417cb71e7b5ec7a8440ad045aee2383d499648013",
"status": "draft",
"maturity": "hypothesis",
"decision": "Define when a local change is durably accepted.",
"evidence": [
{
"kind": "documentary",
"family": "Ink & Switch",
"ref": "research/reviews/LocalFirstEvidenceExpansion.md",
"scope": "Local-first motivation."
},
{
"kind": "documentary",
"family": "Joplin",
"ref": "research/reviews/LocalFirstEvidenceExpansion.md",
"scope": "Local storage and synchronization architecture."
}
],
"independent_full_contract_uses": null,
"review": {
"assessed_at": "2026-09-26",
"reviewer": "Codex",
"role": "author-model",
"independent_human": false,
"last_substantive_review_date": null
},
"gaps": [
"No executed storage crash or backup test.",
"Local acceptance is not off-device recovery."
],
"superseded_by": [],
"subset": "core",
"classification": {
"path": "research/candidates/LocalCommitBoundary.md",
"sha256": "22165fc2979e8f4d8859b34417cb71e7b5ec7a8440ad045aee2383d499648013",
"title": "Local Commit Boundary",
"responsibilities": [
"authority",
"mutation"
],
"forces": {
"improves": [
"recoverability",
"offline-usability"
],
"worsens": [
"implementation-complexity",
"perceived-responsiveness"
]
},
"rationale": "Defines acknowledged local acceptance separately from visual input; atomic persistence and waiting for completion add cost."
},
"classification_status": "provisional author-model interpretation",
"families": [
"mutation",
"authority"
],
"scales": [
"L2",
"L6"
]
},
{
"id": "CAND-0003",
"path": "research/candidates/PendingSynchronization.md",
"title": "Pending Synchronization",
"sha256": "9c5cb0f4ea4e6f4406ce55513ca2c252172427a49d8280ae1a9c713f1d11b070",
"status": "draft",
"maturity": "hypothesis",
"decision": "Keep accepted local intent visible until synchronization resolves.",
"evidence": [
{
"kind": "documentary",
"family": "Joplin",
"ref": "research/reviews/LocalFirstEvidenceExpansion.md",
"scope": "Per-item synchronization metadata."
}
],
"independent_full_contract_uses": null,
"review": {
"assessed_at": "2026-09-26",
"reviewer": "Codex",
"role": "author-model",
"independent_human": false,
"last_substantive_review_date": null
},
"gaps": [
"Atomic supersession and retry contract proposed, not storage-tested."
],
"superseded_by": [],
"subset": "core",
"classification": {
"path": "research/candidates/PendingSynchronization.md",
"sha256": "9c5cb0f4ea4e6f4406ce55513ca2c252172427a49d8280ae1a9c713f1d11b070",
"title": "Pending Synchronization",
"responsibilities": [
"synchronization"
],
"forces": {
"improves": [
"offline-usability",
"recoverability"
],
"worsens": [
"freshness",
"reconciliation-complexity"
]
},
"rationale": "Keeps locally accepted work queued across disconnection; remote freshness is delayed and retry/reconciliation contracts are required."
},
"classification_status": "provisional author-model interpretation",
"families": [
"synchronization"
],
"scales": [
"L2",
"L6"
]
},
{
"id": "CAND-0004",
"path": "research/candidates/ExplicitReconciliation.md",
"title": "Explicit Reconciliation",
"sha256": "d48a40aab7417b8b8f8406094c84b9e90d0ca8c2f94d6e616d0b80499dc04959",
"status": "draft",
"maturity": "hypothesis",
"decision": "Resolve divergent content while retaining provenance.",
"evidence": [
{
"kind": "documentary",
"family": "Joplin",
"ref": "research/reviews/LocalFirstEvidenceExpansion.md",
"scope": "Documented manual conflict resolution."
},
{
"kind": "documentary",
"family": "Obsidian",
"ref": "research/reviews/LocalFirstEvidenceExpansion.md",
"scope": "Conflict comparison workflow."
}
],
"independent_full_contract_uses": null,
"review": {
"assessed_at": "2026-09-26",
"reviewer": "Codex",
"role": "author-model",
"independent_human": false,
"last_substantive_review_date": null
},
"gaps": [
"Atomic resolution/provenance UI not executed.",
"Overlap with Conflict Copy remains an open merge question."
],
"superseded_by": [],
"subset": "core",
"classification": {
"path": "research/candidates/ExplicitReconciliation.md",
"sha256": "d48a40aab7417b8b8f8406094c84b9e90d0ca8c2f94d6e616d0b80499dc04959",
"title": "Explicit Reconciliation",
"responsibilities": [
"reconciliation",
"affordance"
],
"forces": {
"improves": [
"information-completeness",
"recoverability"
],
"worsens": [
"cognitive-load",
"continuity-of-interaction"
]
},
"rationale": "Makes semantic resolution an explicit comparison task; deciding among versions interrupts ordinary work."
},
"classification_status": "provisional author-model interpretation",
"families": [
"synchronization",
"affordance"
],
"scales": [
"L2",
"L6"
]
},
{
"id": "CAND-0005",
"path": "research/candidates/LocalDraftState.md",
"title": "Local Draft State",
"sha256": "8e5f427975c76083c80b895bc68b7130b249be5129c2854f3df11cc374b4b240",
"status": "draft",
"maturity": "hypothesis",
"decision": "Separate unfinished intent from refreshed authoritative data.",
"evidence": [
{
"kind": "documentary",
"family": "Kubernetes / GitLab / React Router",
"ref": "research/reviews/TransactionalEvidenceExpansion.md",
"scope": "Rejection and pending-input mechanisms motivate recovery."
},
{
"kind": "static-code",
"family": "Zulip",
"ref": "research/reviews/FrontendRecoveryImplementations.md",
"scope": "Pinned composer draft storage; partial lifecycle."
},
{
"kind": "static-code",
"family": "Element / Matrix",
"ref": "research/reviews/FrontendRecoveryImplementations.md",
"scope": "Pinned composer draft restoration; partial lifecycle."
},
{
"kind": "runtime",
"family": "authored release fixture",
"ref": "research/reviews/ActivationConflictsAndReload.md",
"scope": "Same-tab preservation/refusal/discard and post-navigation schema check."
}
],
"independent_full_contract_uses": null,
"review": {
"assessed_at": "2026-09-26",
"reviewer": "Codex",
"role": "author-model",
"independent_human": false,
"last_substantive_review_date": null
},
"gaps": [
"No native-unload, crash, multiple-tab or access-revocation guarantee.",
"Full base/draft/current merge contract is not verified in deployed frontends."
],
"superseded_by": [],
"subset": "core",
"classification": {
"path": "research/candidates/LocalDraftState.md",
"sha256": "8e5f427975c76083c80b895bc68b7130b249be5129c2854f3df11cc374b4b240",
"title": "Local Draft State",
"responsibilities": [
"affordance",
"mutation"
],
"forces": {
"improves": [
"recoverability",
"continuity-of-interaction"
],
"worsens": [
"implementation-complexity",
"privacy"
]
},
"rationale": "Preserves editable intent separately from refreshed observations; lifetime management adds complexity and sensitive-data retention risk."
},
"classification_status": "provisional author-model interpretation",
"families": [
"affordance",
"mutation"
],
"scales": [
"L6"
]
},
{
"id": "CAND-0006",
"path": "research/candidates/VersionCheckedMutation.md",
"title": "Version-Checked Mutation",
"sha256": "6a3335ae2fa1de51c95dcbfa8d766d988a3f7a9604fb608b8a0bcf9a10b64198",
"status": "draft",
"maturity": "hypothesis",
"decision": "Reject an operation whose observed base is stale.",
"evidence": [
{
"kind": "documentary",
"family": "Kubernetes",
"ref": "research/reviews/TransactionalEvidenceExpansion.md",
"scope": "Conditional PUT; precise version mechanism."
},
{
"kind": "documentary",
"family": "GitLab",
"ref": "research/reviews/TransactionalEvidenceExpansion.md",
"scope": "Optional last_commit_id; different failure surface."
},
{
"kind": "runtime",
"family": "authored release fixture",
"ref": "research/reviews/ActivationConflictsAndReload.md",
"scope": "Related conditional activation-map mechanism in one process, not the full frontend pattern."
}
],
"independent_full_contract_uses": null,
"review": {
"assessed_at": "2026-09-26",
"reviewer": "Codex",
"role": "author-model",
"independent_human": false,
"last_substantive_review_date": null
},
"gaps": [
"Distributed atomicity and complete frontend recurrence remain unverified.",
"Refetch does not authorize overwriting conflicting intent."
],
"superseded_by": [],
"subset": "core",
"classification": {
"path": "research/candidates/VersionCheckedMutation.md",
"sha256": "6a3335ae2fa1de51c95dcbfa8d766d988a3f7a9604fb608b8a0bcf9a10b64198",
"title": "Version-Checked Mutation",
"responsibilities": [
"authority",
"mutation",
"reconciliation"
],
"forces": {
"improves": [
"authoritative-consistency"
],
"worsens": [
"cognitive-load"
]
},
"rationale": "Checks stale bases at commit and exposes rejected proposals for reconsideration; contention adds repeated user review."
},
"classification_status": "provisional author-model interpretation",
"families": [
"mutation",
"authority"
],
"scales": [
"L2",
"L6"
]
},
{
"id": "CAND-0007",
"path": "research/candidates/MutationOutcomeTracking.md",
"title": "Mutation Outcome Tracking",
"sha256": "e04cb835fd054bfaf88616375bd0262deffb2801ea04105be92543bfa9582179",
"status": "draft",
"maturity": "hypothesis",
"decision": "Retain operation identity when transport outcome is uncertain.",
"evidence": [
{
"kind": "documentary",
"family": "Stripe",
"ref": "research/reviews/TransactionalEvidenceExpansion.md",
"scope": "Idempotency mechanism."
},
{
"kind": "documentary",
"family": "React Router",
"ref": "research/reviews/TransactionalEvidenceExpansion.md",
"scope": "Cancellation does not imply server rollback."
},
{
"kind": "static-code",
"family": "Zulip",
"ref": "research/reviews/FrontendRecoveryImplementations.md",
"scope": "Pinned send/recovery state."
},
{
"kind": "static-code",
"family": "Element / Matrix",
"ref": "research/reviews/FrontendRecoveryImplementations.md",
"scope": "Pinned client and SDK transaction/echo paths."
},
{
"kind": "runtime",
"family": "Element / Matrix",
"ref": "research/reviews/MatrixRecoveryExperiment.md",
"scope": "Real SDK with synthetic transport: lost acknowledgement, identity reuse and authoritative echo."
}
],
"independent_full_contract_uses": null,
"review": {
"assessed_at": "2026-09-26",
"reviewer": "Codex",
"role": "author-model",
"independent_human": false,
"last_substantive_review_date": null
},
"gaps": [
"No production server deduplication or complete retention-window guarantee.",
"Cancelling local UI is not remote compensation."
],
"superseded_by": [],
"subset": "core",
"classification": {
"path": "research/candidates/MutationOutcomeTracking.md",
"sha256": "e04cb835fd054bfaf88616375bd0262deffb2801ea04105be92543bfa9582179",
"title": "Mutation Outcome Tracking",
"responsibilities": [
"mutation",
"reconciliation"
],
"forces": {
"improves": [
"recoverability",
"information-completeness"
],
"worsens": [
"implementation-complexity"
]
},
"rationale": "Tracks uncertain write outcomes and resolves them through receipt lookup or bounded replay; identity/retention state adds cost."
},
"classification_status": "provisional author-model interpretation",
"families": [
"mutation",
"synchronization"
],
"scales": [
"L2",
"L6"
]
},
{
"id": "CAND-0008",
"path": "research/candidates/InvalidateAndReproject.md",
"title": "Invalidate and Reproject",
"sha256": "47c405adbc3caac2383768ed3d30b6a2e7ff1f44f4954c340049e78944227844",
"status": "draft",
"maturity": "hypothesis",
"decision": "Refresh a projection after mutation without equating acceptance and visibility.",
"evidence": [
{
"kind": "documentary",
"family": "React Router",
"ref": "research/reviews/TransactionalEvidenceExpansion.md",
"scope": "Concurrency and pending-state guidance."
}
],
"independent_full_contract_uses": null,
"review": {
"assessed_at": "2026-09-26",
"reviewer": "Codex",
"role": "author-model",
"independent_human": false,
"last_substantive_review_date": null
},
"gaps": [
"Read-your-write and acceptance/refresh distinction still proposed.",
"No independent deployed full-contract observation."
],
"superseded_by": [],
"subset": "core",
"classification": {
"path": "research/candidates/InvalidateAndReproject.md",
"sha256": "47c405adbc3caac2383768ed3d30b6a2e7ff1f44f4954c340049e78944227844",
"title": "Invalidate and Reproject",
"responsibilities": [
"synchronization",
"projection"
],
"forces": {
"improves": [
"freshness"
],
"worsens": [
"bandwidth-cost",
"cache-invalidation-complexity"
]
},
"rationale": "Refreshes affected observations after accepted writes; scope and ordering of network/cache work need explicit management."
},
"classification_status": "provisional author-model interpretation",
"families": [
"projection",
"synchronization"
],
"scales": [
"L3",
"L6"
]
},
{
"id": "CAND-0009",
"path": "research/candidates/URLAddressableState.md",
"title": "URL-addressable State",
"sha256": "07d524c3c0dd080bd42ff5dd79a36e6ecd2a8654f07ece880b483477f7ca4497",
"status": "draft",
"maturity": "hypothesis",
"decision": "Make a navigable state reconstructible from its URL.",
"evidence": [
{
"kind": "documentary",
"family": "htmx",
"ref": "research/reviews/NavigationRenderingEvidence.md",
"scope": "History behavior and history-cache misses."
},
{
"kind": "documentary",
"family": "Web platform",
"ref": "research/reviews/NavigationRenderingEvidence.md",
"scope": "pushState changes history, not server dereferenceability."
},
{
"kind": "runtime",
"family": "htmx in authored public-catalog fixture",
"ref": "research/reviews/NavigationHistoryExperiment.md",
"scope": "NH01\u2013NH06: native/enhanced routes, history hit/miss, actual browser cache ordering and missing-Vary negative control; explicit Node validator checks separate."
},
{
"kind": "runtime",
"family": "htmx in authored public-catalog fixture",
"ref": "research/reviews/NavigationOwnershipExperiment.md",
"scope": "NO01\u2013NO06: ordered history/success/error races, prior policy 0/12 full obligations versus guarded 12/12; separate focus ownership. Same fixture family; pinned history-XHR adapter."
},
{
"kind": "static-code",
"family": "Zulip",
"ref": "research/reviews/ZulipNavigationSourceStudy.md",
"scope": "ZN01\u2013ZN08 at pinned revision: partial hash/list/cache mechanisms and non-modal continuation contrast. No application/test execution, no no-script claim, no complete pattern recurrence."
}
],
"independent_full_contract_uses": null,
"review": {
"assessed_at": "2026-09-27",
"reviewer": "Codex",
"role": "author-model",
"independent_human": false,
"last_substantive_review_date": "2026-09-27"
},
"gaps": [
"Independent application recurrence and human/AT validation remain unverified.",
"Pending history disclosure, multiple history misses, redirects, nonzero swap delays, bfcache, lifecycle cleanup, interrupted/late enhancement and offline availability remain open.",
"Zulip auxiliary target/anchor callbacks, deferred editing focus and search callback wiring remain unverified; static guards do not prove whole-application ownership."
],
"superseded_by": [],
"subset": "extension",
"classification": {
"path": "research/candidates/URLAddressableState.md",
"sha256": "07d524c3c0dd080bd42ff5dd79a36e6ecd2a8654f07ece880b483477f7ca4497",
"title": "URL-addressable State",
"responsibilities": [
"address"
],
"forces": {
"improves": [
"addressability"
],
"worsens": [
"privacy",
"compatibility-pressure"
]
},
"rationale": "Makes selected views reconstructible from addresses; exposure and evolving URL contracts constrain what can be encoded."
},
"classification_status": "provisional author-model interpretation",
"families": [
"address",
"projection"
],
"scales": [
"L3"
]
},
{
"id": "CAND-0010",
"path": "research/candidates/ProgressiveEnhancement.md",
"title": "Progressive Enhancement",
"sha256": "1dc3885ef896b9a7cb61af11fa8893484eb1e13454207326abc7250d5ca4382b",
"status": "draft",
"maturity": "hypothesis",
"decision": "Keep essential actions usable when enhancement is unavailable.",
"evidence": [
{
"kind": "documentary",
"family": "htmx",
"ref": "research/reviews/NavigationRenderingEvidence.md",
"scope": "Boosted links and forms."
},
{
"kind": "documentary",
"family": "SvelteKit",
"ref": "research/reviews/NavigationRenderingEvidence.md",
"scope": "Form actions and rendering/page options."
},
{
"kind": "runtime",
"family": "htmx in authored public-catalog fixture",
"ref": "research/reviews/NavigationHistoryExperiment.md",
"scope": "NH01\u2013NH06: native/enhanced routes, history hit/miss, actual browser cache ordering and missing-Vary negative control; explicit Node validator checks separate."
},
{
"kind": "runtime",
"family": "htmx in authored public-catalog fixture",
"ref": "research/reviews/NavigationFocusExperiment.md",
"scope": "NF01\u2013NF06: Tab/Enter navigation, raw versus authored focus/status policy, held-response ownership and background update; DOM evidence only, not AT speech."
},
{
"kind": "runtime",
"family": "htmx in authored public-catalog fixture",
"ref": "research/reviews/NavigationOwnershipExperiment.md",
"scope": "NO01\u2013NO06: ordered history/success/error races, prior policy 0/12 full obligations versus guarded 12/12; separate focus ownership. Same fixture family; pinned history-XHR adapter."
},
{
"kind": "static-code",
"family": "Zulip",
"ref": "research/reviews/ZulipNavigationSourceStudy.md",
"scope": "ZN01\u2013ZN08 at pinned revision: partial hash/list/cache mechanisms and non-modal continuation contrast. No application/test execution, no no-script claim, no complete pattern recurrence."
}
],
"independent_full_contract_uses": null,
"review": {
"assessed_at": "2026-09-27",
"reviewer": "Codex",
"role": "author-model",
"independent_human": false,
"last_substantive_review_date": "2026-09-27"
},
"gaps": [
"Independent application recurrence and human/AT validation remain unverified.",
"Pending history disclosure, multiple history misses, redirects, nonzero swap delays, bfcache, lifecycle cleanup, interrupted/late enhancement and offline availability remain open.",
"Zulip auxiliary target/anchor callbacks, deferred editing focus and search callback wiring remain unverified; static guards do not prove whole-application ownership."
],
"superseded_by": [],
"subset": "extension",
"classification": {
"path": "research/candidates/ProgressiveEnhancement.md",
"sha256": "1dc3885ef896b9a7cb61af11fa8893484eb1e13454207326abc7250d5ca4382b",
"title": "Progressive Enhancement",
"responsibilities": [
"execution",
"affordance"
],
"forces": {
"improves": [
"recoverability"
],
"worsens": [
"implementation-complexity"
]
},
"rationale": "Preserves an essential baseline when optional scripts fail; equivalent task semantics and recovery across paths add design work."
},
"classification_status": "provisional author-model interpretation",
"families": [
"quality",
"execution",
"affordance"
],
"scales": [
"L3",
"L6"
]
},
{
"id": "CAND-0011",
"path": "research/candidates/PresentationModel.md",
"title": "Presentation Model",
"sha256": "5ff03b5799b0a9e5ec6b54b21034720d89dbc8ffde7c4cdcf71616cdf57baf49",
"status": "draft",
"maturity": "hypothesis",
"decision": "Separate presentation decisions from view mechanisms.",
"evidence": [
{
"kind": "documentary",
"family": "Fowler",
"ref": "research/reviews/PatternBreadthExpansion.md",
"scope": "Named pattern and illustrative model/view discussion."
}
],
"independent_full_contract_uses": null,
"review": {
"assessed_at": "2026-09-26",
"reviewer": "Codex",
"role": "author-model",
"independent_human": false,
"last_substantive_review_date": null
},
"gaps": [
"No executed model/view integration or independently reviewed full-contract use."
],
"superseded_by": [],
"subset": "extension",
"classification": {
"path": "research/candidates/PresentationModel.md",
"sha256": "5ff03b5799b0a9e5ec6b54b21034720d89dbc8ffde7c4cdcf71616cdf57baf49",
"title": "Presentation Model",
"responsibilities": [
"projection",
"affordance"
],
"forces": {
"improves": [
"testability",
"portability"
],
"worsens": [
"implementation-complexity"
]
},
"rationale": "Separates presentation decisions from widget APIs; model/view binding and synchronization add a failure surface."
},
"classification_status": "provisional author-model interpretation",
"families": [
"composition",
"affordance"
],
"scales": [
"L4",
"L6"
]
},
{
"id": "CAND-0012",
"path": "research/candidates/DerivedState.md",
"title": "Derived State",
"sha256": "9f29b9f1296a52b83f08dfd97437c4dc16e4949ddac1ff3b3830e3fc9831bd4f",
"status": "draft",
"maturity": "hypothesis",
"decision": "Compute a result from explicit authoritative inputs.",
"evidence": [
{
"kind": "documentary",
"family": "Redux",
"ref": "research/reviews/PatternBreadthExpansion.md",
"scope": "Selector guidance, not a requirement for a global store."
}
],
"independent_full_contract_uses": null,
"review": {
"assessed_at": "2026-09-26",
"reviewer": "Codex",
"role": "author-model",
"independent_human": false,
"last_substantive_review_date": null
},
"gaps": [
"Snapshot coherence and changed-locale cache test still planned."
],
"superseded_by": [],
"subset": "extension",
"classification": {
"path": "research/candidates/DerivedState.md",
"sha256": "9f29b9f1296a52b83f08dfd97437c4dc16e4949ddac1ff3b3830e3fc9831bd4f",
"title": "Derived State",
"responsibilities": [
"projection"
],
"forces": {
"improves": [
"authoritative-consistency"
],
"worsens": [
"client-compute-cost",
"cache-invalidation-complexity"
]
},
"rationale": "Projects coherent inputs without separately mutable derived copies; recomputation and cached dependency tracking cost work."
},
"classification_status": "provisional author-model interpretation",
"families": [
"projection",
"affordance"
],
"scales": [
"L3",
"L6"
]
},
{
"id": "CAND-0013",
"path": "research/candidates/VerticalFeatureSlice.md",
"title": "Vertical Feature Slice",
"sha256": "d6b332b9c104a079bd4b72512b8ddd1a889199b2e2e531753c411688053e647a",
"status": "draft",
"maturity": "hypothesis",
"decision": "Group a capability across UI, state and behavior with explicit interfaces.",
"evidence": [
{
"kind": "documentary",
"family": "Feature-Sliced Design",
"ref": "research/reviews/PatternBreadthExpansion.md",
"scope": "Layer/slice and public-interface guidance."
},
{
"kind": "static-code",
"family": "Feature-Sliced Design",
"ref": "research/reviews/FeatureDeploymentBoundaries.md",
"scope": "Pinned todo-app interfaces coexist with one application build."
}
],
"independent_full_contract_uses": null,
"review": {
"assessed_at": "2026-09-26",
"reviewer": "Codex",
"role": "author-model",
"independent_human": false,
"last_substantive_review_date": null
},
"gaps": [
"Build/import enforcement not executed.",
"Feature organization does not establish independent activation."
],
"superseded_by": [],
"subset": "extension",
"classification": {
"path": "research/candidates/VerticalFeatureSlice.md",
"sha256": "d6b332b9c104a079bd4b72512b8ddd1a889199b2e2e531753c411688053e647a",
"title": "Vertical Feature Slice",
"responsibilities": [
"composition"
],
"forces": {
"improves": [
"feature-change-frequency"
],
"worsens": [
"implementation-complexity"
]
},
"rationale": "Localizes a capability change behind an interface; shared concepts and interfaces require maintenance. Benefit means coping with frequent changes, not changing their frequency."
},
"classification_status": "provisional author-model interpretation",
"families": [
"composition"
],
"scales": [
"L4"
]
},
{
"id": "CAND-0014",
"path": "research/candidates/IslandsOfInteractivity.md",
"title": "Islands of Interactivity",
"sha256": "821a1497da10c02ae11fa6f56cb8e205a4f32c40b39770ab8ca3f907561a260a",
"status": "draft",
"maturity": "hypothesis",
"decision": "Activate selected interactive regions within a document.",
"evidence": [
{
"kind": "documentary",
"family": "Astro",
"ref": "research/reviews/PatternBreadthExpansion.md",
"scope": "Client-island mechanism and execution placement."
}
],
"independent_full_contract_uses": null,
"review": {
"assessed_at": "2026-09-26",
"reviewer": "Codex",
"role": "author-model",
"independent_human": false,
"last_substantive_review_date": null
},
"gaps": [
"No executed island fixture, performance comparison or complete recurrence study."
],
"superseded_by": [],
"subset": "extension",
"classification": {
"path": "research/candidates/IslandsOfInteractivity.md",
"sha256": "821a1497da10c02ae11fa6f56cb8e205a4f32c40b39770ab8ca3f907561a260a",
"title": "Islands of Interactivity",
"responsibilities": [
"projection",
"execution"
],
"forces": {
"improves": [
"client-compute-cost"
],
"worsens": [
"implementation-complexity"
]
},
"rationale": "Scopes activation to selected regions; intended compute savings compete with loading and inter-region coordination. Savings require measurement."
},
"classification_status": "provisional author-model interpretation",
"families": [
"projection",
"execution"
],
"scales": [
"L3",
"L5"
]
},
{
"id": "CAND-0015",
"path": "research/candidates/FailureBoundary.md",
"title": "Failure Boundary",
"sha256": "a6e76ed17a92baade683d5df96fa8ecd066c593661e6a14983a86d046e7d9c2c",
"status": "draft",
"maturity": "hypothesis",
"decision": "Contain specified failure classes while preserving useful neighboring work.",
"evidence": [
{
"kind": "documentary",
"family": "React",
"ref": "research/reviews/PatternBreadthExpansion.md",
"scope": "Error boundary scope and exclusions."
},
{
"kind": "runtime",
"family": "React",
"ref": "research/reviews/BoundaryRecoveryExperiment.md",
"scope": "Real package in authored host: render/event/request distinction and fallback escalation."
}
],
"independent_full_contract_uses": null,
"review": {
"assessed_at": "2026-09-26",
"reviewer": "Codex",
"role": "author-model",
"independent_human": false,
"last_substantive_review_date": null
},
"gaps": [
"Synthetic host, not full application recurrence.",
"Boundary cannot imply containment for all asynchronous failures."
],
"superseded_by": [],
"subset": "extension",
"classification": {
"path": "research/candidates/FailureBoundary.md",
"sha256": "a6e76ed17a92baade683d5df96fa8ecd066c593661e6a14983a86d046e7d9c2c",
"title": "Failure Boundary",
"responsibilities": [
"composition",
"affordance"
],
"forces": {
"improves": [
"fault-containment",
"continuity-of-interaction"
],
"worsens": [
"implementation-complexity"
]
},
"rationale": "Contains declared failures and supplies recovery interaction; partial-state recovery and escalation add complexity."
},
"classification_status": "provisional author-model interpretation",
"families": [
"quality",
"composition"
],
"scales": [
"L5",
"L6"
]
},
{
"id": "CAND-0016",
"path": "research/candidates/FocusReturn.md",
"title": "Focus Return",
"sha256": "9149c2f563eafcfec983a9285949225840d97804568309bd16bbb1eb6b3dde77",
"status": "draft",
"maturity": "hypothesis",
"decision": "Restore meaningful focus after a temporary interaction ends.",
"evidence": [
{
"kind": "documentary",
"family": "WAI-ARIA APG",
"ref": "research/reviews/PatternBreadthExpansion.md",
"scope": "Dialog focus obligations."
},
{
"kind": "static-code",
"family": "Radix",
"ref": "research/reviews/NestedDismissalIsolation.md",
"scope": "Pinned layer/listener ownership implementation."
},
{
"kind": "runtime",
"family": "Radix",
"ref": "research/reviews/NestedOwnershipRouting.md",
"scope": "Authored fixture: raw 20/24 versus routed 24/24; browser/build limits retained."
},
{
"kind": "runtime",
"family": "htmx in authored public-catalog fixture",
"ref": "research/reviews/NavigationFocusExperiment.md",
"scope": "NF01\u2013NF06: Tab/Enter navigation, raw versus authored focus/status policy, held-response ownership and background update; DOM evidence only, not AT speech."
},
{
"kind": "runtime",
"family": "htmx in authored public-catalog fixture",
"ref": "research/reviews/NavigationOwnershipExperiment.md",
"scope": "NO01\u2013NO06: ordered history/success/error races, prior policy 0/12 full obligations versus guarded 12/12; separate focus ownership. Same fixture family; pinned history-XHR adapter."
},
{
"kind": "static-code",
"family": "Zulip",
"ref": "research/reviews/ZulipNavigationSourceStudy.md",
"scope": "ZN01\u2013ZN08 at pinned revision: partial hash/list/cache mechanisms and non-modal continuation contrast. No application/test execution, no no-script claim, no complete pattern recurrence."
}
],
"independent_full_contract_uses": null,
"review": {
"assessed_at": "2026-09-27",
"reviewer": "Codex",
"role": "author-model",
"independent_human": false,
"last_substantive_review_date": "2026-09-27"
},
"gaps": [
"One implementation family; repeated trials are not independent uses.",
"Animated exits and competing owners remain untested; no production repair claim.",
"Route ownership is a contrast, not independent modal recurrence; AT speech and broader history/lifecycle cases remain unverified.",
"Zulip auxiliary target/anchor callbacks, deferred editing focus and search callback wiring remain unverified; static guards do not prove whole-application ownership."
],
"superseded_by": [],
"subset": "extension",
"classification": {
"path": "research/candidates/FocusReturn.md",
"sha256": "9149c2f563eafcfec983a9285949225840d97804568309bd16bbb1eb6b3dde77",
"title": "Focus Return",
"responsibilities": [
"affordance"
],
"forces": {
"improves": [
"continuity-of-interaction",
"accessibility"
],
"worsens": [
"implementation-complexity"
]
},
"rationale": "Restores a meaningful keyboard continuation; disappearing targets and nested ownership require lifecycle handling."
},
"classification_status": "provisional author-model interpretation",
"families": [
"quality",
"affordance"
],
"scales": [
"L6"
]
},
{
"id": "CAND-0017",
"path": "research/candidates/IndependentFeatureBoundary.md",
"title": "Independent Feature Boundary",
"sha256": "60b78725ed4036681675d4c68244fc25aea6e0dffb09d54a7108e3fcbf527b4f",
"status": "draft",
"maturity": "hypothesis",
"decision": "Separate feature release, activation and session transition contracts.",
"evidence": [
{
"kind": "documentary",
"family": "single-spa / webpack",
"ref": "research/reviews/FeatureDeploymentBoundaries.md",
"scope": "Mechanism documentation, not deployed independence proof."
},
{
"kind": "static-code",
"family": "react-microfrontends examples",
"ref": "research/reviews/FeatureDeploymentBoundaries.md",
"scope": "Root config/navbar are one example family with shared startup gating."
},
{
"kind": "runtime",
"family": "authored release fixture",
"ref": "research/reviews/FeatureReleaseExperiment.md",
"scope": "Publication/activation/rollback across fresh, loaded and lazy sessions."
},
{
"kind": "runtime",
"family": "authored release fixture",
"ref": "research/reviews/ActivationConflictsAndReload.md",
"scope": "Conditional activation updates and safe reload policies, including negative controls."
}
],
"independent_full_contract_uses": null,
"review": {
"assessed_at": "2026-09-26",
"reviewer": "Codex",
"role": "author-model",
"independent_human": false,
"last_substantive_review_date": null
},
"gaps": [
"No upstream deployment or real team/release-independence validation.",
"Distributed atomicity, retention authorization and native-unload/crash behavior remain open."
],
"superseded_by": [],
"subset": "extension",
"classification": {
"path": "research/candidates/IndependentFeatureBoundary.md",
"sha256": "60b78725ed4036681675d4c68244fc25aea6e0dffb09d54a7108e3fcbf527b4f",
"title": "Independent Feature Boundary",
"responsibilities": [
"composition",
"execution"
],
"forces": {
"improves": [
"independent-deployability",
"team-autonomy"
],
"worsens": [
"compatibility-pressure",
"deployment-complexity"
]
},
"rationale": "Separates release and activation through composition contracts; version compatibility and session transitions add obligations."
},
"classification_status": "provisional author-model interpretation",
"families": [
"composition",
"execution"
],
"scales": [
"L1",
"L4"
]
}
],
"relations": [
{
"source": "CAND-0002",
"type": "enables",
"target": "CAND-0003",
"status": "proposed",
"condition": "The local transaction records a revision and its pending propagation atomically.",
"rationale": "A recoverable origin allows pending work to resume after restart.",
"evidence_kind": "editorial-design-proposal",
"evidence_refs": [
"research/candidates/LocalCommitBoundary.md",
"research/candidates/PendingSynchronization.md"
],
"unknown": "No independent validation of this relation as a complete architectural contract."
},
{
"source": "CAND-0003",
"type": "creates-context-for",
"target": "CAND-0001",
"status": "proposed",
"condition": "Detected divergence requires retained alternatives and policy permits retention.",
"rationale": "Pending propagation can expose competing versions; not every synchronization needs a copy.",
"evidence_kind": "editorial-design-proposal",
"evidence_refs": [
"research/candidates/PendingSynchronization.md",
"research/candidates/ConflictCopy.md"
],
"unknown": "No independent validation of this relation as a complete architectural contract."
},
{
"source": "CAND-0001",
"type": "creates-context-for",
"target": "CAND-0004",
"status": "proposed",
"condition": "Preserved content remains semantically unresolved and a person must decide.",
"rationale": "Preservation supplies comparison material, not the resolution itself.",
"evidence_kind": "editorial-design-proposal",
"evidence_refs": [
"research/candidates/ConflictCopy.md",
"research/candidates/ExplicitReconciliation.md"
],
"unknown": "No independent validation of this relation as a complete architectural contract."
},
{
"source": "CAND-0004",
"type": "enables",
"target": "CAND-0002",
"status": "proposed",
"condition": "The resolution becomes a new locally accepted revision.",
"rationale": "A chosen result still needs the local commit and pending-work contract.",
"evidence_kind": "editorial-design-proposal",
"evidence_refs": [
"research/candidates/ExplicitReconciliation.md",
"research/candidates/LocalCommitBoundary.md"
],
"unknown": "No independent validation of this relation as a complete architectural contract."
},
{
"source": "CAND-0005",
"type": "complements",
"target": "CAND-0006",
"status": "proposed",
"condition": "An editable proposal uses a stale-base precondition.",
"rationale": "Keeping the proposal separate supports recovery from a rejected conditional write.",
"evidence_kind": "editorial-design-proposal",
"evidence_refs": [
"research/candidates/LocalDraftState.md",
"research/candidates/VersionCheckedMutation.md"
],
"unknown": "No independent validation of this relation as a complete architectural contract."
},
{
"source": "CAND-0006",
"type": "complements",
"target": "CAND-0007",
"status": "proposed",
"condition": "A conditional write may have an uncertain transport outcome.",
"rationale": "A version precondition and an operation identity answer different questions.",
"evidence_kind": "editorial-design-proposal",
"evidence_refs": [
"research/candidates/VersionCheckedMutation.md",
"research/candidates/MutationOutcomeTracking.md"
],
"unknown": "No independent validation of this relation as a complete architectural contract."
},
{
"source": "CAND-0007",
"type": "enables",
"target": "CAND-0008",
"status": "proposed",
"condition": "Acceptance is established and affected observations need refreshing.",
"rationale": "Domain acceptance can trigger refresh without treating its failure as rejected mutation.",
"evidence_kind": "editorial-design-proposal",
"evidence_refs": [
"research/candidates/MutationOutcomeTracking.md",
"research/candidates/InvalidateAndReproject.md"
],
"unknown": "No independent validation of this relation as a complete architectural contract."
},
{
"source": "CAND-0008",
"type": "complements",
"target": "CAND-0005",
"status": "proposed",
"condition": "Refreshing observations can arrive while newer input exists.",
"rationale": "Separate draft ownership prevents reprojected data from replacing unfinished intent.",
"evidence_kind": "editorial-design-proposal",
"evidence_refs": [
"research/candidates/InvalidateAndReproject.md",
"research/candidates/LocalDraftState.md"
],
"unknown": "No independent validation of this relation as a complete architectural contract."
},
{
"source": "CAND-0003",
"type": "complements",
"target": "CAND-0007",
"status": "proposed",
"condition": "Remote propagation acknowledgement may be lost.",
"rationale": "Locally accepted work and unknown remote receipt need separately scoped outcome evidence.",
"evidence_kind": "editorial-design-proposal",
"evidence_refs": [
"research/candidates/PendingSynchronization.md",
"research/candidates/MutationOutcomeTracking.md"
],
"unknown": "No independent validation of this relation as a complete architectural contract."
}
],
"entrypoints": {
"start": "START.md",
"transactional": "sequences/TransactionalApplication.md",
"offline": "sequences/LocalFirstApplication.md",
"transactional_mapping": "technologies/TransactionalRecovery.md",
"offline_mapping": "technologies/OfflineRecovery.md"
},
"relation_semantics": "Conditional proposals only; no inverse or transitive inference."
}