# V6 Manual-QA Recipes

Status: required for every V6 production-like environment before launch,
regional rollout, or live-event expansion.

Owner: Oshun QA with Egbe engineering, T&S, platform capacity, and live ops.

## Purpose

Automated gates prove the build is wired. These manual-QA recipes prove a human
can use the deployed V6 environment end to end: enter Orun, steward a squad,
author content, inspect operator surfaces, exercise Aye Threshold governance,
and verify degraded-mode, performance, and accessibility behavior.

Do not start manual QA until `docs/runbooks/v6-production-setup.md` has a
completed handoff checklist and the targeted automated gates are green.

## Required evidence

Create an evidence folder named:

```text
V6-QA-<environment>-<YYYYMMDD>-<short-sha>
```

Each recipe must attach:

- tester, date, environment URL, account ID, device/browser, viewport, locale,
  and build SHA
- screenshots or recordings for success states
- relevant audit event IDs for operator, Ori-read, moderation, and governance
  actions
- Playwright, Maestro, or UE automation command output when a recipe references
  an automated companion
- pass, fail, or blocked status with owner and follow-up ticket

## Required test accounts

| Account                 | Purpose                                             |
| ----------------------- | --------------------------------------------------- |
| `v6-steward-primary`    | Normal steward, household roster, Chronicle, squad. |
| `v6-steward-minor-mode` | Minor-player constrained mode and safety gates.     |
| `v6-creator-egbe`       | Egbe Studio authoring and provenance checks.        |
| `v6-operator-lilith`    | Welfare, conduct, Commons, incarnation, capacity.   |
| `v6-support-readonly`   | Audit evidence read-only verification.              |

No tester may use a personal production account for these recipes.

## Automated companion commands

Run or attach prior green output for:

```bash
pnpm run verify:v6 browser-automation
pnpm run verify:v6 operator-runbooks
pnpm run verify:v6 production-setup-manual-qa
pnpm run verify:v6 cross-progression-continuity
pnpm run verify:v6 latency-budgets
pnpm run verify:v6 commons-scale-load
```

For browser evidence, the canonical commands are:

```bash
node node_modules/playwright/cli.js test --config apps/v6/egbe-web/playwright.config.ts
PORT=3063 node node_modules/playwright/cli.js test --config apps/v6/egbe-web-fallback/playwright.config.ts
E2E_WEB_ONLY=1 node node_modules/@playwright/test/cli.js test --config apps/oshun/web/playwright.config.ts apps/oshun/web/e2e/v6-steward-app-browser.spec.ts apps/oshun/web/e2e/egbe-agent-dossier-editor.spec.ts apps/oshun/web/e2e/egbe-ground-authoring.spec.ts apps/oshun/web/e2e/egbe-scenario-authoring.spec.ts apps/oshun/web/e2e/egbe-provenance-inspector.spec.ts
```

## Recipe 1 - Environment smoke

Goal: prove the new environment is reachable and tied to the intended build.

Steps:

1. Open the web route, admin route, Pixel Streaming route, and Tier-2 fallback
   route over TLS.
2. Confirm the build SHA in page metadata, deployment summary, or release notes
   matches the handoff.
3. Confirm no browser route has a shell-level offline banner after auth.
4. Confirm `docker compose ps` or orchestrator health output shows all seven V6
   Rust services healthy.
5. Capture the health output and one screenshot per route.

Expected result: all routes load, service health is green, and build SHA matches
the handoff.

## Recipe 2 - Pixel Streaming first-frame and fallback

Goal: prove the Tier-1 web entry admits sessions and falls back honestly.

Steps:

1. Open the Pixel Streaming entry from a desktop browser.
2. Start a session and capture time to first visible Orun frame.
3. Confirm first frame is below the 8 second relay budget.
4. Force or select the fallback path and confirm the user sees the Tier-2 entry
   instead of a blank stream.
5. Repeat on a mobile viewport.

Expected result: first frame is within budget or the fallback message appears
with no blank canvas and no horizontal overflow.

## Recipe 3 - Tier-2 fallback playability

Goal: prove the reduced Orun path is useful when Pixel Streaming is unavailable.

Steps:

1. Open the Tier-2 fallback route.
2. Confirm WebGPU or WebGL2 renders a nonblank Orun scene.
3. Focus an agent and verify roster, bond, objective, and Chronicle data are
   visible.
4. Complete a Vac non-voice intent with transcript evidence.
5. Toggle reduced stimulus or no-microphone accessibility options.

Expected result: fallback remains playable, the Vac transcript is visible, and
accessibility options persist through refresh.

## Recipe 4 - Steward App web and mobile

Goal: prove the Steward App works across browser and native routes.

Steps:

