Handbook
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 stub —
FORGE360_WORKER_GATEWAY_URLpoints at the same app;/v1/runcompletes in-process.
Platform status reports provider=mock_vertex when AI resolve is queried.
Mock users
| Persona | 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-login → sessionStorage.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
Related
- framework/pdca-log.md — AFF PDCA cycles M0–M2 and 0–8
- capablio-ks-token-map.md — CSS/class inventory and sync
- forge360/ui/static/ — UI source of truth
- Kitchen Sink layout contract:
Cap-layout-app-shell(hash Cap)