# Persona journeys and exploratory testing

Every executable CARBON run includes intent-led persona exploration. This is
required for browser, API, CLI, source-review, AI-feature, and mixed targets;
page evidence is attached when a page exists but is not required for non-UI
work.

## Scale with the run

- Quick: two personas, including the primary and first-time user perspectives.
- Medium: four personas, adding power-user and access-needs perspectives.
- Large: six personas, adding interruption/recovery and authorization-boundary perspectives.

Adapt names, roles, goals, data, and risks to the product. Do not pretend a
generic persona is a researched market segment.

## Journey contract

For every planned persona:

1. State a realistic intent and a short plan before acting.
2. Attempt the product task with realistic non-production data.
3. Record the actions tried and the observed outcome.
4. Continue beyond the happy path with at least one breadth or depth
   exploratory observation attributed to that persona.
5. Record what worked, friction, confusion, missing or unintuitive capability,
   unexpected behavior, recommendations, evidence, and genuinely delightful or
   joyful moments.
6. Rate joy, happiness, and surprise intensity from 1 to 5. These are
   qualitative experience signals, not deterministic pass/fail or population
   statistics. If the journey was not observed, leave them `NOT MEASURED`.

For a review-only target with no executable surface, use `reviewed`: preserve
the intent, plan, inspected actions, outcome, and qualitative observations, but
do not provide emotional ratings. The report must show `NOT MEASURED` rather
than pretending source inspection observed a person's feelings.

Cover every planned exploration charter across the persona journeys. Promote a
consequential discovery into a reproducible test candidate; a session alone is
not regression or release proof.

## Missing input and authentication

If a task needs a login, role, account state, seed data, API fixture, or product
context that is unavailable, record the persona journey as `blocked` with the
specific missing inputs. Use the returned `questionsForUser` to ask concise
questions that would make the next attempt better. Never ask for passwords,
tokens, or private keys in chat. Ask the user to sign in through the isolated
test browser or configure a named CARBON credential source. A blocked journey
does not satisfy completion unless the run closes with an explicit cut line.

## Required artifacts

Keep these current after every evidence update and link them from the main
report and chat:

- `<run-dir>/persona-journeys.html`: branded, visual, live-updating journey report.
- `<run-dir>/persona-journeys.md`: durable written journey document.

The reports show the intent, plan, attempted actions, outcome, emotional
measures, success, delight, surprise, confusion, friction, exploratory
observations, recommendations, missing inputs, and linked evidence for every
planned persona.