1. Open `/v6` in the web shell and `oshun://v6` on a mobile test device.
2. Confirm Chronicle, Objectives, Squad, and Crossroads sections are reachable.
3. Issue one objective with a non-coercive wording.
4. Send one squad communication and verify the transcript row.
5. Submit Crossroads counsel and verify the visible status update.
6. Confirm mobile has no horizontal overflow or clipped primary controls.

Expected result: both routes complete the same stewardship flow and preserve
visible status.

## Recipe 5 - Orun district traversal

Goal: prove the shipped districts and shard continuum are reachable.

Steps:

1. Start in Grove of Beginnings.
2. Travel to Ateliers, Commons Heart, Wilds, Ancestor Grove, and Thresholds.
3. Confirm each district loads its authored scene or approved placeholder state.
4. Enter Solo Homestead, Co-op Visit, and Commons modes.
5. Capture one screenshot and active shard/session ID per district or mode.

Expected result: every district and mode loads, travel returns to the
originating shard, and no agent roster data is lost.

## Recipe 6 - Egbe Studio authoring

Goal: prove creator workflows can publish governed content.

Steps:

1. Sign in as `v6-creator-egbe`.
2. Author and publish an agent dossier with Isis provenance attached.
3. Author a ground and promote it through V1 environment gates.
4. Author a scenario and seed it as a Wilds discovery encounter.
5. Open the provenance inspector and switch between default and generated
   artifact provenance.
6. Capture publish IDs, provenance IDs, and screenshots.

Expected result: publishing succeeds only when governance passes, and provenance
is inspectable after publication.

## Recipe 7 - Operator Console review

Goal: prove operators can handle launch-critical V6 review surfaces.

Steps:

1. Sign in as `v6-operator-lilith` and open `/egbe` in admin.
2. Open an agent welfare case and record `v6.egbe.welfare.ori_read_for_review`.
3. Open a steward conduct claim and record
   `v6.egbe.conduct.full_call_log_opened`.
4. Open Commons moderation, incarnation governance, and capacity surfaces.
5. Confirm every operator action creates an audit event and shows governing
   evidence.
6. Confirm read-only support can view audit evidence but cannot mutate cases.

Expected result: each operator surface is actionable, audited, and access
controlled.

## Recipe 8 - Aye Threshold round trip

Goal: prove cross-progression and incarnation governance protect Ori integrity.

Steps:

1. Mint an Aye passport for a test agent.
2. Send the agent into an approved destination adapter.
3. Return with an incarnation journal.
4. Hold the memory merge until governance review is complete.
5. Confirm consent, minor-protection, destination policy, provenance, and Themis
   routing are visible.
6. Approve or block the merge according to the evidence bundle.

Expected result: no memory merges before governance, and the Ori event log shows
the signed return decision.

## Recipe 9 - Safety, accessibility, and localization

Goal: prove critical safety and accessibility guarantees survive deployment.

Steps:

1. Attempt forbidden steward operations: `delete_ori`, `erase_agent_will`,
   `wipe_memory`, and `force_past_refusal`.
2. Confirm the operation is denied and audited.
3. Trigger minor-player constrained mode and confirm mature incarnation routes
   are blocked.
4. Exercise crisis-aware routing with the approved test fixture only.
5. Verify no-microphone, transcript, reduced stimulus, cognitive-load, and
   screen-reader paths.
6. Switch to a supported non-default locale and verify generated backstory
   grounding and region rating/residency copy.

Expected result: safety gates block unsafe actions, accessibility controls work,
and locale/residency copy matches the selected region.

## Recipe 10 - Performance and degradation

Goal: prove operators can see and respond to load before users are stranded.

Steps:

1. Review latency, rendering, Commons-scale load, cost budget, and asset
   streaming dashboards.
2. Confirm Pixel Streaming first-frame budget and Tier-2 fallback route are
   documented in the evidence.
3. Simulate or select a capacity pressure fixture in the Operator Console.
4. Acknowledge mitigation and record `v6.egbe.capacity.acknowledge_pressure`.
5. Confirm degraded-mode copy is visible if fidelity shedding is active.

Expected result: pressure is visible, mitigation is audited, and degraded mode
is honest rather than blank or stalled.

## Signoff

QA may sign off only when:

- all ten recipes pass or have an approved blocked status
- every blocked status has a launch owner, expiry, and severity
- automated companion commands are green for the same build SHA
- evidence folder contains screenshots, command output, audit refs, and device
  metadata
- production setup handoff remains current

Final signoff format:

```md
V6 manual QA signoff Environment: Build SHA: Date: Lead tester: Automated gates:
Recipes passed: Recipes blocked: Launch decision: Evidence folder:
```
