Phase 208

Workbench Smoke Runner Technical Design

This phase designs the future automated runner that will prove every role workbench is reachable, mobile-safe, selector-ready, and honest about backend/payment/inventory boundaries.

Runtime boundary

Design now, runner later

Phase 208 is technical design for a future smoke runner only. It does not create Playwright tests, CI jobs, browser workers, backend mutations, seeded accounts, payment execution, inventory movement, ledger posting, or partner callbacks.

Stages

6

Lanes

5

Files

0

Runner architecture

design-only

QA shell

1. Route manifest loader

Loads the Phase 207 role workbench matrix, route list, default action, safe action class, and expected submit/result states from a frozen test manifest.

Output

Normalized route cases

Automation runtime

2. Browser session controller

Opens one route at a time, waits for DOM content, records route status, reads root metadata, and keeps all interaction rules explicit.

Output

Route render evidence

Frontend QA

3. Selector contract reader

Reads data-workbench-role, data-active-action, data-action-class, data-submit-state, tab test IDs, payload sections, result sections, and safe error codes.

Output

Selector assertion packet

Risk guard

4. Safe interaction lane

Clicks preview-only tabs and preview-only submit buttons only. Backend-guarded and partner-gated actions stay observe-only until later approval phases.

Output

Preview-only proof

Mobile QA

5. Viewport and copy guard

Checks 390px layout, horizontal overflow, tappable metadata visibility, blocked success claims, and safe customer/finance wording.

Output

Mobile and wording result

Evidence layer later

6. Report artifact writer

Produces JSON plus human summary references only. It stores no screenshots, no secrets, no customer data, and no provider payloads in this design phase.

Output

Smoke run report draft

Execution lanes

safe by mode

Execution lane

observe-only

allowed first

Can do

Open routes

Read DOM metadata

Read headings

Read links

Read scroll width

Read console error count

Blocked

Click backend submits

Create records

Use auth secrets

Call partner APIs

Execution lane

preview-only

allowed after selector check

Can do

Open preview tab

Click preview-only submit

Verify PREVIEW_ONLY_PREPARED

Verify no backend mutation copy

Blocked

Persist packet

Issue order

Reserve stock

Post ledger

Execution lane

unauthenticated guard

allowed as negative test

Can do

Click backend-guarded submit only to verify AUTH_REQUIRED

Capture safe error code

Verify no stack trace

Blocked

Retry with real credentials

Bypass auth

Mutate data

Execution lane

authenticated sandbox

Phase 209 gated

Can do

Use seeded sandbox tenant later

Use test accounts later

Use rollback plan later

Blocked

Production data

unapproved seed writes

silent account creation

Execution lane

partner sandbox

future gated

Can do

Validate partner draft only after licensed sandbox config exists

Use maker-checker evidence later

Blocked

Real payout

fake callback

wallet claim

settlement claim

Future file map

Planned runner files are intentionally not created yet

Phase 208 names the future assets so developers know where implementation belongs after sandbox auth approval.

apps/web/e2e/business-pro/workbench-smoke.spec.ts

Future Playwright spec for route, selector, mobile, preview-only, and safe-error checks.

not created in Phase 208

apps/web/e2e/fixtures/workbench-smoke-cases.ts

Future frozen case manifest derived from Phase 207 matrix.

not created in Phase 208

apps/web/e2e/reporters/faeda-smoke-report.ts

Future JSON and founder-readable report builder.

not created in Phase 208

apps/web/package.json

Future npm script such as test:e2e:workbenches after runner approval.

not changed in Phase 208

Report shape

Smoke report JSON fields

runId

Unique smoke run ID, generated by runner later

appBuild

Build/version reference, no secrets

route

Workbench route under test

role

supplier/manufacturer/wholesaler/retailer/customer/rider/admin

viewport

desktop or mobile dimensions

mode

observe-only, preview-only, unauthenticated guard, sandbox later

assertions

Pass/fail list for selectors, copy, overflow, safe errors

blockedClaimsFound

Any forbidden wallet/payment/inventory/ledger success wording

consoleErrors

Count and sanitized messages only

decision

pass, warning, fail, blocked

Fail-fast policy

What immediately fails a future runner

1Fail immediately if route returns browser error, 404, or missing workbench root metadata.
2Fail if data-workbench-role does not match the route role.
3Fail if default action metadata does not match the Phase 207 manifest.
4Fail if preview-only action does not produce PREVIEW_ONLY_PREPARED after a safe click.
5Fail if any backend-guarded action claims accepted/success without auth.
6Fail if admin partner draft claims payout, wallet credit, settlement, or ledger posting.
7Fail if mobile width has horizontal overflow at 390px.
8Fail if raw stack trace, provider secret, token, or internal finance detail is visible.

Next approvals

Phase 209 must approve sandbox auth before mutation tests

1Approve sandbox tenant naming and deletion policy.
2Approve test role accounts and least-privilege permissions.
3Approve idempotency-key policy for mutation tests.
4Approve report storage location and retention rules.
5Approve CI timing: manual-only first, scheduled later.
6Approve partner sandbox lock before any payment draft execution test exists.

Next phase

Phase 209: Sandbox Auth, Fixture, and Safe Test Account Approval Gate

Next we approve exactly which sandbox accounts, tenants, fixtures, and cleanup rules are allowed before any authenticated smoke test can exist.

Open Phase 209
Phase 207 Phase 209