capxul org create / org retry — terminal evidence

Packed CLI capxul-cli-4.20.0-beta.5.tgz (sha256 bd286f11ace164f1d65c25c38a68eccd4fdb77878f0491e6957469ed49935070), installed outside the repository and run in a real PTY (asciinema 3.0.0, input recording off, egress denied by preload, isolated CLI home, CI unset).

Frames

Set C on a terminal — resolved preview, then the default-no prompt (Enter takes the default).
Set C on a terminal — resolved preview, then the default-no prompt (Enter takes the default).
confirm-default-no-prompt.png
ENTER takes the default-no: CLI_USAGE, exit 2.
ENTER takes the default-no: CLI_USAGE, exit 2.
confirm-default-no-refusal.png
A supplied --confirm still renders the preview and still asks.
A supplied --confirm still renders the preview and still asks.
confirm-supplied-prompt.png
ENTER takes the default-no even with --confirm supplied: CLI_USAGE, exit 2.
ENTER takes the default-no even with --confirm supplied: CLI_USAGE, exit 2.
confirm-supplied-refusal.png
An answered prompt is asked only once; the explicit email resolves the session locally.
An answered prompt is asked only once; the explicit email resolves the session locally.
answered-prompt.png
y → yes → the command continues past the gate to the session check: exit 3.
y → yes → the command continues past the gate to the session check: exit 3.
answered-session.png
Acceptance rows the run proved, and the rows it did not.
Acceptance rows the run proved, and the rows it did not.
acceptance-summary.png

Receipt

# CLI business commands — Organization writes: terminal evidence

Validated code head `21c92eefa3da0abe15c61656662ad285f96a9287`
(`feat/d9-org-create-retry`); this receipt commit adds only this receipt and its
frames. Base of the change: `c92edf21e36d0d19481c34aa8631adbd8058f4c5`.

The packed CLI was installed outside the repository and run in a real PTY through
the local terminal viewer (`asciinema 3.0.0`, `session --stream-local`,
`--window-size 100x40`, `--capture-env SHELL`, input recording off). Every command
ran with an isolated `CAPXUL_CLI_HOME`, `CI` unset, `CAPXUL_TELEMETRY_DISABLED=true`
and a preload that denies `fetch` and `net.connect`, so no command in this receipt
performed network egress. The only keystrokes sent to the PTY were `ENTER` and `y`.

Installed artifact built from that head: `capxul-cli-4.20.0-beta.5.tgz`
sha256 `bd286f11ace164f1d65c25c38a68eccd4fdb77878f0491e6957469ed49935070`,
`@capxul/cli/dist/main.mjs`, `capxul v4.20.0-beta.5`.

## Checkpoints

| #   | Command                                                                                 | Exit | Observed in the terminal                                                                                                                                |
| --- | --------------------------------------------------------------------------------------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1   | `capxul --version`                                                                      | 0    | `capxul v4.20.0-beta.5`                                                                                                                                 |
| 2   | `capxul org --help`                                                                     | 0    | group help lists `create` and `retry`                                                                                                                   |
| 3   | `capxul org create --help`                                                              | 0    | `--email --name --handle --country --bio --size --confirm --timeout-seconds`                                                                            |
| 4   | `capxul org retry --help`                                                               | 0    | `--org, --org-id --email --confirm --timeout-seconds`                                                                                                   |
| 5   | `capxul org retry --json`                                                               | 2    | `CLI_USAGE: Provide --org.`                                                                                                                             |
| 6   | `capxul org retry --org org_a --json`                                                   | 2    | `CLI_USAGE: Provide --confirm to write.`                                                                                                                |
| 7   | `capxul org retry --org org_a --timeout-seconds 0 --confirm --json`                     | 2    | `CLI_USAGE: Provide --timeout-seconds as an integer from 1 to 3600.`                                                                                    |
| 8   | `capxul org retry --org org_a --email not-an-email --confirm --json`                    | 2    | `CLI_USAGE: Provide a valid email.`                                                                                                                     |
| 9   | `capxul org create --name 'New Org' --handle new_org --country GH --confirm --json`     | 3    | `NOT_AUTHENTICATED: Authentication is required.`                                                                                                        |
| 10  | `capxul org retry --org org_a` (terminal)                                               | 2    | preview; `? Resume this Organization's setup? › (y/N)`; `ENTER` → `✔ … no` → `CLI_USAGE: The write was not confirmed.`                                  |
| 11  | `capxul org create --name 'New Org' --handle new_org --country GH --confirm` (terminal) | 2    | preview and prompt rendered although `--confirm` was supplied; `ENTER` → `✔ Create this Organization? … no` → `CLI_USAGE: The write was not confirmed.` |
| 12  | `capxul org retry --org org_a --email demo@example.com` (terminal)                      | 3    | preview; `(y/N)`; `y` → `✔ … yes`; continues past the gate → `NOT_AUTHENTICATED: Authentication is required.`                                           |

Rows 5 to 9 are the bounded local refusals: each one refused before a client, a
browser, or any network use.

Verbatim output for the refusal rows:

```text
$ capxul org retry --json
{"version":1,"command":"org.retry","outcome":"refused","error":{"code":"CLI_USAGE","message":"Provide --org."}}
exit=2

$ capxul org retry --org org_a --json
{"version":1,"command":"org.retry","outcome":"refused","error":{"code":"CLI_USAGE","message":"Provide --confirm to write."}}
exit=2

$ capxul org retry --org org_a --timeout-seconds 0 --confirm --json
{"version":1,"command":"org.retry","outcome":"refused","error":{"code":"CLI_USAGE","message":"Provide --timeout-seconds as an integer from 1 to 3600."}}
exit=2

$ capxul org retry --org org_a --email not-an-email --confirm --json
{"version":1,"command":"org.retry","outcome":"refused","error":{"code":"CLI_USAGE","message":"Provide a valid email."}}
exit=2

$ capxul org create --name 'New Org' --handle new_org --country GH --confirm --json
{"version":1,"command":"org.create","outcome":"refused","error":{"code":"NOT_AUTHENTICATED","message":"Authentication is required."}}
exit=3
```

## Frames

Captured from the artifact named above while each row was on screen:

- `confirm-default-no-prompt.png`, `confirm-default-no-refusal.png` — row 10
- `confirm-supplied-prompt.png`, `confirm-supplied-refusal.png` — row 11
- `answered-prompt.png`, `answered-session.png` — row 12
- `acceptance-summary.png` — the acceptance-row summary printed at the end of the run

The remaining rows are text evidence in the table above: the capture path used for
the frames (a CDP screenshot of the live viewer) began failing with
`CDP request timed out: Page.captureScreenshot` partway through, and the command
output it would have shown is recorded verbatim instead. No frame in this
directory was captured from an earlier artifact.

## Not proven by this receipt

The committed Organization ID, the pending result, the verified result and a
fresh-process resume need a signed-in staging session, a real browser wallet and
backend reads. This run authorized no live write, so those rows stay open.