# Brook

See [OPERATIONS.md](OPERATIONS.md) for command effects and prerequisites; run
`node scripts/operations.mjs describe` from an exported edition to inspect them.

Read [first-release acceptance](ACCEPTANCE.md) for purpose, unmet release obligations, preserved requirements and the evidence decision rule.

An email-first support workspace with customer evidence and explicitly approved Stripe refunds. A refund decision remains immutable; uncertainty stops further commands. Only provider-confirmed success unlocks the refund reply, and optional ticket resolution waits for mail-provider acceptance.

Use Node **26.8.1**, pnpm **10.12.4**. From a generated self-contained edition:

```sh
pnpm install --frozen-lockfile
pnpm dev
```

Open the local URL printed by Vite. Native sign-in allows `operator@refine.test` locally and writes its one-time link to Cloudflare's local email artifact. The database starts empty. Record a real request through the interface. Configure your provider credentials deliberately to use payment evidence or customer email; missing providers are shown as unavailable.

```sh
pnpm verify
pnpm setup
pnpm deploy
```

`docs/SETUP.md` describes owner account, sender and provider inputs. Setup/deploy never performs a refund. `IMPLEMENTATION.md` distinguishes implemented behavior from the broader retained `CONTRACT.md` release target. Passing local verification is not proof of a hosted provider result or complete contract acceptance.

This edition is authored under `runeditrun/support` and composed with pinned `runeditrun/base` modules. Its generated repository has no runtime imports from another family or edition. `docs/SOURCE-LINEAGE.md` records the original Brook and parked visual source. All source is MIT licensed.

The [2026-09-12 hosted pilot](verification/pilot-20260912/REPORT.md) verified one real Stripe test refund, a separately approved SendGrid reply, native incoming email, ordered resolution and preserved state across repeat deployment. Provider acceptance is verified; mailbox delivery and the broader historical contract are not.
