Packed CLI capxul-cli-4.20.0-beta.5.tgz (sha256 606febd72ea49e8250d5cd9715a41b29d2feed1520821778ce5aadbeef354b61) built from
807c35ec549289efd05d38247f2a7a65c63b0b35, 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).

v3-confirm-refusal.png
v3-timeout-bound.png
v3-session-refusal.png
v3-tty-session-before-preview.png
v3-tty-create-session-before-preview.png
v3-acceptance-summary.png# CLI business commands — Organization writes: terminal evidence
Validated code head `807c35ec549289efd05d38247f2a7a65c63b0b35`
(`feat/d9-org-create-retry`); the receipt and its frames are committed on top of
it, and this commit changes no product code. 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.
Artifact built from that head: `capxul-cli-4.20.0-beta.5.tgz`
sha256 `606febd72ea49e8250d5cd9715a41b29d2feed1520821778ce5aadbeef354b61`,
`@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 --email demo@example.com` (terminal) | 3 | `NOT_AUTHENTICATED: Authentication is required.`, with no preview line: the session is verified before any preview is rendered |
| 11 | `capxul org create --name 'New Org' --handle new_org --country GH --email demo@example.com` (terminal) | 3 | the same, for create |
Rows 5 to 9 are the bounded local refusals: each one refused before a client, a
browser, or any network use. Rows 10 and 11 are the ordering the confirmation
correction requires: on a terminal the session is verified first, so an absent
session is exit 3 with no preview and no prompt.
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 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
$ capxul org retry --org org_a --email demo@example.com
NOT_AUTHENTICATED: Authentication is required.
exit=3
```
## Frames
Captured from the artifact named above while each row was on screen:
- `confirm-refusal.png` — row 6
- `timeout-bound.png` — row 7
- `session-refusal.png` — row 9
- `tty-session-before-preview.png` — row 10
- `tty-create-session-before-preview.png` — row 11
- `acceptance-summary.png` — the acceptance-row summary printed at the end of the run
## Not proven by this receipt
- The resolved preview and its default-no prompt. They render only after a
verified session, which this environment cannot create without an authorized
live write, so the prompt path is covered by unit tests instead: the preview
reads before the prompt, the default-no refusal, a supplied `--confirm` still
prompting, the accepted prompt continuing, and the browser signer being built
only after the prompt is accepted. A write that never resolves, or a settlement
that never settles, is bounded by the one deadline, still emits the Organization
the lane already committed, aborts the active SDK signal, and returns the typed
exit-5 result.
- The committed Organization ID, the pending result, the verified result, a
fresh-process resume, and the real digest ordering against a browser wallet.
These need a signed-in staging session and a real Openfort wallet step.