Vue codemod decision: no-go

The retained Vue migration evidence does not authorize an automatic source converter. Four versioned analyzer reports cover 17 fixture files, 52 inventory records, and 26 findings across 14 candidate classes. They prove syntax inventory. They prove behavioral equivalence for 0/14 candidate classes.

No source writer, converter package, write flag, or implementation follow-up is proposed. RFC 0003 remains report-only.

Evaluated candidates

Candidate Classification Decision Required review
Vue imports Review required No-go Scheduling, cleanup, ownership, module effects
Static component registration Unsupported No-go No positive retained registration fixture
Props, emits, models Review required No-go Native property/event/model contract
Simple template bindings Review required No-go Identity, refs, slots, ARIA, timing
Native Custom Element transport Review required No-go Manually authored host contract
Stylesheet extraction Review required No-go Scoped/modules/cascade/sheet ownership
Router and Store Review required No-go Route and application/request ownership
Lifecycle Review required No-go Reconnect, cleanup, scheduler, server behavior
Tests Review required No-go Replacement behavior and wrapper semantics
Async components and Suspense Review required No-go Failure, cancellation, retry, teardown, SSR
Dynamic templates, macros, directives Unsupported No-go Dynamic/custom behavior is unavailable
Plugins and runtime registration Unsupported No-go Configuration is never executed
SSR and hydration Unsupported No-go Isolation, transport, identity, mismatch behavior
CSS preprocessors/external styles Unsupported No-go No evaluated processor output

Evidence contract

The repository retains the complete decision, no-write expected output, and counterexamples. Every candidate links to input files, exact analyzer inventory/finding IDs, and a semantic test or counterexample. npm run check:vue-codemod-decision rejects missing evidence, changed corpus counts, an unknown class, or any generated, modified, or deleted expected file.

The corpus measurement applies only to the supported, unsupported, malformed, and adversarial analyzer fixtures. The production Vue host and browser suite are supplementary evidence for manual Custom Element coexistence, not a conversion-success sample.

Human migration boundary

Use gluon-vue-analyze to inventory static Vue 3.5 source, then follow the tested cutover playbook. A reviewer must redesign component, Router, Store, async, stylesheet, lifecycle, server, and test ownership against public Gluon contracts and run the relevant behavioral evidence. The analyzer never claims that detected syntax has an equivalent generated target.

False positives can occur when matching syntax hides different runtime semantics. False negatives can occur through aliases, dynamic imports, generated code, macros, plugin transforms, runtime registration, and external configuration that the analyzer intentionally does not execute.

Any future write-capable proposal requires a new accepted RFC covering preview, dry-run, deterministic and idempotent output, formatting, conflicts, rollback, security, diagnostics, and supported versions before implementation begins.