Detailed technical and operational reference for every pipeline step.
Every step is stored as one of four string values in the pipeline data file:
| Value | Meaning | Display |
|---|---|---|
not_started | Default state. Step has never been triggered. | Grey dot, step name as label |
in_progress | Step is actively running. If the app crashes while a step is in_progress, it is reset to not_started on next startup. | Amber dot, pulsing label |
complete | Step completed successfully. Timestamp recorded in step_times. | Green dot |
failed | Step terminated with an error. Can be retried by clicking the step cell again. | Red dot |
What it does: Uses AI (Claude Code CLI or Gemini CLI) to rebuild the downloaded original website into a modern static site (semantic HTML5 + vanilla CSS + GSAP animations; no SPA framework) stored in edited_sites/<slug>/.
Prerequisite: Site must have been downloaded successfully (WebCopy complete).
Process:
data/temp/tmpXXXXXX.txt.edited_sites/<slug>/.claude --dangerously-skip-permissions --model <model> --effort <effort> $taskOutput: A static site in edited_sites/<slug>/ (hand-written index.html and sub-pages, CSS, JS, and the copied media) plus a DESIGN_NOTES.md describing AI design decisions.
Model: Configurable per use-case in Settings → AI Model & Effort. Default: Sonnet 4.6, max effort. (Opus 4.7 is the default for Build from Scratch, not pipeline Demo.)
What it does: Scans images in the demo site using Google Lens to identify potential stock photos.
Prerequisite: Demo step complete. Built site must have image files.
Process:
Output: A popup listing every flagged image with its risk tier and the matching stock site found.
Note: The Chromium window is visible on screen during the scan. Do not close it manually — the worker closes it when done.
What it does: Deploys the built site to Cloudflare Pages and attaches a custom subdomain.
Prerequisite: Demo step complete. Cloudflare API credentials configured in Settings.
Process:
deploy-demo.ps1 -SiteName <slug> in a hidden PowerShell window.wrangler pages deploy, and creates a CNAME DNS record for <slug>.demos.<domain>..md files in the site folder. If found, each is AES-256-GCM encrypted and staged in data/encrypted-docs/, then deploy-docs.ps1 pushes them to the shared client-docs Cloudflare Pages project. The shareable link is a fragment URL: https://client-docs.demos.<domain>/#<uuid>:<key>.Output: Live URL at https://<slug>.demos.<yourdomain>.
Timeout: 3 minutes. Fails if Wrangler does not complete within this window.
What it does: Uses AI to scrape the original business website and extract contact information.
Prerequisite: Any stage after site download. Does not require the demo to be built.
Process:
claude -p "<prompt>" --model claude-sonnet-4-6 --effort low silently (no visible terminal).type (Phone / Email / Facebook / Instagram / etc.) and value fields.Output: Contact popup with one-click copy buttons for each contact item.
Timeout: 3 minutes.
What it does: Takes client feedback from a text file and feeds it back to the AI for revision.
Prerequisite: Demo step complete. Client has reviewed the demo and provided feedback.
Process:
.txt file containing the client's form response.edited_sites/<slug>/ running the AI with the revision prompt.Site Backups/<slug>/Edition N/.not_started so you re-scan after the revision.Model: Configurable in Settings. Default: Sonnet 4.6, max effort.
What it does: Sends another round of revision instructions to the AI after Form completes. Not a formal pipeline step — it re-runs the same AI flow and increments the version counter on the ITERATE cell (v1, v2, …).
Process: Identical to Form — a file picker opens for a .txt file. The instruction prefix is "Make further changes based on this updated form reply." A backup is created on completion and Copy Check 2 resets.
Identical to Copy Check 1. Run after the Form step to verify no stock photos were introduced during revisions.
What it does: Publishes the approved site to the client's real domain on Cloudflare — apex and www — as the permanent production host.
Prerequisite: The client's domain must already exist as a zone on your Cloudflare account, and Cloudflare credentials must be configured.
Process (FinalHostWorker → tools/host-final.ps1):
example.com) in the prompt.wrangler pages deploy uploads edited_sites/<slug>/ to a dedicated <slug>-live Pages project, kept separate from the demo project.www hostnames are attached as custom domains and proxied CNAME records are created.-Force — so you never silently take down a site that is still serving.final_url is saved and shown as a clickable link in the pipeline row.What it does: Provisions a contact@<domain> mailbox on Purelymail and writes the matching email DNS into the domain's Cloudflare zone, giving the client working email on their own domain.
Prerequisite: The domain must be a zone on your Cloudflare account, and PURELYMAIL_API_TOKEN must be set in Settings.
Process (EmailProvisionWorker):
MX to Purelymail, the SPF TXT, the ownership-proof TXT, three DKIM CNAMEs, and a managed DMARC CNAME.contact@<domain> mailbox is created with a generated password, shown once in a dialog and stored in the registry.Related — client contact forms: the demo/final sites' contact forms post to a small Cloudflare Pages worker that relays submissions over Purelymail SMTP to this mailbox. See Deployment Infrastructure.
What it does: Audits the built site across four categories — Technical, Local SEO, AI/GEO readiness, and Performance — and can repeatedly run AI enhancement until every category scores 100%.
Process:
edited_sites/<slug>/ with the app's own deterministic auditors (the same scoring used in the client report) and shows a colour-coded score chip per category.SEO_MAX_ITERATIONS, default 5) is reached, or a pass makes no measurable progress.Note: the SEO window also generates and publishes the client-facing SEO report through the encrypted client-docs pipeline (see Deployment Infrastructure).