The uups-bank-demo wave's SDD records (ledger, six task briefs and reports, review diffs) and the brainstorm design mockups were git-ignored, so they existed only on one sandbox VM and reached no remote — this repo had no remote at all until now. Removes `.superpowers/` from .gitignore and the `*` .gitignore the superpowers plugin writes inside .superpowers/sdd/; the second blocks the directory even with the first removed. Excluded as ephemeral local-server state, and now ignored by name: .last-port, .last-token (a 64-char session token for a brainstorm server on a port that is long gone), and the per-session state/ directories. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Fnwzj6McD6kSkXwjUKFKxe
95 lines
4.9 KiB
HTML
95 lines
4.9 KiB
HTML
<div class="label">Design review · Section 3 of 4</div>
|
|
<h2>The live demo as a three-act story</h2>
|
|
<p class="subtitle">The audience sees every command, every test, and every state transition. The operations console mirrors the chain without controlling it.</p>
|
|
|
|
<div style="display:grid;grid-template-columns:1fr 54px 1fr 54px 1fr;align-items:stretch;margin-top:22px">
|
|
<div style="padding:18px;border:2px solid #6c7a8f;border-radius:14px;background:#f8fafc">
|
|
<div class="label">Act 1 · Prepared V1</div>
|
|
<h3 style="margin-top:5px">Establish trust</h3>
|
|
<div style="padding:9px 11px;background:#18243a;color:#d9e5f4;border-radius:7px;font-family:monospace;font-size:11px">make demo-v1</div>
|
|
<ol style="font-size:12px;line-height:1.65;padding-left:18px">
|
|
<li>Deploy MockUSDC, BankV1, and proxy</li>
|
|
<li>Mint demo funds to Alice and Bob</li>
|
|
<li>Deposit 1,000 + 500 USDC</li>
|
|
<li>Alice withdraws 100 USDC</li>
|
|
</ol>
|
|
<div style="padding:10px;background:white;border:1px solid #d8dee8;border-radius:8px;font-size:11px">
|
|
<strong>Console proves</strong><br>
|
|
Proxy: <strong>0x8B…42</strong><br>
|
|
Version: <strong>V1</strong><br>
|
|
Reserves: <strong>1,400</strong><br>
|
|
Liabilities: <strong>1,400</strong>
|
|
</div>
|
|
</div>
|
|
|
|
<div style="display:flex;align-items:center;justify-content:center;font-size:28px;color:#68768d">→</div>
|
|
|
|
<div style="padding:18px;border:2px solid #7a64b0;border-radius:14px;background:#f4f0fb">
|
|
<div class="label">Act 2 · Codex live</div>
|
|
<h3 style="margin-top:5px">Change the system safely</h3>
|
|
<div style="padding:10px;background:white;border:1px solid #d8cfee;border-radius:8px;font-size:12px;line-height:1.55">
|
|
Ask Codex to add customer-to-customer transfers while preserving all V1 state.
|
|
</div>
|
|
<ol style="font-size:12px;line-height:1.65;padding-left:18px">
|
|
<li>Implement BankV2</li>
|
|
<li>Add unit, fuzz, and invariant tests</li>
|
|
<li>Add upgrade and transfer scripts</li>
|
|
<li>Update ABI and console timeline</li>
|
|
<li>Explain the storage-safety choices</li>
|
|
</ol>
|
|
<div style="padding:9px 11px;background:#221b35;color:#e8e0fa;border-radius:7px;font-family:monospace;font-size:11px">forge test --force</div>
|
|
<div style="margin-top:7px;font-size:11px;color:#665d78">No upgrade runs until tests and layout validation pass.</div>
|
|
</div>
|
|
|
|
<div style="display:flex;align-items:center;justify-content:center;font-size:28px;color:#68768d">→</div>
|
|
|
|
<div style="padding:18px;border:2px solid #27865f;border-radius:14px;background:#edf8f2">
|
|
<div class="label">Act 3 · V2 reveal</div>
|
|
<h3 style="margin-top:5px">Prove state survived</h3>
|
|
<div style="padding:9px 11px;background:#14382d;color:#ddf5e9;border-radius:7px;font-family:monospace;font-size:11px">make upgrade-v2<br>make demo-transfer</div>
|
|
<ol style="font-size:12px;line-height:1.65;padding-left:18px">
|
|
<li>Owner upgrades proxy to BankV2</li>
|
|
<li>Proxy address remains unchanged</li>
|
|
<li>Alice transfers 250 to Bob internally</li>
|
|
<li>No MockUSDC moves during transfer</li>
|
|
</ol>
|
|
<div style="padding:10px;background:white;border:1px solid #cde6d8;border-radius:8px;font-size:11px">
|
|
<strong>Console proves</strong><br>
|
|
Alice: 900 → <strong>650</strong><br>
|
|
Bob: 500 → <strong>750</strong><br>
|
|
Reserves = liabilities = <strong>1,400</strong><br>
|
|
Version: <strong>V2</strong>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div style="margin-top:18px;padding:15px 18px;border:1px solid #d6dce6;border-radius:11px;background:white;display:grid;grid-template-columns:1fr 1fr;gap:22px;font-size:12px">
|
|
<div>
|
|
<strong>Failure behavior</strong>
|
|
<ul style="line-height:1.65;margin-bottom:0">
|
|
<li>Scripts stop on wrong owner, network, address, or failed postcondition.</li>
|
|
<li>The console shows disconnected/stale state instead of fake zero balances.</li>
|
|
<li>Contract reverts are decoded into named, teachable errors.</li>
|
|
</ul>
|
|
</div>
|
|
<div>
|
|
<strong>Optional public encore</strong>
|
|
<ul style="line-height:1.65;margin-bottom:0">
|
|
<li>Repeat the same scripts on Base Sepolia with an explicit network flag.</li>
|
|
<li>Load deployed addresses into the same console.</li>
|
|
<li>Show explorer links for the proxy, upgrade, and transfer events.</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="options" style="margin-top:22px">
|
|
<div class="option" data-choice="sequence-approved" onclick="toggleSelect(this)">
|
|
<div class="letter">✓</div>
|
|
<div class="content"><h3>Demo sequence approved</h3><p>Continue to testing, documentation, and presentation safeguards.</p></div>
|
|
</div>
|
|
<div class="option" data-choice="sequence-changes" onclick="toggleSelect(this)">
|
|
<div class="letter">↺</div>
|
|
<div class="content"><h3>Needs changes</h3><p>Select this and describe what should change in the terminal.</p></div>
|
|
</div>
|
|
</div>
|