ICN July Demo — Operator Checklist
Keep this open during the demo. Full context: JULY_DEMO_HANDS_ON.md. Candidate pin, evidence capture, and reviewer handoff: JULY_DEMO_CANDIDATE_0.1_OPERATOR_SCRIPT.md. This is a DEV/DEMO. Not production, not a federation, not real members/funds.
☐ Preflight (before anyone is watching)
- ☐ Node instance is booted and the gateway answers (first boot finished).
- ☐ Host ports
18080/18090/18091are free on your workstation. - ☐ You can reach the node (local QEMU forwards, or
ssh <user>@<node-ip>works). - ☐ Browser open and ready.
- ☐ Run one full loop privately once, then reset — so the live run is clean.
- ☐ You can say the honesty boundary in one breath: "core loop, real; demo data, fixture; federation/production/funds, not yet."
☐ Launch command
Local (QEMU on this box): boot the image with forwards (see hands-on §4), then open the URL below.
Remote / Proxmox (one command):
ICN_DEMO_VM_IP=<your-node-ip> ICN_DEMO_SSH_KEY=/path/to/demo_key \
bash deploy/appliance/scripts/open-proxmox-demo.sh
Jump route: add ICN_DEMO_JUMP=user@dev-host ICN_DEMO_REMOTE_KEY=/path/to/key,
drop ICN_DEMO_SSH_KEY.
☐ Browser URL
http://localhost:18090/member-shell/?mode=live&demo=launcher&gw=18080&session=18091
(The launcher opens this for you. Shell port is fixed at 18090 — don't change it.)
☐ Expected visible states (in order)
- ☐ Launcher view: "Start local demo" button, gateway pre-filled, manual form hidden
- ☐ One click → standing renders (two domains)
- ☐ Action card appears
- ☐ Mark complete → confirm step (declares action + reversibility)
- ☐ Confirm — mark complete → receipt with record hash
- ☐ Expand → evidence detail
- ☐ Card shows Confirmed in place
Expected nuance: after discharge
/me/action-cardsis empty; the on-screen card flips to Confirmed rather than disappearing. Consistent, not a bug.
☐ Reset command (between runs) — inside the node
sudo icn-demo-reset # clears state; reseed or relaunch after
Reset proves nothing and does not reseed. Then launcher (recommended):
reload the launcher URL, then click Start local demo — the button hides
after the first session, so a reset alone won't restore it on an open tab
(seeds one card, no paste). Manual/debug: sudo icn-demo-seed --json
(prints a local DEV credential — don't paste it into public artifacts); look for
"standing_note": "bootstrap-standing: ok". Reload the shell.
☐ Verification commands — inside the node
sudo icn-demo-verify <item-id> # single item consistency
sudo icn-demo-verify --chain # full chain → expect 13/13 (the real proof)
Show the OpenAPI surface (gateway port):
curl -s http://localhost:18080/api-docs/openapi.json | head -c 400; echo
☐ Panic fixes (live)
| Problem | Do this |
|---|---|
| Port in use | Override ICN_DEMO_GW_PORT / ICN_DEMO_SESSION_PORT; free 18090. |
| Tunnel exits immediately | Re-check ssh <user>@<node-ip> / key; or use ICN_DEMO_JUMP. |
| Shell never answers | Wait for boot; in VM: systemctl status icnd icn-demo-session. |
| Start-demo does nothing | Demo gates: in VM journalctl -u icn-demo-session; confirm demo-profile image. |
| Auth calls fail CORS | Shell must be on 18090. Don't change it. |
| Loop got messy / extra cards | sudo icn-demo-reset, then reload the launcher URL and click Start local demo (the button hides after the first session, so reset alone won't restore it) — or sudo icn-demo-seed --json for the manual path. |
☐ Final cleanup
- ☐ Press Ctrl-C in the launcher terminal to close the tunnels.
- ☐ Optionally
sudo icn-demo-resetin the node to leave it clean. - ☐ If the node was disposable, shut it down / remove the VM.
- ☐ No credential was written to disk or a URL; nothing to scrub on the workstation.