frontend-patterns/research/reviews/M2-CoverageReview.md
tegwick 7295172f1e Close local review loose ends and record blocked workplan gates
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a0e241-8285-7a63-8c0c-51c9cb824dc3
2026-09-27 17:20:43 +02:00

118 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# M2 coverage and ontology review
Reviewed 2026-09-27 by Codex, author-model, under FEP-WP-0003 T03.
**M2 result: revise/defer; not passed.** This completes the current editorial review,
not the evidence gate. It assesses all seventeen candidates and all ten case briefs
against the [research program](../plan/ResearchProgram.md). No new application tests,
independent review, source retrieval or prospective learning cycle was performed.
## Gate assessment
| M2 criterion | Assessment | Basis and remaining owner |
| --- | --- | --- |
| M1 prerequisite | blocked | [M1 review](M1-SeedReview.md) is revise/defer; WP-0002 T03 retains independent usefulness, validated seed cases and quality limits |
| Evidence from all six streams | partial | Documentary coverage exists in A–F; mechanism tests and source inspections have unequal scope. Full-contract independent uses remain unassessed; WP-0003 T01 |
| Coverage matrix for ten application types | delivered, with gaps | Matrix below distinguishes prepared reasoning from validated coverage; planned cases have no completion credit |
| Candidate and relation dispositions | delivered, provisional | Seventeen dispositions below; conditional relations remain proposals, no canonical admission |
| Four further completed contrasting cases | unmet | VC-03/06 provisional; VC-04/05 planned. WP-0003 T02 retains completion after M1 |
## Six-stream evidence assessment
The [coverage inventory](NavigationCoverage.md), [breadth review](PatternBreadthExpansion.md)
and [current profiles](../evolution/profiles.json) provide the detailed locators.
Counts of files, documents, browser rows or repeated trials do not count independent uses.
| Stream | Available evidence | Missing coverage / decision |
| --- | --- | --- |
| A — historical GUI architecture | Fowler documentary contrast, Presentation Model normalization and synthetic probes | Retain view/model separation as a hypothesis; no executed independent whole-contract presentation use |
| B — web navigation and hypermedia | htmx history/cache, focus and completion-ownership fixtures; pinned Zulip navigation source contrast | Authored fixture and static application paths are distinct; offline availability, auxiliary continuations, lifecycle and independent accessible use remain unresolved |
| C — rendering and execution | Astro/SvelteKit documentary mechanisms; authority/projection comparison separates placement from acceptance | Selective activation is plausible; no island performance comparison or broad streaming/resumability validation |
| D — state authority and synchronization | Transactional/local-first sources, Zulip acceptance/projection source study, Matrix SDK with synthetic receiver | Client mechanisms do not establish real receiver deduplication, durable commit/restart or backup. WP-0003 T04 retains those tests |
| E — composition and organization | Pinned feature-sliced and microfrontend example inspection; native-module activation/rollback and conflict/reload fixtures | Source organization, artifact publication and session transition differ; no independent team/deployment or distributed-store guarantee |
| F — quality patterns | React failure-class fixture, Radix dismissal/focus experiments, navigation focus contrast | DOM observations do not validate assistive-technology speech, human usability, privacy/security boundaries or general performance |
The latest [acceptance/projection study](ZulipAcceptanceProjection.md) retains
response/event ordering and reopened-edit ownership as unknown. Its proposed next
reproduction remains WP-0003 T01; this review does not infer a defect from callbacks.
## Application coverage matrix
States agree with [context.json](../evolution/context.json). “Partial” below means
relevant reasoning exists, not that the case has passed the required walkthrough.
| Case | State / evidence | Unresolved coverage |
| --- | --- | --- |
| VC-01 transactional administration | Partial: [synthetic draft](../walkthroughs/VC01-TransactionalAdministration.md), core recovery candidates | Independent decision usefulness, actual write/receipt semantics, keyboard recovery |
| VC-02 offline field notes | Partial: [synthetic draft](../walkthroughs/VC02-OfflineFieldNotes.md), local commit/propagation/conflict sequence | Real storage restart/commit, receiver identity lifetime, device-loss backup and retention scope |
| VC-03 content publication | Partial: [provisional walkthrough](../walkthroughs/VC03-ContentPublication.md), navigation/history/focus fixtures | Offline-reading branch, interrupted enhancement, independent human/AT review |
| VC-04 collaborative editor | Unresolved: [brief](../plan/ValidationCases.md) only | Durable changes versus presence, reconnect/undo and authorization changes; no completed trace |
| VC-05 real-time dashboard | Unresolved: [brief](../plan/ValidationCases.md) only | Subscription lifetime, staleness and bounded overload; no completed trace |
| VC-06 microfrontend estate | Partial: [provisional walkthrough](../walkthroughs/VC06-MicrofrontendEstate.md), feature release fixtures | Real operational independence, retention/support policy and independent case review |
| VC-07 storefront | Unresolved: [brief](../plan/ValidationCases.md); catalog navigation and transactional hypotheses are leads | No integrated cart/price/authoritative-checkout decision trace |
| VC-08 SaaS workspace | Unresolved: [brief](../plan/ValidationCases.md); presentation/derived-state hypotheses are leads | No integrated dense-interaction/long-session case or coherence test |
| VC-09 local-first personal tool | Partial conceptual overlap with VC-02; [brief](../plan/ValidationCases.md) remains planned | Privacy, optional synchronization and backup/restore have no dedicated completed case |
| VC-10 mobile web | Unresolved: [brief](../plan/ValidationCases.md); persistence/reload hypotheses are leads | Constrained-memory startup, interrupted sessions and mobile recovery lack a dedicated completed case |
## Candidate dispositions and counterexamples
“Retain” means retain a qualified draft hypothesis. No candidate has sufficient new
evidence here for promotion, merge or deletion. Rejecting a universal claim is not
rejecting the useful conditional pattern. No relation is made mandatory merely to
connect the graph. The [preview ontology review](PreviewOntology-0.1.md) supplies the
core separation rationale; the breadth and runtime reviews above supply extensions.
| Candidate | Disposition | Distinction / counterexample that constrains the language |
| --- | --- | --- |
| CAND-0001 Conflict Copy | Retain separately from reconciliation | Preserving divergent intent need not include a user resolution workflow; authorized retention and privacy still constrain preservation |
| CAND-0002 Local Commit Boundary | Retain | Locally accepted durable intent differs from editable draft and remote acceptance; memory-only feedback is a counterexample to durability |
| CAND-0003 Pending Synchronization | Retain | Locally accepted work awaiting replication differs from a remote write of unknown outcome; network retry alone does not make the record durable |
| CAND-0004 Explicit Reconciliation | Retain separately from copy | A bounded conflict can be resolved without keeping a permanent copy; automatic convergence can remove the need for explicit user reconciliation |
| CAND-0005 Local Draft State | Retain | Mutable user intent differs from accepted records and presentation state; a refresh must not silently erase newer edits |
| CAND-0006 Version-Checked Mutation | Retain | Base-version preconditions prevent stale intent application; an idempotency key alone does not prove valid ancestry |
| CAND-0007 Mutation Outcome Tracking | Retain | Lost acknowledgement leaves outcome unknown; cancelling UI or creating a fresh operation identity can duplicate accepted work |
| CAND-0008 Invalidate and Reproject | Retain | Read refresh is distinct from mutation acceptance; failed refresh does not prove rejected write or authorize draft rollback |
| CAND-0009 URL-addressable State | Retain | Address reconstruction differs from content availability and authorization; client fragments do not imply server dereferenceability |
| CAND-0010 Progressive Enhancement | Retain | Essential task continuity differs from URL changes or selective hydration; a no-script link that loses the essential action does not satisfy the contract |
| CAND-0011 Presentation Model | Retain | Presentation decisions differ from domain authority and editable intent; a wrapper with no independent decisions does not justify an extra model |
| CAND-0012 Derived State | Retain | Computed results differ from independently editable state; incomplete inputs or stale memoization invalidate a derived result |
| CAND-0013 Vertical Feature Slice | Retain separately from independent release | Capability-oriented modules can share one build; import grouping is not evidence of autonomous deployment |
| CAND-0014 Islands of Interactivity | Retain | Selective execution differs from task fallback, fault containment and security isolation; islands alone guarantee none of those |
| CAND-0015 Failure Boundary | Retain | Specified render containment differs from request/handler failures and remote compensation; a failed fallback may itself escape |
| CAND-0016 Focus Return | Retain narrow scope | Temporary interaction return differs from non-modal route continuation; removed invokers and nested ownership need explicit targets/policy |
| CAND-0017 Independent Feature Boundary | Retain separately from source organization | Artifact release, activation binding and session lifetime differ; changing an import map does not update an already-bound session |
## Relations and quality constraints
Retain the conditional relations in the frozen 0.1 manifest as historical proposals;
no inverse or transitive inference is authorized. The current language must preserve
these decisions when a later export is considered:
- Reject unconditional `requires` between Conflict Copy and Explicit Reconciliation.
Preservation and resolution answer different questions; neither universally requires
the other's particular mechanism.
- Keep local acceptance, remote outcome and read projection separate. Pending
Propagation and Mutation Outcome Tracking may compose, but neither establishes the
other's preconditions. Version-Checked Mutation and operation identity solve different risks.
- Keep feature organization, activation and session transition separate. Do not merge
Vertical Feature Slice with Independent Feature Boundary or infer release autonomy.
- Keep modal return separate from route completion ownership. Reuse shared concerns
without broadening Focus Return into every navigation policy.
- Preserve cross-cutting obligations: authorized retention, explicit backup scope,
receipt/deduplication windows, stale-ancestry handling, newer-draft preservation,
keyboard recovery and fallback ownership. Existing tests qualify mechanisms only;
they do not confer security, accessibility, crash-safety or performance certification.
These are editorial dispositions of existing distinctions, not new empirical findings.
The canonical responsibility vocabulary stays provisional; classification coverage
must not be presented as maturity or proof that the seed inventory is complete.
## Existing work retains the gaps
No new task or workplan is opened. [WP-0003 T01/T02/T04](../../workplans/FEP-WP-0003-contrasting-schools.md)
retain stream evidence, contrasting case completion and real storage/receiver validation.
[WP-0002 T03](../../workplans/FEP-WP-0002-seed-language-validation.md) retains the M1
independent-usefulness gate. [WP-0004](../../workplans/FEP-WP-0004-reference-surface.md)
retains gated canonical export and held-out/real-repository evaluation. T03's review
artifact is complete with an explicit defer result; M2 may be reassessed only when
those existing evidence obligations change. No prospective trend or human validation
is inferred from completing this editorial review.