# 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.