feat: initial release of Vespasian — Claude Code-integrated Wix site builder - #1
Merged
Conversation
…builder Fork of Flavian (github.com/PMDevSolutions/Flavian) retargeting the design-to-site pipeline from WordPress FSE to Wix Studio. Kept from Flavian: the design-ingestion front end (Figma/Canva/InDesign parsers → zod-validated IR + content model → neutral design tokens with provenance), the setup wizard, the Claude Code agent/skill architecture, the visual-QA loop, the Playwright MCP integration, the Electron GUI (via its product-manifest seam), and the release-please conventions. New: packages/wix-driver — a Wix output layer with two auth planes (account API key for REST; consent-gated persisted browser session for editor automation), a deterministic BuildPlan compiler, a phase-ordered executor with checkpoints and dry-run transports, a design-token → Wix-theme translator (palette slots, 9-slot text theme, --vsp-* spacing CSS), and published-site QA with FidelityReports. Operations use official Wix APIs wherever they exist; Playwright editor automation is the documented fallback (see docs/wix/API-COVERAGE.md). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
dorny/paths-filter lists PR files via the API; the workflows' explicit 'permissions: contents: read' blocks (and this repo's restrictive default token) dropped that access, failing the check-paths gate jobs on the first PR. Co-Authored-By: Claude Fable 5 <noreply@anthropic.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.
Summary
Initial release of Vespasian — a Claude Code-integrated Wix site builder, forked from Flavian: design in (Figma · Canva · InDesign) → design tokens + content IR → BuildPlan → live Wix Studio site → visual QA against the source design.
Kept from Flavian: the design-ingestion front end (IDML/PDF parsers → zod-validated IR + content model → neutral token mapper with provenance), the setup wizard, the 54-agent / 10-skill Claude Code layer, the visual-QA loop, the Playwright + Figma MCP integration, the Electron GUI (retargeted via its product-manifest seam), and the release-please conventions (manifest seeded at 0.1.0 — no hand-bumped versions).
Replaced: the entire WordPress output layer. New
packages/wix-driverprovides:vespasian login --editor) for everything Wix has no API for--vsp-*spacing CSS viaglobal.css)--resume-from, and dry-run transports (CI runs the full flow with zero credentials)The per-operation API vs. browser automation matrix (22 operations + known gaps) is in
docs/wix/API-COVERAGE.md; the pinned architecture isdocs/wix/ARCHITECTURE.md.Test plan
pnpm test:pipeline— 124/124pnpm test:wix-driver— 55/55pnpm test:init— 54/54pnpm test:canva-e2e— 6/6 (the site-validation CI gate: fixture compile + dry-run apply)pnpm gui:test/gui:typecheck/gui:lint— 63/63, cleanvespasian pipeline indesign <fixture> → plan → apply --dry-runexits 0CI note:
lighthouse-ciandvisual-regressionskip cleanly until theWIX_SITE_URLrepository variable is set; all other workflows run secretless.🤖 Generated with Claude Code