Skip to content

Add the web framework support matrix skill - #21

Open
Chuck7Chen wants to merge 4 commits into
mainfrom
feature/framework
Open

Add the web framework support matrix skill#21
Chuck7Chen wants to merge 4 commits into
mainfrom
feature/framework

Conversation

@Chuck7Chen

Copy link
Copy Markdown

Adds a makers-frameworks skill: what each web framework needs to build and run on
EdgeOne Makers, and the platform adapter that makes its server output servable.

What is here

A support matrix in the skill's SKILL.md, plus a reference per framework — Next.js,
Nuxt, Astro, SvelteKit, React Router, TanStack Start, Vike, Vite SPA, and the static
generators. Each reference carries the scaffold command, the preview asset-prefix option,
the build output directory, the 404 convention, version floors, and what the platform does
not support yet.

The matrix states adapter requirement as data rather than prose, because the distinction is
load-bearing. @edgeone/sveltekit and @edgeone/tanstack-start are required=always
those frameworks cannot build for this platform without one. @edgeone/astro,
@edgeone/react-router, and @edgeone/vite are required=server-output: needed only once
the app renders on a server, so installing one into a fully-prerendered site adds a
dependency it never uses. A consumer reading the matrix can decide correctly at scaffold
time instead of guessing.

It also names the near-misses, since those are the expensive failures: a foreign platform's
Astro adapter builds output this platform cannot serve, adapter-auto cannot detect this
platform at all, and serverWrapper is a @edgeone/vite 1.x option that 2.x silently
ignores.

Three scaffold commands were broken

Every command in these references was verified by running it into an empty directory rather
than transcribed from upstream docs. Three did not work:

  • Vike--typescript is no longer a valid flag and the scaffolder exits with
    Unknown option typescript. TypeScript is on by default now. Replaced with --edgeone,
    which wires the platform integration during scaffold.
  • TanStack Startcreate-tsrouter-app is deprecated, and it scaffolds a router-only
    project rather than a Start app, so @tanstack/react-start is absent and the adapter
    section below it has nothing to attach to. Now @tanstack/cli create --framework react.
  • Nuxtnuxi init requires --template. Without it, it prints its usage and exits
    with Non-interactive terminal detected. Missing required argument: --template, which in
    a sandbox looks like a scaffolder that ran and produced nothing.

All three failed only in non-interactive use, which is the case that matters here: an agent
running these commands has no TTY, so a scaffolder that stops to ask a question hangs the
turn instead of prompting anyone.

chuckcchen and others added 4 commits September 4, 2026 14:51
Which framework a request names decides seven things: the platform adapter,
the scaffold command, the preview asset-prefix option, the build output, the
404 convention, the version floor, and the unsupported features. Nothing
carried them before, so the adapter in particular was left to memory.

That one is the expensive gap. `edgeone makers dev` runs the framework's own
dev server and never loads the platform adapter, so a full-stack project
missing one previews perfectly and deploys broken, with every gate green.
Astro, React Router, SvelteKit, TanStack Start and Vike each need one; Next.js
and Nuxt are handled by the builder directly.

The router SKILL.md also carries the profiles as a fenced JSON block between
HTML comment markers, so a host can read the adapter package, where it is
wired, and whether a static build needs it, without a second copy of the same
table drifting out of sync with the prose.
A generated guestbook wrote <link href="/style.css"> and <script src="/script.js">.
The development preview is published under a path prefix, so both resolved against
the sandbox host root and 404ed at the gateway while index.html itself still answered
200 — the page rendered unstyled with no script having run, and nothing in the console
named the cause.

Nothing rewrites these projects. There is no build step to tell, and the preview
proxy's shim only restores the prefix for links, form actions, fetch, and XHR: a
subresource URL is fetched by the HTML parser before any script runs, and a
<script src> cannot be redirected after the fact because reassigning src does not
re-fetch. Page-relative URLs are the one form that is correct both under the prefix
and at / once deployed.

Co-authored-by: Cursor <cursoragent@cursor.com>
…mands

Both documented commands fail as written. An agent copies them verbatim —
that is what the flags are for, since a scaffolder that stops to ask a
question has nobody to answer it — so neither framework could be scaffolded
at all, and a run that tried degraded to writing the boilerplate by hand.

Vike: there is no --typescript. The scaffolder writes TypeScript either way
and rejects the flag outright with "Unknown option typescript". Replaced with
--edgeone, its own EdgeOne Pages integration, which declares @edgeone/vite and
registers the plugin — the work "The adapter" section otherwise asks for by
hand — plus --skip-git to match the other scaffolders here.

TanStack Start: create-tsrouter-app is deprecated and says so on every run.
The rename is the smaller half. That package defaults to router-only
compatibility mode, so the command scaffolded file-based routing with none of
Start in it — no @tanstack/react-start for this document's adapter to attach
to. `tanstack create` without --router-only scaffolds Start itself. Tailwind
needs no flag now (always on; --tailwind is a deprecated no-op), and
--no-intent skips the TanStack Intent step, which reaches the network to write
agent config and fails the scaffold when it cannot.

Both verified by running them into an empty directory.

Co-authored-by: Cursor <cursoragent@cursor.com>
nuxi init stops with "Non-interactive terminal detected. Missing
required argument: --template" and prints usage instead of scaffolding.
In a sandbox that reads as a scaffolder that exited without producing a
project.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant