--- name: site-create description: End-to-end site pipeline — intake → design → sections → WYSIWYD mock-render loop → parallel audits → preview → deploy. Pure-click (≥8 AskUserQuestion blocks). The mock-render verify gate HARD-BLOCKS deploy of unlocked sections. argument-hint: --- # /site-create — 7-Phase Website Pipeline (index) ## When to use - Building a complete website end-to-end: intake → design → sections → WYSIWYD mock-render loop → audits → preview → deploy. - Any new site project where sections must be byte-identical to user-approved screenshots (WYSIWYD hard block enforced). - Preferred over `/site-builder` for all new work (v0.17+). You convert a free-text product description into a deployed website through seven strictly-ordered phases. Every decision is a click; only the intake description (Phase 0) and per-section iteration edits (Phase 3) are typed. This `SKILL.md` is the INDEX. Each phase lives in its own file and is executed in order. Never skip a phase. Never re-order phases. --- ## Pipeline overview | Phase | File | Purpose | AskUserQuestion | |---|---|---|---| | 0 | [phase-0-intake.md](phase-0-intake.md) | 7-question intake batch | 2× AskUserQuestion (4+3) | | 1 | [phase-1-design.md](phase-1-design.md) | Invoke `/frontend-design`, emit `tokens.css` | 1× AskUserQuestion | | 2 | [phase-2-sections.md](phase-2-sections.md) | Multi-select sections; variant per section | 2× AskUserQuestion | | 3 | [phase-3-wysiwyd.md](phase-3-wysiwyd.md) | Per-section generate → mock-render → approve loop | N× (1 per section) | | 4 | [phase-4-audit.md](phase-4-audit.md) | Parallel a11y / seo / responsive / perf | 1× (apply fixes?) | | 5 | [phase-5-preview.md](phase-5-preview.md) | Preview deploy URL | 1× (proceed?) | | 6 | [phase-6-deploy.md](phase-6-deploy.md) | Production deploy via `/web-deploy` | 1× (confirm) | **Minimum AskUserQuestion count across a complete pipeline: 8+** — pure-click contract. Only Phase 0 description and per-section iteration prompts are free-text. --- ## WYSIWYD invariant (LOAD-BEARING) > **Every section the user approved in the screenshot IS the file that gets > deployed. Byte-for-byte. No "approximately like this".** Enforced by the `mock-render` Rust primitive (`_primitives/_rust/mock-render/`): - `mock-render lock` — freezes source SHA-256 after user-approved screenshot. - `mock-render verify` — asserts source unchanged before any later write. - `mock-render status` — lists sections, lock state, drift check. **Hard block:** Phase 6 (deploy) refuses to run if any locked section shows drift in `mock-render status`. The pipeline stops and loops the user back to Phase 3 for that section. The companion `hooks/site-wysiwyd-check.sh` (PostToolUse Edit|Write) gives a stderr advisory whenever an edit touches a section file while a `.keisei/dev-server.pid` exists — catches drift in the moment, not at deploy time. --- ## Variables the pipeline produces | Name | Set in | Meaning | |---|---|---| | `DESC` | Phase 0 | User's product/project intent (1-3 sentences) | | `STACK` | Phase 0 | Astro 6 / Next 16 / SvelteKit / static | | `STYLE` | Phase 0 | Premium / dark-tech / editorial / brutalist archetype | | `MOTION` | Phase 0 | none / subtle / rich / experimental | | `DEPLOY` | Phase 0 | Cloudflare Pages / Vercel / local | | `TOKENS` | Phase 1 | CSS custom properties file written to `src/tokens.css` | | `SECTIONS` | Phase 2 | Ordered list `[{name, variant}]` | | `LOCKED` | Phase 3 | Set of sections that passed user approval | | `AUDIT` | Phase 4 | `{a11y, seo, responsive, perf}` findings | | `PREVIEW_URL` | Phase 5 | Short-lived preview URL | | `PROD_URL` | Phase 6 | Final deploy URL | --- ## Final report (emit after Phase 6) ``` === /SITE-CREATE REPORT === Intake: ... Stack: Style: