Capablio

Capablio Mock Lab

Production-parity local Capablio stack for AFF development, UX review, and pre-deploy acceptance. Same /app static assets and FastAPI routes as production; mock auth, durable SQLite, mock Vertex, and in-process worker…

Updated

Quick start

From workbench/feedback-360:

./scripts/start-mock-lab.sh
Item Value
Base URL http://127.0.0.1:8920
Port env FORGE360_E2E_PORT (default 8920)
Health GET /health
App entry /app/
Durable DB .forge360-local/mock-lab.db (use --reseed to reset)

start-mock-lab.sh runs forge360/scripts/mock_lab_serve.py with FORGE360_AUTH_MOCK=1, FORGE360_MOCK_LAB=1, and FORGE360_AI_PROVIDER=mock_vertex.

Mock Vertex and worker stubs

  • Mock Vertex — deterministic generateContent-shaped responses; no GCP credentials or network.
  • Worker stubFORGE360_WORKER_GATEWAY_URL points at the same app; /v1/run completes in-process.

Platform status reports provider=mock_vertex when AI resolve is queried.

Mock users

Persona Email Console
Subject alice@acme.test /app/
Tenant admin admin@acme.test /app/admin/
Platform operator op@acme.test /app/operator/
HR (limited admin nav) hr.eng@acme.test /app/admin/

Auth: POST /api/auth/mock-loginsessionStorage.f360_token (see e2e/helpers.mjs).

Offline HTML export

./scripts/export-mock-website.sh

Writes a self-contained site to workbench/capablio-mock-website/ (and optional capablio-mock-website.zip): static assets from forge360/ui/static/, Playwright-captured pages, and API fixture JSON.

Pre-production acceptance gate

./scripts/run-mock-lab-acceptance.sh

Runs AFF pytest, pack linter CLI, Playwright e2e against Mock Lab, and export smoke. deploy-forge360-capablio.sh calls this unless FORGE360_SKIP_MOCK_LAB_GATE=1.

Parity model

forgesdlc-kitchensink/css/          (design tokens + Cap shell)
        │ sync-capablio-ks-static.sh
        ▼
forge360/ui/static/                 ← SINGLE SOURCE (edit here)
        │ start-mock-lab.sh :8920    ← Mock Lab runtime
        │ export-mock-website.sh
        │ deploy-forge360-capablio.sh (after acceptance gate)
        ▼
capablio.com/app/*                  ← production (same files)

Assess Mock Lab = assess what production will ship after deploy. Remediation edits land in forge360/ui/static/ (and KS CSS via sync when shell primitives change).

UX audit (KS website auditor)

./scripts/run-capablio-ux-audit.sh

Auditor flags: --site-kind capablio, seed URLs in scripts/capablio-ux-seed-urls.txt, auth bootstrap scripts/capablio-ux-auth.mjs.

Output: workbench/ux-auditor/ux-audit/feedback-360/<run>/ (screenshots under screenshots/).

What Mock Lab is not

  • Handbook (capablio-website/handbook.capablio.com) — Fleet handbook chrome, not /app/ shell
  • 360 report (report/360-report.html, scripts/ux-audit.mjs) — offline report tabs, different surface
  • Ephemeral e2e (e2e_serve.py) — temp SQLite; prefer Mock Lab for durable AFF seed and export