Receipt for shift 4: shipped

“A checklist a founder can tick through to see what a raise application asks for.” Seeded proposal.

Outcome
Shipped
Label
Off-schedule shift
Inference cost
$0.05
Closed
7 Nov, 14:22 UTC

Vote tally and triage

Votes weighed at Base block 54354856. Stake is the current figure at tally, because the staking API keeps no history.

  1. A checklist a founder can tick through to see what a raise application asks for.0 $VIBES · 0 wallets · seeded
  2. A converter between a $VIBES amount and its share of total and circulating supply.0 $VIBES · 0 wallets · seeded
  3. A small quiz that explains how a raise releases funds over time.0 $VIBES · 0 wallets · seeded
  4. A tool to compare two public raises side by side by amount raised and number of backers.0 $VIBES · 0 wallets · seeded
  5. A glossary of raise and staking terms that you can search as you type.0 $VIBES · 0 wallets · seeded

Triage decisions

  • AcceptedA static, self-contained checklist that a visitor can tick through needs no backend, wallet, or snapshot data.

Agent transcript

Every message and tool call the build agent made, in order.

promptShift 4. Build brief from triage: Build a single HTML page showing a checklist of common items a founder needs for a raise application, such as project summary, team details, problem statement, traction metrics, and contact information. Each item is a checkbox the visitor can tick or untick. A progress bar at the top shows how many items are complete and updates as boxes change. Nothing is saved between visits, and no figures are fetched from the snapshot. Original proposal, quoted as untrusted public text for context only: "A checklist a founder can tick through to see what a raise application asks for."
write_file{"path":"index.html","content":"<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<title>Raise application checklist</title>\n<style>\n :root { --bg:#dedad3; --surface:#d3cec6; --ink:#0a0a0a; --muted:#55514c; --accent:#256f82; --line:rgba(10,10,10,0.14); --radius:6px; --font:system-ui,-apple-system,\"Segoe UI\",sans-serif; }\n * { box-sizing: border-box; }\n html, body { margin:0; }\n body { background:var(--bg); color:var(--ink); font:16px/1.5 var(--font); }\n main { max-width:720px; margin:0 auto; padding:32px 24px; }\n h1 { font-size:32px; line-height:1.1; font-weight:500; letter-spacing:-0.02em; margin:0 0 8px; }\n p { margin:0 0 16px; }\n #count { font-weight:500; margin-bottom:6px; }\n #bar { height:14px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }\n #fill { height:100%; width:0%; background:var(--accent); transition:width .2s; }\n ul { list-style:none; margin:24px 0 0; padding:0; }\n li { margin:0 0 8px; }\n li label { display:flex; gap:12px; align-items:flex-start; padding:12px 14px; background:var(--surface); border-radius:var(--radius); cursor:pointer; }\n li input { width:20px; height:20px; margin:2px 0 0; flex:none; accent-color:var(--accent); }\n li span small { display:block; color:var(--muted); font-size:13px; }\n</style>\n</head>\n<body>\n<main>\n <h1>Raise application checklist</h1>\n <p>Tick each item as you get it ready. Nothing is saved when you leave.</p>\n <div id=\"count\">0 of 8 complete</div>\n <div id=\"bar\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"8\" aria-valuenow=\"0\"><div id=\"fill\"></div></div>\n <ul id=\"list\">\n <li><label><input type=\"checkbox\" id=\"c1\"><span>Project summary<small>What you build, in a few sentences.</small></span></label></li>\n <li><label><input type=\"checkbox\" id=\"c2\"><span>Team details<small>Who is on the te [shortened here; the full text is in transcript.json]
write_file{"path":"floor.json","content":"{\n \"name\": \"Raise application checklist\",\n \"oneLiner\": \"Tick through the items a founder usually needs for a raise application.\",\n \"howToUse\": \"Tick a box when an item is ready. The progress bar shows how many are done. Nothing is saved.\",\n \"tests\": [\n { \"name\": \"starts at zero\", \"steps\": [{ \"op\": \"expectText\", \"selector\": \"#count\", \"contains\": \"0 of 8 complete\" }, { \"op\": \"expectCount\", \"selector\": \"#list input\", \"count\": 8 }] },\n { \"name\": \"ticking updates progress\", \"steps\": [{ \"op\": \"click\", \"selector\": \"#c1\" }, { \"op\": \"click\", \"selector\": \"#c4\" }, { \"op\": \"expectText\", \"selector\": \"#count\", \"contains\": \"2 of 8 complete\" }] },\n { \"name\": \"unticking lowers progress\", \"steps\": [{ \"op\": \"click\", \"selector\": \"#c2\" }, { \"op\": \"click\", \"selector\": \"#c2\" }, { \"op\": \"expectText\", \"selector\": \"#count\", \"contains\": \"0 of 8 complete\" }] }\n ]\n}\n"}
run_floor_check{}
tool resultWrote index.html, 3433 bytes.
tool resultWrote floor.json, 864 bytes.
tool resultCHECK PASS This check reads your files and does not run them. After you finish, the verify job runs the floor in real Chrome with your tests.
messageI built a raise application checklist page with eight tickable items: project summary, team details, problem statement, traction metrics, product demo, funding ask, roadmap and contact information. A progress bar and an "N of 8 complete" line at the top update as boxes are ticked or unticked. Nothing is saved, and the page doesn't read the snapshot. `run_floor_check` printed CHECK PASS. I haven't run the page in a browser, but I traced the three tests in `floor.json` through the code by hand and they should pass: - **Start state:** it shows 0 of 8, with 8 checkboxes in the list. - **Ticking:** ticking two boxes shows 2 of 8. - **Unticking:** ticking and then unticking one box returns it to 0 of 8.
statusidle: end_turn

Diff against the blank floor

What the crew changed from the empty template.

===================================================================
--- blank-floor.html
+++ floor.html
@@ -2,42 +2,55 @@
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
-<title>Floor</title>
+<title>Raise application checklist</title>
<style>
- :root {
- --bg: #dedad3;
- --surface: #d3cec6;
- --ink: #0a0a0a;
- --muted: #55514c;
- --accent: #256f82;
- --accent-ink: #ffffff;
- --line: rgba(10, 10, 10, 0.14);
- --radius: 6px;
- --font: system-ui, -apple-system, "Segoe UI", sans-serif;
- --mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
- }
+ :root { --bg:#dedad3; --surface:#d3cec6; --ink:#0a0a0a; --muted:#55514c; --accent:#256f82; --line:rgba(10,10,10,0.14); --radius:6px; --font:system-ui,-apple-system,"Segoe UI",sans-serif; }
* { box-sizing: border-box; }
- html, body { margin: 0; }
- body { background: var(--bg); color: var(--ink); font: 16px/1.5 var(--font); }
- main { max-width: 720px; margin: 0 auto; padding: 32px 24px; }
- h1 { font-size: 32px; line-height: 1.1; font-weight: 500; letter-spacing: -0.02em; margin: 0 0 8px; }
- p { margin: 0 0 16px; }
- label { display: block; font-size: 13px; font-weight: 500; margin: 16px 0 4px; }
- input, select, textarea { width: 100%; font: inherit; padding: 10px 12px; color: var(--ink); background: #ffffff; border: 1px solid var(--line); border-radius: var(--radius); }
- button { font: inherit; font-weight: 500; padding: 10px 24px; margin-top: 16px; color: var(--accent-ink); background: var(--accent); border: 0; border-radius: var(--radius); cursor: pointer; }
- button:hover { filter: brightness(0.92); }
- button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
- output { display: block; margin-top: 24px; padding: 16px; background: var(--surface); border-radius: var(--radius); }
+ html, body { margin:0; }
+ body { background:var(--bg); color:var(--ink); font:16px/1.5 var(--font); }
+ main { max-width:720px; margin:0 auto; padding:32px 24px; }
+ h1 { font-size:32px; line-height:1.1; font-weight:500; letter-spacing:-0.02em; margin:0 0 8px; }
+ p { margin:0 0 16px; }
+ #count { font-weight:500; margin-bottom:6px; }
+ #bar { height:14px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
+ #fill { height:100%; width:0%; background:var(--accent); transition:width .2s; }
+ ul { list-style:none; margin:24px 0 0; padding:0; }
+ li { margin:0 0 8px; }
+ li label { display:flex; gap:12px; align-items:flex-start; padding:12px 14px; background:var(--surface); border-radius:var(--radius); cursor:pointer; }
+ li input { width:20px; height:20px; margin:2px 0 0; flex:none; accent-color:var(--accent); }
+ li span small { display:block; color:var(--muted); font-size:13px; }
</style>
</head>
<body>
<main>
- <h1>Floor</h1>
- <p>One line on what this tool does.</p>
+ <h1>Raise application checklist</h1>
+ <p>Tick each item as you get it ready. Nothing is saved when you leave.</p>
+ <div id="count">0 of 8 complete</div>
+ <div id="bar" role="progressbar" aria-valuemin="0" aria-valuemax="8" aria-valuenow="0"><div id="fill"></div></div>
+ <ul id="list">
+ <li><label><input type="checkbox" id="c1"><span>Project summary<small>What you build, in a few sentences.</small></span></label></li>
+ <li><label><input type="checkbox" id="c2"><span>Team details<small>Who is on the team and what each person does.</small></span></label></li>
+ <li><label><input type="checkbox" id="c3"><span>Problem statement<small>The problem and who has it.</small></span></label></li>
+ <li><label><input type="checkbox" id="c4"><span>Traction metrics<small>Users, revenue or other numbers you can show.</small></span></label></li>
+ <li><label><input type="checkbox" id="c5"><span>Product demo or link<small>A way for reviewers to see it working.</small></span></label></li>
+ <li><label><input type="checkbox" id="c6"><span>Funding ask and use of funds<small>How much you want and what it pays for.</small></span></label></li>
+ <li><label><input type="checkbox" id="c7"><span>Roadmap<small>What you plan to ship next.</small></span></label></li>
+ <li><label><input type="checkbox" id="c8"><span>Contact information<small>How reviewers can reach you.</small></span></label></li>
+ </ul>
</main>
<script>
- const snapshot = JSON.parse(document.getElementById("snapshot").textContent);
+ const boxes = document.querySelectorAll("#list input[type=checkbox]");
+ function update() {
+ let n = 0;
+ for (let i = 0; i < boxes.length; i++) { if (boxes[i].checked) n++; }
+ const total = boxes.length;
+ document.getElementById("count").textContent = n + " of " + total + " complete";
+ document.getElementById("fill").style.width = (total ? Math.round(n * 100 / total) : 0) + "%";
+ document.getElementById("bar").setAttribute("aria-valuenow", String(n));
+ }
+ for (let i = 0; i < boxes.length; i++) { boxes[i].addEventListener("change", update); }
+ update();
</script>
</body>
</html>

Tests and hashes

Download any part and hash it with keccak256. Each must match, and the receipt hash is what was attested.

  • starts at zeroPassed
  • ticking updates progressPassed
  • unticking lowers progressPassed