Add the web framework support matrix skill - #21
Open
Chuck7Chen wants to merge 4 commits into
Open
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a
makers-frameworksskill: what each web framework needs to build and run onEdgeOne 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/sveltekitand@edgeone/tanstack-startarerequired=always—those frameworks cannot build for this platform without one.
@edgeone/astro,@edgeone/react-router, and@edgeone/vitearerequired=server-output: needed only oncethe 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-autocannot detect thisplatform at all, and
serverWrapperis a@edgeone/vite1.x option that 2.x silentlyignores.
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:
--typescriptis no longer a valid flag and the scaffolder exits withUnknown option typescript. TypeScript is on by default now. Replaced with--edgeone,which wires the platform integration during scaffold.
create-tsrouter-appis deprecated, and it scaffolds a router-onlyproject rather than a Start app, so
@tanstack/react-startis absent and the adaptersection below it has nothing to attach to. Now
@tanstack/cli create --framework react.nuxi initrequires--template. Without it, it prints its usage and exitswith
Non-interactive terminal detected. Missing required argument: --template, which ina 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.