feat: accept local HTML and URLs as conversion sources, not just Stitch screens - #21
Merged
Conversation
…ch screens The six framework-conversion skills each demanded a Stitch project and a generated screen before they'd do anything. That gate was never structural: every one of them downloads to a single local file at `temp/source.html`, and not one references Stitch MCP after Step 1. The coupling lived entirely in how the source got fetched. So Step 1 now resolves from any of three sources — a Stitch screen, a local HTML file, or a URL — and everything downstream is untouched. Point any of these skills at a template you bought or a page you already built and you get the same output: production components with dark mode, design tokens, TypeScript, and ARIA. Only the Stitch route needs an API key. `stitch-html-components` is the sharpest case of the old problem — it billed itself as the platform-agnostic target and still required a Google account. - Add the three-source Step 1 to all six conversion skills, with a documented fallback for screenshots via stitch-mcp-upload-screens-from-images - Keep genuine per-skill prerequisites (Xcode 15+, Expo, Svelte 5 runes, next-themes) and the mobile-layout check on React Native and SwiftUI, which previously rode on Stitch's deviceType and now applies to all routes - Route "user already has HTML" straight to conversion in the orchestrator instead of pushing them through generation for a screen they didn't want - Collapse fetch-stitch.sh from three drifted copies to one; the variants differed only in comments, so nothing functional was lost - State in the README which half needs a Google account and which doesn't React Native and SwiftUI read the source as a structural reference rather than converting markup, so their wording says that rather than implying HTML output.
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.
The six framework-conversion skills each demanded a Stitch project and a generated screen before they'd do anything. That gate was never structural.
The finding
Every conversion skill downloads to a single local file at
temp/source.html, and not one references Stitch MCP after Step 1. Verified per skill, not assumed. The coupling lived entirely in how the source got fetched — so opening it up is a Step 1 change, not a rewrite.What changed
Step 1 now resolves from three sources:
stitch-mcp-upload-screens-from-imagesfirstEverything downstream is untouched. Point any of these skills at a template you bought or a page you already built, and you get the same output — production components with dark mode, design tokens, TypeScript, and ARIA.
stitch-html-componentswas the sharpest case of the old problem: it billed itself as the platform-agnostic target and still required a Google account.Details worth reviewing
next-themes. Only the Stitch-specific pair became the three-source list.deviceType: MOBILE. It now applies explicitly to all three routes, since a local file carries no such promise.fetch-stitch.shcollapsed from three drifted copies to one. I initially assumed the drift was functional; diffing proved the variants differed only in comments. Nothing functional was lost.Why it matters
The conversion layer is the most broadly useful part of this repo and it was gated behind a Google account for no good reason. Stitch is now the best-supported input rather than the only one.
Validator:
Passed with 29 warning(s) — no errors(all pre-existing "no examples/ directory" notices).