Pipeline Steps Reference

Detailed technical and operational reference for every pipeline step.

Step Status Values

Every step is stored as one of four string values in the pipeline data file:

ValueMeaningDisplay
not_startedDefault state. Step has never been triggered.Grey dot, step name as label
in_progressStep 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
completeStep completed successfully. Timestamp recorded in step_times.Green dot
failedStep terminated with an error. Can be retried by clicking the step cell again.Red dot

Step 1 — Demo

What it does: Uses AI (Claude Code CLI or Gemini CLI) to rebuild the downloaded original website into a modern React application stored in edited_sites/<slug>/.

Prerequisite: Site must have been downloaded successfully (WebCopy complete).

Process:

  1. The app builds a prompt containing: original site file tree, content summary, any example sites in the same niche, and build instructions.
  2. Prompt is written to data/temp/tmpXXXXXX.txt.
  3. A new PowerShell terminal opens in edited_sites/<slug>/.
  4. The CLI runs: claude --dangerously-skip-permissions --model <model> --effort <effort> $task
  5. When the terminal closes (CLI exits), the step is automatically marked complete or failed based on exit code.

Output: A React project in edited_sites/<slug>/, typically including package.json, src/, public/, and a DESIGN_NOTES.md describing AI design decisions.

Model: Configurable per use-case in Settings → AI Model & Effort. Default: Opus 4.7, max effort.

Step 2 — Copy Check 1

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:

  1. Playwright launches a non-headless Chromium browser window.
  2. For each image file in the site, it uploads the image to Google Lens and searches for visual matches.
  3. The resulting page is scanned against a list of 30+ stock photo domain names (Shutterstock, Getty, iStock, etc.).
  4. Images are classified into risk tiers: CRITICAL, HIGH, PASSIVE, or FREE_TRAP.

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.

Step 3 — Host Demo

What it does: Deploys the React site to Cloudflare Pages and attaches a custom subdomain.

Prerequisite: Demo step complete. Cloudflare API credentials configured in Settings.

Process:

  1. Reads Cloudflare credentials from the Windows Registry.
  2. Runs deploy-demo.ps1 -SiteName <slug> in a hidden PowerShell window.
  3. The script creates a Cloudflare Pages project if one doesn't exist, runs wrangler pages deploy, and creates a CNAME DNS record for <slug>.demos.<domain>.
  4. On success, the demo URL is saved to the pipeline entry and displayed as a clickable link.
  5. Also publishes any .md files in the site folder to the markdown viewer subdomain.

Output: Live URL at https://<slug>.demos.<yourdomain>.

Timeout: 3 minutes. Fails if Wrangler does not complete within this window.

Step 4 — Cold Call

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:

  1. Runs claude -p "<prompt>" --model claude-sonnet-4-6 --effort low silently (no visible terminal).
  2. Prompt instructs Claude to read the downloaded HTML files and return a JSON array of contact objects.
  3. Each object has type (Phone / Email / Facebook / Instagram / etc.) and value fields.
  4. If the JSON parse fails, a regex fallback extracts phone numbers and emails directly from the HTML.

Output: Contact popup with one-click copy buttons for each contact item.

Timeout: 3 minutes.

Step 5 — Form / Implement

What it does: Takes client feedback text and feeds it back to the AI for revision.

Prerequisite: Demo step complete. Client has reviewed the demo and provided feedback.

Process:

  1. A dialog box opens where you paste or type the client's feedback.
  2. The feedback is appended to an AI prompt describing the site context.
  3. A new terminal opens in edited_sites/<slug>/ running the AI with the revision prompt.
  4. When complete, a backup of the current site state is automatically created at Site Backups/<slug>/Edition N/.

Model: Configurable in Settings. Default: Sonnet 4.6, max effort.

Step 6 — Copy Check 2

Identical to Copy Check 1. Run after the Form step to verify no stock photos were introduced during revisions.

Step 7 — Final Hosting

What it does: Deploys the approved site to the client's permanent domain.

Process: Same as Host Demo, but deploys to the client's own domain rather than a demos subdomain. You enter the target domain in the dialog before running.

Step 8 — SEO

What it does: Parses the built HTML files and generates an on-page SEO report.

Process:

  1. Scans up to 50 HTML files in edited_sites/<slug>/.
  2. For each page, checks: title length, meta description length, H1 count, H2 presence, image alt text, word count.
  3. Assigns severity to each finding: pass / warn / fail / info.
  4. Displays results in a dedicated SEO window with one card per HTML file.

Note: SEO is advisory — it does not block the pipeline. Use it as a final quality check before client handoff.